diff --git a/models/tapi/src/main/yang/tapi-photonic-media@2018-12-10.yang b/models/tapi/src/main/yang/tapi-photonic-media@2018-12-10.yang
new file mode 100755
index 0000000..dc69c76
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-photonic-media@2018-12-10.yang
@@ -0,0 +1,924 @@
+module tapi-photonic-media {
+    namespace "urn:onf:otcc:yang:tapi-photonic-media";
+    prefix tapi-photonic-media;
+    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 PhotonicMedia Model definitions.
+        Source: TapiPhotonicMedia.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/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 otsi-connection-end-point-spec {
+            uses otsi-connection-end-point-spec;
+            description "Augments the base LayerProtocol information in ConnectionEndPoint with OCH-specific information";
+        }
+        description "Augments the base LayerProtocol information in ConnectionEndPoint with OCH-specific information";
+    }
+    augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
+        container media-channel-node-edge-point-spec {
+            uses media-channel-node-edge-point-spec;
+            description "Augments the base LayerProtocol information in NodeEdgePoint with OCH-specific information";
+        }
+        description "Augments the base LayerProtocol information in NodeEdgePoint with OCH-specific 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 otsi-assembly-connection-end-point-spec {
+            uses otsi-assembly-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-common:service-interface-point" {
+        container otsi-service-interface-point-spec {
+            uses otsi-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-common:service-interface-point" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 media-channel-connection-end-point-spec {
+            uses media-channel-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 ots-connection-end-point-spec {
+            uses ots-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 media-channel-assembly-spec {
+            uses media-channel-assembly-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:get-service-interface-point-list/tapi-common:output/tapi-common:sip" {
+        container otsi-service-interface-point-spec {
+            uses otsi-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:get-service-interface-point-details/tapi-common:output/tapi-common:sip" {
+        container otsi-service-interface-point-spec {
+            uses otsi-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-topology:get-node-edge-point-details/tapi-topology:output/tapi-topology:node-edge-point" {
+        container media-channel-node-edge-point-spec {
+            uses media-channel-node-edge-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connectivity-service-list/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connectivity-service-details/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:create-connectivity-service/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:update-connectivity-service/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connectivity-service-details/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connectivity-service-list/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:create-connectivity-service/tapi-connectivity:input/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:update-connectivity-service/tapi-connectivity:input/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:update-connectivity-service/tapi-connectivity:input/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:create-connectivity-service/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:create-connectivity-service/tapi-connectivity:input/tapi-connectivity:end-point" {
+        container media-channel-connectivity-service-end-point-spec {
+            uses media-channel-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:update-connectivity-service/tapi-connectivity:output/tapi-connectivity:service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:get-service-interface-point-details/tapi-common:output/tapi-common:sip" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:get-service-interface-point-list/tapi-common:output/tapi-common:sip" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connection-end-point-details/tapi-connectivity:output/tapi-connectivity:connection-end-point" {
+        container media-channel-connection-end-point-spec {
+            uses media-channel-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connection-end-point-details/tapi-connectivity:output/tapi-connectivity:connection-end-point" {
+        container otsi-assembly-connection-end-point-spec {
+            uses otsi-assembly-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-connectivity:get-connection-end-point-details/tapi-connectivity:output/tapi-connectivity:connection-end-point" {
+        container otsi-connection-end-point-spec {
+            uses otsi-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+
+   /**************************
+    * package object-classes
+    **************************/
+    grouping otsi-gserver-adaptation-pac {
+        leaf number-of-otsi {
+            type uint64;
+            config false;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-connection-end-point-spec {
+        container otsi-termination {
+            config false;
+            uses otsi-termination-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-termination-pac {
+        container selected-central-frequency {
+            config false;
+            uses central-frequency;
+            description "none";
+        }
+        container selected-application-identifier {
+            config false;
+            uses application-identifier;
+            description "This attribute indicates the selected Application Identifier that is used by the OCh trail termination function. The syntax of ApplicationIdentifier is a pair {ApplicationIdentifierType, PrintableString}. The value of ApplicationIdentifierType is either STANDARD or PROPRIETARY. The value of PrintableString represents the standard application code as defined in the ITU-T Recommendations or a vendor-specific proprietary code. If the ApplicationIdentifierType is STANDARD the value of PrintableString represents a standard application code as defined in the ITU-T Recommendations. If the ApplicationIdentifierType is PROPRIETARY, the first six characters of the PrintableString must contain the Hexadecimal representation of an OUI assigned to the vendor whose implementation generated the Application Identifier; the remaining octets of the PrintableString are unspecified. The value of this attribute of an object instance has to be one of the values identified in the attribute SupportableApplicationIdentifierList of the same object instance. The values and value ranges of the optical interface parameters of a standard application code must be consistent with those values specified in the ITU-T Recommendation for that application code.";
+        }
+        leaf selected-modulation {
+            type modulation-technique;
+            default "UNDEFINED";
+            config false;
+            description "This parameter defines the modulation used at the source";
+        }
+        container selected-spectrum {
+            config false;
+            uses spectrum-band;
+            description "none";
+        }
+        container transmited-power {
+            config false;
+            uses power-properties-pac;
+            description "Measured power at the Transmitter.";
+        }
+        container received-power {
+            uses power-properties-pac;
+            description "none";
+        }
+        container laser-properties {
+            config false;
+            uses laser-properties-pac;
+            description "Laser properties.";
+        }
+        description "Provides status information only.";
+    }
+    grouping media-channel-pool-capability-pac {
+        list supportable-spectrum {
+            key 'upper-frequency lower-frequency';
+            config false;
+            uses spectrum-band;
+            description "none";
+        }
+        list available-spectrum {
+            key 'upper-frequency lower-frequency';
+            config false;
+            uses spectrum-band;
+            description "none";
+        }
+        list occupied-spectrum {
+            key 'upper-frequency lower-frequency';
+            config false;
+            uses spectrum-band;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-node-edge-point-spec {
+        container mc-pool {
+            config false;
+            uses media-channel-pool-capability-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-routing-spec {
+        leaf optical-routing-strategy {
+            type optical-routing-strategy;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-properties-pac {
+        container occupied-spectrum {
+            config false;
+            uses spectrum-band;
+            description "none";
+        }
+        container measured-power-ingress {
+            config false;
+            uses power-properties-pac;
+            description "none";
+        }
+        container measured-power-egress {
+            uses power-properties-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-assembly-connection-end-point-spec {
+        container otsi-adapter {
+            config false;
+            uses otsi-gserver-adaptation-pac;
+            description "none";
+        }
+        container fec-parameters {
+            config false;
+            uses fec-properties-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-capability-pac {
+        list supportable-lower-central-frequency {
+            key 'central-frequency';
+            config false;
+            uses central-frequency;
+            description "The lower frequency of the channel spectrum";
+        }
+        list supportable-upper-central-frequency {
+            key 'central-frequency';
+            config false;
+            uses central-frequency;
+            description "The Upper frequency of the channel spectrum";
+        }
+        list supportable-application-identifier {
+            key 'application-code';
+            config false;
+            uses application-identifier;
+            description "The list of supportable ApplicationIdentifiers.";
+        }
+        leaf-list supportable-modulation {
+            type modulation-technique;
+            config false;
+            description "This parameter defines the modulation used at the source";
+        }
+        container total-power-warn-threshold {
+            config false;
+            uses total-power-threshold-pac;
+            description "none";
+        }
+        description "Can read the status of the warning for the upper value that the power can reach.";
+    }
+    grouping otsi-service-interface-point-spec {
+        container otsi-capability {
+            config false;
+            uses otsi-capability-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-connectivity-service-end-point-spec {
+        container otsi-config {
+            uses otsi-termination-config-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping otsi-termination-config-pac {
+        container central-frequency {
+            uses central-frequency;
+            description "The central frequency of the laser. It is the oscillation frequency of the corresponding electromagnetic wave";
+        }
+        container spectrum {
+            uses spectrum-band;
+            description "none";
+        }
+        container application-identifier {
+            uses application-identifier;
+            description "This attribute indicates the selected Application Identifier.";
+        }
+        leaf modulation {
+            type modulation-technique;
+            description "The modulation techniqu selected at the source.";
+        }
+        leaf laser-control {
+            type laser-control-type;
+            description "Laser control can be FORCED-ON, FORCED-OFF or LASER-SHUTDOWN";
+        }
+        container transmit-power {
+            uses power-properties-pac;
+            description "Transmit power as requested.";
+        }
+        leaf total-power-warn-threshold-upper {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Allows to configure the Upper power threshold which is expected to be different from Default, but within the Min and Max values specified as OTSi SIP capability.";
+        }
+        leaf total-power-warn-threshold-lower {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Allows to configure the Lowerpower threshold which is expected to be different from Default, but within the Min and Max values specified as OTSi SIP capability.";
+        }
+        description "none";
+    }
+    grouping fec-properties-pac {
+        leaf pre-fec-ber {
+            type uint64;
+            config false;
+            description "counter: bit error rate before correction by FEC";
+        }
+        leaf post-fec-ber {
+            type uint64;
+            config false;
+            description "counter: bit error rate after correction by FEC";
+        }
+        leaf corrected-bytes {
+            type uint64;
+            config false;
+            description "Bytes corrected between those that were received corrupted";
+        }
+        leaf corrected-bits {
+            type uint64;
+            config false;
+            description "Bits corrected between those that were received corrupted";
+        }
+        leaf uncorrectable-bytes {
+            type uint64;
+            config false;
+            description "Bytes that could not be corrected by FEC";
+        }
+        leaf uncorrectable-bits {
+            type uint64;
+            config false;
+            description "Bits that could not be corrected by FEC";
+        }
+        description "none";
+    }
+    grouping media-channel-service-interface-point-spec {
+        container mc-pool {
+            config false;
+            uses media-channel-pool-capability-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-connectivity-service-end-point-spec {
+        container mc-config {
+            uses media-channel-config-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-config-pac {
+        container spectrum {
+            uses spectrum-band;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-connection-end-point-spec {
+        container media-channel {
+            config false;
+            uses media-channel-properties-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping ots-connection-end-point-spec {
+        container ots-media-channel {
+            config false;
+            uses media-channel-properties-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping media-channel-assembly-spec {
+        description "none";
+    }
+    grouping laser-properties-pac {
+        leaf laser-status {
+            type laser-control-status-type;
+            config false;
+            description "none";
+        }
+        leaf laser-application-type {
+            type laser-type;
+            config false;
+            description "The type of laser, its operational wavelengths, and its applications. String size 255.";
+        }
+        leaf laser-bias-current {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            config false;
+            description "The Bias current of the laser that is the medium polarization current of the laser.";
+        }
+        leaf laser-temperature {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            config false;
+            description "The temperature of the laser";
+        }
+        description "none";
+    }
+    grouping power-properties-pac {
+        leaf total-power {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "The total power at any point in a channel specified in dBm.";
+        }
+        leaf power-spectral-density {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            config false;
+            description "This describes how power of a signal  is distributed over frequency specified in nW/MHz";
+        }
+        description "Indication with severity warning raised when a total power value measured is above the threshold.";
+    }
+    grouping total-power-threshold-pac {
+        leaf total-power-upper-warn-threshold-default {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can read the value of the default  threshold that was set";
+        }
+        leaf total-power-upper-warn-threshold-min {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can read the value of the lower threshold that was set";
+        }
+        leaf total-power-upper-warn-threshold-max {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can  read the value of the upper threshold that was set";
+        }
+        leaf total-power-lower-warn-threshold-default {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can read the value of the default  threshold that was set";
+        }
+        leaf total-power-lower-warn-threshold-max {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can  read the value of the upper threshold that was set";
+        }
+        leaf total-power-lower-warn-threshold-min {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "Can read the value of the lower threshold that was set";
+        }
+        description "none";
+    }
+
+   /**************************
+    * package type-definitions
+    **************************/
+    identity PHOTONIC_LAYER_QUALIFIER {
+        base tapi-common:LAYER_PROTOCOL_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OTSi {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OTSiA {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OTSiG {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_NMC {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_NMCA {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_SMC {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_SMCA {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OCH {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OMS {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    identity PHOTONIC_LAYER_QUALIFIER_OTS {
+        base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    grouping application-identifier {
+        leaf application-identifier-type {
+            type application-identifier-type;
+            description "The ITU-T recommendation which defines the application code format.";
+        }
+        leaf application-code {
+            type string;
+            description "none";
+        }
+        description "The syntax of ApplicationIdentifier is a pair {ApplicationIdentifierType, PrintableString}. The value of ApplicationIdentifierType is either STANDARD or PROPRIETARY. The value of PrintableString represents the standard application code as defined in the ITU-T Recommendations or a vendor-specific proprietary code. If the ApplicationIdentifierType is STANDARD the value of PrintableString represents a standard application code as defined in the ITU-T Recommendations. If the ApplicationIdentifierType is PROPRIETARY, the first six characters of the PrintableString must contain the Hexadecimal representation of an OUI assigned to the vendor whose implementation generated the Application Identifier; the remaining octets of the PrintableString are unspecified. The value of this attribute of an object instance has to be one of the values identified in the attribute SupportableApplicationIdentifierList of the same object instance. The values and value ranges of the optical interface parameters of a standard application code must be consistent with those values specified in the ITU-T Recommendation for that application code.";
+    }
+    grouping central-frequency {
+        container frequency-constraint {
+            uses frequency-constraint;
+            description "none";
+        }
+        leaf central-frequency {
+            type uint64;
+            description "The central frequency of the laser specified in MHz. It is the oscillation frequency of the corresponding electromagnetic wave. ";
+        }
+        description "This data-type holds the central frequency information as well frequency constraints in terms of GridType ( FIXED grid (DWDM or CWDM) or FLEX grid) and AdjustmentGranularity.";
+    }
+    typedef optical-routing-strategy {
+        type enumeration {
+            enum OPTIMAL_OSNR {
+                description "none";
+            }
+            enum NO_RELAY {
+                description "none";
+            }
+            enum MIN_RELAY {
+                description "none";
+            }
+            enum PREFERRED_NO_CHANGE_WAVELENGTH_AS_RESTORE {
+                description "none";
+            }
+            enum PREFERRED_NO_SKIPPING_WAVELENGTH {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef application-identifier-type {
+        type enumeration {
+            enum PROPRIETARY {
+                description "none";
+            }
+            enum ITUT_G959_1 {
+                description "none";
+            }
+            enum ITUT_G698_1 {
+                description "none";
+            }
+            enum ITUT_G698_2 {
+                description "none";
+            }
+            enum ITUT_G696_1 {
+                description "none";
+            }
+            enum ITUT_G695 {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef grid-type {
+        type enumeration {
+            enum DWDM {
+                description "Fixed frequency grid in C & L bands as specified in ITU-T G.694.1
+                    ";
+            }
+            enum CWDM {
+                description "Fixed frequency grid as specified in ITU-T G.694.2";
+            }
+            enum FLEX {
+                description "Flexible frequency grid as specified in ITU-T G.694.1. In this case,
+                    - the allowed frequency slots have a nominal central frequency (in THz) defined by:
+                    193.1 + n × 0.00625 where n is a positive or negative integer including 0 and 0.00625 is the nominal central frequency granularity in THz
+                    - and a slot width defined by:
+                    12.5 × m where m is a positive integer and 12.5 is the slot width granularity in GHz.
+                    Any combination of frequency slots is allowed as long as no two frequency slots overlap.";
+            }
+            enum GRIDLESS {
+                description "none";
+            }
+            enum UNSPECIFIED {
+                description "Unspecified/proprietary frequency grid";
+            }
+        }
+        description "The frequency grid standard that specify reference set of frequencies used to denote allowed nominal central frequencies that may be used for defining applications.";
+    }
+    typedef adjustment-granularity {
+        type enumeration {
+            enum G_100GHZ {
+                description "100000 MHz";
+            }
+            enum G_50GHZ {
+                description "50000 MHz";
+            }
+            enum G_25GHZ {
+                description "25000 MHz";
+            }
+            enum G_12_5GHZ {
+                description "12500 MHz";
+            }
+            enum G_6_25GHZ {
+                description "6250 MHz";
+            }
+            enum G_3_125GHZ {
+                description "3125 MHz";
+            }
+            enum UNCONSTRAINED {
+                description "none";
+            }
+        }
+        description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency";
+    }
+    grouping spectrum-band {
+        leaf upper-frequency {
+            type uint64;
+            description "The upper frequency bound of the media channel spectrum specified in MHz";
+        }
+        leaf lower-frequency {
+            type uint64;
+            description "The lower frequency bound of the media channel spectrum specified in MHz";
+        }
+        container frequency-constraint {
+            uses frequency-constraint;
+            description "none";
+        }
+        description "This data-type holds the spectrum information in termsof upper/lower frequency directly or optionally the information to determin this in terms of the nominal central frequency and spectral width for a FIXED grid (DWDM or CWDM) and FLEX grid type systems.";
+    }
+    typedef modulation-technique {
+        type enumeration {
+            enum RZ {
+                description "none";
+            }
+            enum NRZ {
+                description "none";
+            }
+            enum BPSK {
+                description "none";
+            }
+            enum DPSK {
+                description "none";
+            }
+            enum QPSK {
+                description "none";
+            }
+            enum 8QAM {
+                description "none";
+            }
+            enum 16QAM {
+                description "none";
+            }
+            enum PAM4 {
+                description "none";
+            }
+            enum PAM8 {
+                description "none";
+            }
+            enum UNDEFINED {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef laser-type {
+        type enumeration {
+            enum PUMP {
+                description "none";
+            }
+            enum MODULATED {
+                description "none";
+            }
+            enum PULSE {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef photonic-layer-qualifier {
+        type identityref {
+            base PHOTONIC_LAYER_QUALIFIER;
+        }
+        description "none";
+    }
+    typedef laser-control-type {
+        type enumeration {
+            enum FORCED-ON {
+                description "none";
+            }
+            enum FORCED-OFF {
+                description "none";
+            }
+            enum AUTOMATIC-LASER-SHUTDOWN {
+                description "none";
+            }
+            enum UNDEFINED {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef laser-control-status-type {
+        type enumeration {
+            enum ON {
+                description "none";
+            }
+            enum OFF {
+                description "none";
+            }
+            enum PULSING {
+                description "none";
+            }
+            enum UNDEFINED {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    grouping frequency-constraint {
+        leaf adjustment-granularity {
+            type adjustment-granularity;
+            description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency (in THz)";
+        }
+        leaf grid-type {
+            type grid-type;
+            description "Specifies the frequency grid standard used to determine the nominal central frequency and frequency slot width";
+        }
+        description "This data-type holds the frequency constraint information in terms of GridType ( FIXED grid (DWDM or CWDM) or FLEX grid) and AdjustmentGranularity.";
+    }
+}
