Zot

Zot Blobs API

The Blobs API from Zot — 3 operation(s) for blobs.

OpenAPI Specification

zot-blobs-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  contact: {}
  description: APIs for Open Container Initiative Distribution Specification
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Open Container Initiative Distribution Specification Blobs API
  version: v1.1.1
tags:
- name: Blobs
paths:
  /v2/{name}/blobs/{digest}:
    delete:
      consumes:
      - application/json
      description: Delete an image's blob/layer given a digest
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: blob/layer digest
        in: path
        name: digest
        required: true
        type: string
      produces:
      - application/json
      responses:
        '202':
          description: accepted
      summary: Delete image blob/layer
      tags:
      - Blobs
    get:
      consumes:
      - application/json
      description: Get an image's blob/layer given a digest
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: blob/layer digest
        in: path
        name: digest
        required: true
        type: string
      produces:
      - application/vnd.oci.image.layer.v1.tar+gzip
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/api.ImageManifest'
      summary: Get image blob/layer
      tags:
      - Blobs
    head:
      consumes:
      - application/json
      description: Check an image's blob/layer given a digest
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: blob/layer digest
        in: path
        name: digest
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          headers:
            Docker-Content-Digest:
              description: Manifest digest of the content
              type: string
          schema:
            $ref: '#/definitions/api.ImageManifest'
      summary: Check image blob/layer
      tags:
      - Blobs
  /v2/{name}/blobs/uploads:
    post:
      consumes:
      - application/json
      description: Create a new image blob/layer upload
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        '202':
          description: accepted
          headers:
            Location:
              description: /v2/{name}/blobs/uploads/{session_id}
              type: string
            Range:
              description: 0-0
              type: string
        '401':
          description: unauthorized
          schema:
            type: string
        '404':
          description: not found
          schema:
            type: string
        '500':
          description: internal server error
          schema:
            type: string
      summary: Create image blob/layer upload
      tags:
      - Blobs
  /v2/{name}/blobs/uploads/{session_id}:
    delete:
      consumes:
      - application/json
      description: Delete an image's blob/layer given a digest
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: upload session_id
        in: path
        name: session_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '204':
          description: no content
        '404':
          description: not found
          schema:
            type: string
        '500':
          description: internal server error
          schema:
            type: string
      summary: Delete image blob/layer
      tags:
      - Blobs
    get:
      consumes:
      - application/json
      description: Get an image's blob/layer upload given a session_id
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: upload session_id
        in: path
        name: session_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '204':
          description: no content
          headers:
            Location:
              description: /v2/{name}/blobs/uploads/{session_id}
              type: string
            Range:
              description: 0-128
              type: string
        '400':
          description: bad request
          schema:
            type: string
        '404':
          description: not found
          schema:
            type: string
        '500':
          description: internal server error
          schema:
            type: string
      summary: Get image blob/layer upload
      tags:
      - Blobs
    patch:
      consumes:
      - application/json
      description: Resume an image's blob/layer upload given an session_id
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: upload session_id
        in: path
        name: session_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '202':
          description: accepted
          headers:
            Blob-Upload-UUID:
              description: Opaque blob upload session identifier
              type: string
            Location:
              description: /v2/{name}/blobs/uploads/{session_id}
              type: string
            Range:
              description: 0-128
              type: string
        '400':
          description: bad request
          schema:
            type: string
        '404':
          description: not found
          schema:
            type: string
        '416':
          description: range not satisfiable
          schema:
            type: string
        '500':
          description: internal server error
          schema:
            type: string
      summary: Resume image blob/layer upload
      tags:
      - Blobs
    put:
      consumes:
      - application/json
      description: Update and finish an image's blob/layer upload given a digest
      parameters:
      - description: repository name
        in: path
        name: name
        required: true
        type: string
      - description: upload session_id
        in: path
        name: session_id
        required: true
        type: string
      - description: blob/layer digest
        in: query
        name: digest
        required: true
        type: string
      produces:
      - application/json
      responses:
        '201':
          description: created
          headers:
            Docker-Content-Digest:
              description: Digest of the committed blob
              type: string
            Location:
              description: /v2/{name}/blobs/{digest}
              type: string
        '400':
          description: bad request
          schema:
            type: string
        '404':
          description: not found
          schema:
            type: string
        '416':
          description: range not satisfiable
          schema:
            type: string
        '500':
          description: internal server error
          schema:
            type: string
      summary: Update image blob/layer upload
      tags:
      - Blobs
definitions:
  api.ImageManifest:
    properties:
      annotations:
        additionalProperties:
          type: string
        description: Annotations contains arbitrary metadata for the image manifest.
        type: object
      artifactType:
        description: ArtifactType specifies the IANA media type of artifact when the manifest is used for an artifact.
        type: string
      config:
        allOf:
        - $ref: '#/definitions/v1.Descriptor'
        description: 'Config references a configuration object for a container, by digest.

          The referenced configuration object is a JSON blob that the runtime uses to set up the container.'
      layers:
        description: Layers is an indexed list of layers referenced by the manifest.
        items:
          $ref: '#/definitions/v1.Descriptor'
        type: array
      mediaType:
        description: MediaType specifies the type of this document data structure e.g. `application/vnd.oci.image.manifest.v1+json`
        type: string
      schemaVersion:
        description: SchemaVersion is the image manifest schema that this image follows
        type: integer
      subject:
        allOf:
        - $ref: '#/definitions/v1.Descriptor'
        description: Subject is an optional link from the image manifest to another manifest forming an association between the image manifest and the other manifest.
    type: object
  v1.Descriptor:
    properties:
      annotations:
        additionalProperties:
          type: string
        description: Annotations contains arbitrary metadata relating to the targeted content.
        type: object
      artifactType:
        description: ArtifactType is the IANA media type of this artifact.
        type: string
      data:
        description: 'Data is an embedding of the targeted content. This is encoded as a base64

          string when marshalled to JSON (automatically, by encoding/json). If

          present, Data can be used directly to avoid fetching the targeted content.'
        items:
          type: integer
        type: array
      digest:
        description: Digest is the digest of the targeted content.
        type: string
      mediaType:
        description: MediaType is the media type of the object this schema refers to.
        type: string
      platform:
        allOf:
        - $ref: '#/definitions/v1.Platform'
        description: 'Platform describes the platform which the image in the manifest runs on.


          This should only be used when referring to a manifest.'
      size:
        description: Size specifies the size in bytes of the blob.
        type: integer
      urls:
        description: URLs specifies a list of URLs from which this object MAY be downloaded
        items:
          type: string
        type: array
    type: object
  v1.Platform:
    properties:
      architecture:
        description: 'Architecture field specifies the CPU architecture, for example

          `amd64` or `ppc64le`.'
        type: string
      os:
        description: OS specifies the operating system, for example `linux` or `windows`.
        type: string
      os.features:
        description: 'OSFeatures is an optional field specifying an array of strings,

          each listing a required OS feature (for example on Windows `win32k`).'
        items:
          type: string
        type: array
      os.version:
        description: 'OSVersion is an optional field specifying the operating system

          version, for example on Windows `10.0.14393.1066`.'
        type: string
      variant:
        description: 'Variant is an optional field specifying a variant of the CPU, for

          example `v7` to specify ARMv7 when architecture is `arm`.'
        type: string
    type: object