Skip to content

Tool Reference ​

Tools are grouped by operating domain. Each tool carries an MCP annotation hint indicating its effect category:

  • Read-only discovery (readOnlyHint: true) — list, get, preflight, and diff tools. Safe for discovery; do not write local files or mutate live state. (get-workflow-execution-logs is read-only by default; it writes a local file only when the optional fileName is provided.)
  • Local artifact write (readOnlyHint: false, no confirm) — export, scaffold, and snapshot tools. Write files under configured artifact directories; overwrite defaults to false. Do not mutate live VCFA/vRO state.
  • Live mutation (readOnlyHint: false, confirm: true) — create, update, import, run, and delete tools. Mutate live VCFA/vRO state and require explicit confirmation. Tools that overwrite or delete live state — import, update, run, and delete tools, plus rebuild-project-package — additionally set destructiveHint: true so hosts can require heightened approval; additive creates and add-*-to-project-package tools do not.

Each tool lists its input schema in a collapsible parameters section. Required confirmation fields such as confirm must be set to true before the tool performs the write or destructive operation.

Discovery list tools automatically follow server-side pagination for both vRO /vco/api list responses and VCF Automation service pages. Callers do not need page cursors. A listing stopped by the pagination request cap carries truncated and a visible warning; context snapshots also record a per-domain warning.

Optional Inventory Limits ​

All 13 flat inventory tools accept an optional integer limit from 1 to 1000: list-workflows, list-actions, list-configurations, list-categories, list-resource-elements, list-packages, list-plugins, list-catalog-items, list-projects, list-deployments, list-templates, list-event-topics, and list-subscriptions. The limit applies after any supported filters/search, preserving the existing result order. Event topics have no filter/search parameter. Omit limit for the full inventory; snapshots, promotion and internal discovery continue using unlimited calls. list-deployment-requests takes the same limit with the same semantics but is not one of them: it is scoped to a single deployment rather than being a flat inventory. The separately scoped list-workflows-by-category, list-workflow-executions, and list-deployment-actions retain their existing controls.

Both pagers request a fixed page size of min(pageSize, limit) (pageSize defaults to 100), using vRO maxResult or Automation size, unless a client-side filter is active. Local filtering retains the configured page size independently of the result limit so sparse matches do not consume the request cap one raw row at a time. Once enough matches are collected, pagination stops if the matching total is known. An unknown total may require another page, or several pages with sparse local matches, to distinguish an exact boundary from additional matches. Automation page size stays fixed to avoid shifting page offsets; repeated-page detection and the request cap remain active.

Client results carry limited only when the caller's limit withholds proven additional matches. Tool output then says how many are shown, with the matching total only when known. An unknown total from an incomplete limited call is omitted, not estimated from prefetched rows. numberOfElements counts returned rows. truncated still means the page-request cap, not the item limit; both flags can occur when a truncated category traversal is subsequently sliced. Empty capped searches retain a warning rather than claiming the entire inventory has no matches.

Limits reduce requests where the API supports pagination, but cannot guarantee a bounded fetch cost for every path. Actions, flat plugin descriptors, packages, categories, flat configuration elements and resource elements filter locally; project search falls back to local matching when the service rejects its OData filter with HTTP 400. These paths count matches during pagination, not raw rows. Some action endpoints ignore maxResult and return the full list anyway. Configuration listing by category reads one category response and selects/filters its relations before slicing. A limited workflow listing also uses the category fallback if returned names do not match the requested filter, even when early stopping prevents repeated-page detection. The workflow category fallback still traverses fully, deduplicates and sorts before applying the limit, preserving its globally sorted results.

Name filters on list-packages, list-categories, list-configurations (without categoryId) and list-resource-elements are matched client-side as case-insensitive substrings, because the vRO embedded in vRA 8 ignores the conditions query these endpoints are sent and answers with the full inventory. The query is still sent, so a server that honors it returns the same rows over a smaller payload; only the requested page size differs, staying at the configured 100 rather than clamping to the limit. total then reports the number of matches, never the unfiltered inventory count, so a limit notice reads against matching rows; it is omitted only when a limit stopped the walk before the matching total was proven. list-configurations scoped with categoryId already matched locally and is unchanged: it reads one category response, so its matching total is always known. Listings called without a filter are unaffected.

search on list-templates, list-deployments and list-catalog-items is matched the same way, against name and description, because VCF Automation 9.1 accepts the $search these endpoints are sent with a 200 and ignores it, answering with the full inventory. A needle matching nothing therefore used to return everything, which reads as a match. The query is still sent, so a service that honors it returns the same rows over a smaller payload, and the same page-size and total rules above apply — under a limit these listings now request size=100 and walk until enough matches are collected, rather than requesting a single short page. list-projects is not in this group: its search becomes an OData $filter that the project service does apply, with a client-side fallback if the service rejects it. Because $search is opaque, a service that honored it over fields this match does not read would have those rows dropped; no platform is known to honor it on these three routes.

Omitted-limit output and defaults are unchanged except for the negative-total correctness fix: total: -1 / totalElements: -1 means unknown, so discovery now continues instead of incorrectly stopping after the first page. Complete traversal reports the collected count. This fix also applies to full-inventory consumers.

Two-Phase Confirmation Fields ​

High-risk live mutation tools support optional expected target fields. These fields are backward-compatible: omitted fields do not change existing confirm: true behavior. When supplied, the handler performs read-only discovery first and refuses before mutation if the live target does not match.

Common expected fields:

FieldUsed byPurpose
expectedNamedelete/update tools for workflows, actions, configurations, resources, packages, templates, deployments, and subscriptionsVerify the live display name or package name before mutation.
expectedWorkflowName, expectedInputNamesrun-workflow, run-workflow-and-waitBind execution to a discovered workflow name and input contract.
expectedCategoryId, expectedCategoryNamedirect workflow, action, configuration, and resource importsVerify the intended import category.
expectedPackageNameimport-package, import-project-packageVerify the package identity from package import details.
expectedDeploymentName, expectedActionNamerun-deployment-actionVerify the deployment and day-2 action discovered immediately before submission.
expectedProjectId, expectedProjectName, expectedStatusdeployment and template deletes, deployment actionsVerify project/status context before the live change.
expectedEventTopicId, expectedRunnableIdsubscription update/deleteVerify subscription wiring before the live change.

Direct imports still preserve their existing overwrite defaults for compatibility. When overwrite is omitted on workflow and package imports, it resolves to true; pass it explicitly and prefer prepare-artifact-promotion for reusable content.

Context Snapshots ​

collect-context-snapshot ​

Collect reusable VCF Automation/vRO environment context and persist deterministic Markdown and JSON snapshots for future agents. Secrets, scripts, template YAML, and binary content are omitted by default. When the MCP client exposes workspace roots and VCFA_CONTEXT_DIR is not set, snapshots are written under the current workspace's artifacts/context/ directory.

Parameters
ParameterTypeRequiredDefaultDescription
fileBaseNamestringNovcfa-contextBase file name for the generated .json and .md files under the configured context directory. Use a plain name only, without path separators or extensions.
overwritebooleanNofalseReplace existing snapshot files with the same generated names.
domainsstring[]Nocore domainsDomains to collect. Core domains are workflows, actions, configurations, resources, and categories; optional domains are templates, catalogItems, eventTopics, subscriptions, packages, and plugins.
includeOptionalDomainsbooleanNofalseAlso collect templates, catalog items, event topics, subscriptions, packages, and plugins.
maxItemsPerDomainintegerNo100Maximum items to collect per domain. Increase this when an environment has more than 100 items in a domain and full coverage is needed.
profileenumNodefaultSnapshot profile. Use vcfaBuiltIns to focus on workflows in subfolders below the Library workflow category, plus actions whose module is com.vmware or starts with com.vmware..

When profile is vcfaBuiltIns, omitted domains default to workflows and actions, omitted fileBaseName defaults to vcfa-builtins-context, and omitted maxItemsPerDomain defaults to 1000. Explicitly requested non-workflow/action domains are still collected normally.

