naftiko: 1.0.0-alpha2 info: label: supports a RESTful API for the Libpod library — quadlets description: 'supports a RESTful API for the Libpod library — quadlets. 6 operations. Lead operation: Remove quadlet files (batch operation). Self-contained Naftiko capability covering one Podman business surface.' tags: - Podman - quadlets created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PODMAN_API_KEY: PODMAN_API_KEY capability: consumes: - type: http namespace: podman-quadlets baseUri: http://podman.io description: supports a RESTful API for the Libpod library — quadlets business capability. Self-contained, no shared references. resources: - name: libpod-quadlets path: /libpod/quadlets operations: - name: quadletdeletealllibpod method: DELETE description: Remove quadlet files (batch operation) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: quadlets in: query type: array description: Names of quadlets to remove (e.g., "myapp.container"). Required unless all=true - name: all in: query type: boolean description: Remove all quadlets for the current user - name: force in: query type: boolean description: Remove running quadlets by stopping them first - name: ignore in: query type: boolean description: Do not error for quadlets that do not exist - name: reload-systemd in: query type: boolean description: Reload systemd after removing quadlets - name: quadletinstalllibpod method: POST description: Install quadlet files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: replace in: query type: boolean description: Replace the installation files even if the files already exists - name: reload-systemd in: query type: boolean description: Reload systemd after installing quadlets - name: request in: body type: string description: 'Quadlet files to install. Can be provided as:' - name: libpod-quadlets-json path: /libpod/quadlets/json operations: - name: quadletlistlibpod method: GET description: List quadlets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filters in: query type: string description: JSON encoded value of the filters (a map[string][]string). - name: libpod-quadlets-name path: /libpod/quadlets/{name} operations: - name: quadletdeletelibpod method: DELETE description: Remove a quadlet file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name of the quadlet with extension (e.g., "myapp.container") required: true - name: force in: query type: boolean description: Remove running quadlet by stopping it first - name: ignore in: query type: boolean description: Do not error if the quadlet does not exist - name: reload-systemd in: query type: boolean description: Reload systemd after removing the quadlet - name: libpod-quadlets-name-exists path: /libpod/quadlets/{name}/exists operations: - name: quadletexistslibpod method: GET description: Check if quadlet exists outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name of the quadlet with extension (e.g., "myapp.container") required: true - name: libpod-quadlets-name-file path: /libpod/quadlets/{name}/file operations: - name: quadletfilelibpod method: GET description: Get quadlet file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name of the quadlet with extension (e.g., "myapp.container") required: true exposes: - type: rest namespace: podman-quadlets-rest port: 8080 description: REST adapter for supports a RESTful API for the Libpod library — quadlets. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/libpod/quadlets name: libpod-quadlets description: REST surface for libpod-quadlets. operations: - method: DELETE name: quadletdeletealllibpod description: Remove quadlet files (batch operation) call: podman-quadlets.quadletdeletealllibpod with: quadlets: rest.quadlets all: rest.all force: rest.force ignore: rest.ignore reload-systemd: rest.reload-systemd outputParameters: - type: object mapping: $. - method: POST name: quadletinstalllibpod description: Install quadlet files call: podman-quadlets.quadletinstalllibpod with: replace: rest.replace reload-systemd: rest.reload-systemd request: rest.request outputParameters: - type: object mapping: $. - path: /v1/libpod/quadlets/json name: libpod-quadlets-json description: REST surface for libpod-quadlets-json. operations: - method: GET name: quadletlistlibpod description: List quadlets call: podman-quadlets.quadletlistlibpod with: filters: rest.filters outputParameters: - type: object mapping: $. - path: /v1/libpod/quadlets/{name} name: libpod-quadlets-name description: REST surface for libpod-quadlets-name. operations: - method: DELETE name: quadletdeletelibpod description: Remove a quadlet file call: podman-quadlets.quadletdeletelibpod with: name: rest.name force: rest.force ignore: rest.ignore reload-systemd: rest.reload-systemd outputParameters: - type: object mapping: $. - path: /v1/libpod/quadlets/{name}/exists name: libpod-quadlets-name-exists description: REST surface for libpod-quadlets-name-exists. operations: - method: GET name: quadletexistslibpod description: Check if quadlet exists call: podman-quadlets.quadletexistslibpod with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/libpod/quadlets/{name}/file name: libpod-quadlets-name-file description: REST surface for libpod-quadlets-name-file. operations: - method: GET name: quadletfilelibpod description: Get quadlet file call: podman-quadlets.quadletfilelibpod with: name: rest.name outputParameters: - type: object mapping: $. - type: mcp namespace: podman-quadlets-mcp port: 9090 transport: http description: MCP adapter for supports a RESTful API for the Libpod library — quadlets. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: remove-quadlet-files-batch-operation description: Remove quadlet files (batch operation) hints: readOnly: false destructive: true idempotent: true call: podman-quadlets.quadletdeletealllibpod with: quadlets: tools.quadlets all: tools.all force: tools.force ignore: tools.ignore reload-systemd: tools.reload-systemd outputParameters: - type: object mapping: $. - name: install-quadlet-files description: Install quadlet files hints: readOnly: false destructive: false idempotent: false call: podman-quadlets.quadletinstalllibpod with: replace: tools.replace reload-systemd: tools.reload-systemd request: tools.request outputParameters: - type: object mapping: $. - name: list-quadlets description: List quadlets hints: readOnly: true destructive: false idempotent: true call: podman-quadlets.quadletlistlibpod with: filters: tools.filters outputParameters: - type: object mapping: $. - name: remove-quadlet-file description: Remove a quadlet file hints: readOnly: false destructive: true idempotent: true call: podman-quadlets.quadletdeletelibpod with: name: tools.name force: tools.force ignore: tools.ignore reload-systemd: tools.reload-systemd outputParameters: - type: object mapping: $. - name: check-if-quadlet-exists description: Check if quadlet exists hints: readOnly: true destructive: false idempotent: true call: podman-quadlets.quadletexistslibpod with: name: tools.name outputParameters: - type: object mapping: $. - name: get-quadlet-file description: Get quadlet file hints: readOnly: true destructive: false idempotent: true call: podman-quadlets.quadletfilelibpod with: name: tools.name outputParameters: - type: object mapping: $.