Update TAPI YANG model version to v2.1.1

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

+    namespace "urn:onf:otcc:yang:tapi-notification";

+    prefix tapi-notification;

+    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 Notification Model definitions.

+        Source: TapiNotification.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 notification-context {

+            uses notification-context;

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

+        }

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

+    }

+

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

+    * package object-classes

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

+    grouping notification-subscription-service {

+        list notification {

+            key 'uuid';

+            config false;

+            uses notification;

+            description "none";

+        }

+        container notification-channel {

+            uses notification-channel;

+            description "none";

+        }

+        container subscription-filter {

+            uses subscription-filter;

+            description "none";

+        }

+        leaf subscription-state {

+            type subscription-state;

+            description "none";

+        }

+        leaf-list supported-notification-types {

+            type notification-type;

+            config false;

+            min-elements 1;

+            description "none";

+        }

+        leaf-list supported-object-types {

+            type object-type;

+            config false;

+            min-elements 1;

+            description "none";

+        }

+        uses tapi-common:service-spec;

+        description "none";

+    }

+    grouping subscription-filter {

+        leaf-list requested-notification-types {

+            type notification-type;

+            config false;

+            description "none";

+        }

+        leaf-list requested-object-types {

+            type object-type;

+            config false;

+            description "none";

+        }

+        leaf-list requested-layer-protocols {

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

+            config false;

+            description "none";

+        }

+        leaf-list requested-object-identifier {

+            type tapi-common:uuid;

+            config false;

+            description "none";

+        }

+        leaf include-content {

+            type boolean;

+            config false;

+            description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";

+        }

+        uses tapi-common:local-class;

+        description "none";

+    }

+    notification notification {

+        uses notification;

+        description "none";

+    }

+    grouping notification {

+        leaf notification-type {

+            type notification-type;

+            description "none";

+        }

+        leaf target-object-type {

+            type object-type;

+            description "none";

+        }

+        leaf target-object-identifier {

+            type tapi-common:uuid;

+            description "none";

+        }

+        list target-object-name {

+            key 'value-name';

+            min-elements 1;

+            uses tapi-common:name-and-value;

+            description "none";

+        }

+        leaf event-time-stamp {

+            type tapi-common:date-and-time;

+            description "none";

+        }

+        leaf sequence-number {

+            type uint64;

+            config false;

+            description "A monotonous increasing sequence number associated with the notification.

+                The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";

+        }

+        leaf source-indicator {

+            type source-indicator;

+            description "none";

+        }

+        leaf layer-protocol-name {

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

+            description "none";

+        }

+        list changed-attributes {

+            key 'value-name';

+            uses name-and-value-change;

+            description "none";

+        }

+        list additional-info {

+            key 'value-name';

+            uses tapi-common:name-and-value;

+            description "none";

+        }

+        leaf additional-text {

+            type string;

+            description "none";

+        }

+        container tca-info {

+            uses tca-info;

+            description "none";

+        }

+        container alarm-info {

+            uses alarm-info;

+            description "none";

+        }

+        uses tapi-common:resource-spec;

+        description "none";

+    }

+    grouping notification-channel {

+        leaf stream-address {

+            type string;

+            config false;

+            description "The address/location/URI of the channel/stream to which the subscribed notifications are published.

+                This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";

+        }

+        leaf next-sequence-no {

+            type uint64;

+            config false;

+            description "The sequence number of the next notification that will be published on the channel";

+        }

+        uses tapi-common:local-class;

+        description "none";

+    }

+    grouping notification-context {

+        list notif-subscription {

+            key 'uuid';

+            uses notification-subscription-service;

+            description "none";

+        }

+        list notification {

+            key 'uuid';

+            config false;

+            uses notification;

+            description "none";

+        }

+        description "none";

+    }

+    grouping alarm-info {

+        leaf is-transient {

+            type boolean;

+            config false;

+            description "none";

+        }

+        leaf perceived-severity {

+            type perceived-severity-type;

+            config false;

+            description "none";

+        }

+        leaf probable-cause {

+            type string;

+            config false;

+            description "none";

+        }

+        leaf service-affecting {

+            type service-affecting;

+            description "none";

+        }

+        description "none";

+    }

+    grouping tca-info {

+        leaf is-transient {

+            type boolean;

+            config false;

+            description "none";

+        }

+        leaf threshold-crossing {

+            type threshold-crossing-type;

+            description "none";

+        }

+        leaf threshold-parameter {

+            type string;

+            config false;

+            description "none";

+        }

+        leaf threshold-value {

+            type uint64;

+            config false;

+            description "none";

+        }

+        leaf perceived-severity {

+            type perceived-tca-severity;

+            description "none";

+        }

+        leaf measurement-interval {

+            type tapi-common:date-and-time;

+            description "none";

+        }

+        leaf suspect-interval-flag {

+            type boolean;

+            description "none";

+        }

+        description "none";

+    }

+

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

+    * package type-definitions

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

+    grouping name-and-value-change {

+        leaf value-name {

+            type string;

+            description "The name of the value. The value need not have a name.";

+        }

+        leaf old-value {

+            type string;

+            description "The value";

+        }

+        leaf new-value {

+            type string;

+            description "The value";

+        }

+        description "A scoped name-value triple, including old value and new value";

+    }

+    typedef notification-type {

+        type enumeration {

+            enum OBJECT_CREATION {

+                description "Not a normal state. The system is unable to determine the correct value.";

+            }

+            enum OBJECT_DELETION {

+                description "none";

+            }

+            enum ATTRIBUTE_VALUE_CHANGE {

+                description "none";

+            }

+            enum ALARM_EVENT {

+                description "none";

+            }

+            enum THRESHOLD_CROSSING_ALERT {

+                description "none";

+            }

+        }

+        description "List of supported Notifications types.";

+    }

