@pnp/cli-microsoft365 6.3.0 → 6.4.0-beta.a194ba2

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.
package/.eslintrc.js CHANGED
@@ -60,6 +60,7 @@ const dictionary = [
60
60
  'office365',
61
61
  'one',
62
62
  'org',
63
+ 'owner',
63
64
  'o365',
64
65
  'permission',
65
66
  'place',
package/dist/Command.js CHANGED
@@ -117,6 +117,7 @@ class Command {
117
117
  .then(result => result.missingRequireOptionValue);
118
118
  args.options[command.options[i].name] = missingRequireOptionValue;
119
119
  }
120
+ this.processOptions(args.options);
120
121
  return true;
121
122
  });
122
123
  }
@@ -81,7 +81,8 @@ _AadUserLicenseRemoveCommand_instances = new WeakSet(), _AadUserLicenseRemoveCom
81
81
  this.telemetry.push((args) => {
82
82
  Object.assign(this.telemetryProperties, {
83
83
  userId: typeof args.options.userId !== 'undefined',
84
- userName: typeof args.options.userName !== 'undefined'
84
+ userName: typeof args.options.userName !== 'undefined',
85
+ confirm: !!args.options.confirm
85
86
  });
86
87
  });
87
88
  }, _AadUserLicenseRemoveCommand_initOptions = function _AadUserLicenseRemoveCommand_initOptions() {
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _AadUserRecycleBinItemRestoreCommand_instances, _AadUserRecycleBinItemRestoreCommand_initTelemetry, _AadUserRecycleBinItemRestoreCommand_initOptions, _AadUserRecycleBinItemRestoreCommand_initValidators;
16
+ var _AadUserRecycleBinItemRestoreCommand_instances, _AadUserRecycleBinItemRestoreCommand_initOptions, _AadUserRecycleBinItemRestoreCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const validation_1 = require("../../../../utils/validation");
@@ -29,7 +29,6 @@ class AadUserRecycleBinItemRestoreCommand extends GraphCommand_1.default {
29
29
  constructor() {
30
30
  super();
31
31
  _AadUserRecycleBinItemRestoreCommand_instances.add(this);
32
- __classPrivateFieldGet(this, _AadUserRecycleBinItemRestoreCommand_instances, "m", _AadUserRecycleBinItemRestoreCommand_initTelemetry).call(this);
33
32
  __classPrivateFieldGet(this, _AadUserRecycleBinItemRestoreCommand_instances, "m", _AadUserRecycleBinItemRestoreCommand_initOptions).call(this);
34
33
  __classPrivateFieldGet(this, _AadUserRecycleBinItemRestoreCommand_instances, "m", _AadUserRecycleBinItemRestoreCommand_initValidators).call(this);
35
34
  }
@@ -55,13 +54,7 @@ class AadUserRecycleBinItemRestoreCommand extends GraphCommand_1.default {
55
54
  });
56
55
  }
57
56
  }
58
- _AadUserRecycleBinItemRestoreCommand_instances = new WeakSet(), _AadUserRecycleBinItemRestoreCommand_initTelemetry = function _AadUserRecycleBinItemRestoreCommand_initTelemetry() {
59
- this.telemetry.push((args) => {
60
- Object.assign(this.telemetryProperties, {
61
- confirm: !!args.options.confirm
62
- });
63
- });
64
- }, _AadUserRecycleBinItemRestoreCommand_initOptions = function _AadUserRecycleBinItemRestoreCommand_initOptions() {
57
+ _AadUserRecycleBinItemRestoreCommand_instances = new WeakSet(), _AadUserRecycleBinItemRestoreCommand_initOptions = function _AadUserRecycleBinItemRestoreCommand_initOptions() {
65
58
  this.options.unshift({
66
59
  option: '--id <id>'
67
60
  });
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _FlowDisableCommand_instances, _FlowDisableCommand_initOptions;
16
+ var _FlowDisableCommand_instances, _FlowDisableCommand_initTelemetry, _FlowDisableCommand_initOptions;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../request");
19
19
  const formatting_1 = require("../../../utils/formatting");
@@ -29,6 +29,7 @@ class FlowDisableCommand extends AzmgmtCommand_1.default {
29
29
  constructor() {
30
30
  super();
31
31
  _FlowDisableCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _FlowDisableCommand_instances, "m", _FlowDisableCommand_initTelemetry).call(this);
32
33
  __classPrivateFieldGet(this, _FlowDisableCommand_instances, "m", _FlowDisableCommand_initOptions).call(this);
33
34
  }
34
35
  commandAction(logger, args) {
@@ -52,7 +53,13 @@ class FlowDisableCommand extends AzmgmtCommand_1.default {
52
53
  });
53
54
  }
54
55
  }
