In the default configuration, an organization VDC automatically discovers vCenter VMs that were created in any resource pool that backs the VDC. The system constructs a simplified vApp, owned by the system administrator, to contain each discovered VM. After the system administrator grants you access to a discovered vApp, you can reference the VM in it when you compose or recompose a vApp, or modify the vApp to adopt it and import it.

Discovered vApps contain exactly one VM, and are subject to several constraints that do not apply to vApps created in vCloud Director. Whether or not you adopt them, they can be useful as a source of VMs to use when composing or recomposing a vApp.

Each discovered vApp is given a name that is derived from the name of the vCenter VM that it contains and a prefix specified by your organization administrator. When retrieved with a vCloud API request, the autoNature element in a discovered vApp has a value of true. This value changes to false when the vApp is adopted.

If you want to discover additional vApps, a system administrator can use the vCloud API to create new organization VDCs that adopt specified resource pools available from a Provider VDC. vCenter VMs in these adopted resource pools appear in the new VDC as discovered vApps, and are candidates for adoption.

VM discovery is enabled by default. To disable VM discovery for all organizations, a system administrator must update the value of the VmDiscoveryEnabled setting in the system's GeneralSettings. To disable VM discovery for all VDCs in an organization, an organization administrator must update the value of the VmDiscoveryEnabled setting in the GeneralOrgSettings for that organization. To disable VM discovery for an individual organization VDC, an organization administrator must update the value of the VmDiscoveryEnabled setting in the AdminVdc that represents the organization VDC.

After the system administrator grants you access to a discovered vApp, you can use its VM in the same way that you would use a VM that any other vApp or vApp template contains. For example, you can specify it when you compose or recompose a vApp. You can also clone a discovered vApp. None of these uses adopts the discovered vApp.

You can adopt a discovered vApp by invoking an operation that modifies it in any way other than a change to its name or description. After you have adopted a discovered vApp, the system imports it and treats it as though it was created in vCloud Director. When an adopted vApp is retrieved with a vCloud API request, it includes an element named autoNature. This element has a value of false if the discovered vApp was adopted or was created in vCloud Director. You cannot revert an adopted vApp to a discovered vApp.

If you delete or move the VM that a discovered vApp contains, the system also removes the containing vApp. This behavior does not apply to adopted vApps.

The vApp created to contain a discovered vCenter VM is similar to the one created when you manually import a VM as a vApp, but it is simplified in ways that might require you to modify it before you can deploy it in your VDC. For example, you might have to edit its networking and storage properties, and make other adjustments specific to the needs of your organization.