module cord-core {
  
  namespace "urn:onlab:cord";
  prefix cord;
  yang-version 1.1;

  organization
   "Open Networking Lab (CORD) / Corenova Technologies";

  contact
    "Larry Peterson <llp@onlab.us>
     Peter K. Lee <peter@corenova.com>";

  description
   "This module contains a collection of core models for CORD.

    Copyright (c) 2016 ON.LAB and the persons identified as authors of
    the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms of the Apache License, Version 2.0 which accompanies this
    distribution, and is available at
    (http://www.apache.org/licenses/LICENSE-2.0).";
  
  revision 2016-07-22 {
    description "Initial revision.";
  }

  import xos-core        { prefix xos; }
  import cord-subscriber { prefix csub; }
  import corenova-node   { prefix node; }
  
  /*** primary configuration tree for this module ***/
  
  list subscriber {
    uses csub:subscriber;
    key "id";

    description
      "Authorative list of all subscriber instances";

    leaf humanReadableName {
      config false;
      type string {
        pattern '^cordSubscriber-\w+$';
      }
    }
    action delete;
  }

  // here we augment the /api/tenant API configuration tree in 'xos' module
  augment "/xos:api/xos:tenant" {
    container cord {
      node:link subscriber { path "/cord:subscriber"; }
    }
  }
}
