naftiko: 1.0.0-alpha2 info: label: VMware vSphere Automation REST API — VMs description: 'VMware vSphere Automation REST API — VMs. 4 operations. Lead operation: Vmware List Virtual Machines. Self-contained Naftiko capability covering one Vmware business surface.' tags: - Vmware - VMs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: VMWARE_API_KEY: VMWARE_API_KEY capability: consumes: - type: http namespace: vsphere-vms baseUri: https://{vcenter}/api description: VMware vSphere Automation REST API — VMs business capability. Self-contained, no shared references. resources: - name: vcenter-vm path: /vcenter/vm operations: - name: listvms method: GET description: Vmware List Virtual Machines outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter.vms in: query type: array description: Identifiers of VMs to filter by - name: filter.names in: query type: array description: Names of VMs to filter by (exact match) - name: filter.folders in: query type: array description: Folders that must contain the VMs - name: filter.datacenters in: query type: array description: Datacenters that must contain the VMs - name: filter.hosts in: query type: array description: Hosts that must contain the VMs - name: filter.clusters in: query type: array description: Clusters that must contain the VMs - name: filter.resource_pools in: query type: array description: Resource pools that must contain the VMs - name: filter.power_states in: query type: array description: Power states to filter by - name: createvm method: POST description: Vmware Create a New Virtual Machine outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: vcenter-vm-vm path: /vcenter/vm/{vm} operations: - name: getvm method: GET description: Vmware Get Virtual Machine Details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletevm method: DELETE description: Vmware Delete a Virtual Machine outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: vmware-api-session-id value: '{{env.VMWARE_API_KEY}}' placement: header exposes: - type: rest namespace: vsphere-vms-rest port: 8080 description: REST adapter for VMware vSphere Automation REST API — VMs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/vcenter/vm name: vcenter-vm description: REST surface for vcenter-vm. operations: - method: GET name: listvms description: Vmware List Virtual Machines call: vsphere-vms.listvms with: filter.vms: rest.filter.vms filter.names: rest.filter.names filter.folders: rest.filter.folders filter.datacenters: rest.filter.datacenters filter.hosts: rest.filter.hosts filter.clusters: rest.filter.clusters filter.resource_pools: rest.filter.resource_pools filter.power_states: rest.filter.power_states outputParameters: - type: object mapping: $. - method: POST name: createvm description: Vmware Create a New Virtual Machine call: vsphere-vms.createvm with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/vcenter/vm/{vm} name: vcenter-vm-vm description: REST surface for vcenter-vm-vm. operations: - method: GET name: getvm description: Vmware Get Virtual Machine Details call: vsphere-vms.getvm outputParameters: - type: object mapping: $. - method: DELETE name: deletevm description: Vmware Delete a Virtual Machine call: vsphere-vms.deletevm outputParameters: - type: object mapping: $. - type: mcp namespace: vsphere-vms-mcp port: 9090 transport: http description: MCP adapter for VMware vSphere Automation REST API — VMs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: vmware-list-virtual-machines description: Vmware List Virtual Machines hints: readOnly: true destructive: false idempotent: true call: vsphere-vms.listvms with: filter.vms: tools.filter.vms filter.names: tools.filter.names filter.folders: tools.filter.folders filter.datacenters: tools.filter.datacenters filter.hosts: tools.filter.hosts filter.clusters: tools.filter.clusters filter.resource_pools: tools.filter.resource_pools filter.power_states: tools.filter.power_states outputParameters: - type: object mapping: $. - name: vmware-create-new-virtual-machine description: Vmware Create a New Virtual Machine hints: readOnly: false destructive: false idempotent: false call: vsphere-vms.createvm with: body: tools.body outputParameters: - type: object mapping: $. - name: vmware-get-virtual-machine-details description: Vmware Get Virtual Machine Details hints: readOnly: true destructive: false idempotent: true call: vsphere-vms.getvm outputParameters: - type: object mapping: $. - name: vmware-delete-virtual-machine description: Vmware Delete a Virtual Machine hints: readOnly: false destructive: true idempotent: true call: vsphere-vms.deletevm outputParameters: - type: object mapping: $.