mirror of https://github.com/containers/podman.git
204 lines
4.7 KiB
Go
204 lines
4.7 KiB
Go
package entities
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"github.com/containers/podman/v4/libpod/define"
|
|
docker_api_types "github.com/docker/docker/api/types"
|
|
docker_api_types_volume "github.com/docker/docker/api/types/volume"
|
|
)
|
|
|
|
// Volume volume
|
|
// swagger:model Volume
|
|
type volume struct {
|
|
|
|
// Date/Time the volume was created.
|
|
CreatedAt string `json:"CreatedAt,omitempty"`
|
|
|
|
// Name of the volume driver used by the volume.
|
|
// Required: true
|
|
Driver string `json:"Driver"`
|
|
|
|
// User-defined key/value metadata.
|
|
// Required: true
|
|
Labels map[string]string `json:"Labels"`
|
|
|
|
// Mount path of the volume on the host.
|
|
// Required: true
|
|
Mountpoint string `json:"Mountpoint"`
|
|
|
|
// Name of the volume.
|
|
// Required: true
|
|
Name string `json:"Name"`
|
|
|
|
// The driver specific options used when creating the volume.
|
|
//
|
|
// Required: true
|
|
Options map[string]string `json:"Options"`
|
|
|
|
// The level at which the volume exists. Either `global` for cluster-wide,
|
|
// or `local` for machine level.
|
|
//
|
|
// Required: true
|
|
Scope string `json:"Scope"`
|
|
|
|
// Low-level details about the volume, provided by the volume driver.
|
|
// Details are returned as a map with key/value pairs:
|
|
// `{"key":"value","key2":"value2"}`.
|
|
//
|
|
// The `Status` field is optional, and is omitted if the volume driver
|
|
// does not support this feature.
|
|
//
|
|
Status map[string]interface{} `json:"Status,omitempty"`
|
|
|
|
// usage data
|
|
UsageData *VolumeUsageData `json:"UsageData,omitempty"`
|
|
}
|
|
|
|
type VolumeUsageData struct {
|
|
|
|
// The number of containers referencing this volume. This field
|
|
// is set to `-1` if the reference-count is not available.
|
|
//
|
|
// Required: true
|
|
RefCount int64 `json:"RefCount"`
|
|
|
|
// Amount of disk space used by the volume (in bytes). This information
|
|
// is only available for volumes created with the `"local"` volume
|
|
// driver. For volumes created with other volume drivers, this field
|
|
// is set to `-1` ("not available")
|
|
//
|
|
// Required: true
|
|
Size int64 `json:"Size"`
|
|
}
|
|
|
|
// swagger:model VolumeCreate
|
|
type VolumeCreateOptions struct {
|
|
// New volume's name. Can be left blank
|
|
Name string `schema:"name"`
|
|
// Volume driver to use
|
|
Driver string `schema:"driver"`
|
|
// User-defined key/value metadata. Provided for compatibility
|
|
Label map[string]string `schema:"label"`
|
|
// User-defined key/value metadata. Preferred field, will override Label
|
|
Labels map[string]string `schema:"labels"`
|
|
// Mapping of driver options and values.
|
|
Options map[string]string `schema:"opts"`
|
|
}
|
|
|
|
type IDOrNameResponse struct {
|
|
// The Id or Name of an object
|
|
IDOrName string
|
|
}
|
|
|
|
type VolumeConfigResponse struct {
|
|
define.InspectVolumeData
|
|
}
|
|
|
|
type VolumeRmOptions struct {
|
|
All bool
|
|
Force bool
|
|
Timeout *uint
|
|
}
|
|
|
|
type VolumeRmReport struct {
|
|
Err error
|
|
Id string //nolint
|
|
}
|
|
|
|
type VolumeInspectReport struct {
|
|
*VolumeConfigResponse
|
|
}
|
|
|
|
// VolumePruneOptions describes the options needed
|
|
// to prune a volume from the CLI
|
|
type VolumePruneOptions struct {
|
|
Filters url.Values `json:"filters" schema:"filters"`
|
|
}
|
|
|
|
type VolumeListOptions struct {
|
|
Filter map[string][]string
|
|
}
|
|
|
|
type VolumeListReport struct {
|
|
VolumeConfigResponse
|
|
}
|
|
|
|
// VolumeListBody Volume list response
|
|
// swagger:model VolumeListBody
|
|
type VolumeListBody struct {
|
|
Volumes []docker_api_types_volume.VolumeListOKBody
|
|
}
|
|
|
|
// Volume list response
|
|
// swagger:response VolumeListResponse
|
|
type SwagVolumeListResponse struct {
|
|
// in:body
|
|
Body struct {
|
|
VolumeListBody
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Docker API compatibility types
|
|
*/
|
|
|
|
// swagger:model DockerVolumeCreate
|
|
type DockerVolumeCreate VolumeCreateBody
|
|
|
|
// This response definition is used for both the create and inspect endpoints
|
|
// swagger:response DockerVolumeInfoResponse
|
|
type SwagDockerVolumeInfoResponse struct {
|
|
// in:body
|
|
Body struct {
|
|
volume
|
|
}
|
|
}
|
|
|
|
// Volume prune response
|
|
// swagger:response DockerVolumePruneResponse
|
|
type SwagDockerVolumePruneResponse struct {
|
|
// in:body
|
|
Body struct {
|
|
docker_api_types.VolumesPruneReport
|
|
}
|
|
}
|
|
|
|
// VolumeCreateBody Volume configuration
|
|
// swagger:model VolumeCreateBody
|
|
type VolumeCreateBody struct {
|
|
|
|
// Name of the volume driver to use.
|
|
// Required: true
|
|
Driver string `json:"Driver"`
|
|
|
|
// A mapping of driver options and values. These options are
|
|
// passed directly to the driver and are driver specific.
|
|
//
|
|
// Required: true
|
|
DriverOpts map[string]string `json:"DriverOpts"`
|
|
|
|
// User-defined key/value metadata.
|
|
// Required: true
|
|
Labels map[string]string `json:"Labels"`
|
|
|
|
// The new volume's name. If not specified, Docker generates a name.
|
|
//
|
|
// Required: true
|
|
Name string `json:"Name"`
|
|
}
|
|
|
|
// VolumeMountReport describes the response from volume mount
|
|
type VolumeMountReport struct {
|
|
Err error
|
|
Id string //nolint
|
|
Name string
|
|
Path string
|
|
}
|
|
|
|
// VolumeUnmountReport describes the response from umounting a volume
|
|
type VolumeUnmountReport struct {
|
|
Err error
|
|
Id string //nolint
|
|
}
|