@pnp/cli-microsoft365 7.5.0-beta.494c631 → 7.5.0-beta.c0c1edf

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 (206) hide show
  1. package/.devcontainer/Dockerfile +2 -2
  2. package/.eslintrc.cjs +6 -2
  3. package/.mocharc.json +3 -5
  4. package/Dockerfile +2 -5
  5. package/README.md +2 -2
  6. package/allCommands.json +1 -1
  7. package/allCommandsFull.json +1 -1
  8. package/dist/Command.js +1 -1
  9. package/dist/m365/app/commands/app-get.js +2 -2
  10. package/dist/m365/base/AppCommand.js +2 -2
  11. package/dist/m365/base/{YammerCommand.js → VivaEngageCommand.js} +2 -2
  12. package/dist/m365/cli/commands/cli-consent.js +5 -3
  13. package/dist/m365/entra/aadCommands.js +3 -0
  14. package/dist/m365/entra/commands/administrativeunit/administrativeunit-get.js +2 -2
  15. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-add.js +8 -8
  16. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-get.js +2 -2
  17. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-list.js +2 -2
  18. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-remove.js +153 -0
  19. package/dist/m365/entra/commands/administrativeunit/administrativeunit-remove.js +2 -2
  20. package/dist/m365/entra/commands/administrativeunit/administrativeunit-roleassignment-add.js +4 -4
  21. package/dist/m365/entra/commands/app/app-add.js +1 -1
  22. package/dist/m365/entra/commands/app/app-get.js +1 -1
  23. package/dist/m365/entra/commands/app/app-list.js +1 -1
  24. package/dist/m365/entra/commands/app/app-permission-add.js +4 -8
  25. package/dist/m365/entra/commands/app/app-permission-list.js +182 -0
  26. package/dist/m365/entra/commands/app/app-remove.js +1 -1
  27. package/dist/m365/entra/commands/app/app-role-add.js +1 -1
  28. package/dist/m365/entra/commands/app/app-role-list.js +1 -1
  29. package/dist/m365/entra/commands/app/app-role-remove.js +1 -1
  30. package/dist/m365/entra/commands/app/app-set.js +1 -1
  31. package/dist/m365/entra/commands/{sp/sp-add.js → enterpriseapp/enterpriseapp-add.js} +18 -18
  32. package/dist/m365/entra/commands/{sp/sp-get.js → enterpriseapp/enterpriseapp-get.js} +19 -19
  33. package/dist/m365/entra/commands/{sp/sp-list.js → enterpriseapp/enterpriseapp-list.js} +13 -13
  34. package/dist/m365/entra/commands/group/group-add.js +224 -0
  35. package/dist/m365/entra/commands/group/group-get.js +3 -3
  36. package/dist/m365/entra/commands/group/group-remove.js +2 -2
  37. package/dist/m365/entra/commands/group/group-user-add.js +145 -0
  38. package/dist/m365/entra/commands/group/group-user-list.js +2 -2
  39. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +2 -2
  40. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +3 -3
  41. package/dist/m365/entra/commands/m365group/m365group-get.js +3 -3
  42. package/dist/m365/entra/commands/m365group/m365group-remove.js +2 -2
  43. package/dist/m365/entra/commands/m365group/m365group-renew.js +2 -2
  44. package/dist/m365/entra/commands/m365group/m365group-report-activitygroupcounts.js +1 -1
  45. package/dist/m365/entra/commands/m365group/m365group-set.js +2 -2
  46. package/dist/m365/entra/commands/m365group/m365group-teamify.js +2 -2
  47. package/dist/m365/entra/commands/m365group/m365group-user-add.js +2 -2
  48. package/dist/m365/entra/commands/m365group/m365group-user-list.js +3 -3
  49. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +2 -2
  50. package/dist/m365/entra/commands/m365group/m365group-user-set.js +2 -2
  51. package/dist/m365/entra/commands/user/user-get.js +38 -38
  52. package/dist/m365/entra/commands/user/user-registrationdetails-list.js +224 -0
  53. package/dist/m365/entra/commands.js +17 -0
  54. package/dist/m365/external/commands/connection/connection-doctor.js +2 -1
  55. package/dist/m365/file/commands/file-copy.js +151 -0
  56. package/dist/m365/file/commands.js +1 -0
  57. package/dist/m365/flow/commands/owner/owner-ensure.js +4 -4
  58. package/dist/m365/flow/commands/owner/owner-remove.js +4 -4
  59. package/dist/m365/onenote/commands/notebook/notebook-list.js +2 -2
  60. package/dist/m365/onenote/commands/page/page-list.js +2 -2
  61. package/dist/m365/pa/commands/app/app-owner-set.js +2 -2
  62. package/dist/m365/pa/commands/app/app-permission-ensure.js +4 -4
  63. package/dist/m365/pa/commands/app/app-permission-remove.js +4 -4
  64. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  65. package/dist/m365/planner/commands/bucket/bucket-get.js +2 -2
  66. package/dist/m365/planner/commands/bucket/bucket-list.js +2 -2
  67. package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -2
  68. package/dist/m365/planner/commands/bucket/bucket-set.js +2 -2
  69. package/dist/m365/planner/commands/plan/plan-add.js +2 -2
  70. package/dist/m365/planner/commands/plan/plan-get.js +2 -2
  71. package/dist/m365/planner/commands/plan/plan-list.js +2 -2
  72. package/dist/m365/planner/commands/plan/plan-remove.js +2 -2
  73. package/dist/m365/planner/commands/plan/plan-set.js +2 -2
  74. package/dist/m365/planner/commands/roster/roster-member-add.js +2 -2
  75. package/dist/m365/planner/commands/roster/roster-member-get.js +2 -2
  76. package/dist/m365/planner/commands/roster/roster-member-remove.js +2 -2
  77. package/dist/m365/planner/commands/task/task-add.js +2 -2
  78. package/dist/m365/planner/commands/task/task-get.js +2 -2
  79. package/dist/m365/planner/commands/task/task-list.js +2 -2
  80. package/dist/m365/planner/commands/task/task-remove.js +2 -2
  81. package/dist/m365/planner/commands/task/task-set.js +2 -2
  82. package/dist/m365/spfx/commands/project/DeployWorkflow.js +4 -3
  83. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +1 -1
  84. package/dist/m365/spo/commands/group/group-member-add.js +4 -4
  85. package/dist/m365/spo/commands/group/group-member-remove.js +2 -2
  86. package/dist/m365/spo/commands/group/group-set.js +2 -2
  87. package/dist/m365/spo/commands/site/site-remove.js +2 -2
  88. package/dist/m365/spo/commands/site/site-set.js +2 -2
  89. package/dist/m365/spo/commands/spo-search.js +52 -22
  90. package/dist/m365/spo/commands/user/user-ensure.js +2 -2
  91. package/dist/m365/teams/commands/app/app-install.js +2 -2
  92. package/dist/m365/teams/commands/channel/channel-get.js +2 -2
  93. package/dist/m365/teams/commands/channel/channel-list.js +2 -2
  94. package/dist/m365/teams/commands/channel/channel-member-add.js +2 -2
  95. package/dist/m365/teams/commands/channel/channel-member-list.js +2 -2
  96. package/dist/m365/teams/commands/channel/channel-member-remove.js +2 -2
  97. package/dist/m365/teams/commands/channel/channel-member-set.js +2 -2
  98. package/dist/m365/teams/commands/channel/channel-remove.js +2 -2
  99. package/dist/m365/teams/commands/channel/channel-set.js +2 -2
  100. package/dist/m365/teams/commands/meeting/meeting-add.js +2 -2
  101. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +2 -2
  102. package/dist/m365/teams/commands/meeting/meeting-get.js +3 -3
  103. package/dist/m365/teams/commands/meeting/meeting-list.js +2 -2
  104. package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +2 -2
  105. package/dist/m365/teams/commands/tab/tab-get.js +2 -2
  106. package/dist/m365/teams/commands/team/team-add.js +6 -6
  107. package/dist/m365/teams/commands/team/team-archive.js +2 -2
  108. package/dist/m365/teams/commands/team/team-get.js +2 -2
  109. package/dist/m365/teams/commands/team/team-remove.js +2 -2
  110. package/dist/m365/teams/commands/team/team-unarchive.js +2 -2
  111. package/dist/m365/{yammer/commands/group/group-list.js → viva/commands/engage/engage-group-list.js} +19 -14
  112. package/dist/m365/{yammer/commands/group/group-user-add.js → viva/commands/engage/engage-group-user-add.js} +19 -14
  113. package/dist/m365/{yammer/commands/group/group-user-remove.js → viva/commands/engage/engage-group-user-remove.js} +19 -14
  114. package/dist/m365/{yammer/commands/message/message-add.js → viva/commands/engage/engage-message-add.js} +19 -14
  115. package/dist/m365/{yammer/commands/message/message-get.js → viva/commands/engage/engage-message-get.js} +17 -12
  116. package/dist/m365/{yammer/commands/message/message-like-set.js → viva/commands/engage/engage-message-like-set.js} +21 -16
  117. package/dist/m365/{yammer/commands/message/message-list.js → viva/commands/engage/engage-message-list.js} +21 -16
  118. package/dist/m365/{yammer/commands/message/message-remove.js → viva/commands/engage/engage-message-remove.js} +20 -15
  119. package/dist/m365/{yammer/commands/network/network-list.js → viva/commands/engage/engage-network-list.js} +16 -11
  120. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +23 -0
  121. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +23 -0
  122. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +23 -0
  123. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +23 -0
  124. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +23 -0
  125. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +23 -0
  126. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +23 -0
  127. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +23 -0
  128. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +23 -0
  129. package/dist/m365/{yammer/commands/yammer-search.js → viva/commands/engage/engage-search.js} +23 -18
  130. package/dist/m365/{yammer/commands/user/user-get.js → viva/commands/engage/engage-user-get.js} +18 -13
  131. package/dist/m365/{yammer/commands/user/user-list.js → viva/commands/engage/engage-user-list.js} +18 -13
  132. package/dist/m365/{yammer/commands.js → viva/commands/engage/yammerCommands.js} +1 -1
  133. package/dist/m365/viva/commands.js +22 -1
  134. package/dist/utils/{aadAdministrativeUnit.js → entraAdministrativeUnit.js} +2 -2
  135. package/dist/utils/{aadDevice.js → entraDevice.js} +2 -2
  136. package/dist/utils/{aadGroup.js → entraGroup.js} +2 -2
  137. package/dist/utils/{aadUser.js → entraUser.js} +38 -2
  138. package/dist/utils/spo.js +24 -2
  139. package/dist/utils/urlUtil.js +31 -0
  140. package/dist/utils/validation.js +8 -0
  141. package/docs/docs/cmd/cli/cli-consent.mdx +9 -9
  142. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-add.mdx +5 -3
  143. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-remove.mdx +107 -0
  144. package/docs/docs/cmd/entra/app/app-add.mdx +2 -1
  145. package/docs/docs/cmd/entra/app/app-get.mdx +1 -0
  146. package/docs/docs/cmd/entra/app/app-list.mdx +1 -0
  147. package/docs/docs/cmd/entra/app/app-permission-add.mdx +3 -2
  148. package/docs/docs/cmd/entra/app/app-permission-list.mdx +105 -0
  149. package/docs/docs/cmd/entra/app/app-remove.mdx +1 -0
  150. package/docs/docs/cmd/entra/app/app-role-add.mdx +1 -0
  151. package/docs/docs/cmd/entra/app/app-role-list.mdx +1 -0
  152. package/docs/docs/cmd/entra/app/app-role-remove.mdx +1 -0
  153. package/docs/docs/cmd/entra/app/app-set.mdx +1 -0
  154. package/docs/docs/cmd/entra/{sp/sp-add.mdx → enterpriseapp/enterpriseapp-add.mdx} +16 -15
  155. package/docs/docs/cmd/entra/{sp/sp-get.mdx → enterpriseapp/enterpriseapp-get.mdx} +15 -14
  156. package/docs/docs/cmd/entra/{sp/sp-list.mdx → enterpriseapp/enterpriseapp-list.mdx} +22 -21
  157. package/docs/docs/cmd/entra/group/group-add.mdx +231 -0
  158. package/docs/docs/cmd/entra/group/group-user-add.mdx +62 -0
  159. package/docs/docs/cmd/entra/m365group/m365group-report-activitygroupcounts.mdx +1 -1
  160. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +3 -3
  161. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +1 -1
  162. package/docs/docs/cmd/entra/user/user-registrationdetails-list.mdx +246 -0
  163. package/docs/docs/cmd/external/item/item-add.mdx +1 -1
  164. package/docs/docs/cmd/file/convert/convert-pdf.mdx +4 -0
  165. package/docs/docs/cmd/file/file-add.mdx +4 -0
  166. package/docs/docs/cmd/file/file-copy.mdx +68 -0
  167. package/docs/docs/cmd/file/file-list.mdx +100 -0
  168. package/docs/docs/cmd/setup.mdx +4 -0
  169. package/docs/docs/cmd/spo/list/list-webhook-set.mdx +1 -1
  170. package/docs/docs/cmd/spo/listitem/listitem-list.mdx +1 -1
  171. package/docs/docs/cmd/spo/spo-search.mdx +6 -2
  172. package/docs/docs/cmd/spo/theme/theme-set.mdx +14 -2
  173. package/docs/docs/cmd/{yammer/group/group-list.mdx → viva/engage/engage-group-list.mdx} +13 -13
  174. package/docs/docs/cmd/{yammer/group/group-user-add.mdx → viva/engage/engage-group-user-add.mdx} +7 -7
  175. package/docs/docs/cmd/{yammer/group/group-user-remove.mdx → viva/engage/engage-group-user-remove.mdx} +10 -10
  176. package/docs/docs/cmd/{yammer/message/message-add.mdx → viva/engage/engage-message-add.mdx} +12 -13
  177. package/docs/docs/cmd/{yammer/message/message-get.mdx → viva/engage/engage-message-get.mdx} +10 -10
  178. package/docs/docs/cmd/{yammer/message/message-like-set.mdx → viva/engage/engage-message-like-set.mdx} +10 -10
  179. package/docs/docs/cmd/{yammer/message/message-list.mdx → viva/engage/engage-message-list.mdx} +21 -21
  180. package/docs/docs/cmd/{yammer/message/message-remove.mdx → viva/engage/engage-message-remove.mdx} +10 -10
  181. package/docs/docs/cmd/{yammer/network/network-list.mdx → viva/engage/engage-network-list.mdx} +6 -6
  182. package/docs/docs/cmd/{yammer/report/report-activitycounts.mdx → viva/engage/engage-report-activitycounts.mdx} +9 -9
  183. package/docs/docs/cmd/{yammer/report/report-activityusercounts.mdx → viva/engage/engage-report-activityusercounts.mdx} +9 -9
  184. package/docs/docs/cmd/{yammer/report/report-activityuserdetail.mdx → viva/engage/engage-report-activityuserdetail.mdx} +11 -12
  185. package/docs/docs/cmd/{yammer/report/report-deviceusagedistributionusercounts.mdx → viva/engage/engage-report-deviceusagedistributionusercounts.mdx} +5 -5
  186. package/docs/docs/cmd/{yammer/report/report-deviceusageusercounts.mdx → viva/engage/engage-report-deviceusageusercounts.mdx} +5 -5
  187. package/docs/docs/cmd/{yammer/report/report-deviceusageuserdetail.mdx → viva/engage/engage-report-deviceusageuserdetail.mdx} +11 -11
  188. package/docs/docs/cmd/{yammer/report/report-groupsactivitycounts.mdx → viva/engage/engage-report-groupsactivitycounts.mdx} +9 -9
  189. package/docs/docs/cmd/{yammer/report/report-groupsactivitydetail.mdx → viva/engage/engage-report-groupsactivitydetail.mdx} +11 -11
  190. package/docs/docs/cmd/{yammer/report/report-groupsactivitygroupcounts.mdx → viva/engage/engage-report-groupsactivitygroupcounts.mdx} +5 -5
  191. package/docs/docs/cmd/{yammer/yammer-search.mdx → viva/engage/engage-search.mdx} +10 -10
  192. package/docs/docs/cmd/{yammer/user/user-get.mdx → viva/engage/engage-user-get.mdx} +8 -8
  193. package/docs/docs/cmd/{yammer/user/user-list.mdx → viva/engage/engage-user-list.mdx} +11 -11
  194. package/npm-shrinkwrap.json +228 -166
  195. package/package.json +20 -19
  196. package/dist/m365/base/AzmgmtCommand.js +0 -18
  197. package/dist/m365/base/AzmgmtItemsListCommand.js +0 -41
  198. package/dist/m365/yammer/commands/report/report-activitycounts.js +0 -15
  199. package/dist/m365/yammer/commands/report/report-activityusercounts.js +0 -15
  200. package/dist/m365/yammer/commands/report/report-activityuserdetail.js +0 -15
  201. package/dist/m365/yammer/commands/report/report-deviceusagedistributionusercounts.js +0 -15
  202. package/dist/m365/yammer/commands/report/report-deviceusageusercounts.js +0 -15
  203. package/dist/m365/yammer/commands/report/report-deviceusageuserdetail.js +0 -15
  204. package/dist/m365/yammer/commands/report/report-groupsactivitycounts.js +0 -15
  205. package/dist/m365/yammer/commands/report/report-groupsactivitydetail.js +0 -15
  206. package/dist/m365/yammer/commands/report/report-groupsactivitygroupcounts.js +0 -15
