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