@pnp/cli-microsoft365 10.11.0-beta.c2217b6 → 11.0.0-beta.1f852eb

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 (115) hide show
  1. package/.eslintrc.cjs +2 -0
  2. package/Dockerfile +2 -2
  3. package/allCommands.json +1 -1
  4. package/allCommandsFull.json +1 -1
  5. package/dist/config.js +1 -0
  6. package/dist/m365/base/GraphApplicationCommand.js +17 -0
  7. package/dist/m365/base/{DelegatedGraphCommand.js → GraphDelegatedCommand.js} +4 -4
  8. package/dist/m365/base/PowerAppsCommand.js +1 -1
  9. package/dist/m365/base/PowerAutomateCommand.js +1 -1
  10. package/dist/m365/base/PowerBICommand.js +1 -1
  11. package/dist/m365/base/PowerPlatformCommand.js +1 -1
  12. package/dist/m365/base/VivaEngageCommand.js +1 -1
  13. package/dist/m365/cli/commands/app/app-add.js +95 -0
  14. package/dist/m365/cli/commands.js +1 -0
  15. package/dist/m365/entra/commands/app/app-get.js +11 -52
  16. package/dist/m365/entra/commands/app/app-permission-add.js +19 -30
  17. package/dist/m365/entra/commands/app/app-permission-list.js +2 -19
  18. package/dist/m365/entra/commands/app/app-permission-remove.js +22 -31
  19. package/dist/m365/entra/commands/app/app-remove.js +2 -18
  20. package/dist/m365/entra/commands/app/app-role-add.js +10 -43
  21. package/dist/m365/entra/commands/app/app-role-list.js +2 -20
  22. package/dist/m365/entra/commands/app/app-role-remove.js +9 -40
  23. package/dist/m365/entra/commands/app/app-set.js +2 -19
  24. package/dist/m365/entra/commands/group/group-member-add.js +55 -10
  25. package/dist/m365/entra/commands/group/group-member-set.js +18 -3
  26. package/dist/m365/outlook/commands/message/message-move.js +1 -1
  27. package/dist/m365/pp/commands/managementapp/managementapp-add.js +7 -21
  28. package/dist/m365/spe/commands/container/container-recyclebinitem-restore.js +96 -0
  29. package/dist/m365/spe/commands.js +1 -0
  30. package/dist/m365/spfx/commands/project/base-project-command.js +1 -0
  31. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.21.0.js +2 -0
  32. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.21.1.js +2 -0
  33. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.22.0-beta.1.js +21 -0
  34. package/dist/m365/spfx/commands/project/project-doctor/rules/FN002022_DEVDEP_typescript.js +10 -0
  35. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  36. package/dist/m365/spfx/commands/project/project-model/SassJson.js +2 -0
  37. package/dist/m365/spfx/commands/project/project-model/index.js +1 -0
  38. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002001_DEVDEP_microsoft_sp_build_web.js +2 -2
  39. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002004_DEVDEP_gulp.js +2 -2
  40. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002007_DEVDEP_ajv.js +2 -2
  41. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js +2 -2
  42. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002030_DEVDEP_microsoft_spfx_web_build_rig.js +10 -0
  43. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002031_DEVDEP_rushstack_heft.js +10 -0
  44. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002032_DEVDEP_typescript_eslint_parser.js +10 -0
  45. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002033_DEVDEP_jest_junit.js +10 -0
  46. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010011_YORC_useGulp.js +40 -0
  47. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015010_FILE_gulpfile_js.js +10 -0
  48. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015011_FILE_tsconfig_json.js +10 -0
  49. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015012_FILE_config_heft_json.js +10 -0
  50. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015013_FILE_config_jest_config_json.js +10 -0
  51. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015014_FILE_config_rig_json.js +10 -0
  52. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015015_FILE_config_typescript_json.js +10 -0
  53. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021004_PKG_scripts_build.js +45 -0
  54. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021005_PKG_scripts_test.js +45 -0
  55. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021006_PKG_scripts_clean.js +45 -0
  56. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021007_PKG_scripts_deploy.js +45 -0
  57. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021008_PKG_scripts_start.js +45 -0
  58. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021009_PKG_scripts_build_watch.js +45 -0
  59. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021010_PKG_scripts_package_solution.js +45 -0
  60. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021011_PKG_scripts_deploy_azure_storage.js +45 -0
  61. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021012_PKG_scripts_eject_webpack.js +45 -0
  62. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021013_PKG_overrides_rushstack_heft.js +45 -0
  63. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023003_GITIGNORE_libdts.js +36 -0
  64. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023004_GITIGNORE_libcommonjs.js +36 -0
  65. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023005_GITIGNORE_libesm.js +36 -0
  66. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023006_GITIGNORE_jestoutput.js +36 -0
  67. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN026001_CFG_SASS_schema.js +40 -0
  68. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN026002_CFG_SASS_extends.js +40 -0
  69. package/dist/m365/spfx/commands/project/project-upgrade/rules/FileAddRemoveRule.js +7 -0
  70. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.22.0-beta.1.js +241 -0
  71. package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
  72. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  73. package/dist/m365/spo/commands/file/file-version-get.js +1 -0
  74. package/dist/m365/spo/commands/file/file-version-list.js +2 -2
  75. package/dist/m365/spo/commands/page/Page.js +10 -3
  76. package/dist/m365/spo/commands/page/page-section-list.js +5 -1
  77. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +13 -7
  78. package/dist/m365/spo/commands/site/site-appcatalog-list.js +38 -2
  79. package/dist/m365/spo/commands/tenant/tenant-site-unarchive.js +1 -1
  80. package/dist/m365/teams/commands/callrecord/callrecord-list.js +100 -0
  81. package/dist/m365/teams/commands/chat/chat-message-send.js +2 -2
  82. package/dist/m365/teams/commands/message/message-remove.js +2 -2
  83. package/dist/m365/teams/commands/message/message-restore.js +2 -2
  84. package/dist/m365/teams/commands.js +1 -0
  85. package/dist/m365/todo/commands/list/list-add.js +2 -2
  86. package/dist/m365/todo/commands/list/list-get.js +2 -2
  87. package/dist/m365/todo/commands/list/list-list.js +2 -2
  88. package/dist/m365/todo/commands/list/list-remove.js +2 -2
  89. package/dist/m365/todo/commands/list/list-set.js +2 -2
  90. package/dist/m365/todo/commands/task/task-add.js +2 -2
  91. package/dist/m365/todo/commands/task/task-get.js +2 -2
  92. package/dist/m365/todo/commands/task/task-list.js +2 -2
  93. package/dist/m365/todo/commands/task/task-remove.js +2 -2
  94. package/dist/m365/todo/commands/task/task-set.js +2 -2
  95. package/dist/m365/viva/commands/engage/EngageRole.js +2 -0
  96. package/dist/m365/viva/commands/engage/engage-role-list.js +28 -0
  97. package/dist/m365/viva/commands/engage/engage-role-member-list.js +57 -0
  98. package/dist/m365/viva/commands.js +2 -0
  99. package/dist/utils/accessToken.js +9 -5
  100. package/dist/utils/entraApp.js +15 -0
  101. package/dist/utils/entraGroup.js +43 -0
  102. package/dist/utils/vivaEngage.js +19 -0
  103. package/docs/docs/cmd/cli/app/app-add.mdx +50 -0
  104. package/docs/docs/cmd/entra/group/group-member-add.mdx +26 -5
  105. package/docs/docs/cmd/entra/group/group-member-set.mdx +7 -4
  106. package/docs/docs/cmd/spe/container/container-recyclebinitem-restore.mdx +53 -0
  107. package/docs/docs/cmd/spo/file/file-version-get.mdx +5 -2
  108. package/docs/docs/cmd/spo/file/file-version-list.mdx +7 -5
  109. package/docs/docs/cmd/spo/site/site-appcatalog-list.mdx +11 -0
  110. package/docs/docs/cmd/spo/tenant/tenant-site-unarchive.mdx +1 -1
  111. package/docs/docs/cmd/teams/callrecord/callrecord-list.mdx +173 -0
  112. package/docs/docs/cmd/viva/engage/engage-role-list.mdx +102 -0
  113. package/docs/docs/cmd/viva/engage/engage-role-member-list.mdx +118 -0
  114. package/npm-shrinkwrap.json +293 -765
  115. package/package.json +18 -17