+    typedef object-type {

+        type enumeration {

+            enum TOPOLOGY {

+                description "none";

+            }

+            enum NODE {

+                description "none";

+            }

+            enum LINK {

+                description "none";

+            }

+            enum CONNECTION {

+                description "none";

+            }

+            enum PATH {

+                description "none";

+            }

+            enum CONNECTIVITY_SERVICE {

+                description "none";

+            }

+            enum VIRTUAL_NETWORK_SERVICE {

+                description "none";

+            }

+            enum PATH_COMPUTATION_SERVICE {

+                description "none";

+            }

+            enum NODE_EDGE_POINT {

+                description "none";

+            }

+            enum SERVICE_INTERFACE_POINT {

+                description "none";

+            }

+            enum CONNECTION_END_POINT {

+                description "none";

+            }

+            enum MAINTENANCE_ENTITY_GROUP {

+                description "none";

+            }

+            enum MAINTENANCE_ENTITY {

+                description "none";

+            }

+            enum MEG_END_POINT {

+                description "none";

+            }

+            enum MEG_INTERMEDIATE_POINT {

+                description "none";

+            }

+            enum SWITCH_CONTROL {

+                description "none";

+            }

+            enum SWITCH {

+                description "none";

+            }

+            enum ROUTE {

+                description "none";

+            }

+            enum NODE_RULE_GROUP {

+                description "none";

+            }

+            enum INTER_RULE_GROUP {

+                description "none";

+            }

+            enum RULE {

+                description "none";

+            }

+            enum OAM_JOB {

+                description "none";

+            }

+        }

+        description "The list of TAPI Global Object Class types on which Notifications can be raised.";

+    }

+    typedef source-indicator {

+        type enumeration {

+            enum RESOURCE_OPERATION {

+                description "none";

+            }

+            enum MANAGEMENT_OPERATION {

+                description "none";

+            }

+            enum UNKNOWN {

+                description "none";

+            }

+        }

+        description "none";

+    }

+    typedef subscription-state {

+        type enumeration {

+            enum SUSPENDED {

+                description "none";

+            }

+            enum ACTIVE {

+                description "none";

+            }

+        }

+        description "none";

+    }

+    typedef perceived-severity-type {

+        type enumeration {

+            enum CRITICAL {

+                description "none";

+            }

+            enum MAJOR {

+                description "none";

+            }

+            enum MINOR {

+                description "none";

+            }

+            enum WARNING {

+                description "none";

+            }

+            enum CLEARED {

+                description "none";

+            }

+        }

+        description "none";

+    }

+    typedef threshold-crossing-type {

+        type enumeration {

+            enum THRESHOLD_ABOVE {

+                description "none";

+            }

+            enum THRESHOLD_BELOW {

+                description "none";

+            }

+            enum CLEARED {

+                description "none";

+            }

+        }

+        description "none";

+    }

+    typedef service-affecting {

+        type enumeration {

+            enum SERVICE_AFFECTING {

+                description "none";

+            }

+            enum NOT_SERVICE_AFFECTING {

+                description "none";

+            }

+            enum UNKNOWN {

+                description "none";

+            }

+        }

+        description "none";

+    }

+    typedef perceived-tca-severity {

+        type enumeration {

+            enum WARNING {

+                description "none";

+            }

+            enum CLEAR {

+                description "none";

+            }

+        }

+        description "none";

+    }

+

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

+    * package interfaces

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

+    rpc get-supported-notification-types {

+        description "none";

+        output {

+            leaf-list supported-notification-types {

+                type notification-type;

+                min-elements 1;

+                description "none";

+            }

+            leaf-list supported-object-types {

+                type object-type;

+                min-elements 1;

+                description "none";

+            }

+        }

+    }

+    rpc create-notification-subscription-service {

+        description "none";

+        input {

+            container subscription-filter {

+                uses subscription-filter;

+                description "none";

+            }

+            leaf subscription-state {

+                type subscription-state;

+                description "none";

+            }

+        }

+        output {

+            container subscription-service {

+                uses notification-subscription-service;

+                description "none";

+            }

+        }

+    }

+    rpc update-notification-subscription-service {

+        description "none";

+        input {

+            leaf subscription-id-or-name {

+                type string;

+                description "none";

+            }

+            container subscription-filter {

+                uses subscription-filter;

+                description "none";

+            }

+            leaf subscription-state {

+                type subscription-state;

+                description "none";

+            }

+        }

+        output {

+            container subscription-service {

+                uses notification-subscription-service;

+                description "none";

+            }

+        }

+    }

+    rpc delete-notification-subscription-service {

+        description "none";

+        input {

+            leaf subscription-id-or-name {

+                type string;

+                description "none";

+            }

+        }

+        output {

+            container subscription-service {

+                uses notification-subscription-service;

+                description "none";

+            }

+        }

+    }

+    rpc get-notification-subscription-service-details {

+        description "none";

+        input {

+            leaf subscription-id-or-name {

+                type string;

+                description "none";

+            }

+        }

+        output {

+            container subscription-service {

+                uses notification-subscription-service;

+                description "none";

+            }

+        }

+    }

+    rpc get-notification-subscription-service-list {

+        description "none";

+        output {

+            list subscription-service {

+                key 'uuid';

+                uses notification-subscription-service;

+                description "none";

+            }

+        }

+    }

+    rpc get-notification-list {

+        description "none";

+        input {

+            leaf subscription-id-or-name {

+                type string;

+                description "none";

+            }

+            leaf time-period {

+                type string;

+                description "none";

+            }

+        }

+        output {

+            list notification {

+                key 'uuid';

+                uses notification;

+                description "none";

+            }

+        }

+    }    

+}