spiegel_podman/pkg/api/handlers/swagger/responses.go
cdoern 6d3520e8b7 podman image scp remote support & podman image scp tagging
add support for podman-remote image scp as well as direct access via the API. This entailed
a full rework of the layering of image scp functions as well as the usual API plugging and type creation

also, implemented podman image scp tagging. which makes the syntax much more readable and allows users t tag the new image
they are loading to the local/remote machine:

allow users to pass a "new name" for the image they are transferring
`podman tag` as implemented creates a new image im `image list` when tagging, so this does the same
meaning that when transferring images with tags, podman on the remote machine/user will load two images
ex: `podman image scp computer1::alpine computer2::foobar` creates alpine:latest and localhost/foobar on the remote host

implementing tags means removal of the flexible syntax. In the currently released podman image scp, the user can either specify
`podman image scp source::img dest::` or `podman image scp dest:: source::img`. However, with tags this task becomes really hard to check
which is the image (src) and which is the new tag (dst). Removal of that streamlines the arg parsing process

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-28 08:54:19 -04:00

460 lines
8 KiB
Go

//nolint:deadcode,unused // these types are used to wire generated swagger to API code
package swagger
import (
"github.com/containers/common/libnetwork/types"
"github.com/containers/image/v5/manifest"
"github.com/containers/podman/v4/libpod/define"
"github.com/containers/podman/v4/pkg/api/handlers"
"github.com/containers/podman/v4/pkg/domain/entities"
"github.com/containers/podman/v4/pkg/domain/entities/reports"
"github.com/containers/podman/v4/pkg/inspect"
dockerAPI "github.com/docker/docker/api/types"
dockerVolume "github.com/docker/docker/api/types/volume"
)
// Image Tree
// swagger:response
type treeResponse struct {
// in:body
Body entities.ImageTreeReport
}
// Image History
// swagger:response
type history struct {
// in:body
Body handlers.HistoryResponse
}
// Image Inspect
// swagger:response
type imageInspect struct {
// in:body
Body handlers.ImageInspect
}
// Image Load
// swagger:response
type imagesLoadResponseLibpod struct {
// in:body
Body entities.ImageLoadReport
}
// Image Scp
// swagger:response
type imagesScpResponseLibpod struct {
// in:body
Body reports.ScpReport
}
// Image Import
// swagger:response
type imagesImportResponseLibpod struct {
// in:body
Body entities.ImageImportReport
}
// Image Pull
// swagger:response
type imagesPullResponseLibpod struct {
// in:body
Body handlers.LibpodImagesPullReport
}
// Image Remove
// swagger:response
type imagesRemoveResponseLibpod struct {
// in:body
Body handlers.LibpodImagesRemoveReport
}
// PlayKube response
// swagger:response
type playKubeResponseLibpod struct {
// in:body
Body entities.PlayKubeReport
}
// Image Delete
// swagger:response
type imageDeleteResponse struct {
// in:body
Body []struct {
Untagged []string `json:"untagged"`
Deleted string `json:"deleted"`
}
}
// Registry Search
// swagger:response
type registrySearchResponse struct {
// in:body
Body struct {
// Index is the image index
// example: quay.io
Index string
// Name is the canonical name of the image
// example: docker.io/library/alpine"
Name string
// Description of the image.
Description string
// Stars is the number of stars of the image.
Stars int
// Official indicates if it's an official image.
Official string
// Automated indicates if the image was created by an automated build.
Automated string
// Tag is the image tag
Tag string
}
}
// Inspect Image
// swagger:response
type inspectImageResponseLibpod struct {
// in:body
Body inspect.ImageData
}
// Inspect container
// swagger:response
type containerInspectResponse struct {
// in:body
Body dockerAPI.ContainerJSON
}
// List processes in container
// swagger:response
type containerTopResponse struct {
// in:body
Body handlers.ContainerTopOKBody
}
// List processes in pod
// swagger:response
type podTopResponse struct {
// in:body
Body handlers.PodTopOKBody
}
// Pod Statistics
// swagger:response
type podStatsResponse struct {
// in:body
Body []entities.PodStatsReport
}
// Inspect container
// swagger:response
type containerInspectResponseLibpod struct {
// in:body
Body define.InspectContainerData
}
// List pods
// swagger:response
type podsListResponse struct {
// in:body
Body []entities.ListPodsReport
}
// Inspect pod
// swagger:response
type podInspectResponse struct {
// in:body
Body define.InspectPodData
}
// Volume details
// swagger:response
type volumeCreateResponse struct {
// in:body
Body entities.VolumeConfigResponse
}
// Healthcheck Results
// swagger:response
type healthCheck struct {
// in:body
Body define.HealthCheckResults
}
// Version
// swagger:response
type versionResponse struct {
// in:body
Body entities.ComponentVersion
}
// Disk usage
// swagger:response
type systemDiskUsage struct {
// in:body
Body entities.SystemDfReport
}
// System Prune results
// swagger:response
type systemPruneResponse struct {
// in:body
Body entities.SystemPruneReport
}
// Auth response
// swagger:response
type systemAuthResponse struct {
// in:body
Body entities.AuthReport
}
// Exec Session Inspect
// swagger:response
type execSessionInspect struct {
// in:body
Body define.InspectExecSession
}
// Image summary for compat API
// swagger:response
type imageList struct {
// in:body
Body []dockerAPI.ImageSummary
}
// Image summary for libpod API
// swagger:response
type imageListLibpod struct {
// in:body
Body []entities.ImageSummary
}
// List Containers
// swagger:response
type containersList struct {
// in:body
Body []handlers.Container
}
// This response definition is used for both the create and inspect endpoints
// swagger:response
type volumeInspect struct {
// in:body
Body dockerAPI.Volume
}
// Volume prune
// swagger:response
type volumePruneResponse struct {
// in:body
Body dockerAPI.VolumesPruneReport
}
// Volume List
// swagger:response
type volumeList struct {
// in:body
Body dockerVolume.VolumeListOKBody
}
// Volume list
// swagger:response
type volumeListLibpod struct {
// in:body
Body []entities.VolumeConfigResponse
}
// Image Prune
// swagger:response
type imagesPruneLibpod struct {
// in:body
Body []reports.PruneReport
}
// Remove Containers
// swagger:response
type containerRemoveLibpod struct {
// in: body
Body []handlers.LibpodContainersRmReport
}
// Prune Containers
// swagger:response
type containersPrune struct {
// in: body
Body []handlers.ContainersPruneReport
}
// Prune Containers
// swagger:response
type containersPruneLibpod struct {
// in: body
Body []handlers.ContainersPruneReportLibpod
}
// Get stats for one or more containers
// swagger:response
type containerStats struct {
// in:body
Body define.ContainerStats
}
// Volume Prune
// swagger:response
type volumePruneLibpod struct {
// in:body
Body []reports.PruneReport
}
// Create container
// swagger:response
type containerCreateResponse struct {
// in:body
Body entities.ContainerCreateResponse
}
// Wait container
// swagger:response
type containerWaitResponse struct {
// in:body
Body struct {
// container exit code
StatusCode int
Error struct {
Message string
}
}
}
// Network inspect
// swagger:response
type networkInspectCompat struct {
// in:body
Body dockerAPI.NetworkResource
}
// Network list
// swagger:response
type networkListCompat struct {
// in:body
Body []dockerAPI.NetworkResource
}
// List Containers
// swagger:response
type containersListLibpod struct {
// in:body
Body []entities.ListContainer
}
// Inspect Manifest
// swagger:response
type manifestInspect struct {
// in:body
Body manifest.Schema2List
}
// Kill Pod
// swagger:response
type podKillResponse struct {
// in:body
Body entities.PodKillReport
}
// Pause pod
// swagger:response
type podPauseResponse struct {
// in:body
Body entities.PodPauseReport
}
// Unpause pod
// swagger:response
type podUnpauseResponse struct {
// in:body
Body entities.PodUnpauseReport
}
// Stop pod
// swagger:response
type podStopResponse struct {
// in:body
Body entities.PodStopReport
}
// Restart pod
// swagger:response
type podRestartResponse struct {
// in:body
Body entities.PodRestartReport
}
// Start pod
// swagger:response
type podStartResponse struct {
// in:body
Body entities.PodStartReport
}
// Prune pod
// swagger:response
type podPruneResponse struct {
// in:body
Body entities.PodPruneReport
}
// Rm pod
// swagger:response
type podRmResponse struct {
// in:body
Body entities.PodRmReport
}
// Info
// swagger:response
type infoResponse struct {
// in:body
Body define.Info
}
// Network Delete
// swagger:response
type networkRmResponse struct {
// in:body
Body []entities.NetworkRmReport
}
// Network inspect
// swagger:response
type networkInspectResponse struct {
// in:body
Body types.Network
}
// Network list
// swagger:response
type networkListLibpod struct {
// in:body
Body []types.Network
}
// Network create
// swagger:model
type networkCreateLibpod struct {
// in:body
types.Network
}
// Network create
// swagger:response
type networkCreateResponse struct {
// in:body
Body types.Network
}
// Network prune
// swagger:response
type networkPruneResponse struct {
// in:body
Body []entities.NetworkPruneReport
}