Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-common-service-types@2019-05-31.yang
diff --git a/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2019-05-31.yang b/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2019-05-31.yang
deleted file mode 100644 (file)
index 188263a..0000000
+++ /dev/null
@@ -1,1177 +0,0 @@
-module org-openroadm-common-service-types {
-  namespace "http://org/openroadm/common/service/types";
-  prefix org-openroadm-common-service-types;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-routing-constraints {
-    prefix org-openroadm-routing-constraints;
-    revision-date 2019-03-29;
-  }
-  import org-openroadm-topology {
-    prefix org-openroadm-topology;
-    revision-date 2019-05-31;
-  }
-  import org-openroadm-common-equipment-types {
-    prefix org-openroadm-common-equipment-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-common-state-types {
-    prefix org-openroadm-common-state-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-common-node-types {
-    prefix org-openroadm-common-node-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2019-05-31;
-  }
-  import org-openroadm-equipment-states-types {
-    prefix org-openroadm-equipment-states-types;
-    revision-date 2018-11-30;
-  }
-  import org-openroadm-service-format {
-    prefix org-openroadm-service-format;
-    revision-date 2019-05-31;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common service types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2019-05-31 {
-    description
-      "Version 5.1.0";
-  }
-  revision 2019-03-29 {
-    description
-      "Version 5.0.0";
-  }
-  revision 2018-11-30 {
-    description
-      "Version 4.1.0";
-  }
-  revision 2018-09-28 {
-    description
-      "Version 4.0.0";
-  }
-  revision 2018-05-30 {
-    description
-      "Version 3.1.0";
-  }
-  revision 2018-03-30 {
-    description
-      "Version 3.0.0";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity service-resiliency-type-identity {
-    description
-      "A unique resiliency type identification of the service.";
-  }
-
-  identity unprotected {
-    base service-resiliency-type-identity;
-    description
-      "the service is not protected in the OpenROADM layer";
-  }
-
-  identity unprotected-diversely-routed {
-    base service-resiliency-type-identity;
-    description
-      "the service is not protected in the OpenROADM layer, but may be protected in a higher layer
-          a coupled service that may be routed partially or fully disjointly is defined";
-  }
-
-  identity protected {
-    base service-resiliency-type-identity;
-    description
-      "the service is protected in the OpenROADM layer : the protection is handled
-       autonomously in this layer";
-  }
-
-  identity restorable {
-    base service-resiliency-type-identity;
-    description
-      "the service can be restored autonomously in the OpenROADM layer";
-  }
-
-  identity external-trigger-restorable {
-    base service-resiliency-type-identity;
-    description
-      "the service can be restored in the OpenROADM layer, but the restoration is triggered
-       at a higher layer through service models' rpc";
-  }
-
-  typedef rpc-actions {
-    type enumeration {
-      enum "service-create" {
-        value 1;
-      }
-      enum "service-feasibility-check" {
-        value 2;
-      }
-      enum "service-delete" {
-        value 3;
-      }
-      enum "equipment-notification" {
-        value 4;
-      }
-      enum "temp-service-create" {
-        value 5;
-      }
-      enum "temp-service-delete" {
-        value 6;
-      }
-      enum "service-roll" {
-        value 7;
-      }
-      enum "service-reconfigure" {
-        value 8;
-      }
-      enum "service-restoration" {
-        value 9;
-      }
-      enum "service-reversion" {
-        value 10;
-      }
-      enum "service-reroute" {
-        value 11;
-      }
-      enum "service-reroute-confirm" {
-        value 12;
-      }
-      enum "network-re-optimization" {
-        value 13;
-      }
-      enum "service-feasibility-check-bulk" {
-        value 14;
-      }
-      enum "ber-test" {
-        value 15;
-      }
-    }
-    description
-      "rpc-actions include all the rpc methods";
-  }
-
-  typedef ethernet-encoding-type {
-    type enumeration {
-      enum "10GBASE-W" {
-        value 1;
-      }
-      enum "10GBASE-R" {
-        value 2;
-      }
-    }
-  }
-
-  typedef mapping-mode-type {
-    type enumeration {
-      enum "GFP-F" {
-        value 1;
-        reference "GFP-F - ITU-T G.7041 SubClause 7.1, Payload Only";
-      }
-      enum "GFP-E" {
-        value 2;
-        reference "GFP-E - ITU-T G.7041 SubClause 7.9, Payload + Preamble + Ordered Sets";
-      }
-      enum "PCS-Transparent" {
-        value 3;
-        reference "PCS-Transparent - ITU-T G.709 Subclause 17.2 , CBR10G3 mapping to ODU2e";
-      }
-    }
-  }
-
-  typedef service-layer-type {
-    type enumeration {
-      enum "wdm" {
-        value 1;
-      }
-      enum "otn" {
-        value 2;
-      }
-    }
-  }
-
-  typedef service-notification-types {
-    type enumeration {
-      enum "service-create-result" {
-        value 1;
-      }
-      enum "service-reconfigure-result" {
-        value 2;
-      }
-      enum "service-delete-result" {
-        value 3;
-      }
-      enum "service-roll-result" {
-        value 4;
-      }
-      enum "service-revert-result" {
-        value 5;
-      }
-      enum "service-reroute-result" {
-        value 6;
-      }
-      enum "service-restoration-result" {
-        value 7;
-      }
-    }
-  }
-
-  typedef connection-type {
-    type enumeration {
-      enum "service" {
-        value 1;
-      }
-      enum "infrastructure" {
-        value 2;
-      }
-      enum "roadm-line" {
-        value 3;
-      }
-    }
-  }
-
-  typedef service-condition {
-    type enumeration {
-      enum "restored-temporarily" {
-        value 1;
-      }
-      enum "re-routed-temporarily" {
-        value 2;
-      }
-      enum "activated-for-service" {
-        value 3;
-      }
-      enum "activated-for-further-check" {
-        value 4;
-      }
-      enum "activated-for-troubleshooting-failure" {
-        value 5;
-      }
-    }
-  }
-
-  grouping service-and-supporting-services {
-    description
-        "Service identifiers and supporting services details";
-    uses service-identifiers-container;
-    uses supporting-services-identifiers-and-ends;
-  }
-
-  grouping supporting-services-identifiers-and-ends {
-    container supporting-services {
-      list supporting-service-details {
-        key "index";
-        leaf index {
-          type uint16;
-          description
-            "Service number of the supporting service";
-        }
-        uses service-identifiers-container;
-        uses service-ends-container;
-      }
-    }
-  }
-
-  grouping service-ends-container {
-    container service-a-end {
-      uses service-endpoint-summary;
-    }
-    container service-z-end {
-      uses service-endpoint-summary;
-    }
-  }
-
-  grouping service-endpoint-summary {
-    description
-        "Brief form of service-endpoint";
-    container service-endpoint-details {
-      leaf clli {
-        type string;
-        mandatory true;
-        description
-          "CLLI. Note this CLLI must match the site associated with the device-id of this endpoint";
-      }
-      uses org-openroadm-resource-types:device-id;
-      container tx-direction {
-        uses service-port;
-      }
-      container rx-direction {
-        uses service-port;
-      }
-    }
-  }
-
-  grouping service-identifiers-container {
-    container service-identifiers {
-      leaf service-name {
-        type string;
-      }
-      leaf common-id {
-        type string;
-      }
-      leaf version-number {
-        type uint64;
-      }
-    }
-  }
-
-  grouping configuration-response-common {
-    container configuration-response-common {
-      leaf request-id {
-        type string;
-        mandatory true;
-      }
-      leaf response-code {
-        type string;
-        mandatory true;
-      }
-      leaf response-message {
-        type string;
-      }
-      leaf ack-final-indicator {
-        type string;
-        mandatory true;
-      }
-    }
-  }
-
-  grouping response-parameters {
-    container response-parameters {
-      description
-        "Violated soft constraints";
-      uses org-openroadm-routing-constraints:routing-constraints;
-    }
-  }
-
-  grouping subrate-eth-sla {
-    container subrate-eth-sla {
-      presence "Explicit assignment of subrate ethernet allocation";
-      description
-        "SLA (Service Level Agreement) for subrate Ethernet";
-      uses org-openroadm-common-types:eth-rate-and-burst-size;
-    }
-  }
-
-  grouping service-endpoint {
-    leaf service-format {
-      type org-openroadm-service-format:service-format;
-      mandatory true;
-      description
-        "Format of the requested service: Ethernet, OTU, etc.";
-    }
-    leaf service-rate {
-      when "../service-format != 'OMS' and ../service-format != 'ODU'" {
-        description
-          "service rate not applicable when service
-           format is roadmline or ODU; valid for OTU since service-rate has
-           already been supported for wdm layer OTU services (100 for OTU4)";
-      }
-      type uint32;
-      description
-        "Rate of the requested service in GBps";
-    }
-    leaf other-service-format-and-rate {
-      type string;
-      description
-        "Used when service-format is set to other in the bookend xponder use case.
-         The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
-         and intended to allow the controller to support non-Open ROADM service formats.
-         This value encodes both the service format and the rate supported.
-         This field should not be specified when service format != other.";
-    }
-    leaf otu-service-rate {
-      when "../service-format = 'OTU'" {
-        description
-          "only applicable for OTU services";
-      }
-      type identityref {
-        base org-openroadm-otn-common-types:otu-rate-identity;
-      }
-      description
-        "OTU Rate of the requested service";
-    }
-    leaf odu-service-rate {
-      when "../service-format = 'ODU'" {
-        description
-          "only applicable for ODU services";
-      }
-      type identityref {
-        base org-openroadm-otn-common-types:odu-rate-identity;
-      }
-      description
-        "ODU Rate of the requested service";
-    }
-    leaf ethernet-encoding {
-      when
-        "(../service-format='Ethernet')
-         and
-         (../service-rate=10)" {
-        description
-          "Applicable only to Ethernet 10G services";
-      }
-      type ethernet-encoding-type;
-      description
-        "Ethernet encoding type";
-    }
-    leaf mapping-mode {
-      when
-        "(../service-format='Ethernet')
-         and
-         (../service-rate=10)" {
-        description
-          "Mapping Mode, currently only defined for Ethernet 10G services";
-      }
-      type mapping-mode-type;
-      description
-        "Mapping mode.";
-    }
-    leaf clli {
-      type string;
-      mandatory true;
-      description
-        "CLLI. Note this CLLI must match the site associated with the device-id of this
-         endpoint";
-    }
-    uses org-openroadm-resource-types:device-id;
-    container tx-direction {
-      uses service-port;
-      uses service-lgx;
-      uses service-tail;
-    }
-    container rx-direction {
-      uses service-port;
-      uses service-lgx;
-      uses service-tail;
-    }
-    leaf optic-type {
-      type org-openroadm-common-equipment-types:optic-types;
-    }
-    container router {
-      description
-        "Needed for communication with DWDM pluggable";
-      leaf node-id {
-        type org-openroadm-common-node-types:node-id-type;
-        description
-          "Node id. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-      leaf ip-address {
-        type inet:ip-address;
-        description
-          "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-      leaf url {
-        type string;
-        description
-          "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-    }
-    leaf user-label {
-      type string;
-      mandatory false;
-      description
-        "Label for service endpoint, defined by the user";
-    }
-    container subrate-eth-sla {
-      when "(../service-format='Ethernet')" {
-        description
-          "For any Ethernet services";
-      }
-      uses org-openroadm-common-service-types:subrate-eth-sla;
-    }
-  }
-
-  grouping sdnc-request-header {
-    container sdnc-request-header {
-      leaf request-id {
-        type string;
-      }
-      leaf rpc-action {
-        type rpc-actions;
-      }
-      leaf notification-url {
-        type string;
-      }
-      leaf request-system-id {
-        type string;
-      }
-    }
-  }
-
-  grouping service-port {
-    container port {
-      description
-        "From the device model perspective the port-device-name plus the port-circuit-pack-name plus the port-name uniquely identifies the port.
-         From the network model perspective the openroadm-topology-ref plus port-device-name plus port-name uniquely identify the termination point in the network model.";
-      leaf port-device-name {
-        type string;
-      }
-      leaf port-circuit-pack-name {
-        type string;
-      }
-      leaf port-type {
-        type string;
-      }
-      leaf port-name {
-        type string;
-      }
-      leaf port-rack {
-        type string;
-      }
-      leaf port-shelf {
-        type string;
-      }
-      leaf port-slot {
-        type string;
-      }
-      leaf port-sub-slot {
-        type string;
-      }
-    }
-  }
-
-  grouping service-lgx {
-    container lgx {
-      leaf lgx-device-name {
-        type string;
-      }
-      leaf lgx-port-name {
-        type string;
-      }
-      leaf lgx-port-rack {
-        type string;
-      }
-      leaf lgx-port-shelf {
-        type string;
-      }
-    }
-  }
-
-  grouping service-tail {
-    container tail {
-      container tail-roadm {
-        description
-          "ROADM on which the transponder is connected to (TID, IP Address,
-           or FQDN)";
-        uses org-openroadm-resource-types:device-id;
-      }
-      container xponder-port {
-        description
-          "Muxponder port used in tail, that will get used as a service endpoint.";
-        leaf circuit-pack-name {
-          type string;
-        }
-        leaf port-name {
-          type string;
-        }
-      }
-      leaf tail-roadm-port-aid {
-        type string;
-        description
-          "This will provide the transponder port needed to inter-city ROADM
-           connection";
-      }
-      leaf tail-roadm-port-rack-location {
-        type string;
-        description
-          "Transponder's location";
-      }
-    }
-  }
-
-  grouping service-information {
-    leaf due-date {
-      type yang:date-and-time;
-      description
-        "Date and time service to be turn up. If time is not specified for a given date, default to midnight. Service turned up immediately if no due date is specified";
-    }
-    leaf end-date {
-      type yang:date-and-time;
-      mandatory false;
-      description
-        "Date and time service to be removed";
-    }
-    uses eventHorizon;
-    leaf nc-code {
-      type string;
-      description
-        "NC code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf nci-code {
-      type string;
-      description
-        "NCI code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf secondary-nci-code {
-      type string;
-      description
-        "NC code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf customer {
-      type string;
-      description
-        "To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf customer-contact {
-      type string;
-      description
-        "Customer contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf operator-contact {
-      type string;
-      description
-        "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf service-layer {
-      type service-layer-type;
-      default "wdm";
-      description
-        "Layer associated with service (e.g. wdm or otn)";
-    }
-    leaf clli-network-ref {
-      type string;
-      description
-        "Assumption: a service would not span multiple clli-network layers.
-         Reference to the network-id of the clli-network layer.";
-    }
-    leaf openroadm-network-ref {
-      type string;
-      description
-        "Assumption: a service would not span multiple openroadm-network layers.
-         Reference to the network-id of the openroadm-network layer.";
-    }
-    leaf openroadm-topology-ref {
-      type string;
-      description
-        "Assumption: a service would not span multiple topology layers.
-         Reference to the network-id of either the openroadm-topology
-         or the otn-topology layer depending upon service-layer (wdm or otn).";
-    }
-    leaf bandwidth-calendaring {
-      type boolean;
-      description
-        "True if service is active only during a specific time period";
-    }
-    container bw-calendaring-parameters {
-      when "../bandwidth-calendaring = 'true'" {
-        description
-          "Includes all attributes associated with bandwidth calendaring option.
-           Used to set service profile : each service corresponds to one specific
-           time-period. Services defined on complementary time periods can be linked
-           together through the coupled-service attribute ";
-      }
-      list bw-calendaring-coupled-services {
-        key "service-index";
-        leaf service-index {
-          type uint16;
-          description
-            "service-number of the service that may be associated to the considered service";
-        }
-        leaf service-name {
-          type string;
-          description
-            "service-name of the service that may be associated to the considered service in service-list";
-        }
-        leaf common-id {
-          type string;
-          description
-            "common-id of the service that may be associated to the considered service in temp-service-list";
-        }
-        leaf version-number {
-          type uint64;
-          description
-            "common-id of the service that may be associated to the considered service in versioned-service-list";
-        }
-      }
-      list recurrence-pattern {
-        key "recurrence-id";
-        leaf recurrence-id {
-          type uint32;
-          description
-            "id of the pattern defining the time during which the service is active ";
-        }
-        leaf-list day-of-the-week {
-          type enumeration {
-            enum "Monday" {
-              value 1;
-            }
-            enum "Tuesday" {
-              value 2;
-            }
-            enum "Wednesday" {
-              value 3;
-            }
-            enum "Thursday" {
-              value 4;
-            }
-            enum "Friday" {
-              value 5;
-            }
-            enum "Saturday" {
-              value 6;
-            }
-            enum "Sunday" {
-              value 7;
-            }
-          }
-          description
-            "Each day for which the service is active from stat-time to end-time";
-        }
-        leaf start-time {
-          type string {
-            pattern "\\d{2}:\\d{2}:\\d{2}";
-          }
-          description
-            "start time expressed as hour:min:seconds";
-        }
-        leaf end-time {
-          type string {
-            pattern "\\d{2}:\\d{2}:\\d{2}";
-          }
-          description
-            "end time expressed as hour:min:seconds";
-        }
-      }
-    }
-  }
-
-  grouping routing-metric {
-    container routing-metric {
-      description
-        "Describes the metrics used to route a service.
-         All parameters of integer type, to set the priority of the routing criterion
-         '0' means the criterion is not used,
-         '1'coresponds to the highest priority,
-         '255'coresponds to the lowest priority.
-         Priority might be handled in several way : 1) To select one from several paths with the same metrics,
-         using lower priority metrics until metrics calculated allow the selection; 2) Using priority as
-         a weight for composite metric calculation";
-      leaf wdm-hop-count {
-        type uint8 {
-          range "0..255";
-        }
-        default "1";
-        description
-          "Metric corresponding to the number of hop in the wdm layer";
-      }
-      leaf otn-hop-count {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric corresponding to the number of hop in the otn layer";
-      }
-      leaf wdm-load {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric corresponding to the load of the wdm layer
-           Can be used to avoid using heavy loaded links ";
-      }
-      leaf otn-load {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric corresponding to the load of the otn layer.
-           Can be used to avoid using heavy loaded links/switchs ";
-      }
-      leaf latency {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric corresponding to the latency. Total path latency can be calculated from
-           SRLG length of the OMS and the latency introduced by the equipment";
-      }
-      leaf distance {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric associated with the distance. Total path distance can be
-           calculated from SRLG length of the OMS";
-      }
-      leaf wdm-TE-metric {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Used when routing shall be performed according to specific pre-defined
-           TE-Metric. Total path metric can be calculated from OMS TE-metric attribute
-           defined in org-openroadm-link module";
-      }
-      leaf adaptation-number {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Metric associated with the adaptation between layers. Total path metric can
-           can be calculated from the total number of transition between layers";
-      }
-      leaf otn-TE-metric {
-        type uint8 {
-          range "0..255";
-        }
-        default "0";
-        description
-          "Used when routing shall be performed according to specific pre-defined
-           metric associated with OTN (OTU/ODU level)";
-      }
-    }
-  }
-
-  grouping service-resiliency {
-    container service-resiliency {
-      leaf resiliency {
-        type identityref {
-          base service-resiliency-type-identity;
-        }
-        description
-          "describes the type of resiliency and the associated layer ";
-      }
-      leaf revertive {
-        when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
-          description
-            "revertive not applicable when service is neither protected nor restorable";
-        }
-        type boolean;
-        description
-          "defines if the service shall revert to the initial working path
-           after protection or restoration has been triggered and fault condition
-           has disappeared";
-      }
-      leaf wait-to-restore {
-        when "../revertive = 'true'" {
-          description
-            "wait-to-restore applies for service defined as revertive ";
-        }
-        type uint64;
-        units "ms";
-        description
-          "time delay to revert to initial path after conditions for reversion are satisfied";
-      }
-      leaf holdoff-time {
-        when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
-          description
-            "holdoff-time applies when services are either protected or restorable";
-        }
-        type uint64;
-        units "ms";
-        description
-          "time delay to initiate a protection or restoration event";
-      }
-      leaf pre-calculated-backup-path-number {
-        when "../resiliency = 'restorable' or ../resiliency = 'external-trigger-restorable'" {
-          description
-            "when service is restorable, defines the
-             number of paths that shall be or have been pre-calculated";
-        }
-        type uint8;
-        description
-          "Associated to service-create / reconfigure / feasibility-check rpcs
-           --> defines the target number of backup-paths to be calculated by PCE. This is an
-           optional parameter : operator can provide it to conform with specific engineering rules.
-           If not provided, PCE will evaluate the number of backup path to be provided automously.
-           Associated with service --> gives the effective number of backup-paths
-           returned/calculated by PCE that can be find in topology container";
-      }
-      container coupled-service {
-        when "../resiliency = 'unprotected-diversely-routed'" {
-          description
-            "for unprotected-diversely-routed services only one path is defined.
-             Allows providing a link between services that are coupled
-             through a routing disjonction criterion";
-        }
-        list coupled-services {
-          key "service-index";
-          leaf service-index {
-            type uint16;
-            description
-              "service-number of the service that may be routed disjointly to the considered service";
-          }
-          leaf service-name {
-            type string;
-            description
-              "service-name of the service that may be routed disjointly to the considered service in service-list";
-          }
-          leaf common-id {
-            type string;
-            description
-              "common-id of the service that may be routed disjointly to the considered service in temp-service-list";
-          }
-          leaf version-number {
-            type uint64;
-            description
-              "common-id of the service that may be routed disjointly to the considered service in versioned-service-list";
-          }
-        }
-      }
-    }
-  }
-
-  grouping service {
-    leaf service-name {
-      type string;
-      description
-        "Identifier for the service to be created in
-         the ROADM network, e.g., CLFI, CLCI, etc.";
-    }
-    leaf common-id {
-      type string;
-      description
-        "To be used by the ROADM controller to identify the routing
-         constraints received from planning application (PED).";
-    }
-    uses sdnc-request-header;
-    uses service-resiliency;
-    uses routing-metric;
-    leaf connection-type {
-      type connection-type;
-      mandatory true;
-      description
-        "Connection type";
-    }
-    leaf lifecycle-state {
-      type org-openroadm-common-state-types:lifecycle-state;
-      description
-        "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Administrative State: Intended state of service";
-    }
-    leaf operational-state {
-      type org-openroadm-common-state-types:state;
-      config false;
-      description
-        "Operational State: Actual state of service";
-    }
-    leaf condition {
-      type service-condition;
-      description
-        "Service Condition: Additional information about the state of the service. Only sent when applicable.";
-    }
-    container service-a-end {
-      uses service-endpoint;
-    }
-    container service-z-end {
-      uses service-endpoint;
-    }
-    uses org-openroadm-routing-constraints:routing-constraints;
-    uses service-information;
-    leaf latency {
-      type uint32;
-      description
-        "Latency on service";
-    }
-    leaf-list fiber-span-srlgs {
-      type string;
-      description
-        "Shared risk link group identifiers";
-    }
-    list equipment-srgs {
-      key "srg-number";
-      uses org-openroadm-resource-types:srg-number;
-    }
-    leaf-list supporting-service-name {
-      type string;
-      description
-        "The service name that this runs over top. If connection-type is service, then this is the related
-         connection-type = infrastructure service, for example.";
-    }
-    leaf current-active-path-id {
-      type uint8;
-      description
-        "defines the current active path : '0' if active path is the working path
-         id of the active backup path if protection or restoration has been triggered";
-    }
-    container topology {
-      description
-        "topology corresponds to working-path which is the default path. It defines the initial path
-         to which services defined as revertive may revert to when the failure condition disappear";
-      uses org-openroadm-topology:topology;
-    }
-    container backup-topology {
-      list backup-path {
-        key "backup-path-id";
-        leaf backup-path-id {
-          type uint8 {
-            range "1..255";
-          }
-          description
-            "Several backup paths may be used when backup-paths are pre-calculated.
-             Backup-path-id avoids 0 which is associated with working path in current-active-path";
-        }
-        leaf failure-case-id {
-          type string;
-          description
-            "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
-        }
-        uses org-openroadm-topology:topology;
-      }
-    }
-    container network-topology {
-      uses org-openroadm-topology:network-topology;
-    }
-    container network-backup-topology {
-      list backup-path {
-        key "backup-path-id";
-        leaf backup-path-id {
-          type uint8 {
-            range "1..255";
-          }
-          description
-            "Several backup paths may be used when backup-paths are pre-calculated.
-             Backup-path-id avoids 0 which is associated with working path in current-active-path";
-        }
-        leaf failure-case-id {
-          type string;
-          description
-            "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
-        }
-        uses org-openroadm-topology:network-topology;
-      }
-    }
-    leaf is-bandwidth-locked {
-      type boolean;
-      default "false";
-      description
-        "Bandwidth lock (true, false) indicates whether the service is administratively
-         prohibited from taking on more capacity - ie whether it can be used as a supporting
-         service in any new service creations. Unlike administrative status, this does not
-         impact any previous planned or deployed services.";
-    }
-  }
-
-  grouping service-notification-result {
-    leaf service-name {
-      type string;
-      description
-        "Identifier for the service e.g., CLFI, CLCI, etc.";
-    }
-    leaf version-number {
-      type uint64;
-      description
-        "Identifier for the versioned service";
-    }
-    leaf common-id {
-      type string;
-      description
-        "Identifier for the temp service";
-    }
-    leaf actual-date {
-      type yang:date-and-time;
-      description
-        "Actual date and time (if successful)";
-    }
-  }
-
-  grouping equipment-info {
-    leaf equipment-identifier {
-      type string;
-    }
-    leaf equipment-type {
-      type string;
-      description
-        "The set of valid value is derived from the equipment-type grouping used in the device model.";
-    }
-    leaf equipment-quantity {
-      type uint32;
-    }
-    leaf lifecycle-state {
-      type org-openroadm-common-state-types:lifecycle-state;
-    }
-  }
-
-  grouping eventHorizon {
-    leaf eventHorizonStart {
-      type yang:date-and-time;
-      description
-        "Start time to ensure that the service is routable and viable. Required resources shall
-         be considered reserved from this time. If not provided, defaults to due-date.";
-    }
-    leaf eventHorizonEnd {
-      type yang:date-and-time;
-      description
-        "End time to ensure that the service is routable and viable. Required resources shall
-         be considered reserved until this time. If not provided, defaults to end-date.";
-    }
-  }
-}