Object Workspace Extension Points

Each vSphere object type’s object workspace provides a set of extension points. Each extension point corresponds to a specific data view, such as the Summary tab view or the Configure tab view. Every object workspace extension point requires a data object of type com.vmware.ui.views.ViewSpec.

Most object workspace extension points follow the format vsphere.core.${objectType}.${view}. The ${objectType} placeholder corresponds to the type of vSphere object, and the ${view} placeholder corresponds to the specific view. For example, the extension point vsphere.core.cluster.manageViews is the extension point for the Configure tab view for Cluster objects. The following names are valid ${objectType} values.
  • cluster: ClusterComputeResource object
  • datacenter: Datacenter object
  • dscluster: StoragePod object
  • dvs: DistributedVirtualSwitch object
  • dvPortgroup: DistributedVirtualPortgroup object
  • folder: Folder object
  • host: HostSystem object
  • hp: HostProfile object
  • network: Network object
  • resourcePool: ResourcePool object
  • datastore: Datastore object
  • vApp: VirtualApp object
  • vm: VirtualMachine object
  • template: Virtual Machine template object
vsphere.core.${objectType}.summarySectionViews.html

Adds an HTML portlet to the Summary tab view.

Requires a data object of type ViewSpec with available properties:
  • name - user-visible name of the global view.
  • icon - (optional) 18x18 portlet icon resource ID.
  • contentSpec
    • url - relative URL to the HTML page that loads the view content.
    • dialogTitle - portlet title.
    • size - width and height of the portlet content area:
      • width - can only be 1, the default width.
      • height - can only be 1 or 2, multiples of the default height.
Note: The portlet content area does not include the title size. The title size cannot be modified.

Accessibility: {vSphere object} → Summary page.

Example:

<extension id="com.vmware.samples.vspherewssdk.vm.summary2">
   <extendedPoint>vsphere.core.vm.summarySectionViews</extendedPoint>
   <object>
      <name>#{summaryView.title}</name>
      <contentSpec>
         <url>/ui/vspherewssdk/resources/vm-summary.html</url>
         <dialogTitle>WSSDK Summary Sample</dialogTitle>
         <size>
            <width>1</width>
            <height>2</height>
         </size>
      </contentSpec>
   </object>
</extension>
vsphere.core.${objectType}.monitorCategories

Adds a sub-view category to the Monitor tab view.

Requires a data object of type CategorySpec with available properties:

  • label - user-visible name of the Monitor view category.

Accessibility: {vSphere object} → Monitor page

Example:

<extension id="com.vmware.samples.vspherewssdk.vm.monitor.category">
   <extendedPoint>vsphere.core.vm.monitorCategories</extendedPoint>
   <object>
      <label>WSSDK Category</label>
   </object>
</extension>
vsphere.core.${objectType}.monitorViews

Adds a sub-view to the Monitor tab view.

Requires a data object of type ViewSpec with available properties:

  • name - user-visible name of the Monitor view.
  • categoryUid - (optional) ID of the category this Monitor view belongs to.
  • contentSpec
    • url - relative URL to the HTML page that loads the view content.

Accessibility: {vSphere object} → Monitor page

Example:

<extension id="com.vmware.samples.vspherewssdk.vm.monitor">
   <extendedPoint>vsphere.core.vm.monitorViews</extendedPoint>
   <object>
      <name>Monitor view</name>
      <categoryUid>com.vmware.samples.vspherewssdk.vm.monitor.category</categoryUid>
      <contentSpec>
         <url>/ui/vspherewssdk/resources/vm-monitor.html</url>
      </contentSyec>
   </object>
</extension>
vsphere.core.${objectType}.manageCategories

Adds a sub-view category to the Configure tab view.

Requires a data object of type CategorySpec with available properties:

  • label - user-visible name of the Configure view category.

Accessibility: {vSphere object} → Configure page

Example:

