naftiko: 1.0.0-alpha2 info: label: supports a RESTful API for the Libpod library — artifacts description: 'supports a RESTful API for the Libpod library — artifacts. 9 operations. Lead operation: Add a file as an artifact. Self-contained Naftiko capability covering one Podman business surface.' tags: - Podman - artifacts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PODMAN_API_KEY: PODMAN_API_KEY capability: consumes: - type: http namespace: podman-artifacts baseUri: http://podman.io description: supports a RESTful API for the Libpod library — artifacts business capability. Self-contained, no shared references. resources: - name: libpod-artifacts-add path: /libpod/artifacts/add operations: - name: artifactaddlibpod method: POST description: Add a file as an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag) required: true - name: fileName in: query type: string description: Path of the file to be added required: true - name: fileMIMEType in: query type: string description: Optionally set the type of file - name: annotations in: query type: array description: Array of annotation strings e.g "test=true" - name: artifactMIMEType in: query type: string description: Use type to describe an artifact - name: append in: query type: boolean description: Append files to an existing artifact - name: replace in: query type: boolean description: Replace an existing artifact with the same name - name: inputStream in: body type: string description: Binary stream of the file to add to an artifact - name: libpod-artifacts-json path: /libpod/artifacts/json operations: - name: artifactlistlibpod method: GET description: List artifacts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: libpod-artifacts-local-add path: /libpod/artifacts/local/add operations: - name: artifactlocallibpod method: POST description: Add a local file as an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag) required: true - name: path in: query type: string description: Absolute path to the local file on the server filesystem to be added required: true - name: fileName in: query type: string description: Name/title of the file within the artifact required: true - name: fileMIMEType in: query type: string description: Optionally set the MIME type of the file - name: annotations in: query type: array description: Array of annotation strings e.g "test=true" - name: artifactMIMEType in: query type: string description: Use type to describe an artifact - name: append in: query type: boolean description: Append files to an existing artifact - name: replace in: query type: boolean description: Replace an existing artifact with the same name - name: libpod-artifacts-pull path: /libpod/artifacts/pull operations: - name: artifactpulllibpod method: POST description: Pull an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag) required: true - 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 (e.g., 10s) - name: tlsVerify in: query type: boolean description: Require TLS verification - name: X-Registry-Auth in: header type: string description: base-64 encoded auth config. - name: libpod-artifacts-remove path: /libpod/artifacts/remove operations: - name: artifactdeletealllibpod method: DELETE description: Remove one or more artifacts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: artifacts in: query type: array description: List of artifact names/IDs to remove - name: all in: query type: boolean description: Remove all artifacts - name: ignore in: query type: boolean description: Ignore errors if artifact does not exist - name: libpod-artifacts-name path: /libpod/artifacts/{name} operations: - name: artifactdeletelibpod method: DELETE description: Remove an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Name or ID of the artifact to remove required: true - name: libpod-artifacts-name-extract path: /libpod/artifacts/{name}/extract operations: - name: artifactextractlibpod method: GET description: Extract an artifacts contents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Name or digest of the artifact required: true - name: title in: query type: string description: Only extract the file with the given title - name: digest in: query type: string description: Only extract the file with the given digest - name: excludeTitle in: query type: boolean description: When extracting a single file from an artifact, don't use the files title as the file name in the tar archive - name: libpod-artifacts-name-json path: /libpod/artifacts/{name}/json operations: - name: artifactinspectlibpod method: GET description: Inspect an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Name or ID of the artifact required: true - name: libpod-artifacts-name-push path: /libpod/artifacts/{name}/push operations: - name: artifactpushlibpod method: POST description: Push an artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag) required: true - 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 (e.g., 10s) - name: tlsVerify in: query type: boolean description: Require TLS verification - name: X-Registry-Auth in: header type: string description: base-64 encoded auth config. exposes: - type: rest namespace: podman-artifacts-rest port: 8080 description: REST adapter for supports a RESTful API for the Libpod library — artifacts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/libpod/artifacts/add name: libpod-artifacts-add description: REST surface for libpod-artifacts-add. operations: - method: POST name: artifactaddlibpod description: Add a file as an artifact call: podman-artifacts.artifactaddlibpod with: name: rest.name fileName: rest.fileName fileMIMEType: rest.fileMIMEType annotations: rest.annotations artifactMIMEType: rest.artifactMIMEType append: rest.append replace: rest.replace inputStream: rest.inputStream outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/json name: libpod-artifacts-json description: REST surface for libpod-artifacts-json. operations: - method: GET name: artifactlistlibpod description: List artifacts call: podman-artifacts.artifactlistlibpod outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/local/add name: libpod-artifacts-local-add description: REST surface for libpod-artifacts-local-add. operations: - method: POST name: artifactlocallibpod description: Add a local file as an artifact call: podman-artifacts.artifactlocallibpod with: name: rest.name path: rest.path fileName: rest.fileName fileMIMEType: rest.fileMIMEType annotations: rest.annotations artifactMIMEType: rest.artifactMIMEType append: rest.append replace: rest.replace outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/pull name: libpod-artifacts-pull description: REST surface for libpod-artifacts-pull. operations: - method: POST name: artifactpulllibpod description: Pull an artifact call: podman-artifacts.artifactpulllibpod with: name: rest.name retry: rest.retry retryDelay: rest.retryDelay tlsVerify: rest.tlsVerify X-Registry-Auth: rest.X-Registry-Auth outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/remove name: libpod-artifacts-remove description: REST surface for libpod-artifacts-remove. operations: - method: DELETE name: artifactdeletealllibpod description: Remove one or more artifacts call: podman-artifacts.artifactdeletealllibpod with: artifacts: rest.artifacts all: rest.all ignore: rest.ignore outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/{name} name: libpod-artifacts-name description: REST surface for libpod-artifacts-name. operations: - method: DELETE name: artifactdeletelibpod description: Remove an artifact call: podman-artifacts.artifactdeletelibpod with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/{name}/extract name: libpod-artifacts-name-extract description: REST surface for libpod-artifacts-name-extract. operations: - method: GET name: artifactextractlibpod description: Extract an artifacts contents call: podman-artifacts.artifactextractlibpod with: name: rest.name title: rest.title digest: rest.digest excludeTitle: rest.excludeTitle outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/{name}/json name: libpod-artifacts-name-json description: REST surface for libpod-artifacts-name-json. operations: - method: GET name: artifactinspectlibpod description: Inspect an artifact call: podman-artifacts.artifactinspectlibpod with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/libpod/artifacts/{name}/push name: libpod-artifacts-name-push description: REST surface for libpod-artifacts-name-push. operations: - method: POST name: artifactpushlibpod description: Push an artifact call: podman-artifacts.artifactpushlibpod with: name: rest.name retry: rest.retry retryDelay: rest.retryDelay tlsVerify: rest.tlsVerify X-Registry-Auth: rest.X-Registry-Auth outputParameters: - type: object mapping: $. - type: mcp namespace: podman-artifacts-mcp port: 9090 transport: http description: MCP adapter for supports a RESTful API for the Libpod library — artifacts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: add-file-artifact description: Add a file as an artifact hints: readOnly: false destructive: false idempotent: false call: podman-artifacts.artifactaddlibpod with: name: tools.name fileName: tools.fileName fileMIMEType: tools.fileMIMEType annotations: tools.annotations artifactMIMEType: tools.artifactMIMEType append: tools.append replace: tools.replace inputStream: tools.inputStream outputParameters: - type: object mapping: $. - name: list-artifacts description: List artifacts hints: readOnly: true destructive: false idempotent: true call: podman-artifacts.artifactlistlibpod outputParameters: - type: object mapping: $. - name: add-local-file-artifact description: Add a local file as an artifact hints: readOnly: false destructive: false idempotent: false call: podman-artifacts.artifactlocallibpod with: name: tools.name path: tools.path fileName: tools.fileName fileMIMEType: tools.fileMIMEType annotations: tools.annotations artifactMIMEType: tools.artifactMIMEType append: tools.append replace: tools.replace outputParameters: - type: object mapping: $. - name: pull-artifact description: Pull an artifact hints: readOnly: false destructive: false idempotent: false call: podman-artifacts.artifactpulllibpod with: name: tools.name retry: tools.retry retryDelay: tools.retryDelay tlsVerify: tools.tlsVerify X-Registry-Auth: tools.X-Registry-Auth outputParameters: - type: object mapping: $. - name: remove-one-more-artifacts description: Remove one or more artifacts hints: readOnly: false destructive: true idempotent: true call: podman-artifacts.artifactdeletealllibpod with: artifacts: tools.artifacts all: tools.all ignore: tools.ignore outputParameters: - type: object mapping: $. - name: remove-artifact description: Remove an artifact hints: readOnly: false destructive: true idempotent: true call: podman-artifacts.artifactdeletelibpod with: name: tools.name outputParameters: - type: object mapping: $. - name: extract-artifacts-contents description: Extract an artifacts contents hints: readOnly: true destructive: false idempotent: true call: podman-artifacts.artifactextractlibpod with: name: tools.name title: tools.title digest: tools.digest excludeTitle: tools.excludeTitle outputParameters: - type: object mapping: $. - name: inspect-artifact description: Inspect an artifact hints: readOnly: true destructive: false idempotent: true call: podman-artifacts.artifactinspectlibpod with: name: tools.name outputParameters: - type: object mapping: $. - name: push-artifact description: Push an artifact hints: readOnly: false destructive: false idempotent: false call: podman-artifacts.artifactpushlibpod with: name: tools.name retry: tools.retry retryDelay: tools.retryDelay tlsVerify: tools.tlsVerify X-Registry-Auth: tools.X-Registry-Auth outputParameters: - type: object mapping: $.