@@ -142,6 +142,49 @@ export const entraGroup = {
142
142
  };
143
143
  const group = await request.get(requestOptions);
144
144
  return group.groupTypes.some(type => type === 'Unified');
145
+ },
146
+ /**
147
+ * Retrieve the IDs of groups by their display names. There is no guarantee that the order of the returned IDs will match the order of the specified names.
148
+ * @param names Array of group names.
149
+ * @returns Array of group IDs.
150
+ */
151
+ async getGroupIdsByDisplayNames(names) {
152
+ const groupIds = [];
153
+ for (let i = 0; i < names.length; i += 20) {
154
+ const namesChunk = names.slice(i, i + 20);
155
+ const requestOptions = {
156
+ url: `${graphResource}/v1.0/$batch`,
157
+ headers: {
158
+ accept: 'application/json;odata.metadata=none'
159
+ },
160
+ responseType: 'json',
161
+ data: {
162
+ requests: namesChunk.map((name, index) => ({
163
+ id: index + 1,
164
+ method: 'GET',
165
+ url: `/groups?$filter=displayName eq '${formatting.encodeQueryParameter(name)}'&$select=id`,
166
+ headers: {
167
+ accept: 'application/json;odata.metadata=none'
168
+ }
169
+ }))
170
+ }
171
+ };
172
+ const res = await request.post(requestOptions);
173
+ for (const response of res.responses) {
174
+ if (response.body.value.length === 1) {
175
+ groupIds.push(response.body.value[0].id);
176
+ }
177
+ else if (response.body.value.length > 1) {
178
+ const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', response.body.value);
179
+ const result = await cli.handleMultipleResultsFound(`Multiple groups with the name '${namesChunk[response.id - 1]}' found.`, resultAsKeyValuePair);
180
+ groupIds.push(result.id);
181
+ }
182
+ else {
183
+ throw Error(`The specified group with name '${namesChunk[response.id - 1]}' does not exist.`);
184
+ }
185
+ }
186
+ }
187
+ return groupIds;
145
188
  }
