The Unified CLI provides similar abstraction: https://wiki.openstack.org/wiki/UnifiedCLI/Mapping https://wiki.openstack.org/wiki/UnifiedCommandLineClient This concept is good enough for most test types, this model allow as to manage more things in similar way regardless we are using library or API or CLI backed, or .. It is simple. It can use the token efficiently. The "clients", "manager", "os", "os_adm", "openstack" , is close to this concept, but it does not used consistently anywhere. This concept can be extended to be role based model in a simple way.