Podman manifests API

Actions related to manifests

OpenAPI Specification

podman-manifests-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  contact:
    email: podman@lists.podman.io
    name: Podman
    url: https://podman.io/community/
  description: 'This documentation describes the Podman v2.x+ RESTful API. It consists of a Docker-compatible

    API and a Libpod API providing support for Podman’s unique features such as pods.


    To start the service and keep it running for 5,000 seconds (-t 0 runs forever):


    podman system service -t 5000 &


    You can then use cURL on the socket using requests documented below.


    NOTE: if you install the package podman-docker, it will create a symbolic

    link for /run/docker.sock to /run/podman/podman.sock


    NOTE: Some fields in the API response JSON are encoded as omitempty, which means that

    if said field has a zero value, they will not be encoded in the API response. This

    is a feature to help reduce the size of the JSON responses returned via the API.


    NOTE: Due to the limitations of [go-swagger](https://github.com/go-swagger/go-swagger),

    some field values that have a complex type show up as null in the docs as well as in the

    API responses. This is because the zero value for the field type is null. The field

    description in the docs will state what type the field is expected to be for such cases.


    See podman-system-service(1) for more information.


    Quick Examples:


    ''podman info''


    curl --unix-socket /run/podman/podman.sock http://d/v6.0.0/libpod/info


    ''podman pull quay.io/containers/podman''


    curl -XPOST --unix-socket /run/podman/podman.sock -v ''http://d/v6.0.0/images/create?fromImage=quay.io%2Fcontainers%2Fpodman''


    ''podman list images''


    curl --unix-socket /run/podman/podman.sock -v ''http://d/v6.0.0/libpod/images/json'' | jq'
  license:
    name: Apache-2.0
    url: https://opensource.org/licenses/Apache-2.0
  termsOfService: https://github.com/containers/podman/blob/913caaa9b1de2b63692c9bae15120208194c9eb3/LICENSE
  title: supports a RESTful API for the Libpod library artifacts manifests API
  version: 5.0.0
  x-logo:
  - url: https://raw.githubusercontent.com/containers/libpod/main/logo/podman-logo.png
  - altText: Podman logo
host: podman.io
basePath: /
schemes:
- http
- https
consumes:
- application/json
- application/x-tar
produces:
- application/json
- application/octet-stream
- text/plain
tags:
- description: Actions related to manifests
  name: manifests
paths:
  /libpod/manifests/{name}:
    delete:
      description: 'Delete named manifest list


        As of v4.0.0

        '
      operationId: ManifestDeleteLibpod
      parameters:
      - description: The name or ID of the  list to be deleted
        in: path
        name: name
        required: true
        type: string
      - description: Ignore if a specified manifest does not exist and do not throw an error.
        in: query
        name: ignore
        type: boolean
      produces:
      - application/json
      responses:
        '200':
          $ref: '#/responses/imagesRemoveResponseLibpod'
        '404':
          $ref: '#/responses/manifestNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Delete manifest list
      tags:
      - manifests
    post:
      description: Create a manifest list
      operationId: ManifestCreateLibpod
      parameters:
      - description: manifest list or index name to create
        in: path
        name: name
        required: true
        type: string
      - description: 'One or more names of an image or a manifest list. Repeat parameter as needed.


          Support for multiple images, as of version 4.0.0

          Alias of `image` is support for compatibility with < 4.0.0

          Response status code is 200 with < 4.0.0 for compatibility

          '
        in: query
        name: images
        required: true
        type: string
      - description: add all contents if given list
        in: query
        name: all
        type: boolean
      - description: modify an existing list if one with the desired name already exists
        in: query
        name: amend
        type: boolean
      - description: options for new manifest
        in: body
        name: options
        schema:
          $ref: '#/definitions/ManifestModifyOptions'
      produces:
      - application/json
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/IDResponse'
        '400':
          $ref: '#/responses/badParamError'
        '404':
          $ref: '#/responses/imageNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Create
      tags:
      - manifests
    put:
      description: 'Add/Remove an image(s) to a manifest list


        Note: operations are not atomic when multiple Images are provided.


        As of v4.0.0

        '
      operationId: ManifestModifyLibpod
      parameters:
      - description: the name or ID of the manifest
        in: path
        name: name
        required: true
        type: string
      - default: true
        description: Require HTTPS and verify signatures when contacting registries.
        in: query
        name: tlsVerify
        type: boolean
      - description: options for mutating a manifest
        in: body
        name: options
        required: true
        schema:
          $ref: '#/definitions/ManifestModifyOptions'
      produces:
      - application/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ManifestModifyReport'
        '400':
          $ref: '#/responses/badParamError'
        '404':
          $ref: '#/responses/manifestNotFound'
        '409':
          description: Operation had partial success, both Images and Errors may have members
          schema:
            $ref: '#/definitions/ManifestModifyReport'
        '500':
          $ref: '#/responses/internalError'
      summary: Modify manifest list
      tags:
      - manifests
  /libpod/manifests/{name}/add:
    post:
      description: 'Add an image to a manifest list


        Deprecated: As of 4.0.0 use ManifestModifyLibpod instead

        '
      operationId: ManifestAddLibpod
      parameters:
      - description: the name or ID of the manifest
        in: path
        name: name
        required: true
        type: string
      - description: options for creating a manifest
        in: body
        name: options
        schema:
          $ref: '#/definitions/ManifestAddOptions'
      produces:
      - application/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IDResponse'
        '404':
          $ref: '#/responses/manifestNotFound'
        '409':
          $ref: '#/responses/badParamError'
        '500':
          $ref: '#/responses/internalError'
      summary: Add image
      tags:
      - manifests
  /libpod/manifests/{name}/exists:
    get:
      description: 'Check if manifest list exists


        Note: There is no contract that the manifest list will exist for a follow-on operation

        '
      operationId: ManifestExistsLibpod
      parameters:
      - description: the name or ID of the manifest list
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        '204':
          description: manifest list exists
        '404':
          $ref: '#/responses/manifestNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Exists
      tags:
      - manifests
  /libpod/manifests/{name}/json:
    get:
      description: Display attributes of given manifest list
      operationId: ManifestInspectLibpod
      parameters:
      - description: the name or ID of the manifest list
        in: path
        name: name
        required: true
        type: string
      - default: true
        description: Require HTTPS and verify signatures when contacting registries.
        in: query
        name: tlsVerify
        type: boolean
      produces:
      - application/json
      responses:
        '200':
          $ref: '#/responses/manifestInspect'
        '404':
          $ref: '#/responses/manifestNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Inspect
      tags:
      - manifests
  /libpod/manifests/{name}/push:
    post:
      description: 'Push a manifest list or image index to a registry


        Deprecated: As of 4.0.0 use ManifestPushLibpod instead

        '
      operationId: ManifestPushV3Libpod
      parameters:
      - description: the name or ID of the manifest
        in: path
        name: name
        required: true
        type: string
      - description: the destination for the manifest
        in: query
        name: destination
        required: true
        type: string
      - description: push all images
        in: query
        name: all
        type: boolean
      produces:
      - application/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IDResponse'
        '400':
          $ref: '#/responses/badParamError'
        '404':
          $ref: '#/responses/manifestNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Push manifest to registry
      tags:
      - manifests
  /libpod/manifests/{name}/registry/{destination}:
    post:
      description: 'Push a manifest list or image index to the named registry


        As of v4.0.0

        '
      operationId: ManifestPushLibpod
      parameters:
      - description: the name or ID of the manifest list
        in: path
        name: name
        required: true
        type: string
      - description: add existing instances with requested compression algorithms to manifest list
        in: query
        items:
          type: string
        name: addCompression
        type: array
      - default: false
        description: Enforce compressing the layers with the specified --compression and do not reuse differently compressed blobs on the registry.
        in: query
        name: forceCompressionFormat
        type: boolean
      - description: the registry for the manifest list
        in: path
        name: destination
        required: true
        type: string
      - default: true
        description: push all images
        in: query
        name: all
        type: boolean
      - default: true
        description: Require HTTPS and verify signatures when contacting registries.
        in: query
        name: tlsVerify
        type: boolean
      - default: true
        description: silences extra stream data on push
        in: query
        name: quiet
        type: boolean
      produces:
      - application/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IDResponse'
        '400':
          $ref: '#/responses/badParamError'
        '404':
          $ref: '#/responses/manifestNotFound'
        '500':
          $ref: '#/responses/internalError'
      summary: Push manifest list to registry
      tags:
      - manifests
definitions:
  Schema2List:
    title: Schema2List is a list of platform-specific manifests.
    type: object
    x-go-package: go.podman.io/image/v5/manifest
  ImageRemoveReport:
    description: 'ImageRemoveReport is the response for removing one or more image(s) from storage

      and images what was untagged vs actually removed.'
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/domain/entities
  LibpodImagesRemoveReport:
    allOf:
    - $ref: '#/definitions/ImageRemoveReport'
    - properties:
        Errors:
          description: Image removal requires is to return data and an error.
          items:
            type: string
          type: array
      type: object
    description: 'LibpodImagesRemoveReport is the return type for image removal via the rest

      api.'
    x-go-package: go.podman.io/podman/v6/pkg/api/handlers
  ManifestModifyReport:
    properties:
      Id:
        description: Manifest List ID
        type: string
        x-go-name: ID
      errors:
        description: Errors associated with operation
        items:
          type: string
          x-go-type: error
        type: array
        x-go-name: Errors
      files:
        description: Files added to manifest list, otherwise not provided.
        items:
          type: string
        type: array
        x-go-name: Files
      images:
        description: Images added to or removed from manifest list, otherwise not provided.
        items:
          type: string
        type: array
        x-go-name: Images
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/domain/entities/types
  ErrorModel:
    description: ErrorModel is used in remote connections with podman
    properties:
      cause:
        description: API root cause formatted for automated parsing
        example: API root cause
        type: string
        x-go-name: Because
      message:
        description: human error message, formatted for a human to read
        example: human error message
        type: string
        x-go-name: Message
      response:
        description: HTTP response code
        format: int64
        minimum: 400
        type: integer
        x-go-name: ResponseCode
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/errorhandling
  IDResponse:
    properties:
      Id:
        description: The id of the newly created object.
        type: string
        x-go-name: ID
    required:
    - Id
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/domain/entities/types
  ManifestAddOptions:
    description: ManifestAddOptions provides model for adding digests to manifest list
    properties:
      all:
        description: True when operating on a list to include all images
        type: boolean
        x-go-name: All
      annotation:
        description: Annotation to add to the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: Annotation
      annotations:
        additionalProperties:
          type: string
        description: Annotations to add to the item in the manifest list by a map which is preferred over Annotation
        type: object
        x-go-name: Annotations
      arch:
        description: Arch overrides the architecture for the item in the manifest list
        type: string
        x-go-name: Arch
      features:
        description: Feature list for the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: Features
      images:
        description: Images is an optional list of image references to add to manifest list
        items:
          type: string
        type: array
        x-go-name: Images
      index_annotation:
        description: IndexAnnotation is a slice of key=value annotations to add to the manifest list itself
        items:
          type: string
        type: array
        x-go-name: IndexAnnotation
      index_annotations:
        additionalProperties:
          type: string
        description: IndexAnnotations is a map of key:value annotations to add to the manifest list itself, by a map which is preferred over IndexAnnotation
        type: object
        x-go-name: IndexAnnotations
      os:
        description: OS overrides the operating system for the item in the manifest list
        type: string
        x-go-name: OS
      os_features:
        description: OS features for the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: OSFeatures
      os_version:
        description: OSVersion overrides the operating system for the item in the manifest list
        type: string
        x-go-name: OSVersion
      subject:
        description: IndexSubject is a subject value to set in the manifest list itself
        type: string
        x-go-name: IndexSubject
      variant:
        description: Variant for the item in the manifest list
        type: string
        x-go-name: Variant
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/domain/entities
  ManifestModifyOptions:
    description: 'swagger 2.0 does not support oneOf for schema validation.


      Operation "update" uses all fields.

      Operation "remove" uses fields: Operation and Images

      Operation "annotate" uses fields: Operation and Annotations'
    properties:
      all:
        description: True when operating on a list to include all images
        type: boolean
        x-go-name: All
      annotation:
        description: Annotation to add to the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: Annotation
      annotations:
        additionalProperties:
          type: string
        description: Annotations to add to the item in the manifest list by a map which is preferred over Annotation
        type: object
        x-go-name: Annotations
      arch:
        description: Arch overrides the architecture for the item in the manifest list
        type: string
        x-go-name: Arch
      artifact_annotations:
        additionalProperties:
          type: string
        type: object
        x-go-name: ArtifactAnnotations
      artifact_config:
        type: string
        x-go-name: ArtifactConfig
      artifact_config_type:
        type: string
        x-go-name: ArtifactConfigType
      artifact_exclude_titles:
        type: boolean
        x-go-name: ArtifactExcludeTitles
      artifact_files:
        items:
          type: string
        type: array
        x-go-name: ArtifactFiles
      artifact_layer_type:
        type: string
        x-go-name: ArtifactLayerType
      artifact_subject:
        type: string
        x-go-name: ArtifactSubject
      artifact_type:
        description: 'The following are all of the fields from ManifestAddArtifactOptions.

          We can''t just embed the whole structure because it embeds a

          ManifestAnnotateOptions, which would conflict with the one that

          ManifestAddOptions embeds.'
        type: string
        x-go-name: ArtifactType
      features:
        description: Feature list for the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: Features
      images:
        description: Images is an optional list of image references to add to manifest list
        items:
          type: string
        type: array
        x-go-name: Images
      index_annotation:
        description: IndexAnnotation is a slice of key=value annotations to add to the manifest list itself
        items:
          type: string
        type: array
        x-go-name: IndexAnnotation
      index_annotations:
        additionalProperties:
          type: string
        description: IndexAnnotations is a map of key:value annotations to add to the manifest list itself, by a map which is preferred over IndexAnnotation
        type: object
        x-go-name: IndexAnnotations
      operation:
        type: string
        x-go-name: Operation
      os:
        description: OS overrides the operating system for the item in the manifest list
        type: string
        x-go-name: OS
      os_features:
        description: OS features for the item in the manifest list
        items:
          type: string
        type: array
        x-go-name: OSFeatures
      os_version:
        description: OSVersion overrides the operating system for the item in the manifest list
        type: string
        x-go-name: OSVersion
      subject:
        description: IndexSubject is a subject value to set in the manifest list itself
        type: string
        x-go-name: IndexSubject
      variant:
        description: Variant for the item in the manifest list
        type: string
        x-go-name: Variant
    title: ManifestModifyOptions provides the model for mutating a manifest
    type: object
    x-go-package: go.podman.io/podman/v6/pkg/domain/entities
responses:
  manifestNotFound:
    description: No such manifest
    schema:
      $ref: '#/definitions/ErrorModel'
  badParamError:
    description: Bad parameter in request
    schema:
      $ref: '#/definitions/ErrorModel'
  imageNotFound:
    description: No such image
    schema:
      $ref: '#/definitions/ErrorModel'
  imagesRemoveResponseLibpod:
    description: Image Remove
    schema:
      $ref: '#/definitions/LibpodImagesRemoveReport'
  internalError:
    description: Internal server error
    schema:
      $ref: '#/definitions/ErrorModel'
  manifestInspect:
    description: Inspect Manifest
    schema:
      $ref: '#/definitions/Schema2List'