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.

Agent

AgentAPIV2 implements the version 2 of the API provided to an agent.

Name Params Results Description
ClearReboot Entities ErrorResults ClearReboot will clear the reboot flag on provided machines, if it exists.
ControllerConfig n/a ControllerConfigResult ControllerConfig returns the controller's configuration.
GetEntities Entities AgentGetEntitiesResults
IsMaster n/a IsMasterResult
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
SetPasswords EntityPasswords ErrorResults SetPasswords sets the given password for each supplied entity, if possible.
StateServingInfo n/a StateServingInfo
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.

AgentTools

AgentToolsAPI implements the API used by the machine model worker.

Name Params Results Description
UpdateToolsAvailable n/a n/a UpdateToolsAvailable invokes a lookup and further update in environ for new patches of the current tool versions.

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.

ApplicationScaler

Facade allows model-manager clients to watch and rescale services.

Name Params Results Description
Rescale Entities ErrorResults Rescale causes any supplied services to be scaled up to their minimum size.
Watch n/a StringsWatchResult Watch returns a watcher that sends the names of services whose unit count may be below their configured minimum.

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().

CharmRevisionUpdater

CharmRevisionUpdaterAPI implements the CharmRevisionUpdater interface and is the concrete implementation of the api end point.

Name Params Results Description
UpdateLatestRevisions n/a ErrorResult UpdateLatestRevisions retrieves the latest revision information from the charm store for all deployed charms and records this information in state.

Charms

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

Name Params Results Description
CharmInfo CharmURL CharmInfo CharmInfo returns information about the requested charm. NOTE: thumper 2016-06-29, this is not a bulk call and probably should be.
IsMetered CharmURL IsMeteredResult IsMetered returns whether or not the charm is metered.
List CharmsList CharmsListResult List returns a list of charm URLs currently in the state. If supplied parameter contains any names, the result will be filtered to return only the charms with supplied names.

Cleaner

CleanerAPI implements the API used by the cleaner worker.

Name Params Results Description
Cleanup n/a n/a Cleanup triggers a state cleanup
WatchCleanups n/a NotifyWatchResult WatchChanges watches for cleanups to be perfomed in state

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.

Deployer

DeployerAPI provides access to the Deployer API facade.

Name Params Results Description
APIAddresses n/a StringsResult APIAddresses returns the list of addresses used to connect to the API.
APIHostPorts n/a APIHostPortsResult APIHostPorts returns the API server addresses.
CACert n/a BytesResult CACert returns the certificate used to validate the state connection.
ConnectionInfo n/a DeployerConnectionValues ConnectionInfo returns all the address information that the deployer task needs in one call.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
ModelUUID n/a StringResult ModelUUID returns the model UUID to connect to the environment that the current connection is for.
Remove Entities ErrorResults Remove removes every given entity from state, calling EnsureDead first, then Remove. It will fail if the entity is not present.
SetPasswords EntityPasswords ErrorResults SetPasswords sets the given password for each supplied entity, if possible.
StateAddresses n/a StringsResult StateAddresses returns the list of addresses used to connect to the state.
WatchAPIHostPorts n/a NotifyWatchResult WatchAPIHostPorts watches the API server addresses.
WatchUnits Entities StringsWatchResults WatchUnits starts a StringsWatcher to watch all units belonging to to any entity (machine or service) passed in args.

DiscoverSpaces

DiscoverSpacesAPI implements the API used by the discoverspaces worker.

Name Params Results Description
AddSubnets AddSubnetsParams ErrorResults AddSubnets is defined on the API interface.
CreateSpaces CreateSpacesParams ErrorResults CreateSpaces creates a new Juju network space, associating the specified subnets with it (optional; can be empty).
ListSpaces n/a DiscoverSpacesResults ListSpaces lists all the available spaces and their associated subnets.
ListSubnets SubnetsFilters ListSubnetsResults ListSubnets lists all the available subnets or only those matching all given optional filters.
ModelConfig n/a ModelConfigResult ModelConfig returns the current model's configuration.

DiskManager

DiskManagerAPI provides access to the DiskManager API facade.

Name Params Results Description
SetMachineBlockDevices SetMachineBlockDevices ErrorResults

EntityWatcher

srvEntitiesWatcher defines the API for methods on a state.StringsWatcher. Each client has its own current set of watchers, stored in resources. srvEntitiesWatcher notifies about changes for all entities of a given kind, sending the changes as a list of strings, which could be transformed from state entity ids to their corresponding entity tags.

Name Params Results Description
Next n/a EntitiesWatchResult Next returns when a change has occured to an entity of the collection being watched since the most recent call to Next or the Watch call that created the srvEntitiesWatcher.
Stop n/a n/a Stop stops the watcher.

FilesystemAttachmentsWatcher

srvMachineStorageIdsWatcher defines the API wrapping a state.StringsWatcher watching machine/storage attachments. This watcher notifies about storage entities (volumes/filesystems) being attached to and detached from machines. TODO(axw) state needs a new watcher, this is a bt of a hack. State watchers could do with some deduplication of logic, and I don't want to add to that spaghetti right now.

