module ciena-waveserver-typedefs {
  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-typedefs";
  prefix cienawstypes;

  organization
    "Ciena Corporation";
  contact
    "Web URL: http://www.ciena.com/
     Postal:  7035 Ridge Road
             Hanover, Maryland 21076
             U.S.A.
     Phone:   +1 800-921-1144
     Fax:     +1 410-694-5750";
  description
    "This YANG module defines Ciena's commonly used typedefs";

  revision 2018-01-04 {
    description
      "Updated 'modem-frequency' range values for C-Band and L-Band capabilities.
       Added 'otn' enum value to 'conditioning-type' typedef.
       Removed unused OTUCn 'xcvr-mode' enum values and added OTL4.4/OTLC.4 support.
       Added 'ipaddr-or-hostname' typedef.";
    reference "Waveserver Ai user's guide.";
  }
  revision 2017-09-05 {
    description
      "Waveserver Platform Data Model
       Migrated from Waveserver Classic R1.4 YANG model.
       Updated namespace to 'ciena-waveserver'.
       Added 'xcvr-mode' enum values.
       Added 'power-state' typedef.
       Renamed 'channels-number' typedef to 'lanes-number'.
       Removed 'xcvr-id', 'ptp-id', 'port-id' types; use string types instead.
       Added 'conditioning-type' and 'conditioning-holdoff' typedefs.
       Remove line-module-type-bits typedef.
       Added 'trace-mismatch-mode' and 'trace-mismatch-fail-mode'.
       Added 'restart-reason'.
       Removed several unused typedefs.";
    reference "Waveserver Ai user's guide.";
  }

  typedef mac-string {
    type string {
      length "1..20";
    }
    description
      "MAC address string.";
  }

  typedef name-string {
    type string {
      length "1..32";
    }
    description
      "String type for object names used in Ciena defined modules. It must be a non empty string that is at most 32 characters long.";
  }

  typedef description-string {
    type string {
      length "0..128";
    }
    description
      "String type for description used in Ciena defined modules. Max length of 128 characters, plus null.";
  }

  typedef on-off-enum {
    type enumeration {
      enum "off" {
        description
          "Off";
      }
      enum "on" {
        description
          "On";
      }
    }
    description
      "Off and On enum toggle used in Ciena defined modules.";
  }

  typedef power-state {
    type enumeration {
      enum "automatic" {
        description
          "Power state is automatic (on/normal).";
      }
      enum "shutdown" {
        description
          "Power state is shutdown (off/low-power-mode).";
      }
    }
    description
      "Power state automatic (on/normal) or shutdown (off/low-power-mode).";
  }

  typedef yes-no-enum {
    type enumeration {
      enum "no" {
        description
          "No";
      }
      enum "yes" {
        description
          "Yes";
      }
    }
    description
      "No and Yes enum toggle used in Ciena defined modules.";
  }

  typedef up-down-enum {
    type enumeration {
      enum "down" {
        description
          "Object is down/disabled/failed.";
      }
      enum "up" {
        description
          "Object is up/operational.";
      }
    }
    description
      "Down and Up enum toggle used in Ciena defined modules.";
  }

  typedef enabled-disabled-enum {
    type enumeration {
      enum "disabled" {
        description
          "Object or attribute is disabled.";
      }
      enum "enabled" {
        description
          "Object or attribute is enabled.";
      }
    }
    description
      "Enabled and Disabled enum toggle used in Ciena defined modules.";
  }

  typedef yes-no-na-enum {
    type enumeration {
      enum "no" {
        description
          "No";
      }
      enum "yes" {
        description
          "Yes";
      }
      enum "not-applicable" {
        description
          "Not applicable";
      }
    }
    description
      "No and Yes enum toggle used in Ciena defined modules.";
  }

  typedef enabled-disabled-na-enum {
    type enumeration {
      enum "disabled" {
        description
          "Disabled";
      }
      enum "enabled" {
        description
          "Enabled";
      }
      enum "not-applicable" {
        description
          "Not applicable";
      }
    }
    description
      "Enabled, Disabled, and not-applicable enum used in Ciena defined modules.";
  }

