@pnp/cli-microsoft365 6.0.0-beta.78fdd2c → 6.0.0-beta.80d195f

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 (270) hide show
  1. package/.devcontainer/Dockerfile +3 -1
  2. package/.devcontainer/devcontainer.json +1 -0
  3. package/dist/m365/aad/commands/app/app-add.js +161 -22
  4. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +13 -13
  5. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +14 -14
  6. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +12 -12
  7. package/dist/m365/aad/commands/o365group/o365group-add.js +2 -7
  8. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-list.js +6 -6
  9. package/dist/m365/aad/commands/o365group/o365group-teamify.js +12 -12
  10. package/dist/m365/aad/commands/policy/policy-list.js +6 -6
  11. package/dist/m365/aad/commands/sp/sp-get.js +14 -14
  12. package/dist/m365/booking/commands/business/business-get.js +86 -0
  13. package/dist/m365/booking/commands/business/business-list.js +30 -0
  14. package/dist/m365/booking/commands.js +8 -0
  15. package/dist/m365/flow/commands/flow-disable.js +2 -2
  16. package/dist/m365/flow/commands/flow-enable.js +2 -2
  17. package/dist/m365/flow/commands/flow-export.js +5 -5
  18. package/dist/m365/flow/commands/flow-get.js +2 -2
  19. package/dist/m365/flow/commands/flow-list.js +2 -2
  20. package/dist/m365/flow/commands/flow-remove.js +3 -3
  21. package/dist/m365/flow/commands/run/run-cancel.js +6 -6
  22. package/dist/m365/flow/commands/run/run-get.js +4 -4
  23. package/dist/m365/flow/commands/run/run-list.js +4 -4
  24. package/dist/m365/flow/commands/run/run-resubmit.js +7 -7
  25. package/dist/m365/outlook/commands/message/message-move.js +2 -2
  26. package/dist/m365/pa/commands/connector/connector-export.js +3 -3
  27. package/dist/m365/pa/commands/connector/connector-list.js +2 -2
  28. package/dist/m365/pa/commands/solution/solution-reference-add.js +7 -7
  29. package/dist/m365/search/commands/externalconnection/externalconnection-remove.js +101 -0
  30. package/dist/m365/search/commands.js +2 -1
  31. package/dist/m365/spfx/commands/package/package-generate.js +2 -2
  32. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  33. package/dist/m365/spo/commands/app/SpoAppBaseCommand.js +1 -1
  34. package/dist/m365/spo/commands/app/app-add.js +7 -7
  35. package/dist/m365/spo/commands/app/app-deploy.js +7 -7
  36. package/dist/m365/spo/commands/app/app-get.js +7 -7
  37. package/dist/m365/spo/commands/app/app-install.js +6 -6
  38. package/dist/m365/spo/commands/app/app-list.js +7 -7
  39. package/dist/m365/spo/commands/app/app-remove.js +7 -7
  40. package/dist/m365/spo/commands/app/app-retract.js +7 -7
  41. package/dist/m365/spo/commands/app/app-uninstall.js +6 -6
  42. package/dist/m365/spo/commands/app/app-upgrade.js +6 -6
  43. package/dist/m365/spo/commands/apppage/apppage-set.js +2 -2
  44. package/dist/m365/spo/commands/cdn/cdn-policy-list.js +7 -7
  45. package/dist/m365/spo/commands/cdn/cdn-policy-set.js +7 -7
  46. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +13 -13
  47. package/dist/m365/spo/commands/customaction/customaction-add.js +3 -3
  48. package/dist/m365/spo/commands/customaction/customaction-clear.js +3 -3
  49. package/dist/m365/spo/commands/customaction/customaction-get.js +5 -4
  50. package/dist/m365/spo/commands/customaction/customaction-list.js +5 -4
  51. package/dist/m365/spo/commands/customaction/customaction-remove.js +6 -5
  52. package/dist/m365/spo/commands/customaction/customaction-set.js +3 -3
  53. package/dist/m365/spo/commands/feature/feature-disable.js +4 -4
  54. package/dist/m365/spo/commands/feature/feature-enable.js +5 -5
  55. package/dist/m365/spo/commands/feature/feature-list.js +3 -3
  56. package/dist/m365/spo/commands/field/field-get.js +1 -7
  57. package/dist/m365/spo/commands/field/field-remove.js +1 -7
  58. package/dist/m365/spo/commands/file/file-checkin.js +8 -8
  59. package/dist/m365/spo/commands/file/file-checkout.js +8 -8
  60. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +16 -16
  61. package/dist/m365/spo/commands/folder/folder-get.js +2 -2
  62. package/dist/m365/spo/commands/folder/folder-remove.js +3 -3
  63. package/dist/m365/spo/commands/folder/folder-rename.js +4 -4
  64. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +7 -7
  65. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +6 -6
  66. package/dist/m365/spo/commands/hubsite/hubsite-register.js +4 -4
  67. package/dist/m365/spo/commands/hubsite/hubsite-rights-grant.js +4 -4
  68. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +5 -5
  69. package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +4 -4
  70. package/dist/m365/spo/commands/list/list-contenttype-add.js +4 -4
  71. package/dist/m365/spo/commands/list/list-contenttype-remove.js +6 -6
  72. package/dist/m365/spo/commands/list/list-roleassignment-add.js +208 -0
  73. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +171 -0
  74. package/dist/m365/spo/commands/list/list-view-field-add.js +23 -23
  75. package/dist/m365/spo/commands/list/list-view-field-remove.js +14 -14
  76. package/dist/m365/spo/commands/list/list-view-field-set.js +18 -18
  77. package/dist/m365/spo/commands/list/list-view-get.js +12 -12
  78. package/dist/m365/spo/commands/list/list-view-remove.js +14 -14
  79. package/dist/m365/spo/commands/list/list-view-set.js +14 -14
  80. package/dist/m365/spo/commands/listitem/listitem-list.js +1 -1
  81. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +4 -4
  82. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +4 -4
  83. package/dist/m365/spo/commands/page/page-column-get.js +2 -2
  84. package/dist/m365/spo/commands/page/page-column-list.js +2 -2
  85. package/dist/m365/spo/commands/page/page-control-get.js +4 -4
  86. package/dist/m365/spo/commands/page/page-control-list.js +3 -3
  87. package/dist/m365/spo/commands/page/page-control-set.js +3 -3
  88. package/dist/m365/spo/commands/page/page-section-add.js +2 -2
  89. package/dist/m365/spo/commands/page/page-section-get.js +2 -2
  90. package/dist/m365/spo/commands/page/page-section-list.js +2 -2
  91. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +2 -2
  92. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-approve.js +4 -4
  93. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-deny.js +4 -4
  94. package/dist/m365/spo/commands/site/site-appcatalog-add.js +3 -3
  95. package/dist/m365/spo/commands/site/site-appcatalog-remove.js +3 -3
  96. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -2
  97. package/dist/m365/spo/commands/site/site-apppermission-remove.js +9 -9
  98. package/dist/m365/spo/commands/site/site-apppermission-set.js +6 -6
  99. package/dist/m365/spo/commands/site/site-chrome-set.js +3 -3
  100. package/dist/m365/spo/commands/site/site-ensure.js +1 -1
  101. package/dist/m365/spo/commands/site/site-groupify.js +3 -3
  102. package/dist/m365/spo/commands/site/site-rename.js +9 -9
  103. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-grant.js +4 -4
  104. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-list.js +4 -4
  105. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +5 -5
  106. package/dist/m365/spo/commands/sitedesign/sitedesign-task-get.js +4 -4
  107. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +5 -5
  108. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +5 -5
  109. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +3 -3
  110. package/dist/m365/spo/commands/web/web-add.js +5 -5
  111. package/dist/m365/spo/commands/web/web-get.js +3 -3
  112. package/dist/m365/spo/commands/web/web-list.js +4 -4
  113. package/dist/m365/spo/commands/web/web-reindex.js +8 -8
  114. package/dist/m365/spo/commands/web/web-remove.js +5 -5
  115. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +63 -0
  116. package/dist/m365/spo/commands/web/web-set.js +4 -4
  117. package/dist/m365/spo/commands.js +3 -0
  118. package/dist/m365/teams/commands/app/app-install.js +4 -4
  119. package/dist/m365/teams/commands/app/app-uninstall.js +3 -3
  120. package/dist/m365/teams/commands/channel/channel-get.js +19 -19
  121. package/dist/m365/teams/commands/channel/channel-remove.js +15 -15
  122. package/dist/m365/teams/commands/channel/channel-set.js +7 -7
  123. package/dist/m365/teams/commands/chat/chat-get.js +2 -2
  124. package/dist/m365/teams/commands/chat/chat-message-send.js +2 -2
  125. package/dist/m365/teams/commands/chat/chatUtil.js +0 -12
  126. package/dist/m365/teams/commands/message/message-get.js +3 -3
  127. package/dist/m365/teams/commands/tab/tab-get.js +13 -13
  128. package/dist/m365/teams/commands/tab/tab-remove.js +6 -6
  129. package/dist/m365/teams/commands/team/team-archive.js +3 -13
  130. package/dist/m365/teams/commands/team/team-clone.js +3 -20
  131. package/dist/m365/teams/commands/team/team-remove.js +2 -11
  132. package/dist/m365/teams/commands/team/team-set.js +1 -13
  133. package/dist/m365/teams/commands/team/team-unarchive.js +2 -11
  134. package/dist/m365/teams/commands/user/user-app-add.js +4 -4
  135. package/dist/m365/teams/commands/user/user-app-remove.js +3 -3
  136. package/dist/m365/viva/commands/connections/connections-app-create.js +9 -9
  137. package/dist/m365/yammer/commands/group/group-user-add.js +8 -8
  138. package/dist/m365/yammer/commands/group/group-user-remove.js +11 -11
  139. package/dist/m365/yammer/commands/message/message-like-set.js +5 -5
  140. package/dist/m365/yammer/commands/user/user-get.js +5 -5
  141. package/docs/docs/cmd/aad/app/app-add.md +12 -1
  142. package/docs/docs/cmd/aad/app/app-set.md +1 -1
  143. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.md +5 -5
  144. package/docs/docs/cmd/aad/approleassignment/approleassignment-list.md +5 -5
  145. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.md +5 -5
  146. package/docs/docs/cmd/aad/o365group/o365group-add.md +3 -3
  147. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-list.md +7 -7
  148. package/docs/docs/cmd/aad/o365group/o365group-teamify.md +4 -4
  149. package/docs/docs/cmd/aad/policy/policy-list.md +2 -2
  150. package/docs/docs/cmd/aad/sp/sp-get.md +5 -5
  151. package/docs/docs/cmd/booking/business/business-get.md +33 -0
  152. package/docs/docs/cmd/booking/business/business-list.md +21 -0
  153. package/docs/docs/cmd/flow/flow-disable.md +3 -3
  154. package/docs/docs/cmd/flow/flow-enable.md +1 -1
  155. package/docs/docs/cmd/flow/flow-export.md +5 -5
  156. package/docs/docs/cmd/flow/flow-get.md +3 -3
  157. package/docs/docs/cmd/flow/flow-list.md +3 -3
  158. package/docs/docs/cmd/flow/flow-remove.md +5 -5
  159. package/docs/docs/cmd/flow/run/run-cancel.md +3 -3
  160. package/docs/docs/cmd/flow/run/run-get.md +3 -3
  161. package/docs/docs/cmd/flow/run/run-list.md +3 -3
  162. package/docs/docs/cmd/flow/run/run-resubmit.md +4 -4
  163. package/docs/docs/cmd/outlook/message/message-move.md +4 -4
  164. package/docs/docs/cmd/pa/connector/connector-export.md +3 -3
  165. package/docs/docs/cmd/pa/connector/connector-list.md +2 -2
  166. package/docs/docs/cmd/pa/solution/solution-reference-add.md +2 -2
  167. package/docs/docs/cmd/search/externalconnection/externalconnection-remove.md +40 -0
  168. package/docs/docs/cmd/spfx/package/package-generate.md +2 -2
  169. package/docs/docs/cmd/spo/app/app-add.md +2 -2
  170. package/docs/docs/cmd/spo/app/app-deploy.md +2 -2
  171. package/docs/docs/cmd/spo/app/app-get.md +2 -2
  172. package/docs/docs/cmd/spo/app/app-install.md +2 -2
  173. package/docs/docs/cmd/spo/app/app-list.md +2 -2
  174. package/docs/docs/cmd/spo/app/app-remove.md +2 -2
  175. package/docs/docs/cmd/spo/app/app-retract.md +2 -2
  176. package/docs/docs/cmd/spo/app/app-uninstall.md +2 -2
  177. package/docs/docs/cmd/spo/app/app-upgrade.md +2 -2
  178. package/docs/docs/cmd/spo/apppage/apppage-set.md +2 -2
  179. package/docs/docs/cmd/spo/cdn/cdn-policy-list.md +3 -3
  180. package/docs/docs/cmd/spo/cdn/cdn-policy-set.md +3 -3
  181. package/docs/docs/cmd/spo/contenttype/contenttype-field-set.md +4 -4
  182. package/docs/docs/cmd/spo/customaction/customaction-add.md +10 -10
  183. package/docs/docs/cmd/spo/customaction/customaction-clear.md +4 -4
  184. package/docs/docs/cmd/spo/customaction/customaction-get.md +5 -5
  185. package/docs/docs/cmd/spo/customaction/customaction-list.md +4 -4
  186. package/docs/docs/cmd/spo/customaction/customaction-remove.md +9 -9
  187. package/docs/docs/cmd/spo/customaction/customaction-set.md +7 -7
  188. package/docs/docs/cmd/spo/feature/feature-disable.md +4 -4
  189. package/docs/docs/cmd/spo/feature/feature-enable.md +2 -2
  190. package/docs/docs/cmd/spo/feature/feature-list.md +3 -3
  191. package/docs/docs/cmd/spo/field/field-get.md +0 -3
  192. package/docs/docs/cmd/spo/field/field-remove.md +0 -3
  193. package/docs/docs/cmd/spo/file/file-checkin.md +6 -6
  194. package/docs/docs/cmd/spo/file/file-checkout.md +4 -4
  195. package/docs/docs/cmd/spo/file/file-sharinginfo-get.md +7 -7
  196. package/docs/docs/cmd/spo/folder/folder-get.md +2 -2
  197. package/docs/docs/cmd/spo/folder/folder-remove.md +3 -3
  198. package/docs/docs/cmd/spo/folder/folder-rename.md +2 -2
  199. package/docs/docs/cmd/spo/hubsite/hubsite-connect.md +4 -4
  200. package/docs/docs/cmd/spo/hubsite/hubsite-disconnect.md +4 -4
  201. package/docs/docs/cmd/spo/hubsite/hubsite-register.md +2 -2
  202. package/docs/docs/cmd/spo/hubsite/hubsite-rights-grant.md +4 -4
  203. package/docs/docs/cmd/spo/hubsite/hubsite-rights-revoke.md +3 -3
  204. package/docs/docs/cmd/spo/knowledgehub/knowledgehub-set.md +2 -2
  205. package/docs/docs/cmd/spo/list/list-contenttype-add.md +3 -3
  206. package/docs/docs/cmd/spo/list/list-contenttype-remove.md +3 -3
  207. package/docs/docs/cmd/spo/list/list-roleassignment-add.md +78 -0
  208. package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +54 -0
  209. package/docs/docs/cmd/spo/list/list-view-field-add.md +8 -8
  210. package/docs/docs/cmd/spo/list/list-view-field-remove.md +6 -6
  211. package/docs/docs/cmd/spo/list/list-view-field-set.md +7 -7
  212. package/docs/docs/cmd/spo/list/list-view-get.md +7 -7
  213. package/docs/docs/cmd/spo/list/list-view-remove.md +8 -8
  214. package/docs/docs/cmd/spo/list/list-view-set.md +7 -7
  215. package/docs/docs/cmd/spo/listitem/listitem-record-declare.md +5 -5
  216. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.md +3 -3
  217. package/docs/docs/cmd/spo/page/page-column-get.md +3 -3
  218. package/docs/docs/cmd/spo/page/page-column-list.md +3 -3
  219. package/docs/docs/cmd/spo/page/page-control-get.md +3 -3
  220. package/docs/docs/cmd/spo/page/page-control-list.md +3 -3
  221. package/docs/docs/cmd/spo/page/page-control-set.md +4 -4
  222. package/docs/docs/cmd/spo/page/page-section-add.md +3 -3
  223. package/docs/docs/cmd/spo/page/page-section-get.md +3 -3
  224. package/docs/docs/cmd/spo/page/page-section-list.md +3 -3
  225. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-revoke.md +2 -2
  226. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-approve.md +2 -2
  227. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-deny.md +2 -2
  228. package/docs/docs/cmd/spo/site/site-appcatalog-add.md +2 -2
  229. package/docs/docs/cmd/spo/site/site-appcatalog-remove.md +2 -2
  230. package/docs/docs/cmd/spo/site/site-apppermission-get.md +2 -2
  231. package/docs/docs/cmd/spo/site/site-apppermission-remove.md +2 -2
  232. package/docs/docs/cmd/spo/site/site-apppermission-set.md +5 -5
  233. package/docs/docs/cmd/spo/site/site-chrome-set.md +4 -4
  234. package/docs/docs/cmd/spo/site/site-groupify.md +5 -5
  235. package/docs/docs/cmd/spo/site/site-rename.md +6 -6
  236. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.md +4 -4
  237. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.md +3 -3
  238. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.md +3 -3
  239. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.md +2 -2
  240. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.md +5 -5
  241. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.md +3 -3
  242. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.md +6 -3
  243. package/docs/docs/cmd/spo/web/web-add.md +4 -4
  244. package/docs/docs/cmd/spo/web/web-get.md +3 -3
  245. package/docs/docs/cmd/spo/web/web-list.md +2 -2
  246. package/docs/docs/cmd/spo/web/web-reindex.md +2 -2
  247. package/docs/docs/cmd/spo/web/web-remove.md +2 -2
  248. package/docs/docs/cmd/spo/web/web-roleinheritance-reset.md +24 -0
  249. package/docs/docs/cmd/spo/web/web-set.md +9 -9
  250. package/docs/docs/cmd/teams/app/app-install.md +5 -5
  251. package/docs/docs/cmd/teams/app/app-uninstall.md +3 -3
  252. package/docs/docs/cmd/teams/channel/channel-get.md +7 -7
  253. package/docs/docs/cmd/teams/channel/channel-remove.md +7 -7
  254. package/docs/docs/cmd/teams/channel/channel-set.md +4 -4
  255. package/docs/docs/cmd/teams/message/message-get.md +3 -3
  256. package/docs/docs/cmd/teams/tab/tab-get.md +6 -6
  257. package/docs/docs/cmd/teams/tab/tab-remove.md +4 -4
  258. package/docs/docs/cmd/teams/team/team-archive.md +0 -3
  259. package/docs/docs/cmd/teams/team/team-clone.md +0 -3
  260. package/docs/docs/cmd/teams/team/team-remove.md +0 -3
  261. package/docs/docs/cmd/teams/team/team-set.md +0 -3
  262. package/docs/docs/cmd/teams/team/team-unarchive.md +0 -3
  263. package/docs/docs/cmd/teams/user/user-app-add.md +3 -3
  264. package/docs/docs/cmd/teams/user/user-app-remove.md +3 -3
  265. package/docs/docs/cmd/viva/connections/connections-app-create.md +2 -2
  266. package/docs/docs/cmd/yammer/group/group-user-add.md +5 -5
  267. package/docs/docs/cmd/yammer/group/group-user-remove.md +5 -5
  268. package/docs/docs/cmd/yammer/message/message-like-set.md +4 -4
  269. package/docs/docs/cmd/yammer/user/user-get.md +2 -2
  270. package/package.json +11 -1
