Juju API facades

Action

ActionAPI implements the client API for interacting with Actions

Name Params Results Description
Actions Entities ActionResults Actions takes a list of ActionTags, and returns the full Action for each ID.
ApplicationsCharmsActions Entities ApplicationsCharmActionsResults ApplicationsCharmsActions returns a slice of charm Actions for a slice of services.
Cancel Entities ActionResults Cancel attempts to cancel enqueued Actions from running.
Enqueue Actions ActionResults Enqueue takes a list of Actions and queues them up to be executed by the designated ActionReceiver, returning the params.Action for each enqueued Action, or an error if there was a problem enqueueing the Action.
FindActionTagsByPrefix FindTags FindTagsResults FindActionTagsByPrefix takes a list of string prefixes and finds corresponding ActionTags that match that prefix.
FindActionsByNames FindActionsByNames ActionsByNames
ListAll Entities ActionsByReceivers ListAll takes a list of Entities representing ActionReceivers and returns all of the Actions that have been enqueued or run by each of those Entities.
ListCompleted Entities ActionsByReceivers ListCompleted takes a list of Entities representing ActionReceivers and returns all of the Actions that have been run on each of those Entities.
ListPending Entities ActionsByReceivers ListPending takes a list of Entities representing ActionReceivers and returns all of the Actions that are enqueued for each of those Entities.
ListRunning Entities ActionsByReceivers ListRunning takes a list of Entities representing ActionReceivers and returns all of the Actions that have are running on each of those Entities.
Run RunParams ActionResults Run the commands specified on the machines identified through the list of machines, units and services.
RunOnAllMachines RunParams ActionResults RunOnAllMachines attempts to run the specified command on all the machines.

AllModelWatcher

SrvAllWatcher defines the API methods on a state.Multiwatcher. which watches any changes to the state. Each client has its own current set of watchers, stored in resources. It is used by both the AllWatcher and AllModelWatcher facades.

Name Params Results Description
Next n/a AllWatcherNextResults
Stop n/a n/a

AllWatcher

SrvAllWatcher defines the API methods on a state.Multiwatcher. which watches any changes to the state. Each client has its own current set of watchers, stored in resources. It is used by both the AllWatcher and AllModelWatcher facades.

Name Params Results Description
Next n/a AllWatcherNextResults
Stop n/a n/a

Annotations

API implements the service interface and is the concrete implementation of the api end point.

Name Params Results Description
Get Entities AnnotationsGetResults Get returns annotations for given entities. If annotations cannot be retrieved for a given entity, an error is returned. Each entity is treated independently and, hence, will fail or succeed independently.
Set AnnotationsSet ErrorResults Set stores annotations for given entities

Application

API implements the application interface and is the concrete implementation of the api end point.

Name Params Results Description
AddRelation AddRelation AddRelationResults AddRelation adds a relation between the specified endpoints and returns the relation info.
AddUnits AddApplicationUnits AddApplicationUnitsResults AddUnits adds a given number of units to an application.
CharmRelations ApplicationCharmRelations ApplicationCharmRelationsResults CharmRelations implements the server side of Application.CharmRelations.
Deploy ApplicationsDeploy ErrorResults Deploy fetches the charms from the charm store and deploys them using the specified placement directives.
Destroy ApplicationDestroy n/a Destroy destroys a given application.
DestroyRelation DestroyRelation n/a DestroyRelation removes the relation between the specified endpoints.
DestroyUnits DestroyApplicationUnits n/a DestroyUnits removes a given set of application units.
Expose ApplicationExpose n/a Expose changes the juju-managed firewall to expose any ports that were also explicitly marked by units as open.
Get ApplicationGet ApplicationGetResults Get returns the configuration for a service.
GetCharmURL ApplicationGet StringResult GetCharmURL returns the charm URL the given application is running at present.
GetConstraints GetApplicationConstraints GetConstraintsResults GetConstraints returns the constraints for a given application.
Set ApplicationSet n/a Set implements the server side of Application.Set. It does not unset values that are set to an empty string. Unset should be used for that.
SetCharm ApplicationSetCharm n/a SetCharm sets the charm for a given for the application.
SetConstraints SetConstraints n/a SetConstraints sets the constraints for a given application.
SetMetricCredentials ApplicationMetricCredentials ErrorResults SetMetricCredentials sets credentials on the application.
Unexpose ApplicationUnexpose n/a Unexpose changes the juju-managed firewall to unexpose any ports that were also explicitly marked by units as open.
Unset ApplicationUnset n/a Unset implements the server side of Client.Unset.
Update ApplicationUpdate n/a Update updates the application attributes, including charm URL, minimum number of units, settings and constraints. All parameters in params.ApplicationUpdate except the application name are optional.

