For most human beings, the term API doesn't really mean a whole lot. Therefore, I suggest that we begin with a quick explanation of what an API is.
An Application Programming Interface (API) is an interface provided by a program or system. This interface allows other programs to use a standard machine to machine interface which in turn opens the possibility to create an appropriate human to machine interface. From the technical perspective, an API is a collection of functions, procedures, or classes exposed by a software library, operating system, or service. Knowledge of these APIs is paramount to the interoperability of various different software.
You can see the complete definition here.
Concretely, the Hosting API allows a user to manipulate and manage his various Gandi Hosting resources. For example, he may create new virtual machines, new disks, release IP addresses, etc.
Our API has been designed to be as simple as possible to use.
Use of the API
The API will allow you to manipulate all of your hosting "objects", from entire virtual machines, to components such as disks, network interfaces, IP addresses, etc., all in a logical and programmatic fashion. You will be able to create, delete, modify, and list the various objects.
One of the main objectives, however, is that it used by other software or programs in order to create something directly associated with us.
Let's look at two small examples:
- One useful for everyone, thanks to the "vm.update" method, if you happen to detect in your log files that your server is in need of more memory, you could automatically add this memory to the virtual machine "on the fly".
- An example for a company that produces software, thanks to "vm.create", you could potentially automatically deploy a server quickly from a disk that has previously been prepared with your application, and offer it directly to your customers.
The first set of methods will allow manipulation of the following objects:
datacenter - list , info
image - list, info
vm - list, info, count, create, update, start, stop, reboot, disk_attach, disk_detach, iface_attach, iface_detach
disk - list, info, count, create, create_from, update, delete
iface - list, info, count, create, delete
As well as management of operations:
operation - list, info, count, delete
New Features to Come
Taking advantage of the release of the API, several new features will also see the light of day. These are features for which you have been asking, for the most part, and which initially will be managed by our support team. Certain functions have been revised and move to areas where they would allow us to offer something new.
The choice of kernel and command-line options, for example, is now made on each disk. The disks, as a result, now have a more important role to play. It will also be possible to detach a former "system" disk, and to re-attach it to another virtual machine in order to, for example, recover the system following an unsuccessful upgrade. You could also choose from which disk a given virtual machine will boot.
How Do I Take Part?
The private beta phase has already begun. Simply send an email to beta-hosting AT gandi.net with your user ID (handle) and we will contact you with the details to allow access to the API.
Test Our Solution!
All European business customers at Gandi (and, initially, those subscribed to our newsletter) will find a coupon in their account allowing a free test-drive of our solution for a month. For everyone else, a request form for test shares is also available.
Be on the lookout though, as more information and updates will be made available in the coming weeks!