After a successful collection, the tool response includes agent-facing resource URIs:

  • vcfa://context/latest for the newest snapshot manifest.
  • vcfa://context/snapshots/{fileName} for the generated JSON and Markdown snapshot files.

The server also emits a resource-list change notification so MCP clients can rediscover persisted context snapshots.

Artifact Promotion ​

prepare-artifact-promotion ​

Run preflight for a local workflow, action, configuration, or package artifact; optionally export a live backup; summarize risks and changes; and recommend the exact import tool call. This tool never imports.

A backup that cannot be taken is reported as a Backup skipped: line and the rest of the report is still returned. That covers a missing live target ID and, in vra8 mode, a configuration artifact: vRA 8 serves a configuration element as JSON only, so the note points at get-configuration and the project package instead.

Only the vra8 skip is pre-emptive. On any other platform a configuration backup attempts the export, and vRO 9.1 refuses it with the same 406 — so the backup fails rather than being skipped. The rest of the report is still returned. Use get-configuration or the project package to capture the element before a replacement there too; see export-configuration-file for the detail.

Parameters
ParameterTypeRequiredDefaultDescription
kindenumYes-Artifact kind to prepare: workflow, action, configuration, or package.
fileNamestringYes-Plain artifact file name under the configured artifact directory for the selected kind.
targetobjectNo-Optional live target and import category details used for diff, backup, and the recommended import call.
overwritebooleanNotrueOverwrite flag to include in the recommended import call where supported.
backupobjectNo-Optional live backup export settings. When backup is enabled, the matching live target ID or package name is required.

target object:

FieldTypeRequiredDescription
categoryIdstringNoTarget category ID for workflow or configuration import.
categoryNamestringNoTarget category name for action import.
workflowIdstringNoLive workflow ID to diff against or export as a backup.
actionIdstringNoLive action ID to diff against or export as a backup.
configurationIdstringNoLive configuration ID to export as a backup.
packageNamestringNoLive package name to export as a backup.

backup object:

FieldTypeRequiredDefaultDescription
enabledbooleanYes-Whether to export a live backup before promotion.
fileNamestringNogenerated by toolOptional backup artifact file name override.
overwritebooleanNofalseOverwrite the backup file if it already exists.

Workflows ​

list-workflows ​

List workflows from VCF Automation Orchestrator. Optionally filter by name substring.

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter workflows by name using a substring match.
limitintegerNo-Maximum matching workflows returned (1–1000), after filtering. Omit for the full inventory.

list-workflows-by-category ​

List workflows assigned to a workflow category/folder and all descendant subfolders. Recursively fetches each subcategory; may be slow for large trees. Paths are normalized (leading slash is optional). Use this when you need folder membership, for example workflows under test, test/minko, and test/minko/sql.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringNo-Exact WorkflowCategory ID to list recursively. Provide exactly one selector.
categoryNamestringNo-Exact WorkflowCategory name to list recursively. If multiple categories match, use categoryId or categoryPath.
categoryPathstringNo-Exact WorkflowCategory path to list recursively, for example /test/minko. Leading slash is optional.
includeEmptyCategoriesbooleanNofalseInclude descendant categories that contain no workflows.
maxCategoriesnumberNo50Maximum number of categories to traverse. Use a lower value to avoid slow traversals on large trees (1–500).

get-workflow ​

Get detailed information about a specific workflow including its input and output parameters.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Workflow ID to inspect.

create-workflow ​

Create a new empty workflow in VCF Automation Orchestrator. Use list-categories first to find a workflow category ID. For reusable workflow content, prefer publishing through the project package path after local authoring and validation.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringYes-Workflow category ID where the empty workflow is created.
namestringYes-Name for the new workflow.
descriptionstringNo-Optional workflow description.
confirmbooleanYes-Must be true to confirm creation. If false, the workflow is not created.

delete-workflow ​

Delete a workflow from VCF Automation Orchestrator. This action is irreversible. A 409 reporting the workflow as in use right after delete-package is usually transient — retry first, and set force to true only if it persists.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Workflow ID to delete.
expectedNamestringNo-Expected live workflow name to verify before deletion.
forcebooleanNofalseDelete even if vRO reports the element as in use, skipping vRO's reference check.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

run-workflow ​

Validate inputs against the workflow definition, then execute the workflow with optional input parameters. Returns the execution ID; use get-workflow-execution to poll status and retrieve outputs.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Workflow ID to execute.
inputsarrayNo[]Input parameters for the workflow execution. Inspect the workflow with get-workflow before running. Inputs are validated and type-normalized against the workflow definition before execution.
expectedWorkflowNamestringNo-Expected live workflow name to verify before execution.
expectedInputNamesstring[]No-Expected workflow input names, in discovered order, to verify before execution.
confirmbooleanYes-Must be true to confirm execution. If false, the workflow is not run.

inputs array item:

FieldTypeRequiredDescription
namestringYesParameter name matching a workflow input parameter.
typestringNoOptional vRO parameter type. When omitted, this tool uses the type from get-workflow.
valueanyYesParameter value compatible with the workflow input type.

run-workflow-and-wait ​

Validate inputs, execute a workflow, poll until completion, failure, or timeout, and return outputs or useful failure diagnostics.

Output parameters render as values rather than as vRO's value envelope — result (string): "ok" rather than result (string): {"string":{"value":"ok"}} — using the same unwrap as get-configuration. This replaced a narrower helper that leaked the raw envelope for array outputs.

An output parameter the server declares secure is withheld and shown as [redacted], the same marker and the same detection get-configuration uses for a secure-typed attribute: a declared type reading secure or encrypted, or a value that arrived wrapped in such an envelope whatever its declared type says. Both signals are read, because no lab has yet served such an output and the shape vRO sends is unobserved. The signal has to be a declared type or an envelope key. An Array/SecureString is caught by its type, but a secret sitting inside an untyped composite value — a Properties output, say — is announced by neither and is printed.

The failure and timeout results print log excerpts and the workflow's own exception text verbatim. Neither carries a declared type, so neither is withheld.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Workflow ID to execute.
inputsarrayNo[]Input parameters for the workflow execution. This tool can infer parameter types from the workflow definition when type is omitted.
timeoutSecondsintegerNo300Maximum time to wait for completion before returning a timeout result.
pollIntervalSecondsintegerNo2Seconds between execution status polls.
logLimitintegerNo20Maximum execution log entries to include on failure or timeout. Set to 0 to suppress log excerpts.
expectedWorkflowNamestringNo-Expected live workflow name to verify before execution.
expectedInputNamesstring[]No-Expected workflow input names, in discovered order, to verify before execution.
confirmbooleanYes-Must be true to confirm execution. If false, the workflow is not run.

inputs array item:

FieldTypeRequiredDescription
namestringYesParameter name matching a workflow input parameter.
typestringNoOptional vRO parameter type. When omitted, this tool uses the type from get-workflow.
valueanyYesParameter value compatible with the workflow input type.

list-workflow-executions ​

List past and current executions for a specific workflow. Use this to find an execution ID before calling get-workflow-execution.

Parameters
ParameterTypeRequiredDefaultDescription
workflowIdstringYes-Workflow ID whose executions should be listed.
maxResultsintegerNo20Maximum number of executions to return.
statusenumNo-Filter executions by status: running, completed, failed, canceled, or waiting-signal.

get-workflow-execution ​

Check the status and outputs of a workflow execution.

Output parameters render as values rather than as vRO's value envelope, using the same unwrap as run-workflow-and-wait and get-configuration. Array outputs previously leaked the raw envelope here.

An output parameter the server declares secure is withheld and shown as [redacted], the same marker and the same detection get-configuration uses for a secure-typed attribute: a declared type reading secure or encrypted, or a value that arrived wrapped in such an envelope whatever its declared type says. Both signals are read, because no lab has yet served such an output and the shape vRO sends is unobserved. The signal has to be a declared type or an envelope key. An Array/SecureString is caught by its type, but a secret sitting inside an untyped composite value — a Properties output, say — is announced by neither and is printed.

The content-exception text of a failed execution is printed verbatim and is not typed, so a secret a script threw is not withheld.