@@ -1,7 +1,7 @@
1
1
  import request from "../request.js";
2
2
  import { formatting } from "./formatting.js";
3
3
  const graphResource = 'https://graph.microsoft.com';
4
- export const aadUser = {
4
+ export const entraUser = {
5
5
  /**
6
6
  * Retrieve the id of a user by its UPN.
7
7
  * @param upn User UPN.
@@ -20,6 +20,42 @@ export const aadUser = {
20
20
  }
21
21
  return res.value[0].id;
22
22
  },
23
+ /**
24
+ * Retrieve the IDs of users by their UPNs. There is no guarantee that the order of the returned IDs will match the order of the specified UPNs.
25
+ * @param upns Array of user UPNs.
26
+ * @returns Array of user IDs.
27
+ */
28
+ async getUserIdsByUpns(upns) {
29
+ const userIds = [];
30
+ for (let i = 0; i < upns.length; i += 20) {
31
+ const upnsChunk = upns.slice(i, i + 20);
32
+ const requestOptions = {
33
+ url: `${graphResource}/v1.0/$batch`,
34
+ headers: {
35
+ accept: 'application/json;odata.metadata=none'
36
+ },
37
+ responseType: 'json',
38
+ data: {
39
+ requests: upnsChunk.map((upn, index) => ({
40
+ id: index + 1,
41
+ method: 'GET',
42
+ url: `/users/${formatting.encodeQueryParameter(upn)}?$select=id`,
43
+ headers: {
44
+ accept: 'application/json;odata.metadata=none'
45
+ }
46
+ }))
47
+ }
48
+ };
49
+ const res = await request.post(requestOptions);
50
+ for (const response of res.responses) {
51
+ if (response.status !== 200) {
52
+ throw Error(`The specified user with user name '${upnsChunk[response.id - 1]}' does not exist.`);
53
+ }
54
+ userIds.push(response.body.id);
55
+ }
56
+ }
57
+ return userIds;
58
+ },
23
59
  /**
24
60
  * Retrieve the ID of a user by its email.
25
61
  * @param mail User email.
@@ -54,4 +90,4 @@ export const aadUser = {
54
90
  return res.userPrincipalName;
55
91
  }
56
92
  };
57
- //# sourceMappingURL=aadUser.js.map
93
+ //# sourceMappingURL=entraUser.js.map
package/dist/utils/spo.js CHANGED
@@ -8,7 +8,7 @@ import request from "../request.js";
8
8
  import { formatting } from './formatting.js';
9
9
  import { odata } from './odata.js';
10
10
  import { RoleType } from '../m365/spo/commands/roledefinition/RoleType.js';
11
- import { aadGroup } from './aadGroup.js';
11
+ import { entraGroup } from './entraGroup.js';
12
12
  import { SharingCapabilities } from '../m365/spo/commands/site/SharingCapabilities.js';
13
13
  export const spo = {
14
14
  getRequestDigest(siteUrl) {
@@ -996,7 +996,7 @@ export const spo = {
996
996
  promises.push(request.post(requestOptions));
997
997
  }
998
998
  if (typeof isPublic !== 'undefined') {
999
- promises.push(aadGroup.setGroup(groupId, (isPublic === false), logger, verbose));
999
+ promises.push(entraGroup.setGroup(groupId, (isPublic === false), logger, verbose));
1000
1000
  }
1001
1001
  if (typeof owners !== 'undefined') {
1002
1002
  promises.push(spo.setGroupifiedSiteOwners(spoAdminUrl, groupId, owners, logger, verbose));
@@ -1312,6 +1312,28 @@ export const spo = {
1312
1312
  responseType: 'json'
1313
1313
  };
1314
1314
  await request.post(requestOptions);
1315
+ },
1316
+ /**
1317
+ * Retrieves the site ID for a given web URL.
1318
+ * @param webUrl The web URL for which to retrieve the site ID.
1319
+ * @param logger The logger object.
1320
+ * @param verbose Set for verbose logging
1321
+ * @returns A promise that resolves to the site ID.
1322
+ */
1323
+ async getSiteId(webUrl, logger, verbose) {
1324
+ if (verbose && logger) {
1325
+ logger.logToStderr(`Getting site id for URL: ${webUrl}...`);
1326
+ }
1327
+ const url = new URL(webUrl);
1328
+ const requestOptions = {
1329
+ url: `https://graph.microsoft.com/v1.0/sites/${formatting.encodeQueryParameter(url.host)}:${url.pathname}?$select=id`,
1330
+ headers: {
1331
+ accept: 'application/json;odata.metadata=none'
1332
+ },
1333
+ responseType: 'json'
1334
+ };
1335
+ const site = await request.get(requestOptions);
1336
+ return site.id;
1315
1337
  }
1316
1338
  };
1317
1339
  //# sourceMappingURL=spo.js.map
@@ -166,6 +166,37 @@ export const urlUtil = {
166
166
  relativeUrl = relativeUrl.substring(0, relativeUrl.length - 1);
167
167
  }
168
168
  return `${baseUrl}/${relativeUrl}`;
169
+ },
170
+ /**
171
+ * Get the absolute URL from the target SharePoint URL.
172
+ * @param {string} webUrl - The base web URL.
173
+ * @param {string} url - The target SharePoint URL.
174
+ * @returns {string} - The target site absolute URL.
175
+ *
176
+ * Example Scenarios:
177
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "/teams/sales/Shared Documents/temp/123/234",
178
+ * returns "https://contoso.sharepoint.com/teams/sales".
179
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "https://contoso-my.sharepoint.com/personal/john_contoso_onmicrosoft_com/Documents/123",
180
+ * returns "https://contoso-my.sharepoint.com/personal/john_contoso_onmicrosoft_com".
181
+ * - webUrl = "https://contoso.sharepoint.com/teams/sales" and targetUrl = "/Shared Documents/temp",
182
+ * returns "https://contoso.sharepoint.com".
183
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "/teams/sales/Shared Documents/temp",
184
+ * returns "https://contoso.sharepoint.com/teams/sales".
185
+ */
186
+ getTargetSiteAbsoluteUrl(webUrl, url) {
187
+ const fullUrl = url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
188
+ // Pattern to match SharePoint URLs
189
+ const urlPattern = /https:\/\/[\w\-]+\.sharepoint\.com\/(teams|sites|personal)\/([\w\-]+)/;
190
+ const match = fullUrl.match(urlPattern);
191
+ if (match) {
192
+ // If a match is found, return the matched URL
193
+ return match[0];
194
+ }
195
+ else {
196
+ // Extract the root URL
197
+ const rootUrl = new URL(fullUrl);
198
+ return rootUrl.origin;
199
+ }
169
200
  }
