New feature: Model changes for project support
[osm/SO.git] / models / plugins / yang / rw-project.yang
1 /*
2  *
3  *   Copyright 2017 RIFT.IO Inc
4  *
5  *   Licensed under the Apache License, Version 2.0 (the "License");
6  *   you may not use this file except in compliance with the License.
7  *   You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *   Unless required by applicable law or agreed to in writing, software
12  *   distributed under the License is distributed on an "AS IS" BASIS,
13  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *   See the License for the specific language governing permissions and
15  *   limitations under the License.
16  *
17  */
18
19 module rw-project
20 {
21   namespace "http://riftio.com/ns/riftware-1.0/rw-project";
22   prefix "rw-project";
23
24   revision 2017-02-08 {
25     description
26       "Initial revision. This YANG file defines the
27        projects fo MANO to support Role Based Access
28        Control (RBAC)";
29     reference
30       "Derived from earlier versions of base YANG files";
31   }
32
33   list project {
34     description
35         "Configuration for individual Projects.  RIFT.ware applications
36         and Projects are expected to augment this list in order to add
37         configuration for Projects that is specific to the product or
38         application.  As such, this list contains minimal data defined
39         in this yang module.  When augmenting this element, other yang
40         modules should prefer to define containers with the same name
41         as the augmenting module.  (Augmenting RIFT.ware modules should
42         prefer to augment without the rw prefix [for new features], or
43         should prefer to augment the augmented container of an existing
44         augment.";
45
46     key name;
47     leaf name {
48       description "Name of the Project.";
49       type string {
50         length "1..255";
51       }
52     }
53
54     leaf description {
55       description "Information about Project";
56       type string;
57     }
58
59     container project-config {
60
61       description "Project management related configuration.";
62
63       // list user {
64       //   description
65       //     "The list of Users who have been assigned Roles within this
66       //     Project.";
67
68       //   key user-name user-domain;
69       //   uses rw-rbac-base:user-key;
70
71       //   list role {
72       //     description
73       //       "The list of Roles the User has been assigned.";
74
75       //     key role key;
76       //     uses rw-rbac-base:role-instance;
77       //   }
78       // }
79     }
80
81     container project-state {
82
83       config false;
84
85       description "Project management operational data";
86     }
87   }
88 }