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  }