170
201
  };
171
202
  //# sourceMappingURL=urlUtil.js.map
@@ -21,6 +21,10 @@ export const validation = {
21
21
  const guidRegEx = new RegExp(/^19:[0-9a-zA-Z-_]+(@thread\.v2|@unq\.gbl\.spaces)$/i);
22
22
  return guidRegEx.test(guid);
23
23
  },
24
+ isValidUserPrincipalNameArray(upns) {
25
+ const invalidGuid = upns.find(upn => !this.isValidUserPrincipalName(upn));
26
+ return invalidGuid || true;
27
+ },
24
28
  isValidUserPrincipalName(upn) {
25
29
  const upnRegEx = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/i);
26
30
  // verify if the upn is a valid upn. @meusername will be replaced in a later stage with the actual username of the logged in user
@@ -317,6 +321,10 @@ export const validation = {
317
321
  return true;
318
322
  }
319
323
  return false;
324
+ },
325
+ isValidMailNickname(mailNickname) {
326
+ const mailNicknameRegEx = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]*$/i);
327
+ return mailNicknameRegEx.test(mailNickname);
320
328
  }
321
329
  };
322
330
  //# sourceMappingURL=validation.js.map
@@ -16,25 +16,25 @@ m365 cli consent [options]
16
16
 
17
17
  ```md definition-list
18
18
  `-s, --service <service>`
19
- : Service for which to consent permissions. Allowed values: `yammer`
19
+ : Service for which to consent permissions. Allowed values: `VivaEngage`, (deprecated)`yammer`.
20
20
  ```
