Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-service@2021-12-10.yang
diff --git a/ordmodels/service/src/main/yang/org-openroadm-service@2021-12-10.yang b/ordmodels/service/src/main/yang/org-openroadm-service@2021-12-10.yang
new file mode 100644 (file)
index 0000000..9f9f0b1
--- /dev/null
@@ -0,0 +1,1697 @@
+module org-openroadm-service {
+  yang-version 1.1;
+  namespace "http://org/openroadm/service";
+  prefix org-openroadm-service;
+
+  import ietf-yang-types {
+    prefix yang;
+    revision-date 2013-07-15;
+  }
+  import org-openroadm-routing-constraints {
+    prefix org-openroadm-routing-constraints;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-resource-types {
+    prefix org-openroadm-resource-types;
+    revision-date 2021-09-24;
+  }
+  import org-openroadm-resource {
+    prefix org-openroadm-resource;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-controller-customization {
+    prefix org-openroadm-controller-customization;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-topology {
+    prefix org-openroadm-topology;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-operational-mode-catalog {
+    prefix org-openroadm-operational-mode-catalog;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-common-optical-channel-types {
+    prefix org-openroadm-common-optical-channel-types;
+    revision-date 2021-12-10;
+  }
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of services.
+
+      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 2021-12-10 {
+    description
+      "Version 10.1";
+  }
+  revision 2021-09-24 {
+    description
+      "Version 10.0";
+  }
+  revision 2021-05-28 {
+    description
+      "Version 9.1";
+  }
+  revision 2021-03-26 {
+    description
+      "Version 9.0";
+  }
+  revision 2020-12-11 {
+    description
+      "Version 8.1";
+  }
+  revision 2020-09-25 {
+    description
+      "Version 8.0";
+  }
+  revision 2020-05-29 {
+    description
+      "Version 7.1.0";
+  }
+  revision 2020-03-27 {
+    description
+      "Version 7.0.0";
+  }
+  revision 2019-11-29 {
+    description
+      "Version 6.1.0";
+  }
+  revision 2019-09-27 {
+    description
+      "Version 6.0.0";
+  }
+  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";
+  }
+
+  grouping proposed-equipment-g {
+    leaf propose-equipment {
+      type enumeration {
+        enum never {
+          value 1;
+        }
+        enum ifNeeded {
+          value 2;
+        }
+        enum always {
+          value 3;
+        }
+      }
+      default "ifNeeded";
+      description
+        "Whether or not this request can propose new equipment that could
+         be used to fulfill this request. If never, the request will just
+         use existing deployed and planned equipment. If ifNeeded, routes using existing equipment
+         will be preferred. If always, a route with proposed equipment shall be returned, if possible";
+    }
+  }
+
+  grouping service-feasibility-check-inputs {
+    leaf connection-type {
+      type org-openroadm-common-service-types:connection-type;
+    }
+    uses org-openroadm-common-service-types:resource-status;
+    uses org-openroadm-common-service-types:routing-metric;
+    uses org-openroadm-common-service-types:service-resiliency;
+    uses proposed-equipment-g;
+    container service-a-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      container requesting-interface-properties {
+        when "../../connection-type = 'optical-tunnel'" {
+          description
+            "an optical-tunnel service creation request triggers a container
+              that includes the description of the characteristics of the
+              external optical transceiver handled by a 3rd party controller";
+        }
+        uses org-openroadm-common-service-types:external-interface-characteristics;
+      }
+    }
+    container service-z-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      container requesting-interface-properties {
+        when "../../connection-type = 'optical-tunnel'" {
+          description
+            "an optical-tunnel service creation request triggers a container
+              that includes the description of the characteristics of the
+              external optical transceiver handled by a 3rd party controller";
+        }
+        uses org-openroadm-common-service-types:external-interface-characteristics;
+      }
+    }
+    uses org-openroadm-routing-constraints:routing-constraints;
+    uses org-openroadm-common-service-types:service-information;
+    uses org-openroadm-common-service-types:max-regeneration-options;
+    uses org-openroadm-common-service-types:existing-service-grouping {
+      refine "existing-service-attributes/reusable-existing-resources" {
+        default "all";
+      }
+    }
+  }
+
+  grouping service-feasibility-check-outputs {
+    leaf connection-type {
+      type org-openroadm-common-service-types:connection-type;
+    }
+    uses org-openroadm-common-service-types:resource-status;
+    uses org-openroadm-common-service-types:routing-metric;
+    uses org-openroadm-common-service-types:service-resiliency;
+    uses proposed-equipment-g;
+    uses org-openroadm-common-service-types:service-information;
+    container service-a-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      list equipment-required {
+        key "equipment-identifier";
+        description
+          "List of required equipment, including equipment type, state and
+           quantity";
+        uses org-openroadm-common-service-types:equipment-info;
+      }
+      container expected-settings-and-performances {
+        when "(../../connection-type = 'optical-tunnel' or ../../connection-type = 'infrastructure')" {
+          description
+            "Performances and settings are provided for wavelength services
+             whether they are based on end to end services or optical-tunnels";
+        }
+        uses org-openroadm-resource:common-och-otsi-attributes;
+        uses org-openroadm-resource:path-computation-outputs;
+      }
+    }
+    container service-z-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      list equipment-required {
+        key "equipment-identifier";
+        description
+          "List of required equipment, including equipment type, state and
+           quantity";
+        uses org-openroadm-common-service-types:equipment-info;
+      }
+      container expected-settings-and-performances {
+        when "(../../connection-type = 'optical-tunnel' or ../../connection-type = 'infrastructure')" {
+          description
+            "Performances and settings are provided for wavelength services
+             whether they are based on end to end services or optical-tunnels";
+        }
+        uses org-openroadm-resource:common-och-otsi-attributes;
+        uses org-openroadm-resource:path-computation-outputs;
+      }
+    }
+    uses org-openroadm-common-service-types:intermediate-site-container;
+    container requested-service-topology {
+      description
+        "This corresponds to the topology of the service requested. Includes all the
+         containers: topology, backup topology, network topology, and
+         network backup-topology";
+      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;
+        }
+      }
+    }
+    list supporting-service-hierarchy {
+      key "service-identifier";
+      description
+        "This lists all the supporting services and their respective hierarchy, includes the
+         proposed one";
+      uses org-openroadm-common-service-types:service-hierarchy;
+    }
+    uses service-path-metrics;
+    uses org-openroadm-common-service-types:max-regeneration-options;
+    uses org-openroadm-common-service-types:regeneration-option-list;
+    uses org-openroadm-common-service-types:existing-service-grouping {
+      refine "existing-service-attributes/reusable-existing-resources" {
+        default "all";
+      }
+    }
+  }
+
+  grouping service-path-metrics {
+    container primary-path-metrics {
+      description
+        "These service metrics are associated with primary
+         service path";
+      uses service-metrics;
+    }
+    list backup-path-metrics {
+      key "backup-path-id";
+      description
+        "These service metrics are associated with the backup
+         service path";
+      leaf backup-path-id {
+        type uint8 {
+          range "1..255";
+        }
+        description
+          "Unique identifier for the backup service path";
+      }
+      uses service-metrics;
+    }
+  }
+
+  grouping service-metrics {
+    container service-metrics {
+      description
+        "All the metrics associated with end-to-end service feasibility
+         This container will have all the metrics that have'max' contraint in
+         org-openroadm-routing-constraints";
+      leaf latency {
+        description
+          "Provides one-way end-to-end latency (in milliseconds) of a service-path; 
+          It can be measured or estimated";
+        type decimal64 {
+          fraction-digits 3;
+        }
+        units "milliseconds";
+      }
+      leaf distance {
+        type decimal64 {
+          fraction-digits 2;
+        }
+        units "km";
+        description
+          "Provides end-to-end distance of a service-path";
+      }
+      container hop-count {
+        description
+          "Maximum hops allowed";
+        leaf wdm-hop-count {
+          type uint8;
+        }
+        leaf otn-hop-count {
+          type uint8;
+        }
+      }
+      container TE-metric {
+        description
+          "Maximum cost allowed";
+        leaf wdm-TE-metric {
+          type uint32;
+        }
+        leaf otn-TE-metric {
+          type uint32;
+        }
+      }
+    }
+  }
+
+  rpc service-create {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be created in
+           the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
+      }
+      leaf common-id {
+        type string;
+        description
+          "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+      }
+      uses org-openroadm-common-service-types:service-order;
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
+      leaf connection-type {
+        type org-openroadm-common-service-types:connection-type;
+        mandatory true;
+      }
+      uses org-openroadm-common-service-types:resource-status;
+      container service-a-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+      }
+      container service-z-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+      }
+      uses org-openroadm-routing-constraints:routing-constraints;
+      uses org-openroadm-common-service-types:service-information;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:response-parameters;
+    }
+  }
+
+  rpc service-create-bulk {
+    description
+      "Whether this request passed initial validation and was accepted for processing.
+       Once the request completes processing, a service-rpc-result Notification shall be
+       sent. This is 'all' or 'nothing' operation, which means that either all services
+       are created or none of them will be created.";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      list service-request-list {
+        key "service-name";
+        leaf service-name {
+          type string;
+          mandatory true;
+          description
+            "Identifier for the service to be created in
+             the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
+        }
+        leaf common-id {
+          type string;
+          description
+            "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+        }
+        uses org-openroadm-common-service-types:service-order;
+        uses org-openroadm-common-service-types:routing-metric;
+        uses org-openroadm-common-service-types:service-resiliency;
+        leaf connection-type {
+          type org-openroadm-common-service-types:connection-type;
+          mandatory true;
+        }
+        uses org-openroadm-common-service-types:resource-status;
+        container service-a-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        container service-z-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        uses org-openroadm-routing-constraints:routing-constraints;
+        uses org-openroadm-common-service-types:service-information;
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      list service-response-list {
+        key "service-name";
+        leaf service-name {
+          type string;
+          mandatory true;
+        }
+        uses org-openroadm-common-service-types:response-parameters;
+      }
+    }
+  }
+
+  rpc temp-service-create-bulk {
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      list service-request-list {
+        key "common-id";
+        leaf common-id {
+          type string;
+          mandatory true;
+          description
+            "To be used by the ROADM controller to identify the routing constraints
+             received from planning application (PED).";
+        }
+        uses org-openroadm-common-service-types:service-order;
+        uses org-openroadm-common-service-types:routing-metric;
+        uses org-openroadm-common-service-types:service-resiliency;
+        leaf connection-type {
+          type org-openroadm-common-service-types:connection-type;
+          mandatory true;
+        }
+        uses org-openroadm-common-service-types:resource-status;
+        container service-a-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        container service-z-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        uses org-openroadm-routing-constraints:routing-constraints;
+        uses org-openroadm-common-service-types:service-information;
+        uses org-openroadm-common-service-types:existing-service-grouping {
+            refine "existing-service-attributes/reusable-existing-resources" {
+              default "all";
+            }
+        }
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      list service-response-list {
+        key "common-id";
+        leaf common-id {
+          type string;
+          mandatory true;
+        }
+        uses org-openroadm-common-service-types:response-parameters;
+        uses org-openroadm-common-service-types:existing-service-grouping {
+            refine "existing-service-attributes/reusable-existing-resources" {
+              default "all";
+            }
+        }
+      }
+    }
+  }
+
+  rpc service-create-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+      uses service-path-metrics;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-create-complex-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-and-supporting-services;
+      uses service-path-metrics;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-delete-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-delete-complex-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-and-supporting-services;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-feasibility-check {
+    description
+      "Whether a service was possible to be created, and if so
+       the routing constraints match and the a and z end connection that have
+       to match
+       Takes a potential service and determines if it is possible in the network
+       using equipment that is installed on the network, formally planned or proposed for planning.
+       No resources are reserved, provisioned or planned as a result of this operation";
+    input {
+      leaf common-id {
+        type string;
+        mandatory true;
+        description
+          "To be used by the ROADM controller to identify the routing constraints
+           received from planning application (PED).";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses service-feasibility-check-inputs;
+    }
+    output {
+      leaf common-id {
+        type string;
+        mandatory true;
+        description
+          "To be used by the ROADM controller to identify the routing constraints
+           received from planning application (PED).";
+      }
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:response-parameters;
+      uses service-feasibility-check-outputs;
+    }
+  }
+
+  rpc service-feasibility-check-bulk {
+    description
+      "Whether a service was possible to be created, and if so
+       the routing constraints match and the a and z end connection that have
+       to match
+
+       Takes a list of potential services and determines if they are possible in the network
+       using equipment that is installed on the network, formally planned or proposed for planning.
+       All services are treated collectively to ensure that a given resource is not used more than once.
+       No resources are reserved, provisioned or planned as a result of this operation";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      list service-request-list {
+        key "common-id";
+        leaf common-id {
+          type string;
+          mandatory true;
+          description
+            "To be used by the ROADM controller to identify the routing constraints
+             received from planning application (PED).";
+        }
+        uses service-feasibility-check-inputs;
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      list service-response-list {
+        key "common-id";
+        leaf common-id {
+          type string;
+          mandatory true;
+          description
+            "To be used by the ROADM controller to identify the routing constraints
+             received from planning application (PED).";
+        }
+        uses org-openroadm-common-service-types:response-parameters;
+        uses service-feasibility-check-outputs;
+      }
+    }
+  }
+
+  rpc service-delete {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      container service-delete-req-info {
+        leaf service-name {
+          type string;
+          mandatory true;
+          description
+            "Identifier for the service to be deleted in
+             the ROADM network, e.g., CLFI, CLCI, etc.";
+        }
+        leaf due-date {
+          type yang:date-and-time;
+          description
+            "date and time service to be turned down. If missing, now.";
+        }
+        leaf tail-retention {
+          type enumeration {
+            enum yes {
+              value 1;
+              description
+                "tails are left intact ";
+            }
+            enum no {
+              value 2;
+              description
+                "tails are deleted";
+            }
+          }
+          mandatory true;
+        }
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc equipment-notification {
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      leaf equipment-id {
+        type string;
+        mandatory true;
+      }
+      leaf equipment-name {
+        type string;
+      }
+      leaf equipment-type {
+        type string;
+        mandatory true;
+        description
+          "The set of valid value is derived from the equipment-type grouping used in the device model.";
+      }
+      leaf equipment-vendor {
+        type string;
+        mandatory true;
+      }
+      leaf equipment-customer {
+        type string;
+      }
+      leaf equipment-clli {
+        type string;
+        mandatory true;
+      }
+      leaf equipment-ip {
+        type string;
+      }
+      leaf controller-id {
+        type string;
+        mandatory true;
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc temp-service-create {
+    input {
+      leaf common-id {
+        type string;
+        mandatory true;
+        description
+          "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+      }
+      uses org-openroadm-common-service-types:service-order;
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      leaf connection-type {
+        type org-openroadm-common-service-types:connection-type;
+        mandatory true;
+      }
+      uses org-openroadm-common-service-types:resource-status;
+      container service-a-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+        container requesting-interface-properties {
+          when "../../connection-type = 'optical-tunnel'" {
+            description
+              "an optical-tunnel service creation request triggers a container
+               that includes the description of the characteristics of the
+               external optical transceiver handled by a 3rd party controller";
+          }
+          uses org-openroadm-common-service-types:external-interface-characteristics;
+        }
+      }
+      container service-z-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+        container requesting-interface-properties {
+          when "../../connection-type = 'optical-tunnel'" {
+            description
+              "an optical-tunnel service creation request triggers a container
+               that includes the description of the characteristics of the
+               external optical transceiver handled by a 3rd party controller";
+          }
+          uses org-openroadm-common-service-types:external-interface-characteristics;
+        }
+      }
+      uses org-openroadm-routing-constraints:routing-constraints;
+      uses org-openroadm-common-service-types:service-information;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
+      uses org-openroadm-common-service-types:existing-service-grouping {
+        refine "existing-service-attributes/reusable-existing-resources" {
+          default "all";
+        }
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:response-parameters;
+      uses org-openroadm-common-service-types:existing-service-grouping {
+        refine "existing-service-attributes/reusable-existing-resources" {
+          default "all";
+        }
+      }
+    }
+  }
+
+  rpc temp-service-delete {
+    input {
+      leaf common-id {
+        type string;
+        mandatory true;
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-roll {
+    description
+      "This rpc can be use to roll a service according to 2 possible options :
+         A new path may (no path pre-calculation) or may not be calculated according
+         to the parameters provided (which includes metrics). If path computation has been triggered
+         and is successful, a new path is provided, and the service can be rolled according to that path.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be rolled in
+           the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      leaf due-date {
+        type yang:date-and-time;
+        description
+          "date and time service to be rolled";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-roll-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-reconfigure {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Existing identifier for the service to be
+           reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      leaf new-service-name {
+        type string;
+        description
+          "New identifier for the service to be
+           reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      leaf data-reload {
+        type boolean;
+        description 
+          "Indicates whether the data of existing service needs to be refreshed or 
+          reloaded. No reprovisioning/reconfiguration should be done to the service, 
+          only data is updated. May generate data conflict to existing service         
+          after reload. If set true, the data of existing service will be refreshed";
+      }
+      leaf common-id {
+        type string;
+        description
+          "To be used by the ROADM controller to identify the routing
+           constraints received from planning application (PED).";
+      }
+      uses org-openroadm-common-service-types:service-order;
+      leaf connection-type {
+        type org-openroadm-common-service-types:connection-type;
+      }
+      uses org-openroadm-common-service-types:resource-status;
+      container service-a-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+        container requesting-interface-properties {
+          when "../../connection-type = 'optical-tunnel'" {
+            description
+              "an optical-tunnel service creation request triggers a container
+                that includes the description of the characteristics of the
+                external optical transceiver handled by a 3rd party controller";
+          }
+          uses org-openroadm-common-service-types:external-interface-characteristics;
+        }
+      }
+      container service-z-end {
+        uses org-openroadm-common-service-types:service-endpoint;
+        container requesting-interface-properties {
+          when "../../connection-type = 'optical-tunnel'" {
+            description
+              "an optical-tunnel service creation request triggers a container
+                that includes the description of the characteristics of the
+                external optical transceiver handled by a 3rd party controller";
+          }
+          uses org-openroadm-common-service-types:external-interface-characteristics;
+        }
+      }
+      uses org-openroadm-routing-constraints:routing-constraints;
+      uses org-openroadm-common-service-types:service-information;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
+    }
+    output {
+      // Augment the reconfigure response with the data-reload
+      uses org-openroadm-common-service-types:configuration-response-common {
+        augment "configuration-response-common" {
+          leaf ack-data-reload-indicator {
+            type string;
+            description
+              "This optional, meaning this will be populated only when
+              the data-reload indicator is set true";
+          }
+        }
+      }
+      uses org-openroadm-common-service-types:response-parameters;
+    }
+  }
+
+  rpc service-reconfigure-bulk {
+         description
+      "Whether bulk of requests passed initial validation and was accepted for 
+      processing. Once the request completes processing, a service-rpc-result 
+      Notification shall be sent.";
+         input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      list service-reconfigure-list {
+        key "service-name";
+        leaf service-name {
+          type string;
+          mandatory true;
+          description
+            "Existing identifier for the service to be
+            reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+        }
+        leaf new-service-name {
+          type string;
+          description
+            "New identifier for the service to be
+            reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+        }
+        leaf data-reload {
+          type boolean;
+          description 
+            "Indicates whether the data of existing service needs to be refreshed or 
+            reloaded. No reprovisioning/reconfiguration should be done to the service, 
+            only data is updated. May generate data conflict to existing service       
+            after reload. If set true, the data of existing service will be refreshed";
+        }
+        leaf common-id {
+          type string;
+          description
+            "To be used by the ROADM controller to identify the routing
+            constraints received from planning application (PED).";
+        }
+        uses org-openroadm-common-service-types:service-order;
+        leaf connection-type {
+          type org-openroadm-common-service-types:connection-type;
+        }
+        uses org-openroadm-common-service-types:resource-status;
+        container service-a-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        container service-z-end {
+          uses org-openroadm-common-service-types:service-endpoint;
+        }
+        uses org-openroadm-routing-constraints:routing-constraints;
+        uses org-openroadm-common-service-types:service-information;
+        uses org-openroadm-common-service-types:routing-metric;
+        uses org-openroadm-common-service-types:service-resiliency;
+      }
+    }
+    output {
+                 uses org-openroadm-common-service-types:configuration-response-common {
+                   augment "configuration-response-common" {
+                           leaf ack-data-reload-indicator {
+                       type string;
+            description
+                   "This optional, meaning this will be populated only when 
+               the data-reload indicator is set true";
+                   }
+                   } 
+                 }
+                 list service-reconfigure-response-list {
+                   key "service-name";
+                   leaf service-name {
+                           type string;
+                           mandatory true;
+                           description
+            "Existing identifier for the service to be
+            reconfigured in the ROADM network, e.g.,   CLFI, CLCI, etc.";
+                   } 
+      }
+      uses org-openroadm-common-service-types:response-parameters;
+    }
+  }
+
+
+
+
+  rpc service-reconfigure-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-restoration {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.
+       This rpc can be use to reroute a service according to 2 possible options :
+        \t_Option1 : neither the backup-path-id nor the failure-case-id are provided, a new path shall be
+           calculated according to the parameters provided (which includes metrics). If path computation
+           is successful, a new path is provided, and the service is rerouted according to that path.
+        \t_Option2 : if a backup-path-id or a failure-case-id are provided, the service shall
+           be rerouted according to the corresponding path. If path computation is triggered and successful,
+           a new path is provided, and the service is rerouted according to that path.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be restored in
+           the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      leaf option {
+        type enumeration {
+          enum permanent {
+            value 1;
+            description
+              "A spare regen can be used to restore the
+               service permanently without reverting back to the
+               original regen";
+          }
+          enum temporary {
+            value 2;
+            description
+              "a spare regen can be used to restore the
+               service temporarily.   The service needs to be reverted
+               back to the original regen transponder";
+          }
+        }
+        mandatory true;
+      }
+      leaf backup-path-id {
+        type uint8 {
+          range "1..255";
+        }
+        description
+          "When present, states that the service shall be rerouted according to a specific backup path";
+      }
+      leaf failure-case-id {
+        type string;
+        description
+          "When present, states that the service shall be rerouted according to a specific backup path.
+           This last corresponds to the provided failure case id";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-restoration-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-reversion {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be reverted
+           in the ROADM network, e.g., CLFI, CLCI, etc. ";
+      }
+      leaf due-date {
+        type yang:date-and-time;
+        description
+          "date and time service to be reverted";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-reversion-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-reroute {
+    description
+      "Whether this request was validated and processed correctly. If successful, it returns the proposed new route.
+       If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be re-routed in
+           the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-routing-constraints:routing-constraints;
+    }
+  }
+
+  rpc service-reroute-confirm {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier for the service to be re-routed in
+           the ROADM network, e.g., CLFI, CLCI, etc.";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-routing-constraints:routing-constraints;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-reroute-confirm-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc optical-tunnel-create {
+    description
+      "This rpc is used in a second step of service creation when the connection-type is
+          an optical-tunnel. The optical tunnel rendering implies that end terminals optical
+          interfaces such as router pluggables are tuned to the a correct wavelength and that
+          the output power is set so that control loop can operate during connection setting.
+          The rpc is invoked to confirm the optical tunnel can be established.";
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+        description
+          "Identifier used in the second step of the optical-tunnel service creation.  
+           Identifies the service (optical tunnel between SRG PPs) to be created 
+           in the ROADM network.";
+      }
+      leaf common-id {
+        type string;
+        mandatory true;
+        description
+          "Identifier used in the first step of optical-tunnelservice creation using 
+          temp-service-create rpc. Identifies the temporary service for which resources 
+          have been reserved after a successful path computation";
+      }
+      leaf set-frequency {
+        type org-openroadm-common-optical-channel-types:frequency-THz;
+        mandatory true;
+        description
+          "Center Frequency in THz.";
+      }
+      leaf full-bandwidth-at-3dB {
+        type org-openroadm-common-optical-channel-types:frequency-GHz;
+        mandatory true;
+        description
+          "Signal full bandwidth at 3dB bellow the peak in GHz.";
+      }
+      leaf full-bandwidth-at-10dB {
+        type org-openroadm-common-optical-channel-types:frequency-GHz;
+        mandatory true;
+        description
+            "Signal full bandwidth at 10dB bellow the peak in GHz.";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc optical-tunnel-request-cancel {
+    description
+      "This rpc is used to abort service creation when the connection-type is
+            an optical-tunnel, if the conditions required to set-up the end to end service
+          can not be met by the end terminals optical interfaces such as router pluggables.
+          When the rpc is invoked, any resource temporary reserved for the second step of
+          service creation shall be released : this rpc cancels service path rendering between
+          SRG PPs.";
+    input {
+      leaf service-name {
+        type string;
+        description
+          "Identifier used in the first step of service creation using service create rpc.";
+      }
+      leaf common-id {
+        type string;
+        description
+          "Identifier used in the first step of optical-tunnelservice creation using 
+           temp-service-create rpc. Identifies the temporary service for which resources 
+           have been reserved after a successful path computation";
+      } 
+      uses org-openroadm-common-service-types:sdnc-request-header;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc network-re-optimization {
+    input {
+      leaf service-name {
+        type string;
+        description
+          "Identifier for the service in the ROADM network,
+           e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
+           for re-optimization";
+      }
+      leaf a-end {
+        type string;
+        description
+          "Services whose A-ends are terminated at the
+           specified office location are to be checked by the RNC for
+           re-optimization";
+      }
+      leaf z-end {
+        type string;
+        description
+          "Services whose Z-ends are terminated at the
+           specified office location are to be checked by the RNC for
+           re-optimization ";
+      }
+      leaf pass-through {
+        type string;
+        description
+          "Services that are pass-through (either via
+           regen or express) at the specified office location are to
+           be checked by the RNC for re-optimization";
+      }
+      leaf customer-code {
+        type string;
+        description
+          "Services that belong to the specified customer
+           are to be checked by the RNC for re-optimization ";
+      }
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      leaf optimization-candidate {
+        type string;
+      }
+    }
+  }
+
+rpc add-openroadm-operational-modes-to-catalog {
+           description
+             "This rpc is used to feed the operational mode catalog with openroadm operational modes";
+           input {
+             uses org-openroadm-common-service-types:sdnc-request-header;
+             container operational-mode-info {
+                    container grid-parameters {
+                                    description
+                                      "Parameters associated with global spectrum use";
+                                    uses org-openroadm-operational-mode-catalog:operational-mode-grid-parameters;
+                            }
+                                container xponders-pluggables {
+                                        description
+                                           "Parameters associated with xponders and pluggables";
+                                    list xponder-pluggable-openroadm-operational-mode {
+                                               key "openroadm-operational-mode-id";
+                                               description
+                                                 "defines the openroadm operational mode pointing to an official specification ";
+                                               leaf openroadm-operational-mode-id {
+                                                   type string;
+                                                   description
+                                                       "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+                                                   }
+                                       uses org-openroadm-operational-mode-catalog:operational-mode-transponder-parameters;
+                        }
+                                }
+                                container roadms {
+                                    description
+                                      "Parameters associated with roadms";
+                                    uses org-openroadm-operational-mode-catalog:operational-mode-roadm-express-parameters;
+                                    uses org-openroadm-operational-mode-catalog:operational-mode-roadm-add-parameters;
+                                    uses org-openroadm-operational-mode-catalog:operational-mode-roadm-drop-parameters;
+                            }
+                                container amplifiers {
+                                    description
+                                      "Parameters associated with amplifiers";
+                                    uses org-openroadm-operational-mode-catalog:operational-mode-amplifier-parameters;
+                            }
+             }
+           }
+           output {
+             uses org-openroadm-common-service-types:configuration-response-common;
+           }
+  }
+  rpc add-specific-operational-modes-to-catalog {
+    description
+      "This rpc is used to feed the operational mode catalog with specific operational modes for
+           \txponders or external pluggables";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      container operational-mode-info {
+        container specific-operational-modes {
+          description
+            "All specific operational modes corresponding to bookended or alien units";
+          list specific-operational-mode {
+            key "operational-mode-id";
+            description
+              "List of all declared specific operationnal modes";
+            leaf operational-mode-id {
+              type string;
+              description
+                "unique identifier which identifies the operational mode";
+            }
+            uses org-openroadm-operational-mode-catalog:operational-mode-grid-parameters;
+            uses org-openroadm-operational-mode-catalog:operational-mode-transponder-parameters;
+          }
+        }
+      }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  
+  rpc service-srlg-get {
+    input {
+      leaf service-name {
+        type string;
+        description
+          "Identifier for the service in the ROADM network,
+          e.g., CLFI, CLCI, etc. whose path or other risks must be evaluated by the RNC";
+      }
+      leaf SRLG-type {
+        type org-openroadm-common-types:SRLG-type;
+        description
+          "Type of SRLG, Site SRLG, Node SRLG, Fiber SRLG or Link SRLG. If SRLG-type is not provided 
+          in input, output should include all types of SRLGs for a given service-name";
+      }
+      leaf due-date {
+        type yang:date-and-time;
+        description
+          "Due-date is required to get list of SRLGs for specific validity period. If Due-date is not 
+          provited in the input, RPC should return list of current/active SRLGS";
+      }
+    }
+    output {
+      list SRLG-list {
+        key "SRLG-Id";
+        leaf SRLG-Id {
+          type uint32;
+          description
+            "unique identifier for SRLG";
+        }
+        leaf SRLG-name {
+          type string;
+          description
+            "Name of the SRLG";
+        }
+        leaf SRLG-type {
+          type org-openroadm-common-types:SRLG-type; 
+          description
+            "Type of SRLG, Site SRLG, Node SRLG, Fiber SRLG or Link SRLG";
+        }
+        leaf SRLG-length {
+          type decimal64 {
+            fraction-digits 2;
+          }
+          description
+            "Fiber length in desired distance unit of measure";
+        }
+      }
+    } 
+  }
+
+  notification service-rpc-result {
+    description
+      "This Notification indicates result of service RPC";
+    leaf notification-type {
+      type org-openroadm-common-service-types:service-notification-types;
+    }
+    uses org-openroadm-common-types:rpc-response-status;
+    uses org-openroadm-common-service-types:service-notification-result;
+    container path-computation-result {
+      when "../notification-type = 'path-computation-result'" {
+        description
+          "an optical-tunnel service triggers the leaf providing
+           information on the operationnal mode selected by the pce";
+      }
+      container aToZ {
+        description
+          "Describes the settings and the performances for the A to Z path";
+        uses org-openroadm-resource:common-och-otsi-attributes;
+        uses org-openroadm-resource:path-computation-outputs;
+      }
+      container zToA {
+        description
+          "Describes the settings and the performances for the Z to A path";
+        uses org-openroadm-resource:common-och-otsi-attributes;
+        uses org-openroadm-resource:path-computation-outputs;
+      }
+    }
+  }
+
+  notification service-traffic-flow {
+    description
+      "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
+    leaf service-name {
+      type string;
+      mandatory true;
+      description
+        "Identifier for the service being reported on";
+    }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
+    }
+    leaf actual-date {
+      type yang:date-and-time;
+      description
+        "Actual date and time traffic started flowing";
+    }
+  }
+
+  notification service-notification {
+    description
+      "This Notification that a service has been added, modified or removed.
+       A resourceCreation notification shall contain the created service in its entirety.
+       A resourceModified notification shall contain just the modified field, plus the service identifier
+       A resourceDeleted notification shall just contain the service identifier";
+    leaf notificationType {
+      type org-openroadm-resource-types:resource-notification-type;
+      description
+        "Whether this notification indicates a service creation, service modification or service deletion.";
+    }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
+    }
+    uses org-openroadm-common-service-types:service;
+  }
+
+  notification optical-tunnel-created {
+    description
+      "This Notification is used to confirm that an optical-tunnel service has been created.
+       It shall contain the created service in its entirety";
+    leaf notificationType {
+      type org-openroadm-resource-types:resource-notification-type;
+      description
+        "Whether this notification indicates a service creation, or service-reconfigure.";
+    }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
+    }
+    leaf actual-date {
+      type yang:date-and-time;
+      description
+        "Actual date and time traffic started flowing";
+    }
+    uses org-openroadm-common-service-types:service;
+  }
+  
+  notification non-rpc-related-notification {
+    description
+      "Used to notify SDN controller that :
+       _a change occured in the data tree associated with the topology or the service Datastore of the RNC
+       _the attenuation on a ROADM to ROADM link as exceeded the value that can be accepted with current design
+       _the restoration of an optical OTN/WDM service";
+    leaf notificationType {
+      type org-openroadm-controller-customization:non-rpc-related-notification-type;
+      description
+        "This notification indicates whether a change occured in the data tree
+         associated with the topology or the service Datastore, an out of limit
+         attenuation on a WDM link, or the restoration of an optical WDM/OTN service.";
+    }
+    leaf notificationId {
+      type string;
+      description
+        "Unique identifier for the notification.";
+    }
+    leaf notification-time {
+      type yang:date-and-time;
+      description
+        "Time at which notification is raised";
+    }
+    leaf service-name {
+      when "../notificationType = 'service-state-change' or ../notificationType = 'autonomous-optical-restoration-triggered'" {
+        description
+          "When Service Data store is modified, or a restoration has been triggered
+           service-name is provided";
+      }
+      type string;
+    }
+    leaf impacted-resource-type {
+      when "../notificationType = 'topology-change' or ../notificationType = 'service-state-change'" {
+        description
+          "Used to provide additional information on the type of resource impacted by the
+           change in the data-store, to target more effectively consecutive request";
+      }
+      type string;
+    }
+    leaf impacted-resource-id {
+      when "../notificationType = 'topology-change' or ../notificationType = 'service-state-change'" {
+        description
+          "Identifies the resource impacted by the change in the data-store";
+      }
+      type string;
+    }
+    leaf topology-layer {
+      when "../notificationType = 'topology-change'" {
+        description
+          "indicates the layer associated with the topological change";
+      }
+      type enumeration {
+        enum openroadm-topology {
+          value 1;
+        }
+        enum otn-topology {
+          value 2;
+        }
+      }
+    }
+  }
+
+  container service-list {
+    description
+      "List of service. Can only be created, deleted, modified, etc. using special RPCs. Will only contain one service with a given name.
+       Does not contain historical (deleted or rather those passed their end time) or draft services. If two services exist with the same
+       name (with non-lapping start-end times for example), this table will contain the current one. If only planned services exist for
+       the name, the one with the earliest start time will be present
+      ";
+    list services {
+      key "service-name";
+      uses org-openroadm-common-service-types:service;
+    }
+  }
+  container versioned-service-list {
+    description
+      "List of service, regardless of lifecycle state. Can only be created, deleted, modified, etc. using special RPCs. Can report more than one
+       version of a service, if supported by the implementation. May contain deleted services, multiple versions of the same service, as identified
+       by its name, etc.";
+    list services {
+      key "service-name version-number";
+      leaf version-number {
+        type uint64;
+      }
+      uses org-openroadm-common-service-types:service;
+    }
+  }
+  container temp-service-list {
+    description
+      "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
+    list services {
+      key "common-id";
+      uses org-openroadm-common-service-types:service {
+        refine "service-name" {
+          mandatory false;
+        }
+        augment "service-a-end" {
+          list equipment-required {
+            key "equipment-identifier";
+            description
+              "List of required equipment, including equipment type, state and
+              quantity";
+            uses org-openroadm-common-service-types:equipment-info;
+          }
+        }
+        augment "service-z-end" {
+          list equipment-required {
+            key "equipment-identifier";
+            description
+              "List of required equipment, including equipment type, state and
+              quantity";
+            uses org-openroadm-common-service-types:equipment-info;
+          }
+        }
+      }
+      uses org-openroadm-common-service-types:intermediate-site-container;
+      list supporting-service-hierarchy {
+        key "service-identifier";
+        uses org-openroadm-common-service-types:service-hierarchy;
+        description
+          "This lists all the supporting services and their respective hierarchy, includes the
+          proposed one";
+      }
+      uses org-openroadm-common-service-types:existing-service-grouping {
+        refine "existing-service-attributes/reusable-existing-resources" {
+          default "all";
+        }
+      }
+    }
+  }
+  container controller-behaviour-settings {
+    description
+      "Parameters allowing to set the controller behaviour";
+    uses org-openroadm-controller-customization:controller-parameters;
+  }
+  container operational-mode-catalog {
+    description
+      "Store parameters associated with openroadm specifications and specific operational modes";
+    uses org-openroadm-operational-mode-catalog:operational-mode-catalog;
+  }
+}