@pnp/cli-microsoft365 6.3.0-beta.c3dc921 → 6.3.0-beta.e46ffee

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 (51) hide show
  1. package/dist/Auth.js +0 -18
  2. package/dist/m365/file/commands/convert/convert-pdf.js +7 -6
  3. package/dist/m365/flow/commands/run/run-list.js +55 -3
  4. package/dist/m365/onenote/commands/notebook/notebook-list.js +2 -16
  5. package/dist/m365/onenote/commands/page/page-list.js +2 -16
  6. package/dist/m365/outlook/commands/mail/mail-send.js +3 -2
  7. package/dist/m365/outlook/commands/message/message-get.js +4 -3
  8. package/dist/m365/planner/commands/plan/plan-add.js +20 -6
  9. package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
  10. package/dist/m365/planner/commands/roster/roster-add.js +47 -0
  11. package/dist/m365/planner/commands/roster/roster-remove.js +88 -0
  12. package/dist/m365/planner/commands.js +2 -0
  13. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +70 -0
  14. package/dist/m365/purview/commands.js +1 -0
  15. package/dist/m365/spfx/commands/project/WebApiPermissionRequests.js +3 -0
  16. package/dist/m365/spfx/commands/project/project-permissions-grant.js +81 -0
  17. package/dist/m365/spfx/commands.js +3 -2
  18. package/dist/m365/spo/commands/navigation/navigation-node-add.js +17 -3
  19. package/dist/m365/spo/commands/navigation/navigation-node-list.js +4 -7
  20. package/dist/m365/spo/commands/navigation/navigation-node-set.js +118 -0
  21. package/dist/m365/spo/commands/site/site-apppermission-add.js +2 -14
  22. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -14
  23. package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -14
  24. package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -14
  25. package/dist/m365/spo/commands/site/site-apppermission-set.js +2 -14
  26. package/dist/m365/spo/commands/web/web-set.js +11 -4
  27. package/dist/m365/spo/commands.js +1 -0
  28. package/dist/m365/teams/commands/chat/chat-list.js +4 -4
  29. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +5 -5
  30. package/dist/m365/teams/commands/meeting/meeting-get.js +5 -5
  31. package/dist/m365/teams/commands/meeting/meeting-list.js +4 -3
  32. package/dist/utils/accessToken.js +1 -1
  33. package/dist/utils/planner.js +4 -4
  34. package/dist/utils/spo.js +27 -0
  35. package/docs/docs/cmd/aad/app/app-list.md +3 -0
  36. package/docs/docs/cmd/aad/user/user-set.md +1 -1
  37. package/docs/docs/cmd/flow/run/run-list.md +21 -0
  38. package/docs/docs/cmd/planner/plan/plan-add.md +17 -6
  39. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  40. package/docs/docs/cmd/planner/roster/roster-add.md +60 -0
  41. package/docs/docs/cmd/planner/roster/roster-remove.md +48 -0
  42. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +100 -0
  43. package/docs/docs/cmd/spfx/project/project-permissions-grant.md +65 -0
  44. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +2 -2
  45. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +2 -2
  46. package/docs/docs/cmd/spo/navigation/navigation-node-add.md +18 -3
  47. package/docs/docs/cmd/spo/navigation/navigation-node-list.md +30 -0
  48. package/docs/docs/cmd/spo/navigation/navigation-node-remove.md +1 -1
  49. package/docs/docs/cmd/spo/navigation/navigation-node-set.md +59 -0
  50. package/docs/docs/cmd/spo/web/web-set.md +9 -0
  51. package/package.json +1 -1
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.accessToken = void 0;
4
4
  exports.accessToken = {
5
5
  isAppOnlyAccessToken(accessToken) {
6
- let isAppOnlyAccessToken = false;
6
+ let isAppOnlyAccessToken;
7
7
  if (!accessToken || accessToken.length === 0) {
8
8
  return isAppOnlyAccessToken;
9
9
  }
@@ -41,17 +41,17 @@ exports.planner = {
41
41
  * Get all Planner plans for a specific group.
42
42
  * @param groupId Group ID.
43
43
  */
44
- getPlansByGroupId(groupId) {
45
- return odata_1.odata.getAllItems(`${graphResource}/v1.0/groups/${groupId}/planner/plans`, 'none');
44
+ getPlansByGroupId(groupId, metadata = 'none') {
45
+ return odata_1.odata.getAllItems(`${graphResource}/v1.0/groups/${groupId}/planner/plans`, metadata);
46
46
  },
47
47
  /**
48
48
  * Get Planner plan by title in a specific group.
49
49
  * @param title Title of the Planner plan. Case insensitive.
50
50
  * @param groupId Owner group ID .
51
51
  */
52
- getPlanByTitle(title, groupId) {
52
+ getPlanByTitle(title, groupId, metadata = 'none') {
53
53
  return __awaiter(this, void 0, void 0, function* () {
54
- const plans = yield this.getPlansByGroupId(groupId);
54
+ const plans = yield this.getPlansByGroupId(groupId, metadata);
55
55
  const filteredPlans = plans.filter(p => p.title && p.title.toLowerCase() === title.toLowerCase());
56
56
  if (!filteredPlans.length) {
57
57
  throw Error(`The specified plan '${title}' does not exist.`);
package/dist/utils/spo.js CHANGED
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.spo = void 0;
4
13
  const url = require("url");
@@ -237,6 +246,24 @@ exports.spo = {
237
246
  });
238
247
  });
239
248
  },
249
+ /**
250
+ * Returns the Graph id of a site
251
+ * @param webUrl web url e.g. https://contoso.sharepoint.com/sites/site1
252
+ */
253
+ getSpoGraphSiteId(webUrl) {
254
+ return __awaiter(this, void 0, void 0, function* () {
255
+ const url = new URL(webUrl);
256
+ const requestOptions = {
257
+ url: `https://graph.microsoft.com/v1.0/sites/${url.hostname}:${url.pathname}?$select=id`,
258
+ headers: {
259
+ 'accept': 'application/json;odata.metadata=none'
260
+ },
261
+ responseType: 'json'
262
+ };
263
+ const result = yield request_1.default.get(requestOptions);
264
+ return result.id;
265
+ });
266
+ },
240
267
  /**
241
268
  * Ensures the folder path exists
242
269
  * @param webFullUrl web full url e.g. https://contoso.sharepoint.com/sites/site1
@@ -23,6 +23,7 @@ m365 aad app list
23
23
  ## Response
24
24
 
25
25
  === "JSON"
26
+
26
27
  ```json
27
28
  [
28
29
  {
@@ -136,6 +137,7 @@ m365 aad app list
136
137
  ```
137
138
 
138
139
  === "Text"
140
+
139
141
  ```text
140
142
  appId id displayName signInAudience
141
143
  ------------------------------------ ------------------------------------ ----------------------------------------------------------------------- ----------------------------------
@@ -143,6 +145,7 @@ m365 aad app list
143
145
  ```
144
146
 
145
147
  === "CSV"
148
+
146
149
  ```csv
147
150
  appId,id,displayName,signInAudience
148
151
  61ed4fab-a861-4307-bb87-a6a53dbe39f5,ff2798f7-1c7a-4607-8a7b-3d5e0c18c756,TestAppPermissions,AzureADMyOrg
@@ -83,6 +83,6 @@ Change password of the currently logged in user
83
83
  m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --currentPassword SLBF5gnRtyYc --newPassword 6NLUId79Lc24
84
84
  ```
85
85
 
86
- ### Response
86
+ ## Response
87
87
 
88
88
  The command won't return a response on success.
@@ -16,6 +16,15 @@ m365 flow run list [options]
16
16
  `-e, --environmentName <environmentName>`
17
17
  : The name of the environment to which the flow belongs
18
18
 
19
+ `--status [status]`
20
+ : Filter the results to only flow runs with a given status: `Succeeded`, `Running`, `Failed` or `Cancelled`. By default all flow runs are listed.
21
+
22
+ `--triggerStartTime [triggerStartTime]`
23
+ : Time indicating the inclusive start of a time range of flow runs to return. This should be defined as a valid ISO 8601 string (2021-12-16T18:28:48.6964197Z).
24
+
25
+ `--triggerEndTime [triggerEndTime]`
26
+ : Time indicating the exclusive end of a time range of flow runs to return. This should be defined as a valid ISO 8601 string (2021-12-16T18:28:48.6964197Z).
27
+
19
28
  --8<-- "docs/cmd/_global.md"
20
29
 
21
30
  ## Remarks
@@ -35,6 +44,18 @@ List runs of the specified Microsoft Flow
35
44
  m365 flow run list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a
36
45
  ```
37
46
 
47
+ List runs of the specified Microsoft Flow with a specific status
48
+
49
+ ```sh
50
+ m365 flow run list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --status Running
51
+ ```
52
+
53
+ List runs of the specified Microsoft Flow between a specific time range
54
+
55
+ ```sh
56
+ m365 flow run list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --triggerStartTime 2023-01-21T18:19:00Z --triggerEndTime 2023-01-22T00:00:00Z
57
+ ```
58
+
38
59
  ## Response
39
60
 
40
61
  ### Standard response
@@ -14,10 +14,13 @@ m365 planner plan add [options]
14
14
  : Title of the plan to add.
15
15
 
16
16
  `--ownerGroupId [ownerGroupId]`
17
- : ID of the Group that owns the plan. A valid group must exist before this option can be set. Specify either `ownerGroupId` or `ownerGroupName` but not both.
17
+ : ID of the Group that owns the plan. A valid group must exist before this option can be set. Specify either `ownerGroupId`, `ownerGroupName` or `rosterId`.
18
18
 
19
19
  `--ownerGroupName [ownerGroupName]`
20
- : Name of the Group that owns the plan. A valid group must exist before this option can be set. Specify either `ownerGroupId` or `ownerGroupName` but not both.
20
+ : Name of the Group that owns the plan. A valid group must exist before this option can be set. Specify either `ownerGroupId`, `ownerGroupName` or `rosterId`.
21
+
22
+ `--rosterId [rosterId]`
23
+ : ID of the Planner Roster. Specify either `ownerGroupId`, `ownerGroupName` or `rosterId`.
21
24
 
22
25
  `--shareWithUserIds [shareWithUserIds]`
23
26
  : The comma-separated IDs of the users with whom you want to share the plan. Specify either `shareWithUserIds` or `shareWithUserNames` but not both.
@@ -29,23 +32,31 @@ m365 planner plan add [options]
29
32
 
30
33
  ## Remarks
31
34
 
32
- Related to the options `--shareWithUserIds` and `--shareWithUserNames`. If you are leveraging Microsoft 365 groups, use the `aad o365group user` commands to manage group membership to share the [group's](https://pnp.github.io/cli-microsoft365/cmd/aad/o365group/o365group-user-add/) plan. You can also add existing members of the group to this collection though it is not required for them to access the plan owned by the group.
35
+ - Related to the options `--shareWithUserIds` and `--shareWithUserNames`. If you are leveraging Microsoft 365 groups, use the `aad o365group user` commands to manage group membership to share the [group's](https://pnp.github.io/cli-microsoft365/cmd/aad/o365group/o365group-user-add/) plan. You can also add existing members of the group to this collection though it is not required for them to access the plan owned by the group.
36
+
37
+ - Hint: Unlike for groups, a Planner Roster can contain only 1 plan.
33
38
 
34
39
  ## Examples
35
40
 
36
- Adds a Microsoft Planner plan with the name _My Planner Plan_ for Group _233e43d0-dc6a-482e-9b4e-0de7a7bce9b4_
41
+ Adds a Microsoft Planner plan with a Group by id
37
42
 
38
43
  ```sh
39
44
  m365 planner plan add --title 'My Planner Plan' --ownerGroupId '233e43d0-dc6a-482e-9b4e-0de7a7bce9b4'
40
45
  ```
41
46
 
42
- Adds a Microsoft Planner plan with the name _My Planner Plan_ for Group _My Planner Group_
47
+ Adds a Microsoft Planner plan with with a Group by name
43
48
 
44
49
  ```sh
45
50
  m365 planner plan add --title 'My Planner Plan' --ownerGroupName 'My Planner Group'
46
51
  ```
47
52
 
48
- Adds a Microsoft Planner plan with the name _My Planner Plan_ for Group _My Planner Group_ and share it with the users _Allan.Carroll@contoso.com_ and _Ida.Stevens@contoso.com_
53
+ Adds a Microsoft Planner plan with a Roster by id
54
+
55
+ ```sh
56
+ m365 planner plan add --title 'My Planner Plan' --rosterId 'tYqYlNd6eECmsNhN_fcq85cAGAnd'
57
+ ```
58
+
59
+ Adds a Microsoft Planner plan with with a Group by name and share it with the given users
49
60
 
50
61
  ```sh
51
62
  m365 planner plan add --title 'My Planner Plan' --ownerGroupName 'My Planner Group' --shareWithUserNames 'Allan.Carroll@contoso.com,Ida.Stevens@contoso.com'
@@ -27,6 +27,10 @@ m365 planner plan remove [options]
27
27
 
28
28
  --8<-- "docs/cmd/_global.md"
29
29
 
30
+ ## Remarks
31
+
32
+ If you wish to delete a Planner plan contained within a Planner Roster, you'll have to remove the roster using [planner roster remove](../roster/roster-remove.md).
33
+
30
34
  ## Examples
31
35
 
32
36
  Removes the Microsoft Planner plan by ID
@@ -0,0 +1,60 @@
1
+ # planner roster add
2
+
3
+ Creates a new Microsoft Planner Roster
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner roster add [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ --8<-- "docs/cmd/_global.md"
14
+
15
+ ## Remarks
16
+
17
+ !!! attention
18
+ The Roster will be automatically deleted when it doesn't contain a plan 24 hours after its creation. Membership information will be completely erased within 30 days of this deletion.
19
+
20
+ !!! attention
21
+ This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
22
+
23
+ !!! important
24
+ To be able to create a new Roster, the Planner Roster creation tenant setting should be enabled. Use the [planner tenant settings list](../tenant/tenant-settings-list.md) command to check if this setting is enabled for your tenant.
25
+
26
+ ## Examples
27
+
28
+ Creates a new Microsoft Planner Roster
29
+
30
+ ```sh
31
+ m365 planner roster add
32
+ ```
33
+
34
+ ## Response
35
+
36
+ === "JSON"
37
+
38
+ ```json
39
+ {
40
+ "id": "e6fmvM_yi0OJgvmepE5uj5cAE6qX",
41
+ "assignedSensitivityLabel": null
42
+ }
43
+ ```
44
+
45
+ === "Text"
46
+
47
+ ```text
48
+ assignedSensitivityLabel: null
49
+ id : e6fmvM_yi0OJgvmepE5uj5cAE6qX
50
+ ```
51
+
52
+ === "CSV"
53
+
54
+ ```csv
55
+ id,assignedSensitivityLabel
56
+ e6fmvM_yi0OJgvmepE5uj5cAE6qX,
57
+ ```
58
+
59
+ ## Additional information
60
+ Rosters are a new type of container for Microsoft Planner plans. This enables users to create a Planner plan without the need to create a new Microsoft 365 group (with a mailbox, SharePoint site, ...). Access to Roster-contained plans is controlled by the members on the Roster. A Planner Roster can contain only 1 plan.
@@ -0,0 +1,48 @@
1
+ # planner roster remove
2
+
3
+ Removes a Microsoft Planner Roster
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner roster remove [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--id <id>`
14
+ : ID of the Planner Roster.
15
+
16
+ `--confirm`
17
+ : Don't prompt for confirmation.
18
+
19
+ --8<-- "docs/cmd/_global.md"
20
+
21
+ ## Remarks
22
+
23
+ !!! attention
24
+ Deleting a Planner Roster will also delete the plan within the Roster.
25
+
26
+ !!! attention
27
+ This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
28
+
29
+ ## Examples
30
+
31
+ Removes a Planner Roster
32
+
33
+ ```sh
34
+ m365 planner roster remove --id tYqYlNd6eECmsNhN_fcq85cAGAnd
35
+ ```
36
+
37
+ Removes a Planner Roster without confirmation prompt
38
+
39
+ ```sh
40
+ m365 planner roster remove --id tYqYlNd6eECmsNhN_fcq85cAGAnd --confirm
41
+ ```
42
+
43
+ ## Response
44
+
45
+ The command won't return a response on success.
46
+
47
+ ## Additional information
48
+ Rosters are a new type of container for Microsoft Planner plans. This enables users to create a Planner plan without the need to create a new Microsoft 365 group (with a mailbox, SharePoint site, ...). Access to Roster-contained plans is controlled by the members on the Roster. A Planner Roster can contain only 1 plan.
@@ -0,0 +1,100 @@
1
+ # purview retentioneventtype get
2
+
3
+ Get a retention event type
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 purview retentioneventtype get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id <id>`
14
+ : The Id of the retention event type.
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Get a retention event type by id
21
+
22
+ ```sh
23
+ m365 purview retentioneventtype get --id c37d695e-d581-4ae9-82a0-9364eba4291e
24
+ ```
25
+
26
+ ## Remarks
27
+
28
+ !!! attention
29
+ This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
30
+
31
+ ## More information
32
+
33
+ This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created.
34
+
35
+ [Read more on event-based retention here](https://learn.microsoft.com/en-us/microsoft-365/compliance/event-driven-retention?view=o365-worldwide)
36
+
37
+ ## Response
38
+
39
+ === "JSON"
40
+
41
+ ```json
42
+ {
43
+ "displayName": "Test retention event type",
44
+ "description": "Description for the retention event type",
45
+ "createdDateTime": "2023-01-29T09:30:42Z",
46
+ "lastModifiedDateTime": "2023-01-29T09:30:42Z",
47
+ "id": "c37d695e-d581-4ae9-82a0-9364eba4291e",
48
+ "createdBy": {
49
+ "user": {
50
+ "id": null,
51
+ "displayName": "John Doe"
52
+ }
53
+ },
54
+ "lastModifiedBy": {
55
+ "user": {
56
+ "id": null,
57
+ "displayName": "John Doe"
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ === "Text"
64
+
65
+ ```text
66
+ createdBy : {"user":{"id":null,"displayName":"John Doe"}}
67
+ createdDateTime : 2023-01-29T09:30:42Z
68
+ description : Description for the retention event type
69
+ displayName : Test retention event type
70
+ id : c37d695e-d581-4ae9-82a0-9364eba4291e
71
+ lastModifiedBy : {"user":{"id":null,"displayName":"John Doe"}}
72
+ lastModifiedDateTime: 2023-01-29T09:30:42Z
73
+ ```
74
+
75
+ === "CSV"
76
+
77
+ ```csv
78
+ displayName,description,createdDateTime,lastModifiedDateTime,id,createdBy,lastModifiedBy
79
+ Test retention event type,Description for the retention event type,2023-01-29T09:30:42Z,2023-01-29T09:30:42Z,c37d695e-d581-4ae9-82a0-9364eba4291e,"{""user"":{""id"":null,""displayName"":""John Doe""}}","{""user"":{""id"":null,""displayName"":""John Doe""}}"
80
+ ```
81
+
82
+ === "Markdown"
83
+
84
+ ```md
85
+ # purview retentioneventtype get --id "c37d695e-d581-4ae9-82a0-9364eba4291e"
86
+
87
+ Date: 1/29/2023
88
+
89
+ ## Test retention event type (c37d695e-d581-4ae9-82a0-9364eba4291e)
90
+
91
+ Property | Value
92
+ ---------|-------
93
+ displayName | Test retention event type
94
+ description | Description for the retention event type
95
+ createdDateTime | 2023-01-29T09:30:42Z
96
+ lastModifiedDateTime | 2023-01-29T09:30:42Z
97
+ id | c37d695e-d581-4ae9-82a0-9364eba4291e
98
+ createdBy | {"user":{"id":null,"displayName":"John Doe"}}
99
+ lastModifiedBy | {"user":{"id":null,"displayName":"John Doe"}}
100
+ ```
@@ -0,0 +1,65 @@
1
+ # spfx project permissions grant
2
+
3
+ Grant API permissions defined in the current SPFx project
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 spfx project permissions grant [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ --8<-- "docs/cmd/_global.md"
14
+
15
+ ## Remarks
16
+
17
+ !!! important
18
+ Run this command in the folder where the project is located from where you want to grant the permissions.
19
+
20
+ This command grant the permissions defined in: _package-solution.json_.
21
+
22
+ ## Examples
23
+
24
+ Grant API permissions requested in the current SPFx project
25
+
26
+ ```sh
27
+ m365 spfx project permissions grant
28
+ ```
29
+
30
+ ## Response
31
+
32
+ === "JSON"
33
+
34
+ ```json
35
+ {
36
+ "ClientId": "6004a642-185c-479a-992a-15d1c23e2229",
37
+ "ConsentType": "AllPrincipals",
38
+ "IsDomainIsolated": false,
39
+ "ObjectId": "QqYEYFwYmkeZKhXRwj4iKRcAa6TiIbFNvGnKY1dqONY",
40
+ "PackageName": null,
41
+ "Resource": "Microsoft Graph",
42
+ "ResourceId": "a46b0017-21e2-4db1-bc69-ca63576a38d6",
43
+ "Scope": "Mail.Read"
44
+ }
45
+ ```
46
+
47
+ === "Text"
48
+
49
+ ```text
50
+ ClientId : 6004a642-185c-479a-992a-15d1c23e2229
51
+ ConsentType : AllPrincipals
52
+ IsDomainIsolated: false
53
+ ObjectId : QqYEYFwYmkeZKhXRwj4iKRcAa6TiIbFNvGnKY1dqONY
54
+ PackageName : null
55
+ Resource : Microsoft Graph
56
+ ResourceId : a46b0017-21e2-4db1-bc69-ca63576a38d6
57
+ Scope : Mail.Read
58
+ ```
59
+
60
+ === "CSV"
61
+
62
+ ```csv
63
+ ClientId,ConsentType,IsDomainIsolated,ObjectId,PackageName,Resource,ResourceId,Scope
64
+ 6004a642-185c-479a-992a-15d1c23e2229,AllPrincipals,,QqYEYFwYmkeZKhXRwj4iKRcAa6TiIbFNvGnKY1dqONY,,Microsoft Graph,a46b0017-21e2-4db1-bc69-ca63576a38d6,Mail.Read
65
+ ```
@@ -14,10 +14,10 @@ m365 spo listitem attachment list [options]
14
14
  URL of the site from which the item should be retrieved
15
15
 
16
16
  `--listId [listId]`
17
- : ID of the list where the item should be added. Specify either `listTitle`, `listId` or `listUrl`
17
+ : ID of the list where the item should be retrieved. Specify either `listTitle`, `listId` or `listUrl`
18
18
 
19
19
  `--listTitle [listTitle]`
20
- : Title of the list where the item should be added. Specify either `listTitle`, `listId` or `listUrl`
20
+ : Title of the list where the item should be retrieved. Specify either `listTitle`, `listId` or `listUrl`
21
21
 
22
22
  `--listUrl [listUrl]`
23
23
  : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`
@@ -17,10 +17,10 @@ m365 spo listitem isrecord [options]
17
17
  : The ID of the list item to check if it is a record
18
18
 
19
19
  `-l, --listId [listId]`
20
- : ID of the list where the item should be added. Specify either `listTitle`, `listId` or `listUrl`
20
+ : ID of the list where the item should be checked. Specify either `listTitle`, `listId` or `listUrl`
21
21
 
22
22
  `-t, --listTitle [listTitle]`
23
- : Title of the list where the item should be added. Specify either `listTitle`, `listId` or `listUrl`
23
+ : Title of the list where the item should be checked. Specify either `listTitle`, `listId` or `listUrl`
24
24
 
25
25
  `--listUrl [listUrl]`
26
26
  : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`
@@ -28,8 +28,15 @@ m365 spo navigation node add [options]
28
28
  `--isExternal`
29
29
  : Set, if the navigation node points to an external URL.
30
30
 
31
+ `--audienceIds [audienceIds]`
32
+ : Comma separated list of group IDs that will be used for audience targeting. The limit is 10 ids per navigation node.
33
+
31
34
  --8<-- "docs/cmd/_global.md"
32
35
 
36
+ ## Remarks
37
+
38
+ In order to use option `audienceIds`, make sure that audience targeted navigation is enabled using command [spo web set](../web/web-set.md).
39
+
33
40
  ## Examples
34
41
 
35
42
  Add a navigation node pointing to a SharePoint page to the top navigation
@@ -50,13 +57,21 @@ Add a navigation node below an existing node
50
57
  m365 spo navigation node add --webUrl https://contoso.sharepoint.com/sites/team-a --parentNodeId 2010 --title About --url /sites/team-s/sitepages/about.aspx
51
58
  ```
52
59
 
60
+ Add a navigation node to the top navigation which is audience targetted
61
+
62
+ ```sh
63
+ m365 spo navigation node add --webUrl https://contoso.sharepoint.com/sites/team-a --location TopNavigationBar --title About --url /sites/team-s/sitepages/about.aspx --audienceIds "7aa4a1ca-4035-4f2f-bac7-7beada59b5ba,4bbf236f-a131-4019-b4a2-315902fcfa3a"
64
+ ```
65
+
53
66
  ## Response
54
67
 
55
68
  === "JSON"
56
69
 
57
70
  ```json
58
71
  {
59
- "AudienceIds": null,
72
+ "AudienceIds": [
73
+ "7aa4a1ca-4035-4f2f-bac7-7beada59b5ba"
74
+ ],
60
75
  "CurrentLCID": 1033,
61
76
  "Id": 2030,
62
77
  "IsDocLib": true,
@@ -71,7 +86,7 @@ m365 spo navigation node add --webUrl https://contoso.sharepoint.com/sites/team-
71
86
  === "Text"
72
87
 
73
88
  ```text
74
- AudienceIds : null
89
+ AudienceIds : ["7aa4a1ca-4035-4f2f-bac7-7beada59b5ba"]
75
90
  CurrentLCID : 1033
76
91
  Id : 2031
77
92
  IsDocLib : true
@@ -86,5 +101,5 @@ m365 spo navigation node add --webUrl https://contoso.sharepoint.com/sites/team-
86
101
 
87
102
  ```csv
88
103
  AudienceIds,CurrentLCID,Id,IsDocLib,IsExternal,IsVisible,ListTemplateType,Title,Url
89
- ,1033,2032,1,1,1,0,Navigation Link,https://contoso.sharepoint.com
104
+ "[""7aa4a1ca-4035-4f2f-bac7-7beada59b5ba""]",1033,2032,1,1,1,0,Navigation Link,https://contoso.sharepoint.com
90
105
  ```
@@ -39,7 +39,15 @@ m365 spo navigation node list --webUrl https://contoso.sharepoint.com/sites/team
39
39
  ```json
40
40
  [
41
41
  {
42
+ "AudienceIds": [
43
+ "5786b8e8-c495-4734-b345-756733960730"
44
+ ],
45
+ "CurrentLCID": 1033,
42
46
  "Id": 2032,
47
+ "IsDocLib": true,
48
+ "IsExternal": true,
49
+ "IsVisible": true,
50
+ "ListTemplateType": 0,
43
51
  "Title": "Navigation Link",
44
52
  "Url": "https://contoso.sharepoint.com"
45
53
  }
@@ -60,3 +68,25 @@ m365 spo navigation node list --webUrl https://contoso.sharepoint.com/sites/team
60
68
  Id,Title,Url
61
69
  2032,Navigation Link,https://contoso.sharepoint.com
62
70
  ```
71
+
72
+ === "Markdown"
73
+
74
+ ```md
75
+ # spo navigation node list --webUrl "https://contoso.sharepoint.com" --location "QuickLaunch"
76
+
77
+ Date: 27/1/2023
78
+
79
+ ## Home (1031)
80
+
81
+ Property | Value
82
+ ---------|-------
83
+ AudienceIds | ["5786b8e8-c495-4734-b345-756733960730"]
84
+ CurrentLCID | 1033
85
+ Id | 2032
86
+ IsDocLib | true
87
+ IsExternal | false
88
+ IsVisible | true
89
+ ListTemplateType | 0
90
+ Title | Navigation Link
91
+ Url | https://contoso.sharepoint.com
92
+ ```
@@ -14,7 +14,7 @@ m365 spo navigation node remove [options]
14
14
  : Absolute URL of the site to which navigation should be modified
15
15
 
16
16
  `-l, --location <location>`
17
- : Navigation type where the node should be added. Available options: `QuickLaunch,TopNavigationBar`
17
+ : Navigation type where the node should be removed. Available options: `QuickLaunch,TopNavigationBar`
18
18
 
19
19
  `-i, --id <id>`
20
20
  : ID of the node to remove
@@ -0,0 +1,59 @@
1
+ # spo navigation node set
2
+
3
+ Updates a SharePoint navigation node
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 spo navigation node set [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-u, --webUrl <webUrl>`
14
+ : Absolute URL of the site.
15
+
16
+ `--id <id>`
17
+ : Id of the navigation node.
18
+
19
+ `--title [title]`
20
+ : New title of the navigation node.
21
+
22
+ `--url [url]`
23
+ : New URL of the navigation node.
24
+
25
+ `--audienceIds [audienceIds]`
26
+ : Comma separated list of group IDs that will be used for audience targeting. Speficy an empty string `""` to clear this value. The limit is 10 ids per navigation node.
27
+
28
+ `--isExternal [isExternal]`
29
+ : Whether the navigation node points to an external URL. Valid values: `true` or `false`.
30
+
31
+ --8<-- "docs/cmd/_global.md"
32
+
33
+ ## Remarks
34
+
35
+ To enable/disable audience targeting for the nsavigation bar, use command [`spo web set`](../web/web-set.md).
36
+
37
+ ## Examples
38
+
39
+ Updates the title of a navigation node
40
+
41
+ ```sh
42
+ m365 spo navigation node set --webUrl https://contoso.sharepoint.com/sites/marketing --id 2209 --title "Pictures"
43
+ ```
44
+
45
+ Updates the URL of a navigation node
46
+
47
+ ```sh
48
+ m365 spo navigation node set --webUrl https://contoso.sharepoint.com/sites/marketing --id 2209 --url "https://www.microsoft.com" --isExternal true
49
+ ```
50
+
51
+ Updates audience targeting of a navigation node with 3 groups
52
+
53
+ ```sh
54
+ m365 spo navigation node set --webUrl https://contoso.sharepoint.com/sites/marketing --id 2209 --audienceIds "61f78c73-f71a-471e-a3b9-15daa936e200,9524e6b4-e663-44fe-b179-210c963e37e7,c42b8756-494d-4141-a575-45f01320e26a"
55
+ ```
56
+
57
+ ## Response
58
+
59
+ The command won't return a response on success.