naftiko: 1.0.0-alpha2 info: label: Istio Extensions API — WasmPlugin description: 'Istio Extensions API — WasmPlugin. 5 operations. Lead operation: Istio List WasmPlugins. Self-contained Naftiko capability covering one Istio business surface.' tags: - Istio - WasmPlugin created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ISTIO_API_KEY: ISTIO_API_KEY capability: consumes: - type: http namespace: extensions-wasmplugin baseUri: https://{cluster}/apis/extensions.istio.io/v1alpha1 description: Istio Extensions API — WasmPlugin business capability. Self-contained, no shared references. resources: - name: namespaces-namespace-wasmplugins path: /namespaces/{namespace}/wasmplugins operations: - name: listwasmplugins method: GET description: Istio List WasmPlugins outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createwasmplugin method: POST description: Istio Create a WasmPlugin outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: namespaces-namespace-wasmplugins-name path: /namespaces/{namespace}/wasmplugins/{name} operations: - name: getwasmplugin method: GET description: Istio Get a WasmPlugin outputRawFormat: json outputParameters: - name: result type: object value: $. - name: replacewasmplugin method: PUT description: Istio Replace a WasmPlugin outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletewasmplugin method: DELETE description: Istio Delete a WasmPlugin outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.ISTIO_API_KEY}}' exposes: - type: rest namespace: extensions-wasmplugin-rest port: 8080 description: REST adapter for Istio Extensions API — WasmPlugin. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/namespaces/{namespace}/wasmplugins name: namespaces-namespace-wasmplugins description: REST surface for namespaces-namespace-wasmplugins. operations: - method: GET name: listwasmplugins description: Istio List WasmPlugins call: extensions-wasmplugin.listwasmplugins outputParameters: - type: object mapping: $. - method: POST name: createwasmplugin description: Istio Create a WasmPlugin call: extensions-wasmplugin.createwasmplugin with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/namespaces/{namespace}/wasmplugins/{name} name: namespaces-namespace-wasmplugins-name description: REST surface for namespaces-namespace-wasmplugins-name. operations: - method: GET name: getwasmplugin description: Istio Get a WasmPlugin call: extensions-wasmplugin.getwasmplugin outputParameters: - type: object mapping: $. - method: PUT name: replacewasmplugin description: Istio Replace a WasmPlugin call: extensions-wasmplugin.replacewasmplugin with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletewasmplugin description: Istio Delete a WasmPlugin call: extensions-wasmplugin.deletewasmplugin outputParameters: - type: object mapping: $. - type: mcp namespace: extensions-wasmplugin-mcp port: 9090 transport: http description: MCP adapter for Istio Extensions API — WasmPlugin. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: istio-list-wasmplugins description: Istio List WasmPlugins hints: readOnly: true destructive: false idempotent: true call: extensions-wasmplugin.listwasmplugins outputParameters: - type: object mapping: $. - name: istio-create-wasmplugin description: Istio Create a WasmPlugin hints: readOnly: false destructive: false idempotent: false call: extensions-wasmplugin.createwasmplugin with: body: tools.body outputParameters: - type: object mapping: $. - name: istio-get-wasmplugin description: Istio Get a WasmPlugin hints: readOnly: true destructive: false idempotent: true call: extensions-wasmplugin.getwasmplugin outputParameters: - type: object mapping: $. - name: istio-replace-wasmplugin description: Istio Replace a WasmPlugin hints: readOnly: false destructive: false idempotent: true call: extensions-wasmplugin.replacewasmplugin with: body: tools.body outputParameters: - type: object mapping: $. - name: istio-delete-wasmplugin description: Istio Delete a WasmPlugin hints: readOnly: false destructive: true idempotent: true call: extensions-wasmplugin.deletewasmplugin outputParameters: - type: object mapping: $.