package client import ( "context" "encoding/json" "net/http" "net/url" "github.com/moby/moby/api/types/registry" ) // DistributionInspectResult holds the result of the DistributionInspect operation. type DistributionInspectResult struct { registry.DistributionInspect } // DistributionInspectOptions holds options for the DistributionInspect operation. type DistributionInspectOptions struct { EncodedRegistryAuth string } // DistributionInspect returns the image digest with the full manifest. func (cli *Client) DistributionInspect(ctx context.Context, imageRef string, options DistributionInspectOptions) (DistributionInspectResult, error) { if imageRef == "" { return DistributionInspectResult{}, objectNotFoundError{object: "distribution", id: imageRef} } var headers http.Header if options.EncodedRegistryAuth != "" { headers = http.Header{ registry.AuthHeader: {options.EncodedRegistryAuth}, } } // Contact the registry to retrieve digest and platform information resp, err := cli.get(ctx, "/distribution/"+imageRef+"/json", url.Values{}, headers) defer ensureReaderClosed(resp) if err != nil { return DistributionInspectResult{}, err } var distributionInspect registry.DistributionInspect err = json.NewDecoder(resp.Body).Decode(&distributionInspect) return DistributionInspectResult{DistributionInspect: distributionInspect}, err }