2. Agenda
Introduction to VMware vCloud SDK for PHP
Writing your first program using the SDK
Pre-requisite
Familiarity with VMware vCloud API and the cloud resource model
Familiarity with PHP, REST
2
3. Features
Make the VMware vCloud REST API available in PHP
Provides vCloud client library for vCloud resource entities access and
management
Hide REST, XML processing to the user
Straight forward SDK API allows user easily create a new or extend an
existing application with VMware vCloud Director
3
4. SDK Components
VMware_VCloud_API packages
Classes are generated from VMware vCloud REST API schema files.
Each class maps to a complexType defined in the schema file.
Contains all the types defined in vCloud API, vCloud administrative API and vCloud
administrative extension API.
Objects of these classes are referred to as vCloud data objects.
VMware_VCloud_SDK packages
Classes map to vCloud resource entities, for the lifecycle (CURD) of the entities
HTTP request/response classes
Utility functions
Objects of these classes are referred to as vCloud SDK objects.
4
6. VMware_VCloud_API Packages
Packages are defined based on schema namespaces
VMware_VCloud_API
VMware_VCloud_API_OVF
VMware_VCloud_API_Extension
VMware_VCloud_API_Version
7. VMware_VCloud_API Classes
Major classes support vCloud user API
VMware_VCloud_API_OrgType
VMware_VCloud_API_VdcType
VMware_VCloud_API_VAppType
VMware_VCloud_API_VmType
VMware_VCloud_API_VAppTemplateType
VMware_VCloud_API_CatalogType
VMware_VCloud_API_CatalogItemType
VMware_VCloud_API_MediaType
VMware_VCloud_API_OrgNetworkType
VMware_VCloud_API_TaskType
VMware_VCloud_API_FileType
7
8. VMware_VCloud_API Classes (Continued)
Major classes support vCloud administrative API
VMware_VCloud_API_VCloudType
VMware_VCloud_API_AdminOrgType
VMware_VCloud_API_AdminVdcType
VMware_VCloud_API_RoleType
VMware_VCloud_API_RightType
VMware_VCloud_API_UserType
VMware_VCloud_API_GroupType
VMware_VCloud_API_CatalogType
VMware_VCloud_API_OrgNetworkType
8
9. VMware_VCloud_API Classes (Continued)
Major classes support vCloud administrative extension API
VMware_VCloud_API_Extension_HostType
VMware_VCloud_API_Extension_VimServerType
VMware_VCloud_API_Extension_ShieldManagerType
VMware_VCloud_API_Extension_VMWProviderVdcType
VMware_VCloud_API_Extension_VMWNetworkPoolType
VMware_VCloud_API_Extension_VMWExternalNetworkType
VMware_VCloud_API_Extension_VMWExtensionType
VMware_VCloud_API_Extension_ResourcePoolType
VMware_VCloud_API_Extension_PortGroupPoolType
VMware_VCloud_API_Extension_FencePoolType
VMware_VCloud_API_Extension_VlanPoolType
10. VMware_VCloud_API Classes (Continued)
Other classes
VMware_VCloud_API_ErrorType -- For error message in VMware vCloud Director
VMware_VCloud_API_ReferenceType – For reference to a vCloud entity
VMware_VCloud_API_ParamsType -- Base class used to specify parameters
Examples of subclasses
• VMware_VCloud_API_VAppCreationParamsType
• VMware_VCloud_API_ComposeVAppParamsType.
VMware_VCloud_API_OVF_Section_Type -- Base class for sections used in
VAppType, VAppTemplateType, etc.
Examples of subclasses
• VMware_VCloud_API_OVF_OperatingSystemSection_Type
• VMware_VCloud_API_OVF_VirtualHardwareSection_Type
10
11. VMware_VCloud_API Class – Details (Continued)
Each class contains a constructor method. Parameter list consists
of attributes of the class and its parent class, and all the way up to
its root class.
Each class contains setter and getter methods for XML element
attributes and child elements accessing.
naming convention (use setters as examples).
• set_<attribute>: for example, set_name($name).
• set<Child Element>: for example, setFullName($fullname).
Each class contains export() and build() methods.
export() – for exporting object to an XML string.
build() – for parsing an XML string to vCloud data object. The SDK can parse
the XML string automatically to a data object.
11
12. Creating a vCloud Data Object
Two ways to create a data object
Start with an constructor without parameters, then invoke the setter methods to
set the parameters. For example,
• $ref = new VMware_VCloud_API_ReferenceType();
$ref->set_href($href);
$ref->set_type($type);
$ref->set_name($name);
Invoke the constructor with parameters. For example,
• $ref = new VMware_VCloud_SDK_API_ReferenceType($href, $type, $name);
12
13. Creating a Data Object - Using the SDK API Documentation
Using VMware_VCloud_API_AdminOrgType as an example,
describes how to create a data object with the help of the SDK API
documentation.
1. Select the VMware_VCloud_API from the “packages” drop down menu.
2. Select class VMware_VCloud_API_AdminOrgType in the left pane.
3. Go to the “Method Summary” section in the right pane, select and navigate
to the constructor, __construct(), method link.
4. Look for “required” object attributes. $name, $FullName, $Settings are
required for constructing a VMware_VCloud_API_AdminOrgType data object.
5. $name and $FullName contain string values, set them with set_name($name)
and setFullName($fullname) methods respectively. $name and $fullname are
given by the caller.
6. $Settings is a VMware_VCloud_API_OrgSettingsType data object. To get its
parameters information, repeat with step 4, looking for the required object
attributes. $IsEnabled, $CanPublishCatalogs and $OrgLdapMode are required
for constructing the object.
13
14. Creating a Data Object - Using the SDK API Documentation (Cont.)
7. $IsEnabled and $CanPublishCatalogs contain boolean values, set with
setIsEnabled($enable) and setCanPublishCatalogs($publish) methods respectively.
$enable and $publish are decided by the caller.
8. $OrgLdapMode contains a string value. The “allowed values” restricts its value has to
be one of the following, ‘NONE’, ‘SYSTEM’, ‘CUSTOM’.
14
15. Creating a Data Object - Using the SDK API Documentation (Cont.)
As a summary, here is the code to create a
VMware_VCloud_API_AdminOrgType data object.
$adminOrg = new VMware_VCloud_API_AdminOrgType();
$adminOrg->set_name(‘myOrg’);
$adminOrg->setFullName(‘my org fullname’);
$settings = new VMware_VCloud_API_OrgSettingsType();
$settings->setIsEnabled(true);
$settings->setCanPublishCatalogs(true);
$settings->setOrgLdapMode(‘NONE’);
$adminOrg->setSettings($settings);
17. VMware_VCloud_SDK Packages
Three packages
VMware_VCloud_SDK
user and administrative operations
VMware_VCloud_SDK_Extension
admin extension operations
VMware_VCloud_SDK_Http
HTTP request/response
18. VMware_VCloud_SDK Classes
Classes support vCloud user level operations
VMware_VCloud_SDK_Org -- entry point for references to other resource entities
VMware_VCloud_SDK_Vdc
VMware_VCloud_SDK_VApp
VMware_VCloud_SDK_Vm
VMware_VCloud_SDK_VAppTemplate
VMware_VCloud_SDK_Catalog
VMware_VCloud_SDK_CatalogItem
VMware_VCloud_SDK_Media
VMware_VCloud_SDK_Network
18
19. VMware_VCloud_SDK Classes (Continued)
Classes support vCloud administrative level operations
VMware_VCloud_SDK_Admin -- admin entry point
VMware_VCloud_SDK_AdminOrg
VMware_VCloud_SDK_AdminVdc
VMware_VCloud_SDK_Role
VMware_VCloud_SDK_User
VMware_VCloud_SDK_Group
VMware_VCloud_SDK_AdminCatalog
VMware_VCloud_SDK_AdminNetwork
Other classes
VMware_VCloud_SDK_Service -- SDK entry point, login/logout, etc.
VMware_VCloud_SDK_Factory -- Handles SDK objects creation
VMware_VCloud_SDK_Exception
19
21. VMware_VCloud_SDK_Http Classes
Classes support HTTP request and response
VMware_VCloud_SDK_Http_Client
VMware_VCloud_SDK_Http_Exception
Default client implementation uses PEAR HTTP_Request2 library
Users can use their own choices by extending the following
interfaces.
VMware_VCloud_SDK_Http_Client_Interface
VMware_VCloud_SDK_Http_Response_Interface
21
22. Creating an SDK Object
To create a user operation entry point, VMware_VCloud_SDK_Org
object
$orgRefs = $service->getOrgRefs($orgName);
$sdkOrg = $service->createSDKObj($orgRefs[0]);
To create an admin operation entry point,
VMware_VCloud_SDK_Admin object
$sdkAdminObj = $service->createSDKAdminObj();
To create an admin extension operation entry point,
VMware_VCloud_SDK_Extension object
$sdkExtObj = $service->createSDKExtensionObj();
To create other SDK objects
$sdkObj = $service->createSDKObj($ref);
$ref is a ReferenceType or LinkType data object or a resource entity URL string.
For how to trace down to get a referenceType object, refer to the next slides.
22
23. Creating a VMware vCloud SDK Object (Continued)
The following table lists how to get a ReferenceType object to create
an SDK object. Note, the package name of the SDK object is
omitted. The formula is,
$reference = [column2 SDK obj] -> [column 3 SDK method];
[column 1 SDK obj] = $service->createSDKObj($reference);
SDK Object to Container Object of the Method to be Invoked on the SDK Container
Create SDK Object to Create Object
Org Service getOrgRefs(), getSystemOrgRef(), getAdminSystemOrgRef()
Vdc Org getVdcRefs()
Catalog Org getCatalogRefs()
Network Org getOrgNetworkRefs()
VApp Vdc getVAppRefs()
VAppTemplate Vdc getVAppTemplateRefs()
Media Vdc getMediaRefs()
CatalogItem Catalog getCatalogItemRefs()
VApp VApp getContainedVAppRefs()
Vm VApp getContainedVmRefs()
23
24. Create a VMware vCloud SDK Object (Continued)
SDK Object to Container Object of the Method to be Invoked on the SDK Container
Create SDK Object to Create Object
AdminOrg Admin getAdminOrgRefs()
ExternalNetwork Admin getExternalNetworkRefs()
Role Admin getRoleRefs()
<No SDK object> Admin getRightRefs()
<No SDK object> Admin getProviderVdcRefs()
AdminVdc AdminOrg getAdminVdcsRefs()
AdminCatalog AdminOrg getAdminCatalogRefs()
Group AdminOrg getGroupRefs()
User AdminOrg getUserRefs()
AdminNetwork AdminOrg getAdminNetworkRefs()
CatalogItem AdminCatalog getCatalogItemRefs()
24
25. Create a VMware vCloud SDK Object (Continued)
SDK Object to Create Container Object of the Method to be Invoked on the SDK
SDK Object to Create Container Object
Extension_VMWProviderVdc Extension getVMWProviderVdcRefs()
Extension_VMWExternalNetwork Extension getVMWExternalNetworkRefs()
Extension_VMWNetworkPool Extension getVMWNetworkPoolRefs()
Extension_VimServer Extension getVimServerRefs()
Extension_Host Extension getHostRefs()
<No SDK object> Extension_VMWProviderVdc getNetworkPoolRefs()
<No SDK object> Extension_VimServer getResourcePoolRefs()
25
26. VMware_VCloud_SDK Classes – Details (Continued)
Methods are defined to retrieve, create, modify or delete vCloud
entities
Methods for retrieving a vCloud entities are defined in the SDK mapped
container class of the entity. For example, getVdcs() is defined in
VMware_VCloud_SDK_Org class.
For retrieving entities, usually each entity type has two methods,
• get<Entity>Refs() -- Get the references to the entities in an array. For example,
getVdcRefs()
• get<Entity>s() -- Get the entity data objects in an array. For example, getVdcs().
Methods for creating a vCloud entities are defined in the SDK mapped
container class. For example, to upload an OVF package to vCloud as a
vAppTemplate, method uploadOVFAsVAppTemplate() is defined in
VMware_VCloud_SDK_Vdc class.
Methods for modifying or deleting a vCloud entity are defined in the SDK
mapped class itself.
For supported operations, please refer to the SDK API reference
documentation or VMware vCloud API Guide.
26
27. Use the SDK
User can create SDK objects and use methods defined in the SDK
objects to create, retrieve, update, delete vCloud entities.
When user needs to access attributes of vCloud entities, or to
construct a data object used for sending a request to vCloud, use
data objects directly. For example,
To get the name of an organization, invoke get_name() method on a
VMware_VCloud_API_OrgType data object.
To construct a ParamType data object for a clone operation.
27
28. First Program using SDK – Login
Log into a VMware vCloud service portal
To get a service object
$service = VMware_VCloud_SDK_Service::getService();
Log in
• $service->login($server, $auth, $httpConfig)*;
* If proxy and/or SSL certificate are used, configure the $httpConfig array. For details, refer to
config.php under the samples directory in the SDK package and HTTP_Request2 documentation.
Successful login returns a list of references to all the organizations
that the user has access to.
$orgListObj = $service->login($server, $auth, $httpConfig);
28
29. Sample Code
This example demonstrates how to get and power on a virtual
machine. For simplicity, it always pick the first element of an array.
<?php
require_once 'config.php'; // includes all needed libraries and parameters setting
$service = VMware_VCloud_SDK_Service::getService();
$service->login ($server, $auth, $httpConfig);
$orgRefs = $service->getOrgRefs(); //get references for vCloud organization entities
$sdkOrg = $service->createSDKObj($orgRefs[0]); // create an SDK Org object
$vdcRefs = $sdkOrg->getVdcRefs(); // get references to vCloud vDC entities
$sdkVdc = $service->createSDKObj($vdcRefs[0]); // create an SDK vDC object
$vAppRefs = $sdkVdc->getVAppRefs(); // get references to vCloud vApp entities
$sdkVApp = $service->createSDKObj($vAppRefs[0]); // create an SDK vApp object
$vmRefs = $sdkVApp->getContainedVmRefs(); // get contained Vms
$sdkVm = $service->createSDKObj($vmRefs[0]); // create an SDK Vm object
$sdkVm->powerOn(); // power on the Vm
?>
29
31. List of vCloud User API Operations
Operation Since Description PHP SDK method(s) for the operation
GET .../api/versions v0.9 Retrieves the version information. $service->getAPIVersion();
GET .../api/v1.0/schema/<schema_file_name> v0.9 Retrieves a schema file. No direct method, do through $service->get($url);
POST .../api/v1.0/login v0.9 Login with HTTP POST request. $service->login();
POST .../api/v1.0/logout v0.9 Logs out the user and invalidates the $service->logout();
authentication token returned by login.
GET .../api/v1.0/org v0.9 Retrieves a list of organizations. $service->getOrgRefs();
GET .../api/v1.0/org/<org-id> v0.9 Retrieves an organization. $service->getOrgs();
GET .../api/v1.0/vdc/<vdc-id> v0.9 Retrieves a virtual data center. $sdkOrg->getVdcs();
POST .../api/v1.0/vdc/<vdc-id>/action/instantiateVAppTemplate v0.9 Instantiate a vApp template into a new $sdkVdc->instantiateVAppTemplateDefault(); Or
vApp. $sdkVdc->instantiateVAppTemplate();
POST .../api/v1.0/vdc/<vdc-id>/action/captureVApp v0.9 Captures a vApp into vApp template. $sdkVdc->captureVApp();
POST .../api/v1.0/vdc/<vdc-id>/action/cloneMedia v0.9 Clones a media. $sdkVdc->cloneMoveMedia();
POST .../api/v1.0/vdc/<vdc-id>/action/cloneVApp v0.9 Clones a vApp into new vApp. $sdkVdc->cloneMoveVApp();
POST .../api/v1.0/vdc/<vdc-id>/action/cloneVAppTemplate v0.9 Clones a vApp template. $sdkVdc->cloneMoveVAppTemplate();
POST .../api/v1.0/vdc/<vdc-id>/action/composeVApp v0.9 Composes a new vApp using VMs from $sdkVdc->composeVApp();
other vApps or vAppTemplates.
POST .../api/v1.0/vdc/<vdc-id>/action/uploadVAppTemplate v0.9 Uploading vApp template to a vDC. $sdkVdc->uploadOVFAsVAppTemplate();
GET .../api/v1.0/catalog/<catalog-id> v0.9 Retrieves a catalog. $sdkOrg->getCatalogs(); Or
$catalogRefs = $sdkOrg->getCatalogRefs();
$sdkCatalog = $service->createSDKObj($catalogRef);
$sdkCatalog->getCatalog();
GET .../api/v1.0/org/<org-id>/catalog/<catalog-id>/controlAccess v0.9 Retrieves the catalog control access $sdkCatalog->getControlAccess();
information.
POST .../api/v1.0/org/<org-id>/catalog/<catalog- v0.9 Modifies a catalog control access. $sdkCatalog->modifyControlAccess();
id>/action/controlAccess
POST .../api/v1.0/catalog/<catalog-id>/catalogItems v0.9 Creates a catalog item in a catalog. $sdkCatalog->addCatalogItem();
GET .../api/v1.0/catalogItem/<catalog-item-id> v0.9 Retrieves a catalog item. $sdkCatalog->getCatalogItems(); Or
$catalogItemRefs = $sdkCatalog->getCatalogItemRefs();
$sdkCatalogItem = $service->createSDKObj($catalogitemRef);
$sdkCatalogItem->getCatalogItem();
PUT .../api/v1.0/catalogItem/<catalog-item-id> v0.9 Modifies a catalog item. $sdkCatalogItem->modify();
DELETE .../api/v1.0/catalogItem/<catalog-item-id> v0.9 Deletes a catalog item. $sdkCatalogItem->delete();
POST .../api/v1.0/vdc/<vdc-id>/media v0.9 Creates a media (and present upload $sdkVdc->uploadFloppyMedia();
link for the floppy/iso file). $sdkVdc->uploadIsoMedia()
GET .../api/v1.0/media/<media-id> v0.9 Retrieves a media. $sdkVdc->getMedias(); Or
$mediaRefs = $sdkVdc->getMediaRefs();
$sdkMedia = $service->createSDKObj($mediaRef);
$sdkMedia->getMedia();
32. PUT .../api/v1.0/media/<media-id> v0.9 Updates the name/description of a $sdkMedia->modifyName();
media. $sdkMedia->modifyDescription();
DELETE .../api/v1.0/media/<media-id> v0.9 Deletes a media. $sdkMedia->delete();
GET .../api/v1.0/task/<task-id> v0.9 Retrieves a task. No direct method, do through $service->get($url);
GET .../api/v1.0/tasksList/<org-id> v0.9 Retrieves a list of tasks bound to an No direct method, do through $service->get($url)
organization.
GET .../api/v1.0/vApp/<vapp-id> v0.9 Retrieves a vApp. $sdkVdc->getVApps(); Or
$VAppRefs = $sdkVdc->getVAppRefs();
$sdkVApp = $service->createSDKObj($VAppRef);
$sdkVApp->getVApp();
PUT .../api/v1.0/vApp/<vapp-id> v0.9 Modifies the name/description of a vApp. $sdkVApp->modify();
DELETE .../api/v1.0/vApp/<vapp-id> v0.9 Deletes a vApp. $sdkVApp->delete();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/powerOn v0.9 Powers on a vApp/VM. $sdkVApp->powerOn();/$sdkVm->powerOn();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/powerOff v0.9 Powers off a vApp/VM. $sdkVApp->powerOff();/$sdkVm->powerOff();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/suspend v0.9 Suspends a vApp/VM. $sdkVApp->suspend();/$sdkVm->suspend();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/reboot v0.9 Reboots a vApp/VM. $sdkVApp->reboot();/$sdkVm->reboot();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/reset v0.9 Resets a vApp/VM. $sdkVApp->reset();/$sdkVm->reset();
POST .../api/v1.0/vApp/<vapp/vm-id>/power/action/shutdown v0.9 Shutdowns a vApp/VM. $sdkVApp->shutdown();/$sdkVm->shutdown();
POST .../api/v1.0/vApp/<vapp/vm-id>/action/deploy v0.9 Deploy a vApp/VM. $sdkVApp->deploy();/$sdkVm->deploy();
POST .../api/v1.0/vApp/<vapp/vm-id>/action/undeploy v0.9 Undeploy a vApp/VM. $sdkVApp->undeploy();/$sdkVm->undeploy();
POST .../api/v1.0/vApp/<vapp/vm-id>/action/discardSuspendedState v0.9 Discard suspended state of a vApp/VM. $sdkVApp->discardSuspendedState(); /$sdkVm->
discardSuspendedState();
POST .../api/v1.0/vApp/<vapp-id>/action/recomposeVApp v1.0 Recompose vApp. $sdkVApp->recompose();
POST .../api/v1.0/vApp/<vapp-id>/action/controlAccess v0.9 Modifies the control access of a vApp. $sdkVApp->modifyControlAccess();
GET .../api/v1.0/vApp/<vapp-id>/controlAccess v0.9 Retrieves the control access information $sdkVApp->getControlAccess();
for a vApp.
GET .../api/v1.0/vApp/<vapp-id>/leaseSettingsSection v0.9 Retrieves the lease settings section of a $sdkVApp->getLeaseSettings();
vApp.
PUT .../api/v1.0/vApp/<vapp-id>/leaseSettingsSection v0.9 Modifies the lease settings section of a $sdkVApp->modifyLeaseSettings();
vApp.
DELETE .../api/v1.0/vApp/<vapp-id>/leaseSettingsSection v0.9 Deletes the lease settings section of a $sdkVApp->deleteLeaseSettings();
vApp.
GET .../api/v1.0/vApp/<vapp-id>/networkConfigSection v0.9 Retrieves the network config section of a $sdkVApp->getNetworkConfigSettings();
vApp.
PUT .../api/v1.0/vApp/<vapp-id>/networkConfigSection v0.9 Modifies the network config section of a $sdkVApp->modifyNetworkConfigSettings();
vApp.
33. GET .../api/v1.0/vApp/<vapp-id>/networkSection v0.9 Retrieves the network section of a vApp. $sdkVApp->getNetworkSettings();
GET .../api/v1.0/vApp/<vm-id>/operatingSystemSection v0.9 Retrieves the operating system section $sdkVm->getOperatingSystemSettings();
of a VM.
PUT .../api/v1.0/vApp/<vm-id>/operatingSystemSection v0.9 Modifies the operating system section of $sdkVm->modifyOperatingSystemSettings();
a VM.
GET .../api/v1.0/vApp/<vm-id>/screen v0.9 Retrieves the thumbnail of the screen of $sdkVm->getScreenThumbnailImage();
a VM.
POST .../api/v1.0/vApp/<vm-id>/screen/action/acquireTicket v0.9 Acquires the screen ticket for a VM. $sdkVm->getScreenTicket() Or
$sdkVm->getScreenTicketTokens();
POST .../api/v1.0/vApp/<vm-id>/action/ejectMedia v0.9 Ejects a media from a VM. $sdkVm->ejectMedia();
POST .../api/v1.0/vApp/<vm-id>/action/insertMedia v0.9 Inserts a media into a VM. $sdkVm->insertMedia();
GET .../api/v1.0/vApp/<vapp-id>/startupSection v0.9 Retrieves the startup section of a vApp. $sdkVApp->getStartupSettings();
PUT .../api/v1.0/vApp/<vapp-id>/startupSection v0.9 Modifies the startup section of a vApp. $sdkVApp->modifyStartupSettings();
DELETE .../api/v1.0/vApp/<vapp-id>/startupSection v0.9 Deletes the startup section of a vApp. $sdkVApp->deleteStartupSettings();
GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection v0.9 Retrieves the virtual hardware section of $sdkVm->getVirtualHardwareSettings();
a VM.
PUT .../api/v1.0/vApp/<vm-id>/virtualHardwareSection v0.9 Modifies the virtual hardware section of a $sdkVm->modifyVirtualHardwareSettings();
VM.
GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/cpu v0.9 Retrieves the RASD item that contains $sdkVm->getVirtualHardwareCpu();
CPU information from virtual hardware
section of a VM.
PUT .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/cpu v0.9 Modifies the CPU properties in virtual $sdkVm->modifyVirtualHardwareCpu();
hardware section of a VM.
GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/memory v0.9 Retrieves the RASD item that contains $sdkVm->getVirtualHardwareMemory();
memory information from virtual
hardware section of a VM.
PUT .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/memory v0.9 Modifies the memory properties in virtual $sdkVm->modifyVirtualHardwareMemory();
hardware section of a VM.
GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/disks v0.9 Retrieves a list of RASD items for disks $sdkVm->getVirtualHardwareDisks();
from virtual hardware section of a VM.
PUT .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/disks v0.9 Modifies the disks list virtual hardware $sdkVm->modifyVirtualHardwareDisk();
section of a VM.
GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/media v0.9 Retrieves the list of RASD items that $sdkVm->getVirtualHardwareMedia();
represents the floppies and CD/DVD
drives in a VM.
34. GET .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/networkCards v0.9 Retrieves a list of RASD items of $sdkVm->getVirtualHardwareNetworkCards();
network cards from virtual hardware
section of a VM.
PUT .../api/v1.0/vApp/<vm-id>/virtualHardwareSection/networkCards v0.9 Modifies the network cards list virtual $sdkVm->modifyVirtualHardwareNetworkCard()
hardware section of a VM.
GET .../api/v1.0/vApp/<vm-id>/guestCustomizationSection v1.0 Retrieves the guest customization $sdkVm->getGuestCustomizationSettings();
section of a VM.
PUT .../api/v1.0/vApp/<vm-id>/guestCustomizationSection v1.0 Updates the guest customization options $sdkVm->modifyGuestCustomizationSettings();
of a VM
GET .../api/v1.0/vApp/<vm-id>/networkConnectionSection v0.9 Retrieves the network connection section $sdkVm->getNetworkConnectionSettings();
of a VM.
PUT .../api/v1.0/vApp/<vm-id>/networkConnectionSection v0.9 Modifies the network connection section $sdkVm->modifyNetworkConnectionSettings();
of a VM.
GET .../api/v1.0/vApp/<vm-id>/question v0.9 Retrieves pending question for a VM. $sdkVm->getPendingQuestion();
POST .../api/v1.0/vApp/<vm-id>/question/action/answer v0.9 Answer on a pending question. $sdkVm->answerPendingQuestion();
GET .../api/v1.0/vAppTemplate/<vapp-template-id> v0.9 Retrieves a vApp template (can be used $sdkVdc->getVAppTemplates(); Or
also to retrieve a VM from a $vAppTemplateRefs = $sdkVdc->getVAppTemplateRefs();
vAppTemplate). $sdkVAppTemplate = $service->createSDKObj($vAppTemplateRef);
$sdkVAppTemplate->getVAppTemplate();
PUT .../api/v1.0/vAppTemplate/<vapp-template-id> v0.9 Modifies only the name/description of a $sdkVAppTemplate->modifyName();
vApp template.
$sdkVAppTemplate->modifyDescription();
DELETE .../api/v1.0/vAppTemplate/<vapp-template-id> v0.9 Deletes a vApp template. $sdkVAppTemplate->delete();
POST .../api/v1.0/vAppTemplate/<vapp-template- v0.9 Enables downloading of the ovf of a $sdkVAppTemplate->enableDownload();
id>/action/enableDownload vApp template.
POST .../api/v1.0/vAppTemplate/<vapp-template- v0.9 Disables the download link to the ovf of a $sdkVAppTemplate->disableDownload();
id>/action/disableDownload vApp template.
GET .../api/v1.0/vAppTemplate/<vapp-template- v1.0 Retrieves the customization section of a $sdkVAppTemplate->getCustomizationSettings();
id>/customizationSection vApp template.
PUT .../api/v1.0/vAppTemplate/<vapp-template- v1.0 Updates the vAppTemplate $sdkVAppTemplate->modifyCustomizationSettings();
id>/customizationSection customization information.
GET .../api/v1.0/vAppTemplate/<vapp-template- v0.9 Retrieves the network config section of a $sdkVAppTemplate->getNetworkConfigSettings();
id>/networkConfigSection vApp template.
GET .../api/v1.0/vAppTemplate/<vapp-template-id>/networkSection v0.9 Retrieves the network section of a vApp $sdkVAppTemplate->getNetworkSettings();
template.
GET .../api/v1.0/vAppTemplate/<vapp-template-id>/ovf v0.9 Retrieves an OVF descriptor of a vApp $sdkVAppTemplate->downloadOVFFiles(); Or $service->get($url);
template.
GET .../api/v1.0/network/<network-id> v0.9 Retrieves an organization network. $sdkVdc->getAvailableNetworks();
35. List of vCloud Admin API Operations
Operation Since Description PHP SDK method(s) for the operation
GET .../api/v1.0/admin v0.9 Retrieves the top level entity for the $service->getAdmin(); Or
Admin API. $sdkAdmin = $service->createSDKAdminObj();
$sdkAdmin->getVCloud();
GET .../api/v1.0/admin/providervdc/<provider-vdc-id> v0.9 Get the representation of the $sdkAdmin->getProviderVdcs();
Provider vDC.
GET .../api/v1.0/admin/providervdc/<provider-vdc- v1.0 Retrieves all org vDCs for given No direct method, do through $service->get($url);
id>/vdcReferences provider vDC.
POST .../api/v1.0/admin/orgs v0.9 Creates an organization. $sdkAdmin->createOrganization();
GET .../api/v1.0/admin/org/<org-id> v0.9 Retrieves an admin view of an $sdkAdmin->getAdminOrgs(); Or
organization. $adminOrgRefs = $sdkAdmin->getAdminOrgRefs();
$sdkAdminOrg = $service->createSDKObj($adminOrgRef);
$sdkAdminOrg->getAdminOrg();
PUT .../api/v1.0/admin/org/<org-id> v0.9 Modifies an admin organization. $sdkAdminOrg->modify();
DELETE .../api/v1.0/admin/org/<org-id> v0.9 Deletes an admin organization. $sdkAdminOrg->delete();
POST .../api/v1.0/admin/org/<org-id>/action/enable v1.0 Enables an admin organization. $sdkAdminOrg->enable();
POST .../api/v1.0/admin/org/<org-id>/action/disable v1.0 Disables an organization. $sdkAdminOrg->disable();
POST .../api/v1.0/admin/org/<org-id>/vdcs v0.9 Creates a virtual data center in an $sdkAdminOrg->createAdminVdc();
organization.
GET .../api/v1.0/admin/vdc/<vdc-id> v0.9 Retrieves an admin view of virtual $sdkAdminOrg->getAdminVdcs(); Or
data center. $adminVdcRefs = $sdkAdminOrg->getAdminVdcRefs();
$sdkAdminVdc = $service->createSDKObj($adminVdcRef);
$sdkAdminVdc->getAdminVdc();
PUT .../api/v1.0/admin/vdc/<vdc-id> v0.9 Modifies a Virtual Data Center. $sdkAdminVdc->modify();
DELETE .../api/v1.0/admin/vdc/<vdc-id> v0.9 Deletes a Virtual Data Center. $sdkAdminVdc->delete();
POST .../api/v1.0/admin/vdc/<vdc-id>/action/enable v1.0 Enables a Virtual Data Center. $sdkAdminVdc->enable();
POST .../api/v1.0/admin/vdc/<vdc-id>/action/disable v1.0 Disables a Virtual Data Center. $sdkAdminVdc->disable();
POST .../api/v1.0/admin/org/networks v0.9 Creates a network in an $sdkAdminOrg->addOrgNetwork();
organization.
GET .../api/v1.0/admin/network/<network-id> v0.9 Gets admin representation of $sdkAdminOrg->getAdminNetworks(); Or
organization network. $adminNetworkRefs = $sdkAdminOrg->getAdminNetworkRefs();
$sdkAdminNetwork = $service->createSDKObj($adminNetworkRef);
$sdkAdminNetwork->getAdminNetwork();
PUT .../api/v1.0/admin/network/<network-id> v0.9 Modifies an org network. $sdkAdminNetwork->modify();
DELETE .../api/v1.0/admin/network/ v0.9 Deletes a network. $sdkAdminNetwork->delete();
POST .../api/v1.0/admin/org/catalogs v0.9 Creates a catalog in an org. $sdkAdminOrg->createCatalog();
GET .../api/v1.0/admin/catalog/<catalog-id> v0.9 Retrieves a catalog. $sdkAdminOrg->getCatalogs(); Or
$catalogRefs = $sdkAdminOrg->getcatalogRefs();
$sdkAdminCatalog = $service->createSDKObj($catalogRef);
$sdkAdminCatalog->getCatalog();
36. PUT .../api/v1.0/admin/catalog/<catalog-id> v0.9 Modifies a catalog. $sdkAdminCatalog->modify();
DELETE .../api/v1.0/admin/catalog/<catalog-id> v0.9 Deletes a catalog. $sdkAdminCatalog->delete();
POST .../api/v1.0/admin/catalog/<catalog-id>/action/publish v1.0 Publish a catalog. $sdkAdminCatalog->publish();
GET .../api/v1.0/admin/right/<right-id> v0.9 Retrieves a right. $sdkAdmin->getRights();
POST .../api/v1.0/admin/roles v0.9 Creates a role. $sdkAdmin->createRole();
GET .../api/v1.0/admin/role/<role-id> v0.9 Retrieves a role. $sdkAdmin->getRoles(); Or
$roleRefs = $sdkAdmin->getRoleRefs();
$sdkRole = $service->createSDKObj($roleRef);
$sdkRole->getRole();
PUT .../api/v1.0/admin/role/<role-id> v0.9 Modifies a role. $sdkRole->modify();
DELETE .../api/v1.0/admin/role/<role-id> v0.9 Deletes a role. $sdkRole->delete();
POST .../api/v1.0/admin/org/users v0.9 Creates or imports a user in an $sdkAdminOrg->createUser();
organization.
GET .../api/v1.0/admin/user/<user-id> v0.9 Retrieves a user. $sdkAdminOrg->getUsers(); Or
$userRefs = $sdkAdminOrg->getUserRefs();
$sdkUser = $service->createSDKObj($userRef);
$sdkUser->getUser();
PUT .../api/v1.0/admin/user/<user-id> v0.9 Modifies a user. $sdkUser->modify();
DELETE .../api/v1.0/admin/user/<user-id> v0.9 Deletes a user. $sdkUser->delete();
Enable a user. $sdkUser->enable();
Disable a user. $sdkUser->disable();
POST .../api/v1.0/admin/org/groups v0.9 Imports a group in an organization. $sdkAdminOrg->importGroup();
GET .../api/v1.0/admin/group/<group-id> v0.9 Retrieves a group. $sdkAdminOrg->getGroups(); Or
$groupRefs = $sdkAdminOrg->getGroupRefs();
$sdkGroup = $service->createSDKObj($groupRef);
$sdkGroup->getGroup();
PUT .../api/v1.0/admin/group/<group-id> v0.9 Modifies a group. $sdkGroup->modify();
DELETE .../api/v1.0/admin/group/<groupd-id> v0.9 Deletes a group. $sdkGroup->delete();
37. List of vCloud Admin Extension Operations
Operation Since Description PHP SDK method(s) for the operation
GET .../api/v1.0/admin/extension v1.0 Get various links to access $service->getAdminExtension(); Or
extension API. $sdkExt = $service->createSDKExtensionObj();
$ext = $sdkExt->getExtension();
GET .../api/v1.0/admin/extension/providerVdcReferences v1.0 Get list of provider vDC $vmwPvdcRefs = $sdkExt->getVMWProviderVdcRefs();
references.
POST .../api/v1.0/admin/extension/providervdcs v0.9 Creates a provider vDC. $sdkExt->createVMWProviderVdc();
GET .../api/v1.0/admin/extension/providervdc/<provider-vdc-id> v0.9 Gets an extension $sdkExt->getVMWProviderVdcs(); Or
representation of provider vDC. $sdkExtVmwPvdc = $service->createSDKObj($vmwPvdcRef);
$sdkExtVmwPvdc->getVMWProviderVdc();
PUT .../api/v1.0/admin/extension/providervdc/<provider-vdc-id> v0.9 Modifies a provider vDC. $sdkExtVmwPvdc->modify();
DELETE .../api/v1.0/admin/extension/providervdc/<provider-vdc-id> v0.9 Deletes a provider vDC. $sdkExtVmwPvdc->delete();
POST .../api/v1.0/admin/extension/providervdc/<provider-vdc- v0.9 Enables a provider vDC. $sdkExtVmwPvdc->enable();
id>/action/enable
POST .../api/v1.0/admin/extension/providervdc/<provider-vdc- v0.9 Disables a provider vDC. $sdkExtVmwPvdc->disable();
id>/action/disable
GET .../api/v1.0/admin/extension/externalNetworkReferences v1.0 Get list of external network $externalNetworkRefs = $sdkExt->getVMWExternalNetworkRefs();
references.
POST .../api/v1.0/admin/extension/externalnets v1.0 Creates an external network. $sdkExt->createVMWExternalNetwork();
GET .../api/v1.0/admin/extension/externalnet/<externalnet-id> v1.0 Gets an extension view of $sdkExt->getVMWExternalNetworks(); Or
external network. $sdkExtExternalNetwork = $service->createSDKObj($externalNetworkRef);
$sdkExtExternalNetwork->getExternalNetwork();
PUT .../api/v1.0/admin/extension/externalnet/<externalnet-id> v1.0 Modifies an external network. $sdkExtExternalNetwork->modify();
DELETE .../api/v1.0/admin/extension/externalnet/<externalnet-id> v1.0 Deletes an external network. $sdkExtExternalNetwork->delete();
GET .../api/v1.0/admin/extension/networkPoolReferences v1.0 Get list of network pool $networkPoolRefs = $sdkExt->getVMWNetworkPoolRefs();
references.
POST .../api/v1.0/admin/extension/networkPools v0.9 Creates a network pool. $sdkExt->createVMWNetworkPool();
GET .../api/v1.0/admin/extension/networkPool/<network-pool-id> v0.9 Gets a network pool. $sdkExt->getVMWNetworkPools(); Or
$sdkExtNetworkPool = $service->createSDKObj($networkPoolRef);
$sdkExtNetworkPool->getVMWNetworkPool();
PUT .../api/v1.0/admin/extension/networkPool/<network-pool-id> v0.9 Modifies a network pool. $sdkExtNetworkPool->modify();
DELETE .../api/v1.0/admin/extension/networkPool/<network-pool-id> v0.9 Deletes a network pool. $sdkExtNetworkPool->delete();
GET .../api/v1.0/admin/extension/vimServerReferences v1.0 Get list of vSphere server $vimServerRefs = $sdkExt->getVimServerRefs();
references.
POST .../api/v1.0/admin/extension/action/registervimserver v0.9 Register a vSphere server and $sdkExt->registerVimServer();
shield manager.
GET .../api/v1.0/admin/extension/vimServer/<vim-server-id> v0.9 Gets a vSphere server. $sdkExt->getVimServers(); Or
$sdkExtVimServer = $service->createSDKObj($vimServerRef);
$sdkExtVimServer->getVimServer();
PUT .../api/v1.0/admin/extension/vimServer/<vim-server-id> v0.9 Modifies a vSphere server. $sdkExtVimServer->modify();
38. POST .../api/v1.0/admin/extension/vimServer/<vim-server- v0.9 Unregisters a vSphere server. $sdkExt->unregisterVimServer();
id>/action/unregister
POST .../api/v1.0/admin/extension/vimServer/<vim-server- v1.0 Imports a vSphere server VM $sdkExtVimServer->importVmAsVApp();
id>/importVmAsVApp as vApp.
POST .../api/v1.0/admin/extension/vimServer/<vim-server- v1.0 Imports a vSphere server VM $sdkExtVimServer->importVmAsVAppTemplate();
id>/importVmAsVAppTemplate as vApp template.
POST .../api/v1.0/admin/extension/vimServer/<vim-server- v1.0 Forces a vSphere server to $sdkExtVimServer->forceReconnect();
id>/action/forcevimserverreconnect reconnect.
GET .../api/v1.0/admin/extension/vimServer/<vim-server- v1.0 Lists available VMs for import $sdkExtVimServer->getVmRefsListByPage();
id>/vmsList?page=1&pageSize=100 from a vSphere server.
GET .../api/v1.0/admin/extension/vimServer/<vim-server- v1.0 Lists free resource pools in a $sdkExtVimServer->getResourcePoolRefs();
id>/resourcePoolList vSphere server.
$sdkExtVimServer->enable();
$sdkExtVimServer->disable();
GET .../api/v1.0/admin/extension/hostReferences v1.0 Get list of host references. $hostRefs = $sdkExt->getHostRefs();
GET .../api/v1.0/admin/extension/host/<host-id> v1.0 Gets a host. $sdkExt->getHosts(); Or
$sdkExtHost = $service->createSDKObj($hostRef);
$sdkExtHost->getHost();
POST .../api/v1.0/admin/extension/host/<host-id>/action/enable v0.9 Enables a host. $sdkExtHost->enable();
POST .../api/v1.0/admin/extension/host/<host-id>/action/disable v0.9 Disables a host. $sdkExtHost->disable();
POST .../api/v1.0/admin/extension/host/<host-id>/action/prepare v0.9 Prepares a host. $sdkExtHost->prepare();
POST .../api/v1.0/admin/extension/host/<host-id>/action/unprepare v0.9 Unprepares a host. $sdkExtHost->unprepare();
POST .../api/v1.0/admin/extension/host/<host-id>/action/repair v1.0 Repairs a host. $sdkExtHost->repair();
POST .../api/v1.0/admin/extension/host/<host-id>/action/upgrade v1.0 Upgrades the host agent. $sdkExtHost->upgrade();
GET .../api/v1.0/admin/extension/licensing/reports v1.0 Lists the licensing reports. No direct method, do through $service->get($url);
GET .../api/v1.0/admin/extension/licensing/report/<report-id> v1.0 Gets a licensing report. No direct method, do through $service->get($url);