@itwin/access-control-client 3.7.0 → 4.1.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 +124 -25
  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 +12 -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 -29
  56. package/lib/cjs/subClients/BaseClient.d.ts.map +1 -1
  57. package/lib/cjs/subClients/BaseClient.js +165 -40
  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 +18 -10
  68. package/lib/cjs/subClients/GroupsClient.d.ts.map +1 -1
  69. package/lib/cjs/subClients/GroupsClient.js +27 -12
  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 +23 -3
  80. package/lib/cjs/subClients/MemberInvitationsClient.d.ts.map +1 -1
  81. package/lib/cjs/subClients/MemberInvitationsClient.js +32 -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 +83 -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 +146 -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 +12 -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 -29
  204. package/lib/esm/subClients/BaseClient.d.ts.map +1 -1
  205. package/lib/esm/subClients/BaseClient.js +166 -41
  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 +18 -10
  216. package/lib/esm/subClients/GroupsClient.d.ts.map +1 -1
  217. package/lib/esm/subClients/GroupsClient.js +27 -12
  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 +23 -3
  228. package/lib/esm/subClients/MemberInvitationsClient.d.ts.map +1 -1
  229. package/lib/esm/subClients/MemberInvitationsClient.js +32 -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 +83 -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 +146 -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 +59 -45
  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
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module AccessControlClient
8
+ */
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.RolesClient = void 0;
4
11
  const BaseClient_1 = require("./BaseClient");