  typedef wl-spacing {
    type enumeration {
      enum "50GHz" {
        description
          "50GHz wavelength spacing.";
      }
      enum "100GHz" {
        description
          "100GHz wavelength spacing.";
      }
      enum "200GHz" {
        description
          "200GHz wavelength spacing.";
      }
      enum "flex-grid" {
        description
          "Flex-grid wavelength spacing.";
      }
    }
    description
      "Wavelength spacing, 50GHz, 100GHz, 200GHz, or flex-grid. Only 'flex-grid' supported in Waveserver Ai R1.0.";
  }

  typedef decimal-3-dig {
    type decimal64 {
      fraction-digits 3;
      range "-2147483.0 .. 2147483.0";
    }
    description
      "Decimal value up to 3 digits.";
  }

  typedef decimal-2-dig-small {
    type decimal64 {
      fraction-digits 2;
      range "-30000.0 .. 30000.0";
    }
    description
      "Decimal value up to 2 digits.";
  }

  typedef decimal-2-dig {
    type decimal64 {
      fraction-digits 2;
      range "-21474836.0 .. 21474836.0";
    }
    description
      "Decimal value up to 2 digits.";
  }

  typedef decimal-1-dig {
    type decimal64 {
      fraction-digits 1;
      range "-214748364.0 .. 214748364.0";
    }
    description
      "Decimal value up to 1 digits.";
  }

  typedef string-sci {
    type string {
      length "0..32";
      pattern "[-+]?[0-9](\\.[0-9]+)?([eE][-+]?[0-9]+)?";
    }
    description
      "String in Scientific Notation format with a max length of 32 characters.";
  }

  typedef string-maxl-15 {
    type string {
      length "0..15";
    }
    description
      "Standard string that has a max length of 15 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-16 {
    type string {
      length "0..16";
    }
    description
      "Standard string that has a max length of 16 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-32 {
    type string {
      length "0..32";
    }
    description
      "Standard string that has a max length of 32 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-44 {
    type string {
      length "0..44";
    }
    description
      "Standard string that has a max length of 44 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-50 {
    type string {
      length "0..50";
    }
    description
      "Standard string that has a max length of 50 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-64 {
    type string {
      length "0..64";
    }
    description
      "Standard string that has a max length of 64 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-128 {
    type string {
      length "0..128";
    }
    description
      "Standard string that has a max length of 128 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-254 {
    type string {
      length "0..254";
    }
    description
      "Standard string that has a max length of 254 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef string-maxl-256 {
    type string {
      length "0..256";
    }
    description
      "Standard string that has a max length of 256 characters. Can be used for various nodes that may require string of this length.";
  }

  typedef ipaddr-or-hostname {
    type string {
      length "1..63";
    }
    description
      "IP address or hostname string.";
  }

  typedef port-name {
    type string {
      length "1..32";
    }
    description
      "A string representing a port interface name. Format is: '<slot>-<port>' or '<slot>-<majorport>.<minorport>'.";
  }

  typedef service-idx {
    type uint32 {
      range "0 .. 1000";
    }
    description
      "Service Index";
  }

  typedef service-domain-idx {
    type uint32 {
      range "0 .. 20";
    }
    description
      "Service Domain Index";
  }

  typedef xcvr-type {
    type enumeration {
      enum "not-available" {
        value 0;
        description
          "XCVR type not available.";
      }
      enum "unsupported" {
        value 1;
        description
          "XCVR type unsupported.";
      }
      enum "QSFPplus" {
        value 2;
        description
          "XCVR type QSFP+.";
      }
      enum "QSFP28" {
        value 3;
        description
          "XCVR type QSFP28.";
      }
      enum "WaveLogic 3 Extreme" {
        value 4;
        description
          "XCVR type WL3e.";
      }
      enum "WaveLogic Ai" {
        value 5;
        description
          "XCVR type WLAi.";
      }
    }
    description
      "Transceiver type.";
  }

