diff options
Diffstat (limited to 'source/schema/openstack-identity.yang')
-rw-r--r-- | source/schema/openstack-identity.yang | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/source/schema/openstack-identity.yang b/source/schema/openstack-identity.yang new file mode 100644 index 0000000..4b92957 --- /dev/null +++ b/source/schema/openstack-identity.yang @@ -0,0 +1,84 @@ +module openstack-identity { + namespace "urn:opnfv:promise:openstack:identity"; + prefix os-id; + + import access-control-models { prefix acm; } + import nfv-infrastructure { prefix nfvi; } + import complex-types { prefix ct; } + import ietf-yang-types { prefix yang; } + + description + "OpenStack Identity Data Models with complex types and typed instance + identifiers represent the various Access Control Models available + within OpenStack."; + + revision 2015-09-03 { + description + "This YANG module is modeled using 'yangforge' which natively provides + complex types and typed instance identifiers. This module + provides various collections of resource management data models + for instance based management"; + } + + /********************************************* + * OpenStack Identity Models + *********************************************/ + + ct:complex-type Project { + ct:extends acm:Group; + description + "OpenStack Project represent a distinct resource consumption space across + collection of users and groups that can reserve and allocate + resources."; + + leaf-list groups { type instance-identifer { ct:instance-type acm:Group; } } + + container resource { + leaf-list images { + if-feature vm-images; + type instance-identifier { ct:instance-type nfvi:VirtualMachineImage; } + } + + leaf-list flavors { + if-feature compute-flavors; + type instance-identifier { ct:instance-type nfvi:VirtualMachineFlavor; } + } + } + } + + ct:complex-type User { + ct:extends acm:User; + + description + "OpenStack User can also belong to multiple projects."; + + leaf-list projects { type instance-identifier { ct:instance-type Project; } } + } + + ct:complex-type Group { + ct:extends acm:Group; + + description + "OpenStack Group can also belong to multiple projects."; + + leaf-list projects { type instance-identifier { ct:instance-type Project; } } + } + + ct:complex-type Domain { + ct:extends acm:Domain; + + description + "OpenStack Domain represent a distinct administrative domain including projects."; + + ct:instance-list projects { ct:instance-type Project; } + } + + ct:complex-type Token { + leaf key { type yang:uuid; } + leaf identity { type instance-identifier { ct:instance-type Identity; } } + } + + + rpc create-project; + rpc remove-project; +} |