Update TAPI YANG model version to v2.1.1
Change-Id: Ie4d6a10800c34cc63c797f6649ba52da81902fd7
diff --git a/models/tapi/src/main/yang/tapi-oam@2018-12-10.yang b/models/tapi/src/main/yang/tapi-oam@2018-12-10.yang
new file mode 100755
index 0000000..5410ba4
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-oam@2018-12-10.yang
@@ -0,0 +1,825 @@
+module tapi-oam {
+ namespace "urn:onf:otcc:yang:tapi-oam";
+ prefix tapi-oam;
+ import tapi-common {
+ prefix tapi-common;
+ }
+ import tapi-connectivity {
+ prefix tapi-connectivity;
+ }
+ import tapi-topology {
+ prefix tapi-topology;
+ }
+ 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 OAM Model definitions.
+ Source: TapiOam.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 oam-context {
+ uses oam-context;
+ description "Augments the base TAPI Context with OamService information";
+ }
+ description "Augments the base TAPI Context with OamService information";
+ }
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point" {
+ container mep-mip-list {
+ uses mep-mip-list;
+ description "none";
+ }
+ description "none";
+ }
+
+ /**************************
+ * definitions of references
+ **************************/
+ grouping oam-service-ref {
+ leaf oam-service-uuid {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-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-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping meg-ref {
+ leaf meg-uuid {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:uuid';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping maintenance-entity-ref {
+ uses meg-ref;
+ leaf maintenance-entity-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping mep-ref {
+ uses meg-ref;
+ leaf mep-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping mip-ref {
+ uses meg-ref;
+ leaf mip-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping oam-job-ref {
+ leaf oam-job-uuid {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:uuid';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping pm-current-data-ref {
+ uses oam-job-ref;
+ leaf pm-current-data-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping pm-history-data-ref {
+ uses pm-current-data-ref;
+ leaf pm-history-data-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping oam-profile-ref {
+ leaf oam-profile-uuid {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:uuid';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping pm-threshold-data-ref {
+ uses oam-profile-ref;
+ leaf pm-threshold-data-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+ grouping pm-bin-data-ref {
+ uses oam-profile-ref;
+ leaf pm-bin-data-local-id {
+ type leafref {
+ path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-bin-data/tapi-oam:local-id';
+ }
+ description "none";
+ }
+ description "none";
+ }
+
+ /**************************
+ * package object-classes
+ **************************/
+ grouping mep {
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ config false;
+ description "none";
+ }
+ leaf direction {
+ type tapi-common:termination-direction;
+ config false;
+ description "none";
+ }
+ leaf mep-identifier {
+ type string;
+ config false;
+ description "none";
+ }
+ leaf-list peer-mep-identifier {
+ type string;
+ config false;
+ min-elements 1;
+ description "none";
+ }
+ uses tapi-common:local-class;
+ uses tapi-common:operational-state-pac;
+ description "none";
+ }
+ grouping oam-job {
+ list oam-service-end-point {
+ uses oam-service-end-point-ref;
+ key 'oam-service-uuid oam-service-end-point-local-id';
+ min-elements 1;
+ description "none";
+ }
+ container oam-profile {
+ uses oam-profile-ref;
+ description "none";
+ }
+ list pm-current-data {
+ key 'local-id';
+ config false;
+ uses pm-current-data;
+ description "Granularity period of the CurrentData identifies the specific CurrentData instance in the scope of this OamJob.
+ For example, typically at least
+ one 15min and
+ one 24hr;
+ optionally one additional configurable (< 15min)";
+ }
+ leaf oam-job-type {
+ type oam-job-type;
+ description "none";
+ }
+ container schedule {
+ uses tapi-common:time-range;
+ description "none";
+ }
+ leaf creation-time {
+ type tapi-common:date-and-time;
+ config false;
+ description "none";
+ }
+ uses tapi-common:global-class;
+ uses tapi-common:admin-state-pac;
+ description "none";
+ }
+ grouping meg {
+ list mep {
+ key 'local-id';
+ config false;
+ uses mep;
+ description "1. ME may have 0 MEPs (case of transit domains where at least 1 MIP is present)
+ 2. ME may have 1 MEP (case of edge domaind, where the peer MEP is ouside the managed domain)
+ 3. ME may have 2 MEPs";
+ }
+ list mip {
+ key 'local-id';
+ config false;
+ uses mip;
+ description "ME may 0, 1, or more MIPs";
+ }
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ config false;
+ description "none";
+ }
+ leaf direction {
+ type tapi-common:forwarding-direction;
+ config false;
+ description "none";
+ }
+ leaf meg-level {
+ type uint64;
+ config false;
+ description "none";
+ }
+ leaf meg-identifier {
+ type string;
+ config false;
+ description "none";
+ }
+ uses tapi-common:resource-spec;
+ uses tapi-common:operational-state-pac;
+ description "none";
+ }
+ grouping mip {
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ config false;
+ description "none";
+ }
+ uses tapi-common:local-class;
+ description "none";
+ }
+ grouping oam-service {
+ list end-point {
+ key 'local-id';
+ min-elements 2;
+ uses oam-service-end-point;
+ description "none";
+ }
+ container meg {
+ uses meg-ref;
+ config false;
+ description "none";
+ }
+ container oam-profile {
+ uses oam-profile-ref;
+ description "none";
+ }
+ uses tapi-common:service-spec;
+ uses tapi-common:admin-state-pac;
+ uses oam-constraint;
+ description "none";
+ }
+ grouping oam-context {
+ list oam-service {
+ key 'uuid';
+ uses oam-service;
+ description "none";
+ }
+ list meg {
+ key 'uuid';
+ config false;
+ uses meg;
+ description "none";
+ }
+ list oam-job {
+ key 'uuid';
+ uses oam-job;
+ description "none";
+ }
+ list oam-profile {
+ key 'uuid';
+ uses oam-profile;
+ description "none";
+ }
+ description "none";
+ }
+ grouping oam-service-end-point {
+ container service-interface-point {
+ uses tapi-common:service-interface-point-ref;
+ description "none";
+ }
+ container connectivity-service-end-point {
+ uses tapi-connectivity:connectivity-service-end-point-ref;
+ description "none";
+ }
+ container mep {
+ uses mep-ref;
+ config false;
+ description "none";
+ }
+ container mip {
+ uses mip-ref;
+ config false;
+ description "none";
+ }
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ description "none";
+ }
+ leaf direction {
+ type tapi-common:port-direction;
+ description "none";
+ }
+ leaf mep-identifier {
+ type string;
+ description "This attribute contains the identifier of the MEP.
+ This attribute is empty in case the OSEP relates to the provisioing of an MIP.
+ ";
+ }
+ leaf-list peer-mep-identifier {
+ type string;
+ description "This attribute models the MI_PeerMEP_ID[i] defined in G.8021 and configured as specified in G.8051. It provides the identifiers of the MEPs which are peer to the subject MEP.
+ This attribute is not specified in case the OSEP relates to the provisioing of an MIP.
+ In case of P2P, there is only one peer";
+ }
+ uses tapi-common:local-class;
+ uses tapi-common:admin-state-pac;
+ description "none";
+ }
+ grouping mep-mip-list {
+ list mip {
+ uses mip-ref;
+ key 'meg-uuid mip-local-id';
+ description "none";
+ }
+ list mep {
+ uses mep-ref;
+ key 'meg-uuid mep-local-id';
+ description "none";
+ }
+ description "none";
+ }
+ grouping oam-constraint {
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ description "none";
+ }
+ leaf direction {
+ type tapi-common:forwarding-direction;
+ description "none";
+ }
+ leaf meg-level {
+ type uint64;
+ description "none";
+ }
+ description "none";
+ }
+ grouping pm-current-data {
+ list pm-history-data {
+ key 'local-id';
+ config false;
+ uses pm-history-data;
+ description "in case of 24hr Current Data, at least 1 History Data.
+ In case of 15min Current Data, at least 16 History Data.
+ In case of <15min, the number of History Data shall be able to cover a span of 4 hours.";
+ }
+ container granularity-period {
+ uses tapi-common:time-period;
+ description "none";
+ }
+ leaf timestamp {
+ type tapi-common:date-and-time;
+ config false;
+ description "This attribute indicates the start of the current monitoring interval.
+ The value is bound to the quarter of an hour in case of a 15 minute interval and bound to the hour in case of a 24 hour interval.";
+ }
+ container elapsed-time {
+ uses tapi-common:time-interval;
+ description "none";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ description "This attribute is used to indicate that the performance data for the current period may not be reliable. Some reasons for this to occur are:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ uses tapi-common:local-class;
+ description "none";
+ }
+ grouping pm-history-data {
+ container granularity-period {
+ uses tapi-common:time-period;
+ description "none";
+ }
+ leaf period-end-time {
+ type tapi-common:date-and-time;
+ description "none";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ config false;
+ description "This attribute indicates that the performance data may not be reliable.";
+ }
+ uses tapi-common:local-class;
+ description "none";
+ }
+ grouping oam-profile {
+ list pm-threshold-data {
+ key 'local-id';
+ min-elements 1;
+ uses pm-threshold-data;
+ description "none";
+ }
+ list pm-bin-data {
+ key 'local-id';
+ min-elements 1;
+ uses pm-bin-data;
+ description "none";
+ }
+ uses tapi-common:global-class;
+ description "none";
+ }
+ grouping pm-threshold-data {
+ container granularity-period {
+ uses tapi-common:time-period;
+ description "none";
+ }
+ leaf is-transient {
+ type boolean;
+ description "none";
+ }
+ uses tapi-common:local-class;
+ description "none";
+ }
+ grouping pm-bin-data {
+ container granularity-period {
+ uses tapi-common:time-period;
+ description "none";
+ }
+ uses tapi-common:local-class;
+ description "none";
+ }
+
+ /**************************
+ * package type-definitions
+ **************************/
+ identity OAM_JOB_TYPE {
+ description "none";
+ }
+ typedef oam-job-type {
+ type identityref {
+ base OAM_JOB_TYPE;
+ }
+ description "none";
+ }
+
+ /**************************
+ * package interfaces
+ **************************/
+ rpc create-oam-service {
+ description "none";
+ input {
+ list end-point {
+ key 'local-id';
+ min-elements 2;
+ uses oam-service-end-point;
+ description "none";
+ }
+ container oam-constraint {
+ uses oam-constraint;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container service {
+ uses oam-service;
+ description "none";
+ }
+ }
+ }
+ rpc delete-oam-service {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ }
+ }
+ rpc get-oam-service {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container service {
+ uses oam-service;
+ description "none";
+ }
+ }
+ }
+ rpc create-oam-job {
+ description "none";
+ input {
+ leaf oam-job-type {
+ type oam-job-type;
+ description "none";
+ }
+ list oam-service-end-point {
+ key 'local-id';
+ min-elements 2;
+ uses oam-service-end-point;
+ description "none";
+ }
+ container oam-profile {
+ uses oam-profile;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ leaf schedule {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container oam-job {
+ uses oam-job;
+ description "none";
+ }
+ }
+ }
+ rpc get-oam-job {
+ description "none";
+ input {
+ leaf job-id {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container oam-job {
+ uses oam-job;
+ description "none";
+ }
+ }
+ }
+ rpc get-oam-service-list {
+ description "none";
+ output {
+ list service {
+ key 'uuid';
+ uses oam-service;
+ description "none";
+ }
+ }
+ }
+ rpc get-meg {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container meg {
+ uses meg;
+ description "none";
+ }
+ }
+ }
+ rpc update-oam-service {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ list end-point {
+ key 'local-id';
+ uses oam-service-end-point;
+ description "none";
+ }
+ container oam-constraint {
+ uses oam-constraint;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container service {
+ uses oam-service;
+ description "none";
+ }
+ }
+ }
+ rpc delete-oam-job {
+ description "none";
+ input {
+ leaf job-id {
+ type string;
+ description "none";
+ }
+ }
+ }
+ rpc update-oam-job {
+ description "none";
+ input {
+ leaf job-id {
+ type string;
+ description "none";
+ }
+ container oam-profile {
+ uses oam-profile;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ leaf schedule {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container oam-job {
+ uses oam-job;
+ description "none";
+ }
+ }
+ }
+ rpc create-oam-service-end-point {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ leaf sip-id {
+ type string;
+ description "none";
+ }
+ leaf c-sep-id {
+ type string;
+ description "none";
+ }
+ leaf layer {
+ type string;
+ description "none";
+ }
+ leaf direction {
+ type string;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ leaf mep-identifier {
+ type string;
+ description "none";
+ }
+ leaf-list peer-mep-identifier {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container end-point {
+ uses oam-service-end-point;
+ description "none";
+ }
+ }
+ }
+ rpc delete-oam-service-end-point {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ leaf o-sep-id {
+ type string;
+ description "none";
+ }
+ }
+ }
+ rpc update-oam-service-end-point {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ leaf o-sep-id {
+ type string;
+ description "none";
+ }
+ leaf state {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container end-point {
+ uses oam-service-end-point;
+ description "none";
+ }
+ }
+ }
+ rpc get-oam-service-end-point {
+ description "none";
+ input {
+ leaf service-id {
+ type string;
+ description "none";
+ }
+ leaf o-sep-id {
+ type string;
+ description "none";
+ }
+ }
+ output {
+ container end-point {
+ uses oam-service-end-point;
+ description "none";
+ }
+ }
+ }
+}