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