<extension id="com.vmware.samples.vspherewssdk.vm.manage.category">
   <extendedPoint>vsphere.core.vm.manageCategories</extendedPoint>
   <object>
      <label>WSSDK Category</label>
   </object>
</extension>
vsphere.core.${objectType}.manageViews

Adds a sub-view to the Configure tab view.

Requires a data object of type ViewSpec with available properties:

  • name - user-visible name of the Configure view.
  • categoryUid - (optional) ID of the category this Configure view belongs to.
  • contentSpec
    • url - relative URL to the HTML page that loads the view content.

Accessibility: {vSphere object} → Configure page

Example:

<extension id="com.vmware.samples.vspherewssdk.vm.manage">
   <extendedPoint>vsphere.core.vm.manageViews</extendedPoint>
   <object>
      <name>Configure view</name>
      <categoryUid>com.vmware.samples.vspherewssdk.vm.manage.category</categoryUid>
      <contentSpec>
         <url>/ui/vspherewssdk/resources/vm-configure.html</url>
      </contentSpec>
   </object>
</extension>
vise.relateditems.specs deprecated

Creates a new relation between object types, either vSphere objects or custom objects

Requires a data object of type ObjectRelationSetSpec with available properties:

  • type - vSphere/Custom object type.
  • relationViewId - ID of a view that can display object relations.
  • conditionalProperty - (optional) property name to introduce additional constraints on the object type for a relation.

    Note: To test for "false" use the negation operator "!" in front of the property name.

  • relationSpecs
    • id - relation ID
    • label - user-visible label of the relation.
    • icon - 18x18 relation icon resource ID.
    • listViewId - ID of a view that can display relation items.
    • relation - (optional) property name wrapped into a RelationalConstraint.
    • inverseRelation - (optional) property name used to check if an object applies to the relation.
    • conditionalProperty - (optional) property name wrapped into a PropertyConstraint.

      Note: To test for "false" use the negation operator "!" in front of the property name.

    • targetType - (optional) target type name used in any kind of Constraint.
    • constraint - (optional) general constraint used in case of relations that cannot be expressed in terms of targetType, relation and conditionalProperty

Accessibility: {vSphere object} → {related object type} in case of single relation; {vSphere object} → More objects in case of multiple relations.

Example:

<extension id="com.vmware.samples.relateditems.specs.host">
   <extendedPoint>vise.relateditems.specs</extendedPoint>
   <object>
      <type>HostSystem</type>
      <relationsViewId>vsphere.core.host.related</relationsViewId>
      <relationSpecs>
         <com.vmware.ui.relateditems.model.RelationSpec>
            <id>chassisForHost</id>
            <icon>#{chassis}</icon>
            <label>Chassis relation</label>
            <relation>chassis</relation>
            <targetType>samples:ChassisB</targetType>
            <listViewId>com.vmware.samples.chassisb.list</listViewId>
         </com.vmware.ui.relateditems.model.RelationSpec>
      </relationSpecs>
   </object>
</extension>
vsphere.core.${objectType}.monitor.performanceViews deprecated

Adds a view under the Performance second-level tab of the Monitor tab view.

Accessibility: {vSphere object} → Monitor → Performance

vsphere.core.${objectType}.manage.settingsViews deprecated

Adds a view under the Settings second-level tab of the Configure tab view.

Accessibility: {vSphere object} → Configure → Settings

vsphere.core.${objectType}.manage.alarmDefinitionsViews deprecated

Adds a view to the Alarm Definitions element in the Issues second-level tab of the Configure tab view.

Accessibility: {vSphere object} → Monitor → Alarm Definitions

vsphere.core.${objectType}.list.columns deprecated
Creates a new column in the list of vSphere objects of type ${objectType} in the object workspace.

Requires a data object of type com.vmware.ui.lists.ColumnSetContainer.

Note: Only the XML representation is supported.

Accessibility: {vSphere object list}