Before you update the virtual hardware configuration or choose a guest operating system for a VM, retrieve the list of virtual hardware versions supported by the organization VDC where the VM will be deployed. The virtual hardware version and guest operating system that you choose for a VM constrain many of the configuration values that you can specify. In most cases, you should choose the highest virtual hardware version supported by the VDC.

The set of virtual hardware versions supported by an organization VDC is contained in its Capabilities element. You can retrieve any of the supported virtual hardware versions to see a comprehensive list of guest operating systems it supports and, for each guest operating system, a list of the virtual hardware that it supports.

This operation requires the rights included in the predefined vApp Author role or an equivalent set of rights.

1

Retrieve the XML representation of the VDC and look for the Capabilities element it contains.

This element contains a SupportedHardwareVersions element that lists the virtual hardware versions that the VDC supports. The highest supported virtual hardware version is the default.

<Vdc ...>
   ...
   <Capabilities>
      <SupportedHardwareVersions>
         <SupportedHardwareVersion
            href="https://vcloud.example.com/api/hwv/vmx-09"
            name="vmx-09"
            type="application/vnd.vmware.vcloud.virtualHardwareVersion+xml">vmx-09</SupportedHardwareVersion>
         <SupportedHardwareVersion
            href="https://vcloud.example.com/api/hwv/vmx-10"
            name="vmx-10"
            type="application/vnd.vmware.vcloud.virtualHardwareVersion+xml">vmx-10</SupportedHardwareVersion>
         <SupportedHardwareVersion
            default="true"
            href="https://vcloud.example.com/api/hwv/vmx-11"
            name="vmx-11"
            type="application/vnd.vmware.vcloud.virtualHardwareVersion+xml">vmx-11</SupportedHardwareVersion>
      </SupportedHardwareVersions>
   </Capabilities>
   ...
</Vdc>
2

Retrieve a SupportedHardwareVersion from the list.

This element contains a VirtualHardwareVersion element that lists the guest operating systems supported by that hardware version.

3

Retrieve an OperatingSystem from the list.

Operating systems are grouped into families, each of which is contained in an OperatingSystemFamilyInfo element. Each OperatingSystem element provides information about supported virtual hardware elements such as hard disks, NICs, and CPUs, as well as guest customization and personalization, CIM and OVF identifiers, Microsoft sysprep capabilities, and so on. See Example: Virtual Hardware Version Details for an Operating System.

This example retrieves the default virtual hardware version from the list shown in Step 1.

Request:

GET https://vcloud.example.com/api/hwv/vmx-11

Response:

200 OK
...
<VirtualHardwareVersion ... >
   <name>vmx-11</name>
   <maxCoresPerSocket>128</maxCoresPerSocket>
   <supportedOperatingSystems>
      <OperatingSystemFamilyInfo>
         <Name>Microsoft Windows</Name>
         <OperatingSystemFamilyId>1</OperatingSystemFamilyId>
         <OperatingSystem>
            <DefaultHardDiskAdapterType ref="VirtualLsiLogicSASController">4
            </DefaultHardDiskAdapterType>
            <SupportedHardDiskAdapter ref="ParaVirtualSCSIController" />
            <SupportedHardDiskAdapter ref="VirtualLsiLogicController" />
            <SupportedHardDiskAdapter ref="VirtualLsiLogicSASController" />
            <SupportedHardDiskAdapter ref="VirtualIDEController" />
            <SupportedHardDiskAdapter ref="VirtualAHCIController" />
            <MinimumHardDiskSizeGigabytes>40
            </MinimumHardDiskSizeGigabytes>
            <MinimumMemoryMegabytes>512</MinimumMemoryMegabytes>
            <Name>Microsoft Windows Server 2016 (64-bit)</Name>
            <InternalName>windows9Server64Guest</InternalName>
            <Supported>true</Supported>
            <x64>true</x64>
            <MaximumCpuCount>128</MaximumCpuCount>
            <MaximumCoresPerSocket>128</MaximumCoresPerSocket>
            <MaximumSocketCount>128</MaximumSocketCount>
            <MinimumHardwareVersion>10</MinimumHardwareVersion>
            <PersonalizationEnabled>true</PersonalizationEnabled>
            <PersonalizationAuto>true</PersonalizationAuto>
            <SysprepPackagingSupported>true</SysprepPackagingSupported>
            <SupportsMemHotAdd>true</SupportsMemHotAdd>
            <cimOsId>102</cimOsId>
            <CimVersion>0</CimVersion>
            <SupportedForCreate>true</SupportedForCreate>
            <RecommendedNIC
               id="6"
               name="E1000E" />
            <SupportedNICType
               id="3"
               name="E1000" />
            <SupportedNICType
               id="6"
               name="E1000E" />
            <SupportedNICType
               id="3"
               name="E1000" />
            <SupportedNICType
               id="5"
               name="VMXNET3" />
         </OperatingSystem>
      </OperatingSystemFamilyInfo>
   </supportedOperatingSystems>
</VirtualHardwareVersion>