Name Params Results Description
Next n/a MachineStorageIdsWatchResult Next returns when a change has occured to an entity of the collection being watched since the most recent call to Next or the Watch call that created the srvMachineStorageIdsWatcher.
Stop n/a n/a Stop stops the watcher.

Firewaller

FirewallerAPI provides access to the Firewaller API facade.

Name Params Results Description
GetAssignedMachine Entities StringResults GetAssignedMachine returns the assigned machine tag (if any) for each given unit.
GetExposed Entities BoolResults GetExposed returns the exposed flag value for each given service.
GetMachineActiveSubnets Entities StringsResults GetMachineActiveSubnets returns the tags of the all subnets that each machine (in args) has open ports on.
GetMachinePorts MachinePortsParams MachinePortsResults GetMachinePorts returns the port ranges opened on a machine for the specified subnet as a map mapping port ranges to the tags of the units that opened them.
InstanceId Entities StringResults InstanceId returns the provider specific instance id for each given machine or an CodeNotProvisioned error, if not set.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
Watch Entities NotifyWatchResults Watch starts an NotifyWatcher for each given entity.
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.
WatchModelMachines n/a StringsWatchResult WatchModelMachines returns a StringsWatcher that notifies of changes to the life cycles of the top level machines in the current model.
WatchOpenedPorts Entities StringsWatchResults WatchOpenedPorts returns a new StringsWatcher for each given environment tag.
WatchUnits Entities StringsWatchResults WatchUnits starts a StringsWatcher to watch all units belonging to to any entity (machine or service) passed in args.

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.

HostKeyReporter

Facade implements the API required by the hostkeyreporter worker.

Name Params Results Description
ReportKeys SSHHostKeySet ErrorResults ReportKeys sets the SSH host keys for one or more entities.

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.

InstancePoller

InstancePollerAPI provides access to the InstancePoller API facade.

Name Params Results Description
AreManuallyProvisioned Entities BoolResults AreManuallyProvisioned returns whether each given entity is manually provisioned or not. Only machine tags are accepted.
InstanceId Entities StringResults InstanceId returns the provider specific instance id for each given machine or an CodeNotProvisioned error, if not set.
InstanceStatus Entities StatusResults InstanceStatus returns the instance status for each given entity. Only machine tags are accepted.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
ProviderAddresses Entities MachineAddressesResults ProviderAddresses returns the list of all known provider addresses for each given entity. Only machine tags are accepted.
SetInstanceStatus SetStatus ErrorResults SetInstanceStatus updates the instance status for each given entity. Only machine tags are accepted.
SetProviderAddresses SetMachinesAddresses ErrorResults SetProviderAddresses updates the list of known provider addresses for each given entity. Only machine tags are accepted.
Status Entities StatusResults Status returns the status of each given entity.
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.
WatchModelMachines n/a StringsWatchResult WatchModelMachines returns a StringsWatcher that notifies of changes to the life cycles of the top level machines in the current model.

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.

KeyUpdater

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

Name Params Results Description
AuthorisedKeys Entities StringsResults AuthorisedKeys reports the authorised ssh keys for the specified machines. The current implementation relies on global authorised keys being stored in the environment config. This will change as new user management and authorisation functionality is added.
WatchAuthorisedKeys Entities NotifyWatchResults WatchAuthorisedKeys starts a watcher to track changes to the authorised ssh keys for the specified machines. The current implementation relies on global authorised keys being stored in the environment config. This will change as new user management and authorisation functionality is added.

LeadershipService

LeadershipService implements a variant of leadership.Claimer for consumption over the API.

Name Params Results Description
BlockUntilLeadershipReleased ApplicationTag ErrorResult BlockUntilLeadershipReleased blocks the caller until leadership is released for the given service.
ClaimLeadership ClaimLeadershipBulkParams ClaimLeadershipBulkResults ClaimLeadership makes a leadership claim with the given parameters.

LifeFlag

Name Params Results Description
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
Watch Entities NotifyWatchResults Watch starts an NotifyWatcher for each given entity.

LogForwarding

LogForwardingAPI is the concrete implementation of the api end point.

Name Params Results Description
GetLastSent LogForwardingGetLastSentParams LogForwardingGetLastSentResults GetLastSent is a bulk call that gets the log forwarding "last sent" record ID for each requested target.
SetLastSent LogForwardingSetLastSentParams ErrorResults SetLastSent is a bulk call that sets the log forwarding "last sent" record ID for each requested target.

Logger

LoggerAPI implements the Logger interface and is the concrete implementation of the api end point.

Name Params Results Description
LoggingConfig Entities StringResults LoggingConfig reports the logging configuration for the agents specified.
WatchLoggingConfig Entities NotifyWatchResults WatchLoggingConfig starts a watcher to track changes to the logging config for the agents specified.. Unfortunately the current infrastruture makes watching parts of the config non-trivial, so currently any change to the config will cause the watcher to notify the client.

MachineActions

Facade implements the machineactions interface and is the concrete implementation of the api end point.