@@ -27,7 +27,9 @@ RUN apt-get update && apt-get install -y \
27
27
  && apt-get install nodejs -y \
28
28
  && rm -rf /var/lib/apt/lists/*
29
29
 
30
- RUN pip3 install mkdocs-material==7.1.7 pymdown-extensions==9.0 pygments==2.11
30
+ COPY ../docs/pip_requirements.txt .
31
+
32
+ RUN pip install -r pip_requirements.txt
31
33
 
32
34
  RUN useradd \
33
35
  --user-group \
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "CLI for Microsoft 365",
3
3
  "dockerFile": "Dockerfile",
4
+ "context": "..",
4
5
  "settings": {
5
6
  "terminal.integrated.profiles.linux": {
6
7
  "zsh": {
@@ -27,6 +27,7 @@ class AadAppAddCommand extends GraphCommand_1.default {
27
27
  super();
28
28
  _AadAppAddCommand_instances.add(this);
29
29
  this.appName = '';
30
+ this.appPermissions = [];
30
31
  __classPrivateFieldGet(this, _AadAppAddCommand_instances, "m", _AadAppAddCommand_initTelemetry).call(this);
31
32
  __classPrivateFieldGet(this, _AadAppAddCommand_instances, "m", _AadAppAddCommand_initOptions).call(this);
32
33
  __classPrivateFieldGet(this, _AadAppAddCommand_instances, "m", _AadAppAddCommand_initValidators).call(this);
@@ -50,6 +51,7 @@ class AadAppAddCommand extends GraphCommand_1.default {
50
51
  return Promise.resolve(appInfo);
51
52
  })
52
53
  .then(appInfo => this.updateAppFromManifest(args, appInfo))
54
+ .then(appInfo => this.grantAdminConsent(appInfo, args.options.grantAdminConsent, logger))
53
55
  .then(appInfo => this.configureUri(args, appInfo, logger))
54
56
  .then(appInfo => this.configureSecret(args, appInfo, logger))
55
57
  .then(appInfo => this.saveAppInfo(args, appInfo, logger))
@@ -120,6 +122,81 @@ class AadAppAddCommand extends GraphCommand_1.default {
120
122
  return request_1.default.post(createApplicationRequestOptions);
121
123
  });
122
124
  }
125
+ grantAdminConsent(appInfo, adminConsent, logger) {
126
+ if (!adminConsent || this.appPermissions.length === 0) {
127
+ return Promise.resolve(appInfo);
128
+ }
129
+ return this.createServicePrincipal(appInfo.appId)
130
+ .then((sp) => {
131
+ if (this.debug) {
132
+ logger.logToStderr("Service principal created, returned object id: " + sp.id);
133
+ }
134
+ const tasks = [];
135
+ this.appPermissions.forEach(permission => {
136
+ if (permission.scope.length > 0) {
137
+ tasks.push(this.grantOAuth2Permission(sp.id, permission.resourceId, permission.scope.join(' ')));
138
+ if (this.debug) {
139
+ logger.logToStderr(`Admin consent granted for following resource ${permission.resourceId}, with delegated permissions: ${permission.scope.join(',')}`);
140
+ }
141
+ }
142
+ permission.resourceAccess.filter(access => access.type === "Role").forEach((access) => {
143
+ tasks.push(this.addRoleToServicePrincipal(sp.id, permission.resourceId, access.id));
144
+ if (this.debug) {
145
+ logger.logToStderr(`Admin consent granted for following resource ${permission.resourceId}, with application permission: ${access.id}`);
146
+ }
147
+ });
148
+ });
149
+ return Promise.all(tasks)
150
+ .then(_ => {
151
+ return appInfo;
152
+ });
153
+ });
154
+ }
155
+ addRoleToServicePrincipal(objectId, resourceId, appRoleId) {
156
+ const requestOptions = {
157
+ url: `${this.resource}/v1.0/myorganization/servicePrincipals/${objectId}/appRoleAssignments`,
158
+ headers: {
159
+ 'Content-Type': 'application/json'
160
+ },
161
+ responseType: 'json',
162
+ data: {
163
+ appRoleId: appRoleId,
164
+ principalId: objectId,
165
+ resourceId: resourceId
166
+ }
167
+ };
168
+ return request_1.default.post(requestOptions);
169
+ }
170
+ grantOAuth2Permission(appId, resourceId, scopeName) {
171
+ const grantAdminConsentApplicationRequestOptions = {
172
+ url: `${this.resource}/v1.0/myorganization/oauth2PermissionGrants`,
173
+ headers: {
174
+ accept: 'application/json;odata.metadata=none'
175
+ },
176
+ responseType: 'json',
177
+ data: {
178
+ clientId: appId,
179
+ consentType: "AllPrincipals",
180
+ principalId: null,
181
+ resourceId: resourceId,
182
+ scope: scopeName
183
+ }
184
+ };
185
+ return request_1.default.post(grantAdminConsentApplicationRequestOptions);
186
+ }
187
+ createServicePrincipal(appId) {
188
+ const requestOptions = {
189
+ url: `${this.resource}/v1.0/myorganization/servicePrincipals`,
190
+ headers: {
191
+ 'content-type': 'application/json'
192
+ },
193
+ data: {
194
+ appId: appId
195
+ },
196
+ responseType: 'json'
197
+ };
198
+ return request_1.default.post(requestOptions);
199
+ }
123
200
  updateAppFromManifest(args, appInfo) {
124
201
  if (!args.options.manifest) {
125
202
  return Promise.resolve(appInfo);
@@ -135,6 +212,11 @@ class AadAppAddCommand extends GraphCommand_1.default {
135
212
  // separately
136
213
  const secrets = this.getSecretsFromManifest(v2Manifest);
137
214
  // Azure Portal returns v2 manifest whereas the Graph API expects a v1.6
215
+ if (args.options.apisApplication || args.options.apisDelegated) {
216
+ // take submitted delegated / application permissions as options
217
+ // otherwise, they will be skipped in the app update
218
+ v2Manifest.requiredResourceAccess = appInfo.requiredResourceAccess;
219
+ }
138
220
  const graphManifest = this.transformManifest(v2Manifest);
139
221
  const updateAppRequestOptions = {
140
222
  url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
@@ -334,36 +416,69 @@ class AadAppAddCommand extends GraphCommand_1.default {
334
416
  .then(_ => appInfo);
335
417
  }
336
418
  resolveApis(args, logger) {
337
- if (!args.options.apisDelegated && !args.options.apisApplication) {
419
+ var _a;
420
+ if (!args.options.apisDelegated && !args.options.apisApplication
421
+ && (typeof ((_a = this.manifest) === null || _a === void 0 ? void 0 : _a.requiredResourceAccess) === 'undefined' || this.manifest.requiredResourceAccess.length === 0)) {
338
422
  return Promise.resolve([]);
339
423
  }
340
424
  if (this.verbose) {
341
425
  logger.logToStderr('Resolving requested APIs...');
342
426
  }
343
427
  return utils_1.odata
344
- .getAllItems(`${this.resource}/v1.0/myorganization/servicePrincipals?$select=servicePrincipalNames,appId,oauth2PermissionScopes,appRoles`)
428
+ .getAllItems(`${this.resource}/v1.0/myorganization/servicePrincipals?$select=appId,appRoles,id,oauth2PermissionScopes,servicePrincipalNames`)
345
429
  .then(servicePrincipals => {
430
+ var _a;
431
+ let resolvedApis = [];
346
432
  try {
347
- const resolvedApis = this.getRequiredResourceAccessForApis(servicePrincipals, args.options.apisDelegated, 'Scope', logger);
348
- if (this.debug) {
349
- logger.logToStderr(`Resolved delegated permissions: ${JSON.stringify(resolvedApis, null, 2)}`);
350
- }
351
- const resolvedApplicationApis = this.getRequiredResourceAccessForApis(servicePrincipals, args.options.apisApplication, 'Role', logger);
352
- if (this.debug) {
353
- logger.logToStderr(`Resolved application permissions: ${JSON.stringify(resolvedApplicationApis, null, 2)}`);
354
- }
355
- // merge resolved application APIs onto resolved delegated APIs
356
- resolvedApplicationApis.forEach(resolvedRequiredResource => {
357
- const requiredResource = resolvedApis.find(api => api.resourceAppId === resolvedRequiredResource.resourceAppId);
358
- if (requiredResource) {
359
- requiredResource.resourceAccess.push(...resolvedRequiredResource.resourceAccess);
433
+ if (args.options.apisDelegated || args.options.apisApplication) {
434
+ resolvedApis = this.getRequiredResourceAccessForApis(servicePrincipals, args.options.apisDelegated, 'Scope', logger);
435
+ if (this.verbose) {
436
+ logger.logToStderr(`Resolved delegated permissions: ${JSON.stringify(resolvedApis, null, 2)}`);
360
437
  }
361
- else {
362
- resolvedApis.push(resolvedRequiredResource);
438
+ const resolvedApplicationApis = this.getRequiredResourceAccessForApis(servicePrincipals, args.options.apisApplication, 'Role', logger);
439
+ if (this.verbose) {
440
+ logger.logToStderr(`Resolved application permissions: ${JSON.stringify(resolvedApplicationApis, null, 2)}`);
363
441
  }
364
- });
365
- if (this.debug) {
442
+ // merge resolved application APIs onto resolved delegated APIs
443
+ resolvedApplicationApis.forEach(resolvedRequiredResource => {
444
+ const requiredResource = resolvedApis.find(api => api.resourceAppId === resolvedRequiredResource.resourceAppId);
445
+ if (requiredResource) {
446
+ requiredResource.resourceAccess.push(...resolvedRequiredResource.resourceAccess);
447
+ }
448
+ else {
449
+ resolvedApis.push(resolvedRequiredResource);
450
+ }
451
+ });
452
+ }
453
+ if (typeof ((_a = this.manifest) === null || _a === void 0 ? void 0 : _a.requiredResourceAccess) !== 'undefined' && this.manifest.requiredResourceAccess.length > 0) {
454
+ const manifestApis = this.manifest.requiredResourceAccess;
455
+ manifestApis.forEach(manifestApi => {
456
+ const requiredResource = resolvedApis.find(api => api.resourceAppId === manifestApi.resourceAppId);
457
+ if (requiredResource) {
458
+ // exclude if any duplicate required resources in both manifest and submitted options
459
+ requiredResource.resourceAccess.push(...manifestApi.resourceAccess.filter(manRes => !requiredResource.resourceAccess.some(res => res.id === manRes.id)));
460
+ }
461
+ else {
462
+ resolvedApis.push(manifestApi);
463
+ }
464
+ const app = servicePrincipals.find(servicePrincipals => servicePrincipals.appId === manifestApi.resourceAppId);
465
+ if (app) {
466
+ manifestApi.resourceAccess.forEach((res => {
467
+ var _a;
468
+ const resourceAccessPermission = {
469
+ id: res.id,
470
+ type: res.type
471
+ };
472
+ const oAuthValue = (_a = app.oauth2PermissionScopes.find(scp => scp.id === res.id)) === null || _a === void 0 ? void 0 : _a.value;
473
+ this.updateAppPermissions(app.id, resourceAccessPermission, oAuthValue);
474
+ }));
475
+ }
476
+ });
477
+ }
478
+ if (this.verbose) {
366
479
  logger.logToStderr(`Merged delegated and application permissions: ${JSON.stringify(resolvedApis, null, 2)}`);
480
+ logger.logToStderr(`App role assignments: ${JSON.stringify(this.appPermissions.flatMap(permission => permission.resourceAccess.filter(access => access.type === "Role")), null, 2)}`);
481
+ logger.logToStderr(`OAuth2 permissions: ${JSON.stringify(this.appPermissions.flatMap(permission => permission.scope), null, 2)}`);
367
482
  }
368
483
  return Promise.resolve(resolvedApis);
369
484
  }
@@ -405,13 +520,34 @@ class AadAppAddCommand extends GraphCommand_1.default {
405
520
  };
406
521
  resolvedApis.push(resolvedApi);
407
522
  }
408
- resolvedApi.resourceAccess.push({
523
+ const resourceAccessPermission = {
409
524
  id: permission.id,
410
525
  type: scopeType
411
- });
526
+ };
527
+ resolvedApi.resourceAccess.push(resourceAccessPermission);
528
+ this.updateAppPermissions(servicePrincipal.id, resourceAccessPermission, permission.value);
412
529
  });
413
530
  return resolvedApis;
414
531
  }
532
+ updateAppPermissions(spId, resourceAccessPermission, oAuth2PermissionValue) {
533
+ // During API resolution, we store globally both app role assignments and oauth2permissions
534
+ // So that we'll be able to parse them during the admin consent process
535
+ let existingPermission = this.appPermissions.find(oauth => oauth.resourceId === spId);
536
+ if (!existingPermission) {
537
+ existingPermission = {
538
+ resourceId: spId,
539
+ resourceAccess: [],
540
+ scope: []
541
+ };
542
+ this.appPermissions.push(existingPermission);
543
+ }
544
+ if (resourceAccessPermission.type === 'Scope' && oAuth2PermissionValue && !existingPermission.scope.find(scp => scp === oAuth2PermissionValue)) {
545
+ existingPermission.scope.push(oAuth2PermissionValue);
546
+ }
547
+ if (!existingPermission.resourceAccess.find(res => res.id === resourceAccessPermission.id)) {
548
+ existingPermission.resourceAccess.push(resourceAccessPermission);
549
+ }
550
+ }
415
551
  configureSecret(args, appInfo, logger) {
416
552
  if (!args.options.withSecret) {
417
553
  return Promise.resolve(appInfo);
@@ -523,7 +659,8 @@ _AadAppAddCommand_instances = new WeakSet(), _AadAppAddCommand_initTelemetry = f
523
659
  withSecret: args.options.withSecret,
524
660
  certificateFile: typeof args.options.certificateFile !== 'undefined',
525
661
  certificateBase64Encoded: typeof args.options.certificateBase64Encoded !== 'undefined',
526
- certificateDisplayName: typeof args.options.certificateDisplayName !== 'undefined'
662
+ certificateDisplayName: typeof args.options.certificateDisplayName !== 'undefined',
663
+ grantAdminConsent: typeof args.options.grantAdminConsent !== 'undefined'
527
664
  });
528
665
  });
529
666
  }, _AadAppAddCommand_initOptions = function _AadAppAddCommand_initOptions() {
@@ -565,6 +702,8 @@ _AadAppAddCommand_instances = new WeakSet(), _AadAppAddCommand_initTelemetry = f
565
702
  option: '--manifest [manifest]'
566
703
  }, {
567
704
  option: '--save'
705
+ }, {
706
+ option: '--grantAdminConsent'
568
707
  });
569
708
  }, _AadAppAddCommand_initValidators = function _AadAppAddCommand_initValidators() {
570
709
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -40,11 +40,11 @@ class AadAppRoleAssignmentAddCommand extends GraphCommand_1.default {
40
40
  if (args.options.appId) {
41
41
  queryFilter = `$filter=appId eq '${encodeURIComponent(args.options.appId)}'`;
42
42
  }
43
- else if (args.options.objectId) {
44
- queryFilter = `$filter=id eq '${encodeURIComponent(args.options.objectId)}'`;
43
+ else if (args.options.appObjectId) {
44
+ queryFilter = `$filter=id eq '${encodeURIComponent(args.options.appObjectId)}'`;
45
45
  }
46
46
  else {
47
- queryFilter = `$filter=displayName eq '${encodeURIComponent(args.options.displayName)}'`;
47
+ queryFilter = `$filter=displayName eq '${encodeURIComponent(args.options.appDisplayName)}'`;
48
48
  }
49
49
  const getServicePrinciplesRequestOptions = {
50
50
  url: `${this.resource}/v1.0/servicePrincipals?${queryFilter}`,
@@ -57,7 +57,7 @@ class AadAppRoleAssignmentAddCommand extends GraphCommand_1.default {
57
57
  .get(getServicePrinciplesRequestOptions)
58
58
  .then((servicePrincipalResult) => {
59
59
  if (servicePrincipalResult.value.length > 1) {
60
- return Promise.reject('More than one service principal found. Please use the appId or objectId option to make sure the right service principal is specified.');
60
+ return Promise.reject('More than one service principal found. Please use the appId or appObjectId option to make sure the right service principal is specified.');
61
61
  }
62
62
  objectId = servicePrincipalResult.value[0].id;
63
63
  let resource = encodeURIComponent(args.options.resource);
@@ -160,17 +160,17 @@ _AadAppRoleAssignmentAddCommand_instances = new WeakSet(), _AadAppRoleAssignment
160
160
  this.telemetry.push((args) => {
161
161
  Object.assign(this.telemetryProperties, {
162
162
  appId: typeof args.options.appId !== 'undefined',
163
- objectId: typeof args.options.objectId !== 'undefined',
164
- displayName: typeof args.options.displayName !== 'undefined'
163
+ appObjectId: typeof args.options.appObjectId !== 'undefined',
164
+ appDisplayName: typeof args.options.appDisplayName !== 'undefined'
165
165
  });
166
166
  });
167
167
  }, _AadAppRoleAssignmentAddCommand_initOptions = function _AadAppRoleAssignmentAddCommand_initOptions() {
168
168
  this.options.unshift({
169
169
  option: '--appId [appId]'
170
170
  }, {
171
- option: '--objectId [objectId]'
171
+ option: '--appObjectId [appObjectId]'
172
172
  }, {
173
- option: '--displayName [displayName]'
173
+ option: '--appDisplayName [appDisplayName]'
174
174
  }, {
175
175
  option: '-r, --resource <resource>',
176
176
  autocomplete: ['Microsoft Graph', 'SharePoint', 'OneNote', 'Exchange', 'Microsoft Forms', 'Azure Active Directory Graph', 'Skype for Business']
@@ -181,16 +181,16 @@ _AadAppRoleAssignmentAddCommand_instances = new WeakSet(), _AadAppRoleAssignment
181
181
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
182
182
  let optionsSpecified = 0;
183
183
  optionsSpecified += args.options.appId ? 1 : 0;
184
- optionsSpecified += args.options.displayName ? 1 : 0;
185
- optionsSpecified += args.options.objectId ? 1 : 0;
184
+ optionsSpecified += args.options.appDisplayName ? 1 : 0;
185
+ optionsSpecified += args.options.appObjectId ? 1 : 0;
186
186
  if (optionsSpecified !== 1) {
187
- return 'Specify either appId, objectId or displayName';
187
+ return 'Specify either appId, appObjectId or appDisplayName';
188
188
  }
189
189
  if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
190
190
  return `${args.options.appId} is not a valid GUID`;
191
191
  }
192
- if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
193
- return `${args.options.objectId} is not a valid GUID`;
192
+ if (args.options.appObjectId && !utils_1.validation.isValidGuid(args.options.appObjectId)) {
193
+ return `${args.options.appObjectId} is not a valid GUID`;
194
194
  }
195
195
  return true;
196
196
  }));
@@ -78,8 +78,8 @@ class AadAppRoleAssignmentListCommand extends GraphCommand_1.default {
78
78
  }
79
79
  getAppRoleAssignments(argOptions) {
80
80
  return new Promise((resolve, reject) => {
81
- if (argOptions.objectId) {
82
- this.getSPAppRoleAssignments(argOptions.objectId)
81
+ if (argOptions.appObjectId) {
82
+ this.getSPAppRoleAssignments(argOptions.appObjectId)
83
83
  .then((spAppRoleAssignments) => {
84
84
  if (!spAppRoleAssignments.value.length) {
85
85
  reject('no app role assignments found');
@@ -97,7 +97,7 @@ class AadAppRoleAssignmentListCommand extends GraphCommand_1.default {
97
97
  spMatchQuery = `appId eq '${encodeURIComponent(argOptions.appId)}'`;
98
98
  }
99
99
  else {
100
- spMatchQuery = `displayName eq '${encodeURIComponent(argOptions.displayName)}'`;
100
+ spMatchQuery = `displayName eq '${encodeURIComponent(argOptions.appDisplayName)}'`;
101
101
  }
102
102
  this.getServicePrincipalForApp(spMatchQuery)
103
103
  .then((resp) => {
@@ -147,35 +147,35 @@ _AadAppRoleAssignmentListCommand_instances = new WeakSet(), _AadAppRoleAssignmen
147
147
  this.telemetry.push((args) => {
148
148
  Object.assign(this.telemetryProperties, {
149
149
  appId: typeof args.options.appId !== 'undefined',
150
- displayName: typeof args.options.displayName !== 'undefined',
151
- objectId: typeof args.options.objectId !== 'undefined'
150
+ appDisplayName: typeof args.options.appDisplayName !== 'undefined',
151
+ appObjectId: typeof args.options.appObjectId !== 'undefined'
152
152
  });
153
153
  });
154
154
  }, _AadAppRoleAssignmentListCommand_initOptions = function _AadAppRoleAssignmentListCommand_initOptions() {
155
155
  this.options.unshift({
156
156
  option: '-i, --appId [appId]'
157
157
  }, {
158
- option: '-n, --displayName [displayName]'
158
+ option: '-n, --appDisplayName [appDisplayName]'
159
159
  }, {
160
- option: '--objectId [objectId]'
160
+ option: '--appObjectId [appObjectId]'
161
161
  });
162
162
  }, _AadAppRoleAssignmentListCommand_initValidators = function _AadAppRoleAssignmentListCommand_initValidators() {
163
163
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
164
- if (!args.options.appId && !args.options.displayName && !args.options.objectId) {
165
- return 'Specify either appId, objectId or displayName';
164
+ if (!args.options.appId && !args.options.appDisplayName && !args.options.appObjectId) {
165
+ return 'Specify either appId, appObjectId or appDisplayName';
166
166
  }
167
167
  if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
168
168
  return `${args.options.appId} is not a valid GUID`;
169
169
  }
170
- if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
171
- return `${args.options.objectId} is not a valid GUID`;
170
+ if (args.options.appObjectId && !utils_1.validation.isValidGuid(args.options.appObjectId)) {
171
+ return `${args.options.appObjectId} is not a valid GUID`;
172
172
  }
173
173
  let optionsSpecified = 0;
174
174
  optionsSpecified += args.options.appId ? 1 : 0;
175
- optionsSpecified += args.options.displayName ? 1 : 0;
176
- optionsSpecified += args.options.objectId ? 1 : 0;
175
+ optionsSpecified += args.options.appDisplayName ? 1 : 0;
176
+ optionsSpecified += args.options.appObjectId ? 1 : 0;
177
177
  if (optionsSpecified > 1) {
178
- return 'Specify either appId, objectId or displayName';
178
+ return 'Specify either appId, appObjectId or appDisplayName';
179
179
  }
180
180
  return true;
181
181
  }));
@@ -43,11 +43,11 @@ class AadAppRoleAssignmentRemoveCommand extends GraphCommand_1.default {
43
43
  if (args.options.appId) {
44
44
  spMatchQuery = `appId eq '${encodeURIComponent(args.options.appId)}'`;
45
45
  }
46
- else if (args.options.objectId) {
47
- spMatchQuery = `id eq '${encodeURIComponent(args.options.objectId)}'`;
46
+ else if (args.options.appObjectId) {
47
+ spMatchQuery = `id eq '${encodeURIComponent(args.options.appObjectId)}'`;
48
48
  }
49
49
  else {
50
- spMatchQuery = `displayName eq '${encodeURIComponent(args.options.displayName)}'`;
50
+ spMatchQuery = `displayName eq '${encodeURIComponent(args.options.appDisplayName)}'`;
51
51
  }
52
52
  this
53
53
  .getServicePrincipalForApp(spMatchQuery)
@@ -160,8 +160,8 @@ _AadAppRoleAssignmentRemoveCommand_instances = new WeakSet(), _AadAppRoleAssignm
160
160
  this.telemetry.push((args) => {
161
161
  Object.assign(this.telemetryProperties, {
162
162
  appId: typeof args.options.appId !== 'undefined',
163
- displayName: typeof args.options.displayName !== 'undefined',
164
- objectId: typeof args.options.objectId !== 'undefined',
163
+ appDisplayName: typeof args.options.appDisplayName !== 'undefined',
164
+ appObjectId: typeof args.options.appObjectId !== 'undefined',
165
165
  confirm: (!!args.options.confirm).toString()
166
166
  });
167
167
  });
@@ -169,9 +169,9 @@ _AadAppRoleAssignmentRemoveCommand_instances = new WeakSet(), _AadAppRoleAssignm
169
169
  this.options.unshift({
170
170
  option: '--appId [appId]'
171
171
  }, {
172
- option: '--objectId [objectId]'
172
+ option: '--appObjectId [appObjectId]'
173
173
  }, {
174
- option: '--displayName [displayName]'
174
+ option: '--appDisplayName [appDisplayName]'
175
175
  }, {
176
176
  option: '-r, --resource <resource>',
177
177
  autocomplete: ['Microsoft Graph', 'SharePoint', 'OneNote', 'Exchange', 'Microsoft Forms', 'Azure Active Directory Graph', 'Skype for Business']
@@ -184,16 +184,16 @@ _AadAppRoleAssignmentRemoveCommand_instances = new WeakSet(), _AadAppRoleAssignm
184
184
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
185
185
  let optionsSpecified = 0;
186
186
  optionsSpecified += args.options.appId ? 1 : 0;
187
- optionsSpecified += args.options.displayName ? 1 : 0;
188
- optionsSpecified += args.options.objectId ? 1 : 0;
187
+ optionsSpecified += args.options.appDisplayName ? 1 : 0;
188
+ optionsSpecified += args.options.appObjectId ? 1 : 0;
189
189
  if (optionsSpecified !== 1) {
190
- return 'Specify either appId, objectId or displayName';
190
+ return 'Specify either appId, appObjectId or appDisplayName';
191
191
  }
192
192
  if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
193
193
  return `${args.options.appId} is not a valid GUID`;
194
194
  }
195
- if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
196
- return `${args.options.objectId} is not a valid GUID`;
195
+ if (args.options.appObjectId && !utils_1.validation.isValidGuid(args.options.appObjectId)) {
196
+ return `${args.options.appObjectId} is not a valid GUID`;
197
197
  }
198
198
  return true;
199
199
  }));
@@ -71,7 +71,7 @@ class AadO365GroupAddCommand extends GraphCommand_1.default {
71
71
  mailNickname: args.options.mailNickname,
72
72
  resourceBehaviorOptions: resourceBehaviorOptionsCollection,
73
73
  securityEnabled: false,
74
- visibility: args.options.isPrivate === 'true' ? 'Private' : 'Public'
74
+ visibility: args.options.isPrivate ? 'Private' : 'Public'
75
75
  }
76
76
  };
77
77
  this
@@ -228,7 +228,7 @@ _AadO365GroupAddCommand_instances = new WeakSet(), _AadO365GroupAddCommand_initT
228
228
  }, {
229
229
  option: '--members [members]'
230
230
  }, {
231
- option: '--isPrivate [isPrivate]'
231
+ option: '--isPrivate'
232
232
  }, {
233
233
  option: '--allowMembersToPost [allowMembersToPost]'
234
234
  }, {
@@ -258,11 +258,6 @@ _AadO365GroupAddCommand_instances = new WeakSet(), _AadO365GroupAddCommand_initT
258
258
  }
259
259
  }
260
260
  }
261
- if (typeof args.options.isPrivate !== 'undefined' &&
262
- args.options.isPrivate !== 'true' &&
263
- args.options.isPrivate !== 'false') {
264
- return `${args.options.isPrivate} is not a valid boolean value`;
265
- }
266
261
  if (args.options.logoPath) {
267
262
  const fullPath = path.resolve(args.options.logoPath);
268
263
  if (!fs.existsSync(fullPath)) {
@@ -27,8 +27,8 @@ class AadO365GroupRecycleBinItemListCommand extends GraphCommand_1.default {
27
27
  }
28
28
  commandAction(logger, args, cb) {
29
29
  const filter = `?$filter=groupTypes/any(c:c+eq+'Unified')`;
30
- const displayNameFilter = args.options.displayName ? ` and startswith(DisplayName,'${encodeURIComponent(args.options.displayName).replace(/'/g, `''`)}')` : '';
31
- const mailNicknameFilter = args.options.mailNickname ? ` and startswith(MailNickname,'${encodeURIComponent(args.options.mailNickname).replace(/'/g, `''`)}')` : '';
30
+ const displayNameFilter = args.options.groupDisplayName ? ` and startswith(DisplayName,'${encodeURIComponent(args.options.groupDisplayName).replace(/'/g, `''`)}')` : '';
31
+ const mailNicknameFilter = args.options.groupMailNickname ? ` and startswith(MailNickname,'${encodeURIComponent(args.options.groupMailNickname).replace(/'/g, `''`)}')` : '';
32
32
  const topCount = '&$top=100';
33
33
  const endpoint = `${this.resource}/v1.0/directory/deletedItems/Microsoft.Graph.Group${filter}${displayNameFilter}${mailNicknameFilter}${topCount}`;
34
34
  utils_1.odata
@@ -42,15 +42,15 @@ class AadO365GroupRecycleBinItemListCommand extends GraphCommand_1.default {
42
42
  _AadO365GroupRecycleBinItemListCommand_instances = new WeakSet(), _AadO365GroupRecycleBinItemListCommand_initTelemetry = function _AadO365GroupRecycleBinItemListCommand_initTelemetry() {
43
43
  this.telemetry.push((args) => {
44
44
  Object.assign(this.telemetryProperties, {
45
- displayName: typeof args.options.displayName !== 'undefined',
46
- mailNickname: typeof args.options.mailNickname !== 'undefined'
45
+ groupDisplayName: typeof args.options.groupDisplayName !== 'undefined',
46
+ groupMailNickname: typeof args.options.groupMailNickname !== 'undefined'
47
47
  });
48
48
  });
49
49
  }, _AadO365GroupRecycleBinItemListCommand_initOptions = function _AadO365GroupRecycleBinItemListCommand_initOptions() {
50
50
  this.options.unshift({
51
- option: '-d, --displayName [displayName]'
51
+ option: '-d, --groupDisplayName [groupDisplayName]'
52
52
  }, {
53
- option: '-m, --mailNickname [mailNickname]'
53
+ option: '-m, --groupMailNickname [groupMailNickname]'
54
54
  });
55
55
  };
56
56
  module.exports = new AadO365GroupRecycleBinItemListCommand();
@@ -34,8 +34,8 @@ class AadO365GroupTeamifyCommand extends GraphCommand_1.default {
34
34
  return 'Creates a new Microsoft Teams team under existing Microsoft 365 group';
35
35
  }
36
36
  getGroupId(args) {
37
- if (args.options.groupId) {
38
- return Promise.resolve(args.options.groupId);
37
+ if (args.options.id) {
38
+ return Promise.resolve(args.options.id);
39
39
  }
40
40
  const requestOptions = {
41
41
  url: `${this.resource}/v1.0/groups?$filter=mailNickname eq '${encodeURIComponent(args.options.mailNickname)}'`,
@@ -74,9 +74,9 @@ class AadO365GroupTeamifyCommand extends GraphCommand_1.default {
74
74
  };
75
75
  this
76
76
  .getGroupId(args)
77
- .then((groupId) => {
77
+ .then((id) => {
78
78
  const requestOptions = {
79
- url: `${this.resource}/v1.0/groups/${encodeURIComponent(groupId)}/team`,
79
+ url: `${this.resource}/v1.0/groups/${encodeURIComponent(id)}/team`,
80
80
  headers: {
81
81
  accept: 'application/json;odata.metadata=none'
82
82
  },
@@ -91,26 +91,26 @@ class AadO365GroupTeamifyCommand extends GraphCommand_1.default {
91
91
  _AadO365GroupTeamifyCommand_instances = new WeakSet(), _AadO365GroupTeamifyCommand_initTelemetry = function _AadO365GroupTeamifyCommand_initTelemetry() {
92
92
  this.telemetry.push((args) => {
93
93
  Object.assign(this.telemetryProperties, {
94
- groupId: typeof args.options.groupId !== 'undefined',
94
+ id: typeof args.options.id !== 'undefined',
95
95
  mailNickname: typeof args.options.mailNickname !== 'undefined'
96
96
  });
97
97
  });
98
98
  }, _AadO365GroupTeamifyCommand_initOptions = function _AadO365GroupTeamifyCommand_initOptions() {
99
99
  this.options.unshift({
100
- option: '-i, --groupId [groupId]'
100
+ option: '-i, --id [id]'
101
101
  }, {
102
102
  option: '--mailNickname [mailNickname]'
103
103
  });
104
104
  }, _AadO365GroupTeamifyCommand_initValidators = function _AadO365GroupTeamifyCommand_initValidators() {
105
105
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
106
- if (args.options.groupId && args.options.mailNickname) {
107
- return 'Specify either groupId or mailNickname, but not both.';
106
+ if (args.options.id && args.options.mailNickname) {
107
+ return 'Specify either id or mailNickname, but not both.';
108
108
  }
109
- if (!args.options.groupId && !args.options.mailNickname) {
110
- return 'Specify groupId or mailNickname, one is required';
109
+ if (!args.options.id && !args.options.mailNickname) {
110
+ return 'Specify id or mailNickname, one is required';
111
111
  }
112
- if (args.options.groupId && !utils_1.validation.isValidGuid(args.options.groupId)) {
113
- return `${args.options.groupId} is not a valid GUID`;
112
+ if (args.options.id && !utils_1.validation.isValidGuid(args.options.id)) {
113
+ return `${args.options.id} is not a valid GUID`;
114
114
  }
115
115
  return true;
116
116
  }));
@@ -45,7 +45,7 @@ class AadPolicyListCommand extends GraphCommand_1.default {
45
45
  return ['id', 'displayName', 'isOrganizationDefault'];
46
46
  }
47
47
  commandAction(logger, args, cb) {
48
- const policyType = args.options.policyType ? args.options.policyType.toLowerCase() : 'all';
48
+ const policyType = args.options.type ? args.options.type.toLowerCase() : 'all';
49
49
  if (policyType && policyType !== "all") {
50
50
  this
51
51
  .getPolicies(policyType)
@@ -93,20 +93,20 @@ class AadPolicyListCommand extends GraphCommand_1.default {
93
93
  _AadPolicyListCommand_instances = new WeakSet(), _AadPolicyListCommand_initTelemetry = function _AadPolicyListCommand_initTelemetry() {
94
94
  this.telemetry.push((args) => {
95
95
  Object.assign(this.telemetryProperties, {
96
- policyType: args.options.policyType || 'all'
96
+ policyType: args.options.type || 'all'
97
97
  });
98
98
  });
99
99
  }, _AadPolicyListCommand_initOptions = function _AadPolicyListCommand_initOptions() {
100
100
  this.options.unshift({
101
- option: '-p, --policyType [policyType]',
101
+ option: '-t, --type [type]',
102
102
  autocomplete: AadPolicyListCommand.supportedPolicyTypes
103
103
  });
104
104
  }, _AadPolicyListCommand_initValidators = function _AadPolicyListCommand_initValidators() {
105
105
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
106
- if (args.options.policyType) {
107
- const policyType = args.options.policyType.toLowerCase();
106
+ if (args.options.type) {
107
+ const policyType = args.options.type.toLowerCase();
108
108
  if (!AadPolicyListCommand.supportedPolicyTypes.find(p => p.toLowerCase() === policyType)) {
109
- return `${args.options.policyType} is not a valid policyType. Allowed values are ${AadPolicyListCommand.supportedPolicyTypes.join(', ')}`;
109
+ return `${args.options.type} is not a valid type. Allowed values are ${AadPolicyListCommand.supportedPolicyTypes.join(', ')}`;
110
110
  }
111
111
  }
112
112
  return true;