@itwin/access-control-client 1.2.0 → 2.0.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.
Files changed (55) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +297 -30
  3. package/lib/cjs/AccessControlClient.d.ts +4 -2
  4. package/lib/cjs/AccessControlClient.d.ts.map +1 -1
  5. package/lib/cjs/AccessControlClient.js +6 -2
  6. package/lib/cjs/AccessControlClient.js.map +1 -1
  7. package/lib/cjs/accessControlTypes.d.ts +52 -13
  8. package/lib/cjs/accessControlTypes.d.ts.map +1 -1
  9. package/lib/cjs/accessControlTypes.js.map +1 -1
  10. package/lib/cjs/subClients/BaseClient.d.ts.map +1 -1
  11. package/lib/cjs/subClients/BaseClient.js +1 -0
  12. package/lib/cjs/subClients/BaseClient.js.map +1 -1
  13. package/lib/cjs/subClients/GroupMembersClient.d.ts +45 -0
  14. package/lib/cjs/subClients/GroupMembersClient.d.ts.map +1 -0
  15. package/lib/cjs/subClients/GroupMembersClient.js +70 -0
  16. package/lib/cjs/subClients/GroupMembersClient.js.map +1 -0
  17. package/lib/cjs/subClients/GroupsClient.d.ts +44 -0
  18. package/lib/cjs/subClients/GroupsClient.d.ts.map +1 -0
  19. package/lib/cjs/subClients/GroupsClient.js +60 -0
  20. package/lib/cjs/subClients/GroupsClient.js.map +1 -0
  21. package/lib/cjs/subClients/UserMembersClient.d.ts +45 -0
  22. package/lib/cjs/subClients/UserMembersClient.d.ts.map +1 -0
  23. package/lib/cjs/subClients/UserMembersClient.js +70 -0
  24. package/lib/cjs/subClients/UserMembersClient.js.map +1 -0
  25. package/lib/esm/AccessControlClient.d.ts +4 -2
  26. package/lib/esm/AccessControlClient.d.ts.map +1 -1
  27. package/lib/esm/AccessControlClient.js +6 -2
  28. package/lib/esm/AccessControlClient.js.map +1 -1
  29. package/lib/esm/accessControlTypes.d.ts +52 -13
  30. package/lib/esm/accessControlTypes.d.ts.map +1 -1
  31. package/lib/esm/accessControlTypes.js.map +1 -1
  32. package/lib/esm/subClients/BaseClient.d.ts.map +1 -1
  33. package/lib/esm/subClients/BaseClient.js +1 -0
  34. package/lib/esm/subClients/BaseClient.js.map +1 -1
  35. package/lib/esm/subClients/GroupMembersClient.d.ts +45 -0
  36. package/lib/esm/subClients/GroupMembersClient.d.ts.map +1 -0
  37. package/lib/esm/subClients/GroupMembersClient.js +66 -0
  38. package/lib/esm/subClients/GroupMembersClient.js.map +1 -0
  39. package/lib/esm/subClients/GroupsClient.d.ts +44 -0
  40. package/lib/esm/subClients/GroupsClient.d.ts.map +1 -0
  41. package/lib/esm/subClients/GroupsClient.js +56 -0
  42. package/lib/esm/subClients/GroupsClient.js.map +1 -0
  43. package/lib/esm/subClients/UserMembersClient.d.ts +45 -0
  44. package/lib/esm/subClients/UserMembersClient.d.ts.map +1 -0
  45. package/lib/esm/subClients/UserMembersClient.js +66 -0
  46. package/lib/esm/subClients/UserMembersClient.js.map +1 -0
  47. package/package.json +1 -1
  48. package/lib/cjs/subClients/MembersClient.d.ts +0 -45
  49. package/lib/cjs/subClients/MembersClient.d.ts.map +0 -1
  50. package/lib/cjs/subClients/MembersClient.js +0 -69
  51. package/lib/cjs/subClients/MembersClient.js.map +0 -1
  52. package/lib/esm/subClients/MembersClient.d.ts +0 -45
  53. package/lib/esm/subClients/MembersClient.d.ts.map +0 -1
  54. package/lib/esm/subClients/MembersClient.js +0 -65
  55. package/lib/esm/subClients/MembersClient.js.map +0 -1
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MIT License
2
2
 
