@pnp/cli-microsoft365 10.10.0 → 10.11.0-beta.b1eeb91

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 (95) 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/m365/base/GraphApplicationCommand.js +17 -0
  6. package/dist/m365/base/{DelegatedGraphCommand.js → GraphDelegatedCommand.js} +4 -4
  7. package/dist/m365/base/PowerAppsCommand.js +1 -1
  8. package/dist/m365/base/PowerAutomateCommand.js +1 -1
  9. package/dist/m365/base/PowerBICommand.js +1 -1
  10. package/dist/m365/base/PowerPlatformCommand.js +1 -1
  11. package/dist/m365/base/VivaEngageCommand.js +1 -1
  12. package/dist/m365/cli/commands/app/app-add.js +95 -0
  13. package/dist/m365/cli/commands.js +1 -0
  14. package/dist/m365/entra/commands/app/app-get.js +11 -52
  15. package/dist/m365/entra/commands/app/app-permission-add.js +19 -30
  16. package/dist/m365/entra/commands/app/app-permission-list.js +2 -19
  17. package/dist/m365/entra/commands/app/app-permission-remove.js +22 -31
  18. package/dist/m365/entra/commands/app/app-remove.js +2 -18
  19. package/dist/m365/entra/commands/app/app-role-add.js +10 -43
  20. package/dist/m365/entra/commands/app/app-role-list.js +2 -20
  21. package/dist/m365/entra/commands/app/app-role-remove.js +9 -40
  22. package/dist/m365/entra/commands/app/app-set.js +2 -19
  23. package/dist/m365/outlook/commands/message/message-move.js +1 -1
  24. package/dist/m365/pp/commands/managementapp/managementapp-add.js +7 -21
  25. package/dist/m365/spe/commands/container/container-recyclebinitem-restore.js +96 -0
  26. package/dist/m365/spe/commands.js +1 -0
  27. package/dist/m365/spfx/commands/project/base-project-command.js +1 -0
  28. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.22.0-beta.1.js +19 -0
  29. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  30. package/dist/m365/spfx/commands/project/project-model/SassJson.js +2 -0
  31. package/dist/m365/spfx/commands/project/project-model/index.js +1 -0
  32. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002001_DEVDEP_microsoft_sp_build_web.js +2 -2
  33. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002004_DEVDEP_gulp.js +2 -2
  34. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002007_DEVDEP_ajv.js +2 -2
  35. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js +2 -2
  36. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002030_DEVDEP_microsoft_spfx_web_build_rig.js +10 -0
  37. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002031_DEVDEP_rushstack_heft.js +10 -0
  38. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002032_DEVDEP_typescript_eslint_parser.js +10 -0
  39. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002033_DEVDEP_jest_junit.js +10 -0
  40. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010011_YORC_useGulp.js +40 -0
  41. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015010_FILE_gulpfile_js.js +10 -0
  42. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015011_FILE_tsconfig_json.js +10 -0
  43. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015012_FILE_config_heft_json.js +10 -0
  44. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015013_FILE_config_jest_config_json.js +10 -0
  45. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015014_FILE_config_rig_json.js +10 -0
  46. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015015_FILE_config_typescript_json.js +10 -0
  47. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021004_PKG_scripts_build.js +45 -0
  48. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021005_PKG_scripts_test.js +45 -0
  49. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021006_PKG_scripts_clean.js +45 -0
  50. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021007_PKG_scripts_deploy.js +45 -0
  51. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021008_PKG_scripts_start.js +45 -0
  52. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021009_PKG_scripts_build_watch.js +45 -0
  53. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021010_PKG_scripts_package_solution.js +45 -0
  54. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021011_PKG_scripts_deploy_azure_storage.js +45 -0
  55. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021012_PKG_scripts_eject_webpack.js +45 -0
  56. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021013_PKG_overrides_rushstack_heft.js +45 -0
  57. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023003_GITIGNORE_libdts.js +36 -0
  58. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023004_GITIGNORE_libcommonjs.js +36 -0
  59. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023005_GITIGNORE_libesm.js +36 -0
  60. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN023006_GITIGNORE_jestoutput.js +36 -0
  61. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN026001_CFG_SASS_schema.js +40 -0
  62. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN026002_CFG_SASS_extends.js +40 -0
  63. package/dist/m365/spfx/commands/project/project-upgrade/rules/FileAddRemoveRule.js +7 -0
  64. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.22.0-beta.1.js +241 -0
  65. package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
  66. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  67. package/dist/m365/spo/commands/page/Page.js +10 -3
  68. package/dist/m365/spo/commands/page/page-section-list.js +5 -1
  69. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +13 -7
  70. package/dist/m365/spo/commands/site/site-appcatalog-list.js +38 -2
  71. package/dist/m365/spo/commands/tenant/tenant-site-unarchive.js +1 -1
  72. package/dist/m365/teams/commands/callrecord/callrecord-list.js +100 -0
  73. package/dist/m365/teams/commands/chat/chat-message-send.js +2 -2
  74. package/dist/m365/teams/commands/message/message-remove.js +2 -2
  75. package/dist/m365/teams/commands/message/message-restore.js +2 -2
  76. package/dist/m365/teams/commands.js +1 -0
  77. package/dist/m365/todo/commands/list/list-add.js +2 -2
  78. package/dist/m365/todo/commands/list/list-get.js +2 -2
  79. package/dist/m365/todo/commands/list/list-list.js +2 -2
  80. package/dist/m365/todo/commands/list/list-remove.js +2 -2
  81. package/dist/m365/todo/commands/list/list-set.js +2 -2
  82. package/dist/m365/todo/commands/task/task-add.js +2 -2
  83. package/dist/m365/todo/commands/task/task-get.js +2 -2
  84. package/dist/m365/todo/commands/task/task-list.js +2 -2
  85. package/dist/m365/todo/commands/task/task-remove.js +2 -2
  86. package/dist/m365/todo/commands/task/task-set.js +2 -2
  87. package/dist/utils/accessToken.js +9 -5
  88. package/dist/utils/entraApp.js +15 -0
  89. package/docs/docs/cmd/cli/app/app-add.mdx +50 -0
  90. package/docs/docs/cmd/spe/container/container-recyclebinitem-restore.mdx +53 -0
  91. package/docs/docs/cmd/spo/site/site-appcatalog-list.mdx +11 -0
  92. package/docs/docs/cmd/spo/tenant/tenant-site-unarchive.mdx +1 -1
  93. package/docs/docs/cmd/teams/callrecord/callrecord-list.mdx +173 -0
  94. package/npm-shrinkwrap.json +293 -765
  95. package/package.json +18 -18
