package client import ( "context" "io" "net/url" ) // ContainerExportOptions specifies options for container export operations. type ContainerExportOptions struct { // Currently no options are defined for ContainerExport } // ContainerExportResult represents the result of a container export operation. type ContainerExportResult interface { io.ReadCloser } // ContainerExport retrieves the raw contents of a container // and returns them as an [io.ReadCloser]. It's up to the caller // to close the stream. // // The underlying [io.ReadCloser] is automatically closed if the context is canceled, func (cli *Client) ContainerExport(ctx context.Context, containerID string, options ContainerExportOptions) (ContainerExportResult, error) { containerID, err := trimID("container", containerID) if err != nil { return nil, err } resp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) if err != nil { return nil, err } return &containerExportResult{ ReadCloser: newCancelReadCloser(ctx, resp.Body), }, nil } type containerExportResult struct { io.ReadCloser } var ( _ io.ReadCloser = (*containerExportResult)(nil) _ ContainerExportResult = (*containerExportResult)(nil) )