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  }