module sfc-lisp-impl {

  yang-version 1;
  namespace "urn:opendaylight:params:xml:ns:yang:controller:config:sfc-lisp:impl";
  prefix "sfc-lisp-impl";

  import config { prefix config; revision-date 2013-04-05; }
  import rpc-context { prefix rpcx; revision-date 2013-06-17; }
  import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }


  description
      "This module contains the base YANG definitions for
      sfc-lisp implementation.";

  revision "2015-04-27" {
      description
          "Initial revision.";
  }

  // This is the definition of the service implementation as a module identity
  identity sfc-lisp-impl {
      base config:module-type;

      // Specifies the prefix for generated java classes.
      config:java-name-prefix SfcLisp;
  }


  // Augments the 'configuration' choice node under modules/module.
  augment "/config:modules/config:module/config:configuration" {
    case sfc-lisp-impl {
      when "/config:modules/config:module/config:type = 'sfc-lisp-impl'";

      //wires in the data-broker service
      container data-broker {
        uses config:service-ref {
          refine type {
              mandatory false;
              config:required-identity mdsal:binding-async-data-broker;
          }
        }
      }

      container rpc-registry {
        uses config:service-ref {
          refine type {
              mandatory true;
              config:required-identity mdsal:binding-rpc-registry;
          }
        }
      }
    }
  }
}