~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/resource/charmstore/client.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2016 Canonical Ltd.
2
 
// Licensed under the AGPLv3, see LICENCE file for details.
3
 
 
4
 
package charmstore
5
 
 
6
 
import (
7
 
        "io"
8
 
 
9
 
        "gopkg.in/juju/charm.v6-unstable"
10
 
        charmresource "gopkg.in/juju/charm.v6-unstable/resource"
11
 
)
12
 
 
13
 
// Client exposes the functionality of a charm store client as needed
14
 
// for charm store operations for Juju resources.
15
 
type Client interface {
16
 
        BaseClient
17
 
        io.Closer
18
 
}
19
 
 
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)
28
 
 
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)
34
 
}