1 module openstack-identity {
2 namespace "urn:opnfv:promise:openstack:identity";
5 import access-control-models { prefix acm; }
6 import nfv-infrastructure { prefix nfvi; }
7 import complex-types { prefix ct; }
8 import ietf-yang-types { prefix yang; }
11 "OpenStack Identity Data Models with complex types and typed instance
12 identifiers represent the various Access Control Models available
17 "This YANG module is modeled using 'yangforge' which natively provides
18 complex types and typed instance identifiers. This module
19 provides various collections of resource management data models
20 for instance based management";
23 /*********************************************
24 * OpenStack Identity Models
25 *********************************************/
27 ct:complex-type Project {
30 "OpenStack Project represent a distinct resource consumption space across
31 collection of users and groups that can reserve and allocate
34 leaf-list groups { type instance-identifer { ct:instance-type acm:Group; } }
39 type instance-identifier { ct:instance-type nfvi:VirtualMachineImage; }
43 if-feature compute-flavors;
44 type instance-identifier { ct:instance-type nfvi:VirtualMachineFlavor; }
49 ct:complex-type User {
53 "OpenStack User can also belong to multiple projects.";
55 leaf-list projects { type instance-identifier { ct:instance-type Project; } }
58 ct:complex-type Group {
62 "OpenStack Group can also belong to multiple projects.";
64 leaf-list projects { type instance-identifier { ct:instance-type Project; } }
67 ct:complex-type Domain {
68 ct:extends acm:Domain;
71 "OpenStack Domain represent a distinct administrative domain including projects.";
73 ct:instance-list projects { ct:instance-type Project; }
76 ct:complex-type Token {
77 leaf key { type yang:uuid; }
78 leaf identity { type instance-identifier { ct:instance-type Identity; } }