@itwin/access-control-client 3.6.0 → 4.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 (309) hide show
  1. package/CHANGELOG.md +121 -22
  2. package/README.md +147 -669
  3. package/lib/cjs/AccessControlClient.d.ts +26 -9
  4. package/lib/cjs/AccessControlClient.d.ts.map +1 -1
  5. package/lib/cjs/AccessControlClient.js +21 -5
  6. package/lib/cjs/AccessControlClient.js.map +1 -1
  7. package/lib/cjs/access-control-client.d.ts +30 -1
  8. package/lib/cjs/access-control-client.d.ts.map +1 -1
  9. package/lib/cjs/access-control-client.js +42 -6
  10. package/lib/cjs/access-control-client.js.map +1 -1
  11. package/lib/cjs/accessControlClientInterfaces/GroupClient.d.ts +19 -0
  12. package/lib/cjs/accessControlClientInterfaces/GroupClient.d.ts.map +1 -0
  13. package/lib/cjs/accessControlClientInterfaces/GroupClient.js +7 -0
  14. package/lib/cjs/accessControlClientInterfaces/GroupClient.js.map +1 -0
  15. package/lib/cjs/accessControlClientInterfaces/GroupMemberInvitationClient.d.ts +15 -0
  16. package/lib/cjs/accessControlClientInterfaces/GroupMemberInvitationClient.d.ts.map +1 -0
  17. package/lib/cjs/accessControlClientInterfaces/GroupMemberInvitationClient.js +7 -0
  18. package/lib/cjs/accessControlClientInterfaces/GroupMemberInvitationClient.js.map +1 -0
  19. package/lib/cjs/accessControlClientInterfaces/GroupMembersClient.d.ts +19 -0
  20. package/lib/cjs/accessControlClientInterfaces/GroupMembersClient.d.ts.map +1 -0
  21. package/lib/cjs/accessControlClientInterfaces/GroupMembersClient.js +7 -0
  22. package/lib/cjs/accessControlClientInterfaces/GroupMembersClient.js.map +1 -0
  23. package/lib/cjs/accessControlClientInterfaces/ITwinJobsClient.d.ts +12 -0
  24. package/lib/cjs/accessControlClientInterfaces/ITwinJobsClient.d.ts.map +1 -0
  25. package/lib/cjs/accessControlClientInterfaces/ITwinJobsClient.js +7 -0
  26. package/lib/cjs/accessControlClientInterfaces/ITwinJobsClient.js.map +1 -0
  27. package/lib/cjs/accessControlClientInterfaces/ItwinSharesClient.d.ts +25 -0
  28. package/lib/cjs/accessControlClientInterfaces/ItwinSharesClient.d.ts.map +1 -0
  29. package/lib/cjs/accessControlClientInterfaces/ItwinSharesClient.js +7 -0
  30. package/lib/cjs/accessControlClientInterfaces/ItwinSharesClient.js.map +1 -0
  31. package/lib/cjs/accessControlClientInterfaces/MemberInvitationsClient.d.ts +10 -0
  32. package/lib/cjs/accessControlClientInterfaces/MemberInvitationsClient.d.ts.map +1 -0
  33. package/lib/cjs/accessControlClientInterfaces/MemberInvitationsClient.js +7 -0
  34. package/lib/cjs/accessControlClientInterfaces/MemberInvitationsClient.js.map +1 -0
  35. package/lib/cjs/accessControlClientInterfaces/OwnerMembersClient .d.ts +13 -0
  36. package/lib/cjs/accessControlClientInterfaces/OwnerMembersClient .d.ts.map +1 -0
  37. package/lib/cjs/accessControlClientInterfaces/OwnerMembersClient .js +7 -0
  38. package/lib/cjs/accessControlClientInterfaces/OwnerMembersClient .js.map +1 -0
  39. package/lib/cjs/accessControlClientInterfaces/PermissionsClient.d.ts +10 -0
  40. package/lib/cjs/accessControlClientInterfaces/PermissionsClient.d.ts.map +1 -0
  41. package/lib/cjs/accessControlClientInterfaces/PermissionsClient.js +7 -0
  42. package/lib/cjs/accessControlClientInterfaces/PermissionsClient.js.map +1 -0
  43. package/lib/cjs/accessControlClientInterfaces/RolesClient.d.ts +16 -0
  44. package/lib/cjs/accessControlClientInterfaces/RolesClient.d.ts.map +1 -0
  45. package/lib/cjs/accessControlClientInterfaces/RolesClient.js +7 -0
  46. package/lib/cjs/accessControlClientInterfaces/RolesClient.js.map +1 -0
  47. package/lib/cjs/accessControlClientInterfaces/UserMembersClient.d.ts +16 -0
  48. package/lib/cjs/accessControlClientInterfaces/UserMembersClient.d.ts.map +1 -0
  49. package/lib/cjs/accessControlClientInterfaces/UserMembersClient.js +7 -0
  50. package/lib/cjs/accessControlClientInterfaces/UserMembersClient.js.map +1 -0
  51. package/lib/cjs/accessControlClientInterfaces/accessControl.d.ts +23 -0
  52. package/lib/cjs/accessControlClientInterfaces/accessControl.d.ts.map +1 -0
  53. package/lib/cjs/accessControlClientInterfaces/accessControl.js +7 -0
  54. package/lib/cjs/accessControlClientInterfaces/accessControl.js.map +1 -0
  55. package/lib/cjs/subClients/BaseClient.d.ts +88 -22
  56. package/lib/cjs/subClients/BaseClient.d.ts.map +1 -1
  57. package/lib/cjs/subClients/BaseClient.js +174 -34
  58. package/lib/cjs/subClients/BaseClient.js.map +1 -1
  59. package/lib/cjs/subClients/GroupMemberInvitationsClient.d.ts +33 -0
  60. package/lib/cjs/subClients/GroupMemberInvitationsClient.d.ts.map +1 -0
  61. package/lib/cjs/subClients/GroupMemberInvitationsClient.js +48 -0
  62. package/lib/cjs/subClients/GroupMemberInvitationsClient.js.map +1 -0
  63. package/lib/cjs/subClients/GroupMembersClient.d.ts +16 -6
  64. package/lib/cjs/subClients/GroupMembersClient.d.ts.map +1 -1
  65. package/lib/cjs/subClients/GroupMembersClient.js +22 -13
  66. package/lib/cjs/subClients/GroupMembersClient.js.map +1 -1
  67. package/lib/cjs/subClients/GroupsClient.d.ts +17 -9
  68. package/lib/cjs/subClients/GroupsClient.d.ts.map +1 -1
  69. package/lib/cjs/subClients/GroupsClient.js +22 -10
  70. package/lib/cjs/subClients/GroupsClient.js.map +1 -1
  71. package/lib/cjs/subClients/ITwinJobsClient.d.ts +12 -5
  72. package/lib/cjs/subClients/ITwinJobsClient.d.ts.map +1 -1
  73. package/lib/cjs/subClients/ITwinJobsClient.js +15 -3
  74. package/lib/cjs/subClients/ITwinJobsClient.js.map +1 -1
  75. package/lib/cjs/subClients/ItwinShares.d.ts +61 -0
  76. package/lib/cjs/subClients/ItwinShares.d.ts.map +1 -0
  77. package/lib/cjs/subClients/ItwinShares.js +77 -0
  78. package/lib/cjs/subClients/ItwinShares.js.map +1 -0
  79. package/lib/cjs/subClients/MemberInvitationsClient.d.ts +16 -3
  80. package/lib/cjs/subClients/MemberInvitationsClient.d.ts.map +1 -1
  81. package/lib/cjs/subClients/MemberInvitationsClient.js +22 -7
  82. package/lib/cjs/subClients/MemberInvitationsClient.js.map +1 -1
  83. package/lib/cjs/subClients/OwnerMembersClient.d.ts +45 -6
  84. package/lib/cjs/subClients/OwnerMembersClient.d.ts.map +1 -1
  85. package/lib/cjs/subClients/OwnerMembersClient.js +50 -10
  86. package/lib/cjs/subClients/OwnerMembersClient.js.map +1 -1
  87. package/lib/cjs/subClients/PermissionsClient.d.ts +10 -3
  88. package/lib/cjs/subClients/PermissionsClient.d.ts.map +1 -1
  89. package/lib/cjs/subClients/PermissionsClient.js +14 -2
  90. package/lib/cjs/subClients/PermissionsClient.js.map +1 -1
  91. package/lib/cjs/subClients/RolesClient.d.ts +13 -8
  92. package/lib/cjs/subClients/RolesClient.d.ts.map +1 -1
  93. package/lib/cjs/subClients/RolesClient.js +18 -6
  94. package/lib/cjs/subClients/RolesClient.js.map +1 -1
  95. package/lib/cjs/subClients/UserMembersClient.d.ts +13 -6
  96. package/lib/cjs/subClients/UserMembersClient.d.ts.map +1 -1
  97. package/lib/cjs/subClients/UserMembersClient.js +21 -9
  98. package/lib/cjs/subClients/UserMembersClient.js.map +1 -1
  99. package/lib/cjs/types/CommonApiTypes.d.ts +78 -0
  100. package/lib/cjs/types/CommonApiTypes.d.ts.map +1 -0
  101. package/lib/cjs/types/CommonApiTypes.js +7 -0
  102. package/lib/cjs/types/CommonApiTypes.js.map +1 -0
  103. package/lib/cjs/types/GroupMember.d.ts +75 -0
  104. package/lib/cjs/types/GroupMember.d.ts.map +1 -0
  105. package/lib/cjs/types/GroupMember.js +7 -0
  106. package/lib/cjs/types/GroupMember.js.map +1 -0
  107. package/lib/cjs/types/Groups.d.ts +64 -0
  108. package/lib/cjs/types/Groups.d.ts.map +1 -0
  109. package/lib/cjs/types/Groups.js +7 -0
  110. package/lib/cjs/types/Groups.js.map +1 -0
  111. package/lib/cjs/types/ITwinJob.d.ts +70 -0
  112. package/lib/cjs/types/ITwinJob.d.ts.map +1 -0
  113. package/lib/cjs/types/ITwinJob.js +7 -0
  114. package/lib/cjs/types/ITwinJob.js.map +1 -0
  115. package/lib/cjs/types/Invitations.d.ts +128 -0
  116. package/lib/cjs/types/Invitations.d.ts.map +1 -0
  117. package/lib/cjs/types/Invitations.js +7 -0
  118. package/lib/cjs/types/Invitations.js.map +1 -0
  119. package/lib/cjs/types/Members.d.ts +71 -0
  120. package/lib/cjs/types/Members.d.ts.map +1 -0
  121. package/lib/cjs/types/Members.js +7 -0
  122. package/lib/cjs/types/Members.js.map +1 -0
  123. package/lib/cjs/types/OwnerMember.d.ts +105 -0
  124. package/lib/cjs/types/OwnerMember.d.ts.map +1 -0
  125. package/lib/cjs/types/OwnerMember.js +7 -0
  126. package/lib/cjs/types/OwnerMember.js.map +1 -0
  127. package/lib/cjs/types/Permission.d.ts +5 -0
  128. package/lib/cjs/types/Permission.d.ts.map +1 -0
  129. package/lib/cjs/types/Permission.js +7 -0
  130. package/lib/cjs/types/Permission.js.map +1 -0
  131. package/lib/cjs/types/Role.d.ts +33 -0
  132. package/lib/cjs/types/Role.d.ts.map +1 -0
  133. package/lib/cjs/types/Role.js +7 -0
  134. package/lib/cjs/types/Role.js.map +1 -0
  135. package/lib/cjs/types/ShareContract.d.ts +80 -0
  136. package/lib/cjs/types/ShareContract.d.ts.map +1 -0
  137. package/lib/cjs/types/ShareContract.js +7 -0
  138. package/lib/cjs/types/ShareContract.js.map +1 -0
  139. package/lib/cjs/types/UserMembers.d.ts +115 -0
  140. package/lib/cjs/types/UserMembers.d.ts.map +1 -0
  141. package/lib/cjs/types/UserMembers.js +7 -0
  142. package/lib/cjs/types/UserMembers.js.map +1 -0
  143. package/lib/cjs/types/links.d.ts +20 -0
  144. package/lib/cjs/types/links.d.ts.map +1 -0
  145. package/lib/cjs/types/links.js +7 -0
  146. package/lib/cjs/types/links.js.map +1 -0
  147. package/lib/cjs/types/typeUtils.d.ts +42 -0
  148. package/lib/cjs/types/typeUtils.d.ts.map +1 -0
  149. package/lib/cjs/types/typeUtils.js +25 -0
  150. package/lib/cjs/types/typeUtils.js.map +1 -0
  151. package/lib/esm/AccessControlClient.d.ts +26 -9
  152. package/lib/esm/AccessControlClient.d.ts.map +1 -1
  153. package/lib/esm/AccessControlClient.js +31 -5
  154. package/lib/esm/AccessControlClient.js.map +1 -1
  155. package/lib/esm/access-control-client.d.ts +30 -1
  156. package/lib/esm/access-control-client.d.ts.map +1 -1
  157. package/lib/esm/access-control-client.js +33 -1
  158. package/lib/esm/access-control-client.js.map +1 -1
  159. package/lib/esm/accessControlClientInterfaces/GroupClient.d.ts +19 -0
  160. package/lib/esm/accessControlClientInterfaces/GroupClient.d.ts.map +1 -0
  161. package/lib/esm/accessControlClientInterfaces/GroupClient.js +6 -0
  162. package/lib/esm/accessControlClientInterfaces/GroupClient.js.map +1 -0
  163. package/lib/esm/accessControlClientInterfaces/GroupMemberInvitationClient.d.ts +15 -0
  164. package/lib/esm/accessControlClientInterfaces/GroupMemberInvitationClient.d.ts.map +1 -0
  165. package/lib/esm/accessControlClientInterfaces/GroupMemberInvitationClient.js +6 -0
  166. package/lib/esm/accessControlClientInterfaces/GroupMemberInvitationClient.js.map +1 -0
  167. package/lib/esm/accessControlClientInterfaces/GroupMembersClient.d.ts +19 -0
  168. package/lib/esm/accessControlClientInterfaces/GroupMembersClient.d.ts.map +1 -0
  169. package/lib/esm/accessControlClientInterfaces/GroupMembersClient.js +6 -0
  170. package/lib/esm/accessControlClientInterfaces/GroupMembersClient.js.map +1 -0
  171. package/lib/esm/accessControlClientInterfaces/ITwinJobsClient.d.ts +12 -0
  172. package/lib/esm/accessControlClientInterfaces/ITwinJobsClient.d.ts.map +1 -0
  173. package/lib/esm/accessControlClientInterfaces/ITwinJobsClient.js +6 -0
  174. package/lib/esm/accessControlClientInterfaces/ITwinJobsClient.js.map +1 -0
  175. package/lib/esm/accessControlClientInterfaces/ItwinSharesClient.d.ts +25 -0
  176. package/lib/esm/accessControlClientInterfaces/ItwinSharesClient.d.ts.map +1 -0
  177. package/lib/esm/accessControlClientInterfaces/ItwinSharesClient.js +6 -0
  178. package/lib/esm/accessControlClientInterfaces/ItwinSharesClient.js.map +1 -0
  179. package/lib/esm/accessControlClientInterfaces/MemberInvitationsClient.d.ts +10 -0
  180. package/lib/esm/accessControlClientInterfaces/MemberInvitationsClient.d.ts.map +1 -0
  181. package/lib/esm/accessControlClientInterfaces/MemberInvitationsClient.js +6 -0
  182. package/lib/esm/accessControlClientInterfaces/MemberInvitationsClient.js.map +1 -0
  183. package/lib/esm/accessControlClientInterfaces/OwnerMembersClient .d.ts +13 -0
  184. package/lib/esm/accessControlClientInterfaces/OwnerMembersClient .d.ts.map +1 -0
  185. package/lib/esm/accessControlClientInterfaces/OwnerMembersClient .js +6 -0
  186. package/lib/esm/accessControlClientInterfaces/OwnerMembersClient .js.map +1 -0
  187. package/lib/esm/accessControlClientInterfaces/PermissionsClient.d.ts +10 -0
  188. package/lib/esm/accessControlClientInterfaces/PermissionsClient.d.ts.map +1 -0
  189. package/lib/esm/accessControlClientInterfaces/PermissionsClient.js +6 -0
  190. package/lib/esm/accessControlClientInterfaces/PermissionsClient.js.map +1 -0
  191. package/lib/esm/accessControlClientInterfaces/RolesClient.d.ts +16 -0
  192. package/lib/esm/accessControlClientInterfaces/RolesClient.d.ts.map +1 -0
  193. package/lib/esm/accessControlClientInterfaces/RolesClient.js +6 -0
  194. package/lib/esm/accessControlClientInterfaces/RolesClient.js.map +1 -0
  195. package/lib/esm/accessControlClientInterfaces/UserMembersClient.d.ts +16 -0
  196. package/lib/esm/accessControlClientInterfaces/UserMembersClient.d.ts.map +1 -0
  197. package/lib/esm/accessControlClientInterfaces/UserMembersClient.js +6 -0
  198. package/lib/esm/accessControlClientInterfaces/UserMembersClient.js.map +1 -0
  199. package/lib/esm/accessControlClientInterfaces/accessControl.d.ts +23 -0
  200. package/lib/esm/accessControlClientInterfaces/accessControl.d.ts.map +1 -0
  201. package/lib/esm/accessControlClientInterfaces/accessControl.js +6 -0
  202. package/lib/esm/accessControlClientInterfaces/accessControl.js.map +1 -0
  203. package/lib/esm/subClients/BaseClient.d.ts +88 -22
  204. package/lib/esm/subClients/BaseClient.d.ts.map +1 -1
  205. package/lib/esm/subClients/BaseClient.js +175 -35
  206. package/lib/esm/subClients/BaseClient.js.map +1 -1
  207. package/lib/esm/subClients/GroupMemberInvitationsClient.d.ts +33 -0
  208. package/lib/esm/subClients/GroupMemberInvitationsClient.d.ts.map +1 -0
  209. package/lib/esm/subClients/GroupMemberInvitationsClient.js +44 -0
  210. package/lib/esm/subClients/GroupMemberInvitationsClient.js.map +1 -0
  211. package/lib/esm/subClients/GroupMembersClient.d.ts +16 -6
  212. package/lib/esm/subClients/GroupMembersClient.d.ts.map +1 -1
  213. package/lib/esm/subClients/GroupMembersClient.js +22 -13
  214. package/lib/esm/subClients/GroupMembersClient.js.map +1 -1
  215. package/lib/esm/subClients/GroupsClient.d.ts +17 -9
  216. package/lib/esm/subClients/GroupsClient.d.ts.map +1 -1
  217. package/lib/esm/subClients/GroupsClient.js +22 -10
  218. package/lib/esm/subClients/GroupsClient.js.map +1 -1
  219. package/lib/esm/subClients/ITwinJobsClient.d.ts +12 -5
  220. package/lib/esm/subClients/ITwinJobsClient.d.ts.map +1 -1
  221. package/lib/esm/subClients/ITwinJobsClient.js +15 -3
  222. package/lib/esm/subClients/ITwinJobsClient.js.map +1 -1
  223. package/lib/esm/subClients/ItwinShares.d.ts +61 -0
  224. package/lib/esm/subClients/ItwinShares.d.ts.map +1 -0
  225. package/lib/esm/subClients/ItwinShares.js +73 -0
  226. package/lib/esm/subClients/ItwinShares.js.map +1 -0
  227. package/lib/esm/subClients/MemberInvitationsClient.d.ts +16 -3
  228. package/lib/esm/subClients/MemberInvitationsClient.d.ts.map +1 -1
  229. package/lib/esm/subClients/MemberInvitationsClient.js +22 -7
  230. package/lib/esm/subClients/MemberInvitationsClient.js.map +1 -1
  231. package/lib/esm/subClients/OwnerMembersClient.d.ts +45 -6
  232. package/lib/esm/subClients/OwnerMembersClient.d.ts.map +1 -1
  233. package/lib/esm/subClients/OwnerMembersClient.js +50 -10
  234. package/lib/esm/subClients/OwnerMembersClient.js.map +1 -1
  235. package/lib/esm/subClients/PermissionsClient.d.ts +10 -3
  236. package/lib/esm/subClients/PermissionsClient.d.ts.map +1 -1
  237. package/lib/esm/subClients/PermissionsClient.js +14 -2
  238. package/lib/esm/subClients/PermissionsClient.js.map +1 -1
  239. package/lib/esm/subClients/RolesClient.d.ts +13 -8
  240. package/lib/esm/subClients/RolesClient.d.ts.map +1 -1
  241. package/lib/esm/subClients/RolesClient.js +18 -6
  242. package/lib/esm/subClients/RolesClient.js.map +1 -1
  243. package/lib/esm/subClients/UserMembersClient.d.ts +13 -6
  244. package/lib/esm/subClients/UserMembersClient.d.ts.map +1 -1
  245. package/lib/esm/subClients/UserMembersClient.js +21 -9
  246. package/lib/esm/subClients/UserMembersClient.js.map +1 -1
  247. package/lib/esm/types/CommonApiTypes.d.ts +78 -0
  248. package/lib/esm/types/CommonApiTypes.d.ts.map +1 -0
  249. package/lib/esm/types/CommonApiTypes.js +6 -0
  250. package/lib/esm/types/CommonApiTypes.js.map +1 -0
  251. package/lib/esm/types/GroupMember.d.ts +75 -0
  252. package/lib/esm/types/GroupMember.d.ts.map +1 -0
  253. package/lib/esm/types/GroupMember.js +6 -0
  254. package/lib/esm/types/GroupMember.js.map +1 -0
  255. package/lib/esm/types/Groups.d.ts +64 -0
  256. package/lib/esm/types/Groups.d.ts.map +1 -0
  257. package/lib/esm/types/Groups.js +6 -0
  258. package/lib/esm/types/Groups.js.map +1 -0
  259. package/lib/esm/types/ITwinJob.d.ts +70 -0
  260. package/lib/esm/types/ITwinJob.d.ts.map +1 -0
  261. package/lib/esm/types/ITwinJob.js +6 -0
  262. package/lib/esm/types/ITwinJob.js.map +1 -0
  263. package/lib/esm/types/Invitations.d.ts +128 -0
  264. package/lib/esm/types/Invitations.d.ts.map +1 -0
  265. package/lib/esm/types/Invitations.js +6 -0
  266. package/lib/esm/types/Invitations.js.map +1 -0
  267. package/lib/esm/types/Members.d.ts +71 -0
  268. package/lib/esm/types/Members.d.ts.map +1 -0
  269. package/lib/esm/types/Members.js +6 -0
  270. package/lib/esm/types/Members.js.map +1 -0
  271. package/lib/esm/types/OwnerMember.d.ts +105 -0
  272. package/lib/esm/types/OwnerMember.d.ts.map +1 -0
  273. package/lib/esm/types/OwnerMember.js +6 -0
  274. package/lib/esm/types/OwnerMember.js.map +1 -0
  275. package/lib/esm/types/Permission.d.ts +5 -0
  276. package/lib/esm/types/Permission.d.ts.map +1 -0
  277. package/lib/esm/types/Permission.js +6 -0
  278. package/lib/esm/types/Permission.js.map +1 -0
  279. package/lib/esm/types/Role.d.ts +33 -0
  280. package/lib/esm/types/Role.d.ts.map +1 -0
  281. package/lib/esm/types/Role.js +6 -0
  282. package/lib/esm/types/Role.js.map +1 -0
  283. package/lib/esm/types/ShareContract.d.ts +80 -0
  284. package/lib/esm/types/ShareContract.d.ts.map +1 -0
  285. package/lib/esm/types/ShareContract.js +6 -0
  286. package/lib/esm/types/ShareContract.js.map +1 -0
  287. package/lib/esm/types/UserMembers.d.ts +115 -0
  288. package/lib/esm/types/UserMembers.d.ts.map +1 -0
  289. package/lib/esm/types/UserMembers.js +6 -0
  290. package/lib/esm/types/UserMembers.js.map +1 -0
  291. package/lib/esm/types/links.d.ts +20 -0
  292. package/lib/esm/types/links.d.ts.map +1 -0
  293. package/lib/esm/types/links.js +6 -0
  294. package/lib/esm/types/links.js.map +1 -0
  295. package/lib/esm/types/typeUtils.d.ts +42 -0
  296. package/lib/esm/types/typeUtils.d.ts.map +1 -0
  297. package/lib/esm/types/typeUtils.js +22 -0
  298. package/lib/esm/types/typeUtils.js.map +1 -0
  299. package/package.json +58 -47
  300. package/CONTRIBUTING.md +0 -90
  301. package/GETTINGSTARTED.md +0 -35
  302. package/lib/cjs/accessControlTypes.d.ts +0 -229
  303. package/lib/cjs/accessControlTypes.d.ts.map +0 -1
  304. package/lib/cjs/accessControlTypes.js +0 -25
  305. package/lib/cjs/accessControlTypes.js.map +0 -1
  306. package/lib/esm/accessControlTypes.d.ts +0 -229
  307. package/lib/esm/accessControlTypes.d.ts.map +0 -1
  308. package/lib/esm/accessControlTypes.js +0 -22
  309. package/lib/esm/accessControlTypes.js.map +0 -1
