package client import ( "bytes" "github.com/moby/moby/api/types/image" ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) // ImageInspectOption is a type representing functional options for the image inspect operation. type ImageInspectOption interface { Apply(*imageInspectOpts) error } type imageInspectOptionFunc func(opt *imageInspectOpts) error func (f imageInspectOptionFunc) Apply(o *imageInspectOpts) error { return f(o) } // ImageInspectWithRawResponse instructs the client to additionally store the // raw inspect response in the provided buffer. func ImageInspectWithRawResponse(raw *bytes.Buffer) ImageInspectOption { return imageInspectOptionFunc(func(opts *imageInspectOpts) error { opts.raw = raw return nil }) } // ImageInspectWithManifests sets manifests API option for the image inspect operation. // This option is only available for API version 1.48 and up. // With this option set, the image inspect operation response includes // the [image.InspectResponse.Manifests] field if the server is multi-platform // capable. func ImageInspectWithManifests(manifests bool) ImageInspectOption { return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error { clientOpts.apiOptions.Manifests = manifests return nil }) } // ImageInspectWithPlatform sets platform API option for the image inspect operation. // This option is only available for API version 1.49 and up. // With this option set, the image inspect operation returns information for the // specified platform variant of the multi-platform image. func ImageInspectWithPlatform(platform *ocispec.Platform) ImageInspectOption { return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error { clientOpts.apiOptions.Platform = platform return nil }) } type imageInspectOpts struct { raw *bytes.Buffer apiOptions imageInspectOptions } type imageInspectOptions struct { // Manifests returns the image manifests. Manifests bool // Platform selects the specific platform of a multi-platform image to inspect. // // This option is only available for API version 1.49 and up. Platform *ocispec.Platform } type ImageInspectResult struct { image.InspectResponse }