Merge from master
[osm/SO.git] / rwprojectmano / plugins / yang / rw-project-mano.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-mano
20 {
21   namespace "http://riftio.com/ns/riftware-1.0/rw-project-mano";
22   prefix "rw-project-mano";
23
24   import rw-rbac-base {
25     prefix "rw-rbac-base";
26   }
27
28   import rw-pb-ext {
29     prefix "rw-pb-ext";
30   }
31
32   import rw-project {
33     prefix "rw-project";
34   }
35
36   import rw-rbac-internal {
37     prefix "rw-rbac-internal";
38   }
39
40   revision 2017-03-08 {
41     description
42       "Initial revision. This YANG file defines the
43        MANO extentions for project based tenancy";
44     reference
45       "Derived from earlier versions of base YANG files";
46   }
47
48   augment /rw-project:project/rw-project:project-config/rw-project:user {
49     description
50       "Configuration for MANO application-specific Roles.";
51
52     list mano-role {
53       description
54         "The list of MANO application-specific Roles the User has been
55         assigned, within the enclosing Project.";
56
57       key "role";
58       uses rw-rbac-base:simple-role;
59     }
60   }
61
62   augment /rw-project:project/rw-project:project-state/rw-project:user {
63     description
64       "The state for MANO application-specific Roles.";
65
66     list mano-role {
67       description
68       "The state of the MANO application-specific Role the User has
69       been assigned.";
70
71       key "role";
72       uses rw-rbac-base:simple-role;
73
74       leaf state {
75         description
76           "The assignment of a User to a Role may be an asynchronous
77           operation.  This value indicates whether the Role
78           assignment is active.  If the value is 'active', then the
79           assignment is complete and active.  Any other value
80           indicates that Role assignment is in a transitional or
81           failed state, as described in the value.";
82         type string;
83       }
84     }
85   }
86
87   augment /rw-project:project/rw-project:project-state {
88     description
89       "State for MANO application-specific Roles.";
90
91     list mano-role {
92       description
93         "The set of Roles that may be configured into
94         /rw-project:project/rw-project:project-config/rw-project:user/
95         rw-project-mano:mano-role/rw-project-mano:role.";
96
97       key "role";
98       uses rw-rbac-base:simple-role;
99
100       leaf description {
101         description
102           "A description of the Role.";
103         type string;
104       }
105     }
106   }
107 }