Backups

API serves backup-specific API methods.

Name Params Results Description
Create BackupsCreateArgs BackupsMetadataResult Create is the API method that requests juju to create a new backup of its state. It returns the metadata for that backup.
FinishRestore n/a n/a FinishRestore implements the server side of Backups.FinishRestore.
Info BackupsInfoArgs BackupsMetadataResult Info provides the implementation of the API method.
List BackupsListArgs BackupsListResult List provides the implementation of the API method.
PrepareRestore n/a n/a PrepareRestore implements the server side of Backups.PrepareRestore.
Remove BackupsRemoveArgs n/a
Restore RestoreArgs n/a Restore implements the server side of Backups.Restore.

Block

API implements Block interface and is the concrete implementation of the api end point.

Name Params Results Description
List n/a BlockResults List implements Block.List().
SwitchBlockOff BlockSwitchParams ErrorResult SwitchBlockOff implements Block.SwitchBlockOff().
SwitchBlockOn BlockSwitchParams ErrorResult SwitchBlockOn implements Block.SwitchBlockOn().

Client

Client serves client-specific API methods.

Name Params Results Description
APIHostPorts n/a APIHostPortsResult APIHostPorts returns the API host/port addresses stored in state.
AbortCurrentUpgrade n/a n/a AbortCurrentUpgrade aborts and archives the current upgrade synchronisation record, if any.
AddCharm AddCharm n/a
AddCharmWithAuthorization AddCharmWithAuthorization n/a AddCharmWithAuthorization 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 URLs. See also AddLocalCharm(). The authorization macaroon, args.CharmStoreMacaroon, may be omitted, in which case this call is equivalent to AddCharm.
AddMachines AddMachines AddMachinesResults AddMachines adds new machines with the supplied parameters.
AddMachinesV2 AddMachines AddMachinesResults AddMachinesV2 adds new machines with the supplied parameters.
AgentVersion n/a AgentVersionResult AgentVersion returns the current version that the API server is running.
DestroyMachines DestroyMachines n/a DestroyMachines removes a given set of machines.
FindTools FindToolsParams FindToolsResult FindTools returns a List containing all tools matching the given parameters.
FullStatus StatusParams FullStatus FullStatus gives the information needed for juju status over the api
GetBundleChanges GetBundleChangesParams GetBundleChangesResults GetBundleChanges returns the list of changes required to deploy the given bundle data. The changes are sorted by requirements, so that they can be applied in order.
GetModelConstraints n/a GetConstraintsResults GetModelConstraints returns the constraints for the model.
InjectMachines AddMachines AddMachinesResults InjectMachines injects a machine into state with provisioned status.
ModelGet n/a ModelConfigResults ModelGet implements the server-side part of the get-model-config CLI command.
ModelInfo n/a ModelInfo ModelInfo returns information about the current model (default series and type).
ModelSet ModelSet n/a ModelSet implements the server-side part of the set-model-config CLI command.
ModelUnset ModelUnset n/a ModelUnset implements the server-side part of the set-model-config CLI command.
ModelUserInfo n/a ModelUserInfoResults ModelUserInfo returns information on all users in the model.
PrivateAddress PrivateAddress PrivateAddressResults PrivateAddress implements the server side of Client.PrivateAddress.
ProvisioningScript ProvisioningScriptParams ProvisioningScriptResult ProvisioningScript returns a shell script that, when run, provisions a machine agent on the machine executing the script.
PublicAddress PublicAddress PublicAddressResults PublicAddress implements the server side of Client.PublicAddress.
ResolveCharms ResolveCharms ResolveCharmResults ResolveCharm resolves the best available charm URLs with series, for charm locations without a series specified.
Resolved Resolved n/a Resolved implements the server side of Client.Resolved.
RetryProvisioning Entities ErrorResults RetryProvisioning marks a provisioning error as transient on the machines.
SetModelAgentVersion SetModelAgentVersion n/a SetModelAgentVersion sets the model agent version.
SetModelConstraints SetConstraints n/a SetModelConstraints sets the constraints for the model.
StatusHistory StatusHistoryRequests StatusHistoryResults StatusHistory returns a slice of past statuses for several entities.
WatchAll n/a AllWatcherId

Cloud

CloudAPI implements the model manager interface and is the concrete implementation of the api end point.

