@canonical/jujulib
Version:
Juju API client
341 lines (337 loc) • 9.79 kB
TypeScript
/**
Juju Controller version 7.
This facade is available on:
Controller-machine-agent
Machine-agent
Unit-agent
Controllers
NOTE: This file was generated using the Juju schema
from Juju 2.9-rc3 at the git SHA cb361902f8.
Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface AllWatcherId {
"watcher-id": string;
}
export interface CloudCredential {
attrs?: Record<string, string>;
"auth-type": string;
redacted?: string[];
}
export interface CloudSpec {
cacertificates?: string[];
credential?: CloudCredential;
endpoint?: string;
"identity-endpoint"?: string;
name: string;
region?: string;
"storage-endpoint"?: string;
type: string;
}
export interface CloudSpecResult {
error?: Error;
result?: CloudSpec;
}
export interface CloudSpecResults {
results?: CloudSpecResult[];
}
export interface ConfigValue {
source: string;
value: AdditionalProperties;
}
export interface ControllerAPIInfoResult {
addresses: string[];
cacert: string;
error?: Error;
}
export interface ControllerAPIInfoResults {
results: ControllerAPIInfoResult[];
}
export interface ControllerConfigResult {
config: AdditionalProperties;
}
export interface ControllerConfigSet {
config: AdditionalProperties;
}
export interface DestroyControllerArgs {
"destroy-models": boolean;
"destroy-storage"?: boolean;
}
export interface Entities {
entities: Entity[];
}
export interface Entity {
tag: string;
}
export interface Error {
code: string;
info?: AdditionalProperties;
message: string;
}
export interface ErrorResult {
error?: Error;
}
export interface ErrorResults {
results: ErrorResult[];
}
export interface HostedModelConfig {
"cloud-spec"?: CloudSpec;
config?: AdditionalProperties;
error?: Error;
name: string;
owner: string;
}
export interface HostedModelConfigsResults {
models: HostedModelConfig[];
}
export interface InitiateMigrationArgs {
specs: MigrationSpec[];
}
export interface InitiateMigrationResult {
error?: Error;
"migration-id": string;
"model-tag": string;
}
export interface InitiateMigrationResults {
results: InitiateMigrationResult[];
}
export interface MachineHardware {
arch?: string;
"availability-zone"?: string;
cores?: number;
"cpu-power"?: number;
mem?: number;
"root-disk"?: number;
tags?: string[];
}
export interface MigrationSpec {
"model-tag": string;
"target-info": MigrationTargetInfo;
}
export interface MigrationTargetInfo {
addrs: string[];
"auth-tag": string;
"ca-cert": string;
"controller-alias"?: string;
"controller-tag": string;
macaroons?: string;
password?: string;
}
export interface Model {
name: string;
"owner-tag": string;
type: string;
uuid: string;
}
export interface ModelBlockInfo {
blocks: string[];
"model-uuid": string;
name: string;
"owner-tag": string;
}
export interface ModelBlockInfoList {
models?: ModelBlockInfo[];
}
export interface ModelConfigResults {
config: Record<string, ConfigValue>;
}
export interface ModelFilesystemInfo {
detachable?: boolean;
id: string;
message?: string;
"provider-id"?: string;
status?: string;
}
export interface ModelMachineInfo {
"display-name"?: string;
"ha-primary"?: boolean;
hardware?: MachineHardware;
"has-vote"?: boolean;
id: string;
"instance-id"?: string;
message?: string;
status?: string;
"wants-vote"?: boolean;
}
export interface ModelStatus {
"application-count": number;
error?: Error;
filesystems?: ModelFilesystemInfo[];
"hosted-machine-count": number;
life: string;
machines?: ModelMachineInfo[];
"model-tag": string;
"owner-tag": string;
type: string;
"unit-count": number;
volumes?: ModelVolumeInfo[];
}
export interface ModelStatusResults {
models: ModelStatus[];
}
export interface ModelTag {
[key: string]: AdditionalProperties;
}
export interface ModelVolumeInfo {
detachable?: boolean;
id: string;
message?: string;
"provider-id"?: string;
status?: string;
}
export interface ModifyControllerAccess {
access: string;
action: string;
"user-tag": string;
}
export interface ModifyControllerAccessRequest {
changes: ModifyControllerAccess[];
}
export interface NotifyWatchResult {
NotifyWatcherId: string;
error?: Error;
}
export interface NotifyWatchResults {
results: NotifyWatchResult[];
}
export interface RemoveBlocksArgs {
all: boolean;
}
export interface StringResult {
error?: Error;
result: string;
}
export interface UserAccess {
access: string;
"user-tag": string;
}
export interface UserAccessResult {
error?: Error;
result?: UserAccess;
}
export interface UserAccessResults {
results?: UserAccessResult[];
}
export interface UserModel {
"last-connection": string;
model: Model;
}
export interface UserModelList {
"user-models": UserModel[];
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
ControllerAPIv7 provides the v7 Controller API. The only difference
between this and v8 is that v7 doesn't have the ControllerVersion method.
*/
declare class ControllerV7 implements Facade {
static NAME: string;
static VERSION: number;
NAME: string;
VERSION: number;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo);
/**
AllModels allows controller administrators to get the list of all the
models in the controller.
*/
allModels(params: any): Promise<UserModelList>;
/**
CloudSpec returns the model's cloud spec.
*/
cloudSpec(params: Entities): Promise<CloudSpecResults>;
/**
ConfigSet changes the value of specified controller configuration
settings. Only some settings can be changed after bootstrap.
Settings that aren't specified in the params are left unchanged.
*/
configSet(params: ControllerConfigSet): Promise<any>;
/**
ControllerAPIInfoForModels returns the controller api connection details for the specified models.
*/
controllerAPIInfoForModels(params: Entities): Promise<ControllerAPIInfoResults>;
/**
ControllerConfig returns the controller's configuration.
*/
controllerConfig(params: any): Promise<ControllerConfigResult>;
/**
DestroyController destroys the controller.
If the args specify the destruction of the models, this method will
attempt to do so. Otherwise, if the controller has any non-empty,
non-Dead hosted models, then an error with the code
params.CodeHasHostedModels will be transmitted.
*/
destroyController(params: DestroyControllerArgs): Promise<any>;
/**
GetCloudSpec constructs the CloudSpec for a validated and authorized model.
*/
getCloudSpec(params: ModelTag): Promise<CloudSpecResult>;
/**
GetControllerAccess returns the level of access the specified users
have on the controller.
*/
getControllerAccess(params: Entities): Promise<UserAccessResults>;
/**
HostedModelConfigs returns all the information that the client needs in
order to connect directly with the host model's provider and destroy it
directly.
*/
hostedModelConfigs(params: any): Promise<HostedModelConfigsResults>;
/**
IdentityProviderURL returns the URL of the configured external identity
provider for this controller or an empty string if no external identity
provider has been configured when the controller was bootstrapped.
NOTE: the implementation intentionally does not check for SuperuserAccess
as the URL is known even to users with login access.
*/
identityProviderURL(params: any): Promise<StringResult>;
/**
InitiateMigration attempts to begin the migration of one or
more models to other controllers.
*/
initiateMigration(params: InitiateMigrationArgs): Promise<InitiateMigrationResults>;
/**
ListBlockedModels returns a list of all models on the controller
which have a block in place. The resulting slice is sorted by model
name, then owner. Callers must be controller administrators to retrieve the
list.
*/
listBlockedModels(params: any): Promise<ModelBlockInfoList>;
/**
ModelConfig returns the model config for the controller
model. For information on the current model, use
client.ModelGet
*/
modelConfig(params: any): Promise<ModelConfigResults>;
/**
ModelStatus returns a summary of the model.
*/
modelStatus(params: Entities): Promise<ModelStatusResults>;
/**
ModifyControllerAccess changes the model access granted to users.
*/
modifyControllerAccess(params: ModifyControllerAccessRequest): Promise<ErrorResults>;
/**
MongoVersion allows the introspection of the mongo version per controller
*/
mongoVersion(params: any): Promise<StringResult>;
/**
RemoveBlocks removes all the blocks in the controller.
*/
removeBlocks(params: RemoveBlocksArgs): Promise<any>;
/**
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.
*/
watchAllModels(params: any): Promise<AllWatcherId>;
/**
WatchCloudSpecsChanges returns a watcher for cloud spec changes.
*/
watchCloudSpecsChanges(params: Entities): Promise<NotifyWatchResults>;
}
export default ControllerV7;