21
21
 
22
22
  <Global />
23
23
 
24
24
  ## Remarks
25
25
 
26
- Using the `cli consent` command you can consent additional permissions for the Azure AD application used by the CLI for Microsoft 365. This is for example necessary to use Yammer commands, which require the Yammer API permission that isn't granted to the CLI by default.
26
+ Using the `cli consent` command you can consent additional permissions for the Azure AD application used by the CLI for Microsoft 365. This is for example necessary to use Viva Engage commands, which require the Viva Engage API permission that isn't granted to the CLI by default.
27
27
 
28
28
  After executing the command, the CLI for Microsoft 365 will present you with a URL that you need to open in the web browser in order to consent the permissions for the selected Microsoft 365 service.
29
29
 
30
- To simplify things, rather than wondering which permissions you should grant for which CLI commands, this command allows you to easily grant all the necessary permissions for using commands for the specified Microsoft 365 service, like Yammer.
30
+ To simplify things, rather than wondering which permissions you should grant for which CLI commands, this command allows you to easily grant all the necessary permissions for using commands for the specified Microsoft 365 service, like Viva Engage.
31
31
 
32
32
  ## Examples
33
33
 
34
- Consent permissions to the Yammer API
34
+ Consent permissions to the Viva Engage API
35
35
 
36
36
  ```sh
37
- m365 cli consent --service yammer
37
+ m365 cli consent --service VivaEngage
38
38
  ```
