The Sun Cloud API
This wiki specifies a RESTful API for creating and managing cloud resources, including compute, storage, and networking components.
Usage of the API is via the HTTP protocol. The GET, POST, PUT, and DELETE requests are all used, although most tasks can be accomplished with GET and POST. Resource representations are in JSON.
The API presupposes no particular structure in the URI space. The starting point is a URI, supplied by the cloud service provider, which identifies the cloud itself. The cloud's representation contains URIs for the other resources in the cloud, and also for operations which may be performed upon them (for example deploying and starting virtual machines).
The specification of the Sun Cloud API includes:
- Common behaviors that apply across all requests and responses.
- Resource models, which describe the JSON data structures used in requests and responses.
- The requests that may be sent to cloud resources, and the responses expected.
This API operates on the following primary resource types:
- Cloud: A top-level construct which groups all the Virtual Data Centers to which an API user has access.
- Virtual Data Center (VDC): An isolated container which is populated with Clusters, Private Virtual Networks, Public Addresses, Storage Volumes, Volume Snapshots.
- Cluster: An administrative grouping of Virtual Machines, useful for access control, copying or cloning, geographic isolation, and scripting automation.
- Virtual Machine (VM): A server.
- Private Virtual Network (VNet): A subnet, not connected to the Internet, which may be used to connect Virtual Machines within a VDC.
- Public Address: A connection to the Internet.
- Storage Volume: A storage resource which may be accessed via WebDAV and other storage protocols.
- Volume Snapshot: A snapshot of the state of a Storage Volume.
The API additionally operates on secondary resources such as VM Backups and Network Interfaces.
"Hello, Cloud": An illustrative walk-through of the Sun Cloud API is designed to serve as the starting-point for learning this API.
- Common Behaviors
- Resource Models
- Requests to Cloud Resources
- Requests to VDC Resources
- Requests to Cluster Resources
- Requests to VM Resources
- Requests to Public Address Resources
- Requests to Snapshot Resources
- Requests to VNet Resources
- Requests to Volume Resources
- Requests to Backup Resources
A command line client for communicating with implementations of this API is also available.
(Work in progress): a simple example using the CLI
Copyright © Sun Microsystems, 2009. This work is licensed under Creative Commons Attribution 3.0 Unported License