Name Params Results Description
Actions Entities ActionResults Actions returns the Actions by Tags passed and ensures that the machine asking for them is the machine that has the actions
BeginActions Entities ErrorResults BeginActions marks the actions represented by the passed in Tags as running.
FinishActions ActionExecutionResults ErrorResults FinishActions saves the result of a completed Action
RunningActions Entities ActionsByReceivers RunningActions lists the actions running for the entities passed in. If we end up needing more than ListRunning at some point we could follow/abstract what's done in the client actions package.
WatchActionNotifications Entities StringsWatchResults WatchActionNotifications returns a StringsWatcher for observing incoming action calls to a machine.

MachineManager

MachineManagerAPI provides access to the MachineManager API facade.

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

Machiner

MachinerAPI implements the API used by the machiner worker.

Name Params Results Description
APIAddresses n/a StringsResult APIAddresses returns the list of addresses used to connect to the API.
APIHostPorts n/a APIHostPortsResult APIHostPorts returns the API server addresses.
CACert n/a BytesResult CACert returns the certificate used to validate the state connection.
EnsureDead Entities ErrorResults EnsureDead calls EnsureDead on each given entity from state. It will fail if the entity is not present. If it's Alive, nothing will happen (see state/EnsureDead() for units or machines).
Jobs Entities JobsResults Jobs returns the jobs assigned to the given entities.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
ModelUUID n/a StringResult ModelUUID returns the model UUID to connect to the environment that the current connection is for.
SetMachineAddresses SetMachinesAddresses ErrorResults
SetObservedNetworkConfig SetMachineNetworkConfig n/a
SetProviderNetworkConfig Entities ErrorResults
SetStatus SetStatus ErrorResults SetStatus sets the status of each given entity.
UpdateStatus SetStatus ErrorResults UpdateStatus updates the status data of each given entity. TODO(fwereade): WTF. This method exists *only* for the convenience of the *client* API -- and is itself completely broken -- but we still expose it in every facade with a StatusSetter? FFS.
Watch Entities NotifyWatchResults Watch starts an NotifyWatcher for each given entity.
WatchAPIHostPorts n/a NotifyWatchResult WatchAPIHostPorts watches the API server addresses.

MeterStatus

MeterStatusAPI implements the MeterStatus interface and is the concrete implementation of the API endpoint.

Name Params Results Description
GetMeterStatus Entities MeterStatusResults GetMeterStatus returns meter status information for each unit.
WatchMeterStatus Entities NotifyWatchResults WatchMeterStatus returns a NotifyWatcher for observing changes to each unit's meter status.

MetricsAdder

MetricsAdderAPI implements the metrics adder interface and is the concrete implementation of the API end point.

Name Params Results Description
AddMetricBatches MetricBatchParams ErrorResults AddMetricBatches implements the MetricsAdder interface.

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.

MetricsManager

MetricsManagerAPI implements the metrics manager interface and is the concrete implementation of the api end point.

Name Params Results Description
CleanupOldMetrics Entities ErrorResults CleanupOldMetrics removes old metrics from the collection. The single arg params is expected to contain and environment uuid. Even though the call will delete all metrics across environments it serves to validate that the connection has access to at least one environment.
SendMetrics Entities ErrorResults SendMetrics will send any unsent metrics onto the metric collection service.

MigrationFlag

Facade lets clients watch and get models' migration phases.

Name Params Results Description
Phase Entities PhaseResults Phase returns the current migration phase or an error for every supplied entity.
Watch Entities NotifyWatchResults Watch returns an id for use with the NotifyWatcher facade, or an error, for every supplied entity.

MigrationMaster

API implements the API required for the model migration master worker.

Name Params Results Description
Export n/a SerializedModel Export serializes the model associated with the API connection.
GetMigrationStatus n/a MasterMigrationStatus GetMigrationStatus returns the details and progress of the latest model migration.
GetMinionReports n/a MinionReports GetMinionReports returns details of the reports made by migration minions to the controller for the current migration phase.
Reap n/a n/a Reap removes all documents for the model associated with the API connection.
SetPhase SetMigrationPhaseArgs n/a SetPhase sets the phase of the active model migration. The provided phase must be a valid phase value, for example QUIESCE" or "ABORT". See the core/migration package for the complete list.
Watch n/a NotifyWatchResult Watch starts watching for an active migration for the model associated with the API connection. The returned id should be used with the NotifyWatcher facade to receive events.
WatchMinionReports n/a NotifyWatchResult WatchMinionReports sets up a watcher which reports when a report for a migration minion has arrived.

MigrationMinion

API implements the API required for the model migration master worker.

Name Params Results Description
Report MinionReport n/a Report allows a migration minion to submit whether it succeeded or failed for a specific migration phase.
Watch n/a NotifyWatchResult Watch starts watching for status updates for a migration attempt for the model. It will report when a migration starts and when its status changes (including when it finishes). An initial event will be fired if there has ever been a migration attempt for the model. The MigrationStatusWatcher facade must be used to receive events from the watcher.

MigrationStatusWatcher