39
39
 
40
40
  ## Response
@@ -43,28 +43,28 @@ m365 cli consent --service yammer
43
43
  <TabItem value="JSON">
44
44
 
45
45
  ```json
46
- "To consent permissions for executing yammer commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation"
46
+ "To consent permissions for executing VivaEngage commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation"
47
47
  ```
48
48
 
49
49
  </TabItem>
50
50
  <TabItem value="Text">
51
51
 
52
52
  ```text
53
- To consent permissions for executing yammer commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
53
+ To consent permissions for executing VivaEngage commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
54
54
  ```
55
55
 
56
56
  </TabItem>
57
57
  <TabItem value="CSV">
58
58
 
59
59
  ```csv
60
- To consent permissions for executing yammer commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
60
+ To consent permissions for executing VivaEngage commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
61
61
  ```
62
62
 
63
63
  </TabItem>
64
64
  <TabItem value="Markdown">
65
65
 
66
66
  ```md
67
- To consent permissions for executing yammer commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
67
+ To consent permissions for executing VivaEngage commands, navigate in your web browser to https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=31359c7f-bd7e-475c-86db-fdb8c937548e&response_type=code&scope=https%3A%2F%2Fapi.yammer.com%2Fuser_impersonation
68
68
  ```
69
69
 
70
70
  </TabItem>
@@ -1,6 +1,4 @@
1
1
  import Global from '/docs/cmd/_global.mdx';
2
- import Tabs from '@theme/Tabs';
3
- import TabItem from '@theme/TabItem';
4
2
 
5
3
  # entra administrativeunit member add
6
4
 
@@ -94,6 +92,10 @@ Add a single device specified by name to an administrative unit specified by nam
94
92
  m365 entra administrativeunit member add --administrativeUnitName 'Marketing Division' --deviceName 'JohnDoe-PC'