Name Params Results Description
Cloud Entities CloudResults Cloud returns the cloud definitions for the specified clouds.
CloudDefaults Entities CloudDefaultsResults CloudDefaults returns the cloud defaults for a set of users.
Credentials UserClouds CloudCredentialsResults Credentials returns the cloud credentials for a set of users.
UpdateCredentials UsersCloudCredentials ErrorResults UpdateCredentials updates the cloud credentials for a set of users.

Controller

ControllerAPI implements the environment manager interface and is the concrete implementation of the api end point.

Name Params Results Description
AllModels n/a UserModelList AllModels allows controller administrators to get the list of all the environments in the controller.
ControllerConfig n/a ControllerConfigResult ControllerConfig returns the controller's configuration.
DestroyController DestroyControllerArgs n/a DestroyController will attempt to destroy the controller. If the args specify the removal of blocks or the destruction of the models, this method will attempt to do so. If the controller has any non-Dead hosted models, then an error with the code params.CodeHasHostedModels will be transmitted, regardless of the value of the DestroyModels parameter. This is to inform the client that it should wait for hosted models to be completely cleaned up before proceeding.
InitiateModelMigration InitiateModelMigrationArgs InitiateModelMigrationResults InitiateModelMigration attempts to begin the migration of one or more models to other controllers.
ListBlockedModels n/a ModelBlockInfoList ListBlockedModels returns a list of all environments on the controller which have a block in place. The resulting slice is sorted by environment name, then owner. Callers must be controller administrators to retrieve the list.
ModelConfig n/a ModelConfigResults ModelConfig returns the environment config for the controller environment. For information on the current environment, use client.ModelGet
ModelStatus Entities ModelStatusResults ModelStatus returns a summary of the environment.
RemoveBlocks RemoveBlocksArgs n/a RemoveBlocks removes all the blocks in the controller.
WatchAllModels n/a AllWatcherId WatchAllModels starts watching events for all models in the controller. The returned AllWatcherId should be used with Next on the AllModelWatcher endpoint to receive deltas.

HighAvailability

HighAvailabilityAPI implements the HighAvailability interface and is the concrete implementation of the api end point.

Name Params Results Description
EnableHA ControllersSpecs ControllersChangeResults
ResumeHAReplicationAfterUpgrade ResumeReplicationParams n/a ResumeHAReplicationAfterUpgrade will add the upgraded members of HA cluster to the upgraded master.
StopHAReplicationForUpgrade UpgradeMongoParams MongoUpgradeResults StopHAReplicationForUpgrade will prompt the HA cluster to enter upgrade mongo mode.

ImageManager

ImageManagerAPI implements the ImageManager interface and is the concrete implementation of the api end point.

Name Params Results Description
DeleteImages ImageFilterParams ErrorResults DeleteImages deletes the images matching the specified filter.
ListImages ImageFilterParams ListImageResult ListImages returns images matching the specified filter.

ImageMetadata

API is the concrete implementation of the api end point for loud image metadata manipulations.

Name Params Results Description
Delete MetadataImageIds ErrorResults Delete deletes cloud image metadata for given image ids. It supports bulk calls.
List ImageMetadataFilter ListCloudImageMetadataResult List returns all found cloud image metadata that satisfy given filter. Returned list contains metadata ordered by priority.
Save MetadataSaveParams ErrorResults Save stores given cloud image metadata. It supports bulk calls.
UpdateFromPublishedImages n/a n/a UpdateFromPublishedImages retrieves currently published image metadata and updates stored ones accordingly.

KeyManager

KeyManagerAPI implements the KeyUpdater interface and is the concrete implementation of the api end point.

Name Params Results Description
AddKeys ModifyUserSSHKeys ErrorResults AddKeys adds new authorised ssh keys for the specified user.
DeleteKeys ModifyUserSSHKeys ErrorResults DeleteKeys deletes the authorised ssh keys for the specified user.
ImportKeys ModifyUserSSHKeys ErrorResults ImportKeys imports new authorised ssh keys from the specified key ids for the specified user.
ListKeys ListSSHKeys StringsResults ListKeys returns the authorised ssh keys for the specified users.

MachineManager

MachineManagerAPI provides access to the MachineManager API facade.

Name Params Results Description
AddMachines AddMachines AddMachinesResults AddMachines adds new machines with the supplied parameters.

MetricsDebug

MetricsDebugAPI implements the metricsdebug interface and is the concrete implementation of the api end point.

Name Params Results Description
GetMetrics Entities MetricResults GetMetrics returns all metrics stored by the state server.
SetMeterStatus MeterStatusParams ErrorResults SetMeterStatus sets meter statuses for entities.

ModelConfig

ModelConfigAPI is the endpoint which implements the model config facade.

