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";
            }
        }
    }
}