Name Params Results Description
Next n/a MigrationStatus Next returns when the status for a model migration for the associated model changes. The current details for the active migration are returned.
Stop n/a n/a Stop stops the watcher.

MigrationTarget

API implements the API required for the model migration master worker when communicating with the target controller.

Name Params Results Description
Abort ModelArgs n/a Abort removes the specified model from the database. It is an error to attempt to Abort a model that has a migration mode other than importing.
Activate ModelArgs n/a Activate sets the migration mode of the model to "active". It is an error to attempt to Abort a model that has a migration mode other than importing.
Import SerializedModel n/a Import takes a serialized Juju model, deserializes it, and recreates it in the receiving controller.

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.

NotifyWatcher

srvNotifyWatcher defines the API access to methods on a state.NotifyWatcher. Each client has its own current set of watchers, stored in resources.

Name Params Results Description
Next n/a n/a Next returns when a change has occurred to the entity being watched since the most recent call to Next or the Watch call that created the NotifyWatcher.
Stop n/a n/a Stop stops the watcher.

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

Provisioner

ProvisionerAPI provides access to the Provisioner API facade.

Name Params Results Description
APIAddresses n/a StringsResult APIAddresses returns the list of addresses used to connect to the API.
APIHostPorts n/a APIHostPortsResult APIHostPorts returns the API server addresses.
CACert n/a BytesResult CACert returns the certificate used to validate the state connection.
Constraints Entities ConstraintsResults Constraints returns the constraints for each given machine entity.
ContainerConfig n/a ContainerConfig ContainerConfig returns information from the environment config that is needed for container cloud-init.
ContainerManagerConfig ContainerManagerConfigParams ContainerManagerConfig ContainerManagerConfig returns information from the environment config that is needed for configuring the container manager.
ControllerConfig n/a ControllerConfigResult ControllerConfig returns the controller's configuration.
DistributionGroup Entities DistributionGroupResults DistributionGroup returns, for each given machine entity, a slice of instance.Ids that belong to the same distribution group as that machine. This information may be used to distribute instances for high availability.
EnsureDead Entities ErrorResults EnsureDead calls EnsureDead on each given entity from state. It will fail if the entity is not present. If it's Alive, nothing will happen (see state/EnsureDead() for units or machines).
FindTools FindToolsParams FindToolsResult FindTools returns a List containing all tools matching the given parameters.
GetContainerInterfaceInfo Entities MachineNetworkConfigResults GetContainerInterfaceInfo returns information to configure networking for a container. It accepts container tags as arguments.
InstanceId Entities StringResults InstanceId returns the provider specific instance id for each given machine or an CodeNotProvisioned error, if not set.
InstanceStatus Entities StatusResults InstanceStatus returns the instance status for each given entity. Only machine tags are accepted.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
MachinesWithTransientErrors n/a StatusResults MachinesWithTransientErrors returns status data for machines with provisioning errors which are transient.
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
ModelUUID n/a StringResult ModelUUID returns the model UUID to connect to the environment that the current connection is for.
PrepareContainerInterfaceInfo Entities MachineNetworkConfigResults PrepareContainerInterfaceInfo allocates an address and returns information to configure networking for a container. It accepts container tags as arguments.
ProvisioningInfo Entities ProvisioningInfoResults ProvisioningInfo returns the provisioning information for each given machine entity.
ReleaseContainerAddresses Entities ErrorResults ReleaseContainerAddresses finds addresses allocated to a container and marks them as Dead, to be released and removed. It accepts container tags as arguments.
Remove Entities ErrorResults Remove removes every given entity from state, calling EnsureDead first, then Remove. It will fail if the entity is not present.
Series Entities StringResults Series returns the deployed series for each given machine entity.
SetInstanceInfo InstancesInfo ErrorResults SetInstanceInfo sets the provider specific machine id, nonce, metadata and network info for each given machine. Once set, the instance id cannot be changed.
SetInstanceStatus SetStatus ErrorResults SetInstanceStatus updates the instance status for each given entity. Only machine tags are accepted.
SetPasswords EntityPasswords ErrorResults SetPasswords sets the given password for each supplied entity, if possible.
SetStatus SetStatus ErrorResults SetStatus sets the status of each given entity.
SetSupportedContainers MachineContainersParams ErrorResults SetSupportedContainers updates the list of containers supported by the machines passed in args.
StateAddresses n/a StringsResult StateAddresses returns the list of addresses used to connect to the state.
Status Entities StatusResults Status returns the status of each given entity.
Tools Entities ToolsResults Tools finds the tools necessary for the given agents.
UpdateStatus SetStatus ErrorResults UpdateStatus updates the status data of each given entity. TODO(fwereade): WTF. This method exists *only* for the convenience of the *client* API -- and is itself completely broken -- but we still expose it in every facade with a StatusSetter? FFS.
WatchAPIHostPorts n/a NotifyWatchResult WatchAPIHostPorts watches the API server addresses.
WatchAllContainers WatchContainers StringsWatchResults WatchAllContainers starts a StringsWatcher to watch all containers deployed to any machine passed in args.
WatchContainers WatchContainers StringsWatchResults WatchContainers starts a StringsWatcher to watch containers deployed to any machine passed in args.
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.
WatchMachineErrorRetry n/a NotifyWatchResult WatchMachineErrorRetry returns a NotifyWatcher that notifies when the provisioner should retry provisioning machines with transient errors.
WatchModelMachines n/a StringsWatchResult WatchModelMachines returns a StringsWatcher that notifies of changes to the life cycles of the top level machines in the current model.

