Updated namespace to use OSM URN; renamed rw-project to osm-project
[osm/IM.git] / models / yang / osm-project.yang
diff --git a/models/yang/osm-project.yang b/models/yang/osm-project.yang
new file mode 100644 (file)
index 0000000..e98da34
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ *   Copyright 2016 RIFT.IO Inc
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ */
+
+module osm-project
+{
+  namespace "urn:etsi:osm:yang:osm-project";
+  prefix "osm-project";
+
+  description
+    "This yang module defines project-based tenancy for RIFT.ware.
+    Authorization for project access is defined in terms of RIFT.ware's
+    Role-Based Access Control (RBAC) model.";
+
+  revision 2015-09-10 {
+    description
+      "Initial revision.  This YANG file defines the model for
+      RIFT.ware project management for multi-tenancy";
+    reference
+      "RIFT.io MANO Tenancy Design Specification";
+  }
+
+  list project {
+    description
+      "Configuration and state for individual projects.  RIFT.ware
+      applications and projects are expected to augment this list in
+      order to add configuration for projects that is specific to the
+      product or application.  As such, this list contains minimal
+      data defined in this yang module.
+
+      When augmenting this element, other yang modules should prefer to
+      define containers with the same name as the augmenting module.
+      (Augmenting RIFT.ware modules should prefer to augment without
+      the rw prefix [for new features], or should prefer to augment the
+      augmented container of an existing augment, to ease future
+      adoption and/or standardization.)";
+
+    key "name";
+    leaf name {
+      description "Name of the project.";
+      type string {
+        length "1..255";
+      }
+    }
+
+    leaf description {
+      description "Information about project";
+      type string;
+    }
+  }
+}