Any request that creates a catalog can also specify a storage profile for the items in that catalog.

If you do not specify a CatalogStorageProfile when creating a catalog, the catalog is created on the default storage profile for the first VDC created in the organization. To create the catalog on a specific storage profile, retrieve the list of available storage profiles in your organization and specify one in the CatalogStorageProfiles element of the request.

Verify that you are logged in to the vCloud API endpoint as a Virtual Infrastructure Administrator.

Verify that at least one VDC exists in your organization. You cannot create a catalog in an organization that has no VDCs.

1

Find the list of storage profiles in your organization.

Use a query like this one.

https://vcloud.example.com/api/query?type=orgVdcStorageProfile&format=references

The response is a list of references to all the storage profiles used by VDCs in your organization.

<OrgVdcStorageProfileReferences ... >
   <OrgVdcStorageProfileReference
      type="application/vnd.vmware.vcloud.vdcStorageProfile+xml"
      name="*"
      id="urn:vcloud:vdcstorageProfile:59"
      href="https://vcloud.example.com/api/vdcStorageProfile/59" />
   <OrgVdcStorageProfileReference
      type="application/vnd.vmware.vcloud.vdcStorageProfile+xml"
      name="Silver"
      id="urn:vcloud:vdcstorageProfile:84"
      href="https://vcloud.example.com/api/vdcStorageProfile/84" />
</OrgVdcStorageProfileReferences>
2

Create an AdminCatalog element that includes a CatalogStorageProfiles element.

You can include a single CatalogStorageProfile in the request. Only the type and href attributes are required. See the request portion of Example: Specify a Storage Profile for a Catalog.

3

POST the AdminCatalog element to the organization's add URL for catalogs.

See the request portion of Example: Specify a Storage Profile for a Catalog.

The server creates an empty catalog on the specified storage profile and returns its representation in the response. See the response portion of Example: Create a Catalog.

This example modifies the request shown in Example: Create a Catalog to add a CatalogStorageProfiles element..

Request:

POST https://vcloud.example.com/api/admin/org/26/catalogs
Content-Type: application/vnd.vmware.admin.catalog+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<AdminCatalog
   xmlns="http://www.vmware.com/vcloud/v1.5"
   name="Example Catalog">
   <Description>New Catalog for Example Org</Description>
   <CatalogStorageProfiles>
      <VdcStorageProfile
         type="application/vnd.vmware.admin.vdcStorageProfile+xml"
         href="https://vcloud.example.com/api/vdcStorageProfile/59" />
   </CatalogStorageProfiles>
</AdminCatalog>

The response is similar to the one shown in Example: Create a Catalog, and includes a CatalogStorageProfiles element derived form the one that you specified in the request.

Response:

201 Created
Content-Type: application/vnd.vmware.admin.catalog+xml
...
<AdminCatalog
   xmlns:vcloud="http://www.vmware.com/vcloud/v1.5"
   name="Example Catalog"
   ...

   <Description>New Catalog for Example Org</Description>
   <CatalogItems/>
   ...
   <CatalogStorageProfiles>
      <VdcStorageProfile
         type="application/vnd.vmware.admin.vdcStorageProfile+xml"
         name="*"
         id="urn:vcloud:vdcstorageProfile:59"
         href="https://vcloud.example.com/api/vdcStorageProfile/59" />
   </CatalogStorageProfiles>
</AdminCatalog>