github.com/rish1988/moby@v25.0.2+incompatible/api/server/router/image/backend.go (about) 1 package image // import "github.com/docker/docker/api/server/router/image" 2 3 import ( 4 "context" 5 "io" 6 7 "github.com/distribution/reference" 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/backend" 10 "github.com/docker/docker/api/types/filters" 11 "github.com/docker/docker/api/types/image" 12 "github.com/docker/docker/api/types/registry" 13 dockerimage "github.com/docker/docker/image" 14 ocispec "github.com/opencontainers/image-spec/specs-go/v1" 15 ) 16 17 // Backend is all the methods that need to be implemented 18 // to provide image specific functionality. 19 type Backend interface { 20 imageBackend 21 importExportBackend 22 registryBackend 23 } 24 25 type imageBackend interface { 26 ImageDelete(ctx context.Context, imageRef string, force, prune bool) ([]image.DeleteResponse, error) 27 ImageHistory(ctx context.Context, imageName string) ([]*image.HistoryResponseItem, error) 28 Images(ctx context.Context, opts image.ListOptions) ([]*image.Summary, error) 29 GetImage(ctx context.Context, refOrID string, options backend.GetImageOpts) (*dockerimage.Image, error) 30 TagImage(ctx context.Context, id dockerimage.ID, newRef reference.Named) error 31 ImagesPrune(ctx context.Context, pruneFilters filters.Args) (*types.ImagesPruneReport, error) 32 } 33 34 type importExportBackend interface { 35 LoadImage(ctx context.Context, inTar io.ReadCloser, outStream io.Writer, quiet bool) error 36 ImportImage(ctx context.Context, ref reference.Named, platform *ocispec.Platform, msg string, layerReader io.Reader, changes []string) (dockerimage.ID, error) 37 ExportImage(ctx context.Context, names []string, outStream io.Writer) error 38 } 39 40 type registryBackend interface { 41 PullImage(ctx context.Context, ref reference.Named, platform *ocispec.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error 42 PushImage(ctx context.Context, ref reference.Named, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error 43 } 44 45 type Searcher interface { 46 Search(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *registry.AuthConfig, headers map[string][]string) ([]registry.SearchResult, error) 47 }