naftiko: 1.0.0-alpha2 info: label: Incus external REST API — certificates description: 'Incus external REST API — certificates. 8 operations. Lead operation: Get the trusted certificates. Self-contained Naftiko capability covering one Incus business surface.' tags: - Incus - certificates created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: INCUS_API_KEY: INCUS_API_KEY capability: consumes: - type: http namespace: incus-certificates baseUri: '' description: Incus external REST API — certificates business capability. Self-contained, no shared references. resources: - name: 1.0-certificates path: /1.0/certificates operations: - name: certificatesget method: GET description: Get the trusted certificates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: Collection filter - name: certificatespost method: POST description: Add a trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: certificate in: body type: string description: Certificate required: true - name: 1.0-certificates-fingerprint path: /1.0/certificates/{fingerprint} operations: - name: certificatedelete method: DELETE description: Delete the trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fingerprint in: path type: string description: Fingerprint required: true - name: certificateget method: GET description: Get the trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fingerprint in: path type: string description: Fingerprint required: true - name: certificatepatch method: PATCH description: Partially update the trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fingerprint in: path type: string description: Fingerprint required: true - name: certificate in: body type: string description: Certificate configuration required: true - name: certificateput method: PUT description: Update the trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fingerprint in: path type: string description: Fingerprint required: true - name: certificate in: body type: string description: Certificate configuration required: true - name: 1.0-certificates?public path: /1.0/certificates?public operations: - name: certificatespostuntrusted method: POST description: Add a trusted certificate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: certificate in: body type: string description: Certificate required: true - name: 1.0-certificates?recursion=1 path: /1.0/certificates?recursion=1 operations: - name: certificatesgetrecursion1 method: GET description: Get the trusted certificates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: Collection filter exposes: - type: rest namespace: incus-certificates-rest port: 8080 description: REST adapter for Incus external REST API — certificates. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/1-0/certificates name: 1-0-certificates description: REST surface for 1.0-certificates. operations: - method: GET name: certificatesget description: Get the trusted certificates call: incus-certificates.certificatesget with: filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: certificatespost description: Add a trusted certificate call: incus-certificates.certificatespost with: certificate: rest.certificate outputParameters: - type: object mapping: $. - path: /v1/1-0/certificates/{fingerprint} name: 1-0-certificates-fingerprint description: REST surface for 1.0-certificates-fingerprint. operations: - method: DELETE name: certificatedelete description: Delete the trusted certificate call: incus-certificates.certificatedelete with: fingerprint: rest.fingerprint outputParameters: - type: object mapping: $. - method: GET name: certificateget description: Get the trusted certificate call: incus-certificates.certificateget with: fingerprint: rest.fingerprint outputParameters: - type: object mapping: $. - method: PATCH name: certificatepatch description: Partially update the trusted certificate call: incus-certificates.certificatepatch with: fingerprint: rest.fingerprint certificate: rest.certificate outputParameters: - type: object mapping: $. - method: PUT name: certificateput description: Update the trusted certificate call: incus-certificates.certificateput with: fingerprint: rest.fingerprint certificate: rest.certificate outputParameters: - type: object mapping: $. - path: /v1/1-0/certificates-public name: 1-0-certificates-public description: REST surface for 1.0-certificates?public. operations: - method: POST name: certificatespostuntrusted description: Add a trusted certificate call: incus-certificates.certificatespostuntrusted with: certificate: rest.certificate outputParameters: - type: object mapping: $. - path: /v1/1-0/certificates-recursion-1 name: 1-0-certificates-recursion-1 description: REST surface for 1.0-certificates?recursion=1. operations: - method: GET name: certificatesgetrecursion1 description: Get the trusted certificates call: incus-certificates.certificatesgetrecursion1 with: filter: rest.filter outputParameters: - type: object mapping: $. - type: mcp namespace: incus-certificates-mcp port: 9090 transport: http description: MCP adapter for Incus external REST API — certificates. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-trusted-certificates description: Get the trusted certificates hints: readOnly: true destructive: false idempotent: true call: incus-certificates.certificatesget with: filter: tools.filter outputParameters: - type: object mapping: $. - name: add-trusted-certificate description: Add a trusted certificate hints: readOnly: false destructive: false idempotent: false call: incus-certificates.certificatespost with: certificate: tools.certificate outputParameters: - type: object mapping: $. - name: delete-trusted-certificate description: Delete the trusted certificate hints: readOnly: false destructive: true idempotent: true call: incus-certificates.certificatedelete with: fingerprint: tools.fingerprint outputParameters: - type: object mapping: $. - name: get-trusted-certificate description: Get the trusted certificate hints: readOnly: true destructive: false idempotent: true call: incus-certificates.certificateget with: fingerprint: tools.fingerprint outputParameters: - type: object mapping: $. - name: partially-update-trusted-certificate description: Partially update the trusted certificate hints: readOnly: false destructive: false idempotent: true call: incus-certificates.certificatepatch with: fingerprint: tools.fingerprint certificate: tools.certificate outputParameters: - type: object mapping: $. - name: update-trusted-certificate description: Update the trusted certificate hints: readOnly: false destructive: false idempotent: true call: incus-certificates.certificateput with: fingerprint: tools.fingerprint certificate: tools.certificate outputParameters: - type: object mapping: $. - name: add-trusted-certificate-2 description: Add a trusted certificate hints: readOnly: false destructive: false idempotent: false call: incus-certificates.certificatespostuntrusted with: certificate: tools.certificate outputParameters: - type: object mapping: $. - name: get-trusted-certificates-2 description: Get the trusted certificates hints: readOnly: true destructive: false idempotent: true call: incus-certificates.certificatesgetrecursion1 with: filter: tools.filter outputParameters: - type: object mapping: $.