netconfcentral logo

org-openroadm-service@2020-05-29



  module org-openroadm-service {

    yang-version 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 "2020-05-29";
    }
    import org-openroadm-common-types {
      prefix org-openroadm-common-types;
      revision-date "2020-05-29";
    }
    import org-openroadm-resource-types {
      prefix org-openroadm-resource-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-service-types {
      prefix
        org-openroadm-common-service-types;
      revision-date "2020-05-29";
    }
    import org-openroadm-controller-customization {
      prefix
        org-openroadm-controller-customization;
      revision-date "2020-05-29";
    }

    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 "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 service-feasibility-check-inputs {
      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-a-end

      container service-z-end {
        uses org-openroadm-common-service-types:service-endpoint;
      }  // container service-z-end

      uses org-openroadm-routing-constraints:routing-constraints;

      uses org-openroadm-common-service-types:routing-metric;

      uses org-openroadm-common-service-types:service-resiliency;

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

      uses org-openroadm-common-service-types:service-information;
    }  // grouping service-feasibility-check-inputs

    grouping service-feasibility-check-outputs {
      uses org-openroadm-common-service-types:response-parameters;

      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;
        }  // list equipment-required
      }  // container service-a-end

      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;
        }  // list equipment-required
      }  // container service-z-end

      list intermediate-sites {
        key "clli";
        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 over entire route of service";
          uses org-openroadm-common-service-types:equipment-info;
        }  // list equipment-required
      }  // list intermediate-sites
    }  // grouping service-feasibility-check-outputs

    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;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-a-end

        container service-z-end {
          uses org-openroadm-common-service-types:service-endpoint;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-z-end

        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

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

      output {
        uses org-openroadm-common-service-types:configuration-response-common;
      }
    }  // rpc service-create-result-notification-request

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

      output {
        uses org-openroadm-common-service-types:configuration-response-common;
      }
    }  // rpc service-create-complex-result-notification-request

    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-result-notification-request

    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-delete-complex-result-notification-request

    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 {
        uses org-openroadm-common-service-types:configuration-response-common;

        uses service-feasibility-check-outputs;
      }
    }  // rpc service-feasibility-check

    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 {
          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;
        }  // list service-request-list
      }

      output {
        uses org-openroadm-common-service-types:configuration-response-common;

        list service-response-list {
          uses service-feasibility-check-outputs;
        }  // list service-response-list
      }
    }  // rpc service-feasibility-check-bulk

    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;
          }
        }  // container service-delete-req-info
      }

      output {
        uses org-openroadm-common-service-types:configuration-response-common;
      }
    }  // rpc service-delete

    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 equipment-notification

    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;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-a-end

        container service-z-end {
          uses org-openroadm-common-service-types:service-endpoint;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-z-end

        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;

        uses org-openroadm-common-service-types:response-parameters;
      }
    }  // rpc temp-service-create

    rpc temp-service-delete {
      input {
        leaf common-id {
          type string;
          mandatory true;
        }
      }

      output {
        uses org-openroadm-common-service-types:configuration-response-common;
      }
    }  // rpc temp-service-delete

    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:routing-metric;
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc service-roll

    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 {
        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 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;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-a-end

        container service-z-end {
          uses org-openroadm-common-service-types:service-endpoint;

          uses org-openroadm-common-service-types:service-endpoint-project;
        }  // container service-z-end

        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-types:rpc-response-status;
      }
    }  // rpc service-reconfigure

    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 :
 	_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.
 	_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:routing-metric;
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc service-restoration

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

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc service-reversion

    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:routing-metric;

        uses org-openroadm-common-service-types:service-resiliency;
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;

        uses org-openroadm-routing-constraints:routing-constraints;
      }
    }  // rpc service-reroute

    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-routing-constraints:routing-constraints;
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc service-reroute-confirm

    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:routing-metric;
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;

        leaf optimization-candidate {
          type string;
        }
      }
    }  // rpc network-re-optimization

    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;
    }  // notification service-rpc-result

    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-traffic-flow

    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 service-notification

    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;
          }
        }
      }
    }  // notification non-rpc-related-notification

    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;
      }  // list services
    }  // container service-list

    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;
      }  // list services
    }  // container versioned-service-list

    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;
          }
        }
      }  // list services
    }  // container temp-service-list

    container controller-behaviour-settings {
      description
        "Parameters allowing to set the controller behaviour";
      uses org-openroadm-controller-customization:controller-parameters;
    }  // container controller-behaviour-settings
  }  // module org-openroadm-service