/** * Copyright (c) 2020 TypeFox GmbH. All rights reserved. * Licensed under the GNU Affero General Public License (AGPL). * See License-AGPL.txt in the project root for license information. */ import { User, Workspace, NamedWorkspaceFeatureFlag } from "./protocol"; import { Without } from "./util/without"; import { WorkspaceInstance, WorkspaceInstancePhase } from "./workspace-instance"; import { RoleOrPermission } from "./permission"; export interface AdminServer { adminGetUsers(req: AdminGetListRequest): Promise>; adminGetUser(id: string): Promise; adminBlockUser(req: AdminBlockUserRequest): Promise; adminModifyRoleOrPermission(req: AdminModifyRoleOrPermissionRequest): Promise; adminModifyPermanentWorkspaceFeatureFlag(req: AdminModifyPermanentWorkspaceFeatureFlagRequest): Promise; adminGetWorkspaces(req: AdminGetWorkspacesRequest): Promise>; adminGetWorkspace(id: string): Promise; adminForceStopWorkspace(id: string): Promise; adminSetLicense(key: string): Promise; } export interface AdminGetListRequest { offset: number; limit: number; orderBy: keyof T; orderDir: "asc" | "desc"; searchTerm?: string; } export interface AdminGetListResult { total: number; rows: T[]; } export interface AdminBlockUserRequest { id: string; blocked: boolean; } export interface AdminModifyRoleOrPermissionRequest { id: string; rpp: { r: RoleOrPermission; add: boolean; }[]; } export interface AdminModifyPermanentWorkspaceFeatureFlagRequest { id: string; changes: { featureFlag: NamedWorkspaceFeatureFlag; add: boolean; }[]; } export interface WorkspaceAndInstance extends Without, Without { workspaceId: string; workspaceCreationTime: string; instanceId: string; instanceCreationTime: string; phase: WorkspaceInstancePhase; } export interface AdminGetWorkspacesRequest extends AdminGetListRequest { ownerId?: string; } //# sourceMappingURL=admin-protocol.d.ts.map