  typedef xcvr-mode {
    type enumeration {
      enum "blank" {
        value 0;
        description
          "XCVR/slot is blank.";
      }
      enum "10GE" {
        value 10;
        description
          "XCVR mode 10 Gigabit Ethernet.";
      }
      enum "40GE" {
        value 40;
        description
          "XCVR mode 40 Gigabit Ethernet.";
      }
      enum "100GE" {
        value 100;
        description
          "XCVR mode 100 Gigabit Ethernet.";
      }
      enum "400GE" {
        value 400;
        description
          "XCVR mode 400 Gigabit Ethernet.";
      }
      enum "OTL4.4" {
        value 58044;
        description
          "XCVR mode OTL4.4.";
      }
      enum "OTLC.4" {
        value 58104;
        description
          "XCVR mode OTLC.4.";
      }
      enum "56-200" {
        value 560200;
        description
          "XCVR mode 56Gbaud, 200Gbps.";
      }
      enum "56-300" {
        value 560300;
        description
          "XCVR mode 56Gbaud, 300Gbps.";
      }
      enum "56-400" {
        value 560400;
        description
          "XCVR mode 56Gbaud, 400Gbps.";
      }
    }
    description
      "Transceiver mode.";
  }

  typedef line-sys-enum {
    type enumeration {
      enum "coloured" {
        description
          "Line system coloured.";
      }
      enum "colourless" {
        description
          "Line system colourless.";
      }
      enum "contentionless" {
        description
          "Line system contentionless.";
      }
      enum "cs-coloured" {
        description
          "Line system cs-coloured.";
      }
      enum "cs-colourless" {
        description
          "Line system cs-colourless.";
      }
    }
    description
      "Line system type.";
  }

  typedef lanes-number {
    type uint16 {
      range "0 .. 4";
    }
    description
      "Lane number common type, lane range is defined from 0 to 4.";
  }

  typedef connector-type-desc-enum {
    type enumeration {
      enum "Unknown or unspecified" {
        value 0;
        description
          "Unknown or unspecified.";
      }
      enum "SC - Subscriber Connector" {
        value 1;
        description
          "SC - Subscriber Connector.";
      }
      enum "Fibre Channel Style 1 copper connector" {
        value 2;
        description
          "Fibre Channel Style 1 copper connector.";
      }
      enum "Fibre Channel Style 2 copper connector" {
        value 3;
        description
          "Fibre Channel Style 2 copper connector.";
      }
      enum "BNC/TNC - Bayonet/Threaded Neill-Concelman" {
        value 4;
        description
          "BNC/TNC - Bayonet/Threaded Neill-Concelman.";
      }
      enum "Fibre Channel coax headers" {
        value 5;
        description
          "Fibre Channel coax headers.";
      }
      enum "Fiber Jack" {
        value 6;
        description
          "Fiber Jack.";
      }
      enum "LC - Lucent Connector" {
        value 7;
        description
          "LC - Lucent Connector.";
      }
      enum "MT-RJ - Mechanical Transfer - Registered Jack" {
        value 8;
        description
          "MT-RJ - Mechanical Transfer - Registered Jack.";
      }
      enum "MU - Multiple Optical" {
        value 9;
        description
          "MU - Multiple Optical.";
      }
      enum "SG" {
        value 10;
        description
          "SG.";
      }
      enum "Optical Pigtail" {
        value 11;
        description
          "Optical Pigtail.";
      }
      enum "MPO 1x12 - Multifiber Parallel Optic" {
        value 12;
        description
          "MPO 1x12 - Multifiber Parallel Optic.";
      }
      enum "MPO 2x16" {
        value 13;
        description
          "MPO 2x16.";
      }
      enum "HSSDC II - High Speed Serial Data Connector" {
        value 32;
        description
          "HSSDC II - High Speed Serial Data Connector.";
      }
      enum "Copper pigtail" {
        value 33;
        description
          "Copper pigtail.";
      }
      enum "RJ45 - Registered Jack" {
        value 34;
        description
          "RJ45 - Registered Jack.";
      }
      enum "No separable connector" {
        value 35;
        description
          "No separable connector.";
      }
      enum "MXC 2x16" {
        value 36;
        description
          "MXC 2x16.";
      }
    }
    description
      "Human readable description of Vendor's connector type byte value. Reference SFF-8024, table 4-3";
  }