95
93
  ```
96
94
 
95
+ ## Response
96
+
97
+ The command won't return a response on success.
98
+
97
99
  ## More information
98
100
 
99
- - Administrative units: https://learn.microsoft.com/entra/identity/role-based-access-control/administrative-units
101
+ - Administrative units: https://learn.microsoft.com/entra/identity/role-based-access-control/administrative-units
@@ -0,0 +1,107 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+
3
+ # entra administrativeunit member remove
4
+
5
+ Removes a member (user, group, or device) from an administrative unit
6
+
7
+ ## Usage
8
+
9
+ ```sh
10
+ m365 entra administrativeunit member remove [options]
11
+ ```
12
+
13
+ ## options
14
+
15
+ ```md definition-list
16
+ `-i, --id [id]`
17
+ : The id of the member to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
18
+
19
+ `--userId [userId]`
20
+ : The id of the user to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
21
+
22
+ `--userName [userName]`
23
+ : The user principal name (UPN) of the user to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
24
+
25
+ `--groupId [groupId]`
26
+ : The id of the group to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
27
+
28
+ `--groupName [groupName]`
29
+ : The name of the group to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
30
+
31
+ `--deviceId [deviceId]`
32
+ : The id of the device to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
33
+
34
+ `--deviceName [deviceName]`
35
+ : The name of the device to be removed. Specify either `id`, `userId`, `userName`, `groupId`, `groupName`, `deviceId` or `deviceName`.
36
+
37
+ `--administrativeUnitId [administrativeUnitId]`
38
+ : The id of the administrative unit. Specify either `administrativeUnitId` or `administrativeUnitName` but not both.
39
+
40
+ `--administrativeUnitName [administrativeUnitName]`
41
+ : The name of the administrative unit. Specify either `administrativeUnitId` or `administrativeUnitName` but not both.
42
+
43
+ `-f, --force`
44
+ : Don't prompt for confirmation.
45
+ ```
46
+
47
+ <Global />
48
+
49
+ ## Remarks
50
+
51
+ :::info
52
+
53
+ To use this command you must be either **Global Administrator** or **Privileged Role Administrator**.
54
+
55
+ :::
56
+
57
+ ## Examples
58
+
59
+ Remove a member specified by id from an administrative unit specified by id
60
+
61
+ ```sh
62
+ m365 entra administrativeunit member remove --id 64131a70-beb9-4ccb-b590-4401e58446ec --administrativeUnitId 03c4c9dc-6f0c-4c4f-a4e6-0c9ed80f54c7
63
+ ```
64
+
65
+ Remove a user specified by id from an administrative unit specified by id
66
+
67
+ ```sh
68
+ m365 entra administrativeunit member remove --userId 64131a70-beb9-4ccb-b590-4401e58446ec --administrativeUnitId 03c4c9dc-6f0c-4c4f-a4e6-0c9ed80f54c7
69
+ ```
70
+
71
+ Remove a group specified by id from an administrative unit specified by id
72
+
73
+ ```sh
74
+ m365 entra administrativeunit member remove --groupId b2307a39-e878-458b-bc90-03bc578531d6 --administrativeUnitId 03c4c9dc-6f0c-4c4f-a4e6-0c9ed80f54c7
75
+ ```
76
+
77
+ Remove a device specified by id from an administrative unit specified by id
78
+
79
+ ```sh
80
+ m365 entra administrativeunit member remove --deviceId 810c84a8-4a9e-49e6-bf7d-12d183f40d01 --administrativeUnitId 03c4c9dc-6f0c-4c4f-a4e6-0c9ed80f54c7
81
+ ```
82
+
83
+ Remove a user specified by UPN from an administrative unit specified by name
84
+
85
+ ```sh
86
+ m365 entra administrativeunit member remove --userName john.doe@contoso.com --administrativeUnitName 'Marketing Division'
87
+ ```
88
+
89
+ Remove a group specified by name from an administrative unit specified by id
90
+
91
+ ```sh
92
+ m365 entra administrativeunit member remove --groupName 'Marketing Group' --administrativeUnitId 03c4c9dc-6f0c-4c4f-a4e6-0c9ed80f54c7
93
+ ```
94
+
95
+ Remove a device specified by name from an administrative unit specified by name
96
+
97
+ ```sh
98
+ m365 entra administrativeunit member remove --deviceName 'JohnDoe-PC' --administrativeUnitName 'Marketing Division'
99
+ ```
100
+
101
+ ## Response
102
+
103
+ The command won't return a response on success
104
+
105
+ ## More information
106
+
107
+ - [Administrative units](https://learn.microsoft.com/entra/identity/role-based-access-control/administrative-units)
@@ -16,6 +16,7 @@ m365 entra app add [options]
16
16
 
17
17
  ```sh
18
18
  m365 aad app add [options]
19
+ m365 entra appregistration add [options]
19
20
  ```
20
21
 
21
22
  ## Options
@@ -109,7 +110,7 @@ After creating the Entra app registration, this command returns the app ID and o
109
110
 
110
111
  If you want to store the information about the created Entra app registration, use the `--save` option. This is useful when you build solutions connected to Microsoft 365 and want to easily manage app registrations used with your solution. When you use the `--save` option, after you create the app registration, the command will write its ID and name to the `.m365rc.json` file in the current directory. If the file already exists, it will add the information about the to it, allowing you to track multiple apps. If the file doesn't exist, the command will create it.
111
112
 
112
- When specifying `--grantAdminConsent` option, a service principal will be created for the app registration.
113
+ When specifying `--grantAdminConsent` option, an enterprise application will be created for the app registration.
113
114
 
114
115
  ## Examples
115
116
 
@@ -16,6 +16,7 @@ m365 entra app get [options]
16
16
 
17
17
  ```sh
