Add TAPI Topology simulated network function type.
[sim/o1-interface.git] / ntsimulator / deploy / smo-nts-ng-topology-server / yang / tapi-oam@2020-04-23.yang
diff --git a/ntsimulator/deploy/smo-nts-ng-topology-server/yang/tapi-oam@2020-04-23.yang b/ntsimulator/deploy/smo-nts-ng-topology-server/yang/tapi-oam@2020-04-23.yang
new file mode 100644 (file)
index 0000000..bb445d3
--- /dev/null
@@ -0,0 +1,842 @@
+module tapi-oam {\r
+    namespace "urn:onf:otcc:yang:tapi-oam";\r
+    prefix tapi-oam;\r
+    import tapi-common {\r
+        prefix tapi-common;\r
+    }\r
+    import tapi-connectivity {\r
+        prefix tapi-connectivity;\r
+    }\r
+    import tapi-topology {\r
+        prefix tapi-topology;\r
+    }\r
+    organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
+    contact "\r
+         Project Web: <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OTCC/TAPI__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G39KDEbL$ >\r
+         Project List: <mailto:transport-api@opennetworking.org>\r
+         Editor: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>\r
+         Andrea Mazzini <mailto:andrea.mazzini@nokia.com>\r
+         Arturo Mayoral <mailto:arturo.mayoral@telefonica.com>\r
+         Nigel Davis <mailto:ndavis@ciena.com>";\r
+    description "\r
+        This module contains TAPI OAM Model definitions.\r
+        Source: TapiOam.uml\r
+        - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
+        - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
+          <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G4QHf0bG$ >\r
+          and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
+          <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8IIivez$ >\r
+        - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
+          As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
+        - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
+          The YANG model backward compatibility criteria are outlined in section 11 of <https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7950__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G3bKxRf2$ >.\r
+          YANG models included in this release may not be backward compatible with previous TAPI releases.\r
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
+        License: This module is distributed under the Apache License 2.0";\r
+    revision 2020-04-23 {\r
+        description "ONF Transport API version 2.1.3.\r
+                   Changes included in this TAPI release (v2.1.3) are listed in\r
+                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.3.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7tqhxFK$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+    }\r
+    revision 2019-07-16 {\r
+        description "ONF Transport API version 2.1.2.\r
+                   Changes included in this TAPI release (v2.1.2) are listed in\r
+                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.2.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7eDS6-t$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+    }\r
+    revision 2018-12-10 {\r
+        description "ONF Transport API version 2.1.1.\r
+                   Changes included in this TAPI release (v2.1.1) are listed in\r
+                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1ftwU5J$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+    }\r
+    revision 2018-10-16 {\r
+        description "ONF Transport API version 2.1.0.\r
+                   Changes included in this TAPI release (v2.1.0) are listed in\r
+                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G-5JStw4$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+    }\r
+    revision 2018-03-07 {\r
+        description "ONF Transport API version 2.0.2\r
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+        Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1Yf4AAN$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G27-pJK_$ >";\r
+    }\r
+    revision 2018-02-16 {\r
+        description "ONF Transport API version 2.0.1\r
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+        Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8RnGvXg$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6Gy6YoeAv$ >";\r
+    }\r
+    revision 2018-01-02 {\r
+        description "ONF Transport API version 2.0.0\r
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+        Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6GyqYDgG_$ >";\r
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+                  <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1V9Thk9$ >";\r
+    }\r
+    augment "/tapi-common:context" {\r
+        container oam-context {\r
+            uses oam-context;\r
+            description "Augments the base TAPI Context with OamService information";\r
+        }\r
+        description "Augments the base TAPI Context with OamService information";\r
+    }\r
+    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" {\r
+        container mep-mip-list {\r
+            uses mep-mip-list;\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+\r
+   /**************************\r
+    * definitions of references\r
+    **************************/\r
+    grouping oam-service-ref {\r
+        leaf oam-service-uuid {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:uuid';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping oam-service-end-point-ref {\r
+        uses oam-service-ref;\r
+        leaf oam-service-end-point-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping meg-ref {\r
+        leaf meg-uuid {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:uuid';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping maintenance-entity-ref {\r
+        uses meg-ref;\r
+        leaf maintenance-entity-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping mep-ref {\r
+        uses meg-ref;\r
+        leaf mep-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping mip-ref {\r
+        uses meg-ref;\r
+        leaf mip-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping oam-job-ref {\r
+        leaf oam-job-uuid {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:uuid';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping pm-current-data-ref {\r
+        uses oam-job-ref;\r
+        leaf pm-current-data-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping pm-history-data-ref {\r
+        uses pm-current-data-ref;\r
+        leaf pm-history-data-local-id {\r
+            type leafref {\r
+                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';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping oam-profile-ref {\r
+        leaf oam-profile-uuid {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:uuid';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping pm-threshold-data-ref {\r
+        uses oam-profile-ref;\r
+        leaf pm-threshold-data-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping pm-bin-data-ref {\r
+        uses oam-profile-ref;\r
+        leaf pm-bin-data-local-id {\r
+            type leafref {\r
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-bin-data/tapi-oam:local-id';\r
+            }\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+\r
+   /**************************\r
+    * package object-classes\r
+    **************************/\r
+    grouping mep {\r
+        leaf layer-protocol-name {\r
+            type tapi-common:layer-protocol-name;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf direction {\r
+            type tapi-common:termination-direction;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf mep-identifier {\r
+            type string;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf-list peer-mep-identifier {\r
+            type string;\r
+            config false;\r
+            min-elements 1;\r
+            description "none";\r
+        }\r
+        uses tapi-common:local-class;\r
+        uses tapi-common:operational-state-pac;\r
+        description "none";\r
+    }\r
+    grouping oam-job {\r
+        list oam-service-end-point {\r
+            uses oam-service-end-point-ref;\r
+            key 'oam-service-uuid oam-service-end-point-local-id';\r
+            min-elements 1;\r
+            description "none";\r
+        }\r
+        container oam-profile {\r
+            uses oam-profile-ref;\r
+            description "none";\r
+        }\r
+        list pm-current-data {\r
+            key 'local-id';\r
+            config false;\r
+            uses pm-current-data;\r
+            description "Granularity period of the CurrentData identifies the specific CurrentData instance in the scope of this OamJob.\r
+                For example, typically at least\r
+                one 15min and\r
+                one 24hr;\r
+                optionally one additional configurable (< 15min)";\r
+        }\r
+        leaf oam-job-type {\r
+            type oam-job-type;\r
+            description "none";\r
+        }\r
+        container schedule {\r
+            uses tapi-common:time-range;\r
+            description "none";\r
+        }\r
+        leaf creation-time {\r
+            type tapi-common:date-and-time;\r
+            config false;\r
+            description "none";\r
+        }\r
+        uses tapi-common:global-class;\r
+        uses tapi-common:admin-state-pac;\r
+        description "none";\r
+    }\r
+    grouping meg {\r
+        list mep {\r
+            key 'local-id';\r
+            config false;\r
+            uses mep;\r
+            description "1. ME may have 0 MEPs (case of transit domains where at least 1 MIP is present)\r
+                2. ME may have 1 MEP (case of edge domaind, where the peer MEP is ouside the managed domain)\r
+                3. ME may have 2 MEPs";\r
+        }\r
+        list mip {\r
+            key 'local-id';\r
+            config false;\r
+            uses mip;\r
+            description "ME may 0, 1, or more MIPs";\r
+        }\r
+        leaf layer-protocol-name {\r
+            type tapi-common:layer-protocol-name;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf direction {\r
+            type tapi-common:forwarding-direction;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf meg-level {\r
+            type uint64;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf meg-identifier {\r
+            type string;\r
+            config false;\r
+            description "none";\r
+        }\r
+        uses tapi-common:resource-spec;\r
+        uses tapi-common:operational-state-pac;\r
+        description "none";\r
+    }\r
+    grouping mip {\r
+        leaf layer-protocol-name {\r
+            type tapi-common:layer-protocol-name;\r
+            config false;\r
+            description "none";\r
+        }\r
+        uses tapi-common:local-class;\r
+        description "none";\r
+    }\r
+    grouping oam-service {\r
+        list end-point {\r
+            key 'local-id';\r
+            min-elements 2;\r
+            uses oam-service-end-point;\r
+            description "none";\r
+        }\r
+        container meg {\r
+            uses meg-ref;\r
+            config false;\r
+            description "none";\r
+        }\r
+        container oam-profile {\r
+            uses oam-profile-ref;\r
+            description "none";\r
+        }\r
+        uses tapi-common:service-spec;\r
+        uses tapi-common:admin-state-pac;\r
+        uses oam-constraint;\r
+        description "none";\r
+    }\r
+    grouping oam-context {\r
+        list oam-service {\r
+            key 'uuid';\r
+            uses oam-service;\r
+            description "none";\r
+        }\r
+        list meg {\r
+            key 'uuid';\r
+            config false;\r
+            uses meg;\r
+            description "none";\r
+        }\r
+        list oam-job {\r
+            key 'uuid';\r
+            uses oam-job;\r
+            description "none";\r
+        }\r
+        list oam-profile {\r
+            key 'uuid';\r
+            uses oam-profile;\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping oam-service-end-point {\r
+        container service-interface-point {\r
+            uses tapi-common:service-interface-point-ref;\r
+            description "none";\r
+        }\r
+        container connectivity-service-end-point {\r
+            uses tapi-connectivity:connectivity-service-end-point-ref;\r
+            description "none";\r
+        }\r
+        container mep {\r
+            uses mep-ref;\r
+            config false;\r
+            description "none";\r
+        }\r
+        container mip {\r
+            uses mip-ref;\r
+            config false;\r
+            description "none";\r
+        }\r
+        leaf layer-protocol-name {\r
+            type tapi-common:layer-protocol-name;\r
+            description "none";\r
+        }\r
+        leaf direction {\r
+            type tapi-common:port-direction;\r
+            description "none";\r
+        }\r
+        leaf mep-identifier {\r
+            type string;\r
+            description "This attribute contains the identifier of the MEP.\r
+                This attribute is empty in case the OSEP relates to the provisioing of an MIP.\r
+                ";\r
+        }\r
+        leaf-list peer-mep-identifier {\r
+            type string;\r
+            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.\r
+                This attribute is not specified in case the OSEP relates to the provisioing of an MIP.\r
+                In case of P2P, there is only one peer";\r
+        }\r
+        uses tapi-common:local-class;\r
+        uses tapi-common:admin-state-pac;\r
+        description "none";\r
+    }\r
+    grouping mep-mip-list {\r
+        list mip {\r
+            uses mip-ref;\r
+            key 'meg-uuid mip-local-id';\r
+            description "none";\r
+        }\r
+        list mep {\r
+            uses mep-ref;\r
+            key 'meg-uuid mep-local-id';\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping oam-constraint {\r
+        leaf layer-protocol-name {\r
+            type tapi-common:layer-protocol-name;\r
+            description "none";\r
+        }\r
+        leaf direction {\r
+            type tapi-common:forwarding-direction;\r
+            description "none";\r
+        }\r
+        leaf meg-level {\r
+            type uint64;\r
+            description "none";\r
+        }\r
+        description "none";\r
+    }\r
+    grouping pm-current-data {\r
+        list pm-history-data {\r
+            key 'local-id';\r
+            config false;\r
+            uses pm-history-data;\r
+            description "in case of 24hr Current Data, at least 1 History Data.\r
+                In case of 15min Current Data, at least 16 History Data.\r
+                In case of <15min, the number of History Data shall be able to cover a span of 4 hours.";\r
+        }\r
+        container granularity-period {\r
+            uses tapi-common:time-period;\r
+            description "none";\r
+        }\r
+        leaf timestamp {\r
+            type tapi-common:date-and-time;\r
+            config false;\r
+            description "This attribute indicates the start of the current monitoring interval.\r
+                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.";\r
+        }\r
+        container elapsed-time {\r
+            uses tapi-common:time-interval;\r
+            description "none";\r
+        }\r
+        leaf suspect-interval-flag {\r
+            type boolean;\r
+            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:\r
+                - Suspect data were detected by the actual resource doing data collection.\r
+                - Transition of the administrativeState attribute to/from the 'lock' state.\r
+                - Transition of the operationalState to/from the 'disabled' state.\r
+                - Scheduler setting that inhibits the collection function.\r
+                - The performance counters were reset during the interval.\r
+                - The currentData (or subclass) object instance was created during the monitoring period.";\r
+        }\r
+        uses tapi-common:local-class;\r
+        description "none";\r
+    }\r
+    grouping pm-history-data {\r
+        container granularity-period {\r
+            uses tapi-common:time-period;\r
+            description "none";\r
+        }\r
+        leaf period-end-time {\r
+            type tapi-common:date-and-time;\r
+            description "none";\r
+        }\r
+        leaf suspect-interval-flag {\r
+            type boolean;\r
+            config false;\r
+            description "This attribute indicates that the performance data may not be reliable.";\r
+        }\r
+        uses tapi-common:local-class;\r
+        description "none";\r
+    }\r
+    grouping oam-profile {\r
+        list pm-threshold-data {\r
+            key 'local-id';\r
+            min-elements 1;\r
+            uses pm-threshold-data;\r
+            description "none";\r
+        }\r
+        list pm-bin-data {\r
+            key 'local-id';\r
+            min-elements 1;\r
+            uses pm-bin-data;\r
+            description "none";\r
+        }\r
+        uses tapi-common:global-class;\r
+        description "none";\r
+    }\r
+    grouping pm-threshold-data {\r
+        container granularity-period {\r
+            uses tapi-common:time-period;\r
+            description "none";\r
+        }\r
+        leaf is-transient {\r
+            type boolean;\r
+            description "none";\r
+        }\r
+        uses tapi-common:local-class;\r
+        description "none";\r
+    }\r
+    grouping pm-bin-data {\r
+        container granularity-period {\r
+            uses tapi-common:time-period;\r
+            description "none";\r
+        }\r
+        uses tapi-common:local-class;\r
+        description "none";\r
+    }\r
+\r
+   /**************************\r
+    * package type-definitions\r
+    **************************/\r
+    identity OAM_JOB_TYPE {\r
+        description "none";\r
+    }\r
+    typedef oam-job-type {\r
+        type identityref {\r
+            base OAM_JOB_TYPE;\r
+        }\r
+        description "none";\r
+    }\r
+\r
+   /**************************\r
+    * package interfaces\r
+    **************************/\r
+    rpc create-oam-service {\r
+        description "none";\r
+        input {\r
+            list end-point {\r
+                key 'local-id';\r
+                min-elements 2;\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+            container oam-constraint {\r
+                uses oam-constraint;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container service {\r
+                uses oam-service;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc delete-oam-service {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc get-oam-service {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container service {\r
+                uses oam-service;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc create-oam-job {\r
+        description "none";\r
+        input {\r
+            leaf oam-job-type {\r
+                type oam-job-type;\r
+                description "none";\r
+            }\r
+            list oam-service-end-point {\r
+                key 'local-id';\r
+                min-elements 2;\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+            container oam-profile {\r
+                uses oam-profile;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf schedule {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container oam-job {\r
+                uses oam-job;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc get-oam-job {\r
+        description "none";\r
+        input {\r
+            leaf job-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container oam-job {\r
+                uses oam-job;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc get-oam-service-list {\r
+        description "none";\r
+        output {\r
+            list service {\r
+                key 'uuid';\r
+                uses oam-service;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc get-meg {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container meg {\r
+                uses meg;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc update-oam-service {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            list end-point {\r
+                key 'local-id';\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+            container oam-constraint {\r
+                uses oam-constraint;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container service {\r
+                uses oam-service;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc delete-oam-job {\r
+        description "none";\r
+        input {\r
+            leaf job-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc update-oam-job {\r
+        description "none";\r
+        input {\r
+            leaf job-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            container oam-profile {\r
+                uses oam-profile;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf schedule {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container oam-job {\r
+                uses oam-job;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc create-oam-service-end-point {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf sip-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf c-sep-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf layer {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf direction {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf mep-identifier {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf-list peer-mep-identifier {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container end-point {\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc delete-oam-service-end-point {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf o-sep-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc update-oam-service-end-point {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf o-sep-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf state {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container end-point {\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+    rpc get-oam-service-end-point {\r
+        description "none";\r
+        input {\r
+            leaf service-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+            leaf o-sep-id {\r
+                type string;\r
+                description "none";\r
+            }\r
+        }\r
+        output {\r
+            container end-point {\r
+                uses oam-service-end-point;\r
+                description "none";\r
+            }\r
+        }\r
+    }\r
+\r
+}\r