create_workflow
Create custom multi-step workflows by defining actions, skills, and tools. Supports approval gates and rollback for automation across VMware services.
Instructions
[WRITE] Create a custom workflow dynamically from a step list.
Use this when none of the built-in templates match. Describe what you need and the AI will design the steps using available skills.
Available skills and their key tools:
aiops: vm_power_on, vm_power_off, deploy_linked_clone, vm_create_plan, vm_apply_plan, vm_rollback_plan, vm_guest_exec, batch_clone_vms
monitor: get_alarms, get_events, list_virtual_machines, vm_info
nsx: create_segment, delete_segment, create_tier1_gateway, list_segments
nsx-security: create_dfw_rule, delete_dfw_rule, create_group
aria: get_capacity_overview, list_anomalies, list_alerts, get_remaining_capacity
vks: create_tkc_cluster, scale_tkc_cluster, delete_tkc_cluster
storage: storage_iscsi_enable, storage_iscsi_add_target, vsan_health
Special step actions:
require_approval: Pauses workflow for human confirmation
Each step dict must have: action, skill, tool, params. Optional: rollback_tool, rollback_params.
Args: name: Workflow name (used as workflow_type). description: Human-readable description. steps: List of step dicts, each with action/skill/tool/params. save_as_template: If True, save as YAML to ~/.vmware/workflows/ for reuse.
Returns: dict with workflow_id and plan summary. Call run_workflow to execute.
Example: create_workflow( name="network_segment_setup", description="Create segment with NAT and verify", steps=[ {"action": "create_segment", "skill": "nsx", "tool": "create_segment", "params": {"segment_id": "app-seg", "display_name": "App Segment", ...}}, {"action": "create_nat", "skill": "nsx", "tool": "create_nat_rule", "params": {"tier1_id": "app-t1", "rule_id": "snat-1", ...}}, {"action": "verify", "skill": "nsx", "tool": "list_segments", "params": {}}, ] )
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | Yes | ||
| steps | Yes | ||
| save_as_template | No |