ProxyUpdater

Name Params Results Description
ProxyConfig Entities ProxyConfigResults ProxyConfig returns the proxy settings for the current environment
WatchForProxyConfigAndAPIHostPortChanges Entities NotifyWatchResults WatchForProxyConfigAndAPIHostPortChanges watches for cleanups to be perfomed in state

Reboot

RebootAPI provides access to the Upgrader API facade.

Name Params Results Description
ClearReboot Entities ErrorResults ClearReboot will clear the reboot flag on provided machines, if it exists.
GetRebootAction Entities RebootActionResults GetRebootAction returns the action a machine agent should take. If a reboot flag is set on the machine, then that machine is expected to reboot (params.ShouldReboot). a reboot flag set on the machine parent or grandparent, will cause the machine to shutdown (params.ShouldShutdown). If no reboot flag is set, the machine should do nothing (params.ShouldDoNothing).
RequestReboot Entities ErrorResults RequestReboot sets the reboot flag on the provided machines
WatchForRebootEvent n/a NotifyWatchResult WatchForRebootEvent starts a watcher to track if there is a new reboot request on the machines ID or any of its parents (in case we are a container).

RelationUnitsWatcher

srvRelationUnitsWatcher defines the API wrapping a state.RelationUnitsWatcher. It notifies about units entering and leaving the scope of a RelationUnit, and changes to the settings of those units known to have entered.

Name Params Results Description
Next n/a RelationUnitsWatchResult Next returns when a change has occured to an entity of the collection being watched since the most recent call to Next or the Watch call that created the srvRelationUnitsWatcher.
Stop n/a n/a Stop stops the watcher.

Resumer

ResumerAPI implements the API used by the resumer worker.

Name Params Results Description
ResumeTransactions n/a n/a

RetryStrategy

RetryStrategyAPI implements RetryStrategy

Name Params Results Description
RetryStrategy Entities RetryStrategyResults RetryStrategy returns RetryStrategyResults that can be used by any code that uses to configure the retry timer that's currently in juju utils.
WatchRetryStrategy Entities NotifyWatchResults WatchRetryStrategy watches for changes to the environment. Currently we only allow changes to the boolean that determines whether retries should be attempted or not.

SSHClient

Facade implements the API required by the sshclient worker.

Name Params Results Description
PrivateAddress Entities SSHAddressResults PrivateAddress reports the preferred private network address for one or more entities. Machines and units are supported.
Proxy n/a SSHProxyResult Proxy returns whether SSH connections should be proxied through the controller hosts for the model associated with the API connection.
PublicAddress Entities SSHAddressResults PublicAddress reports the preferred public network address for one or more entities. Machines and units are suppored.
PublicKeys Entities SSHPublicKeysResults PublicKeys returns the public SSH hosts for one or more entities. Machines and units are supported.

Singular

Facade allows controller machines to request exclusive rights to administer some specific model for a limited time.