18
18
  m365 aad app get [options]
19
+ m365 entra appregistration get [options]
19
20
  ```
20
21
 
21
22
  ## Options
@@ -16,6 +16,7 @@ m365 entra app list [options]
16
16
 
17
17
  ```sh
18
18
  m365 aad app list [options]
19
+ m365 entra appregistration list [options]
19
20
  ```
20
21
 
21
22
  ## Options
@@ -16,6 +16,7 @@ m365 entra app permission add [options]
16
16
 
17
17
  ```sh
18
18
  m365 aad app permission add [options]
19
+ m365 entra appregistration permission add [options]
19
20
  ```
20
21
 
21
22
  ## Options
@@ -60,9 +61,9 @@ m365 entra app permission add --appObjectId 'e0306bb2-bf0b-4cc5-a845-a0b2cf11f69
60
61
  Grant multiple app-only permissions to an Entra (Azure AD) app specified by client id and grant admin consent
61
62
 
62
63
  ```sh
63
- m365 entra app permission add --appId 'f1417aa3-bf0b-4cc5-a845-a0b2cf11f690' --applicationPermissions 'https://graph.microsoft.com/Sites.FullControl.All https://microsoft.sharepoint-df.com/Sites.FullControl.All' --grandAdminConsent
64
+ m365 entra app permission add --appId 'f1417aa3-bf0b-4cc5-a845-a0b2cf11f690' --applicationPermissions 'https://graph.microsoft.com/Sites.FullControl.All https://microsoft.sharepoint-df.com/Sites.FullControl.All' --grantAdminConsent
64
65
  ```
65
66
 
66
67
  ## Response
67
68
 
68
- The command won't return a response on success.
69
+ The command won't return a response on success.
@@ -0,0 +1,105 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+ import Tabs from '@theme/Tabs';
3
+ import TabItem from '@theme/TabItem';
4
+
5
+ # entra app permission list
6
+
7
+ Lists the application and delegated permissions for a specified Entra Application Registration
8
+
9
+ ## Usage
10
+
11
+ ```sh
12
+ m365 entra app permission list [options]
13
+ ```
14
+
15
+ ## Alias
16
+
17
+ ```sh
18
+ m365 aad app permission list [options]
19
+ ```
20
+
21
+ ## Options
22
+
23
+ ```md definition-list
24
+ `-i, --appId [appId]`
25
+ : Client ID of the Application Registration to retrieve the permissions for. Specify `appId` or `appObjectId` but not both.
26
+
27
+ `--appObjectId [appObjectId]`
28
+ : Object ID of the Application Registration to retrieve the permissions for. Specify `appId` or `appObjectId` but not both.
29
+
30
+ `--type [type]`
31
+ : The type of permissions to retrieve. Allowed values: `delegated`, `application`, `all`. Defaults to `all`.
32
+ ```
33
+
34
+ <Global />
35
+
36
+ ## Remarks
37
+
38
+ For best performance use the `objectId` option to reference the Entra application registration to get. If you use `appId`, this command will first need to find the corresponding object ID for that application.
39
+
40
+ ## Examples
41
+
42
+ Retrieves all permissions for an Entra app registration
43
+
44
+ ```sh
45
+ m365 entra app permission list --appId 'f1417aa3-bf0b-4cc5-a845-a0b2cf11f690'
46
+ ```
47
+
48
+ Retrieves all delegated permissions for an Entra app registration
49
+
50
+ ```sh
51
+ m365 entra app permission list --appId 'f1417aa3-bf0b-4cc5-a845-a0b2cf11f690' --type delegated
52
+ ```
53
+
54
+ ## Response
55
+
56
+ <Tabs>
57
+ <TabItem value="JSON">
58
+
59
+ ```json
60
+ [
61
+ {
62
+ "resource": "Microsoft Graph",
63
+ "resourceId": "00000003-0000-0000-c000-000000000000",
64
+ "permission": "User.Read",
65
+ "type": "Delegated"
66
+ }
67
+ ]
68
+ ```
69
+
70
+ </TabItem>
71
+ <TabItem value="Text">
72
+
73
+ ```text
74
+ resource resourceId permission type
75
+ ---------------------------- ------------------------------------ --------------------------------- -----------
76
+ Microsoft Graph 00000003-0000-0000-c000-000000000000 User.Read Delegated
77
+ ```
78
+
79
+ </TabItem>
80
+ <TabItem value="CSV">
81
+
82
+ ```csv
83
+ resource,resourceId,permission,type
84
+ Microsoft Graph,00000003-0000-0000-c000-000000000000,User.Read,Delegated
85
+ ```
86
+
87
+ </TabItem>
88
+ <TabItem value="Markdown">
89
+
90
+ ```md
91
+ # entra app permission list --appId "2bf26ae1-9be3-425f-a393-5fe8390e3a36"
92
+
93
+ Date: 27/12/2023
94
+
95
+ Property | Value
96
+ ---------|-------
97
+ resource | Microsoft Graph
98
+ resourceId | 00000003-0000-0000-c000-000000000000
99
+ permission | User.Read
100
+ type | Delegated
101
+ ```
102
+
103
+ </TabItem>
104
+ </Tabs>
105
+
@@ -14,6 +14,7 @@ m365 entra app remove [options]
14
14
 
15
15
  ```sh
16
16
  m365 aad app remove [options]
17
+ m365 entra appregistration remove [options]
17
18
  ```
18
19
 
19
20
  ## Options
@@ -14,6 +14,7 @@ m365 entra app role add [options]
14
14
 
15
15
  ```sh
16
16
  m365 aad app role add [options]
17
+ m365 entra appregistration role add [options]
17
18
  ```
18
19
 
19
20
  ## Options
@@ -16,6 +16,7 @@ m365 entra app role list [options]
16
16
 
17
17
  ```sh
18
18
  m365 aad app role list [options]
