• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
vCloud SDK for PHP - Introduction
 

vCloud SDK for PHP - Introduction

on

  • 2,069 views

 

Statistics

Views

Total Views
2,069
Views on SlideShare
1,572
Embed Views
497

Actions

Likes
1
Downloads
44
Comments
0

1 Embed 497

http://blogs.vmware.com 497

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    vCloud SDK for PHP - Introduction vCloud SDK for PHP - Introduction Presentation Transcript

    • VMware vCloud SDK for PHP Kimberly Wang (kwang@vmware.com) Ecosystem Engineering, VMware, Inc. 09/2010 © 2009 VMware Inc. All rights reserved
    • 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
    • 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
    • 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
    • VMware_VCloud_API Packages VMware_VCloud_API Packages
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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);
    • VMware_VCloud_SDK Packages VMware_VCloud_SDK Packages
    • 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
    • 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
    • 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
    • VMware_VCloud_SDK_Extension Classes Classes support vCloud administrative extension level operations VMware_VCloud_SDK_Extension -- admin extension entry point VMware_VCloud_SDK_Extension_Host VMware_VCloud_SDK_Extension_VimServer VMware_VCloud_SDK_Extension_VMWExternalNetwork VMware_VCloud_SDK_Extension_VMWNetworkPool VMware_VCloud_SDK_Extension_VMWProviderVdc 20
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • References VMware vCloud SDK for PHP operations and methods reference
    • 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();
    • 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.
    • 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.
    • 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();
    • 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();
    • 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();
    • 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();
    • 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);