added copy of github.com/opnfv/promise source into the source directory
[promise.git] / source / schema / openstack.yang
diff --git a/source/schema/openstack.yang b/source/schema/openstack.yang
new file mode 100644 (file)
index 0000000..6878f7e
--- /dev/null
@@ -0,0 +1,74 @@
+module openstack {
+  prefix os;
+
+  import nfv-infrastructure { prefix nfvi; }
+  import access-control-models { prefix acm; }
+  import ietf-yang-types { prefix yang; }
+  import ietf-inet-types { prefix inet; }
+  import complex-types { prefix ct; }
+
+  description
+    "OpenStack controller module";
+
+  revision 2016-01-19 {
+    description "Basic coverage of limited intents needed for Promise";
+  }
+  
+  identity openstack { base nfvi:manager; }
+  identity release { base openstack; }
+  identity distro { base openstack; }
+
+  feature os-system-admin {
+    description "OpenStack system administration capability";
+  }
+  
+  grouping os-credentials {
+    uses acm:access-credentials {
+      refine strategy {
+        default keystone;
+      }
+      refine endpoint {
+        default "http://localhost:5000/v2.0";
+      }
+    }
+    container tenant {
+      leaf id { type string; }
+      leaf name { type string; }
+    }
+  }
+  
+  // OpenStack infrastructure platform (PLACEHOLDER)
+  container platform {
+    uses nfvi:resource-stack;
+    
+    leaf release { type identityref { base release; } }
+    leaf distro  { type identityref { base distro; } }
+    
+    //ct:instance-list services { ct:instance-type OpenStackService; }
+    //ct:instance-list endpoints { ct:instance-type ServiceEndpoint; }
+  }
+
+  // OpenStack system administrator configuration tree
+  container admin {
+    if-feature os-system-admin;
+    container auth {
+      uses os-credentials;
+      leaf token { type yang:uuid; }
+    }
+  }
+
+  rpc authenticate {
+    if-feature os-system-admin;
+    input {
+      uses os-credentials;
+    }
+    output {
+      leaf token { type yang:uuid; }
+    }
+  }
+
+  rpc create-tenant {
+    if-feature os-system-admin;
+    
+  }
+}