146
189
  };
147
190
  //# sourceMappingURL=entraGroup.js.map
@@ -56,6 +56,25 @@ export const vivaEngage = {
56
56
  throw `The Microsoft Entra group with id '${entraGroupId}' is not associated with any Viva Engage community.`;
57
57
  }
58
58
  return filteredCommunity;
59
+ },
60
+ /**
61
+ * Get the ID of a Viva Engage role by its display name.
62
+ * @param roleName The display name of the role.
63
+ * @returns The ID of the role.
64
+ */
65
+ async getRoleIdByName(roleName) {
66
+ // This endpoint doesn't support filtering by displayName
67
+ const response = await odata.getAllItems('https://graph.microsoft.com/beta/employeeExperience/roles');
68
+ const roles = response.filter(role => role.displayName.toLowerCase() === roleName.toLowerCase());
69
+ if (roles.length === 0) {
70
+ throw new Error(`The specified Viva Engage role '${roleName}' does not exist.`);
71
+ }
72
+ if (roles.length > 1) {
73
+ const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', roles);
74
+ const selectedRole = await cli.handleMultipleResultsFound(`Multiple Viva Engage roles with name '${roleName}' found.`, resultAsKeyValuePair);
75
+ return selectedRole.id;
76
+ }
77
+ return roles[0].id;
59
78
  }
60
79
  };
61
80
  //# sourceMappingURL=vivaEngage.js.map
@@ -0,0 +1,50 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+
3
+ # cli app add
4
+
5
+ Create a new app registration to use for the CLI for Microsoft 365
6
+
7
+ ## Usage
8
+
9
+ ```sh
10
+ m365 cli app add [options]
11
+ ```
12
+
13
+ ## Options
14
+
15
+ ```md definition-list
16
+ `-n, --name [name]`
17
+ : Name of the app registration. Defaults to CLI for M365
18
+
19
+ `-s, --scopes [scopes]`
20
+ : Which scopes should be added? Valid values are: `minimal`, `all`, or a list of scopes. Defaults to `minimal`.
21
+
22
+ `--saveToConfig`
23
+ : Save the app registration info to the CLI config. This way the new app registration will be used as the default app registration to sign in.
24
+ ```
25
+
26
+ <Global />
27
+
28
+ ## Examples
29
+
30
+ Create a new app registration to use for CLI for Microsoft 365
31
+
32
+ ```sh
33
+ m365 cli app add
34
+ ```
35
+
36
+ Create a new app registration with all permission scopes and a custom name
37
+
38
+ ```sh
39
+ m365 cli app add --name "Contoso CLI app" --scopes all
40
+ ```
41
+
42
+ Create a new app registration with self-defined scopes
43
+
44
+ ```sh
45
+ m365 cli app add --scopes "https://graph.microsoft.com/User.Read,https://graph.microsoft.com/Group.Read.All"
46
+ ```
47
+
48
+ ## Response
49
+
50
+ The command won't return a response on success
@@ -23,10 +23,19 @@ m365 entra group member add [options]
23
23
  : The display name of the Microsoft Entra group. Specify `groupId`, `groupDisplayName` or `groupName` but not multiple.