12
+ /** Client API to perform iTwin role operations.
13
+ */
5
14
  class RolesClient extends BaseClient_1.BaseClient {
15
+ /** Create a new RolesClient instance
16
+ * @param url Optional base URL for the access control service. If not provided, defaults to base url.
17
+ */
6
18
  constructor(url) {
7
19
  super(url);
8
20
  }
@@ -11,16 +23,16 @@ class RolesClient extends BaseClient_1.BaseClient {
11
23
  * @param iTwinId The id of the iTwin
12
24
  * @returns Roles
13
25
  */
14
- async getITwinRolesAsync(accessToken, iTwinId, additionalHeaders) {
26
+ async getITwinRoles(accessToken, iTwinId) {
15
27
  const url = `${this._baseUrl}/${iTwinId}/roles`;
16
- return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles", additionalHeaders);
28
+ return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles");
17
29
  }
18
30
  /** Retrieves the specified role for the specified iTwin
19
31
  * @param accessToken The client access token string
20
32
  * @param iTwinId The id of the iTwin
21
33
  * @returns Role
22
34
  */
23
- async getITwinRoleAsync(accessToken, iTwinId, roleId) {
35
+ async getITwinRole(accessToken, iTwinId, roleId) {
24
36
  const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;
25
37
  return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "role");
26
38
  }
@@ -30,7 +42,7 @@ class RolesClient extends BaseClient_1.BaseClient {
30
42
  * @param role The role to be created
31
43
  * @returns Role
32
44
  */
33
- async createITwinRoleAsync(accessToken, iTwinId, role) {
45
+ async createITwinRole(accessToken, iTwinId, role) {
34
46
  const url = `${this._baseUrl}/${iTwinId}/roles`;
35
47
  return this.sendGenericAPIRequest(accessToken, "POST", url, role, "role");
36
48
  }
@@ -40,7 +52,7 @@ class RolesClient extends BaseClient_1.BaseClient {
40
52
  * @param roleId The id of the role to remove
41
53
  * @returns No Content
42
54
  */
43
- async deleteITwinRoleAsync(accessToken, iTwinId, roleId) {
55
+ async deleteITwinRole(accessToken, iTwinId, roleId) {
44
56
  const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;
45
57
  return this.sendGenericAPIRequest(accessToken, "DELETE", url);
46
58
  }
@@ -51,7 +63,7 @@ class RolesClient extends BaseClient_1.BaseClient {
51
63
  * @param role The updated role
52
64
  * @returns Role
53
65
  */
54
- async updateITwinRoleAsync(accessToken, iTwinId, roleId, role) {
66
+ async updateITwinRole(accessToken, iTwinId, roleId, role) {
55
67
  const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;
56
68
  return this.sendGenericAPIRequest(accessToken, "PATCH", url, role, "role");
57
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":";;;AASA,6CAA0C;AAE1C,MAAa,WAAY,SAAQ,uBAAU;IACzC,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe,EACf,iBAA6C;QAE7C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,iBAAiB,CAC5B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc,EACd,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACF;AA/ED,kCA+EC","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 { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { AccessControlAPIResponse, IRolesClient, Role } from \"../accessControlTypes\";\r\nimport { BaseClient } from \"./BaseClient\";\r\n\r\nexport class RolesClient extends BaseClient implements IRolesClient {\r\n public constructor(url?: string) {\r\n super(url);\r\n }\r\n\r\n /** Retrieves a list of available user roles that are defined for a specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Roles\r\n */\r\n public async getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<Role[]>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"roles\", additionalHeaders);\r\n }\r\n\r\n /** Retrieves the specified role for the specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Role\r\n */\r\n public async getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"role\");\r\n }\r\n\r\n /** Creates a new iTwin Role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param role The role to be created\r\n * @returns Role\r\n */\r\n public async createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"POST\", url, role, \"role\");\r\n }\r\n\r\n /** Delete the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to remove\r\n * @returns No Content\r\n */\r\n public async deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<undefined>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\r\n }\r\n\r\n /** Update the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to update\r\n * @param role The updated role\r\n * @returns Role\r\n */\r\n public async updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"PATCH\", url, role, \"role\");\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAMH,6CAA0C;AAG1C;GACG;AACH,MAAa,WAAY,SAAQ,uBAAU;IACzC;;OAEG;IACH,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,aAAa,CACxB,WAAwB,EACxB,OAAe;QAEf,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,YAAY,CACvB,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,eAAe,CAC1B,WAAwB,EACxB,OAAe,EACf,IAA+C;QAE/C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,eAAe,CAC1B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,eAAe,CAC1B,WAAwB,EACxB,OAAe,EACf,MAAc,EACd,IAA+B;QAE/B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACF;AAjFD,kCAiFC","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\nimport type { IRolesClient } from \"../accessControlClientInterfaces/RolesClient\";\r\nimport type { BentleyAPIResponse } from \"../types/CommonApiTypes\";\r\nimport type { Role } from \"../types/Role\";\r\nimport { BaseClient } from \"./BaseClient\";\r\n\r\n\r\n/** Client API to perform iTwin role operations.\r\n */\r\nexport class RolesClient extends BaseClient implements IRolesClient {\r\n /** Create a new RolesClient instance\r\n * @param url Optional base URL for the access control service. If not provided, defaults to base url.\r\n */\r\n public constructor(url?: string) {\r\n super(url);\r\n }\r\n\r\n /** Retrieves a list of available user roles that are defined for a specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Roles\r\n */\r\n public async getITwinRoles(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n ): Promise<BentleyAPIResponse<Role[]>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"roles\");\r\n }\r\n\r\n /** Retrieves the specified role for the specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Role\r\n */\r\n public async getITwinRole(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<BentleyAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"role\");\r\n }\r\n\r\n /** Creates a new iTwin Role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param role The role to be created\r\n * @returns Role\r\n */\r\n public async createITwinRole(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Pick<Role, \"displayName\" | \"description\">\r\n ): Promise<BentleyAPIResponse<Pick<Role, \"id\" | \"displayName\" | \"description\">>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"POST\", url, role, \"role\");\r\n }\r\n\r\n /** Delete the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to remove\r\n * @returns No Content\r\n */\r\n public async deleteITwinRole(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<BentleyAPIResponse<undefined>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\r\n }\r\n\r\n /** Update the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to update\r\n * @param role The updated role\r\n * @returns Role\r\n */\r\n public async updateITwinRole(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Partial<Omit<Role, \"id\">>\r\n ): Promise<BentleyAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"PATCH\", url, role, \"role\");\r\n }\r\n}\r\n"]}
@@ -2,23 +2,30 @@
2
2
  * @module AccessControlClient
3
3
  */
4
4
  import type { AccessToken } from "@itwin/core-bentley";
5
- import type { AccessControlAPIResponse, AccessControlQueryArg, AddUserMember, AddUserMemberResponse, IUserMembersClient, UserMember } from "../accessControlTypes";
5
+ import type { IUserMembersClient } from "../accessControlClientInterfaces/UserMembersClient";
6
+ import type { BentleyAPIResponse, ODataQueryParams } from "../types/CommonApiTypes";
7
+ import type { AddUserMember, AddUserMemberResponse, MultipleUserMembersResponse, SingleUserMemberResponse } from "../types/UserMembers";
6
8
  import { BaseClient } from "./BaseClient";
9
+ /** Client API to perform user members operations.
10
+ */
7
11
  export declare class UserMembersClient extends BaseClient implements IUserMembersClient {
12
+ /** Create a new UserMembersClient instance
13
+ * @param url Optional base URL for the access control service. If not provided, defaults to base url.
14
+ */
8
15
  constructor(url?: string);
9
16
  /** Retrieves a list of iTwin user members and their roles assignments.
10
17
  * @param accessToken The client access token string
11
18
  * @param iTwinId The id of the iTwin
12
19
  * @returns Array of members
13
20
  */
14
- queryITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<UserMember[]>>;
21
+ queryITwinUserMembers(accessToken: AccessToken, iTwinId: string, arg?: Pick<ODataQueryParams, "top" | "skip">): Promise<BentleyAPIResponse<MultipleUserMembersResponse>>;
15
22
  /** Retrieves a specific user member for a specified iTwin.
16
23
  * @param accessToken The client access token string
17
24
  * @param iTwinId The id of the iTwin
18
25
  * @param memberId The id of the member
19
26
  * @returns Member
20
27
  */
21
- getITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<UserMember>>;
28
+ getITwinUserMember(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<BentleyAPIResponse<SingleUserMemberResponse>>;
22
29
  /** Add new iTwin user members
23
30
  * @param accessToken The client access token string
24
31
  * @param iTwinId The id of the iTwin
@@ -26,14 +33,14 @@ export declare class UserMembersClient extends BaseClient implements IUserMember
26
33
  * @param customMessage Send custom message in welcome email when adding new members
27
34
  * @returns AddUserMemberResponse -- the added or invited user members
28
35
  */
29
- addITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: AddUserMember[], customMessage?: string): Promise<AccessControlAPIResponse<AddUserMemberResponse>>;
36
+ addITwinUserMembers(accessToken: AccessToken, iTwinId: string, newMembers: AddUserMember[], customMessage?: string): Promise<BentleyAPIResponse<AddUserMemberResponse>>;
30
37
  /** Remove the specified user member from the iTwin
31
38
  * @param accessToken The client access token string
32
39
  * @param iTwinId The id of the iTwin
33
40
  * @param memberId The id of the member
34
41
  * @returns No Content
35
42
  */
36
- removeITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
43
+ removeITwinUserMember(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<BentleyAPIResponse<undefined>>;
37
44
  /** Update iTwin user member roles
38
45
  * @param accessToken The client access token string
39
46
  * @param iTwinId The id of the iTwin
@@ -41,6 +48,6 @@ export declare class UserMembersClient extends BaseClient implements IUserMember
41
48
  * @param roleIds The ids of the roles to be assigned
42
49
  * @returns Member
43
50
  */
44
- updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
51
+ updateITwinUserMember(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<BentleyAPIResponse<SingleUserMemberResponse>>;
45
52
  }
46
53
  //# sourceMappingURL=UserMembersClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,iBACX,SAAQ,UACR,YAAW,kBAAkB;gBACV,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;OAIG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,qBAAqB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC,CAAC;IAgBlD;;;;;OAKG;IACU,uBAAuB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAWhD;;;;;;OAMG;IACU,wBAAwB,CACnC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,EAAE,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAc3D;;;;;OAKG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;OAMG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;CAajD"}
1
+ {"version":3,"file":"UserMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxI,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;GACG;AACH,qBAAa,iBACX,SAAQ,UACR,YAAW,kBAAkB;IAC7B;;OAEG;gBACgB,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;OAIG;IACU,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,MAAM,CAAC,GAC3C,OAAO,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;IAe3D;;;;;OAKG;IACU,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAUxD;;;;;;OAMG;IACU,mBAAmB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,EAAE,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAcrD;;;;;OAKG;IACU,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAKzC;;;;;;OAMG;IACU,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;CAYzD"}
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module AccessControlClient
8
+ */
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.UserMembersClient = void 0;
4
11
  const BaseClient_1 = require("./BaseClient");
12
+ /** Client API to perform user members operations.
13
+ */
5
14
  class UserMembersClient extends BaseClient_1.BaseClient {
15
+ /** Create a new UserMembersClient instance
16
+ * @param url Optional base URL for the access control service. If not provided, defaults to base url.
17
+ */
6
18
  constructor(url) {
7
19
  super(url);
8
20
  }
@@ -11,12 +23,12 @@ class UserMembersClient extends BaseClient_1.BaseClient {
11
23
  * @param iTwinId The id of the iTwin
12
24
  * @returns Array of members
13
25
  */
14
- async queryITwinUserMembersAsync(accessToken, iTwinId, arg) {
26
+ async queryITwinUserMembers(accessToken, iTwinId, arg) {
15
27
  let url = `${this._baseUrl}/${iTwinId}/members/users`;
16
28
  if (arg) {
17
- url += `?${this.getQueryString(arg)}`;
29
+ url += `?${this.getQueryString(UserMembersClient.paginationParamMapping, { top: arg.top, skip: arg.skip })}`;
18
30
  }
19
- return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "members"); // TODO: Consider how to handle paging
31
+ return this.sendGenericAPIRequest(accessToken, "GET", url, undefined);
20
32
  }
21
33
  /** Retrieves a specific user member for a specified iTwin.
22
34
  * @param accessToken The client access token string
@@ -24,9 +36,9 @@ class UserMembersClient extends BaseClient_1.BaseClient {
24
36
  * @param memberId The id of the member
25
37
  * @returns Member
26
38
  */
27
- async getITwinUserMemberAsync(accessToken, iTwinId, memberId) {
39
+ async getITwinUserMember(accessToken, iTwinId, memberId) {
28
40
  const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
29
- return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "member");
41
+ return this.sendGenericAPIRequest(accessToken, "GET", url, undefined);
30
42
  }
31
43
  /** Add new iTwin user members
32
44
  * @param accessToken The client access token string
@@ -35,7 +47,7 @@ class UserMembersClient extends BaseClient_1.BaseClient {
35
47
  * @param customMessage Send custom message in welcome email when adding new members
36
48
  * @returns AddUserMemberResponse -- the added or invited user members
37
49
  */
38
- async addITwinUserMembersAsync(accessToken, iTwinId, newMembers, customMessage) {
50
+ async addITwinUserMembers(accessToken, iTwinId, newMembers, customMessage) {
39
51
  const url = `${this._baseUrl}/${iTwinId}/members/users`;
40
52
  const body = {
41
53
  members: newMembers,
@@ -49,7 +61,7 @@ class UserMembersClient extends BaseClient_1.BaseClient {
49
61
  * @param memberId The id of the member
50
62
  * @returns No Content
51
63
  */
52
- async removeITwinUserMemberAsync(accessToken, iTwinId, memberId) {
64
+ async removeITwinUserMember(accessToken, iTwinId, memberId) {
53
65
  const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
54
66
  return this.sendGenericAPIRequest(accessToken, "DELETE", url);
55
67
  }
@@ -60,12 +72,12 @@ class UserMembersClient extends BaseClient_1.BaseClient {
60
72
  * @param roleIds The ids of the roles to be assigned
61
73
  * @returns Member
62
74
  */
63
- async updateITwinUserMemberAsync(accessToken, iTwinId, memberId, roleIds) {
75
+ async updateITwinUserMember(accessToken, iTwinId, memberId, roleIds) {
64
76
  const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
65
77
  const body = {
66
78
  roleIds,
67
79
  };
68
- return this.sendGenericAPIRequest(accessToken, "PATCH", url, body, "member");
80
+ return this.sendGenericAPIRequest(accessToken, "PATCH", url, body);
69
81
  }
70
82
  }
71
83
  exports.UserMembersClient = UserMembersClient;
@@ -1 +1 @@
1
- {"version":3,"file":"UserMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":";;;AAgBA,6CAA0C;AAE1C,MAAa,iBACX,SAAQ,uBAAU;IAElB,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,GAA2B;QAE3B,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QAEtD,IAAI,GAAG,EAAE;YACP,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,SAAS,CACV,CAAC,CAAC,sCAAsC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB,CAClC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,wBAAwB,CACnC,WAAwB,EACxB,OAAe,EACf,UAA2B,EAC3B,aAAsB;QAEtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QACxD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,UAAU;YACnB,aAAa;SACd,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,QAAgB,EAChB,OAAiB;QAEjB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG;YACX,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,OAAO,EACP,GAAG,EACH,IAAI,EACJ,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAvHD,8CAuHC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccessControlClient\n */\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type {\n AccessControlAPIResponse,\n AccessControlQueryArg,\n AddUserMember,\n AddUserMemberResponse,\n IUserMembersClient,\n UserMember,\n} from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class UserMembersClient\n extends BaseClient\n implements IUserMembersClient {\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin user members and their roles assignments.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Array of members\n */\n public async queryITwinUserMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: AccessControlQueryArg\n ): Promise<AccessControlAPIResponse<UserMember[]>> {\n let url = `${this._baseUrl}/${iTwinId}/members/users`;\n\n if (arg) {\n url += `?${this.getQueryString(arg)}`;\n }\n\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"members\"\n ); // TODO: Consider how to handle paging\n }\n\n /** Retrieves a specific user member for a specified iTwin.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns Member\n */\n public async getITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<UserMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"member\"\n );\n }\n\n /** Add new iTwin user members\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param newMembers The list of members to add or invite, along with their role\n * @param customMessage Send custom message in welcome email when adding new members\n * @returns AddUserMemberResponse -- the added or invited user members\n */\n public async addITwinUserMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n newMembers: AddUserMember[],\n customMessage?: string\n ): Promise<AccessControlAPIResponse<AddUserMemberResponse>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users`;\n const body = {\n members: newMembers,\n customMessage,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n body\n );\n }\n\n /** Remove the specified user member from the iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns No Content\n */\n public async removeITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n\n /** Update iTwin user member roles\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @param roleIds The ids of the roles to be assigned\n * @returns Member\n */\n public async updateITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string,\n roleIds: string[]\n ): Promise<AccessControlAPIResponse<UserMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n const body = {\n roleIds,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"PATCH\",\n url,\n body,\n \"member\"\n );\n }\n}\n"]}
1
+ {"version":3,"file":"UserMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAMH,6CAA0C;AAE1C;GACG;AACH,MAAa,iBACX,SAAQ,uBAAU;IAElB;;OAEG;IACH,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,GAA4C;QAE5C,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QAEtD,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,mBAAmB,CAC9B,WAAwB,EACxB,OAAe,EACf,UAA2B,EAC3B,aAAsB;QAEtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QACxD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,UAAU;YACnB,aAAa;SACd,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,QAAgB,EAChB,OAAiB;QAEjB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG;YACX,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,OAAO,EACP,GAAG,EACH,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AAvHD,8CAuHC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccessControlClient\n */\n\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type { IUserMembersClient } from \"../accessControlClientInterfaces/UserMembersClient\";\nimport type { BentleyAPIResponse, ODataQueryParams } from \"../types/CommonApiTypes\";\nimport type { AddUserMember, AddUserMemberResponse, MultipleUserMembersResponse, SingleUserMemberResponse } from \"../types/UserMembers\";\nimport { BaseClient } from \"./BaseClient\";\n\n/** Client API to perform user members operations.\n */\nexport class UserMembersClient\n extends BaseClient\n implements IUserMembersClient {\n /** Create a new UserMembersClient instance\n * @param url Optional base URL for the access control service. If not provided, defaults to base url.\n */\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin user members and their roles assignments.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Array of members\n */\n public async queryITwinUserMembers(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: Pick<ODataQueryParams, \"top\" | \"skip\">\n ): Promise<BentleyAPIResponse<MultipleUserMembersResponse>> {\n let url = `${this._baseUrl}/${iTwinId}/members/users`;\n\n if (arg) {\n url += `?${this.getQueryString(UserMembersClient.paginationParamMapping, { top: arg.top, skip: arg.skip })}`;\n }\n\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined\n );\n }\n\n /** Retrieves a specific user member for a specified iTwin.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns Member\n */\n public async getITwinUserMember(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<BentleyAPIResponse<SingleUserMemberResponse>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined\n );\n }\n\n /** Add new iTwin user members\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param newMembers The list of members to add or invite, along with their role\n * @param customMessage Send custom message in welcome email when adding new members\n * @returns AddUserMemberResponse -- the added or invited user members\n */\n public async addITwinUserMembers(\n accessToken: AccessToken,\n iTwinId: string,\n newMembers: AddUserMember[],\n customMessage?: string\n ): Promise<BentleyAPIResponse<AddUserMemberResponse>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users`;\n const body = {\n members: newMembers,\n customMessage,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n body\n );\n }\n\n /** Remove the specified user member from the iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns No Content\n */\n public async removeITwinUserMember(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<BentleyAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n\n /** Update iTwin user member roles\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @param roleIds The ids of the roles to be assigned\n * @returns Member\n */\n public async updateITwinUserMember(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string,\n roleIds: string[]\n ): Promise<BentleyAPIResponse<SingleUserMemberResponse>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n const body = {\n roleIds,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"PATCH\",\n url,\n body\n );\n }\n}\n"]}
@@ -0,0 +1,78 @@
1
+ declare global {
2
+ var IMJS_URL_PREFIX: string | undefined;
3
+ }
4
+ /**
5
+ * Common HTTP methods used in API requests
6
+ */
7
+ export type Method = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
8
+ /**
9
+ * Configuration object for HTTP requests
10
+ */
11
+ export interface RequestConfig {
12
+ method: Method;
13
+ url: string;
14
+ body?: string | Blob;
15
+ headers?: Record<string, string>;
16
+ validateStatus?: (status: number) => boolean;
17
+ }
18
+ /**
19
+ * Standard response structure for all Bentley public API operations
20
+ * @template T The type of data returned in the response
21
+ */
22
+ export interface BentleyAPIResponse<T> {
23
+ data?: T;
24
+ status: number;
25
+ error?: ApimError;
26
+ headers: Record<string, string>;
27
+ }
28
+ /**
29
+ * Error response structure from iTwins API
30
+ */
31
+ export interface ApimError {
32
+ code: string;
33
+ message: string;
34
+ details?: ErrorDetail[];
35
+ target?: string;
36
+ }
37
+ /**
38
+ * Detailed error information from iTwins API responses
39
+ */
40
+ export interface ErrorDetail {
41
+ code: string;
42
+ message: string;
43
+ target?: string;
44
+ }
45
+ /**
46
+ * Result mode preference for API responses.
47
+ * - minimal: Returns only essential data fields
48
+ * - representation: Returns complete data with all available properties
49
+ */
50
+ export type ResultMode = "minimal" | "representation";
51
+ /**
52
+ * OData query parameters interface for filtering, pagination, and data manipulation.
53
+ * Supports standard OData v4 query options for flexible API data retrieval.
54
+ * @see {@link https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html} OData URL Conventions
55
+ */
56
+ export interface ODataQueryParams {
57
+ /** Maximum number of results to return (for pagination) */
58
+ top?: number;
59
+ /** Number of results to skip (for pagination) */
60
+ skip?: number;
61
+ /** Search string to filter results by keyword */
62
+ search?: string;
63
+ /** Filter expression to apply to the query */
64
+ filter?: string;
65
+ /** Comma-separated list of properties to include in the response */
66
+ select?: string;
67
+ /** Comma-separated list of properties to expand with related data */
68
+ expand?: string;
69
+ /** Comma-separated list of properties to order results by (append ' desc' for descending) */
70
+ orderby?: string;
71
+ /** Include total count of matching records in response metadata */
72
+ count?: boolean;
73
+ /** Apply aggregation transformations to the data */
74
+ apply?: string;
75
+ /** Specify response format (json, xml, etc.) */
76
+ format?: string;
77
+ }
78
+ //# sourceMappingURL=CommonApiTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonApiTypes.d.ts","sourceRoot":"","sources":["../../../src/types/CommonApiTypes.ts"],"names":[],"mappings":"AAMA,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=CommonApiTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonApiTypes.js","sourceRoot":"","sources":["../../../src/types/CommonApiTypes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n// Add this at the top of the file or in a types file\ndeclare global {\n var IMJS_URL_PREFIX: string | undefined;\n}\n\n/**\n * Common HTTP methods used in API requests\n */\nexport type Method = \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\";\n\n/**\n * Configuration object for HTTP requests\n */\nexport interface RequestConfig {\n method: Method;\n url: string;\n body?: string | Blob;\n headers?: Record<string, string>;\n validateStatus?: (status: number) => boolean;\n}\n\n/**\n * Standard response structure for all Bentley public API operations\n * @template T The type of data returned in the response\n */\nexport interface BentleyAPIResponse<T> {\n data?: T;\n status: number;\n error?: ApimError;\n headers: Record<string, string>;\n}\n\n/**\n * Error response structure from iTwins API\n */\nexport interface ApimError {\n code: string;\n message: string;\n details?: ErrorDetail[];\n target?: string;\n}\n\n/**\n * Detailed error information from iTwins API responses\n */\nexport interface ErrorDetail {\n code: string;\n message: string;\n target?: string;\n}\n\n/**\n * Result mode preference for API responses.\n * - minimal: Returns only essential data fields\n * - representation: Returns complete data with all available properties\n */\nexport type ResultMode = \"minimal\" | \"representation\";\n\n/**\n * OData query parameters interface for filtering, pagination, and data manipulation.\n * Supports standard OData v4 query options for flexible API data retrieval.\n * @see {@link https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html} OData URL Conventions\n */\nexport interface ODataQueryParams {\n /** Maximum number of results to return (for pagination) */\n top?: number;\n /** Number of results to skip (for pagination) */\n skip?: number;\n /** Search string to filter results by keyword */\n search?: string;\n /** Filter expression to apply to the query */\n filter?: string;\n /** Comma-separated list of properties to include in the response */\n select?: string;\n /** Comma-separated list of properties to expand with related data */\n expand?: string;\n /** Comma-separated list of properties to order results by (append ' desc' for descending) */\n orderby?: string;\n /** Include total count of matching records in response metadata */\n count?: boolean;\n /** Apply aggregation transformations to the data */\n apply?: string;\n /** Specify response format (json, xml, etc.) */\n format?: string;\n}"]}
@@ -0,0 +1,75 @@
1
+ import type { Role } from "./Role";
2
+ /**
3
+ * Represents a group that is a member of an iTwin with associated roles and metadata.
4
+ *
5
+ * @remarks
6
+ * Group members are groups that have been added to an iTwin and assigned specific roles.
7
+ * This provides information about the group's identity, assigned roles, and aggregate
8
+ * counts of its nested membership structure.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const groupMember: GroupMember = {
13
+ * id: "550e8400-e29b-41d4-a716-446655440000",
14
+ * groupName: "Engineering Team",
15
+ * groupDescription: "Software engineering team members",
16
+ * roles: [
17
+ * { id: "admin-role", displayName: "Administrator" },
18
+ * { id: "viewer-role", displayName: "Viewer" }
19
+ * ],
20
+ * };
21
+ * ```
22
+ */
23
+ export interface GroupMember {
24
+ /** Unique identifier for the group member */
25
+ id: string;
26
+ /** Display name of the group */
27
+ groupName: string;
28
+ /** Human-readable description of the group's purpose */
29
+ groupDescription: string;
30
+ /** Array of roles assigned to this group member (excludes permissions for security) */
31
+ roles: Role[];
32
+ }
33
+ /**
34
+ * Request to add group members to an iTwin with role assignments.
35
+ *
36
+ * @remarks
37
+ * The total number of roles assigned in this request must not exceed 50.
38
+ * This can be achieved with many different configurations. For example,
39
+ * 1 role can be assigned to 50 groups, or 5 roles can be assigned to 10 groups,
40
+ * both resulting in 50 role assignments.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const request: AddGroupMembers = {
45
+ * members: [{
46
+ * groupId: "6abbfcea-0eab-472a-b5f5-5c5a43df34b4",
47
+ * roleIds: ["5abbfcef-0eab-472a-b5f5-5c5a43df34b1", "83ee0d80-dea3-495a-b6c0-7bb102ebbcc3"]
48
+ * }]
49
+ * };
50
+ * ```
51
+ */
52
+ export interface GroupMemberAssignment {
53
+ /** Array of groups to add as members with their assigned roles */
54
+ members: {
55
+ /** The ID of the group to add as a member */
56
+ groupId: string;
57
+ /** Array of role IDs to assign to this group member */
58
+ roleIds: string[];
59
+ }[];
60
+ }
61
+ /**
62
+ * API response wrapper for a single group member operation.
63
+ */
64
+ export interface SingleGroupMemberResponse {
65
+ /** The group member data returned by the API */
66
+ member: GroupMember;
67
+ }
68
+ /**
69
+ * API response wrapper for multiple group members operations.
70
+ */
71
+ export interface MultipleGroupMembersResponse {
72
+ /** Array of group members returned by the API */
73
+ members: GroupMember[];
74
+ }
75
+ //# sourceMappingURL=GroupMember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupMember.d.ts","sourceRoot":"","sources":["../../../src/types/GroupMember.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,OAAO,EAAE;QACP,6CAA6C;QAC7C,OAAO,EAAE,MAAM,CAAC;QAChB,uDAAuD;QACvD,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,gDAAgD;IAChD,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=GroupMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupMember.js","sourceRoot":"","sources":["../../../src/types/GroupMember.ts"],"names":[],"mappings":";AAAA;;;gGAGgG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport type { Role } from \"./Role\";\n\n/**\n * Represents a group that is a member of an iTwin with associated roles and metadata.\n *\n * @remarks\n * Group members are groups that have been added to an iTwin and assigned specific roles.\n * This provides information about the group's identity, assigned roles, and aggregate\n * counts of its nested membership structure.\n *\n * @example\n * ```typescript\n * const groupMember: GroupMember = {\n * id: \"550e8400-e29b-41d4-a716-446655440000\",\n * groupName: \"Engineering Team\",\n * groupDescription: \"Software engineering team members\",\n * roles: [\n * { id: \"admin-role\", displayName: \"Administrator\" },\n * { id: \"viewer-role\", displayName: \"Viewer\" }\n * ],\n * };\n * ```\n */\nexport interface GroupMember {\n /** Unique identifier for the group member */\n id: string;\n /** Display name of the group */\n groupName: string;\n /** Human-readable description of the group's purpose */\n groupDescription: string;\n /** Array of roles assigned to this group member (excludes permissions for security) */\n roles: Role[];\n}\n\n/**\n * Request to add group members to an iTwin with role assignments.\n *\n * @remarks\n * The total number of roles assigned in this request must not exceed 50.\n * This can be achieved with many different configurations. For example,\n * 1 role can be assigned to 50 groups, or 5 roles can be assigned to 10 groups,\n * both resulting in 50 role assignments.\n *\n * @example\n * ```typescript\n * const request: AddGroupMembers = {\n * members: [{\n * groupId: \"6abbfcea-0eab-472a-b5f5-5c5a43df34b4\",\n * roleIds: [\"5abbfcef-0eab-472a-b5f5-5c5a43df34b1\", \"83ee0d80-dea3-495a-b6c0-7bb102ebbcc3\"]\n * }]\n * };\n * ```\n */\nexport interface GroupMemberAssignment {\n /** Array of groups to add as members with their assigned roles */\n members: {\n /** The ID of the group to add as a member */\n groupId: string;\n /** Array of role IDs to assign to this group member */\n roleIds: string[];\n }[];\n}\n\n/**\n * API response wrapper for a single group member operation.\n */\nexport interface SingleGroupMemberResponse {\n /** The group member data returned by the API */\n member: GroupMember;\n}\n\n/**\n * API response wrapper for multiple group members operations.\n */\nexport interface MultipleGroupMembersResponse {\n /** Array of group members returned by the API */\n members: GroupMember[];\n}"]}
@@ -0,0 +1,83 @@
1
+ import type { Links } from "./links";
2
+ import type { GroupUser } from "./Members";
3
+ /**
4
+ * Represents an access control group within an iTwin.
5
+ *
6
+ * @remarks
7
+ * Access Control groups provide the ability to manage groups of users at one time.
8
+ * You can create groups on the Account iTwin to manage access across iTwins or
9
+ * create a group for an individual iTwin. Groups created on an individual iTwin
10
+ * are available only on that iTwin.
11
+ *
12
+ * Groups can contain individual users. Groups can also reference Bentley Identity
13
+ * Management System (IMS) groups. By referencing an IMS group, you can manage
14
+ * groups of individuals in your Active Directory, while providing them access to
15
+ * iTwin Platform using role assignments.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const projectGroup: Group = {
20
+ * id: "550e8400-e29b-41d4-a716-446655440000",
21
+ * name: "Project Managers",
22
+ * description: "Users with project management responsibilities",
23
+ * members: [
24
+ * { id: "user123", email: "manager@company.com", firstName: "John", lastName: "Smith" }
25
+ * ],
26
+ * imsGroups: ["COMPANY_ADMINS", "PROJECT_LEADS"]
27
+ * };
28
+ * ```
29
+ */
30
+ export interface Group {
31
+ /** The Group id */
32
+ id: string;
33
+ /** The name of your Group */
34
+ name: string;
35
+ /** A description of your Group */
36
+ description: string;
37
+ /** List of members assigned to the Group. Max size of 50 */
38
+ members: GroupUser[];
39
+ /** List of IMS Groups assigned to the Group. Max size of 50 */
40
+ imsGroups: string[];
41
+ }
42
+ /**
43
+ * API response wrapper for a single group operation.
44
+ *
45
+ * @remarks
46
+ * This interface is used for API responses that return a single group,
47
+ * such as GET /groups/{id}, POST /groups, and PATCH /groups/{id} operations.
48
+ */
49
+ export interface SingleGroupResponse {
50
+ /** The group data returned by the API */
51
+ group: Group;
52
+ }
53
+ /** Utility type to determine if any pagination parameters are present */
54
+ export type HasAnyPaginationParam<T> = T extends {
55
+ top?: unknown;
56
+ } | {
57
+ skip?: unknown;
58
+ } ? true : false;
59
+ /**
60
+ * API response wrapper for multiple groups operations.
61
+ * Conditional inclusion of HAL-style links based on pagination parameters.
62
+ *
63
+ * @remarks
64
+ * This interface is used for API responses that return multiple groups,
65
+ * such as GET /groups operations. The array may be empty if no groups
66
+ * match the query criteria or if the iTwin has no groups defined.
67
+ */
68
+ export type GroupsResponseWithConditionalLinks<T> = HasAnyPaginationParam<T> extends true ? MultipleGroupsResponse : Omit<MultipleGroupsResponse, "_links">;
69
+ /**
70
+ * API response wrapper for multiple groups operations.
71
+ *
72
+ * @remarks
73
+ * This interface is used for API responses that return multiple groups,
74
+ * such as GET /groups operations. The array may be empty if no groups
75
+ * match the query criteria or if the iTwin has no groups defined.
76
+ */
77
+ export interface MultipleGroupsResponse {
78
+ /** Array of groups returned by the API */
79
+ groups: Group[];
80
+ /** HAL-style links for pagination and related resources */
81
+ _links: Links;
82
+ }
83
+ //# sourceMappingURL=Groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Groups.d.ts","sourceRoot":"","sources":["../../../src/types/Groups.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,KAAK;IACpB,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,KAAK,EAAE,KAAK,CAAC;CACd;AAED,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,kCAAkC,CAAC,CAAC,IAC9C,qBAAqB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,sBAAsB,GACtB,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,2DAA2D;IAE3D,MAAM,EAAE,KAAK,CAAC;CACf"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=Groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/types/Groups.ts"],"names":[],"mappings":";AAAA;;;gGAGgG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport type { Links } from \"./links\";\nimport type { GroupUser } from \"./Members\";\n\n/**\n * Represents an access control group within an iTwin.\n *\n * @remarks\n * Access Control groups provide the ability to manage groups of users at one time.\n * You can create groups on the Account iTwin to manage access across iTwins or\n * create a group for an individual iTwin. Groups created on an individual iTwin\n * are available only on that iTwin.\n *\n * Groups can contain individual users. Groups can also reference Bentley Identity\n * Management System (IMS) groups. By referencing an IMS group, you can manage\n * groups of individuals in your Active Directory, while providing them access to\n * iTwin Platform using role assignments.\n *\n * @example\n * ```typescript\n * const projectGroup: Group = {\n * id: \"550e8400-e29b-41d4-a716-446655440000\",\n * name: \"Project Managers\",\n * description: \"Users with project management responsibilities\",\n * members: [\n * { id: \"user123\", email: \"manager@company.com\", firstName: \"John\", lastName: \"Smith\" }\n * ],\n * imsGroups: [\"COMPANY_ADMINS\", \"PROJECT_LEADS\"]\n * };\n * ```\n */\nexport interface Group {\n /** The Group id */\n id: string;\n /** The name of your Group */\n name: string;\n /** A description of your Group */\n description: string;\n /** List of members assigned to the Group. Max size of 50 */\n members: GroupUser[];\n /** List of IMS Groups assigned to the Group. Max size of 50 */\n imsGroups: string[];\n}\n\n/**\n * API response wrapper for a single group operation.\n *\n * @remarks\n * This interface is used for API responses that return a single group,\n * such as GET /groups/{id}, POST /groups, and PATCH /groups/{id} operations.\n */\nexport interface SingleGroupResponse {\n /** The group data returned by the API */\n group: Group;\n}\n\n/** Utility type to determine if any pagination parameters are present */\nexport type HasAnyPaginationParam<T> =\n T extends { top?: unknown } | { skip?: unknown } ? true : false;\n\n/**\n * API response wrapper for multiple groups operations.\n * Conditional inclusion of HAL-style links based on pagination parameters.\n *\n * @remarks\n * This interface is used for API responses that return multiple groups,\n * such as GET /groups operations. The array may be empty if no groups\n * match the query criteria or if the iTwin has no groups defined.\n */\nexport type GroupsResponseWithConditionalLinks<T> =\n HasAnyPaginationParam<T> extends true\n ? MultipleGroupsResponse\n : Omit<MultipleGroupsResponse, \"_links\">;\n\n/**\n * API response wrapper for multiple groups operations.\n *\n * @remarks\n * This interface is used for API responses that return multiple groups,\n * such as GET /groups operations. The array may be empty if no groups\n * match the query criteria or if the iTwin has no groups defined.\n */\nexport interface MultipleGroupsResponse {\n /** Array of groups returned by the API */\n groups: Group[];\n /** HAL-style links for pagination and related resources */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _links: Links;\n}\n"]}