Name Params Results Description
ModelGet n/a ModelConfigResults ModelGet implements the server-side part of the get-model-config CLI command.
ModelSet ModelSet n/a ModelSet implements the server-side part of the set-model-config CLI command.
ModelUnset ModelUnset n/a ModelUnset implements the server-side part of the set-model-config CLI command.

ModelManager

ModelManagerAPI implements the model manager interface and is the concrete implementation of the api end point.

Name Params Results Description
CreateModel ModelCreateArgs ModelInfo CreateModel creates a new model using the account and model config specified in the args.
DestroyModel n/a n/a DestroyModel will try to destroy the current model. If there is a block on destruction, this method will return an error.
DumpModels Entities MapResults DumpModels will export the models into the database agnostic representation. The user needs to either be a controller admin, or have admin privileges on the model itself.
ListModels Entity UserModelList ListModels returns the models that the specified user has access to in the current server. Only that controller owner can list models for any user (at this stage). Other users can only ask about their own models.
ModelInfo Entities ModelInfoResults ModelInfo returns information about the specified models.
ModifyModelAccess ModifyModelAccessRequest ErrorResults ModifyModelAccess changes the model access granted to users.

Pinger

pinger describes a resource that can be pinged and stopped.

Name Params Results Description
Ping n/a n/a
Stop n/a n/a

Storage

API implements the storage interface and is the concrete implementation of the api end point.

Name Params Results Description
AddToUnit StoragesAddParams ErrorResults AddToUnit validates and creates additional storage instances for units. This method handles bulk add operations and a failure on one individual storage instance does not block remaining instances from being processed. A "CHANGE" block can block this operation.
CreatePool StoragePool n/a CreatePool creates a new pool with specified parameters.
ListFilesystems FilesystemFilters FilesystemDetailsListResults ListFilesystems returns a list of filesystems in the environment matching the provided filter. Each result describes a filesystem in detail, including the filesystem's attachments.
ListPools StoragePoolFilters StoragePoolsResults ListPools returns a list of pools. If filter is provided, returned list only contains pools that match the filter. Pools can be filtered on names and provider types. If both names and types are provided as filter, pools that match either are returned. This method lists union of pools and environment provider types. If no filter is provided, all pools are returned.
ListStorageDetails StorageFilters StorageDetailsListResults ListStorageDetails returns storage matching a filter.
ListVolumes VolumeFilters VolumeDetailsListResults ListVolumes lists volumes with the given filters. Each filter produces an independent list of volumes, or an error if the filter is invalid or the volumes could not be listed.
StorageDetails Entities StorageDetailsResults StorageDetails retrieves and returns detailed information about desired storage identified by supplied tags. If specified storage cannot be retrieved, individual error is returned instead of storage information.

Subnets

SubnetsAPI defines the methods the Subnets API facade implements.

Name Params Results Description
AddSubnets AddSubnetsParams ErrorResults AddSubnets adds existing subnets to Juju.
AllSpaces n/a SpaceResults AllSpaces returns the tags of all network spaces known to Juju.
AllZones n/a ZoneResults AllZones returns all availability zones known to Juju. If a zone is unusable, unavailable, or deprecated the Available field will be false.
ListSubnets SubnetsFilters ListSubnetsResults ListSubnets returns the matching subnets after applying optional filters.

UserManager

UserManagerAPI implements the user manager interface and is the concrete implementation of the api end point.

Name Params Results Description
AddUser AddUsers AddUserResults AddUser adds a user with a username, and either a password or a randomly generated secret key which will be returned.
CreateLocalLoginMacaroon Entities MacaroonResults CreateLocalLoginMacaroon creates a macaroon for the specified users to use for future logins.
DisableUser Entities ErrorResults DisableUser disables one or more users. If the user is already disabled, the action is considered a success.
EnableUser Entities ErrorResults EnableUser enables one or more users. If the user is already enabled, the action is considered a success.
RemoveUser Entities ErrorResults RemoveUser permanently removes a user from the current controller for each entity provided. While the user is permanently removed we keep it's information around for auditing purposes. TODO(redir): Add information about getting deleted user information when we add that capability.
SetPassword EntityPasswords ErrorResults SetPassword changes the stored password for the specified users.
UserInfo UserInfoRequest UserInfoResults UserInfo returns information on a user.

Admin

Name Params Results Description
Login LoginRequest LoginResultV1 Login logs in with the provided credentials. All subsequent requests on the connection will act as the authenticated user.
RedirectInfo n/a RedirectInfoResult RedirectInfo returns redirected host information for the model. In Juju it always returns an error because the Juju controller does not multiplex controllers.