Documentation ¶
Overview ¶
Package charms provides a client for accessing the charms API.
Index ¶
- type CharmToResolve
- type Client
- func (c *Client) AddCharm(curl *charm.URL, origin apicharm.Origin, force bool) (apicharm.Origin, error)
- func (c *Client) AddCharmWithAuthorization(curl *charm.URL, origin apicharm.Origin, csMac *macaroon.Macaroon, force bool) (apicharm.Origin, error)
- func (c *Client) CheckCharmPlacement(applicationName string, curl *charm.URL) error
- func (c *Client) GetDownloadInfo(curl *charm.URL, origin apicharm.Origin, mac *macaroon.Macaroon) (DownloadInfo, error)
- func (c *Client) IsMetered(charmURL string) (bool, error)
- func (c *Client) ListCharmResources(curl *charm.URL, origin apicharm.Origin) ([]charmresource.Resource, error)
- func (c *Client) ResolveCharms(charms []CharmToResolve) ([]ResolvedCharm, error)
- type DownloadInfo
- type ResolvedCharm
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CharmToResolve ¶
CharmToResolve holds the charm url and it's channel to be resolved.
type Client ¶
type Client struct { base.ClientFacade *commoncharms.CharmInfoClient // contains filtered or unexported fields }
Client allows access to the charms API end point.
func NewClient ¶
func NewClient(st base.APICallCloser) *Client
NewClient creates a new client for accessing the charms API.
func (*Client) AddCharm ¶
func (c *Client) AddCharm(curl *charm.URL, origin apicharm.Origin, force bool) (apicharm.Origin, error)
AddCharm adds the given charm URL (which must include revision) to the model, if it does not exist yet. Local charms are not supported, only charm store and charm hub URLs. See also AddLocalCharm() in the client-side API.
If the AddCharm API call fails because of an authorization error when retrieving the charm from the charm store, an error satisfying params.IsCodeUnauthorized will be returned.
func (*Client) AddCharmWithAuthorization ¶
func (c *Client) AddCharmWithAuthorization(curl *charm.URL, origin apicharm.Origin, csMac *macaroon.Macaroon, force bool) (apicharm.Origin, error)
AddCharmWithAuthorization is like AddCharm except it also provides the given charmstore macaroon for the juju server to use when obtaining the charm from the charm store or from charm hub. The macaroon is conventionally obtained from the /delegatable-macaroon endpoint in the charm store.
If the AddCharmWithAuthorization API call fails because of an authorization error when retrieving the charm from the charm store, an error satisfying params.IsCodeUnauthorized will be returned. Force is used to overload any validation errors that could occur during a deploy
func (*Client) CheckCharmPlacement ¶
CheckCharmPlacement checks to see if a charm can be placed into the application. If the application doesn't exist then it is considered fine to be placed there.
func (*Client) GetDownloadInfo ¶
func (c *Client) GetDownloadInfo(curl *charm.URL, origin apicharm.Origin, mac *macaroon.Macaroon) (DownloadInfo, error)
GetDownloadInfo will get a download information from the given charm URL using the appropriate charm store.
func (*Client) ListCharmResources ¶
func (c *Client) ListCharmResources(curl *charm.URL, origin apicharm.Origin) ([]charmresource.Resource, error)
ListCharmResources returns a list of associated resources for a given charm.
func (*Client) ResolveCharms ¶
func (c *Client) ResolveCharms(charms []CharmToResolve) ([]ResolvedCharm, error)
ResolveCharms resolves the given charm URLs with an optionally specified preferred channel. ResolveCharms is only supported in version 3 and above, it is expected that the consumer of the client is intended to handle the fallback.
type DownloadInfo ¶
DownloadInfo holds the URL and Origin for a charm that requires downloading on the client side. This is mainly for bundles as we don't resolve bundles on the server.