In this lab, I’ll show you how to request a deployment from a catalog item. This catalog item has a custom form with an Aria Orchestrator action to dynamically populate drop down menu values based on a value provided by another drop down value.
To do so, you make a POST request with a project ID that has a cloud template version released to the project. The request body includes the ID of the catalog item from which you are requesting the deployment, and the version of the released cloud template.
Our example catalog item form looks as follows:

Note: The values for OS Flavor are populated by Orchestrator actions, defined in the Custom Forms designer:

Before you begin, make sure to get your API authentication token as described here: https://techdocs.broadcom.com/us/en/vmware-cis/aria/aria-automation/8-18/aria-automation-api-programming-guide-on-prem-8-18/getting-your-authentication-token/get-your-access-token-for-vra-8-x.html
Also verify, that your cloud template has been release to the Service Broker catalog, that you have created an entitlement for your catalog item or create one using Create a Content Sharing Policy. Note the project ID that has the cloud template versioned and released to it. Also note the ID of the catalog item from which you plan to request a deployment.
The procedure is as follows:
1. Assign the Aria Automation URL, in our example vra1a.sddc.lab.
2. Assign the project ID variable, in our example 10efc899-8c8d-4ea0-a45b-955caf6f3763.
3. Assign the catalog element ID variable, here 4c79439e-36f8-390f-9330-72cca3dcd1b4.
4. Get the catalog element with the assigned ID:
GET https://vra1a.sddc.lab/catalog/api/items/4c79439e-36f8-390f-9330-72cca3dcd1b4
This produces a result such as:
{
"id": "4c79439e-36f8-390f-9330-72cca3dcd1b4",
"name": "MS SQL Server",
"description": "",
"type": {
"id": "com.vmw.blueprint",
"link": "/catalog/api/types/com.vmw.blueprint",
"name": "VMware Aria Automation Templates"
},
"projectIds": [
"10efc899-8c8d-4ea0-a45b-955caf6f3763",
"1d4a9ac9-3e6b-4fe5-ae11-8996f0790c6f",
"b83b5cb8-5128-44f2-99e7-597dd9d42e5e"
],
"createdAt": "2025-02-18T14:21:56.338875Z",
"createdBy": "configadmin",
"lastUpdatedAt": "2025-05-06T13:19:20.972249Z",
"lastUpdatedBy": "system-user",
"schema": {
"type": "object",
"encrypted": false,
"properties": {
"osFlavor": {
"type": "string",
"encrypted": false,
"title": "OS Flavor",
"description": "Choose OS version"
},
"sqlFlavor": {
"type": "string",
"encrypted": false,
"title": "SQL Version",
"description": "Choose SQL version",
"oneOf": [
{
"encrypted": false,
"title": "SQL Server 2019",
"const": "SQL_Server_2019"
},
{
"encrypted": false,
"title": "SQL Server 2022",
"const": "SQL_Server_2022"
}
],
"default": "SQL_Server_2019"
}
},
"required": [
"osFlavor"
]
},
"iconId": "1495b8d9-9428-30d6-9626-10ff9281645e",
"bulkRequestLimit": 1,
"formId": "6e7c5e0d-951b-44a3-89a2-57ffc158fee0",
"externalId": "/blueprint/api/blueprints/98489d8c-c8a3-4618-9364-556547a1e080"
}
5. Retrieve the corresponding custom form for the catalog item using the catalog item ID, the corresponding source type ID com.vmw.blueprint, and the form type (here requestForm).
GET https://vra1a.sddc.lab/form-service/api/forms/fetchBySourceAndType?sourceType=com.vmw.blueprint&sourceId=4c79439e-36f8-390f-9330-72cca3dcd1b4&formType=requestForm
Result of the query is:
{
"tenant": "611c50b1-92a1-4af2-87d4-a27cca2c1121",
"id": "6e7c5e0d-951b-44a3-89a2-57ffc158fee0",
"name": "MS SQL Server",
"form": "{\"layout\":{\"pages\":[{\"id\":\"page_general\",\"title\":\"General\",\"sections\":[{\"id\":\"section_project\",\"fields\":[{\"id\":\"project\",\"display\":\"dropDown\",\"signpostPosition\":\"right-middle\"}]},{\"id\":\"section_deploymentName\",\"fields\":[{\"id\":\"deploymentName\",\"display\":\"textField\",\"signpostPosition\":\"right-middle\"}]},{\"id\":\"section_6799ea95\",\"fields\":[{\"id\":\"sqlFlavor\",\"display\":\"dropDown\",\"state\":{\"visible\":true,\"read-only\":false},\"signpostPosition\":\"right-middle\"}]},{\"id\":\"section_osFlavor\",\"fields\":[{\"id\":\"osFlavor\",\"display\":\"dropDown\",\"state\":{\"visible\":true,\"read-only\":false},\"signpostPosition\":\"right-middle\"}]}]}]},\"schema\":{\"project\":{\"label\":\"Project\",\"type\":{\"dataType\":\"string\",\"isMultiple\":false},\"valueList\":{\"id\":\"projects\",\"type\":\"scriptAction\"},\"constraints\":{\"required\":true}},\"deploymentName\":{\"label\":\"Deployment Name\",\"type\":{\"dataType\":\"string\",\"isMultiple\":false},\"constraints\":{\"required\":true,\"max-value\":900}},\"sqlFlavor\":{\"label\":\"SQL Version\",\"description\":\"Choose SQL version\",\"signpost\":\"Choose SQL version\",\"type\":{\"dataType\":\"string\",\"isMultiple\":false},\"default\":\"SQL_Server_2019\",\"valueList\":[{\"value\":\"SQL_Server_2019\",\"label\":\"SQL Server 2019\"},{\"value\":\"SQL_Server_2022\",\"label\":\"SQL Server 2022\"}]},\"osFlavor\":{\"label\":\"OS Flavor\",\"description\":\"Choose OS version\",\"signpost\":\"Choose OS version\",\"type\":{\"dataType\":\"string\",\"isMultiple\":false},\"valueList\":{\"id\":\"lab.sddc.vra.ui/getSupportedWinServerVersionsBySqlServerId\",\"type\":\"scriptAction\",\"parameters\":[{\"$type\":{\"dataType\":\"string\",\"isMultiple\":false},\"sqlFlavor\":\"sqlFlavor\"}]},\"constraints\":{\"required\":true}}},\"options\":{\"externalValidations\":[]}}",
"sourceType": "com.vmw.blueprint",
"sourceId": "4c79439e-36f8-390f-9330-72cca3dcd1b4",
"type": "requestForm",
"status": "ON",
"formFormat": "JSON"
}
The interesting part is marked bold above. In this case, the osFlavor form field is populated via a script action.
In the code snippet below, we can see again, marked bold, that the script action is an Aria Orchestrator action with the ID lab.sddc.vra.ui/getSupportedWinServerVersionsBySqlServerId and that it expects a parameter from the sqlFlavor field.
"osFlavor": {
"label": "OS Flavor",
"description": "Choose OS version",
"signpost": "Choose OS version",
"type": {
"dataType": "string",
"isMultiple": false
},
"valueList": {
"id": "lab.sddc.vra.ui/getSupportedWinServerVersionsBySqlServerId",
"type": "scriptAction",
"parameters": [
{
"$type": {
"dataType": "string",
"isMultiple": false
},
"sqlFlavor": "sqlFlavor"
}
]
},
"constraints": {
"required": true
}
}
6. Next, we execute the script action for the form field osFlavor in the catalog element. In this example, we want to create an MS SQL Server 2022, so we set sqlFlavor = SQL_Server_2022:
POST https://vra1a.sddc.lab/form-service/api/forms/renderer/external-value
We specify the following request body:
{
"uri" : "lab.ssdc.vra.ui/getSupportedWinServerVersionsBySqlServerId",
"dataSource" : "scriptAction",
"projectId" : "10efc899-8c8d-4ea0-a45b-955caf6f3763",
"parameters" : [
{
"name" : "sqlFlavor",
"value" : "SQL_Server_2022"
}
],
"requestId": 0
}
This produces the following result:
{
"data": [
{
"label": "Windows Server 2022 Core",
"value": "WindowsServer2022-Core-Stable"
},
{
"label": "Windows Server 2022 GUI",
"value": "WindowsServer2022-GUI-Stable"
},
{
"label": "Windows Server 2025 Core",
"value": "WindowsServer2025-Core-Stable"
},
{
"label": "Windows Server 2025 GUI",
"value": "WindowsServer2025-GUI-Stable"
}
],
"requestId": 0
}
7. Finally, we create the deployment request for the catalog item with the corresponding catalog item ID. In this example, an MS SQL Server 2022 is created in a VM with the Windows Server 2022 OS (osFlavor = WindowsServer2022-GUI-Stable):
POST https://vra1a.sddc.lab/catalog/api/items/4c79439e-36f8-390f-9330-72cca3dcd1b4/request
The following request body must be specified:
{
"projectId" : "10efc899-8c8d-4ea0-a45b-955caf6f3763",
"deploymentName" : "My API test deployment",
"inputs" : {
"sqlFlavor" : "SQL_Server_2022",
"osFlavor" : "WindowsServer2022-GUI-Stable"
}
}
It produces the following deployment, which the can be investigated further.
[
{
"deploymentId": "98e019b8-5e78-4228-b990-e1933c77f74e",
"deploymentName": "My API test deployment"
}
]

Leave a Reply