Subtenant Image Repositories

Overview of all tagged images that are stored in this repository.

Note that images without a tag can also be stored in the same repository, use the manifest-list resource to fetch a list of all images stored in this repository.

Invoke the load operation

Load images from a tar archive of an OCI image layout, for example the output of 'docker save'. The archive may be gzip-compressed.

The images that are loaded are the ones listed in the layout's index.json. Their manifests and blobs must be in the archive as blobs/sha256/, as specified for an OCI image layout, and their content must match the digest. Other files in the archive, such as the manifest.json written by 'docker save', are ignored.

The archive is sent as the request body, and the input parameters as query parameters.

Requires the registry-push capability.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

query Parameters
site
string

Send the request to the specfifed site

target
string <image-string>

The repository and tag to store the image in, for example 'my/image:1.0'. If the tag is omitted 'latest' is used.

Can only be given when the archive contains a single image. If not given, the name of each image is taken from the 'io.containerd.image.name' annotation in the archive, as written by 'docker save'.

all-platforms
boolean

Must have the value true.

Load all platforms of the image, also those that no host in the system runs on.

platform
string <platform-match>

Only load platforms matching this string. For example: linux/* or */amd64 or linux/arm64/v8

platforms
Array of strings <platform-match>

Only load platforms matching these strings.

Request Body schema:
string <binary>
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/load
Response samples
images:
  - name: library/alpine:latest
    digest: sha256:5d8dea50be787ce679a676dafc6e63c4af27bc97d8cd455387b73b89b03742fa

Invoke the load-file operation

Store a file as an OCI artifact of type 'application/vnd.avassa.file.v1', for use in an application's artifact volume.

The file is sent as the request body, and the input parameters as query parameters.

Requires the registry-push capability.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

query Parameters
site
string

Send the request to the specfifed site

target
required
string <image-string>

The repository and tag to store the artifact in, for example 'my/data:1.0'. If the tag is omitted 'latest' is used.

media-type
string <media-type>
Default: "application/octet-stream"

The media type of the file.

file-name
string

The name of the file, stored in the 'org.opencontainers.image.title' annotation of the file's layer. Tools such as 'oras pull' use it as the name of the file.

file-mode
string <file-mode> ^[0-7][0-7][0-7]$

The permissions of the file, for example '644'. Stored in the 'io.avassa.file.mode' annotation of the file's layer, as four octal digits.

Request Body schema: application/octet-stream
string <binary>
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/load-file
Response samples
name: models/hello:v1
digest: sha256:1d1c8a5ea6aa4a2e6db1a5b3f31b2bfd0bd4f0c8b6e8c6c2b0d5a3f0b9e6d7c4

Invoke the load-files operation

Store the files in a tar archive as an OCI artifact of type 'application/vnd.avassa.bundle.v1', for use in an application's artifact volume. The archive may be gzip-compressed.

Each file is stored as a layer of the artifact, with the media type 'application/octet-stream', the file name in the 'org.opencontainers.image.title' annotation, and the permissions of the file in the archive in the 'io.avassa.file.mode' annotation, as octal digits. The archive may only contain regular files, not subdirectories or links. The owners of the files in the archive are not stored.

The archive is sent as the request body, and the input parameters as query parameters.

Requires the registry-push capability.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

query Parameters
site
string

Send the request to the specfifed site

target
required
string <image-string>

The repository and tag to store the artifact in, for example 'my/data:1.0'. If the tag is omitted 'latest' is used.

Request Body schema:
string <binary>
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/load-files
Response samples
name: models/bundle:v1
digest: sha256:1d1c8a5ea6aa4a2e6db1a5b3f31b2bfd0bd4f0c8b6e8c6c2b0d5a3f0b9e6d7c4

Retrieve all repositories

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

where
string

Retrieve only items matching the given expression.

See section where

site
string

Send the request to the specfifed site

keys
string <enumeration>

Retrieve only the keys for the list

Value: "true"
count
string <enumeration>

Retrieve only the number of elements in the list

Value: "true"
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

get/v1/state/tenants/{tenant-name}/image-registry/repositories
Response samples
- name: alpine
  tags:
    - tag: latest
      digest: sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad
    - tag: "3.14"
      digest: sha256:92d13cc58a46e012300ef49924edc56de5642ada25c9a457dce4a6db59892650
  

Retrieve a repository

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

repository-name
required
string <repository-string>

name of repository

query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

where
string

Retrieve only items matching the given expression.

See section where

site
string

Send the request to the specfifed site

Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

get/v1/state/tenants/{tenant-name}/image-registry/repositories/{repository-name}
Response samples
name: alpine
tags:
  - tag: latest
    digest: sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad
  - tag: "3.14"
    digest: sha256:92d13cc58a46e012300ef49924edc56de5642ada25c9a457dce4a6db59892650

Invoke the delete operation

Delete all images in this repository.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

repository-name
required
string <repository-string>

name of repository

Responses
204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/repositories/{repository-name}/delete

Invoke the create-tag operation

Create a new tag referring to the same digest as this tag refers to.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

repository-name
required
string <repository-string>

name of repository

tag
required
string <tag> ^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$

tag of tag

Request Body schema:
name
required
string <tag> ^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$

The name of the new tag.

Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/repositories/{repository-name}/tags/{tag}/create-tag
Request samples
name: v2
Response samples
digest: sha256:ff6bdca1701f3a8a67e328815ff2346b0e4067d32ec36b7992c1fdc001dc8517

Invoke the delete operation

Delete this tag and the image it refers to.

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

repository-name
required
string <repository-string>

name of repository

tag
required
string <tag> ^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$

tag of tag

Request Body schema:
tag-only
boolean
Default: false

When 'true' only the tag will be deleted (not the image).

Responses
204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/repositories/{repository-name}/tags/{tag}/delete
Request samples
tag-only: true

Invoke the inspect operation

Return the image manifest (or image index) this tag refers to, exactly as it is stored in the registry.

The response Content-Type is the media type of the manifest (e.g. application/vnd.oci.image.manifest.v1+json).

SecurityaccessToken
Request
path Parameters
tenant-name
required
string <name> ^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$

name of tenant

repository-name
required
string <repository-string>

name of repository

tag
required
string <tag> ^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$

tag of tag

query Parameters
site
string

Send the request to the specfifed site

Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/tenants/{tenant-name}/image-registry/repositories/{repository-name}/tags/{tag}/inspect
Response samples
application/json
No sample