@canonical/jujulib
Version:
Juju API client
202 lines (200 loc) • 6.01 kB
TypeScript
/**
Juju MigrationMaster version 3.
This facade is available on:
Controller-machine-agent
Machine-agent
Unit-agent
Models
NOTE: This file was generated using the Juju schema
from Juju 3.3 at the git SHA 65fa4c1ee5.
Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface Error {
code: string;
info?: AdditionalProperties;
message: string;
}
export interface MasterMigrationStatus {
"migration-id": string;
phase: string;
"phase-changed-time": string;
spec: MigrationSpec;
}
export interface MigrationModelInfo {
"agent-version": string;
"controller-agent-version": Number;
"facade-versions"?: Record<string, number[]>;
name: string;
"owner-tag": string;
uuid: string;
}
export interface MigrationSourceInfo {
addrs: string[];
"ca-cert": string;
"controller-alias"?: string;
"controller-tag": string;
"local-related-models": 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 MinionReports {
failed: string[];
"migration-id": string;
phase: string;
"success-count": number;
"unknown-count": number;
"unknown-sample": string[];
}
export interface NotifyWatchResult {
NotifyWatcherId: string;
error?: Error;
}
export interface Number {
Build: number;
Major: number;
Minor: number;
Patch: number;
Tag: string;
}
export interface PrechecksArgs {
"target-controller-version": Number;
}
export interface ProcessRelations {
"controller-alias": string;
}
export interface SerializedModel {
bytes: number[];
charms: string[];
resources: SerializedModelResource[];
tools: SerializedModelTools[];
}
export interface SerializedModelResource {
application: string;
"application-revision": SerializedModelResourceRevision;
"charmstore-revision": SerializedModelResourceRevision;
name: string;
"unit-revisions": Record<string, SerializedModelResourceRevision>;
}
export interface SerializedModelResourceRevision {
description: string;
fingerprint: string;
origin: string;
path: string;
revision: number;
size: number;
timestamp: string;
type: string;
username?: string;
}
export interface SerializedModelTools {
uri: string;
version: string;
}
export interface SetMigrationPhaseArgs {
phase: string;
}
export interface SetMigrationStatusMessageArgs {
message: string;
}
export interface StringResult {
error?: Error;
result: string;
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
API implements the API required for the model migration
master worker.
*/
declare class MigrationMasterV3 implements Facade {
static NAME: string;
static VERSION: number;
NAME: string;
VERSION: number;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo);
/**
Export serializes the model associated with the API connection.
*/
export(params: any): Promise<SerializedModel>;
/**
MigrationStatus returns the details and progress of the latest
model migration.
*/
migrationStatus(params: any): Promise<MasterMigrationStatus>;
/**
MinionReportTimeout returns the configuration value for this controller that
indicates how long the migration master worker should wait for minions to
reported on phases of a migration.
*/
minionReportTimeout(params: any): Promise<StringResult>;
/**
MinionReports returns details of the reports made by migration
minions to the controller for the current migration phase.
*/
minionReports(params: any): Promise<MinionReports>;
/**
ModelInfo returns essential information about the model to be
migrated.
*/
modelInfo(params: any): Promise<MigrationModelInfo>;
/**
Prechecks performs pre-migration checks on the model and
(source) controller.
*/
prechecks(params: PrechecksArgs): Promise<any>;
/**
ProcessRelations processes any relations that need updating after an export.
This should help fix any remoteApplications that have been migrated.
*/
processRelations(params: ProcessRelations): Promise<any>;
/**
Reap removes all documents for the model associated with the API
connection.
*/
reap(params: any): Promise<any>;
/**
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.
*/
setPhase(params: SetMigrationPhaseArgs): Promise<any>;
/**
SetStatusMessage sets a human readable status message containing
information about the migration's progress. This will be shown in
status output shown to the end user.
*/
setStatusMessage(params: SetMigrationStatusMessageArgs): Promise<any>;
/**
SourceControllerInfo returns the details required to connect to
the source controller for model migration.
*/
sourceControllerInfo(params: any): Promise<MigrationSourceInfo>;
/**
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.
*/
watch(params: any): Promise<NotifyWatchResult>;
/**
WatchMinionReports sets up a watcher which reports when a report
for a migration minion has arrived.
*/
watchMinionReports(params: any): Promise<NotifyWatchResult>;
}
export default MigrationMasterV3;