import * as plugins from '../plugins.js'; import * as authInterfaces from '../data/auth.js'; import type { IAdminUserProjection } from './admin.js'; export type TUserManagementRole = 'admin' | 'user'; /** * List all OpsServer users (admin-only). * Deliberately omits password/secret fields from the response. */ export interface IReq_ListUsers extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_ListUsers > { method: 'listUsers'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { users: IAdminUserProjection[]; }; } /** * Create a persisted OpsServer user account (admin-only). */ export interface IReq_CreateUser extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateUser > { method: 'createUser'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; email: string; name?: string; role: TUserManagementRole; password: string; enableIdpGlobalAuth?: boolean; }; response: { success: boolean; user?: IAdminUserProjection; message?: string; }; } /** * Delete a persisted OpsServer user account (admin-only). */ export interface IReq_DeleteUser extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteUser > { method: 'deleteUser'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { success: boolean; message?: string; }; }