24
24
 
25
25
  `--ids [ids]`
26
- : Microsoft Entra IDs of users. You can also pass a comma-separated list of IDs. Specify either `ids` or `userNames` but not both.
26
+ : (deprecated. Use option `userIds` instead) Microsoft Entra IDs of users. You can also pass a comma-separated list of IDs. Specify either `ids`, `userIds`,`userNames`, `subgroupIds`, or `subgroupNames` but not multiple.
27
+
28
+ `--userIds [userIds]`
29
+ : Microsoft Entra IDs of users. You can also pass a comma-separated list of IDs. Specify either `ids`, `userIds`,`userNames`, `subgroupIds`, or `subgroupNames` but not multiple.
27
30
 
28
31
  `--userNames [userNames]`
29
- : The user principal names of users. You can also pass a comma-separated list of UPNs. Specify either `ids` or `userNames` but not both.
32
+ : The user principal names of users. You can also pass a comma-separated list of UPNs. Specify either `ids`, `userIds`,`userNames`, `subgroupIds`, or `subgroupNames` but not multiple.
33
+
34
+ `--subgroupIds [subgroupIds]`
35
+ : Comma-separated list of Microsoft Entra group IDs to add. Specify either `ids`, `userIds`,`userNames`, `subgroupIds`, or `subgroupNames` but not multiple.
36
+
37
+ `--subgroupNames [subgroupNames]`
38
+ : Comma-separated list of Microsoft Entra group titles to add. Specify either `ids`, `userIds`,`userNames`, `subgroupIds`, or `subgroupNames` but not multiple.
30
39
 
31
40
  `-r, --role <role>`
32
41
  : The role to be assigned to the new users. Valid values: `Owner`, `Member`.
@@ -39,19 +48,19 @@ m365 entra group member add [options]
39
48
  Add a single member specified by ID as a member to a group specified by display name.
40
49
 
41
50
  ```sh
42
- m365 entra group member add --groupDisplayName Developers --ids 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
51
+ m365 entra group member add --groupDisplayName Developers --userIds 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
43
52
  ```
44
53
 
45
54
  Add a single member specified by ID as a member to a group specified by group name.
46
55
 
47
56
  ```sh
48
- m365 entra group member add --groupName Developers --ids 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
57
+ m365 entra group member add --groupName Developers --userIds 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
49
58
  ```
50
59
 
51
60
  Add multiple members specified by ID as members to a group specified by ID.
52
61
 
53
62
  ```sh
54
- m365 entra group member add --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --ids "098b9f52-f48c-4401-819f-29c33794c3f5,f1e06e31-3abf-4746-83c2-1513d71f38b8" --role Member
63
+ m365 entra group member add --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --userIds "098b9f52-f48c-4401-819f-29c33794c3f5,f1e06e31-3abf-4746-83c2-1513d71f38b8" --role Member
55
64
  ```
56
65
 
57
66
  Add a single member specified by UPN as an owner to a group specified by display name.
@@ -72,6 +81,18 @@ Adds multiple members specified by UPN as owners to a group specified by ID.
72
81
  m365 entra group member add --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --userNames "john.doe@contoso.com,adele.vance@contoso.com" --role Owner
73
82
  ```
74
83
 
84
+ Add multiple members (subgroups) specified by ID as members to a group specified by ID.
85
+
86
+ ```sh
87
+ m365 entra group member add --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --subgroupIds "098b9f52-f48c-4401-819f-29c33794c3f5,f1e06e31-3abf-4746-83c2-1513d71f38b8" --role Member
88
+ ```
89
+
90
+ Adds multiple members (subgroups) specified by name as members to a group specified by ID.
91
+
92
+ ```sh
93
+ m365 entra group member add --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --subgroupNames "Developers,Human Resources" --role Member
94
+ ```
95
+
75
96
  ## Response
76
97
 
77
98
  The command won't return a response on success.
@@ -23,7 +23,10 @@ m365 entra group member set [options]
23
23
  : The display name of the Microsoft Entra group. Specify `groupId`, `groupDisplayName` or `groupName` but not multiple.
24
24
 
25
25
  `--ids [ids]`
26
- : Comma-separated list of user IDs. Specify either `ids` or `userNames` but not both.
26
+ : (deprecated. Use option `userIds` instead) Comma-separated list of user IDs. Specify either `ids`, `userIds` or `userNames` but not multiple.
27
+
28
+ `--userIds [userIds]`
29
+ : Comma-separated list of user IDs. Specify either `ids`, `userIds` or `userNames` but not multiple.
27
30
 
28
31
  `--userNames [userNames]`
29
32
  : The user principal names of users. You can also pass a comma-separated list of UPNs. Specify either `ids` or `userNames` but not both.
@@ -39,19 +42,19 @@ m365 entra group member set [options]
39
42
  Update a single member specified by ID to a member of a group specified by display name
40
43
 
41
44
  ```sh