55
- _FlowDisableCommand_instances = new WeakSet(), _FlowDisableCommand_initOptions = function _FlowDisableCommand_initOptions() {
56
+ _FlowDisableCommand_instances = new WeakSet(), _FlowDisableCommand_initTelemetry = function _FlowDisableCommand_initTelemetry() {
57
+ this.telemetry.push((args) => {
58
+ Object.assign(this.telemetryProperties, {
59
+ asAdmin: !!args.options.asAdmin
60
+ });
61
+ });
62
+ }, _FlowDisableCommand_initOptions = function _FlowDisableCommand_initOptions() {
56
63
  this.options.unshift({
57
64
  option: '-n, --name <name>'
58
65
  }, {
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _FlowEnableCommand_instances, _FlowEnableCommand_initOptions;
16
+ var _FlowEnableCommand_instances, _FlowEnableCommand_initTelemetry, _FlowEnableCommand_initOptions;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../request");
19
19
  const formatting_1 = require("../../../utils/formatting");
@@ -29,6 +29,7 @@ class FlowEnableCommand extends AzmgmtCommand_1.default {
29
29
  constructor() {
30
30
  super();
31
31
  _FlowEnableCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _FlowEnableCommand_instances, "m", _FlowEnableCommand_initTelemetry).call(this);
32
33
  __classPrivateFieldGet(this, _FlowEnableCommand_instances, "m", _FlowEnableCommand_initOptions).call(this);
33
34
  }
34
35
  commandAction(logger, args) {
@@ -52,7 +53,13 @@ class FlowEnableCommand extends AzmgmtCommand_1.default {
52
53
  });
53
54
  }
54
55
  }
55
- _FlowEnableCommand_instances = new WeakSet(), _FlowEnableCommand_initOptions = function _FlowEnableCommand_initOptions() {
56
+ _FlowEnableCommand_instances = new WeakSet(), _FlowEnableCommand_initTelemetry = function _FlowEnableCommand_initTelemetry() {
57
+ this.telemetry.push((args) => {
58
+ Object.assign(this.telemetryProperties, {
59
+ asAdmin: !!args.options.asAdmin
60
+ });
61
+ });
62
+ }, _FlowEnableCommand_initOptions = function _FlowEnableCommand_initOptions() {
56
63
  this.options.unshift({
57
64
  option: '-n, --name <name>'
58
65
  }, {
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _FlowGetCommand_instances, _FlowGetCommand_initOptions;
16
+ var _FlowGetCommand_instances, _FlowGetCommand_initTelemetry, _FlowGetCommand_initOptions;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../request");
19
19
  const formatting_1 = require("../../../utils/formatting");
@@ -32,6 +32,7 @@ class FlowGetCommand extends AzmgmtCommand_1.default {
32
32
  constructor() {
33
33
  super();
34
34
  _FlowGetCommand_instances.add(this);
35
+ __classPrivateFieldGet(this, _FlowGetCommand_instances, "m", _FlowGetCommand_initTelemetry).call(this);
35
36
  __classPrivateFieldGet(this, _FlowGetCommand_instances, "m", _FlowGetCommand_initOptions).call(this);
36
37
  }
37
38
  commandAction(logger, args) {
@@ -60,7 +61,13 @@ class FlowGetCommand extends AzmgmtCommand_1.default {
60
61
  });
61
62
  }
62
63
  }
63
- _FlowGetCommand_instances = new WeakSet(), _FlowGetCommand_initOptions = function _FlowGetCommand_initOptions() {
64
+ _FlowGetCommand_instances = new WeakSet(), _FlowGetCommand_initTelemetry = function _FlowGetCommand_initTelemetry() {
65
+ this.telemetry.push((args) => {
66
+ Object.assign(this.telemetryProperties, {
67
+ asAdmin: !!args.options.asAdmin
68
+ });
69
+ });
70
+ }, _FlowGetCommand_initOptions = function _FlowGetCommand_initOptions() {
64
71
  this.options.unshift({
65
72
  option: '-n, --name <name>'
66
73
  }, {
@@ -60,7 +60,7 @@ class FlowListCommand extends AzmgmtItemsListCommand_1.AzmgmtItemsListCommand {
60
60
  _FlowListCommand_instances = new WeakSet(), _FlowListCommand_initTelemetry = function _FlowListCommand_initTelemetry() {
61
61
  this.telemetry.push((args) => {
62
62
  Object.assign(this.telemetryProperties, {
63
- asAdmin: args.options.asAdmin === true
63
+ asAdmin: !!args.options.asAdmin
64
64
  });
65
65
  });
66
66
  }, _FlowListCommand_initOptions = function _FlowListCommand_initOptions() {
@@ -82,8 +82,8 @@ class FlowRemoveCommand extends AzmgmtCommand_1.default {
82
82
  _FlowRemoveCommand_instances = new WeakSet(), _FlowRemoveCommand_initTelemetry = function _FlowRemoveCommand_initTelemetry() {
83
83
  this.telemetry.push((args) => {
84
84
  Object.assign(this.telemetryProperties, {
85
- asAdmin: typeof args.options.asAdmin !== 'undefined',
86
- confirm: typeof args.options.confirm !== 'undefined'
85
+ asAdmin: !!args.options.asAdmin,
86
+ confirm: !!args.options.confirm
87
87
  });
88
88
  });
89
89
  }, _FlowRemoveCommand_initOptions = function _FlowRemoveCommand_initOptions() {
@@ -0,0 +1,89 @@
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
+ };
11
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var _FlowOwnerListCommand_instances, _FlowOwnerListCommand_initTelemetry, _FlowOwnerListCommand_initOptions, _FlowOwnerListCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const formatting_1 = require("../../../../utils/formatting");
20
+ const odata_1 = require("../../../../utils/odata");
21
+ const validation_1 = require("../../../../utils/validation");
22
+ const AzmgmtCommand_1 = require("../../../base/AzmgmtCommand");
23
+ const commands_1 = require("../../commands");
24
+ class FlowOwnerListCommand extends AzmgmtCommand_1.default {
25
+ get name() {
26
+ return commands_1.default.OWNER_LIST;
27
+ }
28
+ get description() {
29
+ return 'Lists all owners of a Power Automate flow';
30
+ }
31
+ defaultProperties() {
32
+ return ['roleName', 'id', 'type'];
33
+ }
34
+ constructor() {
35
+ super();
36
+ _FlowOwnerListCommand_instances.add(this);
37
+ __classPrivateFieldGet(this, _FlowOwnerListCommand_instances, "m", _FlowOwnerListCommand_initTelemetry).call(this);
38
+ __classPrivateFieldGet(this, _FlowOwnerListCommand_instances, "m", _FlowOwnerListCommand_initOptions).call(this);
39
+ __classPrivateFieldGet(this, _FlowOwnerListCommand_instances, "m", _FlowOwnerListCommand_initValidators).call(this);
40
+ }
41
+ commandAction(logger, args) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ if (this.verbose) {
45
+ logger.logToStderr(`Listing owners for flow ${args.options.flowName} in environment ${args.options.environmentName}`);
46
+ }
47
+ const response = yield odata_1.odata.getAllItems(`${this.resource}providers/Microsoft.ProcessSimple/${args.options.asAdmin ? 'scopes/admin/' : ''}environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.flowName)}/permissions?api-version=2016-11-01`);
48
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
49
+ logger.log(response);
50
+ }
51
+ else {
52
+ //converted to text friendly output
53
+ logger.log(response.map(res => ({
54
+ roleName: res.properties.roleName,
55
+ id: res.properties.principal.id,
56
+ type: res.properties.principal.type
57
+ })));
58
+ }
59
+ }
60
+ catch (err) {
61
+ this.handleRejectedODataJsonPromise(err);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ _FlowOwnerListCommand_instances = new WeakSet(), _FlowOwnerListCommand_initTelemetry = function _FlowOwnerListCommand_initTelemetry() {
67
+ this.telemetry.push((args) => {
68
+ Object.assign(this.telemetryProperties, {
69
+ asAdmin: !!args.options.asAdmin
70
+ });
71
+ });
72
+ }, _FlowOwnerListCommand_initOptions = function _FlowOwnerListCommand_initOptions() {
73
+ this.options.unshift({
74
+ option: '-e, --environmentName <environmentName>'
75
+ }, {
76
+ option: '-f, --flowName <flowName>'
77
+ }, {
78
+ option: '--asAdmin'
79
+ });
80
+ }, _FlowOwnerListCommand_initValidators = function _FlowOwnerListCommand_initValidators() {
81
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
82
+ if (!validation_1.validation.isValidGuid(args.options.flowName)) {
83
+ return `${args.options.flowName} is not a valid GUID.`;
84
+ }
85
+ return true;
86
+ }));
87
+ };
88
+ module.exports = new FlowOwnerListCommand();
89
+ //# sourceMappingURL=owner-list.js.map
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _FlowRunCancelCommand_instances, _FlowRunCancelCommand_initOptions, _FlowRunCancelCommand_initValidators;
16
+ var _FlowRunCancelCommand_instances, _FlowRunCancelCommand_initTelemetry, _FlowRunCancelCommand_initOptions, _FlowRunCancelCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
@@ -31,6 +31,7 @@ class FlowRunCancelCommand extends AzmgmtCommand_1.default {
31
31
  constructor() {
32
32
  super();
33
33
  _FlowRunCancelCommand_instances.add(this);
34
+ __classPrivateFieldGet(this, _FlowRunCancelCommand_instances, "m", _FlowRunCancelCommand_initTelemetry).call(this);
34
35
  __classPrivateFieldGet(this, _FlowRunCancelCommand_instances, "m", _FlowRunCancelCommand_initOptions).call(this);
35
36
  __classPrivateFieldGet(this, _FlowRunCancelCommand_instances, "m", _FlowRunCancelCommand_initValidators).call(this);
36
37
  }
@@ -71,7 +72,13 @@ class FlowRunCancelCommand extends AzmgmtCommand_1.default {
71
72
  });
72
73
  }
73
74
  }
74
- _FlowRunCancelCommand_instances = new WeakSet(), _FlowRunCancelCommand_initOptions = function _FlowRunCancelCommand_initOptions() {
75
+ _FlowRunCancelCommand_instances = new WeakSet(), _FlowRunCancelCommand_initTelemetry = function _FlowRunCancelCommand_initTelemetry() {
76
+ this.telemetry.push((args) => {
77
+ Object.assign(this.telemetryProperties, {
78
+ confirm: !!args.options.confirm
79
+ });
80
+ });
81
+ }, _FlowRunCancelCommand_initOptions = function _FlowRunCancelCommand_initOptions() {
75
82
  this.options.unshift({
76
83
  option: '-n, --name <name>'
77
84
  }, {
@@ -11,6 +11,7 @@ exports.default = {
11
11
  EXPORT: `${prefix} export`,
12
12
  GET: `${prefix} get`,
13
13
  LIST: `${prefix} list`,
14
+ OWNER_LIST: `${prefix} owner list`,
14
15
  REMOVE: `${prefix} remove`,
15
16
  RUN_CANCEL: `${prefix} run cancel`,
16
17
  RUN_GET: `${prefix} run get`,
@@ -77,14 +77,26 @@ class SpoCustomActionGetCommand extends SpoCommand_1.default {
77
77
  }
78
78
  return customAction;
79
79
  }
80
- const customActions = yield spo_1.spo.getCustomActions(options.webUrl, options.scope, `Title eq '${formatting_1.formatting.encodeQueryParameter(options.title)}'`);
81
- if (customActions.length === 1) {
82
- return customActions[0];
80
+ else if (options.title) {
81
+ const customActions = yield spo_1.spo.getCustomActions(options.webUrl, options.scope, `Title eq '${formatting_1.formatting.encodeQueryParameter(options.title)}'`);
82
+ if (customActions.length === 1) {
83
+ return customActions[0];
84
+ }
85
+ if (customActions.length === 0) {
86
+ throw `No user custom action with title '${options.title}' found`;
87
+ }
88
+ throw `Multiple user custom actions with title '${options.title}' found. Please disambiguate using IDs: ${customActions.map(a => a.Id).join(', ')}`;
83
89
  }
84
- if (customActions.length === 0) {
85
- throw `No user custom action with title '${options.title}' found`;
90
+ else {
91
+ const customActions = yield spo_1.spo.getCustomActions(options.webUrl, options.scope, `ClientSideComponentId eq guid'${options.clientSideComponentId}'`);
92
+ if (customActions.length === 0) {
93
+ throw `No user custom action with ClientSideComponentId '${options.clientSideComponentId}' found`;
94
+ }
95
+ if (customActions.length > 1) {
96
+ throw `Multiple user custom actions with ClientSideComponentId '${options.clientSideComponentId}' found. Please disambiguate using IDs: ${customActions.map((customAction) => customAction.Id).join(', ')}`;
97
+ }
98
+ return customActions[0];
86
99
  }
87
- throw `Multiple user custom actions with title '${options.title}' found. Please disambiguate using IDs: ${customActions.map(a => a.Id).join(', ')}`;
88
100
  });
89
101
  }
90
102
  humanizeScope(scope) {
@@ -100,6 +112,9 @@ class SpoCustomActionGetCommand extends SpoCommand_1.default {
100
112
  _SpoCustomActionGetCommand_instances = new WeakSet(), _SpoCustomActionGetCommand_initTelemetry = function _SpoCustomActionGetCommand_initTelemetry() {
101
113
  this.telemetry.push((args) => {
102
114
  Object.assign(this.telemetryProperties, {
115
+ id: typeof args.options.id !== 'undefined',
116
+ title: typeof args.options.title !== 'undefined',
117
+ clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
103
118
  scope: args.options.scope || 'All'
104
119
  });
105
120
  });
@@ -108,6 +123,8 @@ _SpoCustomActionGetCommand_instances = new WeakSet(), _SpoCustomActionGetCommand
108
123
  option: '-i, --id [id]'
109
124
  }, {
110
125
  option: '-t, --title [title]'
126
+ }, {
127
+ option: '-c, --clientSideComponentId [clientSideComponentId]'
111
128
  }, {
112
129
  option: '-u, --webUrl <webUrl>'
113
130
  }, {
@@ -130,10 +147,13 @@ _SpoCustomActionGetCommand_instances = new WeakSet(), _SpoCustomActionGetCommand
130
147
  return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web|All`;
131
148
  }
132
149
  }
150
+ if (args.options.clientSideComponentId && validation_1.validation.isValidGuid(args.options.clientSideComponentId) === false) {
151
+ return `${args.options.clientSideComponentId} is not a valid GUID.`;
152
+ }
133
153
  return true;
134
154
  }));
135
155
  }, _SpoCustomActionGetCommand_initOptionSets = function _SpoCustomActionGetCommand_initOptionSets() {
136
- this.optionSets.push({ options: ['id', 'title'] });
156
+ this.optionSets.push({ options: ['id', 'title', 'clientSideComponentId'] });
137
157
  };
138
158
  module.exports = new SpoCustomActionGetCommand();
139
159
  //# sourceMappingURL=customaction-get.js.map
@@ -22,6 +22,7 @@ const spo_1 = require("../../../../utils/spo");
22
22
  const validation_1 = require("../../../../utils/validation");
23
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
24
24
  const commands_1 = require("../../commands");
25
+ const os = require("os");
25
26
  class SpoTermGetCommand extends SpoCommand_1.default {
26
27
  get name() {
27
28
  return commands_1.default.TERM_GET;
@@ -50,32 +51,34 @@ class SpoTermGetCommand extends SpoCommand_1.default {
50
51
  data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="14" ObjectPathId="13" /><ObjectIdentityQuery Id="15" ObjectPathId="13" /><Query Id="16" ObjectPathId="13"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><StaticMethod Id="6" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="7" ParentId="6" Name="GetDefaultSiteCollectionTermStore" /><Method Id="13" ParentId="7" Name="GetTerm"><Parameters><Parameter Type="Guid">{${args.options.id}}</Parameter></Parameters></Method></ObjectPaths></Request>`;
51
52
  }
52
53
  else {
53
- const termGroupQuery = args.options.termGroupId ? `<Method Id="98" ParentId="96" Name="GetById"><Parameters><Parameter Type="Guid">{${args.options.termGroupId}}</Parameter></Parameters></Method>` : `<Method Id="98" ParentId="96" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termGroupName)}</Parameter></Parameters></Method>`;
54
- const termSetQuery = args.options.termSetId ? `<Method Id="103" ParentId="101" Name="GetById"><Parameters><Parameter Type="Guid">{${args.options.termSetId}}</Parameter></Parameters></Method>` : `<Method Id="103" ParentId="101" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termSetName)}</Parameter></Parameters></Method>`;
55
- data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="91" ObjectPathId="90" /><ObjectIdentityQuery Id="92" ObjectPathId="90" /><ObjectPath Id="94" ObjectPathId="93" /><ObjectIdentityQuery Id="95" ObjectPathId="93" /><ObjectPath Id="97" ObjectPathId="96" /><ObjectPath Id="99" ObjectPathId="98" /><ObjectIdentityQuery Id="100" ObjectPathId="98" /><ObjectPath Id="102" ObjectPathId="101" /><ObjectPath Id="104" ObjectPathId="103" /><ObjectIdentityQuery Id="105" ObjectPathId="103" /><ObjectPath Id="107" ObjectPathId="106" /><ObjectPath Id="109" ObjectPathId="108" /><ObjectIdentityQuery Id="110" ObjectPathId="108" /><Query Id="111" ObjectPathId="108"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><StaticMethod Id="90" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="93" ParentId="90" Name="GetDefaultSiteCollectionTermStore" /><Property Id="96" ParentId="93" Name="Groups" />${termGroupQuery}<Property Id="101" ParentId="98" Name="TermSets" />${termSetQuery}<Property Id="106" ParentId="103" Name="Terms" /><Method Id="108" ParentId="106" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.name)}</Parameter></Parameters></Method></ObjectPaths></Request>`;
54
+ data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="2" ObjectPathId="1" /><ObjectIdentityQuery Id="3" ObjectPathId="1" /><ObjectPath Id="5" ObjectPathId="4" /><ObjectIdentityQuery Id="6" ObjectPathId="4" /><ObjectPath Id="8" ObjectPathId="7" /><ObjectPath Id="10" ObjectPathId="9" /><ObjectIdentityQuery Id="11" ObjectPathId="9" /><ObjectPath Id="13" ObjectPathId="12" /><ObjectPath Id="15" ObjectPathId="14" /><ObjectIdentityQuery Id="16" ObjectPathId="14" /><ObjectPath Id="18" ObjectPathId="17" /><SetProperty Id="19" ObjectPathId="17" Name="TrimUnavailable"><Parameter Type="Boolean">true</Parameter></SetProperty><SetProperty Id="20" ObjectPathId="17" Name="TermLabel"><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.name)}</Parameter></SetProperty><ObjectPath Id="22" ObjectPathId="21" /><Query Id="23" ObjectPathId="21"><Query SelectAllProperties="true"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><StaticMethod Id="1" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="4" ParentId="1" Name="GetDefaultSiteCollectionTermStore" /><Property Id="7" ParentId="4" Name="Groups" /><Method Id="9" ParentId="7" Name="${args.options.termGroupName === undefined ? "GetById" : "GetByName"}"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termGroupName) || args.options.termGroupId}</Parameter></Parameters></Method><Property Id="12" ParentId="9" Name="TermSets" /><Method Id="14" ParentId="12" Name="${args.options.termSetName === undefined ? "GetById" : "GetByName"}"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termSetName) || args.options.termSetId}</Parameter></Parameters></Method><Constructor Id="17" TypeId="{61a1d689-2744-4ea3-a88b-c95bee9803aa}" /><Method Id="21" ParentId="14" Name="GetTerms"><Parameters><Parameter ObjectPathId="17" /></Parameters></Method></ObjectPaths></Request>`;
56
55
  }
57
- const requestOptions = {
58
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
59
- headers: {
60
- 'X-RequestDigest': res.FormDigestValue
61
- },
62
- data: data
63
- };
64
- const processQuery = yield request_1.default.post(requestOptions);
65
- const json = JSON.parse(processQuery);
66
- const response = json[0];
67
- if (response.ErrorInfo) {
68
- throw response.ErrorInfo.ErrorMessage;
56
+ let term;
57
+ const csomResponse = yield this.executeCsomCall(data, spoAdminUrl, res);
58
+ if (csomResponse === null) {
59
+ throw `Term with id '${args.options.id}' could not be found.`;
69
60
  }
70
- const term = json[json.length - 1];
71
- if (!term) {
72
- return;
61
+ else if (csomResponse._Child_Items_ !== undefined) {
62
+ const terms = csomResponse;
63
+ if (terms._Child_Items_.length === 0) {
64
+ throw `Term with name '${args.options.name}' could not be found.`;
65
+ }
66
+ if (terms._Child_Items_.length > 1) {
67
+ const disambiguationText = terms._Child_Items_.map(c => {
68
+ return `- ${this.getTermId(c.Id)} - ${c.PathOfTerm}`;
69
+ }).join(os.EOL);
70
+ throw new Error(`Multiple terms with the specific term name found. Please disambiguate:${os.EOL}${disambiguationText}`);
71
+ }
72
+ term = terms._Child_Items_[0];
73
+ }
74
+ else {
75
+ term = csomResponse;
73
76
  }
74
77
  delete term._ObjectIdentity_;
75
78
  delete term._ObjectType_;
76
- term.CreatedDate = new Date(Number(term.CreatedDate.replace('/Date(', '').replace(')/', ''))).toISOString();
77
- term.Id = term.Id.replace('/Guid(', '').replace(')/', '');
78
- term.LastModifiedDate = new Date(Number(term.LastModifiedDate.replace('/Date(', '').replace(')/', ''))).toISOString();
79
+ term.CreatedDate = this.parseTermDateToIsoString(term.CreatedDate);
80
+ term.Id = this.getTermId(term.Id);
81
+ term.LastModifiedDate = this.parseTermDateToIsoString(term.LastModifiedDate);
79
82
  logger.log(term);
80
83
  }
81
84
  catch (err) {
@@ -83,6 +86,31 @@ class SpoTermGetCommand extends SpoCommand_1.default {
83
86
  }
84
87
  });
85
88
  }
89
+ executeCsomCall(data, spoAdminUrl, res) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const requestOptions = {
92
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
93
+ headers: {
94
+ 'X-RequestDigest': res.FormDigestValue
95
+ },
96
+ data: data
97
+ };
98
+ const processQuery = yield request_1.default.post(requestOptions);
99
+ const json = JSON.parse(processQuery);
100
+ const response = json[0];
101
+ if (response.ErrorInfo) {
102
+ throw response.ErrorInfo.ErrorMessage;
103
+ }
104
+ const responseObject = json[json.length - 1];
105
+ return responseObject;
106
+ });
107
+ }
108
+ getTermId(termId) {
109
+ return termId.replace('/Guid(', '').replace(')/', '');
110
+ }
111
+ parseTermDateToIsoString(dateAsString) {
112
+ return new Date(Number(dateAsString.replace('/Date(', '').replace(')/', ''))).toISOString();
113
+ }
86
114
  }
87
115
  _SpoTermGetCommand_instances = new WeakSet(), _SpoTermGetCommand_initTelemetry = function _SpoTermGetCommand_initTelemetry() {
88
116
  this.telemetry.push((args) => {
@@ -111,39 +139,31 @@ _SpoTermGetCommand_instances = new WeakSet(), _SpoTermGetCommand_initTelemetry =
111
139
  });
112
140
  }, _SpoTermGetCommand_initValidators = function _SpoTermGetCommand_initValidators() {
113
141
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
114
- if (args.options.id) {
115
- if (!validation_1.validation.isValidGuid(args.options.id)) {
116
- return `${args.options.id} is not a valid GUID`;
117
- }
142
+ if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
143
+ return `${args.options.id} is not a valid GUID`;
118
144
  }
119
- if (args.options.name) {
120
- if (!args.options.termGroupId && !args.options.termGroupName) {
121
- return 'Specify termGroupId or termGroupName';
122
- }
123
- if (!args.options.termSetId && !args.options.termSetName) {
124
- return 'Specify termSetId or termSetName';
125
- }
145
+ if (args.options.termGroupId && !validation_1.validation.isValidGuid(args.options.termGroupId)) {
146
+ return `${args.options.termGroupId} is not a valid GUID`;
126
147
  }
127
- if (args.options.termGroupId && args.options.termGroupName) {
128
- return 'Specify termGroupId or termGroupName but not both';
129
- }
130
- if (args.options.termGroupId) {
131
- if (!validation_1.validation.isValidGuid(args.options.termGroupId)) {
132
- return `${args.options.termGroupId} is not a valid GUID`;
133
- }
134
- }
135
- if (args.options.termSetId && args.options.termSetName) {
136
- return 'Specify termSetId or termSetName but not both';
137
- }
138
- if (args.options.termSetId) {
139
- if (!validation_1.validation.isValidGuid(args.options.termSetId)) {
140
- return `${args.options.termSetId} is not a valid GUID`;
141
- }
148
+ if (args.options.termSetId && !validation_1.validation.isValidGuid(args.options.termSetId)) {
149
+ return `${args.options.termSetId} is not a valid GUID`;
142
150
  }
143
151
  return true;
144
152
  }));
145
153
  }, _SpoTermGetCommand_initOptionSets = function _SpoTermGetCommand_initOptionSets() {
146
- this.optionSets.push({ options: ['id', 'name'] });
154
+ this.optionSets.push({
155
+ options: ['id', 'name']
156
+ }, {
157
+ options: ['termGroupId', 'termGroupName'],
158
+ runsWhen: (args) => {
159
+ return args.options.name !== undefined;
160
+ }
161
+ }, {
162
+ options: ['termSetId', 'termSetName'],
163
+ runsWhen: (args) => {
164
+ return args.options.name !== undefined;
165
+ }
166
+ });
147
167
  };
148
168
  module.exports = new SpoTermGetCommand();
149
169
  //# sourceMappingURL=term-get.js.map
@@ -20,10 +20,10 @@ m365 aad approleassignment add [options]
20
20
  : Application name of the App Registration to which the configured scopes (app roles) should be applied
21
21
 
22
22
  `-r, --resource <resource>`
23
- : Service principal name, appId or objectId that has the scopes (roles) ex. `SharePoint`.
23
+ : Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`.
24
24
 
25
25
  `-s, --scope <scope>`
26
- : Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma separated ex. `Sites.Read.All,Sites.ReadWrite.all`
26
+ : Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma-separated e.g. `Sites.Read.All,Sites.ReadWrite.all`
27
27
 
28
28
  --8<-- "docs/cmd/_global.md"
29
29
 
@@ -33,7 +33,7 @@ This command requires tenant administrator permissions.
33
33
 
34
34
  Specify either the `appId`, `appObjectId` or `appDisplayName` but not multiple. If you specify more than one option value, the command will fail with an error.
35
35
 
36
- Autocomplete values for the `resource` option do not mean allowed values. The autocomplete will just suggest some known names, but that doesn't restrict you to use name of your own custom application or other application within your tenant.
36
+ Autocomplete values for the `resource` option do not mean allowed values. The autocomplete will just suggest some known names, but that doesn't restrict you to use the name of your own custom application or other application within your tenant.
37
37
 
38
38
  This command can also be used to assign permissions to system or user-assigned managed identity.
39
39
 
@@ -45,13 +45,13 @@ Adds SharePoint _Sites.Read.All_ application permissions to Azure AD application
45
45
  m365 aad approleassignment add --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scope "Sites.Read.All"
46
46
  ```
47
47
 
48
- Adds multiple Microsoft Graph application permissions to an Azure AD application with name _MyAppName_
48
+ Adds multiple Microsoft Graph application permissions to an Azure AD application with the name _MyAppName__
49
49
 
50
50
  ```sh
51
51
  m365 aad approleassignment add --appDisplayName "MyAppName" --resource "Microsoft Graph" --scope "Mail.Read,Mail.Send"
52
52
  ```
53
53
 
54
- Adds Microsoft Graph _Mail.Read_ application permissions to a system managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
54
+ Adds Microsoft Graph _Mail.Read_ application permissions to a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
55
55
 
56
56
  ```sh
57
57
  m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scope "Mail.Read"
@@ -20,10 +20,10 @@ m365 aad approleassignment remove [options]
20
20
  : Application name of the App Registration for which the configured scopes (app roles) should be deleted
21
21
 
22
22
  `-r, --resource <resource>`
23
- : Service principal name, appId or objectId that has the scopes (roles) ex. `SharePoint`
23
+ : Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`
24
24
 
25
25
  `-s, --scope <scope>`
26
- : Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma separated ex. `Sites.Read.All`,`Sites.ReadWrite.All`
26
+ : Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma-separated e.g. `Sites.Read.All`,`Sites.ReadWrite.All`
27
27
 
28
28
  `--confirm`
29
29
  : Don't prompt for confirming removing the all role assignment
@@ -54,7 +54,7 @@ Deletes multiple Microsoft Graph application permissions from an Azure AD applic
54
54
  m365 aad approleassignment remove --appDisplayName "MyAppName" --resource "Microsoft Graph" --scope "Mail.Read,Mail.Send"
55
55
  ```
56
56
 
57
- Deletes Microsoft Graph _Mail.Read_ application permissions from a system managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
57
+ Deletes Microsoft Graph _Mail.Read_ application permissions from a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
58
58
 
59
59
  ```sh
60
60
  m365 aad approleassignment remove --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scope "Mail.Read"
@@ -43,7 +43,7 @@ m365 aad user remove --id a33bd401-9117-4e0e-bb7b-3f61c1539e10
43
43
  Removes a specific user by its UPN
44
44
 
45
45
  ```sh
46
- m365 aad user remove --name john.doe@contoso.com
46
+ m365 aad user remove --userName john.doe@contoso.com
47
47
  ```
48
48
 
49
49
  ## Response
@@ -0,0 +1,90 @@
1
+ # flow owner list
2
+
3
+ Lists all owners of a Power Automate flow
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 flow owner list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-e, --environmentName <environmentName>`
14
+ : The name of the environment.
15
+
16
+ `-f, --flowName <flowName>`
17
+ : The name of the Power Automate flow.
18
+
19
+ `--asAdmin`
20
+ : Run the command as admin.
21
+
22
+ --8<-- "docs/cmd/_global.md"
23
+
24
+ ## Examples
25
+
26
+ Gets the owners by the name of the Power Automate flow within a specified environment
27
+
28
+ ```sh
29
+ m365 flow owner list --environmentName Default-c5a5d746-3520-453f-8a69-780f8e44917e --flowName 72f2be4a-78c1-4220-a048-dbf557296a72
30
+ ```
31
+
32
+ Gets the owners by the name of the Power Automate flow within a specified environment with admin privileges
33
+
34
+ ```sh
35
+ m365 flow owner list --environmentName Default-c5a5d746-3520-453f-8a69-780f8e44917e --flowName 72f2be4a-78c1-4220-a048-dbf557296a72 --asAdmin
36
+ ```
37
+
38
+ ## Response
39
+
40
+ === "JSON"
41
+
42
+ ```json
43
+ [
44
+ {
45
+ "name": "fe36f75e-c103-410b-a18a-2bf6df06ac3a",
46
+ "id": "/providers/Microsoft.ProcessSimple/environments/Default-c5a5d746-3520-453f-8a69-780f8e44917e/flows/72f2be4a-78c1-4220-a048-dbf557296a72/permissions/fe36f75e-c103-410b-a18a-2bf6df06ac3a",
47
+ "type": "/providers/Microsoft.ProcessSimple/environments/flows/permissions",
48
+ "properties": {
49
+ "roleName": "Owner",
50
+ "permissionType": "Principal",
51
+ "principal": {
52
+ "id": "fe36f75e-c103-410b-a18a-2bf6df06ac3a",
53
+ "type": "User"
54
+ }
55
+ }
56
+ }
57
+ ]
58
+ ```
59
+
60
+ === "Text"
61
+
62
+ ```text
63
+ roleName id type
64
+ -------- ------------------------------------ ----
65
+ Owner fe36f75e-c103-410b-a18a-2bf6df06ac3a User
66
+ ```
67
+
68
+ === "CSV"
69
+
70
+ ```csv
71
+ roleName,id,type
72
+ Owner,fe36f75e-c103-410b-a18a-2bf6df06ac3a,User
73
+ ```
74
+
75
+ === "Markdown"
76
+
77
+ ```md
78
+ # flow owner list --environmentName "Default-c5a5d746-3520-453f-8a69-780f8e44917e" --flowName "72f2be4a-78c1-4220-a048-dbf557296a72"
79
+
80
+ Date: 25/02/2023
81
+
82
+ ## fe36f75e-c103-410b-a18a-2bf6df06ac3a (/providers/Microsoft.ProcessSimple/environments/Default-c5a5d746-3520-453f-8a69-780f8e44917e/flows/72f2be4a-78c1-4220-a048-dbf557296a72/permissions/fe36f75e-c103-410b-a18a-2bf6df06ac3a)
83
+
84
+ Property | Value
85
+ ---------|-------
86
+ name | fe36f75e-c103-410b-a18a-2bf6df06ac3a
87
+ id | /providers/Microsoft.ProcessSimple/environments/Default-c5a5d746-3520-453f-8a69-780f8e44917e/flows/72f2be4a-78c1-4220-a048-dbf557296a72/permissions/fe36f75e-c103-410b-a18a-2bf6df06ac3a
88
+ type | /providers/Microsoft.ProcessSimple/environments/flows/permissions
89
+ properties | {"roleName":"Owner","permissionType":"Principal","principal":{"id":"fe36f75e-c103-410b-a18a-2bf6df06ac3a","type":"User"}}
90
+ ```
@@ -11,10 +11,13 @@ m365 spo customaction get [options]
11
11
  ## Options
12
12
 
13
13
  `-i, --id [id]`
14
- : ID of the user custom action to retrieve information for. Specify either `id` or `title`
14
+ : ID of the user custom action to retrieve information for. Specify either `id`, `title` or `clientSideComponentId`
15
15
 
16
16
  `-t, --title [title]`
17
- : Title of the user custom action to retrieve information for. Specify either `id` or `title`
17
+ : Title of the user custom action to retrieve information for. Specify either `id`, `title` or `clientSideComponentId`
18
+
19
+ `-c, --clientSideComponentId [clientSideComponentId]`
20
+ : clientSideComponentId of the user custom action to retrieve information for. Specify either `id`, `title` or `clientSideComponentId`
18
21
 
19
22
  `-u, --webUrl <webUrl>`
20
23
  : Url of the site or site collection to retrieve the custom action from
@@ -26,34 +29,133 @@ m365 spo customaction get [options]
26
29
 
27
30
  ## Remarks
28
31
 
29
- If the command finds multiple user custom actions with the specified title, it will prompt you to disambiguate which user custom action it should use, listing the discovered IDs.
32
+ If the command finds multiple user custom actions with the specified `title` or `clientSideComponentId`, it will prompt you to disambiguate which user custom action it should get, listing the discovered IDs.
30
33
 
31
34
  ## Examples
32
35
 
33
- Return details about the user custom action with ID _058140e3-0e37-44fc-a1d3-79c487d371a3_ located in site or site collection _https://contoso.sharepoint.com/sites/test_
36
+ Return details about the user custom action based on the id and a given url
34
37
 
35
38
  ```sh
36
39
  m365 spo customaction get --id 058140e3-0e37-44fc-a1d3-79c487d371a3 --webUrl https://contoso.sharepoint.com/sites/test
37
40
  ```
38
41
 
39
- Return details about the user custom action with Title _YourAppCustomizer_ located in site or site collection _https://contoso.sharepoint.com/sites/test_
42
+ Return details about the user custom action based on the title and a given url
40
43
 
41
44
  ```sh
42
45
  m365 spo customaction get --title "YourAppCustomizer" --webUrl https://contoso.sharepoint.com/sites/test
43
46
  ```
44
47
 
45
- Return details about the user custom action with ID _058140e3-0e37-44fc-a1d3-79c487d371a3_ located in site collection _https://contoso.sharepoint.com/sites/test_
48
+ Return details about the user custom action based on the clientSideComponentId and a given url
49
+
50
+ ```sh
51
+ m365 spo customaction get --clientSideComponentId "34a019f9-6198-4053-a3b6-fbdea9a107fd" --webUrl https://contoso.sharepoint.com/sites/test
52
+ ```
53
+
54
+ Return details about the user custom action based on the id and a given url and the scope
46
55
 
47
56
  ```sh
48
- m365 spo customaction get --id 058140e3-0e37-44fc-a1d3-79c487d371a3 --webUrl https://contoso.sharepoint.com/sites/test --scope Site
57
+ m365 spo customaction get --id "058140e3-0e37-44fc-a1d3-79c487d371a3" --webUrl https://contoso.sharepoint.com/sites/test --scope Site
49
58
  ```
50
59
 
51
- Return details about the user custom action with ID _058140e3-0e37-44fc-a1d3-79c487d371a3_ located in site _https://contoso.sharepoint.com/sites/test_
60
+ Return details about the user custom action based on the id and a given url and the scope
52
61
 
53
62
  ```sh
54
- m365 spo customaction get --id 058140e3-0e37-44fc-a1d3-79c487d371a3 --webUrl https://contoso.sharepoint.com/sites/test --scope Web
63
+ m365 spo customaction get --id "058140e3-0e37-44fc-a1d3-79c487d371a3" --webUrl https://contoso.sharepoint.com/sites/test --scope Web
55
64
  ```
56
65
 
57
- ## More information
66
+ Return details about the user custom action based on the id and a given url and the scope
67
+
68
+ ```sh
69
+ m365 spo customaction get --id "058140e3-0e37-44fc-a1d3-79c487d371a3" --webUrl https://contoso.sharepoint.com/sites/test --scope Web
70
+ ```
58
71
 
59
- - UserCustomAction REST API resources: [https://msdn.microsoft.com/en-us/library/office/dn531432.aspx#bk_UserCustomAction](https://msdn.microsoft.com/en-us/library/office/dn531432.aspx#bk_UserCustomAction)
72
+ ## Response
73
+
74
+ === "JSON"
75
+
76
+ ```json
77
+ {
78
+ "ClientSideComponentId": "34a019f9-6198-4053-a3b6-fbdea9a107fd",
79
+ "ClientSideComponentProperties": "{\"sampleTextOne\":\"One item is selected in the list.\", \"sampleTextTwo\":\"This command is always visible.\"}",
80
+ "CommandUIExtension": null,
81
+ "Description": null,
82
+ "Group": null,
83
+ "Id": "158cb0d1-8703-4a36-866d-84aed8233bd3",
84
+ "ImageUrl": null,
85
+ "Location": "ClientSideExtension.ListViewCommandSet.CommandBar",
86
+ "Name": "{158cb0d1-8703-4a36-866d-84aed8233bd3}",
87
+ "RegistrationId": "100",
88
+ "RegistrationType": 1,
89
+ "Rights": "{\"High\":0,\"Low\":0}",
90
+ "Scope": "Web",
91
+ "ScriptBlock": null,
92
+ "ScriptSrc": null,
93
+ "Sequence": 65536,
94
+ "Title": "ExtensionTraining",
95
+ "Url": null,
96
+ "VersionOfUserCustomAction": "1.0.1.0"
97
+ }
98
+ ```
99
+
100
+ === "Text"
101
+
102
+ ```text
103
+ ClientSideComponentId : 34a019f9-6198-4053-a3b6-fbdea9a107fd
104
+ ClientSideComponentProperties: {"sampleTextOne":"One item is selected in the list.", "sampleTextTwo":"This command is always visible."}
105
+ CommandUIExtension : null
106
+ Description : null
107
+ Group : null
108
+ Id : 158cb0d1-8703-4a36-866d-84aed8233bd3
109
+ ImageUrl : null
110
+ Location : ClientSideExtension.ListViewCommandSet.CommandBar
111
+ Name : {158cb0d1-8703-4a36-866d-84aed8233bd3}
112
+ RegistrationId : 100
113
+ RegistrationType : 1
114
+ Rights : {"High":0,"Low":0}
115
+ Scope : Web
116
+ ScriptBlock : null
117
+ ScriptSrc : null
118
+ Sequence : 65536
119
+ Title : ExtensionTraining
120
+ Url : null
121
+ VersionOfUserCustomAction : 1.0.1.0
122
+ ```
123
+
124
+ === "CSV"
125
+
126
+ ```csv
127
+ ClientSideComponentId,ClientSideComponentProperties,CommandUIExtension,Description,Group,Id,ImageUrl,Location,Name,RegistrationId,RegistrationType,Rights,Scope,ScriptBlock,ScriptSrc,Sequence,Title,Url,VersionOfUserCustomAction
128
+ 34a019f9-6198-4053-a3b6-fbdea9a107fd,"{""sampleTextOne"":""One item is selected in the list."", ""sampleTextTwo"":""This command is always visible.""}",,,,158cb0d1-8703-4a36-866d-84aed8233bd3,,ClientSideExtension.ListViewCommandSet.CommandBar,{158cb0d1-8703-4a36-866d-84aed8233bd3},100,1,"{""High"":0,""Low"":0}",Web,,,65536,ExtensionTraining,,1.0.1.0
129
+ ```
130
+
131
+ === "Markdown"
132
+
133
+ ```md
134
+ # spo customaction get --webUrl "https://contoso.sharepoint.com" --clientSideComponentId "34a019f9-6198-4053-a3b6-fbdea9a107fd" --scope "Web"
135
+
136
+ Date: 27/1/2023
137
+
138
+ ## ExtensionTraining (158cb0d1-8703-4a36-866d-84aed8233bd3)
139
+
140
+ Property | Value
141
+ ---------|-------
142
+ ClientSideComponentId | 34a019f9-6198-4053-a3b6-fbdea9a107fd
143
+ ClientSideComponentProperties | {"sampleTextOne":"One item is selected in the list.", "sampleTextTwo":"This command is always visible."}
144
+ CommandUIExtension | null
145
+ Description | null
146
+ Group | null
147
+ Id | 158cb0d1-8703-4a36-866d-84aed8233bd3
148
+ ImageUrl | null
149
+ Location | ClientSideExtension.ListViewCommandSet.CommandBar
150
+ Name | {158cb0d1-8703-4a36-866d-84aed8233bd3}
151
+ RegistrationId | 100
152
+ RegistrationType | 1
153
+ Rights | {"High":0,"Low":0}
154
+ Scope | Web
155
+ ScriptBlock | null
156
+ ScriptSrc | null
157
+ Sequence | 65536
158
+ Title | ExtensionTraining
159
+ Url | null
160
+ VersionOfUserCustomAction | 1.0.1.0
161
+ ```
@@ -20,16 +20,16 @@ m365 spo group member add [options]
20
20
  : Name of the SharePoint Group to which the user needs to be added, specify either `groupId` or `groupName`
21
21
 
22
22
  `--userName [userName]`
23
- : User's UPN (user principal name, eg. megan.bowen@contoso.com). If multiple users need to be added, they have to be comma separated (ex. megan.bowen@contoso.com,alex.wilber@contoso.com). Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
23
+ : User's UPN (user principal name, eg. megan.bowen@contoso.com). If multiple users need to be added, they have to be comma-separated (e.g. megan.bowen@contoso.com,alex.wilber@contoso.com). Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
24
24
 
25
25
  `--email [email]`
26
- : User's email (eg. megan.bowen@contoso.com). If multiple users need to be added, they have to be comma separated (ex. megan.bowen@contoso.com,alex.wilber@contoso.com). Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
26
+ : User's email (eg. megan.bowen@contoso.com). If multiple users need to be added, they have to be comma-separated (e.g. megan.bowen@contoso.com,alex.wilber@contoso.com). Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
27
27
 
28
28
  `--userId [userId]`
29
- : The user Id of the user to add as a member. (Id of the site user, for example: 14) If multiple users need to be added, the Ids have to be comma separated. Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
29
+ : The user Id of the user to add as a member. (Id of the site user, for example: 14) If multiple users need to be added, the Ids have to be comma-separated. Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
30
30
 
31
31
  `--aadGroupId [aadGroupId]`
32
- : The object Id of the Azure AD group to add as a member. If multiple groups need to be added, the Ids have to be comma separated. Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
32
+ : The object Id of the Azure AD group to add as a member. If multiple groups need to be added, the Ids have to be comma-separated. Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
33
33
 
34
34
  `--aadGroupName [aadGroupName]`
35
35
  : The name of the Azure AD group to add as a member. Specify either `userId`, `userName`, `email`, `aadGroupId` or `aadGroupName`
@@ -29,7 +29,7 @@ m365 spo navigation node add [options]
29
29
  : Set, if the navigation node points to an external URL.
30
30
 
31
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.
32
+ : Comma-separated list of group IDs that will be used for audience targeting. The limit is 10 ids per navigation node.
33
33
 
34
34
  --8<-- "docs/cmd/_global.md"
35
35
 
@@ -23,7 +23,7 @@ m365 spo navigation node set [options]
23
23
  : New URL of the navigation node.
24
24
 
25
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.
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
27
 
28
28
  `--isExternal [isExternal]`
29
29
  : Whether the navigation node points to an external URL. Valid values: `true` or `false`.
@@ -10,8 +10,6 @@ m365 spo tenant settings set [options]
10
10
 
11
11
  ## Options
12
12
 
13
- --8<-- "docs/cmd/_global.md"
14
-
15
13
  `--MinCompatibilityLevel [MinCompatibilityLevel]`
16
14
  : Specifies the lower bound on the compatibility level for new sites
17
15
 
@@ -19,7 +17,7 @@ m365 spo tenant settings set [options]
19
17
  : Specifies the upper bound on the compatibility level for new sites
20
18
 
21
19
  `--ExternalServicesEnabled [ExternalServicesEnabled]`
22
- : Enables external services for a tenant. External services are defined as services that are not in the Microsoft 365 datacenters. Allowed values `true,false`
20
+ : Enables external services for a tenant. External services are defined as services that are not in the Microsoft 365 data centers. Allowed values `true,false`
23
21
 
24
22
  `--NoAccessRedirectUrl [NoAccessRedirectUrl]`
25
23
  : Specifies the URL of the redirected site for those site collections which have the locked state "NoAccess"
@@ -34,43 +32,43 @@ m365 spo tenant settings set [options]
34
32
  : Specifies URL of the form to load in the Start a Site dialog. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Full URL - Example:"https://contoso.sharepoint.com/path/to/form"
35
33
 
36
34
  `--ShowEveryoneClaim [ShowEveryoneClaim]`
37
- : Enables the administrator to hide the Everyone claim in the People Picker. When users share an item with Everyone, it is accessible to all authenticated users in the tenant\'s Azure Active Directory, including any active external users who have previously accepted invitations. Note, that some SharePoint system resources such as templates and pages are required to be shared to Everyone and this type of sharing does not expose any user data or metadata. Allowed values `true,false`
35
+ : Enables the administrator to hide the Everyone claim in the People Picker. When users share an item with Everyone, it is accessible to all authenticated users in the tenant's Azure Active Directory, including any active external users who have previously accepted invitations. Note, that some SharePoint system resources such as templates and pages are required to be shared with Everyone and this type of sharing does not expose any user data or metadata. Allowed values `true,false`
38
36
 
39
37
  `--ShowAllUsersClaim [ShowAllUsersClaim]`
40
- : Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant\'s Azure Active Directory who have authenticated with via this method. When users share an item with "All Users (x)" it is accessible to all organization members in the tenant that used NTLM to authentication with SharePoint. Allowed values `true,false`
38
+ : Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant's Azure Active Directory who have authenticated via this method. When users share an item with "All Users (x)" it is accessible to all organization members in the tenant that used NTLM to authenticate with SharePoint. Allowed values `true,false`
41
39
 
42
40
  `--ShowEveryoneExceptExternalUsersClaim [ShowEveryoneExceptExternalUsersClaim]`
43
41
  : Enables the administrator to hide the "Everyone except external users" claim in the People Picker. When users share an item with "Everyone except external users", it is accessible to all organization members in the tenant's Azure Active Directory, but not to any users who have previously accepted invitations. Allowed values `true,false`
44
42
 
45
43
  `--SearchResolveExactEmailOrUPN [SearchResolveExactEmailOrUPN]`
46
- : Removes the search capability from People Picker. Note, recently resolved names will still appear in the list until browser cache is cleared or expired. SharePoint Administrators will still be able to use starts with or partial name matching when enabled. Allowed values `true,false`
44
+ : Removes the search capability from People Picker. Note, recently resolved names will still appear in the list until the browser cache is cleared or expired. SharePoint Administrators will still be able to use starts with or partial name matching when enabled. Allowed values `true,false`
47
45
 
48
46
  `--OfficeClientADALDisabled [OfficeClientADALDisabled]`
49
47
  : When set to true this will disable the ability to use Modern Authentication that leverages ADAL across the tenant. Allowed values `true,false`
50
48
 
51
49
  `--LegacyAuthProtocolsEnabled [LegacyAuthProtocolsEnabled]`
52
- : By default this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols (such as, Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
50
+ : By default, this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols (such as Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
53
51
 
54
52
  `--RequireAcceptingAccountMatchInvitedAccount [RequireAcceptingAccountMatchInvitedAccount]`
55
53
  : Ensures that an external user can only accept an external sharing invitation with an account matching the invited email address. Administrators who desire increased control over external collaborators should consider enabling this feature. Allowed values `true,false`
56
54
 
57
55
  `--ProvisionSharedWithEveryoneFolder [ProvisionSharedWithEveryoneFolder]`
58
- : Creates a Shared with Everyone folder in every user\'s new OneDrive for Business document library. The valid values are: True (default) - The Shared with Everyone folder is created. False - No folder is created when the site and OneDrive for Business document library is created. Allowed values `true,false`
56
+ : Creates a Shared with Everyone folder in every user's new OneDrive for Business document library. The valid values are: True (default) - The Shared with Everyone folder is created. False - No folder is created when the site and OneDrive for Business document library are created. Allowed values `true,false`
59
57
 
60
58
  `--SignInAccelerationDomain [SignInAccelerationDomain]`
61
- : Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company's Identity Provider's portal. This value can also be used with Azure Active Directory Premium to customize the Azure Active Directory login page. Acceleration will not occur on site collections that are shared externally. This value should be configured with the login domain that is used by your company (that is, example@contoso.com). If your company has multiple third-party identity providers, configuring the sign-in acceleration value will break sign-in for your organization. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Login Domain - For example: "contoso.com". No value assigned by default
59
+ : Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company's Identity Provider's portal. This value can also be used with Azure Active Directory Premium to customize the Azure Active Directory login page. Acceleration will not occur on-site collections that are shared externally. This value should be configured with the login domain that is used by your company (that is, example@contoso.com). If your company has multiple third-party identity providers, configuring the sign-in acceleration value will break sign-in for your organization. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Login Domain - For example: "contoso.com". No value assigned by default
62
60
 
63
61
  `--EnableGuestSignInAcceleration [EnableGuestSignInAcceleration]`
64
62
  : Accelerates guest-enabled site collections as well as member-only site collections when the SignInAccelerationDomain parameter is set. Allowed values `true,false`
65
63
 
66
64
  `--UsePersistentCookiesForExplorerView [UsePersistentCookiesForExplorerView]`
67
- : Lets SharePoint issue a special cookie that will allow this feature to work even when "Keep Me Signed In" is not selected. "Open with Explorer" requires persisted cookies to operate correctly. When the user does not select "Keep Me Signed in" at the time of sign -in, "Open with Explorer" will fail. This special cookie expires after 30 minutes and cannot be cleared by closing the browser or signing out of SharePoint Online.To clear this cookie, the user must log out of their Windows session. The valid values are: False(default) - No special cookie is generated and the normal Microsoft 365 sign -in length / timing applies. True - Generates a special cookie that will allow "Open with Explorer" to function if the "Keep Me Signed In" box is not checked at sign -in. Allowed values `true,false`
65
+ : Lets SharePoint issue a special cookie that will allow this feature to work even when "Keep Me Signed In" is not selected. "Open with Explorer" requires persisted cookies to operate correctly. When the user does not select "Keep Me Signed in" at the time of sign-in, "Open with Explorer" will fail. This special cookie expires after 30 minutes and cannot be cleared by closing the browser or signing out of SharePoint Online.To clear this cookie, the user must log out of their Windows session. The valid values are: False(default) - No special cookie is generated and the normal Microsoft 365 sign-in length/timing applies. True - Generates a special cookie that will allow "Open with Explorer" to function if the "Keep Me Signed In" box is not checked at sign-in. Allowed values `true,false`
68
66
 
69
67
  `--BccExternalSharingInvitations [BccExternalSharingInvitations]`
70
- : When the feature is enabled, all external sharing invitations that are sent will blind copy the e-mail messages listed in the BccExternalSharingsInvitationList. Allowed values `true,false`
68
+ : When the feature is enabled, all external sharing invitations that are sent will blindly copy the e-mail messages listed in the BccExternalSharingsInvitationList. Allowed values `true,false`
71
69
 
72
70
  `--BccExternalSharingInvitationsList [BccExternalSharingInvitationsList]`
73
- : Specifies a list of e-mail addresses to be BCC'd when the BCC for External Sharing feature is enabled. Multiple addresses can be specified by creating a comma separated list with no spaces
71
+ : Specifies a list of e-mail addresses to be BCC'd when the BCC for External Sharing feature is enabled. Multiple addresses can be specified by creating a comma-separated list with no spaces
74
72
 
75
73
  `--UserVoiceForFeedbackEnabled [UserVoiceForFeedbackEnabled]`
76
74
  : Enables or disables the User Voice Feedback button. Allowed values `true,false`
@@ -79,16 +77,16 @@ m365 spo tenant settings set [options]
79
77
  : Enables or disables the publish CDN. Allowed values `true,false`
80
78
 
81
79
  `--PublicCdnAllowedFileTypes [PublicCdnAllowedFileTypes]`
82
- : Sets public CDN allowed file types
80
+ : Sets public CDN-allowed file types
83
81
 
84
82
  `--RequireAnonymousLinksExpireInDays [RequireAnonymousLinksExpireInDays]`
85
83
  : Specifies all anonymous links that have been created (or will be created) will expire after the set number of days. To remove the expiration requirement, set the value to zero (0)
86
84
 
87
85
  `--SharingAllowedDomainList [SharingAllowedDomainList]`
88
- : Specifies a list of email domains that is allowed for sharing with the external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
86
+ : Specifies a list of email domains that are allowed for sharing with external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
89
87
 
90
88
  `--SharingBlockedDomainList [SharingBlockedDomainList]`
91
- : Specifies a list of email domains that is blocked or prohibited for sharing with the external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
89
+ : Specifies a list of email domains that are blocked or prohibited from sharing with external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
92
90
 
93
91
  `--SharingDomainRestrictionMode [SharingDomainRestrictionMode]`
94
92
  : Specifies the external sharing mode for domains. Allowed values `None,AllowList,BlockList`
@@ -97,7 +95,7 @@ m365 spo tenant settings set [options]
97
95
  : Sets a default OneDrive for Business storage quota for the tenant. It will be used for new OneDrive for Business sites created. A typical use will be to reduce the amount of storage associated with OneDrive for Business to a level below what the License entitles the users. For example, it could be used to set the quota to 10 gigabytes (GB) by default
98
96
 
99
97
  `--OneDriveForGuestsEnabled [OneDriveForGuestsEnabled]`
100
- : Lets OneDrive for Business creation for administrator managed guest users. Administrator managed Guest users use credentials in the resource tenant to access the resources. Allowed values `true,false`
98
+ : Lets OneDrive for Business creation for administrator-managed guest users. Administrator-managed Guest users use credentials in the resource tenant to access the resources. Allowed values `true,false`
101
99
 
102
100
  `--IPAddressEnforcement [IPAddressEnforcement]`
103
101
  : Allows access from network locations that are defined by an administrator. The values are true and false. The default value is false which means the setting is disabled. Before the iPAddressEnforcement parameter is set, make sure you add a valid IPv4 or IPv6 address to the iPAddressAllowList parameter. Allowed values `true,false`
@@ -109,10 +107,10 @@ m365 spo tenant settings set [options]
109
107
  : Sets IP Address WAC token lifetime'
110
108
 
111
109
  `--UseFindPeopleInPeoplePicker [UseFindPeopleInPeoplePicker]`
112
- : Sets use find people in PeoplePicker to true or false. Note: When set to true, users aren\'t able to share with security groups or SharePoint groups. Allowed values `true,false`
110
+ : Sets use to find people in PeoplePicker to true or false. Note: When set to true, users aren't able to share with security groups or SharePoint groups. Allowed values `true,false`
113
111
 
114
112
  `--DefaultSharingLinkType [DefaultSharingLinkType]`
115
- : Lets administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values `None,Direct,Internal,AnonymousAccess`
113
+ : Let's administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values `None,Direct,Internal,AnonymousAccess`
116
114
 
117
115
  `--ODBMembersCanShare [ODBMembersCanShare]`
118
116
  : Lets administrators set policy on re-sharing behavior in OneDrive for Business. Allowed values `Unspecified,On,Off`
@@ -145,7 +143,7 @@ m365 spo tenant settings set [options]
145
143
  : Enables or disables notifications in SharePoint. Allowed values `true,false`
146
144
 
147
145
  `--OwnerAnonymousNotification [OwnerAnonymousNotification]`
148
- : Enables or disables owner anonymous notification. Allowed values `true,false`
146
+ : Enables or disables owner-anonymous notification. Allowed values `true,false`
149
147
 
150
148
  `--CommentsOnSitePagesDisabled [CommentsOnSitePagesDisabled]`
151
149
  : Enables or disables comments on site pages. Allowed values `true,false`
@@ -160,19 +158,19 @@ m365 spo tenant settings set [options]
160
158
  : Prevents the Download button from being displayed on the Virus Found warning page. Allowed values `true,false`
161
159
 
162
160
  `--DefaultLinkPermission [DefaultLinkPermission]`
163
- : Choose the dafault permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values `None,View,Edit`
161
+ : Choose the default permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values `None,View,Edit`
164
162
 
165
163
  `--ConditionalAccessPolicy [ConditionalAccessPolicy]`
166
164
  : Configures conditional access policy. Allowed values `AllowFullAccess,AllowLimitedAccess,BlockAccess`
167
165
 
168
166
  `--AllowDownloadingNonWebViewableFiles [AllowDownloadingNonWebViewableFiles]`
169
- : Allows downloading non web viewable files. The Allowed values `true,false`
167
+ : Allows downloading non-web viewable files. The Allowed values `true,false`
170
168
 
171
169
  `--AllowEditing [AllowEditing]`
172
170
  : Allows editing. Allowed values `true,false`
173
171
 
174
172
  `--ApplyAppEnforcedRestrictionsToAdHocRecipients [ApplyAppEnforcedRestrictionsToAdHocRecipients]`
175
- : Applies app enforced restrictions to AdHoc recipients. Allowed values `true,false`
173
+ : Applies app-enforced restrictions to AdHoc recipients. Allowed values `true,false`
176
174
 
177
175
  `--FilePickerExternalImageSearchEnabled [FilePickerExternalImageSearchEnabled]`
178
176
  : Enables file picker external image search. Allowed values `true,false`
@@ -190,7 +188,7 @@ m365 spo tenant settings set [options]
190
188
  : Blocks access on unmanaged devices. Allowed values `true,false`
191
189
 
192
190
  `--AllowLimitedAccessOnUnmanagedDevices [AllowLimitedAccessOnUnmanagedDevices]`
193
- : Allows limited access on unmanaged devices blocks. Allowed values `true,false`
191
+ : Allows limited access on unmanaged device blocks. Allowed values `true,false`
194
192
 
195
193
  `--BlockDownloadOfAllFilesForGuests [BlockDownloadOfAllFilesForGuests]`
196
194
  : Blocks download of all files for guests. Allowed values `true,false`
@@ -211,7 +209,7 @@ m365 spo tenant settings set [options]
211
209
  : Disables report problem dialog. Allowed values `true,false`
212
210
 
213
211
  `--DisplayNamesOfFileViewers [DisplayNamesOfFileViewers]`
214
- : Displayes names of file viewers. Allowed values `true,false`
212
+ : Displays names of file viewers. Allowed values `true,false`
215
213
 
216
214
  `--EnableMinimumVersionRequirement [EnableMinimumVersionRequirement]`
217
215
  : Enables minimum version requirement. Allowed values `true,false`
@@ -235,7 +233,7 @@ m365 spo tenant settings set [options]
235
233
  : Organization news site url'
236
234
 
237
235
  `--PermissiveBrowserFileHandlingOverride [PermissiveBrowserFileHandlingOverride]`
238
- : Permissive browser fileHandling override. Allowed values `true,false`
236
+ : Permissive browser file handling override. Allowed values `true,false`
239
237
 
240
238
  `--ShowNGSCDialogForSyncOnODB [ShowNGSCDialogForSyncOnODB]`
241
239
  : Show NGSC dialog for sync on OneDrive for Business. Allowed values `true,false`
@@ -264,8 +262,10 @@ m365 spo tenant settings set [options]
264
262
  `--SyncAadB2BManagementPolicy [SyncAadB2BManagementPolicy]`
265
263
  : Syncs Azure B2B Management Policies. Allowed values `true,false`. For more information, see [SharePoint and OneDrive integration with Azure AD B2B](https://aka.ms/spo-b2b-integration).
266
264
 
265
+ --8<-- "docs/cmd/_global.md"
266
+
267
267
  !!! important
268
- To use this command you have to have permissions to access the tenant admin site.
268
+ To use this command you have to have permission to access the tenant admin site.
269
269
 
270
270
  ## Examples
271
271
 
@@ -23,10 +23,10 @@ m365 teams channel member add [options]
23
23
  : The display name of the Microsoft Teams team channel. Specify either `channelId` or `channelName`, but not both.
24
24
 
25
25
  `--userId [userId]`
26
- : The user's ID or principal name. You can also pass a comma separated list of userIds.
26
+ : The user's ID or principal name. You can also pass a comma-separated list of userIds.
27
27
 
28
28
  `--userDisplayName [userDisplayName]`
29
- : The display name of a user. You can also pass a comma separated list of display names.
29
+ : The display name of a user. You can also pass a comma-separated list of display names.
30
30
 
31
31
  `--owner`
32
32
  : Assign the user the owner role. Defaults to member permissions.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@pnp/cli-microsoft365",
3
- "version": "6.3.0",
3
+ "version": "6.4.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@pnp/cli-microsoft365",
9
- "version": "6.3.0",
9
+ "version": "6.4.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@azure/msal-node": "^1.15.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnp/cli-microsoft365",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.a194ba2",
4
4
  "description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
5
5
  "license": "MIT",
6
6
  "main": "./dist/api.js",
@@ -273,4 +273,4 @@
273
273
  "sinon": "^15.0.1",
274
274
  "source-map-support": "^0.5.21"
275
275
  }
276
- }
276
+ }