OpenAPI Specification
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