/** Juju UserManager version 3. NOTE: This file was generated using the Juju schema from Juju 4.0.10 at the git SHA b08ad63. Do not manually edit this file. */ import type { JujuRequest } from "../../../generator/interfaces.js"; import { ConnectionInfo, Transport } from "../../client.js"; import { Facade } from "../../types.js"; import { autoBind } from "../../utils.js"; export interface AddUser { "display-name": string; password?: string; username: string; } export interface AddUserResult { error?: Error; "secret-key"?: number[]; tag?: string; } export interface AddUserResults { results: AddUserResult[]; } export interface AddUsers { users: AddUser[]; } export interface Entities { entities: Entity[]; } export interface Entity { tag: string; } export interface EntityPassword { password: string; tag: string; } export interface EntityPasswords { changes: EntityPassword[]; } export interface Error { code: string; info?: AdditionalProperties; message: string; } export interface ErrorResult { error?: Error; } export interface ErrorResults { results: ErrorResult[]; } export interface ModelUserInfo { access: string; "display-name": string; "last-connection": string; "model-tag": string; user: string; } export interface ModelUserInfoResult { error?: Error; result?: ModelUserInfo; } export interface ModelUserInfoResults { results: ModelUserInfoResult[]; } export interface UserInfo { access: string; "created-by": string; "date-created": string; disabled: boolean; "display-name": string; "last-connection"?: string; username: string; } export interface UserInfoRequest { entities: Entity[]; "include-disabled": boolean; } export interface UserInfoResult { error?: Error; result?: UserInfo; } export interface UserInfoResults { results: UserInfoResult[]; } export interface AdditionalProperties { [key: string]: any; } class UserManagerV3 implements Facade { static NAME = "UserManager"; static VERSION = 3; NAME = "UserManager"; VERSION = 3; _transport: Transport; _info: ConnectionInfo; constructor(transport: Transport, info: ConnectionInfo) { this._transport = transport; this._info = info; // Automatically bind all methods to instances. autoBind(this); } addUser(params: AddUsers): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "AddUser", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } disableUser(params: Entities): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "DisableUser", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } enableUser(params: Entities): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "EnableUser", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } modelUserInfo(params: Entities): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "ModelUserInfo", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } removeUser(params: Entities): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "RemoveUser", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } resetPassword(params: Entities): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "ResetPassword", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } setPassword(params: EntityPasswords): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "SetPassword", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } userInfo(params: UserInfoRequest): Promise { return new Promise((resolve, reject) => { const req: JujuRequest = { type: "UserManager", request: "UserInfo", version: 3, params: params, }; this._transport.write(req, resolve, reject); }); } } export default UserManagerV3;