@vates/types 1.23.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Branded } from '../common.mjs';
|
|
2
|
+
import type { XoGroup, XoUser } from '../xo.mjs';
|
|
3
|
+
export type XoAclRole = {
|
|
4
|
+
id: Branded<'acl-v2-role'>;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
} | {
|
|
8
|
+
id: Branded<'acl-v2-role'>;
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
isTemplate: true;
|
|
12
|
+
roleTemplateId: number;
|
|
13
|
+
};
|
|
14
|
+
export type XoAclSupportedActionsByResource = {
|
|
15
|
+
[resource: string]: Record<string, unknown>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* E.g
|
|
19
|
+
* vms {
|
|
20
|
+
* shutdown: {
|
|
21
|
+
* clean: true,
|
|
22
|
+
* hard: true,
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* `shutdown | shutdown:clean | shutdown:hard`
|
|
27
|
+
*/
|
|
28
|
+
export type GetKeysRecursively<T, Prefix extends string = ''> = {
|
|
29
|
+
[K in keyof T]: T[K] extends object ? K extends string ? `${Prefix}${K}` | GetKeysRecursively<T[K], `${Prefix}${K}:`> : never : K extends string ? `${Prefix}${K}` : never;
|
|
30
|
+
}[keyof T];
|
|
31
|
+
export type XoAclSupportedResource<TActionsByResource extends XoAclSupportedActionsByResource> = keyof TActionsByResource;
|
|
32
|
+
export type XoAclSupportedActions<TActionsByResource extends XoAclSupportedActionsByResource, TResource extends XoAclSupportedResource<TActionsByResource>> = (GetKeysRecursively<TActionsByResource[TResource]> & string) | '*';
|
|
33
|
+
export type XoAclBasePrivilege = {
|
|
34
|
+
id: Branded<'acl-v2-privilege'>;
|
|
35
|
+
resource: string;
|
|
36
|
+
action: string;
|
|
37
|
+
selector?: string;
|
|
38
|
+
effect: 'allow' | 'deny';
|
|
39
|
+
roleId: XoAclRole['id'];
|
|
40
|
+
};
|
|
41
|
+
export type XoAclPrivilege<TActionsByResource extends XoAclSupportedActionsByResource, TResource extends XoAclSupportedResource<TActionsByResource>> = XoAclBasePrivilege & {
|
|
42
|
+
resource: TResource;
|
|
43
|
+
action: XoAclSupportedActions<TActionsByResource, TResource>;
|
|
44
|
+
};
|
|
45
|
+
export type XoUserRole = {
|
|
46
|
+
id: string;
|
|
47
|
+
roleId: XoAclRole['id'];
|
|
48
|
+
userId: XoUser['id'];
|
|
49
|
+
};
|
|
50
|
+
export type XoGroupRole = {
|
|
51
|
+
id: string;
|
|
52
|
+
roleId: XoAclRole['id'];
|
|
53
|
+
groupId: XoGroup['id'];
|
|
54
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WrappedXenApiRecord, XenApiHost, XenApiHostWrapped, XenApiNetwork, XenApiNetworkWrapped, XenApiRecord, XenApiSr, XenApiTask, XenApiVbd, XenApiVdi, XenApiVif, XenApiVm, XenApiVmWrapped, XenApiVtpm } from '../xen-api.mjs';
|
|
2
2
|
import type { BOND_MODE, OPAQUE_REF_NULL, SUPPORTED_VDI_FORMAT, VBD_MODE, VBD_TYPE, VDI_TYPE, VIF_LOCKING_MODE } from '../common.mjs';
|
|
3
3
|
import type { PassThrough, Readable } from 'node:stream';
|
|
4
|
-
import type { XoGpuGroup, XoHost, XoNetwork, XoPif, XoSr, XoUser, XoVdi, XoVgpuType, XoVm, XoVmTemplate, XoVif } from '../xo.mjs';
|
|
4
|
+
import type { XapiXoRecord, XoGpuGroup, XoHost, XoNetwork, XoPif, XoSr, XoUser, XoVdi, XoVgpuType, XoVm, XoVmTemplate, XoVif } from '../xo.mjs';
|
|
5
5
|
export type XcpPatches = {
|
|
6
6
|
changelog?: {
|
|
7
7
|
author: string;
|
|
@@ -36,8 +36,11 @@ export interface Xapi {
|
|
|
36
36
|
barrier<T extends XenApiRecord>(ref: T['$ref']): Promise<Extract<WrappedXenApiRecord, {
|
|
37
37
|
$ref: T['$ref'];
|
|
38
38
|
}>>;
|
|
39
|
-
getField<T extends XenApiRecord, K extends keyof T>(type: Extract<WrappedXenApiRecord, T>['$type'], ref: T['$ref'], field: K): Promise<T[K]>;
|
|
40
39
|
connectVif(vifId: XoVif['id']): Promise<void>;
|
|
40
|
+
getField<T extends XenApiRecord, K extends keyof T>(type: Extract<WrappedXenApiRecord, T>['$type'], ref: T['$ref'], field: K): Promise<T[K]>;
|
|
41
|
+
getObject: <XoRecord extends XapiXoRecord, WrappedRecord extends WrappedXenApiRecord = Extract<WrappedXenApiRecord, {
|
|
42
|
+
$type: XoRecord['type'];
|
|
43
|
+
}>>(idOrUuidOrRef: XoRecord['id'] | WrappedRecord['$ref'] | WrappedRecord['uuid'], defaultValue?: WrappedRecord) => WrappedRecord;
|
|
41
44
|
createNetwork(params: {
|
|
42
45
|
name: string;
|
|
43
46
|
description?: string;
|
package/dist/xo-app.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:stream';
|
|
2
2
|
import type { AnyXoBackupJob, AnyXoJob, AnyXoLog, XapiXoRecord, XoAuthenticationToken, XoBackupRepository, XoConfigBackupArchive, XoGroup, XoHost, XoPool, XoPoolBackupArchive, XoProxy, XoSchedule, XoServer, XoTask, XoUser, XoVm, XoVmBackupArchive } from './xo.mjs';
|
|
3
3
|
import { VatesTask } from './lib/vates-task.mjs';
|
|
4
|
-
import { Xapi, XapiHostStats, XapiPoolStats, XapiStatsGranularity, XapiVmStats, XenApiGpuGroupWrapped, XenApiHostWrapped, XenApiMessageWrapped, XenApiNetworkWrapped, XenApiPbdWrapped, XenApiPciWrapped, XenApiPgpuWrapped, XenApiPifWrapped, XenApiPoolWrapped, XenApiSmWrapped, XenApiSrWrapped, XenApiVbdWrapped, XenApiVdiWrapped, XenApiVgpuTypeWrapped, XenApiVgpuWrapped, XenApiVifWrapped, XenApiVmWrapped, XenApiVtpmWrapped } from './index.mjs';
|
|
4
|
+
import { Xapi, XapiHostStats, XapiPoolStats, XapiStatsGranularity, XapiVmStats, XenApiGpuGroupWrapped, XenApiHostWrapped, XenApiMessageWrapped, XenApiNetworkWrapped, XenApiPbdWrapped, XenApiPciWrapped, XenApiPgpuWrapped, XenApiPifWrapped, XenApiPoolWrapped, XenApiSmWrapped, XenApiSrWrapped, XenApiVbdWrapped, XenApiVdiWrapped, XenApiVgpuTypeWrapped, XenApiVgpuWrapped, XenApiVifWrapped, XenApiVmWrapped, XenApiVtpmWrapped, XoAclBasePrivilege, XoAclRole, XoGroupRole, XoUserRole } from './index.mjs';
|
|
5
5
|
export type XapiConnection = Xapi & {
|
|
6
6
|
status: string;
|
|
7
7
|
pool?: {
|
|
@@ -90,6 +90,8 @@ export type XoApp = {
|
|
|
90
90
|
user?: XoUser;
|
|
91
91
|
permission?: XoUser['permission'] | 'none' | null;
|
|
92
92
|
};
|
|
93
|
+
addAclV2GroupRole(groupId: XoGroup['id'], roleId: XoAclRole['id']): Promise<XoGroupRole>;
|
|
94
|
+
addAclV2UserRole(userId: XoUser['id'], roleId: XoAclRole['id']): Promise<XoUserRole>;
|
|
93
95
|
addUserToGroup: (userId: XoUser['id'], groupId: XoGroup['id']) => Promise<void>;
|
|
94
96
|
authenticateUser: (credentials: {
|
|
95
97
|
token?: string;
|
|
@@ -107,6 +109,17 @@ export type XoApp = {
|
|
|
107
109
|
}>;
|
|
108
110
|
checkFeatureAuthorization(featureCode: string): Promise<void>;
|
|
109
111
|
connectXenServer(id: XoServer['id']): Promise<void>;
|
|
112
|
+
createAclV2Privilege(privilege: Omit<XoAclBasePrivilege, 'id'>, options?: {
|
|
113
|
+
force?: boolean;
|
|
114
|
+
}): Promise<XoAclBasePrivilege>;
|
|
115
|
+
copyAclV2Role(id: XoAclRole['id'], params?: {
|
|
116
|
+
name?: XoAclRole['name'];
|
|
117
|
+
description?: XoAclRole['description'];
|
|
118
|
+
}): Promise<XoAclRole['id']>;
|
|
119
|
+
createAclV2Role(role: {
|
|
120
|
+
name: XoAclRole['name'];
|
|
121
|
+
description?: XoAclRole['description'];
|
|
122
|
+
}): Promise<XoAclRole>;
|
|
110
123
|
createAuthenticationToken(opts: {
|
|
111
124
|
client?: {
|
|
112
125
|
id?: string;
|
|
@@ -121,6 +134,13 @@ export type XoApp = {
|
|
|
121
134
|
password?: string;
|
|
122
135
|
[key: string]: unknown;
|
|
123
136
|
}): Promise<XoUser>;
|
|
137
|
+
deleteAclV2GroupRole(groupId: XoGroup['id'], roleId: XoAclRole['id']): Promise<boolean>;
|
|
138
|
+
deleteAclV2Privilege(privilegeId: XoAclBasePrivilege['id'], options?: {
|
|
139
|
+
force?: boolean;
|
|
140
|
+
}): Promise<boolean>;
|
|
141
|
+
deleteAclV2Role(roleId: XoAclRole['id'], options?: {
|
|
142
|
+
force?: boolean;
|
|
143
|
+
}): Promise<boolean>;
|
|
124
144
|
deleteGroup(id: XoGroup['id']): Promise<void>;
|
|
125
145
|
deleteUser(id: XoUser['id']): Promise<void>;
|
|
126
146
|
createGroup(params: {
|
|
@@ -129,6 +149,13 @@ export type XoApp = {
|
|
|
129
149
|
providerGroup?: string;
|
|
130
150
|
}): Promise<XoGroup>;
|
|
131
151
|
disconnectXenServer(id: XoServer['id']): Promise<void>;
|
|
152
|
+
getAclV2Privilege(id: XoAclBasePrivilege['id']): Promise<XoAclBasePrivilege>;
|
|
153
|
+
getAclV2Privileges(): Promise<XoAclBasePrivilege[]>;
|
|
154
|
+
getAclV2RolePrivileges(roleId: XoAclRole['id']): Promise<XoAclBasePrivilege[]>;
|
|
155
|
+
getAclV2Role(id: XoAclRole['id']): Promise<XoAclRole>;
|
|
156
|
+
deleteAclV2UserRole(userId: XoUser['id'], roleId: XoAclRole['id']): Promise<boolean>;
|
|
157
|
+
getAclV2Roles(): Promise<XoAclRole[]>;
|
|
158
|
+
getAclV2UserPrivileges(userId: XoUser['id']): Promise<XoAclBasePrivilege[]>;
|
|
132
159
|
getAllGroups(): Promise<XoGroup[]>;
|
|
133
160
|
getAllProxies(): Promise<XoProxy[]>;
|
|
134
161
|
getAllJobs<T extends AnyXoBackupJob['type']>(type: T): Promise<Extract<AnyXoBackupJob, {
|
|
@@ -220,6 +247,13 @@ export type XoApp = {
|
|
|
220
247
|
permission?: string;
|
|
221
248
|
preferences?: Record<string, string>;
|
|
222
249
|
}): Promise<void>;
|
|
250
|
+
updateAclV2Privilege(privilegeId: XoAclBasePrivilege['id'], privilege: XoAclBasePrivilege): Promise<XoAclBasePrivilege>;
|
|
251
|
+
updateAclV2Role(roleId: XoAclRole['id'], role: {
|
|
252
|
+
name?: XoAclRole['name'];
|
|
253
|
+
description?: XoAclRole['description'] | null;
|
|
254
|
+
}, options?: {
|
|
255
|
+
force?: boolean;
|
|
256
|
+
}): Promise<XoAclRole>;
|
|
223
257
|
updateGroup(id: XoGroup['id'], updates: {
|
|
224
258
|
name?: string;
|
|
225
259
|
}): void;
|
package/dist/xo.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Branded, DOMAIN_TYPE, HOST_ALLOWED_OPERATIONS, HOST_POWER_STATE, IP_CONFIGURATION_MODE, IPV6_CONFIGURATION_MODE, NETWORK_OPERATIONS, PGPU_DOM0_ACCESS, POOL_ALLOWED_OPERATIONS, PRIMARY_ADDRESS_TYPE, STORAGE_OPERATIONS, VDI_OPERATIONS, VDI_TYPE, VIF_LOCKING_MODE, VM_OPERATIONS, VM_POWER_STATE } from './common.mjs';
|
|
2
2
|
import type * as CMType from './lib/complex-matcher.mjs';
|
|
3
|
+
import { XoAclPrivilege, XoAclRole, XoAclSupportedActionsByResource } from './lib/xen-orchestra-acl.mjs';
|
|
3
4
|
import type { XenApiHost, XenApiPool } from './xen-api.mjs';
|
|
4
5
|
type BaseXapiXo = {
|
|
5
6
|
$pool: XoPool['id'];
|
|
@@ -299,6 +300,7 @@ export type XoNetwork = BaseXapiXo & {
|
|
|
299
300
|
defaultIsLocked: boolean;
|
|
300
301
|
id: Branded<'network'>;
|
|
301
302
|
insecureNbd?: boolean;
|
|
303
|
+
isBonded: boolean;
|
|
302
304
|
name_description: string;
|
|
303
305
|
name_label: string;
|
|
304
306
|
nbd?: boolean;
|
|
@@ -612,7 +614,7 @@ export type XoTask = {
|
|
|
612
614
|
method?: string;
|
|
613
615
|
name?: string;
|
|
614
616
|
objectId?: string;
|
|
615
|
-
objectType?: XapiXoRecord['type'] | 'backup' | 'backup-archive' | 'backup-job' | 'backup-log' | 'backup-repository' | 'group' | 'proxy' | 'restore' | 'restore-log' | 'schedule' | 'server' | 'task' | 'user';
|
|
617
|
+
objectType?: XapiXoRecord['type'] | 'backup' | 'backup-archive' | 'backup-job' | 'backup-log' | 'backup-repository' | 'group' | 'proxy' | 'restore' | 'restore-log' | 'schedule' | 'server' | 'task' | 'user' | 'acl-privilege' | 'acl-role';
|
|
616
618
|
params?: Record<string, unknown>;
|
|
617
619
|
progress?: number;
|
|
618
620
|
type?: string;
|
|
@@ -771,8 +773,8 @@ export type XoVtpm = BaseXapiXo & {
|
|
|
771
773
|
type: 'VTPM';
|
|
772
774
|
};
|
|
773
775
|
export type XapiXoRecord = XoAlarm | XoGpuGroup | XoHost | XoMessage | XoNetwork | XoPbd | XoPci | XoPgpu | XoPif | XoPool | XoSr | XoVbd | XoVdi | XoVdiSnapshot | XoVdiUnmanaged | XoVgpu | XoVgpuType | XoVif | XoVm | XoVmController | XoVmSnapshot | XoVmTemplate | XoVtpm | XoSm;
|
|
774
|
-
export type NonXapiXoRecord = AnyXoBackupArchive | AnyXoJob | AnyXoLog | XoGroup | XoProxy | XoGroup | XoProxy | XoJob | XoBackupRepository | XoSchedule | XoServer | XoTask | XoUser
|
|
775
|
-
export type XoRecord = XapiXoRecord | NonXapiXoRecord
|
|
776
|
+
export type NonXapiXoRecord<TActionsByResource extends XoAclSupportedActionsByResource = never, TResource extends string = never> = AnyXoBackupArchive | AnyXoJob | AnyXoLog | XoGroup | XoProxy | XoGroup | XoProxy | XoJob | XoBackupRepository | XoSchedule | XoServer | XoTask | XoUser | XoAclRole | XoAclPrivilege<TActionsByResource, TResource>;
|
|
777
|
+
export type XoRecord<TActionsByResource extends XoAclSupportedActionsByResource = never, TResource extends string = never> = XapiXoRecord | NonXapiXoRecord<TActionsByResource, TResource>;
|
|
776
778
|
export type AnyXoVm = XoVm | XoVmSnapshot | XoVmTemplate | XoVmController;
|
|
777
779
|
export type AnyXoVdi = XoVdi | XoVdiSnapshot | XoVdiUnmanaged;
|
|
778
780
|
export type AnyXoJob = XoJob | AnyXoBackupJob;
|