package/README.md CHANGED
@@ -1,747 +1,225 @@
1
1
  # Access Control Client Library
2
2
 
3
- Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.
3
+ [![npm version](https://badge.fury.io/js/@itwin%2Faccess-control-client.svg)](https://badge.fury.io/js/@itwin%2Faccess-control-client)
4
4
 
5
- [iTwin.js](http://www.itwinjs.org) is an open source platform for creating, querying, modifying, and displaying Infrastructure Digital Twins. To learn more about the iTwin Platform and its APIs, visit the [iTwin developer portal](https://developer.bentley.com/).
5
+ A comprehensive TypeScript library for Bentley Systems' Access Control API, providing type-safe access to iTwin access management, roles, permissions, groups, and member operations.
6
6
 
7
- If you have questions, or wish to contribute to iTwin.js, see our [Contributing guide](./CONTRIBUTING.md).
7
+ ## Table of Contents
8
8
 
9
- ## About this Repository
10
-
11
- Contains the **@itwin/access-control-client** package that wraps sending requests to the access control service. Visit the [Access Control API](https://developer.bentley.com/apis/access-control/) for more documentation on the Access Control service.
9
+ - [Quick Start](#quick-start)
10
+ - [Installation](#installation)
11
+ - [Basic Usage](#basic-usage)
12
+ - [Documentation](#documentation)
13
+ - [API Reference](#api-reference)
14
+ - [About this Repository](#about-this-repository)
15
+ - [Development](#development)
16
+ - [Contributing](#contributing)
17
+ - [License](#license)
12
18
 
13
- ## Usage examples
19
+ ## Quick Start
14
20
 
15
- ### Get list of Roles for an iTwin
21
+ Get up and running with Access Control Client in just a few steps:
16
22
 
17
- ```typescript
18
- import type { AccessToken } from "@itwin/core-bentley";
19
- import {
20
- AccessControlClient,
21
- IAccessControlClient,
22
- Role,
23
- AccessControlAPIResponse,
24
- } from "@itwin/access-control-client";
25
-
26
- /** Function that queries all Roles for a given iTwin and prints their ids to the console. */
27
- async function printiTwinRoleIds(): Promise<void> {
28
- const accessControlClient: IAccessControlClient = new AccessControlClient();
29
- const accessToken: AccessToken = { get_access_token_logic_here };
30
-
31
- const iTwinsResponse: AccessControlAPIResponse<Role[]> =
32
- await accessControlClient.roles.getITwinRolesAsync(
33
- accessToken,
34
- "2f981e83-47e4-4f36-8ee9-4264453688a1"
35
- );
36
-
37
- iTwinsResponse.data!.forEach((actualRole: Role) => {
38
- console.log(actualRole.id);
39
- });
40
- }
23
+ ```bash
24
+ npm install @itwin/access-control-client
41
25
  ```
42
26
 
43
- ### Get list of Roles for an iTwin (with custom url)
44
-
45
27
  ```typescript
46
- import type { AccessToken } from "@itwin/core-bentley";
47
- import {
48
- AccessControlClient,
49
- IAccessControlClient,
50
- Role,
51
- AccessControlAPIResponse,
52
- } from "@itwin/access-control-client";
28
+ import { AccessControlClient } from "@itwin/access-control-client";
53
29
 
54
- /** Function that queries all Roles for a given iTwin and prints their ids to the console. */
55
- async function printiTwinRoleIds(): Promise<void> {
56
- const accessControlClient: IAccessControlClient = new AccessControlClient(
57
- "https://api.bentley.com/accesscontrol/itwins"
58
- );
59
- const accessToken: AccessToken = { get_access_token_logic_here };
60
-
61
- const iTwinsResponse: AccessControlAPIResponse<Role[]> =
62
- await accessControlClient.roles.getITwinRolesAsync(
63
- accessToken,
64
- "2f981e83-47e4-4f36-8ee9-4264453688a1"
65
- );
66
-
67
- iTwinsResponse.data!.forEach((actualRole: Role) => {
68
- console.log(actualRole.id);
69
- });
70
- }
30
+ const client = new AccessControlClient();
31
+ const accessToken = "your-access-token-string";
32
+ const roles = await client.roles.getITwinRoles(accessToken, "itwin-id");
33
+ console.log(`Found ${roles.data!.length} roles`);
71
34
  ```
72
35
 
73
- ### Get specific role for an iTwin
36
+ ## Installation
74
37
 
75
- ```typescript
76
- import type { AccessToken } from "@itwin/core-bentley";
77
- import {
78
- AccessControlClient,
79
- IAccessControlClient,
80
- Role,
81
- AccessControlAPIResponse,
82
- } from "@itwin/access-control-client";
83
-
84
- /** Function that gets a specific role for an iTwin and then prints the id and displayName to the console. */
85
- async function printiTwinRole(): Promise<void> {
86
- const accessControlClient: IAccessControlClient = new AccessControlClient();
87
- const accessToken: AccessToken = { get_access_token_logic_here };
88
-
89
- const iTwinsResponse: AccessControlAPIResponse<Role> =
90
- await accessControlClient.roles.getITwinRoleAsync(
91
- accessToken,
92
- "2f981e83-47e4-4f36-8ee9-4264453688a1",
93
- "2d593231-db14-4c1f-9db4-96f2b91b0bde"
94
- );
95
-
96
- const actualRole = iTwinsResponse.data!;
97
- console.log(actualRole.id, actualRole.displayName);
98
- }
99
- ```
38
+ ```bash
39
+ # Using npm
40
+ npm install @itwin/access-control-client
100
41
 
101
- ### Create, update, and delete a Role
102
-
103
- ```typescript
104
- import type { AccessToken } from "@itwin/core-bentley";
105
- import {
106
- AccessControlClient,
107
- IAccessControlClient,
108
- Role,
109
- AccessControlAPIResponse,
110
- } from "@itwin/access-control-client";
42
+ # Using yarn
43
+ yarn add @itwin/access-control-client
111
44
 
112
- /** Function that creates, updates, and deletes a role. */
113
- async function printiTwinRole(): Promise<void> {
114
- const accessControlClient: IAccessControlClient = new AccessControlClient();
115
- const accessToken: AccessToken = { get_access_token_logic_here };
116
-
117
- // Create role
118
- const createResponse: AccessControlAPIResponse<Role> =
119
- await accessControlClient.roles.createITwinRoleAsync(
120
- accessToken,
121
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
122
- "d8215a6b-465d-44ff-910b-40d4541d1ebf"
123
- );
124
-
125
- // Update role
126
- const updatedRole: Role = {
127
- displayName: "Some new role name",
128
- description: "UPDATED ROLE DESCRIPTION",
129
- permissions: [],
130
- };
131
- const updateResponse: AccessControlAPIResponse<Role> =
132
- await accessControlClient.roles.updateITwinRoleAsync(
133
- accessToken,
134
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
135
- createResponse.data!.id,
136
- updatedRole
137
- );
138
-
139
- // Delete Role
140
- const deleteResponse: AccessControlAPIResponse<undefined> =
141
- await accessControlClient.roles.deleteITwinRoleAsync(
142
- accessToken,
143
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
144
- createResponse.data!.id
145
- );
146
- }
45
+ # Using pnpm
46
+ pnpm add @itwin/access-control-client
147
47
  ```
148
48
 
149
- ### Get list of User Members for an iTwin
49
+ ## Basic Usage
150
50
 
151
- ```typescript
152
- import type { AccessToken } from "@itwin/core-bentley";
153
- import {
154
- AccessControlClient,
155
- IAccessControlClient,
156
- Member,
157
- AccessControlAPIResponse,
158
- } from "@itwin/access-control-client";
51
+ ### Authentication
159
52
 
160
- /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
161
- async function printiTwinUserMemberIds(): Promise<void> {
162
- const accessControlClient: IAccessControlClient = new AccessControlClient();
163
- const accessToken: AccessToken = { get_access_token_logic_here };
164
-
165
- const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
166
- await accessControlClient.userMembers.queryITwinUserMembersAsync(
167
- accessToken,
168
- "9bd7d24d-1508-4dba-99ab-23b3166401a0"
169
- );
170
-
171
- iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
172
- console.log(actualUserMember.id);
173
- });
174
- }
175
- ```
53
+ All API methods require an access token string. See the [iTwin Platform documentation](https://developer.bentley.com/tutorials/create-and-query-itwins-guide/#1-register-an-application) for authentication setup.
176
54
 
177
- ### Get a filtered list of User Members for an iTwin using $top/$skip
55
+ ### Environment Configuration
178
56
 
179
- ```typescript
180
- import type { AccessToken } from "@itwin/core-bentley";
181
- import {
182
- AccessControlClient,
183
- IAccessControlClient,
184
- Member,
185
- AccessControlAPIResponse,
186
- } from "@itwin/access-control-client";
187
-
188
- /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
189
- async function printiTwinUserMemberIds(): Promise<void> {
190
- const skipAmmount = 5;
191
- const topAmount = 3;
192
- const accessControlClient: IAccessControlClient = new AccessControlClient();
193
- const accessToken: AccessToken = { get_access_token_logic_here };
194
-
195
- const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
196
- await accessControlClient.userMembers.queryITwinUserMembersAsync(
197
- accessToken,
198
- "9bd7d24d-1508-4dba-99ab-23b3166401a0",
199
- { skip: skipAmmount, top: topAmount }
200
- );
201
-
202
- iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
203
- console.log(actualUserMember.id);
204
- });
205
- }
206
- ```
207
-
208
- ### Get a specific User Member of an iTwin
57
+ Configure different deployment environments using `globalThis.IMJS_URL_PREFIX`:
209
58
 
210
59
  ```typescript
211
- import type { AccessToken } from "@itwin/core-bentley";
212
- import {
213
- AccessControlClient,
214
- IAccessControlClient,
215
- Member,
216
- AccessControlAPIResponse,
217
- } from "@itwin/access-control-client";
60
+ // Development environment
61
+ globalThis.IMJS_URL_PREFIX = "dev-";
218
62
 
219
- /** Function that gets a member of an iTwin prints the id and email to the console. */
220
- async function printiTwinUserMemberIds(): Promise<void> {
221
- const accessControlClient: IAccessControlClient = new AccessControlClient();
222
- const accessToken: AccessToken = { get_access_token_logic_here };
223
-
224
- const iTwinsResponse: AccessControlAPIResponse<UserMember> =
225
- await accessControlClient.userMembers.getITwinUserMemberAsync(
226
- accessToken,
227
- "9bd7d24d-1508-4dba-99ab-23b3166401a0",
228
- "a083cc1c-f51a-4c52-8614-5774ab79eca1"
229
- );
230
-
231
- const actualUserMember = iTwinsResponse.data!;
232
- console.log(actualUserMember.id, actualUserMember.email);
233
- }
63
+ // QA environment
64
+ globalThis.IMJS_URL_PREFIX = "qa-";
65
+
66
+ // Production (default)
67
+ globalThis.IMJS_URL_PREFIX = undefined;
234
68
  ```
235
69
 
236
- ### Create, update, and delete an User Member
70
+ ## Documentation
237
71
 
238
- ```typescript
239
- import type { AccessToken } from "@itwin/core-bentley";
240
- import {
241
- AccessControlClient,
242
- IAccessControlClient,
243
- Member,
244
- AccessControlAPIResponse,
245
- } from "@itwin/access-control-client";
72
+ ### Core Documentation
246
73
 
247
- /** Function that creates, updates, and deletes a user member. */
248
- async function printiTwinRole(): Promise<void> {
249
- const accessControlClient: IAccessControlClient = new AccessControlClient();
250
- const accessToken: AccessToken = { get_access_token_logic_here };
251
-
252
- // Create user member
253
- const createResponse: AccessControlAPIResponse<Role> =
254
- await accessControlClient.userMembers.addITwinUserMembersAsync(
255
- accessToken,
256
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
257
- [
258
- {
259
- email: "user@example.com",
260
- roleIds: ["d8215a6b-465d-44ff-910b-40d4541d1ebf"],
261
- },
262
- ],
263
- "Example custom message"
264
- );
265
-
266
- // Update user member's role
267
- const updatedUserMemberResponse: AccessControlAPIResponse<UserMember> =
268
- await accessControlClient.userMembers.updateITwinUserMemberAsync(
269
- accessToken,
270
- "b1803a0c-d440-4902-b527-54bf7f72500f",
271
- "6401109c-75d7-46b8-8dbd-182d02155141",
272
- [
273
- "25162c0c-dce7-419e-bb51-fd13efd5b54a",
274
- "10e3d778-0d35-4c4d-bf77-547bb366cb14",
275
- ]
276
- );
277
-
278
- // Delete user member
279
- const removeUserMemberResponse: AccessControlAPIResponse<undefined> =
280
- await accessControlClient.userMembers.removeITwinUserMemberAsync(
281
- accessToken,
282
- "b1803a0c-d440-4902-b527-54bf7f72500f",
283
- "6401109c-75d7-46b8-8dbd-182d02155141"
284
- );
285
- }
286
- ```
74
+ | Document | Purpose |
75
+ |----------|---------|
76
+ | **[Getting Started Guide](./GETTINGSTARTED.md)** | Complete setup and first steps |
77
+ | **[Migration Guide v3→v4](./MIGRATION-GUIDE-v3-to-v4.md)** | Upgrading from v3.x to v4.x |
78
+ | **[Contributing Guide](./CONTRIBUTING.md)** | Development and contribution workflow |
287
79
 
288
- ### Get list of Owner Members for an iTwin
80
+ ## API Reference
289
81
 
290
- ```typescript
291
- import type { AccessToken } from "@itwin/core-bentley";
292
- import {
293
- AccessControlClient,
294
- IAccessControlClient,
295
- OwnerMember,
296
- AccessControlAPIResponse,
297
- } from "@itwin/access-control-client";
82
+ ### Core Classes
298
83
 
299
- /** Function that queries all Owner Members for a given iTwin and prints their ids to the console. */
300
- async function printiTwinOwnerMemberIds(): Promise<void> {
301
- const accessControlClient: IAccessControlClient = new AccessControlClient();
302
- const accessToken: AccessToken = { get_access_token_logic_here };
303
-
304
- const iTwinsResponse: AccessControlAPIResponse<OwnerMember[]> =
305
- await accessControlClient.ownerMembers.queryITwinOwnerMembersAsync(
306
- accessToken,
307
- "9bd7d24d-1508-4dba-99ab-23b3166401a0"
308
- );
309
-
310
- iTwinsResponse.data!.forEach((actualOwnerMember: OwnerMember) => {
311
- console.log(actualOwnerMember.id);
312
- });
313
- }
314
- ```
84
+ - **`AccessControlClient`** - Main client for all access control operations
85
+ - **`IAccessControlClient`** - Interface defining the client API surface
315
86
 
316
- ### Create, and delete an Owner Member
87
+ ### Sub-Clients
317
88
 
318
- ```typescript
319
- import type { AccessToken } from "@itwin/core-bentley";
320
- import {
321
- AccessControlClient,
322
- IAccessControlClient,
323
- OwnerMember,
324
- AccessControlAPIResponse,
325
- } from "@itwin/access-control-client";
89
+ The `AccessControlClient` exposes the following specialized sub-clients:
326
90
 
327
- /** Function that creates, and deletes an owner member. */
328
- async function createAndRemoveOwnerMember(): Promise<void> {
329
- const accessControlClient: IAccessControlClient = new AccessControlClient();
330
- const accessToken: AccessToken = { get_access_token_logic_here };
331
-
332
- // Create owner member
333
- const createOwnerMemberResponse: AccessControlAPIResponse<OwnerMember> =
334
- await accessControlClient.ownerMembers.addITwinOwnerMemberAsync(
335
- accessToken,
336
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
337
- {
338
- email: "test.user@bentley.com",
339
- }
340
- );
341
-
342
- // Delete owner member
343
- const removeOwnerMemberResponse: AccessControlAPIResponse<undefined> =
344
- await accessControlClient.ownerMembers.removeITwinOwnerMemberAsync(
345
- accessToken,
346
- "b1803a0c-d440-4902-b527-54bf7f72500f",
347
- "6401109c-75d7-46b8-8dbd-182d02155141"
348
- );
349
- }
350
- ```
91
+ #### Access Management
351
92
 
352
- ### Get list of Groups for an iTwin
93
+ - **`permissions`** - Query permissions across the platform and iTwins
94
+ - **`roles`** - Manage iTwin roles (CRUD operations)
353
95
 
354
- ```typescript
355
- import type { AccessToken } from "@itwin/core-bentley";
356
- import {
357
- AccessControlClient,
358
- IAccessControlClient,
359
- Group,
360
- AccessControlAPIResponse,
361
- } from "@itwin/access-control-client";
96
+ #### Group Management
362
97
 
363
- /** Function that queries all Groups for a given iTwin and prints their ids to the console. */
364
- async function printiTwinGroupIds(): Promise<void> {
365
- const accessControlClient: IAccessControlClient = new AccessControlClient();
366
- const accessToken: AccessToken = { get_access_token_logic_here };
367
-
368
- const iTwinsResponse: AccessControlAPIResponse<Group[]> =
369
- await accessControlClient.groups.getITwinGroupsAsync(
370
- accessToken,
371
- "2f981e83-47e4-4f36-8ee9-4264453688a1"
372
- );
373
-
374
- iTwinsResponse.data!.forEach((actualGroup: Group) => {
375
- console.log(actualGroup.id);
376
- });
377
- }
378
- ```
98
+ - **`groups`** - Manage iTwin groups (CRUD operations)
99
+ - **`groupMembers`** - Manage members within groups
100
+ - **`groupMemberInvitations`** - Handle group member invitation lifecycle
379
101
 
380
- ### Get list of Groups for an iTwin (with custom url)
102
+ #### User Management
381
103
 
382
- ```typescript
383
- import type { AccessToken } from "@itwin/core-bentley";
384
- import {
385
- AccessControlClient,
386
- IAccessControlClient,
387
- Group,
388
- AccessControlAPIResponse,
389
- } from "@itwin/access-control-client";
104
+ - **`userMembers`** - Manage individual user members of iTwins
105
+ - **`ownerMembers`** - Manage iTwin owner memberships
106
+ - **`memberInvitations`** - Handle member invitation lifecycle
390
107
 
391
- /** Function that queries all Groups for a given iTwin and prints their ids to the console. */
392
- async function printiTwinGroupIds(): Promise<void> {
393
- const accessControlClient: IAccessControlClient = new AccessControlClient(
394
- "https://api.bentley.com/accesscontrol/itwins"
395
- );
396
- const accessToken: AccessToken = { get_access_token_logic_here };
397
-
398
- const iTwinsResponse: AccessControlAPIResponse<Group[]> =
399
- await accessControlClient.groups.getITwinGroupsAsync(
400
- accessToken,
401
- "2f981e83-47e4-4f36-8ee9-4264453688a1"
402
- );
403
-
404
- iTwinsResponse.data!.forEach((actualGroup: Group) => {
405
- console.log(actualGroup.id);
406
- });
407
- }
408
- ```
108
+ #### Advanced Operations
409
109
 
410
- ### Get specific Group for an iTwin
110
+ - **`itwinJobs`** - Bulk operations for member management
111
+ - **`itwinShares`** - Manage iTwin sharing and access tokens
411
112
 
412
- ```typescript
413
- import type { AccessToken } from "@itwin/core-bentley";
414
- import {
415
- AccessControlClient,
416
- IAccessControlClient,
417
- Group,
418
- AccessControlAPIResponse,
419
- } from "@itwin/access-control-client";
113
+ ### Key Features
420
114
 
421
- /** Function that gets a specific role for an iTwin and then prints the id and displayName to the console. */
422
- async function printiTwinGroup(): Promise<void> {
423
- const accessControlClient: IAccessControlClient = new AccessControlClient();
424
- const accessToken: AccessToken = { get_access_token_logic_here };
425
-
426
- const iTwinsResponse: AccessControlAPIResponse<Group> =
427
- await accessControlClient.groups.getITwinGroupAsync(
428
- accessToken,
429
- "2f981e83-47e4-4f36-8ee9-4264453688a1",
430
- "2d593231-db14-4c1f-9db4-96f2b91b0bde"
431
- );
432
-
433
- const actualGroup = iTwinsResponse.data!;
434
- console.log(actualGroup.id, actualGroup.displayName);
435
- }
436
- ```
115
+ - **Complete CRUD operations** for roles, groups, and members
116
+ - **Bulk operations** via iTwin Jobs
117
+ - **Invitation management** for users and groups
118
+ - **Sharing capabilities** for controlled iTwin access
119
+ - ✅ **Type-safe API** with full TypeScript support
437
120
 
438
- ### Create, update, and delete a Group
121
+ ### Quick Reference
439
122
 
440
123
  ```typescript
441
- import type { AccessToken } from "@itwin/core-bentley";
442
- import {
443
- AccessControlClient,
444
- IAccessControlClient,
445
- Group,
446
- AccessControlAPIResponse,
124
+ import { AccessControlClient } from "@itwin/access-control-client";
125
+ import type {
126
+ BentleyAPIResponse,
127
+ Role,
128
+ MultipleUserMembersResponse
447
129
  } from "@itwin/access-control-client";
448
130
 
449
- /** Function that creates, updates, and deletes a role. */
450
- async function printiTwinGroup(): Promise<void> {
451
- const accessControlClient: IAccessControlClient = new AccessControlClient();
452
- const accessToken: AccessToken = { get_access_token_logic_here };
453
-
454
- // Create role
455
- const createResponse: AccessControlAPIResponse<Group> =
456
- await accessControlClient.groups.createITwinGroupAsync(
457
- accessToken,
458
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
459
- "d8215a6b-465d-44ff-910b-40d4541d1ebf"
460
- );
461
-
462
- // Update role
463
- const updatedGroup: Group = {
464
- name: "Some new group name",
465
- description: "UPDATED GROUP DESCRIPTION",
466
- user: ["John.Johnson@example.com"],
467
- imsGroups: ["Sample IMS Group"],
468
- };
469
- const updateResponse: AccessControlAPIResponse<Group> =
470
- await accessControlClient.groups.updateITwinGroupAsync(
471
- accessToken,
472
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
473
- createResponse.data!.id,
474
- updatedGroup
475
- );
476
-
477
- // Delete Group
478
- const deleteResponse: AccessControlAPIResponse<undefined> =
479
- await accessControlClient.groups.deleteITwinGRoupAsync(
480
- accessToken,
481
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
482
- createResponse.data!.id
483
- );
484
- }
485
- ```
131
+ const client = new AccessControlClient();
132
+ const accessToken = "your-access-token-string";
133
+ const iTwinId = "your-itwin-id";
486
134
 
487
- ### Get list of Group Members for an iTwin
135
+ // Get roles
136
+ const roles = await client.roles.getITwinRoles(accessToken, iTwinId);
488
137
 
489
- ```typescript
490
- import type { AccessToken } from "@itwin/core-bentley";
491
- import {
492
- AccessControlClient,
493
- IAccessControlClient,
494
- Member,
495
- AccessControlAPIResponse,
496
- } from "@itwin/access-control-client";
138
+ // Create a role
139
+ const newRole = await client.roles.createITwinRole(accessToken, iTwinId, {
140
+ displayName: "Project Manager",
141
+ description: "Role for project management"
142
+ });
497
143
 
498
- /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
499
- async function printiTwinGroupMemberIds(): Promise<void> {
500
- const accessControlClient: IAccessControlClient = new AccessControlClient();
501
- const accessToken: AccessToken = { get_access_token_logic_here };
502
-
503
- const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
504
- await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
505
- accessToken,
506
- "9bd7d24d-1508-4dba-99ab-23b3166401a0"
507
- );
508
-
509
- iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
510
- console.log(actualGroupMember.id);
511
- });
512
- }
144
+ // Query user members
145
+ const members = await client.userMembers.queryITwinUserMembers(
146
+ accessToken,
147
+ iTwinId,
148
+ { top: 10 }
149
+ );
150
+
151
+ // Add user members
152
+ const addedMembers = await client.userMembers.addITwinUserMembers(
153
+ accessToken,
154
+ iTwinId,
155
+ [{
156
+ email: "user@example.com",
157
+ roleIds: ["role-id"]
158
+ }],
159
+ "Welcome message"
160
+ );
513
161
  ```
514
162
 
515
- ### Get a filtered list of Group Members for an iTwin using $top/$skip
163
+ ## About this Repository
516
164
 
517
- ```typescript
518
- import type { AccessToken } from "@itwin/core-bentley";
519
- import {
520
- AccessControlClient,
521
- IAccessControlClient,
522
- Member,
523
- AccessControlAPIResponse,
524
- } from "@itwin/access-control-client";
165
+ The **@itwin/access-control-client** package provides a modern, type-safe interface to Bentley Systems' Access Control API. It manages iTwin access permissions, roles, groups, members, invitations, and sharing capabilities.
525
166
 
526
- /** Function that queries all User Members for a given iTwin and prints their ids to the console. */
527
- async function printiTwinGroupMemberIds(): Promise<void> {
528
- const skipAmmount = 5;
529
- const topAmount = 3;
530
- const accessControlClient: IAccessControlClient = new AccessControlClient();
531
- const accessToken: AccessToken = { get_access_token_logic_here };
532
-
533
- const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
534
- await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
535
- accessToken,
536
- "9bd7d24d-1508-4dba-99ab-23b3166401a0",
537
- { skip: skipAmmount, top: topAmount }
538
- );
539
-
540
- iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
541
- console.log(actualGroupMember.id);
542
- });
543
- }
544
- ```
167
+ For more information about the iTwin platform and APIs, visit:
545
168
 
546
- ### Get a specific Group Member of an iTwin
169
+ - [iTwin Developer Portal](https://developer.bentley.com/)
170
+ - [Access Control API Documentation](https://developer.bentley.com/apis/access-control/)
171
+ - [iTwin.js Platform](http://www.itwinjs.org)
547
172
 
548
- ```typescript
549
- import type { AccessToken } from "@itwin/core-bentley";
550
- import {
551
- AccessControlClient,
552
- IAccessControlClient,
553
- Member,
554
- AccessControlAPIResponse,
555
- } from "@itwin/access-control-client";
173
+ ## Development
556
174
 
557
- /** Function that gets a member of an iTwin prints the id and email to the console. */
558
- async function printiTwinGroupMemberIds(): Promise<void> {
559
- const accessControlClient: IAccessControlClient = new AccessControlClient();
560
- const accessToken: AccessToken = { get_access_token_logic_here };
561
-
562
- const iTwinsResponse: AccessControlAPIResponse<GroupMember> =
563
- await accessControlClient.groupMembers.getITwinGroupMemberAsync(
564
- accessToken,
565
- "9bd7d24d-1508-4dba-99ab-23b3166401a0",
566
- "a083cc1c-f51a-4c52-8614-5774ab79eca1"
567
- );
568
-
569
- const actualGroupMember = iTwinsResponse.data!;
570
- console.log(actualGroupMember.id, actualGroupMember.email);
571
- }
572
- ```
175
+ ### Prerequisites
573
176
 
574
- ### Create, update, and delete a Group Member
177
+ - Node.js 16+ and pnpm
178
+ - TypeScript 4.5+
179
+ - Valid iTwin Platform credentials
575
180
 
576
- ```typescript
577
- import type { AccessToken } from "@itwin/core-bentley";
578
- import {
579
- AccessControlClient,
580
- IAccessControlClient,
581
- Member,
582
- AccessControlAPIResponse,
583
- } from "@itwin/access-control-client";
181
+ ### Building from Source
584
182
 
585
- /** Function that creates, updates, and deletes a user member. */
586
- async function printiTwinRole(): Promise<void> {
587
- const accessControlClient: IAccessControlClient = new AccessControlClient();
588
- const accessToken: AccessToken = { get_access_token_logic_here };
589
-
590
- // Create user member
591
- const createResponse: AccessControlAPIResponse<Role> =
592
- await accessControlClient.groupMembers.addITwinGroupMembersAsync(
593
- accessToken,
594
- "71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
595
- "d8215a6b-465d-44ff-910b-40d4541d1ebf"
596
- );
597
-
598
- // Update user member's role
599
- const updatedGroupMemberResponse: AccessControlAPIResponse<GroupMember> =
600
- await accessControlClient.groupMembers.updateITwinGroupMemberAsync(
601
- accessToken,
602
- "b1803a0c-d440-4902-b527-54bf7f72500f",
603
- "6401109c-75d7-46b8-8dbd-182d02155141",
604
- [
605
- "25162c0c-dce7-419e-bb51-fd13efd5b54a",
606
- "10e3d778-0d35-4c4d-bf77-547bb366cb14",
607
- ]
608
- );
609
-
610
- // Delete user member
611
- const removeGroupMemberResponse: AccessControlAPIResponse<undefined> =
612
- await accessControlClient.groupMembers.removeITwinGroupMemberAsync(
613
- accessToken,
614
- "b1803a0c-d440-4902-b527-54bf7f72500f",
615
- "6401109c-75d7-46b8-8dbd-182d02155141"
616
- );
617
- }
183
+ ```bash
184
+ git clone https://github.com/iTwin/access-control-client.git
185
+ cd access-control-client
186
+ pnpm install
187
+ pnpm build
618
188
  ```
619
189
 
620
- ### Get a list of Permissions
190
+ ### Running Tests
621
191
 
622
- ```typescript
623
- import type { AccessToken } from "@itwin/core-bentley";
624
- import {
625
- AccessControlClient,
626
- IAccessControlClient,
627
- Permission,
628
- AccessControlAPIResponse,
629
- } from "@itwin/access-control-client";
192
+ .env file setup is required for tests. View [Getting Started](./GETTINGSTARTED.md) for more information.
630
193
 
631
- /** Function that queries all Permissions and prints the ids to the console. */
632
- async function printiTwinPermissionIds(): Promise<void> {
633
- const accessControlClient: IAccessControlClient = new AccessControlClient();
634
- const accessToken: AccessToken = { get_access_token_logic_here };
194
+ ```bash
195
+ # Run all tests
196
+ pnpm test
635
197
 
636
- const iTwinsResponse: AccessControlAPIResponse<Permission[]> =
637
- await accessControlClient.permissions.getPermissionsAsync(accessToken);
198
+ # Run tests with coverage
199
+ pnpm test:coverage
638
200
 
639
- iTwinsResponse.data!.forEach((actualPermission: Permission) => {
640
- console.log(actualPermission.id);
641
- });
642
- }
201
+ # Run linting
202
+ pnpm lint
643
203
  ```
644
204
 
645
- ### Get a list of Permissions for an iTwin
205
+ ## Contributing
646
206
 
647
- ```typescript
648
- import type { AccessToken } from "@itwin/core-bentley";
649
- import {
650
- AccessControlClient,
651
- IAccessControlClient,
652
- Permission,
653
- AccessControlAPIResponse,
654
- } from "@itwin/access-control-client";
207
+ We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details on:
655
208
 
656
- /** Function that queries Permissions for a given iTwin and prints the ids to the console. */
657
- async function printiTwinPermissionIds(): Promise<void> {
658
- const accessControlClient: IAccessControlClient = new AccessControlClient();
659
- const accessToken: AccessToken = { get_access_token_logic_here };
660
-
661
- const iTwinsResponse: AccessControlAPIResponse<Permission[]> =
662
- await accessControlClient.permissions.getITwinPermissionsAsync(
663
- accessToken,
664
- "6c704296-9028-4a1e-ae67-c0104a11402a"
665
- );
666
-
667
- iTwinsResponse.data!.forEach((actualPermission: Permission) => {
668
- console.log(actualPermission.id);
669
- });
670
- }
671
- ```
209
+ - How to submit issues and feature requests
210
+ - Development workflow and coding standards
211
+ - Pull request process and review guidelines
212
+ - Testing requirements and conventions
213
+ - How to use changesets for versioning
672
214
 
673
- ### Create and get iTwin job and related actions
215
+ ### Versioning
674
216
 
675
- ```typescript
676
- import type { AccessToken } from "@itwin/core-bentley";
677
- import {
678
- AccessControlClient,
679
- IAccessControlClient,
680
- ITwinJob,
681
- ITwinJobActions,
682
- AccessControlAPIResponse,
683
- } from "@itwin/access-control-client";
217
+ This project uses [Changesets](https://github.com/changesets/changesets) for version management. For more information view [Contributing Guide](./CONTRIBUTING.md).
684
218
 
685
- /** Function that creates, updates, and deletes a user member. */
686
- async function printiTwinRole(): Promise<void> {
687
- const accessControlClient: IAccessControlClient = new AccessControlClient();
688
- const accessToken: AccessToken = { get_access_token_logic_here };
689
-
690
- const itwinJobActions = {
691
- assignRoles: [
692
- {
693
- email: "John.Johnson@example.com",
694
- roleIds: ["65819672-962d-4386-8667-136125bcb7b2"],
695
- },
696
- ],
697
- unassignRoles: [
698
- {
699
- email: "Maria.Miller@example.com",
700
- roleIds: ["d6a62e34-5016-4bac-a9a0-a6522583698e"],
701
- },
702
- ],
703
- removeMembers: [
704
- {
705
- email: "Jobby.McJobface@example.com",
706
- },
707
- ],
708
- };
709
-
710
- // Create iTwin job
711
- const createResponse: AccessControlAPIResponse<ITwinJob> =
712
- await accessControlClient.itwinJobs.createITwinJobAsync(
713
- accessToken,
714
- "d7d82799-3f0c-4175-acbe-cc2573e99359",
715
- itwinJobActions
716
- );
717
-
718
- // Get the created iTwin job
719
- const getiTwinJobResponse: AccessControlAPIResponse<ITwinJob> =
720
- await accessControlClient.itwinJobs.getITwinJobAsync(
721
- accessToken,
722
- "d7d82799-3f0c-4175-acbe-cc2573e99359",
723
- createResponse.data.id
724
- );
725
-
726
- // Get the created iTwin job with errors
727
- const getiTwinJobResponseWithErrors: AccessControlAPIResponse<ITwinJob> =
728
- await accessControlClient.itwinJobs.getITwinJobAsync(
729
- accessToken,
730
- "d7d82799-3f0c-4175-acbe-cc2573e99359",
731
- createResponse.data.id,
732
- "representation"
733
- );
734
-
735
- // Get the created iTwin job's actions
736
- const getiTwinJobActionaResponse: AccessControlAPIResponse<ITwinJobActions> =
737
- await accessControlClient.itwinJobs.getITwinJobActionsAsync(
738
- accessToken,
739
- "d7d82799-3f0c-4175-acbe-cc2573e99359",
740
- createResponse.data.id
741
- );
742
- }
743
- ```
219
+ ## License
220
+
221
+ Copyright © Bentley Systems, Incorporated. All rights reserved.
744
222
 
745
- ## Contributing to this Repository
223
+ This project is licensed under the MIT License - see the [LICENSE.md](./LICENSE.md) file for details.
746
224
 
747
- For information on how to contribute to this project, please read [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines, [GETTINGSTARTED.md](GETTINGSTARTED.md) for information on working with the documentation in this repository.
225
+ ---