
Zend_Service_GoGrid
{zone-data}
{zone-data:proposer-list}
[Enrico Zimuel|mailto:enrico@zend.com]
{zone-data}
{zone-data:liaison}
TBD
{zone-data}
{zone-data:revision}
1.0 - 19 April 2011: Initial Draft.
{zone-data}
{zone-data:overview}
*Zend_Service_GoGrid* is a class to manage the web services API of the [GoGrid|http://www.gogrid.com] cloud services.
The GoGrid API is a proprietary API that allows GoGrid developers, admins, and users to programmatically access the functions that are available through the UI of GoGrid services.
The API is a REST-like API meaning all API calls are submitted as HTTP GET or POST requests.
In particulat the API of GoGrid offers the management of the following services:
* job
* load balancer
* server
* server image
* ip
* passwords
* billing
* utility
The *Zend_Service_GoGrid* component will manage all these services.
The current version of the GoGrid API is *1.8*.
{zone-data}
{zone-data:references}
* [GoGrid API|https://wiki.gogrid.com/wiki/index.php/API]
* [GoGrid API client in PHP|https://wiki.gogrid.com/wiki/index.php/API:PHP_API_Developer_Home]
{zone-data}
{zone-data:requirements}
* This component will require a valid GoGrid account.
* This component will implement full GoGrid REST API.
* This component will throw an Exception in case of a response error.
{zone-data}
{zone-data:dependencies}
* Zend\Http\Client
{zone-data}
{zone-data:operation}
*Zend\Service\GoGrid* is an abstract class with methods and properties common to all the *GoGrid* services, like the API key, the procedure to build the checksum for the API call, etc. Each subclass of *Zend\Service\GoGrid* implements a specific service, for instance *Zend\Service\GoGrid\Job* implements the job cloud services of *GoGrid*.
These subclasses will use the *Zend\Rest\Client\RestClient* to perform the API REST calls. The REST output will be managed using the XML format.
{zone-data}
{zone-data:milestones}
* Milestone 1: Complete proposal
* Milestone 2: Prototype
* Milestone 3: Job API
* Milestone 4: Load Balancer API
* Milestone 5: Server API
* Milestone 6: Server Image API
* Milestone 7: IP API
* Milestone 8: Password API
* Milestome 9: Billing API
* Milestone 10: Utility API
* Milestone 11: Unit tests, checked into Git (ZF 2.0)
* Milestone 12: Refactor all the classes fot the ZF 1.*
* Milestone 13: Unit tests, checked into SVN (ZF 1.*)
* Milestone 14: Initial documentation exists
{zone-data}
{zone-data:class-list}
* Zend\Service\GoGrid
* Zend\Service\GoGrid\Job
* Zend\Service\GoGrid\LoadBalancer
* Zend\Service\GoGrid\Server
* Zend\Service\GoGrid\ServerImage
* Zend\Service\GoGrid\Ip
* Zend\Service\GoGrid\Password
* Zend\Service\GoGrid\Billing
* Zend\Service\GoGrid\Utility
* Zend\Service\GoGrid\Exception
{zone-data}
{zone-data:use-cases}
||UC-01||
{code:php}
$key= 'xxx';
$secret= 'yyy';
$job= new \Zend\Service\GoGrid\Job($key,$secret);
$options= array(
'num_items' => 20