Name Params Results Description
Claim SingularClaims ErrorResults Claim makes the supplied singular-controller lease requests. (In practice, any requests not for the connection's model, or not on behalf of the connected EnvironManager machine, will be rejected.)
Wait Entities ErrorResults Wait waits for the singular-controller lease to expire for all supplied entities. (In practice, any requests that do not refer to the connection's model will be rejected.)

Spaces

API defines the methods the Spaces API facade implements.

Name Params Results Description
CreateSpaces CreateSpacesParams ErrorResults
ListSpaces n/a ListSpacesResults

StatusHistory

API is the concrete implementation of the Pruner endpoint..

Name Params Results Description
Prune StatusHistoryPruneArgs n/a Prune endpoint removes status history entries until only the ones newer than now - p.MaxHistoryTime remain and the history is smaller than p.MaxHistoryMB.

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.

StorageProvisioner

StorageProvisionerAPI provides access to the Provisioner API facade.

Name Params Results Description
AttachmentLife MachineStorageIds LifeResults AttachmentLife returns the lifecycle state of each specified machine storage attachment.
EnsureDead Entities ErrorResults EnsureDead calls EnsureDead on each given entity from state. It will fail if the entity is not present. If it's Alive, nothing will happen (see state/EnsureDead() for units or machines).
FilesystemAttachmentParams MachineStorageIds FilesystemAttachmentParamsResults FilesystemAttachmentParams returns the parameters for creating the filesystem attachments with the specified IDs.
FilesystemAttachments MachineStorageIds FilesystemAttachmentResults FilesystemAttachments returns details of filesystem attachments with the specified IDs.
FilesystemParams Entities FilesystemParamsResults FilesystemParams returns the parameters for creating the filesystems with the specified tags.
Filesystems Entities FilesystemResults Filesystems returns details of filesystems with the specified tags.
InstanceId Entities StringResults InstanceId returns the provider specific instance id for each given machine or an CodeNotProvisioned error, if not set.
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
Remove Entities ErrorResults Remove removes volumes and filesystems from state.
RemoveAttachment MachineStorageIds ErrorResults RemoveAttachments removes the specified machine storage attachments from state.
SetFilesystemAttachmentInfo FilesystemAttachments ErrorResults SetFilesystemAttachmentInfo records the details of newly provisioned filesystem attachments.
SetFilesystemInfo Filesystems ErrorResults SetFilesystemInfo records the details of newly provisioned filesystems.
SetStatus SetStatus ErrorResults SetStatus sets the status of each given entity.
SetVolumeAttachmentInfo VolumeAttachments ErrorResults SetVolumeAttachmentInfo records the details of newly provisioned volume attachments.
SetVolumeInfo Volumes ErrorResults SetVolumeInfo records the details of newly provisioned volumes.
UpdateStatus SetStatus ErrorResults UpdateStatus updates the status data of each given entity. TODO(fwereade): WTF. This method exists *only* for the convenience of the *client* API -- and is itself completely broken -- but we still expose it in every facade with a StatusSetter? FFS.
VolumeAttachmentParams MachineStorageIds VolumeAttachmentParamsResults VolumeAttachmentParams returns the parameters for creating the volume attachments with the specified IDs.
VolumeAttachments MachineStorageIds VolumeAttachmentResults VolumeAttachments returns details of volume attachments with the specified IDs.
VolumeBlockDevices MachineStorageIds BlockDeviceResults VolumeBlockDevices returns details of the block devices corresponding to the volume attachments with the specified IDs.
VolumeParams Entities VolumeParamsResults VolumeParams returns the parameters for creating or destroying the volumes with the specified tags.
Volumes Entities VolumeResults Volumes returns details of volumes with the specified tags.
WatchBlockDevices Entities NotifyWatchResults WatchBlockDevices watches for changes to the specified machines' block devices.
WatchFilesystemAttachments Entities MachineStorageIdsWatchResults WatchFilesystemAttachments watches for changes to filesystem attachments scoped to the entity with the tag passed to NewState.
WatchFilesystems Entities StringsWatchResults WatchFilesystems watches for changes to filesystems scoped to the entity with the tag passed to NewState.
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.
WatchMachines Entities NotifyWatchResults WatchMachines watches for changes to the specified machines.
WatchVolumeAttachments Entities MachineStorageIdsWatchResults WatchVolumeAttachments watches for changes to volume attachments scoped to the entity with the tag passed to NewState.
WatchVolumes Entities StringsWatchResults WatchVolumes watches for changes to volumes scoped to the entity with the tag passed to NewState.

StringsWatcher

srvStringsWatcher defines the API for methods on a state.StringsWatcher. Each client has its own current set of watchers, stored in resources. srvStringsWatcher notifies about changes for all entities of a given kind, sending the changes as a list of strings.

Name Params Results Description
Next n/a StringsWatchResult Next returns when a change has occured to an entity of the collection being watched since the most recent call to Next or the Watch call that created the srvStringsWatcher.
Stop n/a n/a Stop stops the watcher.

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.

Undertaker

UndertakerAPI implements the API used by the machine undertaker worker.

Name Params Results Description
ModelConfig n/a ModelConfigResult ModelConfig returns the model's configuration.
ModelInfo n/a UndertakerModelInfoResult ModelInfo returns information on the model needed by the undertaker worker.
ProcessDyingModel n/a n/a ProcessDyingModel checks if a dying environment has any machines or services. If there are none, the environment's life is changed from dying to dead.
RemoveModel n/a n/a RemoveModel removes any records of this model from Juju.
SetStatus SetStatus ErrorResults SetStatus sets the status of each given entity.
UpdateStatus SetStatus ErrorResults UpdateStatus updates the status data of each given entity. TODO(fwereade): WTF. This method exists *only* for the convenience of the *client* API -- and is itself completely broken -- but we still expose it in every facade with a StatusSetter? FFS.
WatchModelResources n/a NotifyWatchResults WatchModelResources creates watchers for changes to the lifecycle of an model's machines and services.

UnitAssigner

API implements the functionality for assigning units to machines.

Name Params Results Description
AssignUnits Entities ErrorResults AssignUnits assigns the units with the given ids to the correct machine. The error results are returned in the same order as the given entities.
SetAgentStatus SetStatus ErrorResults SetAgentStatus will set status for agents of Units passed in args, if one of the args is not an Unit it will fail.
WatchUnitAssignments n/a StringsWatchResult WatchUnitAssignments returns a strings watcher that is notified when new unit assignments are added to the db.

Uniter

UniterAPIV3 implements the API version 3, used by the uniter worker.

Name Params Results Description
APIAddresses n/a StringsResult APIAddresses returns the list of addresses used to connect to the API.
APIHostPorts n/a APIHostPortsResult APIHostPorts returns the API server addresses.
Actions Entities ActionResults Actions returns the Actions by Tags passed and ensures that the Unit asking for them is the same Unit that has the Actions.
AddMetricBatches MetricBatchParams ErrorResults AddMetricBatches adds the metrics for the specified unit.
AddUnitStorage StoragesAddParams ErrorResults AddUnitStorage validates and creates additional storage instances for units. Failures on an individual storage instance do not block remaining instances from being processed.
AllMachinePorts Entities MachinePortsResults AllMachinePorts returns all opened port ranges for each given machine (on all networks).
ApplicationStatus Entities ApplicationStatusResults ApplicationStatus returns the status of the Applications and its workloads if the given unit is the leader.
AssignedMachine Entities StringResults AssignedMachine returns the machine tag for each given unit tag, or an error satisfying params.IsCodeNotAssigned when a unit has no assigned machine.
AvailabilityZone Entities StringResults AvailabilityZone returns the availability zone for each given unit, if applicable.
BeginActions Entities ErrorResults BeginActions marks the actions represented by the passed in Tags as running.
CACert n/a BytesResult CACert returns the certificate used to validate the state connection.
CharmArchiveSha256 CharmURLs StringResults CharmArchiveSha256 returns the SHA256 digest of the charm archive (bundle) data for each charm url in the given parameters.
CharmModifiedVersion Entities IntResults CharmModifiedVersion returns the most CharmModifiedVersion for all given units or services.
CharmURL Entities StringBoolResults CharmURL returns the charm URL for all given units or services.
ClearResolved Entities ErrorResults ClearResolved removes any resolved setting from each given unit.
ClosePorts EntitiesPortRanges ErrorResults ClosePorts sets the policy of the port range with protocol to be closed, for all given units.
ConfigSettings Entities ConfigSettingsResults ConfigSettings returns the complete set of service charm config settings available to each given unit.
CurrentModel n/a ModelResult CurrentModel returns the name and UUID for the current juju model.
Destroy Entities ErrorResults Destroy advances all given Alive units' lifecycles as far as possible. See state/Unit.Destroy().
DestroyAllSubordinates Entities ErrorResults DestroyAllSubordinates destroys all subordinates of each given unit.
DestroyUnitStorageAttachments Entities ErrorResults DestroyUnitStorageAttachments marks each storage attachment of the specified units as Dying.
EnsureDead Entities ErrorResults EnsureDead calls EnsureDead on each given entity from state. It will fail if the entity is not present. If it's Alive, nothing will happen (see state/EnsureDead() for units or machines).
EnterScope RelationUnits ErrorResults EnterScope ensures each unit has entered its scope in the relation, for all of the given relation/unit pairs. See also state.RelationUnit.EnterScope().
FinishActions ActionExecutionResults ErrorResults FinishActions saves the result of a completed Action
GetMeterStatus Entities MeterStatusResults
GetPrincipal Entities StringBoolResults GetPrincipal returns the result of calling PrincipalName() and converting it to a tag, on each given unit.
HasSubordinates Entities BoolResults HasSubordinates returns the whether each given unit has any subordinates.
JoinedRelations Entities StringsResults JoinedRelations returns the tags of all relations for which each supplied unit has entered scope. It should be called RelationsInScope, but it's not convenient to make that change until we have versioned APIs.
LeaveScope RelationUnits ErrorResults LeaveScope signals each unit has left its scope in the relation, for all of the given relation/unit pairs. See also state.RelationUnit.LeaveScope().
Life Entities LifeResults Life returns the life status of every supplied entity, where available.
Merge MergeLeadershipSettingsBulkParams ErrorResults Merge merges in the provided leadership settings. Only leaders for the given service may perform this operation.
ModelConfig n/a ModelConfigResult ModelConfig returns the current environment's configuration.
ModelUUID n/a StringResult ModelUUID returns the model UUID to connect to the environment that the current connection is for.
NetworkConfig UnitsNetworkConfig UnitNetworkConfigResults NetworkConfig returns information about all given relation/unit pairs, including their id, key and the local endpoint.
OpenPorts EntitiesPortRanges ErrorResults OpenPorts sets the policy of the port range with protocol to be opened, for all given units.
PrivateAddress Entities StringResults PrivateAddress returns the private address for each given unit, if set.
ProviderType n/a StringResult ProviderType returns the provider type used by the current juju model. TODO(dimitern): Refactor the uniter to call this instead of calling ModelConfig() just to get the provider type. Once we have machine addresses, this might be completely unnecessary though.
PublicAddress Entities StringResults PublicAddress returns the public address for each given unit, if set.
Read Entities GetLeadershipSettingsBulkResults Read reads leadership settings for the provided service ID. Any unit of the service may perform this operation.
ReadRemoteSettings RelationUnitPairs SettingsResults ReadRemoteSettings returns the remote settings of each given set of relation/local unit/remote unit.
ReadSettings RelationUnits SettingsResults ReadSettings returns the local settings of each given set of relation/unit.
Relation RelationUnits RelationResults Relation returns information about all given relation/unit pairs, including their id, key and the local endpoint.
RelationById RelationIds RelationResults RelationById returns information about all given relations, specified by their ids, including their key and the local endpoint.
RemoveStorageAttachments StorageAttachmentIds ErrorResults RemoveStorageAttachments removes the specified storage attachments from state.
RequestReboot Entities ErrorResults RequestReboot sets the reboot flag on the provided machines
Resolved Entities ResolvedModeResults Resolved returns the current resolved setting for each given unit.
SetAgentStatus SetStatus ErrorResults SetAgentStatus will set status for agents of Units passed in args, if one of the args is not an Unit it will fail.
SetApplicationStatus SetStatus ErrorResults SetApplicationStatus sets the status for all the Services in args if the given Unit is the leader.
SetCharmURL EntitiesCharmURL ErrorResults SetCharmURL sets the charm URL for each given unit. An error will be returned if a unit is dead, or the charm URL is not know.
SetStatus SetStatus ErrorResults SetStatus will set status for a entities passed in args. If the entity is a Unit it will instead set status to its agent, to emulate backwards compatibility.
SetUnitStatus SetStatus ErrorResults SetUnitStatus sets status for all elements passed in args, the difference with SetStatus is that if an entity is a Unit it will set its status instead of its agent.
SetWorkloadVersion EntityWorkloadVersions ErrorResults SetWorkloadVersion sets the workload version for each given unit. An error will be returned if a unit is dead.
StorageAttachmentLife StorageAttachmentIds LifeResults StorageAttachmentLife returns the lifecycle state of the storage attachments with the specified tags.
StorageAttachments StorageAttachmentIds StorageAttachmentResults StorageAttachments returns the storage attachments with the specified tags.
UnitStatus Entities StatusResults UnitStatus returns the workload status information for the unit.
UnitStorageAttachments Entities StorageAttachmentIdsResults UnitStorageAttachments returns the IDs of storage attachments for a collection of units.
UpdateSettings RelationUnitsSettings ErrorResults UpdateSettings persists all changes made to the local settings of all given pairs of relation and unit. Keys with empty values are considered a signal to delete these values.
Watch Entities NotifyWatchResults Watch starts an NotifyWatcher for each given entity.
WatchAPIHostPorts n/a NotifyWatchResult WatchAPIHostPorts watches the API server addresses.
WatchActionNotifications Entities StringsWatchResults WatchActionNotifications returns a StringsWatcher for observing incoming action calls to a unit. See also state/watcher.go Unit.WatchActionNotifications(). This method is called from api/uniter/uniter.go WatchActionNotifications().
WatchApplicationRelations Entities StringsWatchResults WatchApplicationRelations returns a StringsWatcher, for each given service, that notifies of changes to the lifecycles of relations involving that service.
WatchConfigSettings Entities NotifyWatchResults WatchConfigSettings returns a NotifyWatcher for observing changes to each unit's service configuration settings. See also state/watcher.go:Unit.WatchConfigSettings().
WatchForModelConfigChanges n/a NotifyWatchResult WatchForModelConfigChanges returns a NotifyWatcher that observes changes to the environment configuration. Note that although the NotifyWatchResult contains an Error field, it's not used because we are only returning a single watcher, so we use the regular error return.
WatchLeadershipSettings Entities NotifyWatchResults WatchLeadershipSettings will block the caller until leadership settings for the given service ID change.
WatchMeterStatus Entities NotifyWatchResults
WatchRelationUnits RelationUnits RelationUnitsWatchResults WatchRelationUnits returns a RelationUnitsWatcher for observing changes to every unit in the supplied relation that is visible to the supplied unit. See also state/watcher.go:RelationUnit.Watch().
WatchStorageAttachments StorageAttachmentIds NotifyWatchResults WatchStorageAttachments creates watchers for a collection of storage attachments, each of which can be used to watch changes to storage attachment info.
WatchUnitAddresses Entities NotifyWatchResults WatchUnitAddresses returns a NotifyWatcher for observing changes to each unit's addresses.
WatchUnitStorageAttachments Entities StringsWatchResults WatchUnitStorageAttachments creates watchers for a collection of units, each of which can be used to watch for lifecycle changes to the corresponding unit's storage attachments.
WorkloadVersion Entities StringResults WorkloadVersion returns the workload version for all given units or services.

Upgrader

Name Params Results Description
DesiredVersion Entities VersionResults
SetTools EntitiesVersion ErrorResults
Tools Entities ToolsResults
WatchAPIVersion Entities NotifyWatchResults

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.

VolumeAttachmentsWatcher

srvMachineStorageIdsWatcher defines the API wrapping a state.StringsWatcher watching machine/storage attachments. This watcher notifies about storage entities (volumes/filesystems) being attached to and detached from machines. TODO(axw) state needs a new watcher, this is a bt of a hack. State watchers could do with some deduplication of logic, and I don't want to add to that spaghetti right now.

Name Params Results Description
Next n/a MachineStorageIdsWatchResult Next returns when a change has occured to an entity of the collection being watched since the most recent call to Next or the Watch call that created the srvMachineStorageIdsWatcher.
Stop n/a n/a Stop stops the watcher.

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.