diff --git a/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang b/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang
old mode 100644
new mode 100755
index 9a53635..5ae8fe1
--- a/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang
+++ b/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang
@@ -35,28 +35,28 @@
             YANG models included in this release are not backward compatible with previous TAPI releases.
           - 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
+        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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
@@ -269,649 +269,649 @@
         }
         description "none";
     }
-    /***********************
+
+   /**************************
     * package object-classes
-    **********************/ 
-        grouping otsi-gserver-adaptation-pac {
-            leaf number-of-otsi {
-                type uint64;
-                config false;
-                description "none";
-            }
+    **************************/
+    grouping otsi-gserver-adaptation-pac {
+        leaf number-of-otsi {
+            type uint64;
+            config false;
             description "none";
         }
-        grouping otsi-connection-end-point-spec {
-            container otsi-termination {
-                config false;
-                uses otsi-termination-pac;
-                description "none";
-            }
+        description "none";
+    }
+    grouping otsi-connection-end-point-spec {
+        container otsi-termination {
+            config false;
+            uses otsi-termination-pac;
             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 otsi-termination-pac {
+        container selected-central-frequency {
+            config false;
+            uses central-frequency;
             description "none";
         }
-        grouping media-channel-node-edge-point-spec {
-            container mc-pool {
-                config false;
-                uses media-channel-pool-capability-pac;
-                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";
         }
-        grouping otsi-routing-spec {
-            leaf optical-routing-strategy {
-                type optical-routing-strategy;
-                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";
         }
-        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";
-            }
+        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";
         }
-        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";
-            }
+        list available-spectrum {
+            key 'upper-frequency lower-frequency';
+            config false;
+            uses spectrum-band;
             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";
-            }
+        list occupied-spectrum {
+            key 'upper-frequency lower-frequency';
+            config false;
+            uses spectrum-band;
             description "none";
         }
-        grouping otsi-connectivity-service-end-point-spec {
-            container otsi-config {
-                uses otsi-termination-config-pac;
-                description "none";
-            }
+        description "none";
+    }
+    grouping media-channel-node-edge-point-spec {
+        container mc-pool {
+            config false;
+            uses media-channel-pool-capability-pac;
             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 otsi-routing-spec {
+        leaf optical-routing-strategy {
+            type optical-routing-strategy;
             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-properties-pac {
+        container occupied-spectrum {
+            config false;
+            uses spectrum-band;
             description "none";
         }
-        grouping media-channel-service-interface-point-spec {
-            container mc-pool {
-                config false;
-                uses media-channel-pool-capability-pac;
-                description "none";
-            }
+        container measured-power-ingress {
+            config false;
+            uses power-properties-pac;
             description "none";
         }
-        grouping media-channel-connectivity-service-end-point-spec {
-            container mc-config {
-                uses media-channel-config-pac;
-                description "none";
-            }
+        container measured-power-egress {
+            uses power-properties-pac;
             description "none";
         }
-        grouping media-channel-config-pac {
-            container spectrum {
-                uses spectrum-band;
-                description "none";
-            }
+        description "none";
+    }
+    grouping otsi-assembly-connection-end-point-spec {
+        container otsi-adapter {
+            config false;
+            uses otsi-gserver-adaptation-pac;
             description "none";
         }
-        grouping media-channel-connection-end-point-spec {
-            container media-channel {
-                config false;
-                uses media-channel-properties-pac;
-                description "none";
-            }
+        container fec-parameters {
+            config false;
+            uses fec-properties-pac;
             description "none";
         }
-        grouping ots-connection-end-point-spec {
-            container ots-media-channel {
-                config false;
-                uses media-channel-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";
         }
-        grouping media-channel-assembly-spec {
+        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";
         }
-        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 otsi-connectivity-service-end-point-spec {
+        container otsi-config {
+            uses otsi-termination-config-pac;
             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.";
+        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";
         }
-        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";
-            }
+        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;
+    **************************/
+    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";
         }
-        identity PHOTONIC_LAYER_QUALIFIER_OTSi {
-            base PHOTONIC_LAYER_QUALIFIER;
+        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";
         }
-        identity PHOTONIC_LAYER_QUALIFIER_OTSiA {
-            base PHOTONIC_LAYER_QUALIFIER;
-            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. ";
         }
-        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 "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";
             }
-            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;
+            enum NO_RELAY {
                 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;
+            enum MIN_RELAY {
                 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";
-                }
+            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";
         }
-        typedef laser-type {
-            type enumeration {
-                enum PUMP {
-                    description "none";
-                }
-                enum MODULATED {
-                    description "none";
-                }
-                enum PULSE {
-                    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";
             }
-            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";
+            }
         }
-        typedef photonic-layer-qualifier {
-            type identityref {
-                base PHOTONIC_LAYER_QUALIFIER;
+        description "none";
+    }
+    typedef laser-type {
+        type enumeration {
+            enum PUMP {
+                description "none";
             }
-            description "none";
+            enum MODULATED {
+                description "none";
+            }
+            enum PULSE {
+                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";
+        description "none";
+    }
+    typedef photonic-layer-qualifier {
+        type identityref {
+            base PHOTONIC_LAYER_QUALIFIER;
         }
-        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";
+    }
+    typedef laser-control-type {
+        type enumeration {
+            enum FORCED-ON {
+                description "none";
             }
-            description "none";
+            enum FORCED-OFF {
+                description "none";
+            }
+            enum AUTOMATIC-LASER-SHUTDOWN {
+                description "none";
+            }
+            enum UNDEFINED {
+                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)";
+        description "none";
+    }
+    typedef laser-control-status-type {
+        type enumeration {
+            enum ON {
+                description "none";
             }
-            leaf grid-type {
-                type grid-type;
-                description "Specifies the frequency grid standard used to determine the nominal central frequency and frequency slot width";
+            enum OFF {
+                description "none";
             }
-            description "This data-type holds the frequency constraint information in terms of GridType ( FIXED grid (DWDM or CWDM) or FLEX grid) and AdjustmentGranularity.";
+            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.";
+    }
 }