Parameters
ParameterTypeRequiredDefaultDescription
workflowIdstringYes-Workflow ID associated with the execution.
executionIdstringYes-Execution ID returned by run-workflow, run-workflow-and-wait, or list-workflow-executions.

get-workflow-execution-logs ​

Retrieve system/event log entries for a workflow execution, including workflow token messages such as System.log, System.debug, System.warn, and System.error. Use this after run-workflow, list-workflow-executions, or get-workflow-execution when detailed execution logs are needed. To save logs instead of returning them inline, provide fileName; exports are written under VCFA_EXECUTION_LOG_DIR or VCFA_ARTIFACT_DIR/execution-logs. The level parameter is a minimum severity filter for inline display and export: debug includes debug and all higher known severities plus unknown severities, info includes info, warning, and error logs, and error includes only error logs.

Log bodies are served verbatim. Unlike an output parameter, a log line carries no declared type, so there is no signal to withhold on: a workflow that writes a credential with System.log surfaces it here, and the same is true of the exception text a failed execution reports. Keep secrets out of what a workflow logs and throws rather than relying on this tool to filter them.

Parameters
ParameterTypeRequiredDefaultDescription
workflowIdstringYes-Workflow ID associated with the execution.
executionIdstringYes-Execution ID returned by run-workflow, run-workflow-and-wait, or list-workflow-executions.
maxResultintegerNo-Maximum number of execution log entries to fetch before filtering.
fileNamestringNo-Plain .json or .txt file name to export under the configured execution log artifact directory. Do not pass a path.
leveldebug | info | errorNoinline: none; export: infoMinimum log severity to display or export.
formatjson | textNoinferred from extensionExport format when fileName is provided. Must match the file extension when set.
overwritebooleanNofalseOverwrite the export file if it already exists.

export-workflow-file ​

Export a vRO workflow as a .workflow file under the configured workflow artifact directory.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Workflow ID to export.
fileNamestringYes-Plain .workflow file name to save under the configured workflow artifact directory. Do not pass a path.
overwritebooleanNofalseOverwrite the file if it already exists.

scaffold-workflow-file ​

Generate a local importable .workflow artifact under the configured workflow artifact directory from structured metadata, linear tasks, bindings, and a vRO-compatible input_form_ for declared inputs. Each task is either a native vRO action workflow item (kind: "action", for a step that only invokes one existing action) or a scriptable task (kind: "script", the default, for custom JavaScript logic, multiple action calls, or orchestration). For reusable project content, publish the resulting workflow through the project package flow after preflight; use import-workflow-file only for narrow validation or explicitly requested one-off tests.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .workflow file name to save under the configured workflow artifact directory.
overwritebooleanNofalseOverwrite the file if it already exists.
workflowobjectYes-Complete workflow structure to render into the artifact.

workflow object:

FieldTypeRequiredDefaultDescription
namestringYes-Workflow display name.
tasksarrayYes-Linear sequence of workflow items (native action items or scriptable tasks). At least one task is required.
idstringNogenerated UUIDWorkflow UUID.
descriptionstringNo-Workflow description.
versionstringNo1.0.0Workflow version metadata.
apiVersionstringNo6.0.0Workflow API version metadata.
inputsarrayNo[]Workflow input parameters.
outputsarrayNo[]Workflow output parameters.
attributesarrayNo[]Workflow-scoped attributes.

The generated input_form_ is UTF-16BE JSON with a BOM. It places workflow inputs on a page_general page, uses section objects with only id and fields, maps each input type to a verified control via the supported input-form type mapping, and includes options.externalValidations: [] for vRO UI compatibility. Inputs whose type is outside that table are rejected (scaffold fails) rather than silently becoming a string/textField field, which would mismatch workflow-content.

Workflow parameter object, used for inputs, outputs, and attributes:

FieldTypeRequiredDescription
namestringYesScript-safe parameter name.
typestringYesvRO parameter type, such as string, number, boolean, Array/string, or Properties. For inputs, the type must be in the supported input-form type mapping; unsupported input types are rejected.
descriptionstringNoOptional parameter description.

Task object:

FieldTypeRequiredDefaultDescription
kindstringNoscriptTask kind: script (scriptable task) or action (native vRO action workflow item).
displayNamestringNo-Task display name shown in the vRO UI.
namestringNoitemNInternal workflow item name.
descriptionstringNo-Task description.
scriptstringYes for kind: "script"-JavaScript body of the scriptable task. Ignored for kind: "action" (generated automatically).
inBindingsarrayNo[]Scriptable-task bindings: bind workflow inputs or attributes into script-local variables.
outBindingsarrayNo[]Scriptable-task bindings: bind script-local variables back to workflow outputs or attributes.
modulestringYes for kind: "action"-Native action module name, e.g. com.example.actions. Discover with get-action; do not invent.
actionNamestringYes for kind: "action"-Native action name. Discover with get-action; do not invent.
inputsarrayNo[]kind: "action" only. Ordered action inputs ({ name, type, source }) mapped from workflow inputs/attributes, in action signature order.
resultBindingobjectNo-kind: "action" only. { name, type } binding the action result (actionResult) to a workflow output/attribute. Omit for actions with no return value.

Binding object (for inBindings/outBindings and inputs):

FieldTypeRequiredApplies toDescription
namestringYesall bindingsScript-local variable name (action parameter name for inputs).
typestringYesall bindingsvRO parameter type. Must match the referenced workflow parameter or attribute type.
sourcestringYesinBindings, inputsWorkflow input or attribute name to read from.
targetstringYesoutBindingsWorkflow output or attribute name to write to.

preflight-workflow-file ​

Validate a local .workflow artifact under the configured workflow artifact directory before importing it.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .workflow file name under the configured workflow artifact directory to validate.

diff-workflow-file ​

Compare two local .workflow artifacts, or compare a live workflow export against a local .workflow artifact. The base source is current or old; compare is proposed or new.

Parameters
ParameterTypeRequiredDefaultDescription
baseunionYes-Current or old workflow source.
compareunionYes-Proposed or new workflow source.

Both base and compare are discriminated unions selected by source:

source valueAdditional fieldDescription
filefileName stringLocal .workflow file under the configured workflow artifact directory.
liveworkflowId stringLive workflow ID to export and use as the comparison side.

import-workflow-file ​

Import a .workflow file from the configured workflow artifact directory into a workflow category. Use this direct import path for narrow validation or explicitly requested one-off tests; publish reusable project content through ensure-project-package, add-workflow-to-project-package, rebuild-project-package, export-project-package, get-project-package-import-details, and import-project-package.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringYes-Workflow category ID to import into.
fileNamestringYes-Plain .workflow file name under the configured workflow artifact directory to import.
overwritebooleanNotrueOverwrite an existing workflow with the same identity.
expectedCategoryIdstringNo-Expected workflow category ID; must match categoryId before import.
expectedCategoryNamestringNo-Expected workflow category name to verify before import.
confirmbooleanYes-Must be true to confirm import. If false, import is not performed.

Actions ​

list-actions ​

List actions from VCF Automation Orchestrator. Optionally filter by name.

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter actions by name using a substring match.
limitintegerNo-Maximum matching actions returned (1–1000), after filtering. Omit for the full inventory.

get-action ​

Get detailed information about a specific action including its parameters. The script is summarized (sha256 + length) unless includeScript is set.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Action ID to inspect.
includeScriptbooleanNofalseIf true, include the full action script. By default only a sha256/length summary of the script is returned.

create-action ​

Create a new action in VCF Automation Orchestrator. If an action with the same moduleName/name already exists, the tool refuses and points to update-action rather than creating a duplicate.

Parameters
ParameterTypeRequiredDefaultDescription
moduleNamestringYes-Module or package name to create the action in, for example com.example.myactions.
namestringYes-Name for the new action.
scriptstringYes-JavaScript or TypeScript script content for the action.
inputParametersarrayNo[]Input parameter definitions for the action.
returnTypestringNo-Return type, for example string, void, or Array/string.
confirmbooleanYes-Must be true to confirm creation. If false, the action is not created.

inputParameters array item:

FieldTypeRequiredDescription
namestringYesAction input parameter name.
typestringYesvRO parameter type.
descriptionstringNoOptional parameter description.

update-action ​

Update an existing action in place via its ID (PUT /actions/{id}). Provide at least one of script, inputParameters, or returnType; unspecified fields are preserved from the live action. Inspect the action with get-action first, and pass expectedName/expectedModule to bind the update to the action you inspected.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Action ID to update.
scriptstringNo-New script content. Omit to keep the current script.
inputParametersarrayNo-Replacement input parameter definitions (replaces the existing set); pass an empty array to clear all parameters. Omit to keep the current parameters.
returnTypestringNo-New return type, for example string, void, or Array/string. Omit to keep the current return type.
expectedNamestringNo-Expected live action name to verify before updating.
expectedModulestringNo-Expected live action module to verify before updating.
confirmbooleanYes-Must be true to confirm the update. If false, the action is not modified.

inputParameters array item:

FieldTypeRequiredDescription
namestringYesAction input parameter name.
typestringYesvRO parameter type.
descriptionstringNoOptional parameter description.

export-action-file ​

Export a vRO action as a .action file under the configured action artifact directory.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Action ID to export.
fileNamestringYes-Plain .action file name to save under the configured action artifact directory. Do not pass a path.
overwritebooleanNofalseOverwrite the file if it already exists.

preflight-action-file ​

Validate a local .action artifact under the configured action artifact directory before importing it.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .action file name under the configured action artifact directory to validate.

diff-action-file ​

Compare two local .action artifacts, or compare a live action export against a local .action artifact. The base source is current or old; compare is proposed or new.

Parameters
ParameterTypeRequiredDefaultDescription
baseunionYes-Current or old action source.
compareunionYes-Proposed or new action source.

Both base and compare are discriminated unions selected by source:

source valueAdditional fieldDescription
filefileName stringLocal .action file under the configured action artifact directory.
liveactionId stringLive action ID to export and use as the comparison side.

import-action-file ​

Import a .action file from the configured action artifact directory into an action module. The categoryName is the target module (for example com.example.myactions); discover existing modules from the module column of list-actions — vRO does not expose action modules through list-categories (the ActionCategory type returns nothing). Use this direct import path for narrow validation or explicitly requested one-off tests; publish reusable project content through the project package tools.

Parameters
ParameterTypeRequiredDefaultDescription
categoryNamestringYes-Action module to import into, for example com.example.myactions. Whether a not-yet-existing module is created on import is platform-dependent: vRO 8.18.1 refuses it with 404 Action category name not found, so create the module there with create-action first.
fileNamestringYes-Plain .action file name under the configured action artifact directory to import.
expectedCategoryNamestringNo-Expected module name. Must match categoryName and is verified against the live module set from list-actions; a module that does not yet exist is not rejected by this guard, but the import itself may still refuse it (see categoryName). The new-module note is reported only when this argument is supplied, since the live check runs only then.
confirmbooleanYes-Must be true to confirm import. If false, import is not performed.

delete-action ​

Delete an action from VCF Automation Orchestrator. This action is irreversible. A 409 reporting the action as in use right after delete-package is usually transient — retry first, and set force to true only if it persists.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Action ID to delete.
expectedNamestringNo-Expected live action name to verify before deletion.
expectedModulestringNo-Expected live action module to verify before deletion.
forcebooleanNofalseDelete even if vRO reports the element as in use, skipping vRO's reference check.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

Configuration Elements ​

list-configurations ​

List configuration elements from VCF Automation Orchestrator. Optionally filter by name or scope to a specific category.

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter configuration elements by name using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching elements returned (1–1000), after category selection and filtering. Omit for the full inventory.
categoryIdstringNo-Filter configuration elements by ConfigurationElementCategory ID. Use list-categories with type ConfigurationElementCategory to find a category ID.

get-configuration ​

Get detailed information about a specific configuration element including its attributes.

Attribute values are printed as values, not as the vRO type envelope they arrive in: a string reads "probe-2", an Array/string reads ["one"], and an SDK-object attribute reads its {type, href, id} descriptor. An envelope shape the server has not seen before is printed raw rather than guessed at. An attribute vRO returned with no value at all — the built-in BatchAction element declares several — reads (no value); an attribute holding "", 0 or false prints that value.

Values are JSON-encoded so an empty string reads as "" rather than as blank space, which means a string's surrounding quotes belong to the rendering and not to the value. When re-sending one to update-configuration, whose value is a plain string, send probe-2, not "probe-2".

Secure-typed attribute values (e.g. SecureString) are redacted in the output and shown as [redacted], consistent with the context-snapshot redaction policy, as is any attribute whose value arrives in a secure or encrypted envelope regardless of its declared type.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Configuration element ID to inspect.

create-configuration ​

Create a new configuration element in VCF Automation Orchestrator. Use list-categories with type ConfigurationElementCategory to find a category ID first.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringYes-Configuration element category ID to create the element in.
namestringYes-Name for the new configuration element.
descriptionstringNo-Optional description.
attributesarrayNo[]Initial attributes for the configuration element.
confirmbooleanYes-Must be true to confirm creation. If false, the configuration element is not created.

attributes array item:

FieldTypeRequiredDescription
namestringYesAttribute name.
typestringYesvRO attribute type.
valuestringNoAttribute value as a string.

update-configuration ​

Update a configuration element name, description, or attributes. Supplied attributes replace the existing attribute set. At least one of name, description, or attributes must be provided; a request with none is rejected before any live update.

The underlying PUT replaces the element rather than patching it. The live element is read once, before the confirm gate, and an omitted name or description is carried forward from it, so only the fields you supply change. Attributes are the exception: an update that omits attributes on an element that has some is refused, naming the attributes (names and types only) that would have been deleted. Re-send the attributes to keep, or pass an empty array to clear them deliberately. They are not carried forward automatically because a SecureString attribute reads back as ciphertext, and replaying that value risks storing the ciphertext as the new secret. Plain values can be read with get-configuration; secure values are printed as [redacted] and must be supplied fresh, and a secure-typed attribute sent without a value is refused rather than stored as an empty secret.

Call the tool with confirm: false first: the refusal, if any, is reported in that discovery phase, and the response names the element and the fields that will change. The same read serves the expectedName guard, so a guarded update costs one GET and one PUT.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Configuration element ID to update.
expectedNamestringNo-Expected current configuration element name to verify before update.
namestringNocurrent nameNew name for the configuration element.
descriptionstringNocurrent descriptionNew description.
attributesarrayNo-Attributes to store, replacing the existing set. Required unless the element has no attributes; an empty array clears them. Secure-typed attributes must carry a value.
confirmbooleanYes-Must be true to confirm update. If false, the configuration element is not updated, and any refusal is reported.

attributes array item:

FieldTypeRequiredDescription
namestringYesAttribute name.
typestringYesvRO attribute type.
valuestringNoAttribute value as a string. get-configuration renders values as JSON, so send probe-2 rather than the rendered "probe-2". Required for secure types, whose current value cannot be read back.

delete-configuration ​

Delete a configuration element from VCF Automation Orchestrator. This action is irreversible. A 409 reporting the element as in use right after delete-package is usually transient — retry first, and set force to true only if it persists.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Configuration element ID to delete.
expectedNamestringNo-Expected live configuration element name to verify before deletion.
forcebooleanNofalseDelete even if vRO reports the element as in use, skipping vRO's reference check.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

export-configuration-file ​

Export a vRO configuration element as a .vsoconf file under the configured configuration artifact directory.

Not supported in vra8 mode: vRA 8 serves a configuration element as JSON only and answers the artifact request with 406, while the same request for a workflow or an action returns the artifact. Use get-configuration to read it, or add-configuration-to-project-package followed by export-project-package to get it into a file.