3
- Copyright © 2022 Bentley Systems, Incorporated. All rights reserved.
3
+ Copyright © 2022-2023 Bentley Systems, Incorporated. All rights reserved.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
6
 
package/README.md CHANGED
@@ -144,7 +144,7 @@ async function printiTwinRole(): Promise<void> {
144
144
  }
145
145
  ```
146
146
 
147
- ### Get list of Members for an iTwin
147
+ ### Get list of User Members for an iTwin
148
148
 
149
149
  ```typescript
150
150
  import type { AccessToken } from "@itwin/core-bentley";
@@ -155,24 +155,24 @@ import {
155
155
  AccessControlAPIResponse,
156
156
  } from "@itwin/access-control-client";
157
157
 
158
- /** Function that queries all Members for a given iTwin and prints their ids to the console. */
159
- async function printiTwinMemberIds(): Promise<void> {
158
+ /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
159
+ async function printiTwinUserMemberIds(): Promise<void> {
160
160
  const accessControlClient: IAccessControlClient = new AccessControlClient();
161
161
  const accessToken: AccessToken = { get_access_token_logic_here };
162
162
 
163
- const iTwinsResponse: AccessControlAPIResponse<Member[]> =
164
- await accessControlClient.members.queryITwinMembersAsync(
163
+ const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
164
+ await accessControlClient.userMembers.queryITwinUserMembersAsync(
165
165
  accessToken,
166
166
  "9bd7d24d-1508-4dba-99ab-23b3166401a0"
167
167
  );
168
168
 
169
- iTwinsResponse.data!.forEach((actualMember: Member) => {
170
- console.log(actualMember.id);
169
+ iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
170
+ console.log(actualUserMember.id);
171
171
  });
172
172
  }
173
173
  ```
174
174
 
175
- ### Get a filtered list of Members for an iTwin using $top/$skip
175
+ ### Get a filtered list of User Members for an iTwin using $top/$skip
176
176
 
177
177
  ```typescript
178
178
  import type { AccessToken } from "@itwin/core-bentley";
@@ -183,27 +183,27 @@ import {
183
183
  AccessControlAPIResponse,
184
184
  } from "@itwin/access-control-client";
185
185
 
186
- /** Function that queries all Members for a given iTwin and prints their ids to the console. */
187
- async function printiTwinMemberIds(): Promise<void> {
186
+ /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
187
+ async function printiTwinUserMemberIds(): Promise<void> {
188
188
  const skipAmmount = 5;
189
189
  const topAmount = 3;
190
190
  const accessControlClient: IAccessControlClient = new AccessControlClient();
191
191
  const accessToken: AccessToken = { get_access_token_logic_here };
192
192
 
193
- const iTwinsResponse: AccessControlAPIResponse<Member[]> =
194
- await accessControlClient.members.queryITwinMembersAsync(
193
+ const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
194
+ await accessControlClient.userMembers.queryITwinUserMembersAsync(
195
195
  accessToken,
196
196
  "9bd7d24d-1508-4dba-99ab-23b3166401a0",
197
197
  { skip: skipAmmount, top: topAmount }
198
198
  );
199
199
 
200
- iTwinsResponse.data!.forEach((actualMember: Member) => {
201
- console.log(actualMember.id);
200
+ iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
201
+ console.log(actualUserMember.id);
202
202
  });
203
203
  }
204
204
  ```
205
205
 
206
- ### Get a specific Member of an iTwin
206
+ ### Get a specific User Member of an iTwin
207
207
 
208
208
  ```typescript
209
209
  import type { AccessToken } from "@itwin/core-bentley";
@@ -215,23 +215,23 @@ import {
215
215
  } from "@itwin/access-control-client";
216
216
 
217
217
  /** Function that gets a member of an iTwin prints the id and email to the console. */
218
- async function printiTwinMemberIds(): Promise<void> {
218
+ async function printiTwinUserMemberIds(): Promise<void> {
219
219
  const accessControlClient: IAccessControlClient = new AccessControlClient();
220
220
  const accessToken: AccessToken = { get_access_token_logic_here };
221
221
 
222
- const iTwinsResponse: AccessControlAPIResponse<Member> =
223
- await accessControlClient.members.getITwinMemberAsync(
222
+ const iTwinsResponse: AccessControlAPIResponse<UserMember> =
223
+ await accessControlClient.userMembers.getITwinUserMemberAsync(
224
224
  accessToken,
225
225
  "9bd7d24d-1508-4dba-99ab-23b3166401a0",
226
226
  "a083cc1c-f51a-4c52-8614-5774ab79eca1"
227
227
  );
228
228
 
229
- const actualMember = iTwinsResponse.data!;
230
- console.log(actualMember.id, actualMember.email);
229
+ const actualUserMember = iTwinsResponse.data!;
230
+ console.log(actualUserMember.id, actualUserMember.email);
231
231
  }
232
232
  ```
233
233
 
234
- ### Create, update, and delete a Member
234
+ ### Create, update, and delete an User Member
235
235
 
236
236
  ```typescript
237
237
  import type { AccessToken } from "@itwin/core-bentley";
@@ -242,22 +242,22 @@ import {
242
242
  AccessControlAPIResponse,
243
243
  } from "@itwin/access-control-client";
244
244
 
245
- /** Function that creates, updates, and deletes a member. */
245
+ /** Function that creates, updates, and deletes a user member. */
246
246
  async function printiTwinRole(): Promise<void> {
247
247
  const accessControlClient: IAccessControlClient = new AccessControlClient();
248
248
  const accessToken: AccessToken = { get_access_token_logic_here };
249
249
 
250
- // Create member
250
+ // Create user member
251
251
  const createResponse: AccessControlAPIResponse<Role> =
252
- await accessControlClient.members.addITwinMembersAsync(
252
+ await accessControlClient.userMembers.addITwinUserMembersAsync(
253
253
  accessToken,
254
254
  "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
255
255
  "d8215a6b-465d-44ff-910b-40d4541d1ebf"
256
256
  );
257
257
 
258
- // Update member's role
259
- const updatedMemberResponse: AccessControlAPIResponse<Member> =
260
- await accessControlClient.members.updateITwinMemberAsync(
258
+ // Update user member's role
259
+ const updatedUserMemberResponse: AccessControlAPIResponse<UserMember> =
260
+ await accessControlClient.userMembers.updateITwinUserMemberAsync(
261
261
  accessToken,
262
262
  "b1803a0c-d440-4902-b527-54bf7f72500f",
263
263
  "6401109c-75d7-46b8-8dbd-182d02155141",
@@ -267,9 +267,276 @@ async function printiTwinRole(): Promise<void> {
267
267
  ]
268
268
  );
269
269
 
270
- // Delete member
271
- const removeMemberResponse: AccessControlAPIResponse<undefined> =
272
- await accessControlClient.members.removeITwinMemberAsync(
270
+ // Delete user member
271
+ const removeUserMemberResponse: AccessControlAPIResponse<undefined> =
272
+ await accessControlClient.userMembers.removeITwinUserMemberAsync(
273
+ accessToken,
274
+ "b1803a0c-d440-4902-b527-54bf7f72500f",
275
+ "6401109c-75d7-46b8-8dbd-182d02155141"
276
+ );
277
+ }
278
+ ```
279
+
280
+
281
+ ### Get list of Groups for an iTwin
282
+
283
+ ```typescript
284
+ import type { AccessToken } from "@itwin/core-bentley";
285
+ import {
286
+ AccessControlClient,
287
+ IAccessControlClient,
288
+ Group,
289
+ AccessControlAPIResponse,
290
+ } from "@itwin/access-control-client";
291
+
292
+ /** Function that queries all Groups for a given iTwin and prints their ids to the console. */
293
+ async function printiTwinGroupIds(): Promise<void> {
294
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
295
+ const accessToken: AccessToken = { get_access_token_logic_here };
296
+
297
+ const iTwinsResponse: AccessControlAPIResponse<Group[]> =
298
+ await accessControlClient.groups.getITwinGroupsAsync(
299
+ accessToken,
300
+ "2f981e83-47e4-4f36-8ee9-4264453688a1"
301
+ );
302
+
303
+ iTwinsResponse.data!.forEach((actualGroup: Group) => {
304
+ console.log(actualGroup.id);
305
+ });
306
+ }
307
+ ```
308
+
309
+ ### Get list of Groups for an iTwin (with custom url)
310
+
311
+ ```typescript
312
+ import type { AccessToken } from "@itwin/core-bentley";
313
+ import {
314
+ AccessControlClient,
315
+ IAccessControlClient,
316
+ Group,
317
+ AccessControlAPIResponse,
318
+ } from "@itwin/access-control-client";
319
+
320
+ /** Function that queries all Groups for a given iTwin and prints their ids to the console. */
321
+ async function printiTwinGroupIds(): Promise<void> {
322
+ const accessControlClient: IAccessControlClient = new AccessControlClient("https://api.bentley.com/accesscontrol/itwins");
323
+ const accessToken: AccessToken = { get_access_token_logic_here };
324
+
325
+ const iTwinsResponse: AccessControlAPIResponse<Group[]> =
326
+ await accessControlClient.groups.getITwinGroupsAsync(
327
+ accessToken,
328
+ "2f981e83-47e4-4f36-8ee9-4264453688a1"
329
+ );
330
+
331
+ iTwinsResponse.data!.forEach((actualGroup: Group) => {
332
+ console.log(actualGroup.id);
333
+ });
334
+ }
335
+ ```
336
+
337
+ ### Get specific Group for an iTwin
338
+
339
+ ```typescript
340
+ import type { AccessToken } from "@itwin/core-bentley";
341
+ import {
342
+ AccessControlClient,
343
+ IAccessControlClient,
344
+ Group,
345
+ AccessControlAPIResponse,
346
+ } from "@itwin/access-control-client";
347
+
348
+ /** Function that gets a specific role for an iTwin and then prints the id and displayName to the console. */
349
+ async function printiTwinGroup(): Promise<void> {
350
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
351
+ const accessToken: AccessToken = { get_access_token_logic_here };
352
+
353
+ const iTwinsResponse: AccessControlAPIResponse<Group> =
354
+ await accessControlClient.groups.getITwinGroupAsync(
355
+ accessToken,
356
+ "2f981e83-47e4-4f36-8ee9-4264453688a1",
357
+ "2d593231-db14-4c1f-9db4-96f2b91b0bde"
358
+ );
359
+
360
+ const actualGroup = iTwinsResponse.data!;
361
+ console.log(actualGroup.id, actualGroup.displayName);
362
+ }
363
+ ```
364
+
365
+ ### Create, update, and delete a Group
366
+
367
+ ```typescript
368
+ import type { AccessToken } from "@itwin/core-bentley";
369
+ import {
370
+ AccessControlClient,
371
+ IAccessControlClient,
372
+ Group,
373
+ AccessControlAPIResponse,
374
+ } from "@itwin/access-control-client";
375
+
376
+ /** Function that creates, updates, and deletes a role. */
377
+ async function printiTwinGroup(): Promise<void> {
378
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
379
+ const accessToken: AccessToken = { get_access_token_logic_here };
380
+
381
+ // Create role
382
+ const createResponse: AccessControlAPIResponse<Group> =
383
+ await accessControlClient.groups.createITwinGroupAsync(
384
+ accessToken,
385
+ "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
386
+ "d8215a6b-465d-44ff-910b-40d4541d1ebf"
387
+ );
388
+
389
+ // Update role
390
+ const updatedGroup: Group = {
391
+ name: "Some new group name",
392
+ description: "UPDATED GROUP DESCRIPTION",
393
+ user: ["John.Johnson@example.com"],
394
+ imsGroups: ["Sample IMS Group"]
395
+ };
396
+ const updateResponse: AccessControlAPIResponse<Group> =
397
+ await accessControlClient.groups.updateITwinGroupAsync(
398
+ accessToken,
399
+ "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
400
+ createResponse.data!.id,
401
+ updatedGroup
402
+ );
403
+
404
+ // Delete Group
405
+ const deleteResponse: AccessControlAPIResponse<undefined> =
406
+ await accessControlClient.groups.deleteITwinGRoupAsync(
407
+ accessToken,
408
+ "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
409
+ createResponse.data!.id
410
+ );
411
+ }
412
+ ```
413
+
414
+ ### Get list of Group Members for an iTwin
415
+
416
+ ```typescript
417
+ import type { AccessToken } from "@itwin/core-bentley";
418
+ import {
419
+ AccessControlClient,
420
+ IAccessControlClient,
421
+ Member,
422
+ AccessControlAPIResponse,
423
+ } from "@itwin/access-control-client";
424
+
425
+ /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
426
+ async function printiTwinGroupMemberIds(): Promise<void> {
427
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
428
+ const accessToken: AccessToken = { get_access_token_logic_here };
429
+
430
+ const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
431
+ await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
432
+ accessToken,
433
+ "9bd7d24d-1508-4dba-99ab-23b3166401a0"
434
+ );
435
+
436
+ iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
437
+ console.log(actualGroupMember.id);
438
+ });
439
+ }
440
+ ```
441
+
442
+ ### Get a filtered list of Group Members for an iTwin using $top/$skip
443
+
444
+ ```typescript
445
+ import type { AccessToken } from "@itwin/core-bentley";
446
+ import {
447
+ AccessControlClient,
448
+ IAccessControlClient,
449
+ Member,
450
+ AccessControlAPIResponse,
451
+ } from "@itwin/access-control-client";
452
+
453
+ /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
454
+ async function printiTwinGroupMemberIds(): Promise<void> {
455
+ const skipAmmount = 5;
456
+ const topAmount = 3;
457
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
458
+ const accessToken: AccessToken = { get_access_token_logic_here };
459
+
460
+ const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
461
+ await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
462
+ accessToken,
463
+ "9bd7d24d-1508-4dba-99ab-23b3166401a0",
464
+ { skip: skipAmmount, top: topAmount }
465
+ );
466
+
467
+ iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
468
+ console.log(actualGroupMember.id);
469
+ });
470
+ }
471
+ ```
472
+
473
+ ### Get a specific Group Member of an iTwin
474
+
475
+ ```typescript
476
+ import type { AccessToken } from "@itwin/core-bentley";
477
+ import {
478
+ AccessControlClient,
479
+ IAccessControlClient,
480
+ Member,
481
+ AccessControlAPIResponse,
482
+ } from "@itwin/access-control-client";
483
+
484
+ /** Function that gets a member of an iTwin prints the id and email to the console. */
485
+ async function printiTwinGroupMemberIds(): Promise<void> {
486
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
487
+ const accessToken: AccessToken = { get_access_token_logic_here };
488
+
489
+ const iTwinsResponse: AccessControlAPIResponse<GroupMember> =
490
+ await accessControlClient.groupMembers.getITwinGroupMemberAsync(
491
+ accessToken,
492
+ "9bd7d24d-1508-4dba-99ab-23b3166401a0",
493
+ "a083cc1c-f51a-4c52-8614-5774ab79eca1"
494
+ );
495
+
496
+ const actualGroupMember = iTwinsResponse.data!;
497
+ console.log(actualGroupMember.id, actualGroupMember.email);
498
+ }
499
+ ```
500
+
501
+ ### Create, update, and delete a Group Member
502
+
503
+ ```typescript
504
+ import type { AccessToken } from "@itwin/core-bentley";
505
+ import {
506
+ AccessControlClient,
507
+ IAccessControlClient,
508
+ Member,
509
+ AccessControlAPIResponse,
510
+ } from "@itwin/access-control-client";
511
+
512
+ /** Function that creates, updates, and deletes a user member. */
513
+ async function printiTwinRole(): Promise<void> {
514
+ const accessControlClient: IAccessControlClient = new AccessControlClient();
515
+ const accessToken: AccessToken = { get_access_token_logic_here };
516
+
517
+ // Create user member
518
+ const createResponse: AccessControlAPIResponse<Role> =
519
+ await accessControlClient.groupMembers.addITwinGroupMembersAsync(
520
+ accessToken,
521
+ "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
522
+ "d8215a6b-465d-44ff-910b-40d4541d1ebf"
523
+ );
524
+
525
+ // Update user member's role
526
+ const updatedGroupMemberResponse: AccessControlAPIResponse<GroupMember> =
527
+ await accessControlClient.groupMembers.updateITwinGroupMemberAsync(
528
+ accessToken,
529
+ "b1803a0c-d440-4902-b527-54bf7f72500f",
530
+ "6401109c-75d7-46b8-8dbd-182d02155141",
531
+ [
532
+ "25162c0c-dce7-419e-bb51-fd13efd5b54a",
533
+ "10e3d778-0d35-4c4d-bf77-547bb366cb14",
534
+ ]
535
+ );
536
+
537
+ // Delete user member
538
+ const removeGroupMemberResponse: AccessControlAPIResponse<undefined> =
539
+ await accessControlClient.groupMembers.removeITwinGroupMemberAsync(
273
540
  accessToken,
274
541
  "b1803a0c-d440-4902-b527-54bf7f72500f",
275
542
  "6401109c-75d7-46b8-8dbd-182d02155141"
@@ -1,11 +1,13 @@
1
1
  /** @packageDocumentation
2
2
  * @module AccessControlClient
3
3
  */
4
- import type { IAccessControlClient, IMembersClient, IPermissionsClient, IRolesClient } from "./accessControlTypes";
4
+ import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IPermissionsClient, IRolesClient, IUserMembersClient } from "./accessControlTypes";
5
5
  export declare class AccessControlClient implements IAccessControlClient {
6
6
  permissions: IPermissionsClient;
7
7
  roles: IRolesClient;
8
- members: IMembersClient;
8
+ groups: IGroupsClient;
9
+ userMembers: IUserMembersClient;
10
+ groupMembers: IGroupMembersClient;
9
11
  constructor(url?: string);
10
12
  }
11
13
  //# sourceMappingURL=AccessControlClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKnH,qBAAa,mBAAoB,YAAW,oBAAoB;IACvD,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;gBAEZ,GAAG,CAAC,EAAE,MAAM;CAKhC"}
1
+ {"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,mBAAoB,YAAW,oBAAoB;IACvD,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,GAAG,CAAC,EAAE,MAAM;CAOhC"}
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AccessControlClient = void 0;
4
- const MembersClient_1 = require("./subClients/MembersClient");
5
4
  const PermissionsClient_1 = require("./subClients/PermissionsClient");
6
5
  const RolesClient_1 = require("./subClients/RolesClient");
6
+ const GroupsClient_1 = require("./subClients/GroupsClient");
7
+ const UserMembersClient_1 = require("./subClients/UserMembersClient");
8
+ const GroupMembersClient_1 = require("./subClients/GroupMembersClient");
7
9
  class AccessControlClient {
8
10
  constructor(url) {
9
11
  this.permissions = new PermissionsClient_1.PermissionsClient(url);
10
12
  this.roles = new RolesClient_1.RolesClient(url);
11
- this.members = new MembersClient_1.MembersClient(url);
13
+ this.groups = new GroupsClient_1.GroupsClient(url);
14
+ this.userMembers = new UserMembersClient_1.UserMembersClient(url);
15
+ this.groupMembers = new GroupMembersClient_1.GroupMembersClient(url);
12
16
  }
13
17
  }
14
18
  exports.AccessControlClient = AccessControlClient;
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControlClient.js","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":";;;AAQA,8DAA2D;AAC3D,sEAAmE;AACnE,0DAAuD;AAEvD,MAAa,mBAAmB;IAK9B,YAAmB,GAAY;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAa,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AAVD,kDAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { IAccessControlClient, IMembersClient, IPermissionsClient, IRolesClient } from \"./accessControlTypes\";\r\nimport { MembersClient } from \"./subClients/MembersClient\";\r\nimport { PermissionsClient } from \"./subClients/PermissionsClient\";\r\nimport { RolesClient } from \"./subClients/RolesClient\";\r\n\r\nexport class AccessControlClient implements IAccessControlClient {\r\n public permissions: IPermissionsClient;\r\n public roles: IRolesClient;\r\n public members: IMembersClient;\r\n\r\n public constructor(url?: string){\r\n this.permissions = new PermissionsClient(url);\r\n this.roles = new RolesClient(url);\r\n this.members = new MembersClient(url);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AccessControlClient.js","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":";;;AAeA,sEAAmE;AACnE,0DAAuD;AACvD,4DAAyD;AACzD,sEAAmE;AACnE,wEAAqE;AAErE,MAAa,mBAAmB;IAO9B,YAAmB,GAAY;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,2BAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF;AAdD,kDAcC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type {\r\n IAccessControlClient,\r\n IGroupMembersClient,\r\n IGroupsClient,\r\n IPermissionsClient,\r\n IRolesClient,\r\n IUserMembersClient,\r\n} from \"./accessControlTypes\";\r\nimport { PermissionsClient } from \"./subClients/PermissionsClient\";\r\nimport { RolesClient } from \"./subClients/RolesClient\";\r\nimport { GroupsClient } from \"./subClients/GroupsClient\";\r\nimport { UserMembersClient } from \"./subClients/UserMembersClient\";\r\nimport { GroupMembersClient } from \"./subClients/GroupMembersClient\";\r\n\r\nexport class AccessControlClient implements IAccessControlClient {\r\n public permissions: IPermissionsClient;\r\n public roles: IRolesClient;\r\n public groups: IGroupsClient;\r\n public userMembers: IUserMembersClient;\r\n public groupMembers: IGroupMembersClient;\r\n\r\n public constructor(url?: string) {\r\n this.permissions = new PermissionsClient(url);\r\n this.roles = new RolesClient(url);\r\n this.groups = new GroupsClient(url);\r\n this.userMembers = new UserMembersClient(url);\r\n this.groupMembers = new GroupMembersClient(url);\r\n }\r\n}\r\n"]}
@@ -5,7 +5,9 @@ import type { AccessToken } from "@itwin/core-bentley";
5
5
  export interface IAccessControlClient {
6
6
  permissions: IPermissionsClient;
7
7
  roles: IRolesClient;
8
- members: IMembersClient;
8
+ groups: IGroupsClient;
9
+ userMembers: IUserMembersClient;
10
+ groupMembers: IGroupMembersClient;
9
11
  }
10
12
  export interface IPermissionsClient {
11
13
  /** Retrieves the list of all available permissions **/
@@ -13,17 +15,29 @@ export interface IPermissionsClient {
13
15
  /** Retrieves a list of permissions the identity has for a specified iTwin */
14
16
  getITwinPermissionsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Permission[]>>;
15
17
  }
16
- export interface IMembersClient {
17
- /** Retrieves a list of team members and their roles assigned to a specified iTwin. */
18
- queryITwinMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<Member[]>>;
19
- /** Retrieves a specific member for a specified iTwin. */
20
- getITwinMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<Member>>;
21
- /** Add new iTwin members */
22
- addITwinMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: Member[]): Promise<AccessControlAPIResponse<Member[]>>;
23
- /** Remove the specified iTwin member */
24
- removeITwinMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
25
- /** Update iTwin team member roles */
26
- updateITwinMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<Member>>;
18
+ export interface IUserMembersClient {
19
+ /** Retrieves a list of user members and their roles assigned to a specified iTwin. */
20
+ queryITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<UserMember[]>>;
21
+ /** Retrieves a specific user member for a specified iTwin. */
22
+ getITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<UserMember>>;
23
+ /** Add new iTwin user members */
24
+ addITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: UserMember[]): Promise<AccessControlAPIResponse<UserMember[]>>;
25
+ /** Remove the specified iTwin user member */
26
+ removeITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
27
+ /** Update iTwin user member roles */
28
+ updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
29
+ }
30
+ export interface IGroupMembersClient {
31
+ /** Retrieves a list of group members and their roles assigned to a specified iTwin. */
32
+ queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
33
+ /** Retrieves a specific group member for a specified iTwin. */
34
+ getITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<GroupMember>>;
35
+ /** Add new iTwin group members */
36
+ addITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: GroupMember[]): Promise<AccessControlAPIResponse<GroupMember[]>>;
37
+ /** Remove the specified iTwin group member */
38
+ removeITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
39
+ /** Update iTwin group member roles */
40
+ updateITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<GroupMember>>;
27
41
  }
28
42
  export interface IRolesClient {
29
43
  /** Retrieves a list of roles the for a specified iTwin */
@@ -37,6 +51,18 @@ export interface IRolesClient {
37
51
  /** Updates an existing iTwin Role */
38
52
  updateITwinRoleAsync(accessToken: AccessToken, iTwinId: string, roleId: string, role: Role): Promise<AccessControlAPIResponse<Role>>;
39
53
  }
54
+ export interface IGroupsClient {
55
+ /** Retrieves a list of groups the for a specified iTwin */
56
+ getITwinGroupsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Group[]>>;
57
+ /** Retrieves a group for a specified iTwin */
58
+ getITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<Group>>;
59
+ /** Creates a new iTwin group */
60
+ createITwinGroupAsync(accessToken: AccessToken, iTwinId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
61
+ /** Removes an existing iTwin group */
62
+ deleteITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<undefined>>;
63
+ /** Updates an existing iTwin group */
64
+ updateITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
65
+ }
40
66
  export interface AccessControlQueryArg {
41
67
  top?: number;
42
68
  skip?: number;
@@ -58,7 +84,7 @@ export interface ErrorDetail {
58
84
  target?: string;
59
85
  }
60
86
  export declare type Permission = string;
61
- export interface Member {
87
+ export interface UserMember {
62
88
  id?: string;
63
89
  roleid?: string;
64
90
  email?: string;
@@ -67,10 +93,23 @@ export interface Member {
67
93
  organization?: string;
68
94
  roles?: Omit<Role, "permissions">[];
69
95
  }
96
+ export interface GroupMember {
97
+ id?: string;
98
+ groupName?: string;
99
+ groupDescription?: string;
100
+ roles?: Omit<Role, "permissions">[];
101
+ }
70
102
  export interface Role {
71
103
  id?: string;
72
104
  displayName: string;
73
105
  description: string;
74
106
  permissions: Permission[];
75
107
  }
108
+ export interface Group {
109
+ id?: string;
110
+ name?: string;
111
+ description?: string;
112
+ users?: string[];
113
+ imsGroups?: string[];
114
+ }
76
115
  //# sourceMappingURL=accessControlTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n members: IMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken,\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IMembersClient{\r\n /** Retrieves a list of team members and their roles assigned to a specified iTwin. */\r\n queryITwinMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<Member[]>>;\r\n\r\n /** Retrieves a specific member for a specified iTwin. */\r\n getITwinMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<Member>>;\r\n\r\n /** Add new iTwin members */\r\n addITwinMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: Member[]\r\n ): Promise<AccessControlAPIResponse<Member[]>>;\r\n\r\n /** Remove the specified iTwin member */\r\n removeITwinMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin team member roles */\r\n updateITwinMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<Member>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface Member {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n"]}
1
+ {"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n groups: IGroupsClient;\r\n userMembers: IUserMembersClient;\r\n groupMembers: IGroupMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IUserMembersClient {\r\n /** Retrieves a list of user members and their roles assigned to a specified iTwin. */\r\n queryITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Retrieves a specific user member for a specified iTwin. */\r\n getITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n\r\n /** Add new iTwin user members */\r\n addITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: UserMember[]\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Remove the specified iTwin user member */\r\n removeITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin user member roles */\r\n updateITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n}\r\n\r\nexport interface IGroupMembersClient {\r\n /** Retrieves a list of group members and their roles assigned to a specified iTwin. */\r\n queryITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Retrieves a specific group member for a specified iTwin. */\r\n getITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n\r\n /** Add new iTwin group members */\r\n addITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: GroupMember[]\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Remove the specified iTwin group member */\r\n removeITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin group member roles */\r\n updateITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface IGroupsClient {\r\n /** Retrieves a list of groups the for a specified iTwin */\r\n getITwinGroupsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Group[]>>;\r\n\r\n /** Retrieves a group for a specified iTwin */\r\n getITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Creates a new iTwin group */\r\n createITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Removes an existing iTwin group */\r\n deleteITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin group */\r\n updateITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface UserMember {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface GroupMember {\r\n id?: string;\r\n groupName?: string;\r\n groupDescription?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n\r\nexport interface Group {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n users?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAenH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
1
+ {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAgBnH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
@@ -55,6 +55,7 @@ class BaseClient {
55
55
  headers: {
56
56
  "authorization": accessTokenString,
57
57
  "content-type": "application/json",
58
+ "accept": "application/vnd.bentley.itwin-platform.v2+json",
58
59
  },
59
60
  validateStatus(status) {
60
61
  return status < 500; // Resolve only if the status code is less than 500