Cloud Services Uncategorized

Object Model of VMware vCloud API: The Big Picture in 2 Minutes

Steve Jin, VMware R&D

This entry was reposted from, a blog for architects and developers on virtualization and cloud computing.

VMware released the long-awaited vCloud API at VMworld 2010. The API is based on REST with 75 URLs defined in the user related part as you would find in the vCloud API Specification and vCloud API Programming Guide.

I am an OO guy (I am sure many of you are as well), and find it difficult to go through the 75 URLs and numerous XML tags as either input or return. These URLs are like trees in a forest. But where is the forest?

So I decided to create and show you a UML diagram (shown below) so that you can easily capture the key concepts of the vCloud API. In fact, there was a similar diagram in the programming guide of version 0.8.


After studying the diagram and the types, you can understand the overall conceptual model on what to expect with vCloud and the API. You can also understand what to expect from the URLs by associating three operations with each type:

1.     get, which lists the content of an entity, and possibly its child entities.

2.     modify or set, which changes the existing settings. Depending on the complexity of the entity, there may be multiple operations, each of which changes a section of the overall settings.

3.     remove or delete, which destroys an existing entity.

There are other operations, including power on and power off vApps, virtual machines, etc. But the above three types of operations represent more than half of the URLs.

If you are interested to know more about REST and OO, you should read my previous blog: REST or SOAP.

Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to Email or RSS, and follow on Twitter.


Leave a Reply

Your email address will not be published. Required fields are marked *