After the vApp template and corresponding catalog item have been created, you must retrieve the template to get the upload URL for the OVF descriptor.

1

Examine the CatalogItem returned by the upload request to find the reference to the new vApp template.

The reference is the value of the href attribute of the Entity element, as shown here.

<Entity
   href="https://vcloud.example.com/api/vAppTemplate/vappTemplate-111"
   type="application/vnd.vmware.vcloud.vAppTemplate+xml"
   name="Ubuntu vApp Template" />
2

Retrieve the VAppTemplate.

See the request portion of Example: OVF Descriptor Upload URL in a vAppTemplate.

3

Examine the template to find the upload URL for the OVF descriptor.

These URLs are contained in Link elements where rel="upload:default".

This request uses the vApp template URL referenced in the Entity element shown in the response portion of Example: Initiating the Upload.

Request:

GET https://vcloud.example.com/api/vAppTemplate/vappTemplate-111

Response:

200 OK
Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml
...
<VAppTemplate
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
   ovfDescriptorUploaded="true"
   goldMaster="false"
   status="0"
   name="Ubuntu Template"
   id="urn:vcloud:vapptemplate:111"
   href="https://vcloud.example.com/api/vAppTemplate/vappTemplate-111"
   type="application/vnd.vmware.vcloud.vAppTemplate+xml">
   <Link
      rel="up"
      type="application/vnd.vmware.vcloud.vdc+xml"
      href="https://vcloud.example.com/api/vdc/5"/>
   <Link
      rel="remove"
      href="https://vcloud.example.com/api/vAppTemplate/vappTemplate-111" />
   <Description>Ubuntu vApp Template</Description>
   <Files>
      <File
         name="descriptor.ovf"
         bytesTransferred="0">
         <Link
            rel="upload:default"
            href="https://vcloud.example.com/transfer/.../descriptor.ovf" />
      </File>
   </Files>
   <Owner>
      ...
   </Owner>
   <Children />
   <LeaseSettingsSection>
      ...
   </LeaseSettingsSection>
   <CustomizationSection>
      ...
   </CustomizationSection>
</VAppTemplate>

The response body includes the following attributes:

An ovfDescriptorUploaded attribute with a value of false, indicating that the OVF descriptor file is not uploaded.

A status attribute with a value of 0, indicating that the file references in the descriptor are not uploaded. (A VAppTemplate with a status of 0 is said to be unresolved.)

A goldMaster attribute, initially set to false.

An id attribute. See Objects, References, and Representations.

The response body also includes a File element with an upload URL (rel="upload:default") for the OVF descriptor. The server creates the name attribute of this File element, which specifies a container that the server creates to receive the contents of the descriptor. The name attribute has no relation to the file name of the descriptor in the client’s file system.

In addition to the File element, the response includes Owner, Children, LeaseSettingsSection, and CustomizationSection elements that the server creates and sets to their default contents. For more information about these elements, see the schema reference.