19
+ m365 entra appregistration role list [options]
19
20
  ```
20
21
 
21
22
  ## Options
@@ -14,6 +14,7 @@ m365 entra app role remove [options]
14
14
 
15
15
  ```sh
16
16
  m365 aad app role remove [options]
17
+ m365 entra appregistration role remove [options]
17
18
  ```
18
19
 
19
20
  ## Options
@@ -14,6 +14,7 @@ m365 entra app set [options]
14
14
 
15
15
  ```sh
16
16
  m365 aad app set [options]
17
+ m365 entra appregistration set [options]
17
18
  ```
18
19
 
19
20
  ## Options
@@ -2,33 +2,34 @@ import Global from '/docs/cmd/_global.mdx';
2
2
  import Tabs from '@theme/Tabs';
3
3
  import TabItem from '@theme/TabItem';
4
4
 
5
- # entra sp add
5
+ # entra enterpriseapp add
6
6
 
7
- Adds a service principal to a registered Entra app
7
+ Creates an enterprise application (or service principal) for a registered Entra app
8
8
 
9
9
  ## Usage
10
10
 
11
11
  ```sh
12
- m365 entra sp add [options]
12
+ m365 entra enterpriseapp add [options]
13
13
  ```
14
14
 
15
15
  ## Alias
16
16
 
17
17
  ```sh
18
18
  m365 aad sp add [options]
19
+ m365 entra sp add [options]
19
20
  ```
20
21
 
21
22
  ## Options
22
23
 
23
24
  ```md definition-list
24
25
  `--appId [appId]`
25
- : ID of the application to which the service principal should be added
26
+ : ID of the app for which the enterprise application should be created
26
27
 
27
28
  `--appName [appName]`
28
- : Display name of the application to which the service principal should be added
29
+ : Display name of the app for which the enterprise application should be created
29
30
 
30
31
  `--objectId [objectId]`
31
- : ObjectId of the application to which the service principal should be added
32
+ : ObjectId of the app for which the enterprise application should be created
32
33
  ```
33
34
 
34
35
  <Global />
@@ -37,26 +38,26 @@ m365 aad sp add [options]
37
38
 
38
39
  Specify either the `appId`, `appName` or `objectId`. If you specify more than one option value, the command will fail with an error.
39
40
 
40
- If you register an application in the portal, an application object as well as a service principal object are automatically created in your home tenant. If you register an application using CLI for Microsoft 365 or the Microsoft Graph, you'll need to create the service principal separately. To register/create an application using the CLI for Microsoft 365, use the [m365 entra app add](../app/app-add.mdx) command.
41
+ If you register an application in the portal, an application object as well as an enterprise application object are automatically created in your home tenant. If you register an application using CLI for Microsoft 365 or the Microsoft Graph, you'll need to create the enterprise application separately. To register/create an application using the CLI for Microsoft 365, use the [m365 entra app add](../app/app-add.mdx) command.
41
42
 
42
43
  ## Examples
43
44
 
44
- Adds a service principal to a registered Entra app with appId _b2307a39-e878-458b-bc90-03bc578531d6_.
45
+ Creates an enterprise application for a registered Entra app with appId _b2307a39-e878-458b-bc90-03bc578531d6_.
45
46
 
46
47
  ```sh
47
- m365 entra sp add --appId b2307a39-e878-458b-bc90-03bc578531d6
48
+ m365 entra enterpriseapp add --appId b2307a39-e878-458b-bc90-03bc578531d6
48
49
  ```
49
50
 
50
- Adds a service principal to a registered Entra app with appName _Microsoft Graph_.
51
+ Creates an enterprise application for a registered Entra app with appName _Microsoft Graph_.
51
52
 
52
53
  ```sh
53
- m365 entra sp add --appName "Microsoft Graph"
54
+ m365 entra enterpriseapp add --appName "Microsoft Graph"
54
55
  ```
55
56
 
56
- Adds a service principal to a registered Entra app with objectId _b2307a39-e878-458b-bc90-03bc578531d6_.
57
+ Creates an enterprise application for a registered Entra app with objectId _b2307a39-e878-458b-bc90-03bc578531d6_.
57
58
 
58
59
  ```sh
59
- m365 entra sp add --objectId b2307a39-e878-458b-bc90-03bc578531d6
60
+ m365 entra enterpriseapp add --objectId b2307a39-e878-458b-bc90-03bc578531d6
60
61
  ```
61
62
 
62
63
  ## Response
@@ -171,7 +172,7 @@ m365 entra sp add --objectId b2307a39-e878-458b-bc90-03bc578531d6
171
172
  <TabItem value="Markdown">
172
173
 
173
174
  ```md
174
- # entra sp add --appId "8da75b6a-4272-4b17-8ee1-20ba66e2b06f"
175
+ # entra enterpriseapp add --appId "8da75b6a-4272-4b17-8ee1-20ba66e2b06f"
175
176
 
176
177
  Date: 2023-06-02
177
178
 
@@ -195,5 +196,5 @@ m365 entra sp add --objectId b2307a39-e878-458b-bc90-03bc578531d6
195
196
 
196
197
  ## More information
197
198
 
198
- - Application and service principal objects in Entra ID (Azure AD): [https://learn.microsoft.com/azure/active-directory/develop/active-directory-application-objects](https://learn.microsoft.com/azure/active-directory/develop/active-directory-application-objects)
199
+ - Application and enterprise application objects in Entra ID (Azure AD): [https://learn.microsoft.com/azure/active-directory/develop/active-directory-application-objects](https://learn.microsoft.com/azure/active-directory/develop/active-directory-application-objects)
199
200
  - Create servicePrincipal: [https://learn.microsoft.com/graph/api/serviceprincipal-post-serviceprincipals?view=graph-rest-1.0](https://learn.microsoft.com/graph/api/serviceprincipal-post-serviceprincipals?view=graph-rest-1.0)