naftiko: 1.0.0-alpha2 info: label: KubeVirt VM Management API — VMLifecycle description: 'KubeVirt VM Management API — VMLifecycle. 6 operations. Lead operation: KubeVirt Pause a VirtualMachineInstance. Self-contained Naftiko capability covering one Kubevirt business surface.' tags: - Kubevirt - VMLifecycle created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KUBEVIRT_API_KEY: KUBEVIRT_API_KEY capability: consumes: - type: http namespace: vm-vmlifecycle baseUri: https://{kubernetes-api-server} description: KubeVirt VM Management API — VMLifecycle business capability. Self-contained, no shared references. resources: - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachineinstances-name-pause path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/pause operations: - name: pausevirtualmachineinstance method: PUT description: KubeVirt Pause a VirtualMachineInstance outputRawFormat: json outputParameters: - name: result type: object value: $. - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachineinstances-name-unpause path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/unpause operations: - name: unpausevirtualmachineinstance method: PUT description: KubeVirt Unpause a VirtualMachineInstance outputRawFormat: json outputParameters: - name: result type: object value: $. - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-migrate path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachines/{name}/migrate operations: - name: migratevirtualmachine method: PUT description: KubeVirt Migrate a VirtualMachine outputRawFormat: json outputParameters: - name: result type: object value: $. - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-restart path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachines/{name}/restart operations: - name: restartvirtualmachine method: PUT description: KubeVirt Restart a VirtualMachine outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-start path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachines/{name}/start operations: - name: startvirtualmachine method: PUT description: KubeVirt Start a VirtualMachine outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-stop path: /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachines/{name}/stop operations: - name: stopvirtualmachine method: PUT description: KubeVirt Stop a VirtualMachine outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: vm-vmlifecycle-rest port: 8080 description: REST adapter for KubeVirt VM Management API — VMLifecycle. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/pause name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachineinstances-name-pause description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachineinstances-name-pause. operations: - method: PUT name: pausevirtualmachineinstance description: KubeVirt Pause a VirtualMachineInstance call: vm-vmlifecycle.pausevirtualmachineinstance outputParameters: - type: object mapping: $. - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/unpause name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachineinstances-name-unpause description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachineinstances-name-unpause. operations: - method: PUT name: unpausevirtualmachineinstance description: KubeVirt Unpause a VirtualMachineInstance call: vm-vmlifecycle.unpausevirtualmachineinstance outputParameters: - type: object mapping: $. - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachines/{name}/migrate name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachines-name-migrate description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-migrate. operations: - method: PUT name: migratevirtualmachine description: KubeVirt Migrate a VirtualMachine call: vm-vmlifecycle.migratevirtualmachine outputParameters: - type: object mapping: $. - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachines/{name}/restart name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachines-name-restart description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-restart. operations: - method: PUT name: restartvirtualmachine description: KubeVirt Restart a VirtualMachine call: vm-vmlifecycle.restartvirtualmachine with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachines/{name}/start name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachines-name-start description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-start. operations: - method: PUT name: startvirtualmachine description: KubeVirt Start a VirtualMachine call: vm-vmlifecycle.startvirtualmachine with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/apis/kubevirt-io/v1/namespaces/{namespace}/virtualmachines/{name}/stop name: apis-kubevirt-io-v1-namespaces-namespace-virtualmachines-name-stop description: REST surface for apis-kubevirt.io-v1-namespaces-namespace-virtualmachines-name-stop. operations: - method: PUT name: stopvirtualmachine description: KubeVirt Stop a VirtualMachine call: vm-vmlifecycle.stopvirtualmachine with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: vm-vmlifecycle-mcp port: 9090 transport: http description: MCP adapter for KubeVirt VM Management API — VMLifecycle. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: kubevirt-pause-virtualmachineinstance description: KubeVirt Pause a VirtualMachineInstance hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.pausevirtualmachineinstance outputParameters: - type: object mapping: $. - name: kubevirt-unpause-virtualmachineinstance description: KubeVirt Unpause a VirtualMachineInstance hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.unpausevirtualmachineinstance outputParameters: - type: object mapping: $. - name: kubevirt-migrate-virtualmachine description: KubeVirt Migrate a VirtualMachine hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.migratevirtualmachine outputParameters: - type: object mapping: $. - name: kubevirt-restart-virtualmachine description: KubeVirt Restart a VirtualMachine hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.restartvirtualmachine with: body: tools.body outputParameters: - type: object mapping: $. - name: kubevirt-start-virtualmachine description: KubeVirt Start a VirtualMachine hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.startvirtualmachine with: body: tools.body outputParameters: - type: object mapping: $. - name: kubevirt-stop-virtualmachine description: KubeVirt Stop a VirtualMachine hints: readOnly: false destructive: false idempotent: true call: vm-vmlifecycle.stopvirtualmachine with: body: tools.body outputParameters: - type: object mapping: $.