The same 406 has since been observed on vRO 9.1, both standalone and appliance-embedded: application/zip, application/vcoobject+zip and application/octet-stream are all refused, while */* returns the element as JSON. On those same hosts workflow, action and package exports answer 200 application/zip, so the refusal is specific to configuration elements rather than to the host or the identity, and is not specific to vRA 8. No vRO tested serves a .vsoconf for a single element. Only the vra8 refusal is pre-emptive; on any other platform the request is sent, and a 406 is reported with the same guidance rather than as the server's HTML error page.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Configuration element ID to export.
fileNamestringYes-Plain .vsoconf file name to save under the configured configuration artifact directory. Do not pass a path.
overwritebooleanNofalseOverwrite the file if it already exists.

preflight-configuration-file ​

Validate a local .vsoconf artifact under the configured configuration artifact directory before importing it.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .vsoconf file name under the configured configuration artifact directory to validate.

import-configuration-file ​

Import a .vsoconf file from the configured configuration artifact directory into a configuration element category. Use list-categories with type ConfigurationElementCategory to find a category ID first.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringYes-Configuration element category ID to import into.
fileNamestringYes-Plain .vsoconf file name under the configured configuration artifact directory to import.
expectedCategoryIdstringNo-Expected configuration category ID; must match categoryId before import.
expectedCategoryNamestringNo-Expected configuration category name to verify before import.
confirmbooleanYes-Must be true to confirm import. If false, import is not performed.

Resource Elements ​

list-resource-elements ​

List resource elements from VCF Automation Orchestrator. Optionally filter by name.

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter resource elements by name using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching resources returned (1–1000), after filtering. Omit for the full inventory.

export-resource-element ​

Export a vRO resource element by ID to a file under the configured resource artifact directory.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Resource element ID to export.
fileNamestringYes-Plain file name to save under the configured resource artifact directory. Do not pass a path.
overwritebooleanNofalseOverwrite the file if it already exists.

import-resource-element ​

Import a vRO resource element from the configured resource artifact directory into a ResourceElementCategory. Use list-categories with type ResourceElementCategory to find a category ID first.

Parameters
ParameterTypeRequiredDefaultDescription
categoryIdstringYes-Resource element category ID to import into.
fileNamestringYes-Plain file name under the configured resource artifact directory to import.
expectedCategoryIdstringNo-Expected resource category ID; must match categoryId before import.
expectedCategoryNamestringNo-Expected resource category name to verify before import.
confirmbooleanYes-Must be true to confirm import. If false, import is not performed.

update-resource-element ​

Update an existing resource element's binary content from a file under the configured resource artifact directory.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Resource element ID to update.
expectedNamestringNo-Expected live resource element name to verify before update.
expectedCategoryNamestringNo-Expected live resource category name. Verified only where the environment reports a category for its resource elements; where it does not (vRO 8.x serves no category in the resource listing) the call is refused with that explanation rather than a mismatch, so omit it there and confirm placement with list-resource-elements.
fileNamestringYes-Plain file name under the configured resource artifact directory containing the replacement content.
changesetShastringNo-Optional X-VRO-Changeset-Sha value for version-controlled content.
confirmbooleanYes-Must be true to confirm update. If false, update is not performed.

delete-resource-element ​

Delete a resource element from VCF Automation Orchestrator. This can optionally force deletion when the resource is referenced by workflows.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Resource element ID to delete.
expectedNamestringNo-Expected live resource element name to verify before deletion.
expectedCategoryNamestringNo-Expected live resource category name. Verified only where the environment reports a category for its resource elements; where it does not (vRO 8.x serves no category in the resource listing) the call is refused with that explanation rather than a mismatch, so omit it there and confirm placement with list-resource-elements.
forcebooleanNofalseDelete even if the resource is referenced by workflows.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

Categories ​

list-categories ​

List categories by type. Categories are needed to create or import workflows, actions, configuration elements, and resource elements.

Parameters
ParameterTypeRequiredDefaultDescription
typeenumYes-Category type: WorkflowCategory, ActionCategory, ConfigurationElementCategory, or ResourceElementCategory.
filterstringNo-Filter categories by name using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching categories returned (1–1000), after type selection and filtering. Omit for the full inventory.

Projects ​

list-projects ​

List VCF Automation projects so agents can resolve the projectId consumed by create-deployment, create-template, create-subscription, and the project-scoped list tools instead of guessing it. The optional search is a case-insensitive substring match on project name and description, sent to the project-service as an OData $filter (substringof('<search>', tolower(name)) or substringof('<search>', tolower(description)), with the search trimmed and lower-cased and single quotes escaped), so the reported total describes the matches and a narrower search reaches projects beyond the pagination cap. If pagination still stops at the request cap, the result (including an empty match list) carries the shared truncation warning. The server-side filter is lab-verified on both platforms under VCFO-065: vRA 8.18 in vra8 mode (VCFO-072) and VCF Automation 9.1 on a tenant session. Both accept it and apply it — a needle matching nothing returns an empty page rather than the full inventory — and substringof is case-sensitive on both, which is why the filter wraps each field in tolower(). A service that rejects the filter with 400 falls back to the previous client-side match on the full project list, noted on the server's stderr; neither lab does.

A project served without a name renders as (unnamed) rather than undefined. That fallback is shared by every Automation-service renderer — the catalog item, deployment, project, and subscription list and detail tools, and the role principals under get-project — and it describes an upstream shape, not a client defect: vRA 8 serves system subscriptions with no name at all, and VCFO-070 found 5 of 68 on a lab. Every one of these guards tests truthiness rather than nullishness, so an empty-string name renders the same way. No project on either lab has been seen without a name; for projects the fallback is the convention, not an observed gap.

Parameters
ParameterTypeRequiredDefaultDescription
searchstringNo-Case-insensitive substring matched against project name and description.
limitintegerNo-Maximum matching projects returned (1–1000), after search. Omit for the full inventory.

get-project ​

Get details for a specific project by its ID. Beyond the name, ID, and description the output renders the fields the project-service response carries: the owning organization ID, the shared-resources flag, the operation timeout, the machine naming template and placement policy, custom properties (a value is shown as [redacted] when its key suggests a password, token, secret, credential, or key), the role assignments, and a per-kind count of placement constraints. The two platforms serve different role arrays — administrators, members, viewers and supervisors on vRA 8, administrators, advanced users, users and auditors on VCF Automation 9.x — and only the arrays the response carries are printed. The one 9.1 project checked carried none of the shared-resources flag, operation timeout, properties or constraints, so it rendered as name, ID, description, organization ID and its four role arrays. Sections the response does not carry are omitted. Cloud zones are not part of the project-service view and are not shown. The endpoint, page envelope, page/size pagination and the 404 for an unknown ID are lab-verified on vRA 8.18 in vra8 mode and on VCF Automation 9.1 (VCFO-065). Use list-projects to discover project IDs. A project served without a name renders as (unnamed), the convention described under list-projects. Within each role array a principal is printed by email, with its type in parentheses when present; a principal served with no email, or an empty one, renders as (unnamed) too — the one fallback in the surface that stands in for something other than a name.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Project ID to inspect.

Catalog Items ​

list-catalog-items ​

List available Service Broker catalog items. Optionally narrow the inventory with a search. A catalog item served without a name renders as (unnamed), the convention described under list-projects.

Parameters
ParameterTypeRequiredDefaultDescription
searchstringNo-Search catalog items by name or description, using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching catalog items returned (1–1000), after search. Omit for the full inventory.

get-catalog-item ​

Get catalog item details including type, source, and project assignments. A catalog item served without a name renders as (unnamed), the convention described under list-projects.

When the item carries a request schema, its inputs are rendered as the input contract for create-deployment — each input's name, type, whether it is required, its title or description, and its pattern or allowed values where present. Read this before composing create-deployment's inputs rather than guessing the shape. A property the service marks encrypted is listed and flagged as such, but its stored default is never printed, because a default on an encrypted input is a credential. Requestable: false means the item cannot currently be requested at all.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Catalog item ID to inspect.

Deployments ​

list-deployments ​

List deployments, optionally filtered by search and project ID. Use list-projects to discover project IDs. A deployment served without a name renders as (unnamed), the convention described under list-projects. VCF Automation 9.1 does serve a name, verified live under VCFO-074, so the fallback is a guard for an unobserved shape rather than the expected rendering.

Parameters
ParameterTypeRequiredDefaultDescription
searchstringNo-Search deployments by name or description, using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching deployments returned (1–1000), after search and project selection. Omit for the full inventory.
projectIdstringNo-Filter deployments by project ID (discover with list-projects).

get-deployment ​

Get detailed information about a specific deployment by its ID. A deployment served without a name renders as (unnamed), the convention described under list-projects.

The result renders the inputs the deployment was requested with, keyed by input name. Where get-catalog-item answers what an item takes, this answers what a deployment was given — the only record that distinguishes two deployments of the same catalog item, which can carry different input sets when they were requested against different released blueprint versions. Blueprint ID and Blueprint Version name the blueprint behind the requested Catalog Item Version, which is what that drift looks like.

Values render as JSON, so they can be copied straight into create-deployment's inputs object. Note this is the opposite of the configuration-attribute rendering described under update-configuration, where the quotes are an artifact of the rendering and must not be copied.

An input whose name reads as credential material — password, passwd, secret, token, credential, private key, api key, in any case and at any depth inside an object or array value — renders as [redacted], and the header then says those values must be supplied fresh. This check is name-based and is not a guarantee. Unlike a configuration attribute, which carries a declared type, and unlike a catalog item schema property, which carries an encrypted flag, a deployment's inputs carries values with no marker saying which were encrypted; the catalog item's schema cannot supply one either, because it can only be read at its current version, which is not necessarily the catalogItemVersion the deployment was requested against. Treat a printed value as printed: if a deployment was given a secret under a name this pattern does not match, it is in the output.

The project name is resolved through the project service, since VCF Automation 9.1 serves a deployment's projectId but no projectName. This makes get-deployment a two-request tool; when the project read fails the result still describes the deployment and shows Project ID alone. list-deployments deliberately does not resolve names, since there it would cost one extra read per row.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Deployment ID to inspect.

get-deployment-request ​

Get the current state of an asynchronous deployment request by the request ID returned from run-deployment-action or delete-deployment. The result renders the request ID and name, action and deployment IDs, requester, status and details, task progress, cancelability, timestamps, and affected resource IDs when the service supplies them. Untyped inputs, outputs, and expanded resources are deliberately not rendered because they can carry sensitive values.

This is the authoritative progress read for a day-2 action: a deployment's own status may remain CREATE_SUCCESSFUL throughout an action, observed on both platforms. The route is GET /deployment/api/requests/{id}, verified live on vRA 8.18 and on VCF Automation 9.1 under VCFO-095, which drove this tool against five real requests on each platform; both serve the same response keys.

Observed status sequence: PENDING → INITIALIZATION → CHECKING_APPROVAL → INPROGRESS → SUCCESSFUL, with COMPLETION between the last two on 9.1. The complete service vocabulary is wider still — FAILED and an approval hold have never been produced — so an unfamiliar status is treated as potentially active rather than finished.

Task progress is not monotonic. The service reports a placeholder totalTasks at submission (1 for a power action, 2 for a delete) and replaces it once it enumerates the tasks, so a caller polling across that transition sees 0/1 become 1/5. The tool renders what the service served rather than smoothing it. completedAt has never been served by either platform, so the Completed At: line has never appeared in practice.

A create request reads back through this tool too, carrying no actionId and a name of Create. Its ID is returned nowhere at submission — POST /catalog/api/items/{id}/request answers {deploymentId, deploymentName} and no request ID — so discover it with list-deployment-requests. A request outlives its deployment: after a delete that listing answers 404 while each individual request still reads by ID here.

For deletion, a successful request is not by itself proof that every resource is gone. Also confirm that get-deployment answers 404 or that list-deployments no longer includes the deployment.

Parameters
ParameterTypeRequiredDefaultDescription
requestIdstringYes-Deployment request ID returned by run-deployment-action or delete-deployment.

list-deployment-requests ​

List the requests submitted against one deployment — its create request, every day-2 action, and a queued delete — whoever submitted them and through whatever interface, including the platform UI and earlier sessions. This is the discovery route for a request ID to hand to get-deployment-request, and the only way to reach a create request's ID, which is returned nowhere at submission.

Each row renders the request's name and ID, its status, either its actionId or a create marker, task progress, and the requester. Untyped inputs, outputs, and expanded resources are not rendered, the same omission get-deployment-request makes: a create request carries the inputs the deployment was requested with, and a listing is not the place to print them. A request served without a name renders as (unnamed), the convention described under list-projects. Rows are rendered in the order the service serves them; no ordering is claimed, because none has been measured.

The route is GET /deployment/api/deployments/{id}/requests, which answers a Spring page on vRA 8.18 and on VCF Automation 9.1 alike, observed under VCFO-095. The equivalent GET /deployment/api/requests?deploymentId=<id> exists on both and is not used: the deployment-scoped read is the plain answer to a deploymentId argument (VCFO-097).

The listing is scoped to a deployment that still exists. Once the deployment is gone the route answers 404. The tool reports that without claiming which cause it was — an unknown deployment and a platform not serving the route answer the same status — and names what still works either way: every request it would have listed keeps reading by ID through get-deployment-request, so an ID captured earlier stays usable. Confirm the ID itself with list-deployments.

Parameters
ParameterTypeRequiredDefaultDescription
deploymentIdstringYes-Deployment whose requests to list (discover with list-deployments).
limitintegerNo-Maximum requests returned (1–1000). Omit for the deployment's full request history.

create-deployment ​

Create a new deployment from a catalog item. This provisions real infrastructure, with the cost and capacity that follow from it, and the only way to remove it afterwards is delete-deployment, which is itself a destructive day-2 operation rather than an undo. It is annotated destructive for that reason, the one additive create- tool that is (VCFO-084).

Use list-catalog-items to find the catalog item ID, list-projects to find the project ID, and list-deployments to verify afterwards. Both IDs are opaque UUIDs that nothing else in the call identifies, so a transposed one requests a different blueprint into a different project and the request still reports success. Pass expectedCatalogItemName and expectedProjectName from that discovery to bind the request to the target you inspected: each is read back from live metadata before anything is submitted, and a mismatch refuses without provisioning. Only the names are offered — an expected ID would compare an argument of this call against itself and could never fail.

When an expected name is supplied but the live record carries none, the call refuses with a "cannot verify" message rather than reporting a mismatch against a missing value: a caller who asked for two-phase verification is never told the target was confirmed when it was not. A verification read that fails outright is reported as such, so it is never mistaken for a failed provision.

On success the tool reports the deployment ID and name the service assigned. Provisioning is asynchronous, so poll get-deployment until the status is terminal — VCF Automation 9.1 and vRA 8.18 both move CREATE_INPROGRESS → CREATE_SUCCESSFUL (note there is no underscore in INPROGRESS). If the service returns no identifier at all, the tool says so explicitly and names list-deployments with the project ID, rather than leaving the caller unsure whether anything was requested.

Use get-catalog-item to read the item's request schema before composing inputs; a required input the blueprint declares is rejected by the catalog service if it is missing or fails the schema's pattern.

Verified live on both platforms: VCF Automation 9.1 (VCFO-074) and, in VCFA_TARGET_PLATFORM=vra8 mode, vRA 8.18 (VCFO-088). Both answer the request with the same bare array of {deploymentId, deploymentName}; the vRA 8 lab's single-VM blueprint took about four minutes to reach CREATE_SUCCESSFUL.

Parameters
ParameterTypeRequiredDefaultDescription
catalogItemIdstringYes-Catalog item ID to deploy.
deploymentNamestringYes-Name for the new deployment.
projectIdstringYes-Project ID in which to create the deployment (discover with list-projects).
versionstringNolatestCatalog item version to deploy.
reasonstringNo-Reason or comment for the deployment request.
inputsobjectNo{}Catalog item input parameters as a key/value object. Use get-catalog-item or catalog documentation to verify the expected shape before deploying.
expectedCatalogItemNamestringNo-Expected catalog item name, verified against get-catalog-item before the request is submitted.
expectedProjectNamestringNo-Expected project name, verified against get-project before the request is submitted.
confirmbooleanYes-Must be true to confirm deployment creation. If false, the deployment request is not submitted.

delete-deployment ​

Delete a deployment by its ID. This is a destructive live operation, and an asynchronous one: the service answers with the Deployment.Delete request it queued, the deployment reads DELETE_INPROGRESS for a while (about 45 s on the vRA 8.18 lab) and then answers 404. The tool therefore reports the deletion as requested — with the request ID and status when the service returns them — and names get-deployment (poll to 404) and list-deployments (poll to absence) as the way to confirm it; a success line here is not evidence that the resources are gone. When the request's status is not a running one (PENDING, INITIALIZATION, CHECKING_APPROVAL, INPROGRESS, COMPLETION), the tool says so instead of promising a 404 — a request held by an approval policy never reaches DELETE_INPROGRESS. The delete itself is verified live on VCF Automation 9.1 (VCFO-074) and on vRA 8.18 in vra8 mode (VCFO-088), and its request body and status vocabulary are now observed on both platforms (VCFO-095), where the request reached SUCCESSFUL on the same poll the deployment answered 404.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Deployment ID to delete.
expectedNamestringNo-Expected deployment name to verify before deletion.
expectedProjectIdstringNo-Expected deployment project ID to verify before deletion.
expectedProjectNamestringNo-Expected deployment project name to verify before deletion. A VCF Automation 9.1 deployment carries no project name of its own, so the name is resolved through the project service from the deployment's projectId; a project that reports no name is refused as unverifiable rather than as a mismatch.
expectedStatusstringNo-Expected deployment status to verify before deletion.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

list-deployment-actions ​

List deployment-level day-2 actions available for a VCF Automation deployment. Both platforms tested serve a bare array of action objects carrying id, name, displayName, description, valid and actionType — five actions on VCF Automation 9.1 (VCFO-074), ten on vRA 8.18 (VCFO-088) — and neither serves inputParameters or inputs, so the input hints below remain unobserved.

Parameters
ParameterTypeRequiredDefaultDescription
deploymentIdstringYes-Deployment ID whose available actions should be listed.

run-deployment-action ​

Run a deployment-level day-2 action. Use list-deployment-actions first to find the action ID and any required inputs.

On success the tool renders the DeploymentRequest the service queued and, when it includes an ID, directs the caller to poll get-deployment-request until it reports a confirmed terminal or held status. Observed active statuses are PENDING, INITIALIZATION, CHECKING_APPROVAL, INPROGRESS, and COMPLETION; because the complete service vocabulary is wider still, an unfamiliar status is treated as potentially active rather than finished by default. For Deployment.Delete, the tool additionally says to verify that get-deployment answers 404 or list-deployments no longer includes the deployment. For any other action, confirm the outcome on the deployment's resources after the request succeeds. A request whose status is known to be non-running is reported as held or finished rather than as something to wait for. Verified live on vRA 8.18 in vra8 mode under VCFO-088 — the first day-2 submission on any platform — and on VCF Automation 9.1 under VCFO-095, which submitted the first day-2 action on 9.x and found the same request body and vocabulary, plus a COMPLETION status vRA 8.18 does not show.

Parameters
ParameterTypeRequiredDefaultDescription
deploymentIdstringYes-Deployment ID to act on.
actionIdstringYes-Deployment action ID to run.
reasonstringNo-Reason for requesting the day-2 action.
inputsobjectNo{}Day-2 action inputs as a key/value object. Use list-deployment-actions to discover required inputs before running.
expectedDeploymentNamestringNo-Expected deployment name to verify before submitting the day-2 action.
expectedProjectIdstringNo-Expected deployment project ID to verify before submitting the day-2 action.
expectedProjectNamestringNo-Expected deployment project name to verify before submitting the day-2 action. Resolved through the project service, as described under delete-deployment.
expectedStatusstringNo-Expected deployment status to verify before submitting the day-2 action.
expectedActionNamestringNo-Expected deployment action name to verify against the current action list before submitting.
confirmbooleanYes-Must be true to confirm the day-2 action request. If false, the request is not submitted.

Blueprint Templates ​

list-templates ​

List blueprint templates in VCF Automation Cloud Assembly. Optionally filter by search and project ID.

Parameters
ParameterTypeRequiredDefaultDescription
searchstringNo-Search templates by name or description, using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching templates returned (1–1000), after search and project selection. Omit for the full inventory.
projectIdstringNo-Filter templates by project ID (discover with list-projects).

get-template ​

Get detailed information about a specific blueprint template by its ID. The YAML content is summarized (sha256 + length) unless includeContent is set.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Template or blueprint ID to inspect.
includeContentbooleanNofalseIf true, include the full blueprint YAML content. By default only a sha256/length summary of the content is returned.

create-template ​

Create a new blueprint template in VCF Automation Cloud Assembly. Use list-templates to verify afterwards.

content is schema-optional but should always be supplied. VCF Automation 9.1 refuses a create that omits it with 400 {"message":"Unknown Server Validation Error","statusCode":400} — a body naming neither the field nor the rule — while a minimal content: "formatVersion: 1" document is accepted and creates the blueprint in DRAFT (verified live under VCFO-099).

It stays optional in the schema because vRA 8 does create an empty template from exactly that request (verified under VCFO-070), and no 9.0 environment exists to establish that the whole 9.x family behaves like 9.1. So nothing is refused pre-emptively: the request is sent, and a 400 on a create that omitted content is reported with that guidance appended to the server's own message rather than as an opaque validation error. A 400 raised for any other reason — malformed YAML, an unknown project — keeps its own message unchanged.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Name for the new template.
projectIdstringYes-Project ID in which to create the template (discover with list-projects).
descriptionstringNo-Optional template description.
contentstringNo-YAML blueprint content for the template. Effectively required on VCF Automation 9.1, which refuses a create without it; omitting it creates an empty template on vRA 8 only. Treat this as Cloud Assembly blueprint content and verify conventions from existing templates or docs before authoring.
requestScopeOrgbooleanNofalseIf true, the template is available org-wide rather than project-scoped.
confirmbooleanYes-Must be true to confirm creation. If false, the template is not created.

delete-template ​

Delete a blueprint template by its ID. This action is irreversible.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Template or blueprint ID to delete.
expectedNamestringNo-Expected template name to verify before deletion.
expectedProjectIdstringNo-Expected template project ID to verify before deletion.
expectedProjectNamestringNo-Expected template project name to verify before deletion.
expectedStatusstringNo-Expected template status to verify before deletion.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

Packages ​

list-packages ​

List vRO packages available on the Orchestrator instance. Optionally filter by name substring.

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter packages by name using a case-insensitive substring match, applied client-side.
limitintegerNo-Maximum matching packages returned (1–1000), after filtering. Omit for the full inventory.

get-package ​

Get details of a specific vRO package by its fully qualified package name.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Fully qualified package name, for example com.example.mypackage.

export-package ​

Export a vRO package as a ZIP file under the configured package artifact directory on the server.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Fully qualified package name to export, for example com.example.mypackage.
fileNamestringYes-Plain .package or .zip file name to save under the configured package artifact directory. Do not pass a path.
overwritebooleanNofalseOverwrite the file if it already exists.
exportConfigurationAttributeValuesbooleanNo-Include configuration attribute values when supported by vRO.
exportGlobalTagsbooleanNo-Include global tags when supported by vRO.
exportVersionHistorybooleanNo-Include version history when supported by vRO.
exportConfigSecureStringAttributeValuesbooleanNo-Include secure string configuration values when supported by vRO.

get-package-import-details ​

Analyze a local package file before import and return package elements and certificate details.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .package or .zip file name under the configured package artifact directory.

create-package ​

Create a vRO package by exact fully qualified name. Refuses to create if the package already exists.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Exact fully qualified package name.
descriptionstringNo-Package description.
confirmbooleanYes-Must be true to create the package.

ensure-project-package ​

Resolve and reuse the exact configured project package. Creates it only when createIfMissing and confirm are both true.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact project package name.
descriptionstringNoVCFA_PROJECT_PACKAGE_DESCRIPTIONDescription used only when the package is created.
createIfMissingbooleanNofalseCreate the exact package if it is missing.
confirmbooleanNofalseMust be true with createIfMissing to create.

add-workflow-to-project-package ​

Add a workflow and dependencies to the exact project package.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
workflowIdstringYes-Workflow ID to add.
confirmbooleanYes-Must be true to add content.

add-action-to-project-package ​

Add an action and dependencies to the exact project package.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
categoryNamestringYes-Action category/module name.
actionNamestringYes-Action name.
confirmbooleanYes-Must be true to add content.

add-configuration-to-project-package ​

Add a configuration element and dependencies to the exact project package.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
configurationIdstringYes-Configuration element ID.
confirmbooleanYes-Must be true to add content.

add-resource-to-project-package ​

Add a resource element and dependencies to the exact project package.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
resourceIdstringYes-Resource element ID.
confirmbooleanYes-Must be true to add content.

rebuild-project-package ​

Rebuild the exact project package after adding content.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
confirmbooleanYes-Must be true to rebuild.

export-project-package ​

Export the exact project package to the configured package artifact directory.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name.
fileNamestringNo{packageName}.packageOutput package file name.
overwritebooleanNofalseOverwrite the local package file if it exists.
exportConfigurationAttributeValuesbooleanNo-Include configuration attribute values when supported by vRO.
exportGlobalTagsbooleanNo-Include global tags when supported by vRO.
exportVersionHistorybooleanNo-Include version history when supported by vRO.
exportConfigSecureStringAttributeValuesbooleanNo-Include secure string configuration values when supported by vRO.

get-project-package-import-details ​

Analyze an exported project package file before import.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name used for default file naming.
fileNamestringNo{packageName}.packagePackage file name to analyze.

import-project-package ​

Import an exported project package file.

Parameters
ParameterTypeRequiredDefaultDescription
packageNamestringNoVCFA_PROJECT_PACKAGE_NAMEExact package name used for default file naming.
fileNamestringNo{packageName}.packagePackage file name to import.
overwritebooleanNotrueWhether to overwrite existing package contents.
expectedPackageNamestringNo-Expected package name from package import details to verify before import.
confirmbooleanYes-Must be true to import.
importConfigurationAttributeValuesbooleanNo-Import configuration attribute values when supported by vRO.
tagImportModeenumNo-Tag import mode: DoNotImport, ImportAndOverwriteExistingValue, or ImportButPreserveExistingValue.
importConfigSecureStringAttributeValuesbooleanNo-Import secure string configuration values when supported by vRO.

preflight-package ​

Validate a local .package or .zip artifact under the configured package artifact directory before importing it.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .package or .zip file name under the configured package artifact directory to validate.

import-package ​

Import a vRO package from the configured package artifact directory into the Orchestrator instance.

Parameters
ParameterTypeRequiredDefaultDescription
fileNamestringYes-Plain .package or .zip file name under the configured package artifact directory to import.
overwritebooleanNotrueWhether to overwrite existing package contents.
expectedPackageNamestringNo-Expected package name from package import details to verify before import.
confirmbooleanYes-Must be true to confirm import. If false, import is not performed.
importConfigurationAttributeValuesbooleanNo-Import configuration attribute values when supported by vRO.
tagImportModeenumNo-Tag import mode: DoNotImport, ImportAndOverwriteExistingValue, or ImportButPreserveExistingValue.
importConfigSecureStringAttributeValuesbooleanNo-Import secure string configuration values when supported by vRO.

delete-package ​

Delete a vRO package by its fully qualified name. Optionally delete all workflows, actions, and configurations inside the package.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Fully qualified package name to delete, for example com.example.mypackage.
expectedNamestringNo-Expected live package name to verify before deletion.
deleteContentsbooleanNofalseAlso delete all elements inside the package. On 9.x the members are released asynchronously, so deleting one immediately afterwards can be refused with a transient 409; retrying clears it.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.

Plugins ​

list-plugins ​

List installed plugins in VCF Automation Orchestrator. Optionally filter by name substring.

Reads both the VCF Automation 9.x link/attributes listing and the flat { plugins: [...], total } envelope served by the vRO embedded in vRA 8 (vra8 mode). That endpoint ignores the conditions query, so in vra8 mode the filter is applied client-side as a case-insensitive substring match on the plugin module name, with surrounding whitespace ignored like every other client-side list filter. A plugin the server reports as disabled is marked [disabled].

Parameters
ParameterTypeRequiredDefaultDescription
filterstringNo-Filter plugins by name using a substring match.
limitintegerNo-Maximum matching plugins returned (1–1000), after filtering. Omit for the full inventory.

Extensibility Subscriptions ​

list-event-topics ​

List available Event Broker topics.

Parameters
ParameterTypeRequiredDefaultDescription
limitintegerNo-Maximum event topics returned (1–1000). Omit for the full inventory.

list-subscriptions ​

List extensibility subscriptions, optionally filtered by project ID. A subscription served without a name renders as (unnamed), the convention described under list-projects; this is the tool where that shape was first seen live, since vRA 8 serves its system subscriptions with no name at all.

Parameters
ParameterTypeRequiredDefaultDescription
projectIdstringNo-Filter subscriptions by project ID (discover with list-projects).
limitintegerNo-Maximum matching subscriptions returned (1–1000), after project selection. Omit for the full inventory.

get-subscription ​

Get subscription details including blocking setting and priority. Constraints are summarized (sha256 + length) unless includeConstraints is set. A subscription served without a name renders as (unnamed), the convention described under list-projects.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Subscription ID to inspect.
includeConstraintsbooleanNofalseIf true, include the full constraints JSON. By default only a sha256/length summary of the constraints is returned.

create-subscription ​

Create a subscription linking an Event Broker topic to a vRO workflow or ABX action. The success line renders the element the service returned, so on a platform that serves it without a name it reads (unnamed), the convention described under list-projects.

Parameters
ParameterTypeRequiredDefaultDescription
namestringYes-Name for the subscription.
eventTopicIdstringYes-Event topic ID to subscribe to. Use list-event-topics to discover available topics.
runnableTypeenumYes-Runnable type to trigger: extensibility.vro for a vRO workflow or extensibility.abx for an ABX action.
runnableIdstringYes-ID of the workflow or ABX action to trigger.
projectIdstringNo-Project ID to scope the subscription to (discover with list-projects).
descriptionstringNo-Optional subscription description.
blockingbooleanNo-Whether the subscription blocks the event pipeline until the runnable completes.
prioritynumberNo-Subscription priority. Lower number means higher priority.
timeoutnumberNo-Timeout in minutes for runnable execution.
disabledbooleanNofalseCreate the subscription in a disabled state.
confirmbooleanYes-Must be true to confirm creation. If false, the subscription is not created.

update-subscription ​

Update a subscription. All fields except id are optional; only supplied fields are updated. The success line renders the element the service returned, so on a platform that serves it without a name it reads (unnamed), the convention described under list-projects.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Subscription ID to update.
expectedNamestringNo-Expected subscription name to verify before update.
expectedEventTopicIdstringNo-Expected event topic ID to verify before update.
expectedRunnableIdstringNo-Expected runnable ID to verify before update.
namestringNocurrent nameNew subscription name.
descriptionstringNocurrent descriptionNew description.
disabledbooleanNocurrent stateSet to true to disable or false to enable.
runnableIdstringNocurrent runnableNew workflow or ABX action ID.
runnableTypeenumNocurrent typeNew runnable type: extensibility.vro or extensibility.abx.
blockingbooleanNocurrent settingNew blocking setting.
prioritynumberNocurrent priorityNew subscription priority. Lower number means higher priority.
timeoutnumberNocurrent timeoutNew timeout in minutes.
confirmbooleanYes-Must be true to confirm update. If false, the subscription is not updated.

delete-subscription ​

Delete an extensibility subscription.

Parameters
ParameterTypeRequiredDefaultDescription
idstringYes-Subscription ID to delete.
expectedNamestringNo-Expected subscription name to verify before deletion.
expectedEventTopicIdstringNo-Expected event topic ID to verify before deletion.
expectedRunnableIdstringNo-Expected runnable ID to verify before deletion.
confirmbooleanYes-Must be true to confirm deletion. If false, deletion is not performed.