naftiko: 1.0.0-alpha2 info: label: supports a RESTful API for the Libpod library — containers (compat) description: 'supports a RESTful API for the Libpod library — containers (compat). 25 operations. Lead operation: New Image. Self-contained Naftiko capability covering one Podman business surface.' tags: - Podman - containers (compat) created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PODMAN_API_KEY: PODMAN_API_KEY capability: consumes: - type: http namespace: podman-containers-compat baseUri: http://podman.io description: supports a RESTful API for the Libpod library — containers (compat) business capability. Self-contained, no shared references. resources: - name: commit path: /commit operations: - name: imagecommit method: POST description: New Image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: container in: query type: string description: the name or ID of a container - name: repo in: query type: string description: the repository name for the created image - name: tag in: query type: string description: tag name for the created image - name: comment in: query type: string description: commit message - name: author in: query type: string description: author of the image - name: pause in: query type: boolean description: pause the container before committing it - name: changes in: query type: string description: instructions to apply while committing in Dockerfile format - name: squash in: query type: boolean description: squash newly built layers into a single new layer - name: containers-create path: /containers/create operations: - name: containercreate method: POST description: Create a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: container name - name: body in: body type: string description: Container to create required: true - name: containers-json path: /containers/json operations: - name: containerlist method: GET description: List containers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: all in: query type: boolean description: Return all containers. By default, only running containers are shown - name: external in: query type: boolean description: Return containers in storage not controlled by Podman - name: limit in: query type: integer description: Return this number of most recently created containers, including non-running ones. - name: size in: query type: boolean description: Return the size of container as fields SizeRw and SizeRootFs. - name: filters in: query type: string description: 'A JSON encoded value of the filters (a `map[string][]string`) to process on the containers list. Available filters:' - name: containers-prune path: /containers/prune operations: - name: containerprune method: POST description: Delete stopped containers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filters in: query type: string description: 'Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:' - name: containers-name path: /containers/{name} operations: - name: containerdelete method: DELETE description: Remove a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: force in: query type: boolean description: If the container is running, kill it before removing it. - name: v in: query type: boolean description: Remove the volumes associated with the container. - name: link in: query type: boolean description: not supported - name: ignore in: query type: boolean description: Ignore if a specified container does not exist. - name: depend in: query type: boolean description: Remove container dependencies. - name: timeout in: query type: integer description: Number of seconds to wait before forcibly stopping the container. - name: volumes in: query type: boolean description: Remove anonymous volumes associated with the container. - name: containers-name-archive path: /containers/{name}/archive operations: - name: containerarchive method: GET description: Get files from a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: container name or id required: true - name: path in: query type: string description: Path to a directory in the container to extract required: true - name: putcontainerarchive method: PUT description: Put files into a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: container name or id required: true - name: path in: query type: string description: Path to a directory in the container to extract required: true - name: noOverwriteDirNonDir in: query type: string description: if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa (1 or true) - name: copyUIDGID in: query type: string description: copy UID/GID maps to the dest file or di (1 or true) - name: request in: body type: string description: tarfile of files to copy into the container - name: containers-name-attach path: /containers/{name}/attach operations: - name: containerattach method: POST description: Attach to a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: detachKeys in: query type: string description: keys to use for detaching from the container - name: logs in: query type: boolean description: Stream all logs from the container across the connection. Happens before streaming attach (if requested). At least one of logs or stream must be set - name: stream in: query type: boolean description: Attach to the container. If unset, and logs is set, only the container's logs will be sent. At least one of stream or logs must be set - name: stdout in: query type: boolean description: Attach to container STDOUT - name: stderr in: query type: boolean description: Attach to container STDERR - name: stdin in: query type: boolean description: Attach to container STDIN - name: containers-name-changes path: /containers/{name}/changes operations: - name: containerchanges method: GET description: Report on changes to container's filesystem; adds, deletes or modifications. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or id of the container required: true - name: parent in: query type: string description: specify a second layer which is used to compare against it instead of the parent layer - name: diffType in: query type: string description: select what you want to match, default is all - name: containers-name-export path: /containers/{name}/export operations: - name: containerexport method: GET description: Export a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: containers-name-json path: /containers/{name}/json operations: - name: containerinspect method: GET description: Inspect container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or id of the container required: true - name: size in: query type: boolean description: include the size of the container - name: containers-name-kill path: /containers/{name}/kill operations: - name: containerkill method: POST description: Kill container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: all in: query type: boolean description: Send kill signal to all containers - name: signal in: query type: string description: signal to be sent to container - name: containers-name-logs path: /containers/{name}/logs operations: - name: containerlogs method: GET description: Get container logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: follow in: query type: boolean description: Keep connection after returning logs. - name: stdout in: query type: boolean description: Return logs from stdout - name: stderr in: query type: boolean description: Return logs from stderr - name: since in: query type: string description: Only return logs since this time, as a UNIX timestamp - name: until in: query type: string description: Only return logs before this time, as a UNIX timestamp - name: timestamps in: query type: boolean description: Add timestamps to every log line - name: tail in: query type: string description: Only return this number of log lines from the end of the logs - name: containers-name-pause path: /containers/{name}/pause operations: - name: containerpause method: POST description: Pause container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: containers-name-rename path: /containers/{name}/rename operations: - name: containerrename method: POST description: Rename an existing container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Full or partial ID or full name of the container to rename required: true - name: name in: query type: string description: New name for the container required: true - name: containers-name-resize path: /containers/{name}/resize operations: - name: containerresize method: POST description: Resize a container's TTY outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: h in: query type: integer description: Height to set for the terminal, in characters - name: w in: query type: integer description: Width to set for the terminal, in characters - name: running in: query type: boolean description: Ignore containers not running errors - name: containers-name-restart path: /containers/{name}/restart operations: - name: containerrestart method: POST description: Restart container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: t in: query type: integer description: timeout before sending kill signal to container - name: containers-name-start path: /containers/{name}/start operations: - name: containerstart method: POST description: Start a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: detachKeys in: query type: string description: 'Override the key sequence for detaching a container. Format is a single character [a-Z] or ctrl- where is one of: a-z, @, ^, [, , or _.' - name: containers-name-stats path: /containers/{name}/stats operations: - name: containerstats method: GET description: Get stats for a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: stream in: query type: boolean description: Stream the output - name: one-shot in: query type: boolean description: Provide a one-shot response in which preCPU stats are blank, resulting in a single cycle return. - name: containers-name-stop path: /containers/{name}/stop operations: - name: containerstop method: POST description: Stop a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: t in: query type: integer description: number of seconds to wait before killing container - name: timeout in: query type: integer description: Number of seconds to wait before killing the container (libpod alias for `t`). - name: ignore in: query type: boolean description: Do not return an error if the container is already stopped. - name: containers-name-top path: /containers/{name}/top operations: - name: containertop method: GET description: List processes running inside a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: ps_args in: query type: string description: arguments to pass to ps such as aux. - name: containers-name-unpause path: /containers/{name}/unpause operations: - name: containerunpause method: POST description: Unpause container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: containers-name-update path: /containers/{name}/update operations: - name: containerupdate method: POST description: Update configuration of an existing container, allowing changes to resource limits outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Full or partial ID or full name of the container to rename required: true - name: resources in: body type: string description: attributes for updating the container - name: containers-name-wait path: /containers/{name}/wait operations: - name: containerwait method: POST description: Wait on a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: the name or ID of the container required: true - name: condition in: query type: string description: 'Wait condition. Valid values are:' - name: libpod-containers-name-archive path: /libpod/containers/{name}/archive operations: - name: containerarchivelibpod method: GET description: Copy files from a container outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: container name or id required: true - name: path in: query type: string description: Path to a directory in the container to extract required: true - name: rename in: query type: string description: JSON encoded map[string]string to translate paths exposes: - type: rest namespace: podman-containers-compat-rest port: 8080 description: REST adapter for supports a RESTful API for the Libpod library — containers (compat). One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/commit name: commit description: REST surface for commit. operations: - method: POST name: imagecommit description: New Image call: podman-containers-compat.imagecommit with: container: rest.container repo: rest.repo tag: rest.tag comment: rest.comment author: rest.author pause: rest.pause changes: rest.changes squash: rest.squash outputParameters: - type: object mapping: $. - path: /v1/containers/create name: containers-create description: REST surface for containers-create. operations: - method: POST name: containercreate description: Create a container call: podman-containers-compat.containercreate with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/containers/json name: containers-json description: REST surface for containers-json. operations: - method: GET name: containerlist description: List containers call: podman-containers-compat.containerlist with: all: rest.all external: rest.external limit: rest.limit size: rest.size filters: rest.filters outputParameters: - type: object mapping: $. - path: /v1/containers/prune name: containers-prune description: REST surface for containers-prune. operations: - method: POST name: containerprune description: Delete stopped containers call: podman-containers-compat.containerprune with: filters: rest.filters outputParameters: - type: object mapping: $. - path: /v1/containers/{name} name: containers-name description: REST surface for containers-name. operations: - method: DELETE name: containerdelete description: Remove a container call: podman-containers-compat.containerdelete with: name: rest.name force: rest.force v: rest.v link: rest.link ignore: rest.ignore depend: rest.depend timeout: rest.timeout volumes: rest.volumes outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/archive name: containers-name-archive description: REST surface for containers-name-archive. operations: - method: GET name: containerarchive description: Get files from a container call: podman-containers-compat.containerarchive with: name: rest.name path: rest.path outputParameters: - type: object mapping: $. - method: PUT name: putcontainerarchive description: Put files into a container call: podman-containers-compat.putcontainerarchive with: name: rest.name path: rest.path noOverwriteDirNonDir: rest.noOverwriteDirNonDir copyUIDGID: rest.copyUIDGID request: rest.request outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/attach name: containers-name-attach description: REST surface for containers-name-attach. operations: - method: POST name: containerattach description: Attach to a container call: podman-containers-compat.containerattach with: name: rest.name detachKeys: rest.detachKeys logs: rest.logs stream: rest.stream stdout: rest.stdout stderr: rest.stderr stdin: rest.stdin outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/changes name: containers-name-changes description: REST surface for containers-name-changes. operations: - method: GET name: containerchanges description: Report on changes to container's filesystem; adds, deletes or modifications. call: podman-containers-compat.containerchanges with: name: rest.name parent: rest.parent diffType: rest.diffType outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/export name: containers-name-export description: REST surface for containers-name-export. operations: - method: GET name: containerexport description: Export a container call: podman-containers-compat.containerexport with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/json name: containers-name-json description: REST surface for containers-name-json. operations: - method: GET name: containerinspect description: Inspect container call: podman-containers-compat.containerinspect with: name: rest.name size: rest.size outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/kill name: containers-name-kill description: REST surface for containers-name-kill. operations: - method: POST name: containerkill description: Kill container call: podman-containers-compat.containerkill with: name: rest.name all: rest.all signal: rest.signal outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/logs name: containers-name-logs description: REST surface for containers-name-logs. operations: - method: GET name: containerlogs description: Get container logs call: podman-containers-compat.containerlogs with: name: rest.name follow: rest.follow stdout: rest.stdout stderr: rest.stderr since: rest.since until: rest.until timestamps: rest.timestamps tail: rest.tail outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/pause name: containers-name-pause description: REST surface for containers-name-pause. operations: - method: POST name: containerpause description: Pause container call: podman-containers-compat.containerpause with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/rename name: containers-name-rename description: REST surface for containers-name-rename. operations: - method: POST name: containerrename description: Rename an existing container call: podman-containers-compat.containerrename with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/resize name: containers-name-resize description: REST surface for containers-name-resize. operations: - method: POST name: containerresize description: Resize a container's TTY call: podman-containers-compat.containerresize with: name: rest.name h: rest.h w: rest.w running: rest.running outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/restart name: containers-name-restart description: REST surface for containers-name-restart. operations: - method: POST name: containerrestart description: Restart container call: podman-containers-compat.containerrestart with: name: rest.name t: rest.t outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/start name: containers-name-start description: REST surface for containers-name-start. operations: - method: POST name: containerstart description: Start a container call: podman-containers-compat.containerstart with: name: rest.name detachKeys: rest.detachKeys outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/stats name: containers-name-stats description: REST surface for containers-name-stats. operations: - method: GET name: containerstats description: Get stats for a container call: podman-containers-compat.containerstats with: name: rest.name stream: rest.stream one-shot: rest.one-shot outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/stop name: containers-name-stop description: REST surface for containers-name-stop. operations: - method: POST name: containerstop description: Stop a container call: podman-containers-compat.containerstop with: name: rest.name t: rest.t timeout: rest.timeout ignore: rest.ignore outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/top name: containers-name-top description: REST surface for containers-name-top. operations: - method: GET name: containertop description: List processes running inside a container call: podman-containers-compat.containertop with: name: rest.name ps_args: rest.ps_args outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/unpause name: containers-name-unpause description: REST surface for containers-name-unpause. operations: - method: POST name: containerunpause description: Unpause container call: podman-containers-compat.containerunpause with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/update name: containers-name-update description: REST surface for containers-name-update. operations: - method: POST name: containerupdate description: Update configuration of an existing container, allowing changes to resource limits call: podman-containers-compat.containerupdate with: name: rest.name resources: rest.resources outputParameters: - type: object mapping: $. - path: /v1/containers/{name}/wait name: containers-name-wait description: REST surface for containers-name-wait. operations: - method: POST name: containerwait description: Wait on a container call: podman-containers-compat.containerwait with: name: rest.name condition: rest.condition outputParameters: - type: object mapping: $. - path: /v1/libpod/containers/{name}/archive name: libpod-containers-name-archive description: REST surface for libpod-containers-name-archive. operations: - method: GET name: containerarchivelibpod description: Copy files from a container call: podman-containers-compat.containerarchivelibpod with: name: rest.name path: rest.path rename: rest.rename outputParameters: - type: object mapping: $. - type: mcp namespace: podman-containers-compat-mcp port: 9090 transport: http description: MCP adapter for supports a RESTful API for the Libpod library — containers (compat). One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: new-image description: New Image hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.imagecommit with: container: tools.container repo: tools.repo tag: tools.tag comment: tools.comment author: tools.author pause: tools.pause changes: tools.changes squash: tools.squash outputParameters: - type: object mapping: $. - name: create-container description: Create a container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containercreate with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: list-containers description: List containers hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerlist with: all: tools.all external: tools.external limit: tools.limit size: tools.size filters: tools.filters outputParameters: - type: object mapping: $. - name: delete-stopped-containers description: Delete stopped containers hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerprune with: filters: tools.filters outputParameters: - type: object mapping: $. - name: remove-container description: Remove a container hints: readOnly: false destructive: true idempotent: true call: podman-containers-compat.containerdelete with: name: tools.name force: tools.force v: tools.v link: tools.link ignore: tools.ignore depend: tools.depend timeout: tools.timeout volumes: tools.volumes outputParameters: - type: object mapping: $. - name: get-files-container description: Get files from a container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerarchive with: name: tools.name path: tools.path outputParameters: - type: object mapping: $. - name: put-files-container description: Put files into a container hints: readOnly: false destructive: false idempotent: true call: podman-containers-compat.putcontainerarchive with: name: tools.name path: tools.path noOverwriteDirNonDir: tools.noOverwriteDirNonDir copyUIDGID: tools.copyUIDGID request: tools.request outputParameters: - type: object mapping: $. - name: attach-container description: Attach to a container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerattach with: name: tools.name detachKeys: tools.detachKeys logs: tools.logs stream: tools.stream stdout: tools.stdout stderr: tools.stderr stdin: tools.stdin outputParameters: - type: object mapping: $. - name: report-changes-container-s-filesystem-adds description: Report on changes to container's filesystem; adds, deletes or modifications. hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerchanges with: name: tools.name parent: tools.parent diffType: tools.diffType outputParameters: - type: object mapping: $. - name: export-container description: Export a container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerexport with: name: tools.name outputParameters: - type: object mapping: $. - name: inspect-container description: Inspect container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerinspect with: name: tools.name size: tools.size outputParameters: - type: object mapping: $. - name: kill-container description: Kill container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerkill with: name: tools.name all: tools.all signal: tools.signal outputParameters: - type: object mapping: $. - name: get-container-logs description: Get container logs hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerlogs with: name: tools.name follow: tools.follow stdout: tools.stdout stderr: tools.stderr since: tools.since until: tools.until timestamps: tools.timestamps tail: tools.tail outputParameters: - type: object mapping: $. - name: pause-container description: Pause container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerpause with: name: tools.name outputParameters: - type: object mapping: $. - name: rename-existing-container description: Rename an existing container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerrename with: name: tools.name outputParameters: - type: object mapping: $. - name: resize-container-s-tty description: Resize a container's TTY hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerresize with: name: tools.name h: tools.h w: tools.w running: tools.running outputParameters: - type: object mapping: $. - name: restart-container description: Restart container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerrestart with: name: tools.name t: tools.t outputParameters: - type: object mapping: $. - name: start-container description: Start a container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerstart with: name: tools.name detachKeys: tools.detachKeys outputParameters: - type: object mapping: $. - name: get-stats-container description: Get stats for a container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerstats with: name: tools.name stream: tools.stream one-shot: tools.one-shot outputParameters: - type: object mapping: $. - name: stop-container description: Stop a container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerstop with: name: tools.name t: tools.t timeout: tools.timeout ignore: tools.ignore outputParameters: - type: object mapping: $. - name: list-processes-running-inside-container description: List processes running inside a container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containertop with: name: tools.name ps_args: tools.ps_args outputParameters: - type: object mapping: $. - name: unpause-container description: Unpause container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerunpause with: name: tools.name outputParameters: - type: object mapping: $. - name: update-configuration-existing-container-allowing description: Update configuration of an existing container, allowing changes to resource limits hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerupdate with: name: tools.name resources: tools.resources outputParameters: - type: object mapping: $. - name: wait-container description: Wait on a container hints: readOnly: false destructive: false idempotent: false call: podman-containers-compat.containerwait with: name: tools.name condition: tools.condition outputParameters: - type: object mapping: $. - name: copy-files-container description: Copy files from a container hints: readOnly: true destructive: false idempotent: true call: podman-containers-compat.containerarchivelibpod with: name: tools.name path: tools.path rename: tools.rename outputParameters: - type: object mapping: $.