github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/pkg/api/server/register_volumes.go (about) 1 package server 2 3 import ( 4 "net/http" 5 6 "github.com/containers/libpod/pkg/api/handlers/libpod" 7 "github.com/gorilla/mux" 8 ) 9 10 func (s *APIServer) registerVolumeHandlers(r *mux.Router) error { 11 // swagger:operation POST /libpod/volumes/create volumes createVolume 12 // --- 13 // summary: Create a volume 14 // parameters: 15 // - in: body 16 // name: create 17 // description: attributes for creating a container 18 // schema: 19 // $ref: "#/definitions/VolumeCreate" 20 // produces: 21 // - application/json 22 // responses: 23 // '201': 24 // $ref: "#/responses/VolumeCreateResponse" 25 // '500': 26 // "$ref": "#/responses/InternalError" 27 r.Handle(VersionedPath("/libpod/volumes/create"), s.APIHandler(libpod.CreateVolume)).Methods(http.MethodPost) 28 // swagger:operation GET /libpod/volumes/json volumes listVolumes 29 // --- 30 // summary: List volumes 31 // description: Returns a list of networks 32 // produces: 33 // - application/json 34 // parameters: 35 // - in: query 36 // name: filters 37 // type: string 38 // description: | 39 // JSON encoded value of the filters (a map[string][]string) to process on the networks list. Available filters: 40 // - driver=<volume-driver-name> Matches volumes based on their driver. 41 // - label=<key> or label=<key>:<value> Matches volumes based on the presence of a label alone or a label and a value. 42 // - name=<volume-name> Matches all of volume name. 43 // - opt=<driver-option> Matches a storage driver options 44 // responses: 45 // '200': 46 // "$ref": "#/responses/VolumeList" 47 // '500': 48 // "$ref": "#/responses/InternalError" 49 r.Handle(VersionedPath("/libpod/volumes/json"), s.APIHandler(libpod.ListVolumes)).Methods(http.MethodGet) 50 // swagger:operation POST /libpod/volumes/prune volumes pruneVolumes 51 // --- 52 // summary: Prune volumes 53 // produces: 54 // - application/json 55 // responses: 56 // '200': 57 // "$ref": "#/responses/VolumePruneResponse" 58 // '500': 59 // "$ref": "#/responses/InternalError" 60 r.Handle(VersionedPath("/libpod/volumes/prune"), s.APIHandler(libpod.PruneVolumes)).Methods(http.MethodPost) 61 // swagger:operation GET /libpod/volumes/{name}/json volumes inspectVolume 62 // --- 63 // summary: Inspect volume 64 // parameters: 65 // - in: path 66 // name: name 67 // type: string 68 // required: true 69 // description: the name or ID of the volume 70 // produces: 71 // - application/json 72 // responses: 73 // '200': 74 // "$ref": "#/responses/VolumeCreateResponse" 75 // '404': 76 // "$ref": "#/responses/NoSuchVolume" 77 // '500': 78 // "$ref": "#/responses/InternalError" 79 r.Handle(VersionedPath("/libpod/volumes/{name}/json"), s.APIHandler(libpod.InspectVolume)).Methods(http.MethodGet) 80 // swagger:operation DELETE /libpod/volumes/{name} volumes removeVolume 81 // --- 82 // summary: Remove volume 83 // parameters: 84 // - in: path 85 // name: name 86 // type: string 87 // required: true 88 // description: the name or ID of the volume 89 // - in: query 90 // name: force 91 // type: boolean 92 // description: force removal 93 // produces: 94 // - application/json 95 // responses: 96 // 204: 97 // description: no error 98 // 404: 99 // $ref: "#/responses/NoSuchVolume" 100 // 409: 101 // description: Volume is in use and cannot be removed 102 // 500: 103 // $ref: "#/responses/InternalError" 104 r.Handle(VersionedPath("/libpod/volumes/{name}"), s.APIHandler(libpod.RemoveVolume)).Methods(http.MethodDelete) 105 return nil 106 }