The Universal Virtualization API (UVAPI) project provides a unified object model and API for interfacing with popular hypervisors and hosted virtual solutions.
UVAPI allows developers to manage their virtual environment by performing common actions, such as controlling the power and network states of virtual machines.
UVAPI also provides facilities for returning statistical data about virtual machines and hosts systems.
One of the unique features of UVAPI is the concept of creating a list out of multiple entities (virtual machines, hosts, etc.) and then aggregating the entities' data into a single value. For example, it is possible to add several virtual machines and hosts to a ComputeResourceListBean list, and by invoking the aggregate function
And the primary reason to use UVAPI is of course that UVAPI can connect to a multitude of different hypevisors, such as: