@vates/types 1.22.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 +1 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/xen-orchestra-acl.d.mts +54 -0
- package/dist/lib/xen-orchestra-acl.mjs +1 -0
- package/dist/lib/xen-orchestra-xapi.d.mts +6 -1
- package/dist/xo-app.d.mts +35 -1
- package/dist/xo.d.mts +10 -3
- package/package.json +1 -1
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,7 +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
|
+
connectVif(vifId: XoVif['id']): Promise<void>;
|
|
39
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;
|
|
40
44
|
createNetwork(params: {
|
|
41
45
|
name: string;
|
|
42
46
|
description?: string;
|
|
@@ -57,6 +61,7 @@ export interface Xapi {
|
|
|
57
61
|
}): Promise<XenApiNetworkWrapped>;
|
|
58
62
|
deleteNetwork(id: XoNetwork['id']): Promise<void>;
|
|
59
63
|
deleteVif(vifId: XoVif['id']): Promise<void>;
|
|
64
|
+
disconnectVif(vifId: XoVif['id']): Promise<void>;
|
|
60
65
|
exportVmOva(vmRef: XenApiVm['$ref']): Promise<PassThrough>;
|
|
61
66
|
migrateVm(vmId: XoVm['id'], hostXapi: Xapi, hostId: XoHost['id'], opts?: {
|
|
62
67
|
force?: boolean;
|
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'];
|
|
@@ -80,6 +81,10 @@ type BaseXoVm = BaseXapiXo & {
|
|
|
80
81
|
suspendSr?: XoSr['id'];
|
|
81
82
|
tags: string[];
|
|
82
83
|
vga?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Value in MiB.
|
|
86
|
+
* See: https://wiki.xenproject.org/wiki/XCP_PV_templates_start
|
|
87
|
+
*/
|
|
83
88
|
videoram?: number;
|
|
84
89
|
viridian: boolean;
|
|
85
90
|
virtualizationMode: DOMAIN_TYPE;
|
|
@@ -295,6 +300,7 @@ export type XoNetwork = BaseXapiXo & {
|
|
|
295
300
|
defaultIsLocked: boolean;
|
|
296
301
|
id: Branded<'network'>;
|
|
297
302
|
insecureNbd?: boolean;
|
|
303
|
+
isBonded: boolean;
|
|
298
304
|
name_description: string;
|
|
299
305
|
name_label: string;
|
|
300
306
|
nbd?: boolean;
|
|
@@ -608,7 +614,7 @@ export type XoTask = {
|
|
|
608
614
|
method?: string;
|
|
609
615
|
name?: string;
|
|
610
616
|
objectId?: string;
|
|
611
|
-
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';
|
|
612
618
|
params?: Record<string, unknown>;
|
|
613
619
|
progress?: number;
|
|
614
620
|
type?: string;
|
|
@@ -680,6 +686,7 @@ type BaseXoVdi = BaseXapiXo & {
|
|
|
680
686
|
};
|
|
681
687
|
export type XoVdi = BaseXoVdi & {
|
|
682
688
|
id: Branded<'VDI'>;
|
|
689
|
+
chainPhysicalUsage: number;
|
|
683
690
|
type: 'VDI';
|
|
684
691
|
};
|
|
685
692
|
export type XoVdiSnapshot = BaseXoVdi & {
|
|
@@ -766,8 +773,8 @@ export type XoVtpm = BaseXapiXo & {
|
|
|
766
773
|
type: 'VTPM';
|
|
767
774
|
};
|
|
768
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;
|
|
769
|
-
export type NonXapiXoRecord = AnyXoBackupArchive | AnyXoJob | AnyXoLog | XoGroup | XoProxy | XoGroup | XoProxy | XoJob | XoBackupRepository | XoSchedule | XoServer | XoTask | XoUser
|
|
770
|
-
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>;
|
|
771
778
|
export type AnyXoVm = XoVm | XoVmSnapshot | XoVmTemplate | XoVmController;
|
|
772
779
|
export type AnyXoVdi = XoVdi | XoVdiSnapshot | XoVdiUnmanaged;
|
|
773
780
|
export type AnyXoJob = XoJob | AnyXoBackupJob;
|