added manifest api description
This commit is contained in:
+1
-1
@@ -376,7 +376,7 @@ SWAG_OUTDIR = ./
|
||||
SWAG_OPTS = --parseDependency \
|
||||
--parseDepth 3 \
|
||||
--exclude pkg,vendor \
|
||||
--outputTypes yaml \
|
||||
--outputTypes yaml,json \
|
||||
--output $(SWAG_OUTDIR)
|
||||
|
||||
apidoc:
|
||||
|
||||
+1
-1
@@ -546,7 +546,7 @@ SWAG_OUTDIR = ./
|
||||
SWAG_OPTS = --parseDependency \
|
||||
--parseDepth 3 \
|
||||
--exclude pkg,vendor \
|
||||
--outputTypes yaml \
|
||||
--outputTypes yaml,json \
|
||||
--output $(SWAG_OUTDIR)
|
||||
|
||||
all: all-recursive
|
||||
|
||||
@@ -5,6 +5,6 @@ const (
|
||||
rundir = "/var/run/mstore"
|
||||
logdir = "/var/log/mstore"
|
||||
datadir = "/var/lib/mstore"
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
srvname = "mstored"
|
||||
)
|
||||
|
||||
+91
-3
@@ -11,6 +11,19 @@ import (
|
||||
"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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
reference, _ := rctx.GetSubpath("reference")
|
||||
@@ -47,7 +60,18 @@ func (hand *Handler) ManifestExists(rctx *router.Context) {
|
||||
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) {
|
||||
|
||||
//hand.DumpHeaders("PutManifest headers", rctx)
|
||||
@@ -87,7 +111,19 @@ func (hand *Handler) PutManifest(rctx *router.Context) {
|
||||
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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
reference, _ := rctx.GetSubpath("reference")
|
||||
@@ -129,7 +165,16 @@ func (hand *Handler) GetManifest(rctx *router.Context) {
|
||||
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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
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>?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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
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?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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
params := &imageoper.GetTagsParams{
|
||||
@@ -214,6 +282,16 @@ func (hand *Handler) GetTags(rctx *router.Context) {
|
||||
}
|
||||
|
||||
// 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) {
|
||||
params := &imageoper.ListManifestsParams{}
|
||||
// Rigth checking
|
||||
@@ -237,6 +315,16 @@ func (hand *Handler) ListManifests(rctx *router.Context) {
|
||||
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) {
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
params := &imageoper.CheckImagesParams{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# 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,
|
||||
@@ -600,8 +600,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='mstore'
|
||||
PACKAGE_TARNAME='mstore'
|
||||
PACKAGE_VERSION='0.2.4'
|
||||
PACKAGE_STRING='mstore 0.2.4'
|
||||
PACKAGE_VERSION='0.2.5'
|
||||
PACKAGE_STRING='mstore 0.2.5'
|
||||
PACKAGE_BUGREPORT=''
|
||||
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.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
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]...
|
||||
|
||||
@@ -1350,7 +1350,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of mstore 0.2.4:";;
|
||||
short | recursive ) echo "Configuration of mstore 0.2.5:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1437,7 +1437,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
mstore configure 0.2.4
|
||||
mstore configure 0.2.5
|
||||
generated by GNU Autoconf 2.72
|
||||
|
||||
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
@@ -1474,7 +1474,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
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
|
||||
|
||||
$ $0$ac_configure_args_raw
|
||||
@@ -2613,7 +2613,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='mstore'
|
||||
VERSION='0.2.4'
|
||||
VERSION='0.2.5'
|
||||
|
||||
|
||||
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
|
||||
# values after options handling.
|
||||
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
|
||||
|
||||
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
|
||||
ac_cs_config='$ac_cs_config_escaped'
|
||||
ac_cs_version="\\
|
||||
mstore config.status 0.2.4
|
||||
mstore config.status 0.2.5
|
||||
configured by $0, generated by GNU Autoconf 2.72,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
AC_INIT([mstore],[0.2.4])
|
||||
AC_INIT([mstore],[0.2.5])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects tar-pax])
|
||||
AC_PREFIX_DEFAULT(/usr/local)
|
||||
|
||||
|
||||
+734
@@ -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
@@ -27,6 +27,39 @@ definitions:
|
||||
updatedBy:
|
||||
type: string
|
||||
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
|
||||
info:
|
||||
contact:
|
||||
@@ -40,6 +73,249 @@ info:
|
||||
title: Service API
|
||||
version: "1.0"
|
||||
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}:
|
||||
delete:
|
||||
description: Delete collections
|
||||
|
||||
Reference in New Issue
Block a user