42
- m365 entra group member set --groupDisplayName Developers --ids 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
45
+ m365 entra group member set --groupDisplayName Developers --userIds 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
43
46
  ```
44
47
 
45
48
  Update a single member specified by ID to a member of a group specified by group name
46
49
 
47
50
  ```sh
48
- m365 entra group member set --groupName Developers --ids 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
51
+ m365 entra group member set --groupName Developers --userIds 098b9f52-f48c-4401-819f-29c33794c3f5 --role Member
49
52
  ```
50
53
 
51
54
  Update multiple members specified by ID to members of a group specified by ID
52
55
 
53
56
  ```sh
54
- m365 entra group member set --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --ids "098b9f52-f48c-4401-819f-29c33794c3f5,f1e06e31-3abf-4746-83c2-1513d71f38b8" --role Member
57
+ m365 entra group member set --groupId a03c0c35-ef9a-419b-8cab-f89e0a8d2d2a --userIds "098b9f52-f48c-4401-819f-29c33794c3f5,f1e06e31-3abf-4746-83c2-1513d71f38b8" --role Member
55
58
  ```
56
59
 
57
60
  Update a single member specified by UPN to an owner of a group specified by display name
@@ -0,0 +1,53 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+
3
+ # spe container recyclebinitem restore
4
+
5
+ Restores a deleted container
6
+
7
+ ## Usage
8
+
9
+ ```sh
10
+ m365 spe container recyclebinitem restore [options]
11
+ ```
12
+
13
+ ## Options
14
+
15
+ ```md definition-list
16
+ `--id [id]`
17
+ : The container id. Specify either `id` or `name` but not both.
18
+
19
+ `--name [name]`
20
+ : The display name of the Container. Specify either `id` or `name` but not both.
21
+
22
+ `--containerTypeId [containerTypeId]`
23
+ : The container type ID of the container instance. Use either `containerTypeId` or `containerTypeName` but not both.
24
+
25
+ `--containerTypeName [containerTypeName]`
26
+ : The container type name of the container instance. Use either `containerTypeId` or `containerTypeName` but not both.
27
+ ```
28
+
29
+ <Global />
30
+
31
+ ## Examples
32
+
33
+ Restore a deleted container by ID.
34
+
35
+ ```sh
36
+ m365 spe container recyclebinitem restore --id "b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z"
37
+ ```
38
+
39
+ Restore a deleted container by using its name and container type ID.
40
+
41
+ ```sh
42
+ m365 spe container recyclebinitem restore --containerTypeId "91710488-5756-407f-9046-fbe5f0b4de73" --name "Invoices"
43
+ ```
44
+
45
+ Restore a deleted container by using its name and container type name.
46
+
47
+ ```sh
48
+ m365 spe container recyclebinitem restore --containerTypeName "My container type name" --name "Invoices"
49
+ ```
50
+
51
+ ## Response
52
+
53
+ The command won't return a response on success.
@@ -53,6 +53,7 @@ m365 spo file version get --webUrl https://contoso.sharepoint.com --label "1.0"
53
53
  {
54
54
  "CheckInComment": "",
55
55
  "Created": "2022-10-30T12:03:06Z",
56
+ "ExpirationDate": "2026-01-31T08:23:43.0000000Z",
56
57
  "ID": 512,
57
58
  "IsCurrentVersion": false,
58
59
  "Length": "18898",
@@ -68,6 +69,7 @@ m365 spo file version get --webUrl https://contoso.sharepoint.com --label "1.0"
68
69
  ```text
69
70
  CheckInComment :
70
71
  Created : 2022-10-30T12:03:06Z
72
+ ExpirationDate : 2026-01-31T08:23:43.0000000Z
71
73
  ID : 512
72
74
  IsCurrentVersion: false
73
75
  Length : 18898
@@ -80,8 +82,8 @@ m365 spo file version get --webUrl https://contoso.sharepoint.com --label "1.0"
80
82
  <TabItem value="CSV">
81
83
 