@@ -6,9 +6,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
6
6
  var _TodoListGetCommand_instances, _TodoListGetCommand_initTelemetry, _TodoListGetCommand_initOptions, _TodoListGetCommand_initOptionSets;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
9
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
10
10
  import commands from '../../commands.js';
11
- class TodoListGetCommand extends DelegatedGraphCommand {
11
+ class TodoListGetCommand extends GraphDelegatedCommand {
12
12
  get name() {
13
13
  return commands.LIST_GET;
14
14
  }
@@ -1,7 +1,7 @@
1
1
  import { odata } from '../../../../utils/odata.js';
2
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
2
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
3
3
  import commands from '../../commands.js';
4
- class TodoListListCommand extends DelegatedGraphCommand {
4
+ class TodoListListCommand extends GraphDelegatedCommand {
5
5
  get name() {
6
6
  return commands.LIST_LIST;
7
7
  }
@@ -7,9 +7,9 @@ var _TodoListRemoveCommand_instances, _TodoListRemoveCommand_initTelemetry, _Tod
7
7
  import { cli } from '../../../../cli/cli.js';
8
8
  import request from '../../../../request.js';
9
9
  import { formatting } from '../../../../utils/formatting.js';
10
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
10
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
11
11
  import commands from '../../commands.js';
12
- class TodoListRemoveCommand extends DelegatedGraphCommand {
12
+ class TodoListRemoveCommand extends GraphDelegatedCommand {
13
13
  get name() {
14
14
  return commands.LIST_REMOVE;
15
15
  }
@@ -6,9 +6,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
6
6
  var _TodoListSetCommand_instances, _TodoListSetCommand_initTelemetry, _TodoListSetCommand_initOptions, _TodoListSetCommand_initOptionSets;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
9
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
10
10
  import commands from '../../commands.js';
11
- class TodoListSetCommand extends DelegatedGraphCommand {
11
+ class TodoListSetCommand extends GraphDelegatedCommand {
12
12
  get name() {
13
13
  return commands.LIST_SET;
14
14
  }
@@ -7,9 +7,9 @@ var _TodoTaskAddCommand_instances, _a, _TodoTaskAddCommand_initTelemetry, _TodoT
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
9
  import { validation } from '../../../../utils/validation.js';
10
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
10
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
11
11
  import commands from '../../commands.js';
12
- class TodoTaskAddCommand extends DelegatedGraphCommand {
12
+ class TodoTaskAddCommand extends GraphDelegatedCommand {
13
13
  get name() {
14
14
  return commands.TASK_ADD;
15
15
  }
@@ -7,9 +7,9 @@ var _TodoTaskGetCommand_instances, _TodoTaskGetCommand_initTelemetry, _TodoTaskG
7
7
  import { cli } from '../../../../cli/cli.js';
8
8
  import request from '../../../../request.js';
9
9
  import { formatting } from '../../../../utils/formatting.js';
10
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
10
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
11
11
  import commands from '../../commands.js';
12
- class TodoTaskGetCommand extends DelegatedGraphCommand {
12
+ class TodoTaskGetCommand extends GraphDelegatedCommand {
13
13
  get name() {
14
14
  return commands.TASK_GET;
15
15
  }
@@ -8,9 +8,9 @@ import { cli } from '../../../../cli/cli.js';
8
8
  import request from '../../../../request.js';
9
9
  import { formatting } from '../../../../utils/formatting.js';
10
10
  import { odata } from '../../../../utils/odata.js';
11
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
11
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
12
12
  import commands from '../../commands.js';
13
- class TodoTaskListCommand extends DelegatedGraphCommand {
13
+ class TodoTaskListCommand extends GraphDelegatedCommand {
14
14
  get name() {
15
15
  return commands.TASK_LIST;
16
16
  }
@@ -7,9 +7,9 @@ var _TodoTaskRemoveCommand_instances, _TodoTaskRemoveCommand_initTelemetry, _Tod
7
7
  import { cli } from '../../../../cli/cli.js';
8
8
  import request from '../../../../request.js';
9
9
  import { formatting } from '../../../../utils/formatting.js';
10
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
10
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
11
11
  import commands from '../../commands.js';
12
- class TodoTaskRemoveCommand extends DelegatedGraphCommand {
12
+ class TodoTaskRemoveCommand extends GraphDelegatedCommand {
13
13
  get name() {
14
14
  return commands.TASK_REMOVE;
15
15
  }
@@ -7,9 +7,9 @@ var _TodoTaskSetCommand_instances, _TodoTaskSetCommand_initTelemetry, _TodoTaskS
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
9
  import { validation } from '../../../../utils/validation.js';
10
- import DelegatedGraphCommand from '../../../base/DelegatedGraphCommand.js';
10
+ import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
11
11
  import commands from '../../commands.js';
12
- class TodoTaskSetCommand extends DelegatedGraphCommand {
12
+ class TodoTaskSetCommand extends GraphDelegatedCommand {
13
13
  get name() {
14
14
  return commands.TASK_SET;
15
15
  }
@@ -84,17 +84,21 @@ export const accessToken = {
84
84
  return { header, payload };
85
85
  },
86
86
  /**
87
- * Asserts the presence of a delegated access token.
87
+ * Asserts the presence of a delegated or application-only access token.
88
88
  * @throws {CommandError} Will throw an error if the access token is not available.
89
- * @throws {CommandError} Will throw an error if the access token is an application-only access token.
89
+ * @throws {CommandError} Will throw an error if the access token type is not correct.
90
90
  */
91
- assertDelegatedAccessToken() {
91
+ assertAccessTokenType(type) {
92
92
  const accessToken = auth?.connection?.accessTokens?.[auth.defaultResource]?.accessToken;
93
93
  if (!accessToken) {
94
94
  throw new CommandError('No access token found.');
95
95
  }
96
- if (this.isAppOnlyAccessToken(accessToken)) {
97
- throw new CommandError('This command does not support application-only permissions.');
96
+ const isAppAccessToken = this.isAppOnlyAccessToken(accessToken);
97
+ if (type === 'delegated' && isAppAccessToken) {
98
+ throw new CommandError('This command requires delegated permissions.');
99
+ }
100
+ if (type === 'application' && !isAppAccessToken) {
101
+ throw new CommandError('This command requires application-only permissions.');
98
102
  }
99
103
  }
100
104
  };
@@ -308,6 +308,21 @@ export const entraApp = {
308
308
  return await cli.handleMultipleResultsFound(`Multiple apps with name '${appName}' found in Microsoft Entra ID.`, resultAsKeyValuePair);
309
309
  }
310
310
  return apps[0];
311
+ },
312
+ async getAppRegistrationByObjectId(objectId, properties) {
313
+ let url = `https://graph.microsoft.com/v1.0/applications/${objectId}`;
314
+ if (properties) {
315
+ url += `?$select=${properties.join(',')}`;
316
+ }
317
+ const requestOptions = {
318
+ url: url,
319
+ headers: {
320
+ accept: 'application/json;odata.metadata=none'
321
+ },
322
+ responseType: 'json'
323
+ };
324
+ const app = await request.get(requestOptions);
325
+ return app;
311
326
  }
312
327
  };
313
328
  //# sourceMappingURL=entraApp.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
@@ -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.
@@ -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>