github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/api/charms/client.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 // charms provides a client for accessing the charms API. 5 package charms 6 7 import ( 8 "github.com/juju/juju/api/base" 9 "github.com/juju/juju/apiserver/params" 10 ) 11 12 // Client allows access to the charms API end point. 13 type Client struct { 14 base.ClientFacade 15 facade base.FacadeCaller 16 } 17 18 // NewClient creates a new client for accessing the charms API. 19 func NewClient(st base.APICallCloser) *Client { 20 frontend, backend := base.NewClientFacade(st, "Charms") 21 return &Client{ClientFacade: frontend, facade: backend} 22 } 23 24 // IsMetered returns whether or not the charm is metered. 25 func (c *Client) IsMetered(charmURL string) (bool, error) { 26 args := params.CharmInfo{CharmURL: charmURL} 27 var metered params.IsMeteredResult 28 if err := c.facade.FacadeCall("IsMetered", args, &metered); err != nil { 29 return false, err 30 } 31 return metered.Metered, nil 32 }