82
84
  ```csv
83
- CheckInComment,Created,ID,IsCurrentVersion,Length,Size,Url,VersionLabel
84
- ,2022-10-30T12:03:06Z,512,,18898,18898,_vti_history/512/Shared Documents/Document.docx,1.0
85
+ CheckInComment,Created,ExpirationDate,ID,IsCurrentVersion,Length,Size,Url,VersionLabel
86
+ ,2022-10-30T12:03:06Z,2026-01-31T08:23:43.0000000Z,512,0,18898,18898,_vti_history/512/Shared Documents/Document.docx,1.0
85
87
  ```
86
88
 
87
89
  </TabItem>
@@ -98,6 +100,7 @@ m365 spo file version get --webUrl https://contoso.sharepoint.com --label "1.0"
98
100
  ---------|-------
99
101
  CheckInComment |
100
102
  Created | 2022-10-30T12:03:06Z
103
+ ExpirationDate | 2026-01-31T08:23:43.0000000Z
101
104
  ID | 512
102
105
  IsCurrentVersion | false
103
106
  Length | 18898
@@ -57,6 +57,7 @@ m365 spo file version list --webUrl https://contoso.sharepoint.com/sites/project
57
57
  {
58
58
  "CheckInComment": "",
59
59
  "Created": "2022-10-30T12:03:06Z",
60
+ "ExpirationDate": "2026-01-31T08:23:43.0000000Z",
60
61
  "ID": 512,
61
62
  "IsCurrentVersion": false,
62
63
  "Length": "18898",
@@ -71,17 +72,17 @@ m365 spo file version list --webUrl https://contoso.sharepoint.com/sites/project
71
72
  <TabItem value="Text">
72
73
 
73
74
  ```text
74
- Created ID IsCurrentVersion VersionLabel
75
- -------------------- ---- ---------------- ------------
76
- 2022-10-30T12:03:06Z 512 false 1.0
75
+ Created ID IsCurrentVersion VersionLabel ExpirationDate
76
+ -------------------- ---- ---------------- ------------ ----------------------------
77
+ 2022-10-30T12:03:06Z 512 false 1.0 2026-01-31T08:23:43.0000000Z
77
78
  ```
78
79
 
79
80
  </TabItem>
80
81
  <TabItem value="CSV">
81
82
 
82
83
  ```csv
83
- Created,ID,IsCurrentVersion,VersionLabel
84
- 2022-10-30T12:03:06Z,512,false,1.0
84
+ CheckInComment,Created,ExpirationDate,ID,IsCurrentVersion,Length,Size,Url,VersionLabel
85
+ ,2022-10-30T12:03:06Z,2026-01-31T08:23:43.0000000Z,512,0,18898,18898,_vti_history/512/Shared Documents/Document.docx,1.0
85
86
  ```
86
87
 
87
88
  </TabItem>
@@ -98,6 +99,7 @@ m365 spo file version list --webUrl https://contoso.sharepoint.com/sites/project
98
99
  ---------|-------
99
100
  CheckInComment |
100
101
  Created | 2022-10-30T12:03:06Z
102
+ ExpirationDate | 2026-01-31T08:23:43.0000000Z
101
103
  ID | 512
102
104
  IsCurrentVersion | false
103
105
  Length | 18898
@@ -14,6 +14,11 @@ m365 spo site appcatalog list [options]
14
14
 
15
15
  ## Options
16
16
 
17
+ ```md definition-list
18
+ `--excludeDeletedSites [excludeDeletedSites]`
19
+ : Exclude site collections that are no longer active
20
+ ```
21
+
17
22
  <Global />
18
23
 
19
24
  ## Remarks
@@ -32,6 +37,12 @@ List all site collection app catalogs within the tenant
32
37
  m365 spo site appcatalog list
33
38
  ```
34
39
 
40
+ List all site collection app catalogs within the tenant and exclude deleted sites.
41
+
42
+ ```sh
43
+ m365 spo site appcatalog list --excludeDeletedSites
44
+ ```
45
+
35
46
  ## Response
36
47
 
37
48
  <Tabs>
@@ -34,7 +34,7 @@ To use this command, you must be a Global or SharePoint administrator.
34
34
 
35
35
  :::warning
36
36
 
37
- If a site remains archived for more than **seven days**, the reactivation fee will be calculated based on the entire storage capacity of the site.
37
+ If a site has been archived for more than **seven days**, reactivating it triggers a 120-day cooldown period during which you can't archive the site again.
38
38
 
39
39
  :::
40
40
 
@@ -0,0 +1,173 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+ import Tabs from '@theme/Tabs';
3
+ import TabItem from '@theme/TabItem';
4
+
5
+ # teams callrecord list
6
+
7
+ Lists all Teams calls within the tenant
8
+
9
+ ## Usage
10
+
11
+ ```sh
12
+ m365 teams callrecord list [options]
13
+ ```
14
+
15
+ ## Options
16
+
17
+ ```md definition-list
18
+ `--userId [userId]`
19
+ : Filters call records to only include those where the user participated. Use the Entra user ID of the user. Specify either `userId` or `userName` but not both.
20
+
21
+ `--userName [userName]`
22
+ : Filters call records to only include those where the user participated. Use the UPN of the user. Specify either `userId` or `userName` but not both.
23
+
24
+ `--startDateTime [startDateTime]`
25
+ : Only show calls that started after this time. Defaults to 30 days ago.
26
+
27
+ `--endDateTime [endDateTime]`
28
+ : Only show calls that started before this time (exclusive). Defaults to now.
29
+ ```
30
+
31
+ <Global />
32
+
33
+ ## Remarks
34
+
35
+ :::info
36
+
37
+ This command only supports application permissions. Use scope `CallRecords.Read.All`.
38
+
39
+ :::
40
+
41
+ :::note
42
+
43
+ It is only possible to retrieve call records from the past 30 days.
44
+
45
+ :::
46
+
47
+ ## Examples
48
+
49
+ Get all call records from the past 30 days.
50
+
51
+ ```sh
52
+ m365 teams callrecord list
53
+ ```
54
+
55
+ Get all call records where a specific user participated in.
56
+
57
+ ```sh
58
+ m365 teams callrecord list --userName "john.doe@contoso.com"
59
+ ```
60
+
61
+ Get all call records that started within a specific timeframe.
62
+
63
+ ```sh
64
+ m365 teams callrecord list --startDateTime "2025-05-1T00:00:00Z" --endDateTime "2025-05-14T00:00:00Z"
65
+ ```
66
+
67
+ ## Response
68
+
69
+ <Tabs>
70
+ <TabItem value="JSON">
71
+
72
+ ```json
73
+ [
74
+ {
75
+ "id": "145ae53b-7781-47c4-a5f7-b0e043012624",
76
+ "version": 1,
77
+ "type": "peerToPeer",
78
+ "modalities": [
79
+ "audio"
80
+ ],
81
+ "lastModifiedDateTime": "2025-05-29T17:41:33.5066667Z",
82
+ "startDateTime": "2025-05-29T17:27:20.428943Z",
83
+ "endDateTime": "2025-05-29T17:37:20.428943Z",
84
+ "joinWebUrl": "",
85
+ "organizer": {
86
+ "acsUser": null,
87
+ "spoolUser": null,
88
+ "phone": null,
89
+ "guest": null,
90
+ "encrypted": null,
91
+ "onPremises": null,
92
+ "acsApplicationInstance": null,
93
+ "spoolApplicationInstance": null,
94
+ "applicationInstance": null,
95
+ "application": null,
96
+ "device": null,
97
+ "user": {
98
+ "id": "b51efc8b-0adf-486c-ba54-b239ffa7c1f9",
99
+ "displayName": "John Doe",
100
+ "tenantId": "de5e90f2-9a07-4ed1-b903-f801afa7b1fd"
101
+ }
102
+ },
103
+ "participants": [],
104
+ "organizer_v2": {
105
+ "id": "b51efc8b-0adf-486c-ba54-b239ffa7c1f9",
106
+ "identity": {
107
+ "endpointType": null,
108
+ "acsUser": null,
109
+ "spoolUser": null,
110
+ "phone": null,
111
+ "guest": null,
112
+ "encrypted": null,
113
+ "onPremises": null,
114
+ "acsApplicationInstance": null,
115
+ "spoolApplicationInstance": null,
116
+ "applicationInstance": null,
117
+ "application": null,
118
+ "device": null,
119
+ "azureCommunicationServicesUser": null,
120
+ "assertedIdentity": null,
121
+ "user": {
122
+ "id": "b51efc8b-0adf-486c-ba54-b239ffa7c1f9",
123
+ "displayName": "John Doe",
124
+ "tenantId": "de5e90f2-9a07-4ed1-b903-f801afa7b1fd",
125
+ "userPrincipalName": "john.doe@contoso.com"
126
+ }
127
+ },
128
+ "administrativeUnitInfos": []
129
+ }
130
+ }
131
+ ]
132
+ ```
133
+
134
+ </TabItem>
135
+ <TabItem value="Text">
136
+
137
+ ```text
138
+ id type startDateTime endDateTime
139
+ ------------------------------------ ---------- ---------------------------- ----------------------------
140
+ 145ae53b-7781-47c4-a5f7-b0e043012624 peerToPeer 2025-05-29T17:27:20.428943Z 2025-05-29T17:37:20.428943Z
141
+ ```
142
+
143
+ </TabItem>
144
+ <TabItem value="CSV">
145
+
146
+ ```csv
147
+ id,version,type,lastModifiedDateTime,startDateTime,endDateTime,joinWebUrl
148
+ 145ae53b-7781-47c4-a5f7-b0e043012624,1,peerToPeer,2025-05-29T17:41:33.5066667Z,2025-05-29T17:27:20.428943Z,2025-05-29T17:37:20.428943Z,
149
+ ```
150
+
151
+ </TabItem>
152
+ <TabItem value="Markdown">
153
+
154
+ ```md
155
+ # teams callrecord list
156
+
157
+ Date: 03/06/2025
158
+
159
+ ## 145ae53b-7781-47c4-a5f7-b0e043012624
160
+
161
+ Property | Value
162
+ ---------|-------
163
+ id | 145ae53b-7781-47c4-a5f7-b0e043012624
164
+ version | 1
165
+ type | peerToPeer
166
+ lastModifiedDateTime | 2025-05-29T17:41:33.5066667Z
167
+ startDateTime | 2025-05-29T17:27:20.428943Z
168
+ endDateTime | 2025-05-29T17:37:20.428943Z
169
+ joinWebUrl |
170
+ ```
171
+
172
+ </TabItem>
173
+ </Tabs>
@@ -0,0 +1,102 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+ import Tabs from '@theme/Tabs';
3
+ import TabItem from '@theme/TabItem';
4
+
5
+ # viva engage role list
6
+
7
+ Lists all Viva Engage roles
8
+
9
+ ## Usage
10
+
11
+ ```sh
12
+ m365 viva engage role list [options]
13
+ ```
14
+
15
+ ## Options
16
+
17
+ <Global />
18
+
19
+ ## Remarks
20
+
21
+ :::warning
22
+
23
+ This command is based on an API that is currently in preview and is subject to change once the API reaches general availability.
24
+
25
+ :::
26
+
27
+ ## Permissions
28
+
29
+ <Tabs>
30
+ <TabItem value="Delegated">
31
+
32
+ | Resource | Permissions |
33
+ |-----------------|-------------------------|
34
+ | Microsoft Graph | EngagementRole.Read.All |
35
+
36
+ </TabItem>
37
+ <TabItem value="Application">
38
+
39
+ | Resource | Permissions |
40
+ |-----------------|-------------------------|
41
+ | Microsoft Graph | EngagementRole.Read.All |
42
+
43
+ </TabItem>
44
+ </Tabs>
45
+
46
+ ## Examples
47
+
48
+ List all Viva Engage roles
49
+
50
+ ```sh
51
+ m365 viva engage role list
52
+ ```
53
+
54
+ ## Response
55
+
56
+ <Tabs>
57
+ <TabItem value="JSON">
58
+
59
+ ```json
60
+ [
61
+ {
62
+ "id": "ec759127-089f-4f91-8dfc-03a30b51cb38",
63
+ "displayName": "Network Admin"
64
+ }
65
+ ]
66
+ ```
67
+
68
+ </TabItem>
69
+ <TabItem value="Text">
70
+
71
+ ```text
72
+ id displayName
73
+ ------------------------------------ -------------
74
+ ec759127-089f-4f91-8dfc-03a30b51cb38 Network Admin
75
+ ```
76
+
77
+ </TabItem>
78
+ <TabItem value="CSV">
79
+
80
+ ```csv
81
+ id,displayName
82
+ ec759127-089f-4f91-8dfc-03a30b51cb38,Network Admin
83
+ ```
84
+
85
+ </TabItem>
86
+ <TabItem value="Markdown">
87
+
88
+ ```md
89
+ # viva engage role list
90
+
91
+ Date: 7/11/2025
92
+
93
+ ## Network Admin (ec759127-089f-4f91-8dfc-03a30b51cb38)
94
+
95
+ Property | Value
96
+ ---------|-------
97
+ id | ec759127-089f-4f91-8dfc-03a30b51cb38
98
+ displayName | Network Admin
99
+ ```
100
+
101
+ </TabItem>
102
+ </Tabs>