Extension Templates
Last Updated December 16, 2024

When you add custom vSphere objects, use the extension templates to make the
vSphere Client
user interface consistent.
vsphere.core.inventory.objectViewTemplate
deprecated
Creates a complete object workspace for a given custom object type. When you create an instance of the
objectViewTemplate
, the
vSphere Client
generates an extension point for each of the standard object workspace tabs, second-level tabs, and views.
Requires the following variables:
  • namespace
    - plugin-specific prefix to use in all extension IDs of the template. A best practice is to use reverse domain naming, such as
    com.myCompany
    , to start the namespace name, followed by a unique extension name. For example, if your company name is Acme, and you create a plug-in for a custom object called Rack, you could use the namespace
    com.acme.plugin01.rack
    .
  • objectType
    - custom object type of the instance. Should be qualified with its own namespace to avoid collisions.
The
objectViewTemplate
creates extension points in the format
namespace
.
extension-point-name
. To continue the previous example, one extension point might be
com.acme.plugin01.rack.monitorViews
.
For the full list of object workspace extension points, see Custom Object Extension Points. A given tab does not appear in the
vSphere Client
user interface unless you explicitly create an extension that references that tab's extension point.
Example:
<templateInstance id="com.vmware.samples.chassisb.viewTemplateInstance">
   <templateId>vsphere.core.inventory.objectViewTemplate</templateId>
   <variable name="namespace" value="com.vmware.samples.chassisb"/>
   <variable name="objectType" value="samples:ChassisB"/>
</templateInstance>
vsphere.core.inventorylist.objectCollectionTemplate
deprecated
Creates an object collection node in the object navigator for a given custom object type.
Requires the following variables:
  • namespace
    - plugin-specific prefix to use in all extension IDs of the template. It must be different than the one in
    objectViewTemplate
    .
  • title
    - custom object title or its resource ID.
  • icon
    - 18x18 custom object icon resource ID.
  • objectType
    - custom object type of the instance. Should be qualified with its own namespace to avoid collisions.
  • listViewId
    - container view ID for the current object collection.
  • parentUid
    - extension ID of the category node which the current node belongs to.
Example:
<templateInstance id="com.vmware.samples.lists.allChassis">
   <templateId>vsphere.core.inventorylist.objectCollectionTemplate</templateId>
   <variable name="namespace" value="com.vmware.samples.chassisb_collection"/>
   <variable name="title" value="Chassis"/>
   <variable name="icon" value="#{chassis}"/>
   <variable name="objectType" value="samples:ChassisB"/>
   <variable name="listViewId" value="com.vmware.samples.chassisb.list"/>
   <variable name="parentUid" value="com.vmware.samples.chassisBCategory"/>
</templateInstance>