naftiko: 1.0.0-alpha2 info: label: supports a RESTful API for the Libpod library — images (compat) description: 'supports a RESTful API for the Libpod library — images (compat). 13 operations. Lead operation: Build image. Self-contained Naftiko capability covering one Podman business surface.' tags: - Podman - images (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-images-compat baseUri: http://podman.io description: supports a RESTful API for the Libpod library — images (compat) business capability. Self-contained, no shared references. resources: - name: build path: /build operations: - name: imagebuild method: POST description: Build image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Content-Type in: header type: string - name: X-Registry-Config in: header type: string - name: dockerfile in: query type: string description: Path within the build context to the `Dockerfile`. - name: t in: query type: string description: A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag, the default latest value is assumed. You can provide several t para - name: extrahosts in: query type: string description: TBD Extra hosts to add to /etc/hosts - name: nohosts in: query type: boolean description: Not to create /etc/hosts when building the image - name: remote in: query type: string description: A Git repository URI or HTTP/HTTPS context URI. - name: retry in: query type: integer description: Number of times to retry in case of failure when performing push/pull. - name: retry-delay in: query type: string description: Delay between retries in case of push/pull failures. - name: q in: query type: boolean description: Suppress verbose build output - name: nocache in: query type: boolean description: Do not use the cache when building the image - name: cachefrom in: query type: string description: JSON array of images used to build cache resolution - name: pull in: query type: boolean description: Attempt to pull the image even if an older image exists locally - name: rm in: query type: boolean description: Remove intermediate containers after a successful build - name: forcerm in: query type: boolean description: Always remove intermediate containers, even upon failure - name: memory in: query type: integer description: Memory is the upper limit (in bytes) on how much memory running containers can use - name: memswap in: query type: integer description: MemorySwap limits the amount of memory and swap together - name: cpushares in: query type: integer description: CPUShares (relative weight - name: cpusetcpus in: query type: string description: CPUSetCPUs in which to allow execution (0-3, 0,1) - name: cpuperiod in: query type: integer description: CPUPeriod limits the CPU CFS (Completely Fair Scheduler) period - name: cpuquota in: query type: integer description: CPUQuota limits the CPU CFS (Completely Fair Scheduler) quota - name: buildargs in: query type: string description: JSON map of string pairs denoting build-time variables. - name: shmsize in: query type: integer description: ShmSize is the "size" value to use when mounting an shmfs on the container's /dev/shm directory. - name: squash in: query type: boolean description: Silently ignored. - name: save-stages in: query type: boolean description: Preserve intermediate stage images instead of removing them after the build completes. - name: stage-labels in: query type: boolean description: Add metadata labels to all intermediate stage images of a multistage build, including the final image. - name: labels in: query type: string description: JSON map of key, value pairs to set as labels on the new image - name: networkmode in: query type: string description: Sets the networking mode for the run commands during build. - name: platform in: query type: string description: Platform format os[/arch[/variant]] - name: target in: query type: string description: Target build stage - name: outputs in: query type: string description: output configuration TBD - name: inputStream in: body type: string description: 'A tar archive compressed with one of the following algorithms:' - name: images-create path: /images/create operations: - name: imagecreate method: POST description: Create an image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Registry-Auth in: header type: string description: A base64-encoded auth configuration. - name: fromImage in: query type: string description: Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connec - name: fromSrc in: query type: string description: Source to import. The value may be a URL from which the image can be retrieved or - to read the image from the request body. This parameter may only be used whe - name: repo in: query type: string description: Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image. - name: tag in: query type: string description: Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled. - name: message in: query type: string description: Set commit message for imported image. - name: platform in: query type: string description: Platform in the format os[/arch[/variant]] - name: retry in: query type: integer description: Number of times to retry in case of failure when performing pull. - name: retryDelay in: query type: string description: Delay between retries in case of pull failures. - name: inputImage in: body type: string description: Image content if fromSrc parameter was used - name: images-get path: /images/get operations: - name: imagegetall method: GET description: Export several images outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: names in: query type: string description: one or more image names or IDs comma separated required: true - name: images-json path: /images/json operations: - name: imagelist method: GET description: List Images outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: all in: query type: boolean description: Show all images. Only images from a final layer (no children) are shown by default. - name: filters in: query type: string description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available filters:' - name: digests in: query type: boolean description: Not supported - name: shared-size in: query type: boolean description: Compute and show shared size as a SharedSize field on each image. - name: images-load path: /images/load operations: - name: imageload method: POST description: Import image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: quiet in: query type: boolean description: not supported - name: request in: body type: string description: tarball of container image - name: images-prune path: /images/prune operations: - name: imageprune method: POST description: Prune unused images outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filters in: query type: string description: 'filters to apply to image pruning, encoded as JSON (map[string][]string). Available filters:' - name: images-search path: /images/search operations: - name: imagesearch method: GET description: Search images outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: term in: query type: string description: term to search - name: limit in: query type: integer description: maximum number of results - name: filters in: query type: string description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available filters:' - name: tlsVerify in: query type: boolean description: Require HTTPS and verify signatures when contacting registries. - name: listTags in: query type: boolean description: list the available tags in the repository - name: images-name path: /images/{name} operations: - name: imagedelete method: DELETE description: Remove Image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: name or ID of image to delete required: true - name: force in: query type: boolean description: Remove the image even if it is being used by stopped containers or has other tags - name: noprune in: query type: boolean description: do not remove dangling parent images - name: ignore in: query type: boolean description: Ignore if a specified image does not exist and do not throw an error. - name: images-name-get path: /images/{name}/get operations: - name: imageget method: GET description: Export an image 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: images-name-history path: /images/{name}/history operations: - name: imagehistory method: GET description: History of an image 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: images-name-json path: /images/{name}/json operations: - name: imageinspect method: GET description: Inspect an image 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: images-name-push path: /images/{name}/push operations: - name: imagepush method: POST description: Push Image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Name of image to push. required: true - name: tag in: query type: string description: The tag to associate with the image on the registry. - name: all in: query type: boolean description: All indicates whether to push all images related to the image list - name: compress in: query type: boolean description: Use compression on image. - name: destination in: query type: string description: Allows for pushing the image to a different destination than the image refers to. - name: format in: query type: string description: Manifest type (oci, v2s1, or v2s2) to use when pushing an image. Default is manifest type of source, with fallbacks. - name: tlsVerify in: query type: boolean description: Require TLS verification. - name: X-Registry-Auth in: header type: string description: A base64-encoded auth configuration. - name: images-name-tag path: /images/{name}/tag operations: - name: imagetag method: POST description: Tag an image 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: repo in: query type: string description: the repository to tag in - name: tag in: query type: string description: the name of the new tag exposes: - type: rest namespace: podman-images-compat-rest port: 8080 description: REST adapter for supports a RESTful API for the Libpod library — images (compat). One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/build name: build description: REST surface for build. operations: - method: POST name: imagebuild description: Build image call: podman-images-compat.imagebuild with: Content-Type: rest.Content-Type X-Registry-Config: rest.X-Registry-Config dockerfile: rest.dockerfile t: rest.t extrahosts: rest.extrahosts nohosts: rest.nohosts remote: rest.remote retry: rest.retry retry-delay: rest.retry-delay q: rest.q nocache: rest.nocache cachefrom: rest.cachefrom pull: rest.pull rm: rest.rm forcerm: rest.forcerm memory: rest.memory memswap: rest.memswap cpushares: rest.cpushares cpusetcpus: rest.cpusetcpus cpuperiod: rest.cpuperiod cpuquota: rest.cpuquota buildargs: rest.buildargs shmsize: rest.shmsize squash: rest.squash save-stages: rest.save-stages stage-labels: rest.stage-labels labels: rest.labels networkmode: rest.networkmode platform: rest.platform target: rest.target outputs: rest.outputs inputStream: rest.inputStream outputParameters: - type: object mapping: $. - path: /v1/images/create name: images-create description: REST surface for images-create. operations: - method: POST name: imagecreate description: Create an image call: podman-images-compat.imagecreate with: X-Registry-Auth: rest.X-Registry-Auth fromImage: rest.fromImage fromSrc: rest.fromSrc repo: rest.repo tag: rest.tag message: rest.message platform: rest.platform retry: rest.retry retryDelay: rest.retryDelay inputImage: rest.inputImage outputParameters: - type: object mapping: $. - path: /v1/images/get name: images-get description: REST surface for images-get. operations: - method: GET name: imagegetall description: Export several images call: podman-images-compat.imagegetall with: names: rest.names outputParameters: - type: object mapping: $. - path: /v1/images/json name: images-json description: REST surface for images-json. operations: - method: GET name: imagelist description: List Images call: podman-images-compat.imagelist with: all: rest.all filters: rest.filters digests: rest.digests shared-size: rest.shared-size outputParameters: - type: object mapping: $. - path: /v1/images/load name: images-load description: REST surface for images-load. operations: - method: POST name: imageload description: Import image call: podman-images-compat.imageload with: quiet: rest.quiet request: rest.request outputParameters: - type: object mapping: $. - path: /v1/images/prune name: images-prune description: REST surface for images-prune. operations: - method: POST name: imageprune description: Prune unused images call: podman-images-compat.imageprune with: filters: rest.filters outputParameters: - type: object mapping: $. - path: /v1/images/search name: images-search description: REST surface for images-search. operations: - method: GET name: imagesearch description: Search images call: podman-images-compat.imagesearch with: term: rest.term limit: rest.limit filters: rest.filters tlsVerify: rest.tlsVerify listTags: rest.listTags outputParameters: - type: object mapping: $. - path: /v1/images/{name} name: images-name description: REST surface for images-name. operations: - method: DELETE name: imagedelete description: Remove Image call: podman-images-compat.imagedelete with: name: rest.name force: rest.force noprune: rest.noprune ignore: rest.ignore outputParameters: - type: object mapping: $. - path: /v1/images/{name}/get name: images-name-get description: REST surface for images-name-get. operations: - method: GET name: imageget description: Export an image call: podman-images-compat.imageget with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/images/{name}/history name: images-name-history description: REST surface for images-name-history. operations: - method: GET name: imagehistory description: History of an image call: podman-images-compat.imagehistory with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/images/{name}/json name: images-name-json description: REST surface for images-name-json. operations: - method: GET name: imageinspect description: Inspect an image call: podman-images-compat.imageinspect with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/images/{name}/push name: images-name-push description: REST surface for images-name-push. operations: - method: POST name: imagepush description: Push Image call: podman-images-compat.imagepush with: name: rest.name tag: rest.tag all: rest.all compress: rest.compress destination: rest.destination format: rest.format tlsVerify: rest.tlsVerify X-Registry-Auth: rest.X-Registry-Auth outputParameters: - type: object mapping: $. - path: /v1/images/{name}/tag name: images-name-tag description: REST surface for images-name-tag. operations: - method: POST name: imagetag description: Tag an image call: podman-images-compat.imagetag with: name: rest.name repo: rest.repo tag: rest.tag outputParameters: - type: object mapping: $. - type: mcp namespace: podman-images-compat-mcp port: 9090 transport: http description: MCP adapter for supports a RESTful API for the Libpod library — images (compat). One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: build-image description: Build image hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imagebuild with: Content-Type: tools.Content-Type X-Registry-Config: tools.X-Registry-Config dockerfile: tools.dockerfile t: tools.t extrahosts: tools.extrahosts nohosts: tools.nohosts remote: tools.remote retry: tools.retry retry-delay: tools.retry-delay q: tools.q nocache: tools.nocache cachefrom: tools.cachefrom pull: tools.pull rm: tools.rm forcerm: tools.forcerm memory: tools.memory memswap: tools.memswap cpushares: tools.cpushares cpusetcpus: tools.cpusetcpus cpuperiod: tools.cpuperiod cpuquota: tools.cpuquota buildargs: tools.buildargs shmsize: tools.shmsize squash: tools.squash save-stages: tools.save-stages stage-labels: tools.stage-labels labels: tools.labels networkmode: tools.networkmode platform: tools.platform target: tools.target outputs: tools.outputs inputStream: tools.inputStream outputParameters: - type: object mapping: $. - name: create-image description: Create an image hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imagecreate with: X-Registry-Auth: tools.X-Registry-Auth fromImage: tools.fromImage fromSrc: tools.fromSrc repo: tools.repo tag: tools.tag message: tools.message platform: tools.platform retry: tools.retry retryDelay: tools.retryDelay inputImage: tools.inputImage outputParameters: - type: object mapping: $. - name: export-several-images description: Export several images hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imagegetall with: names: tools.names outputParameters: - type: object mapping: $. - name: list-images description: List Images hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imagelist with: all: tools.all filters: tools.filters digests: tools.digests shared-size: tools.shared-size outputParameters: - type: object mapping: $. - name: import-image description: Import image hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imageload with: quiet: tools.quiet request: tools.request outputParameters: - type: object mapping: $. - name: prune-unused-images description: Prune unused images hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imageprune with: filters: tools.filters outputParameters: - type: object mapping: $. - name: search-images description: Search images hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imagesearch with: term: tools.term limit: tools.limit filters: tools.filters tlsVerify: tools.tlsVerify listTags: tools.listTags outputParameters: - type: object mapping: $. - name: remove-image description: Remove Image hints: readOnly: false destructive: true idempotent: true call: podman-images-compat.imagedelete with: name: tools.name force: tools.force noprune: tools.noprune ignore: tools.ignore outputParameters: - type: object mapping: $. - name: export-image description: Export an image hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imageget with: name: tools.name outputParameters: - type: object mapping: $. - name: history-image description: History of an image hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imagehistory with: name: tools.name outputParameters: - type: object mapping: $. - name: inspect-image description: Inspect an image hints: readOnly: true destructive: false idempotent: true call: podman-images-compat.imageinspect with: name: tools.name outputParameters: - type: object mapping: $. - name: push-image description: Push Image hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imagepush with: name: tools.name tag: tools.tag all: tools.all compress: tools.compress destination: tools.destination format: tools.format tlsVerify: tools.tlsVerify X-Registry-Auth: tools.X-Registry-Auth outputParameters: - type: object mapping: $. - name: tag-image description: Tag an image hints: readOnly: false destructive: false idempotent: false call: podman-images-compat.imagetag with: name: tools.name repo: tools.repo tag: tools.tag outputParameters: - type: object mapping: $.