added manifest api description

This commit is contained in:
2026-04-14 18:54:57 +02:00
parent cb2bc53b77
commit 54af4c2112
8 changed files with 1116 additions and 18 deletions
+1 -1
View File
@@ -376,7 +376,7 @@ SWAG_OUTDIR = ./
SWAG_OPTS = --parseDependency \ SWAG_OPTS = --parseDependency \
--parseDepth 3 \ --parseDepth 3 \
--exclude pkg,vendor \ --exclude pkg,vendor \
--outputTypes yaml \ --outputTypes yaml,json \
--output $(SWAG_OUTDIR) --output $(SWAG_OUTDIR)
apidoc: apidoc:
+1 -1
View File
@@ -546,7 +546,7 @@ SWAG_OUTDIR = ./
SWAG_OPTS = --parseDependency \ SWAG_OPTS = --parseDependency \
--parseDepth 3 \ --parseDepth 3 \
--exclude pkg,vendor \ --exclude pkg,vendor \
--outputTypes yaml \ --outputTypes yaml,json \
--output $(SWAG_OUTDIR) --output $(SWAG_OUTDIR)
all: all-recursive all: all-recursive
+2 -2
View File
@@ -5,6 +5,6 @@ const (
rundir = "/var/run/mstore" rundir = "/var/run/mstore"
logdir = "/var/log/mstore" logdir = "/var/log/mstore"
datadir = "/var/lib/mstore" datadir = "/var/lib/mstore"
version = "0.2.4" version = "0.2.5"
srvname = "mstored" srvname = "mstored"
) )
+91 -3
View File
@@ -11,6 +11,19 @@ import (
"mstore/pkg/terms" "mstore/pkg/terms"
) )
// GetProperty godoc
//
// @Summary Get manifest info
// @Description Get manifest info
// @Tags manifest
// @Param name path string true "Manifest path"
// @Param reference path string true "Manifest tag"
// @Success 200
// @Failure 404,405,500
// @Router /v2/{name}/manifests/{reference} [HEAD]
// @Header 200 {string} Content-Length "Manifest size"
// @Header 200 {string} Content-Type "Manifest type"
// @Header 200 {string} Docker-Content-Digest "Manigest digest"
func (hand *Handler) ManifestExists(rctx *router.Context) { func (hand *Handler) ManifestExists(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
reference, _ := rctx.GetSubpath("reference") reference, _ := rctx.GetSubpath("reference")
@@ -47,7 +60,18 @@ func (hand *Handler) ManifestExists(rctx *router.Context) {
rctx.SetStatus(code) rctx.SetStatus(code)
} }
// PUT /v2/<name>/manifests/<reference> 201 404 // GetProperty godoc
//
// @Summary Put manifest
// @Description Put manifest
// @Tags manifest
// @Param name path string true "Manifest path"
// @Param reference path string true "Manifest tag"
// @Param Content-Length header string true "Manifest size"
// @Param Content-Type header string true "Manifest type"
// @Success 200
// @Failure 404,405,500
// @Router /v2/{name}/manifests/{reference} [PUT]
func (hand *Handler) PutManifest(rctx *router.Context) { func (hand *Handler) PutManifest(rctx *router.Context) {
//hand.DumpHeaders("PutManifest headers", rctx) //hand.DumpHeaders("PutManifest headers", rctx)
@@ -87,7 +111,19 @@ func (hand *Handler) PutManifest(rctx *router.Context) {
rctx.SetStatus(code) rctx.SetStatus(code)
} }
// GET /v2/<name>/manifests/<reference> 200 404 // GetProperty godoc
//
// @Summary Get manifest
// @Description Get manifest
// @Tags manifest
// @Param name path string true "Manifest path"
// @Param reference path string true "Manifest tag"
// @Success 200
// @Failure 404,405,500
// @Router /v2/{name}/manifests/{reference} [GET]
// @Header 200 {string} Content-Length "Manifest size"
// @Header 200 {string} Content-Type "Manifest type"
// @Header 200 {string} Docker-Content-Digest "Manigest digest"
func (hand *Handler) GetManifest(rctx *router.Context) { func (hand *Handler) GetManifest(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
reference, _ := rctx.GetSubpath("reference") reference, _ := rctx.GetSubpath("reference")
@@ -129,7 +165,16 @@ func (hand *Handler) GetManifest(rctx *router.Context) {
rctx.SetStatus(code) rctx.SetStatus(code)
} }
// DELETE /v2/<name>/manifests/<reference> 200 404 // GetProperty godoc
//
// @Summary Delete manifest
// @Description Delete manifest
// @Tags manifest
// @Param name path string true "Manifest path"
// @Param reference path string true "Manifest tag"
// @Success 202
// @Failure 404,405,500
// @Router /v2/{name}/manifests/{reference} [DELETE]
func (hand *Handler) DeleteManifest(rctx *router.Context) { func (hand *Handler) DeleteManifest(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
reference, _ := rctx.GetSubpath("reference") reference, _ := rctx.GetSubpath("reference")
@@ -160,6 +205,18 @@ func (hand *Handler) DeleteManifest(rctx *router.Context) {
// GET /v2/<name>/referrers/<digest> 200 404/400 // GET /v2/<name>/referrers/<digest> 200 404/400
// GET /v2/<name>/referrers/<digest>?artifactType=<artifactType> 200 404/400 // GET /v2/<name>/referrers/<digest>?artifactType=<artifactType> 200 404/400
// GetProperty godoc
//
// @Summary Get manifest referer
// @Description Get manifest referer
// @Tags manifest
// @Param name path string true "Manifest path"
// @Param digest path string true "Manifest digest"
// @Failure 404,405,500
// @Router /v2/{name}/referrers/{digest} [GET]
// @Success 200 {object} imageoper.GetRefererResult.Reference
// @Produce application/json
func (hand *Handler) GetReferer(rctx *router.Context) { func (hand *Handler) GetReferer(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
digest, _ := rctx.GetSubpath("digest") digest, _ := rctx.GetSubpath("digest")
@@ -188,6 +245,17 @@ func (hand *Handler) GetReferer(rctx *router.Context) {
// GET /v2/<name>/tags/list 200 404 // GET /v2/<name>/tags/list 200 404
// GET /v2/<name>/tags/list?n=<integer>&last=<integer> // GET /v2/<name>/tags/list?n=<integer>&last=<integer>
// GetProperty godoc
//
// @Summary List manifest tags
// @Description List manifest tags
// @Tags manifest
// @Param name path string true "Manifest path"
// @Failure 404,405,500
// @Router /v2/{name}/tags/list [GET]
// @Success 200 {object} imageoper.GetTagsResult.TagDescr
// @Produce application/json
func (hand *Handler) GetTags(rctx *router.Context) { func (hand *Handler) GetTags(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
params := &imageoper.GetTagsParams{ params := &imageoper.GetTagsParams{
@@ -214,6 +282,16 @@ func (hand *Handler) GetTags(rctx *router.Context) {
} }
// GET /v2/_catalog?n=1000 200 404 // GET /v2/_catalog?n=1000 200 404
// GetProperty godoc
//
// @Summary List manifests
// @Description List manifests
// @Tags manifest
// @Failure 404,405,500
// @Router /v2/_catalog [GET]
// @Success 200 {object} imageoper.ListManifestsResult.Repositories
// @Produce application/json
func (hand *Handler) ListManifests(rctx *router.Context) { func (hand *Handler) ListManifests(rctx *router.Context) {
params := &imageoper.ListManifestsParams{} params := &imageoper.ListManifestsParams{}
// Rigth checking // Rigth checking
@@ -237,6 +315,16 @@ func (hand *Handler) ListManifests(rctx *router.Context) {
rctx.SendJSON(code, res.Repositories) rctx.SendJSON(code, res.Repositories)
} }
// GetProperty godoc
//
// @Summary Check images
// @Description Check images
// @Tags manifest
// @Failure 404,405,500
// @Router /v2/checker/{name} [POST]
// @Router /v2/checker/ [POST]
// @Success 200 {object} imageoper.CheckImagesResult.Repositories
// @Produce application/json
func (hand *Handler) CheckImages(rctx *router.Context) { func (hand *Handler) CheckImages(rctx *router.Context) {
name, _ := rctx.GetSubpath("name") name, _ := rctx.GetSubpath("name")
params := &imageoper.CheckImagesParams{ params := &imageoper.CheckImagesParams{
Vendored
+10 -10
View File
@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for mstore 0.2.4. # Generated by GNU Autoconf 2.72 for mstore 0.2.5.
# #
# #
# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
@@ -600,8 +600,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='mstore' PACKAGE_NAME='mstore'
PACKAGE_TARNAME='mstore' PACKAGE_TARNAME='mstore'
PACKAGE_VERSION='0.2.4' PACKAGE_VERSION='0.2.5'
PACKAGE_STRING='mstore 0.2.4' PACKAGE_STRING='mstore 0.2.5'
PACKAGE_BUGREPORT='' PACKAGE_BUGREPORT=''
PACKAGE_URL='' PACKAGE_URL=''
@@ -1279,7 +1279,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
'configure' configures mstore 0.2.4 to adapt to many kinds of systems. 'configure' configures mstore 0.2.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1350,7 +1350,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of mstore 0.2.4:";; short | recursive ) echo "Configuration of mstore 0.2.5:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@@ -1437,7 +1437,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
mstore configure 0.2.4 mstore configure 0.2.5
generated by GNU Autoconf 2.72 generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc. Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1474,7 +1474,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by mstore $as_me 0.2.4, which was It was created by mstore $as_me 0.2.5, which was
generated by GNU Autoconf 2.72. Invocation command line was generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@@ -2613,7 +2613,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='mstore' PACKAGE='mstore'
VERSION='0.2.4' VERSION='0.2.5'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -4501,7 +4501,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by mstore $as_me 0.2.4, which was This file was extended by mstore $as_me 0.2.5, which was
generated by GNU Autoconf 2.72. Invocation command line was generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@@ -4556,7 +4556,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
mstore config.status 0.2.4 mstore config.status 0.2.5
configured by $0, generated by GNU Autoconf 2.72, configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
+1 -1
View File
@@ -1,4 +1,4 @@
AC_INIT([mstore],[0.2.4]) AC_INIT([mstore],[0.2.5])
AM_INIT_AUTOMAKE([foreign subdir-objects tar-pax]) AM_INIT_AUTOMAKE([foreign subdir-objects tar-pax])
AC_PREFIX_DEFAULT(/usr/local) AC_PREFIX_DEFAULT(/usr/local)
+734
View File
@@ -0,0 +1,734 @@
{
"schemes": [
"http",
"https"
],
"swagger": "2.0",
"info": {
"description": "API documentation",
"title": "Service API",
"contact": {
"name": "API Support",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0"
},
"host": "localhost",
"basePath": "/",
"paths": {
"/v2/_catalog": {
"get": {
"description": "List manifests",
"produces": [
"application/json"
],
"tags": [
"manifest"
],
"summary": "List manifests",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/mstore_app_imageoper.ListManifestsResult"
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v2/checker/": {
"post": {
"description": "Check images",
"produces": [
"application/json"
],
"tags": [
"manifest"
],
"summary": "Check images",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/mstore_app_imageoper.CheckImagesResult"
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v2/checker/{name}": {
"post": {
"description": "Check images",
"produces": [
"application/json"
],
"tags": [
"manifest"
],
"summary": "Check images",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/mstore_app_imageoper.CheckImagesResult"
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v2/{name}/manifests/{reference}": {
"get": {
"description": "Get manifest",
"tags": [
"manifest"
],
"summary": "Get manifest",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest tag",
"name": "reference",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"headers": {
"Content-Length": {
"type": "string",
"description": "Manifest size"
},
"Content-Type": {
"type": "string",
"description": "Manifest type"
},
"Docker-Content-Digest": {
"type": "string",
"description": "Manigest digest"
}
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
},
"put": {
"description": "Put manifest",
"tags": [
"manifest"
],
"summary": "Put manifest",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest tag",
"name": "reference",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest size",
"name": "Content-Length",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Manifest type",
"name": "Content-Type",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
},
"delete": {
"description": "Delete manifest",
"tags": [
"manifest"
],
"summary": "Delete manifest",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest tag",
"name": "reference",
"in": "path",
"required": true
}
],
"responses": {
"202": {
"description": "Accepted"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
},
"head": {
"description": "Get manifest info",
"tags": [
"manifest"
],
"summary": "Get manifest info",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest tag",
"name": "reference",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"headers": {
"Content-Length": {
"type": "string",
"description": "Manifest size"
},
"Content-Type": {
"type": "string",
"description": "Manifest type"
},
"Docker-Content-Digest": {
"type": "string",
"description": "Manigest digest"
}
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v2/{name}/referrers/{digest}": {
"get": {
"description": "Get manifest referer",
"produces": [
"application/json"
],
"tags": [
"manifest"
],
"summary": "Get manifest referer",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Manifest digest",
"name": "digest",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/mstore_app_imageoper.GetRefererResult"
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v2/{name}/tags/list": {
"get": {
"description": "List manifest tags",
"produces": [
"application/json"
],
"tags": [
"manifest"
],
"summary": "List manifest tags",
"parameters": [
{
"type": "string",
"description": "Manifest path",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/mstore_app_imageoper.GetTagsResult"
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/v3/collection/{path}": {
"delete": {
"description": "Delete collections",
"tags": [
"file"
],
"summary": "Delete collections",
"parameters": [
{
"type": "string",
"description": "Collection path",
"name": "path",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
}
},
"/v3/collections/{path}": {
"get": {
"description": "List collections",
"produces": [
"application/json"
],
"tags": [
"file"
],
"summary": "List collections",
"parameters": [
{
"type": "string",
"description": "Collection path",
"name": "path",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
}
},
"/v3/file/{filepath}": {
"get": {
"description": "Get file",
"produces": [
"application/octet-stream",
"application/vnd.cncf.helm.chart.content.v1.tar+gzip"
],
"tags": [
"file"
],
"summary": "Get file",
"parameters": [
{
"type": "string",
"description": "File path",
"name": "filepath",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
},
"put": {
"description": "Store file",
"tags": [
"file"
],
"summary": "Store file",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "File size",
"name": "Content-Size",
"in": "header",
"required": true
},
{
"type": "string",
"description": "File type",
"name": "Content-Type",
"in": "header",
"required": true
},
{
"type": "string",
"description": "File path",
"name": "filepath",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
},
"delete": {
"description": "Delete file",
"tags": [
"file"
],
"summary": "Delete file",
"parameters": [
{
"type": "string",
"description": "File path",
"name": "filepath",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
},
"head": {
"description": "Get file info",
"tags": [
"file"
],
"summary": "Get file info",
"parameters": [
{
"type": "string",
"description": "File path",
"name": "filepath",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"headers": {
"Content-Collection": {
"type": "string",
"description": "File collection"
},
"Content-Digest": {
"type": "string",
"description": "File digest"
},
"Content-Name": {
"type": "string",
"description": "File name"
},
"Content-Size": {
"type": "int64",
"description": "File size"
}
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
}
},
"/v3/files/{path}": {
"get": {
"description": "List files",
"produces": [
"application/json"
],
"tags": [
"file"
],
"summary": "List files",
"parameters": [
{
"type": "string",
"description": "File path",
"name": "path",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/descr.File"
}
}
},
"404": {
"description": "Not Found"
},
"405": {
"description": "Method Not Allowed"
}
}
}
}
},
"definitions": {
"descr.File": {
"type": "object",
"properties": {
"checksum": {
"type": "string"
},
"collection": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"createdBy": {
"type": "string"
},
"helmHash": {
"type": "string"
},
"helmMeta": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"size": {
"type": "integer"
},
"type": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"updatedBy": {
"type": "string"
}
}
},
"descr.Tags": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"mstore_app_imageoper.CheckImagesResult": {
"type": "object",
"properties": {
"repositories": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"mstore_app_imageoper.GetRefererResult": {
"type": "object",
"properties": {
"reference": {
"type": "string"
}
}
},
"mstore_app_imageoper.GetTagsResult": {
"type": "object",
"properties": {
"tagDescr": {
"$ref": "#/definitions/descr.Tags"
}
}
},
"mstore_app_imageoper.ListManifestsResult": {
"type": "object",
"properties": {
"repositories": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
+276
View File
@@ -27,6 +27,39 @@ definitions:
updatedBy: updatedBy:
type: string type: string
type: object type: object
descr.Tags:
properties:
name:
type: string
tags:
items:
type: string
type: array
type: object
mstore_app_imageoper.CheckImagesResult:
properties:
repositories:
items:
type: string
type: array
type: object
mstore_app_imageoper.GetRefererResult:
properties:
reference:
type: string
type: object
mstore_app_imageoper.GetTagsResult:
properties:
tagDescr:
$ref: '#/definitions/descr.Tags'
type: object
mstore_app_imageoper.ListManifestsResult:
properties:
repositories:
items:
type: string
type: array
type: object
host: localhost host: localhost
info: info:
contact: contact:
@@ -40,6 +73,249 @@ info:
title: Service API title: Service API
version: "1.0" version: "1.0"
paths: paths:
/v2/_catalog:
get:
description: List manifests
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/mstore_app_imageoper.ListManifestsResult'
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: List manifests
tags:
- manifest
/v2/{name}/manifests/{reference}:
delete:
description: Delete manifest
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
- description: Manifest tag
in: path
name: reference
required: true
type: string
responses:
"202":
description: Accepted
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Delete manifest
tags:
- manifest
get:
description: Get manifest
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
- description: Manifest tag
in: path
name: reference
required: true
type: string
responses:
"200":
description: OK
headers:
Content-Length:
description: Manifest size
type: string
Content-Type:
description: Manifest type
type: string
Docker-Content-Digest:
description: Manigest digest
type: string
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Get manifest
tags:
- manifest
head:
description: Get manifest info
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
- description: Manifest tag
in: path
name: reference
required: true
type: string
responses:
"200":
description: OK
headers:
Content-Length:
description: Manifest size
type: string
Content-Type:
description: Manifest type
type: string
Docker-Content-Digest:
description: Manigest digest
type: string
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Get manifest info
tags:
- manifest
put:
description: Put manifest
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
- description: Manifest tag
in: path
name: reference
required: true
type: string
- description: Manifest size
in: header
name: Content-Length
required: true
type: string
- description: Manifest type
in: header
name: Content-Type
required: true
type: string
responses:
"200":
description: OK
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Put manifest
tags:
- manifest
/v2/{name}/referrers/{digest}:
get:
description: Get manifest referer
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
- description: Manifest digest
in: path
name: digest
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/mstore_app_imageoper.GetRefererResult'
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Get manifest referer
tags:
- manifest
/v2/{name}/tags/list:
get:
description: List manifest tags
parameters:
- description: Manifest path
in: path
name: name
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/mstore_app_imageoper.GetTagsResult'
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: List manifest tags
tags:
- manifest
/v2/checker/:
post:
description: Check images
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/mstore_app_imageoper.CheckImagesResult'
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Check images
tags:
- manifest
/v2/checker/{name}:
post:
description: Check images
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/mstore_app_imageoper.CheckImagesResult'
"404":
description: Not Found
"405":
description: Method Not Allowed
"500":
description: Internal Server Error
summary: Check images
tags:
- manifest
/v3/collection/{path}: /v3/collection/{path}:
delete: delete:
description: Delete collections description: Delete collections