  typedef modem-frequency {
    type decimal64 {
      fraction-digits 1;
      range "0.0 | 186087.5 .. 190956.2 | 191342.5 .. 196107.5";
    }
    units "GHz";
    description
      "Modem frequency, in GHz. 0.0 indicates unprovisioned (default) value. L-Band range is 186087.5 - 190956.2 GHz, and C-Band range is 191342.5 - 196107.5 GHz.";
  }

  typedef tx-power-lvl {
    type decimal64 {
      fraction-digits 1;
      range "-214748364.0 .. 214748364.0";
    }
    description
      "Modem Tx Power Level.";
  }

  typedef module-type-enum {
    type enumeration {
      enum "unknown" {
        description
          "Module type unknown.";
      }
      enum "integrated" {
        description
          "Module type integrated.";
      }
      enum "field-replaceable" {
        description
          "Module type field-replaceable.";
      }
    }
    description
      "Module type enum.";
  }

  typedef module-type-bits {
    type bits {
      bit integrated {
        position 0;
        description
          "Module type integrated.";
      }
      bit field-replaceable {
        position 1;
        description
          "Module type field-replaceable.";
      }
    }
    description
      "Module type bits.";
  }

  typedef restart-reason {
    type enumeration {
      enum "unknown" {
        description
          "Unknown restart reason.";
      }
      enum "user-warm" {
        description
          "User-initiated warm restart.";
      }
      enum "user-cold" {
        description
          "User-initiated cold restart.";
      }
      enum "system-warm" {
        description
          "System-initiated warm restart.";
      }
      enum "system-cold" {
        description
          "System-initiated cold restart.";
      }
      enum "power-on" {
        description
          "Device inserted or powered on.";
      }
    }
    description
      "Chassis/Module last restart reason.";
  }

  typedef conditioning-type {
    type enumeration {
      enum "none" {
        value 0;
        description
          "No consequent action.";
      }
      enum "laser-off" {
        value 1;
        description
          "Disable the transmitter consequent action.";
      }
      enum "ethernet" {
        value 2;
        description
          "Ethernet Local Fault consequent action.";
      }
      enum "otn" {
        value 3;
        description
          "OTN consequent action as defined in ITU-T G.798.";
      }
    }
    description
      "Egress UNI port consequent action for an EPL service to be applied on a far-end ingress UNI failure or network failure.";
  }

  typedef conditioning-holdoff {
    type int16 {
      range "0|10|20|30|40|50|60|70|80|90|100|200|300|400|500|600|700|800|900|1000";
    }
    units "ms";
    description
      "Number of milliseconds to delay Egress UNI port consequent action for an EPL service.";
  }

  typedef trace-mismatch-mode {
    type enumeration {
      enum "operator-only" {
        value 1;
        description
          "Trace mismatch detection criteria includes operator-specific trace string only. Other fields are ignored.";
      }
      enum "sapi" {
        value 2;
        description
          "Trace mismatch detection criteria includes source access point identifier (SAPI) trace string only. Other fields are ignored.";
      }
      enum "dapi" {
        value 3;
        description
          "Trace mismatch detection criteria includes destination access point identifier (DAPI) trace string only. Other fields are ignored.";
      }
      enum "sapi-and-dapi" {
        value 4;
        description
          "Trace mismatch detection criteria includes SAPI and DAPI strings. A mismatch of either of these fields will result in TTI mismatch. The operator specific field is ignored.";
      }
    }
    description
      "The trail trace identifier (TTI) mismatch mode, indicating which fields of the TTI overhead are used for trace mismatch detection.";
  }

  typedef trace-mismatch-fail-mode {
    type enumeration {
      enum "none" {
        description
          "TTI mismatch detection is disable or ignored. Do not raise an alarm on TTI mismatch condition.";
      }
      enum "alarm-only" {
        description
          "Raise an alarm when TTI mismatch occurs, but do not squelch traffic.";
      }
    }
    description
      "The trail trace identifier (TTI) mismatch failure mode. When TTI mismatch condition occurs, this indicates the consequent action taken, e.g. whether or not to raise an alarm.";
  }
}
