first initial working version of REST API auto-generation via yang-express using xos-core, cord-core, and its dependent modules. validate/polish various YANG schema files, introduce 'cord-core.yang' data model schema, annotate copyright/license info inside YANG schemas, create initial controller logic bindings for various cord data models. build/packaging complete with dependency mappings
diff --git a/src/cord-core.coffee b/src/cord-core.coffee
new file mode 100644
index 0000000..1d27a26
--- /dev/null
+++ b/src/cord-core.coffee
@@ -0,0 +1,17 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-core.yang').bind {
+
+ '/cord/subscriber/humanReadableName': -> "cordSubscriber-#{@get '../id'}"
+
+ '/cord/subscriber/delete': (input, resolve, reject) -> reject "not yet implemented"
+}
diff --git a/src/cord-device.coffee b/src/cord-device.coffee
new file mode 100644
index 0000000..ce6c892
--- /dev/null
+++ b/src/cord-device.coffee
@@ -0,0 +1,16 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-device.yang').bind {
+
+ '/{device}/features/update': (input, resolve, reject) -> reject "not yet implemented"
+
+}
diff --git a/src/cord-subscriber.coffee b/src/cord-subscriber.coffee
new file mode 100644
index 0000000..7563aa7
--- /dev/null
+++ b/src/cord-subscriber.coffee
@@ -0,0 +1,32 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-subscriber.yang').bind {
+
+ '/{subscriber}':
+ # auto-computed properties
+ 'device/subscriber': -> @get '../..'
+
+ # action bindings
+ 'device/create': (input, resolve, reject) -> reject "TBD"
+ 'device/update': (input, resolve, reject) -> reject "TBD"
+ 'device/delete': (input, resolve, reject) -> reject "TBD"
+
+ '/{subscriber-controller}':
+ # auto-computed properties
+ 'related': -> new Error "will return related objects once implemented"
+
+ # action bindings
+ 'features/update': (input, resolve, reject) -> reject "TBD"
+ 'identity/update': (input, resolve, reject) -> reject "TBD"
+
+}
+
diff --git a/src/server.coffee b/src/server.coffee
new file mode 100644
index 0000000..7e7b46c
--- /dev/null
+++ b/src/server.coffee
@@ -0,0 +1,11 @@
+yang = require('yang-js').register()
+
+require('yang-express').run {
+
+ port: 5050
+ models: [
+ yang.require 'cord-core'
+ ]
+ data: require '../sample-data.json'
+
+}