1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"gopkg.in/juju/charm.v6-unstable"
10
charmresource "gopkg.in/juju/charm.v6-unstable/resource"
13
// Client exposes the functionality of a charm store client as needed
14
// for charm store operations for Juju resources.
15
type Client interface {
20
// BaseClient exposes the functionality of charmrepo/csclient.Client,
21
// as used for charm store operations for Juju resources.
22
type BaseClient interface {
23
// ListResources composes, for each of the identified charms, the
24
// list of details for each of the charm's resources. Those details
25
// are those associated with the specific charm revision. They
26
// include the resource's metadata and revision.
27
ListResources(charmURLs []*charm.URL) ([][]charmresource.Resource, error)
29
// GetResource returns a reader for the resource's data. That data
30
// is streamed from the charm store. The charm's revision, if any,
31
// is ignored. If the identified resource is not in the charm store
32
// then errors.NotFound is returned.
33
GetResource(cURL *charm.URL, resourceName string, resourceRevision int) (io.ReadCloser, error)