import { Action, WeaviateGroupType, WeaviateUserType } from '../openapi/types.js'; export type AliasAction = Extract; export type BackupsAction = Extract; export type McpAction = Extract; export type ClusterAction = Extract; export type CollectionsAction = Extract; export type DataAction = Extract; export type GroupsAction = Extract; export type NodesAction = Extract; export type ReplicateAction = Extract; export type RolesAction = Extract; export type TenantsAction = Extract; export type UsersAction = Extract; export type UserAssignment = { id: string; userType: WeaviateUserType; }; export type GroupAssignment = { groupID: string; groupType: WeaviateGroupType; }; export type AliasPermission = { alias: string; collection: string; actions: AliasAction[]; }; export type BackupsPermission = { collection: string; actions: BackupsAction[]; }; export type McpPermission = { actions: McpAction[]; }; export type ClusterPermission = { actions: ClusterAction[]; }; export type CollectionsPermission = { collection: string; actions: CollectionsAction[]; }; export type DataPermission = { collection: string; tenant: string; actions: DataAction[]; }; export type GroupsPermission = { groupID: string; groupType: WeaviateGroupType; actions: GroupsAction[]; }; export type NodesPermission = { collection: string; verbosity: 'verbose' | 'minimal'; actions: NodesAction[]; }; export type ReplicatePermission = { collection: string; shard: string; actions: ReplicateAction[]; }; export type RolesPermission = { role: string; actions: RolesAction[]; }; export type TenantsPermission = { collection: string; tenant: string; actions: TenantsAction[]; }; export type UsersPermission = { users: string; actions: UsersAction[]; }; export type Role = { name: string; aliasPermissions: AliasPermission[]; backupsPermissions: BackupsPermission[]; clusterPermissions: ClusterPermission[]; collectionsPermissions: CollectionsPermission[]; dataPermissions: DataPermission[]; groupsPermissions: GroupsPermission[]; mcpPermissions: McpPermission[]; nodesPermissions: NodesPermission[]; replicatePermissions: ReplicatePermission[]; rolesPermissions: RolesPermission[]; tenantsPermissions: TenantsPermission[]; usersPermissions: UsersPermission[]; }; export type Permission = AliasPermission | BackupsPermission | ClusterPermission | CollectionsPermission | DataPermission | GroupsPermission | McpPermission | NodesPermission | ReplicatePermission | RolesPermission | TenantsPermission | UsersPermission; export type PermissionsInput = Permission | Permission[] | Permission[][] | (Permission | Permission[])[];