@pnp/cli-microsoft365 6.0.0-beta.a008afc → 6.0.0-beta.a0a813f

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
@@ -185,7 +185,8 @@ module.exports = {
185
185
  "camelCase"
186
186
  ]
187
187
  }
188
- ]
188
+ ],
189
+ "@typescript-eslint/explicit-function-return-type": ["error", { "allowExpressions": true }]
189
190
  },
190
191
  "overrides": [
191
192
  {
@@ -196,7 +197,8 @@ module.exports = {
196
197
  "no-console": "error",
197
198
  "@typescript-eslint/no-empty-function": "off",
198
199
  "cli-microsoft365/correct-command-class-name": "off",
199
- "cli-microsoft365/correct-command-name": "off"
200
+ "cli-microsoft365/correct-command-name": "off",
201
+ "@typescript-eslint/explicit-function-return-type": "off"
200
202
  }
201
203
  },
202
204
  {
@@ -206,8 +206,6 @@ class AadAppAddCommand extends GraphCommand_1.default {
206
206
  delete v2Manifest.appId;
207
207
  delete v2Manifest.publisherDomain;
208
208
  // extract secrets from the manifest. Store them in a separate variable
209
- // and remove them from the manifest because we need to create them
210
- // separately
211
209
  const secrets = this.getSecretsFromManifest(v2Manifest);
212
210
  // Azure Portal returns v2 manifest whereas the Graph API expects a v1.6
213
211
  if (args.options.apisApplication || args.options.apisDelegated) {
@@ -215,6 +213,33 @@ class AadAppAddCommand extends GraphCommand_1.default {
215
213
  // otherwise, they will be skipped in the app update
216
214
  v2Manifest.requiredResourceAccess = appInfo.requiredResourceAccess;
217
215
  }
216
+ if (args.options.redirectUris) {
217
+ // take submitted redirectUris/platform as options
218
+ // otherwise, they will be removed from the app
219
+ v2Manifest.replyUrlsWithType = args.options.redirectUris.split(',').map(u => {
220
+ return {
221
+ url: u.trim(),
222
+ type: this.translatePlatformToType(args.options.platform)
223
+ };
224
+ });
225
+ }
226
+ if (args.options.multitenant) {
227
+ // override manifest setting when using multitenant flag
228
+ v2Manifest.signInAudience = 'AzureADMultipleOrgs';
229
+ }
230
+ if (args.options.implicitFlow) {
231
+ // remove manifest settings when using implicitFlow flag
232
+ delete v2Manifest.oauth2AllowIdTokenImplicitFlow;
233
+ delete v2Manifest.oauth2AllowImplicitFlow;
234
+ }
235
+ if (args.options.scopeName) {
236
+ // override manifest setting when using options.
237
+ delete v2Manifest.oauth2Permissions;
238
+ }
239
+ if (args.options.certificateFile || args.options.certificateBase64Encoded) {
240
+ // override manifest setting when using options.
241
+ delete v2Manifest.keyCredentials;
242
+ }
218
243
  const graphManifest = this.transformManifest(v2Manifest);
219
244
  const updateAppRequestOptions = {
220
245
  url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
@@ -425,7 +450,6 @@ class AadAppAddCommand extends GraphCommand_1.default {
425
450
  return odata_1.odata
426
451
  .getAllItems(`${this.resource}/v1.0/myorganization/servicePrincipals?$select=appId,appRoles,id,oauth2PermissionScopes,servicePrincipalNames`)
427
452
  .then(servicePrincipals => {
428
- var _a;
429
453
  let resolvedApis = [];
430
454
  try {
431
455
  if (args.options.apisDelegated || args.options.apisApplication) {
@@ -448,17 +472,10 @@ class AadAppAddCommand extends GraphCommand_1.default {
448
472
  }
449
473
  });
450
474
  }
451
- if (typeof ((_a = this.manifest) === null || _a === void 0 ? void 0 : _a.requiredResourceAccess) !== 'undefined' && this.manifest.requiredResourceAccess.length > 0) {
475
+ else {
452
476
  const manifestApis = this.manifest.requiredResourceAccess;
453
477
  manifestApis.forEach(manifestApi => {
454
- const requiredResource = resolvedApis.find(api => api.resourceAppId === manifestApi.resourceAppId);
455
- if (requiredResource) {
456
- // exclude if any duplicate required resources in both manifest and submitted options
457
- requiredResource.resourceAccess.push(...manifestApi.resourceAccess.filter(manRes => !requiredResource.resourceAccess.some(res => res.id === manRes.id)));
458
- }
459
- else {
460
- resolvedApis.push(manifestApi);
461
- }
478
+ resolvedApis.push(manifestApi);
462
479
  const app = servicePrincipals.find(servicePrincipals => servicePrincipals.appId === manifestApi.resourceAppId);
463
480
  if (app) {
464
481
  manifestApi.resourceAccess.forEach((res => {
@@ -547,7 +564,7 @@ class AadAppAddCommand extends GraphCommand_1.default {
547
564
  }
548
565
  }
549
566
  configureSecret(args, appInfo, logger) {
550
- if (!args.options.withSecret) {
567
+ if (!args.options.withSecret || (appInfo.secrets && appInfo.secrets.length > 0)) {
551
568
  return Promise.resolve(appInfo);
552
569
  }
553
570
  if (this.verbose) {
@@ -643,6 +660,12 @@ class AadAppAddCommand extends GraphCommand_1.default {
643
660
  }
644
661
  return Promise.resolve(appInfo);
645
662
  }
663
+ translatePlatformToType(platform) {
664
+ if (platform === 'publicClient') {
665
+ return 'InstalledClient';
666
+ }
667
+ return platform.charAt(0).toUpperCase() + platform.substring(1);
668
+ }
646
669
  }
647
670
  _AadAppAddCommand_instances = new WeakSet(), _AadAppAddCommand_initTelemetry = function _AadAppAddCommand_initTelemetry() {
648
671
  this.telemetry.push((args) => {
@@ -129,7 +129,7 @@ _OutlookMailSendCommand_instances = new WeakSet(), _OutlookMailSendCommand_initT
129
129
  if (args.options.bodyContentType &&
130
130
  args.options.bodyContentType !== 'Text' &&
131
131
  args.options.bodyContentType !== 'HTML') {
132
- return `${args.options.bodyContents} is not a valid value for the bodyContents option. Allowed values are Text|HTML`;
132
+ return `${args.options.bodyContentType} is not a valid value for the bodyContentType option. Allowed values are Text|HTML`;
133
133
  }
134
134
  if (args.options.saveToSentItems &&
135
135
  args.options.saveToSentItems !== 'true' &&
@@ -96,7 +96,7 @@ class PlannerBucketGetCommand extends GraphCommand_1.default {
96
96
  const requestOptions = {
97
97
  url: `${this.resource}/v1.0/planner/buckets/${id}`,
98
98
  headers: {
99
- accept: 'application/json'
99
+ accept: 'application/json;odata.metadata=none'
100
100
  },
101
101
  responseType: 'json'
102
102
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -44,19 +45,23 @@ class SpoListRoleInheritanceBreakCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const breakListRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
46
47
  try {
47
- let requestUrl = `${args.options.webUrl}/_api/web/lists`;
48
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
48
49
  if (args.options.listId) {
49
- requestUrl += `(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
50
+ requestUrl += `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/`;
50
51
  }
51
- else {
52
- requestUrl += `/getbytitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ else if (args.options.listTitle) {
53
+ requestUrl += `lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/`;
54
+ }
55
+ else if (args.options.listUrl) {
56
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
57
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
53
58
  }
54
59
  let keepExistingPermissions = true;
55
60
  if (args.options.clearExistingPermissions) {
56
61
  keepExistingPermissions = !args.options.clearExistingPermissions;
57
62
  }
58
63
  const requestOptions = {
59
- url: `${requestUrl}/breakroleinheritance(${keepExistingPermissions})`,
64
+ url: `${requestUrl}breakroleinheritance(${keepExistingPermissions})`,
60
65
  method: 'POST',
61
66
  headers: {
62
67
  'accept': 'application/json;odata=nometadata',
@@ -92,6 +97,7 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
92
97
  Object.assign(this.telemetryProperties, {
93
98
  listId: typeof args.options.listId !== 'undefined',
94
99
  listTitle: typeof args.options.listTitle !== 'undefined',
100
+ listUrl: typeof args.options.listUrl !== 'undefined',
95
101
  clearExistingPermissions: args.options.clearExistingPermissions === true,
96
102
  confirm: (!(!args.options.confirm)).toString()
97
103
  });
@@ -103,6 +109,8 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
103
109
  option: '-i, --listId [listId]'
104
110
  }, {
105
111
  option: '-t, --listTitle [listTitle]'
112
+ }, {
113
+ option: '--listUrl [listUrl]'
106
114
  }, {
107
115
  option: '-c, --clearExistingPermissions'
108
116
  }, {
@@ -120,7 +128,7 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
120
128
  return true;
121
129
  }));
122
130
  }, _SpoListRoleInheritanceBreakCommand_initOptionSets = function _SpoListRoleInheritanceBreakCommand_initOptionSets() {
123
- this.optionSets.push(['listId', 'listTitle']);
131
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
124
132
  };
125
133
  module.exports = new SpoListRoleInheritanceBreakCommand();
126
134
  //# sourceMappingURL=list-roleinheritance-break.js.map
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -44,15 +45,19 @@ class SpoListRoleInheritanceResetCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const resetListRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
46
47
  try {
47
- let requestUrl = `${args.options.webUrl}/_api/web/lists`;
48
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
48
49
  if (args.options.listId) {
49
- requestUrl += `(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
50
+ requestUrl += `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/`;
50
51
  }
51
- else {
52
- requestUrl += `/getbytitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ else if (args.options.listTitle) {
53
+ requestUrl += `lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/`;
54
+ }
55
+ else if (args.options.listUrl) {
56
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
57
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
53
58
  }
54
59
  const requestOptions = {
55
- url: `${requestUrl}/resetroleinheritance`,
60
+ url: `${requestUrl}resetroleinheritance`,
56
61
  method: 'POST',
57
62
  headers: {
58
63
  'accept': 'application/json;odata=nometadata',
@@ -88,6 +93,7 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
88
93
  Object.assign(this.telemetryProperties, {
89
94
  listId: typeof args.options.listId !== 'undefined',
90
95
  listTitle: typeof args.options.listTitle !== 'undefined',
96
+ listUrl: typeof args.options.listUrl !== 'undefined',
91
97
  confirm: (!(!args.options.confirm)).toString()
92
98
  });
93
99
  });
@@ -98,6 +104,8 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
98
104
  option: '-i, --listId [listId]'
99
105
  }, {
100
106
  option: '-t, --listTitle [listTitle]'
107
+ }, {
108
+ option: '--listUrl [listUrl]'
101
109
  }, {
102
110
  option: '--confirm'
103
111
  });
@@ -113,7 +121,7 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
113
121
  return true;
114
122
  }));
115
123
  }, _SpoListRoleInheritanceResetCommand_initOptionSets = function _SpoListRoleInheritanceResetCommand_initOptionSets() {
116
- this.optionSets.push(['listId', 'listTitle']);
124
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
117
125
  };
118
126
  module.exports = new SpoListRoleInheritanceResetCommand();
119
127
  //# sourceMappingURL=list-roleinheritance-reset.js.map
@@ -17,6 +17,7 @@ var _SpoListWebhookAddCommand_instances, _SpoListWebhookAddCommand_initTelemetry
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -42,17 +43,21 @@ class SpoListWebhookAddCommand extends SpoCommand_1.default {
42
43
  commandAction(logger, args) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
44
45
  if (this.verbose) {
45
- logger.logToStderr(`Adding webhook to list ${args.options.listId ? args.options.listId : args.options.listTitle} located at site ${args.options.webUrl}...`);
46
+ logger.logToStderr(`Adding webhook to list ${args.options.listId || args.options.listTitle || args.options.listUrl} located at site ${args.options.webUrl}...`);
46
47
  }
47
- let requestUrl = '';
48
+ let requestUrl = `${args.options.webUrl}/_api/web`;
48
49
  if (args.options.listId) {
49
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions')`;
50
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions`;
50
51
  }
51
- else {
52
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions')`;
52
+ else if (args.options.listTitle) {
53
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions`;
54
+ }
55
+ else if (args.options.listUrl) {
56
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
57
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions`;
53
58
  }
54
59
  const requestBody = {};
55
- requestBody.resource = args.options.listId ? args.options.listId : args.options.listTitle;
60
+ requestBody.resource = args.options.listId || args.options.listTitle || args.options.listUrl;
56
61
  requestBody.notificationUrl = args.options.notificationUrl;
57
62
  // If no expiration date has been provided we will default to the
58
63
  // maximum expiration date of 180 days from now
@@ -84,10 +89,11 @@ class SpoListWebhookAddCommand extends SpoCommand_1.default {
84
89
  _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_initTelemetry = function _SpoListWebhookAddCommand_initTelemetry() {
85
90
  this.telemetry.push((args) => {
86
91
  Object.assign(this.telemetryProperties, {
87
- listId: (!(!args.options.listId)).toString(),
88
- listTitle: (!(!args.options.listTitle)).toString(),
89
- expirationDateTime: (!(!args.options.expirationDateTime)).toString(),
90
- clientState: (!(!args.options.clientState)).toString()
92
+ listId: typeof args.options.listId !== 'undefined',
93
+ listTitle: typeof args.options.listTitle !== 'undefined',
94
+ listUrl: typeof args.options.listUrl !== 'undefined',
95
+ expirationDateTime: typeof args.options.expirationDateTime !== 'undefined',
96
+ clientState: typeof args.options.clientState !== 'undefined'
91
97
  });
92
98
  });
93
99
  }, _SpoListWebhookAddCommand_initOptions = function _SpoListWebhookAddCommand_initOptions() {
@@ -97,6 +103,8 @@ _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_i
97
103
  option: '-l, --listId [listId]'
98
104
  }, {
99
105
  option: '-t, --listTitle [listTitle]'
106
+ }, {
107
+ option: '--listUrl [listUrl]'
100
108
  }, {
101
109
  option: '-n, --notificationUrl <notificationUrl>'
102
110
  }, {
@@ -129,7 +137,7 @@ _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_i
129
137
  return true;
130
138
  }));
131
139
  }, _SpoListWebhookAddCommand_initOptionSets = function _SpoListWebhookAddCommand_initOptionSets() {
132
- this.optionSets.push(['listId', 'listTitle']);
140
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
133
141
  };
134
142
  module.exports = new SpoListWebhookAddCommand();
135
143
  //# sourceMappingURL=list-webhook-add.js.map
@@ -17,6 +17,7 @@ var _SpoListWebhookGetCommand_instances, _SpoListWebhookGetCommand_initTelemetry
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -38,15 +39,19 @@ class SpoListWebhookGetCommand extends SpoCommand_1.default {
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  if (this.verbose) {
41
- const list = (args.options.listId ? args.options.listId : args.options.listTitle);
42
+ const list = (args.options.listId || args.options.listTitle || args.options.listUrl);
42
43
  logger.logToStderr(`Retrieving information for webhook ${args.options.id} belonging to list ${list} in site at ${args.options.webUrl}...`);
43
44
  }
44
- let requestUrl = '';
45
+ let requestUrl = `${args.options.webUrl}/_api/web`;
45
46
  if (args.options.listId) {
46
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
48
  }
48
- else {
49
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
49
+ else if (args.options.listTitle) {
50
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
51
+ }
52
+ else if (args.options.listUrl) {
53
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
54
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
50
55
  }
51
56
  const requestOptions = {
52
57
  url: requestUrl,
@@ -72,9 +77,10 @@ class SpoListWebhookGetCommand extends SpoCommand_1.default {
72
77
  _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_initTelemetry = function _SpoListWebhookGetCommand_initTelemetry() {
73
78
  this.telemetry.push((args) => {
74
79
  Object.assign(this.telemetryProperties, {
75
- listId: (!(!args.options.listId)).toString(),
76
- listTitle: (!(!args.options.listTitle)).toString(),
77
- id: (!(!args.options.id)).toString()
80
+ listId: typeof args.options.listId !== 'undefined',
81
+ listTitle: typeof args.options.listTitle !== 'undefined',
82
+ listUrl: typeof args.options.listUrl !== 'undefined',
83
+ id: typeof args.options.id !== 'undefined'
78
84
  });
79
85
  });
80
86
  }, _SpoListWebhookGetCommand_initOptions = function _SpoListWebhookGetCommand_initOptions() {
@@ -84,6 +90,8 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
84
90
  option: '-l, --listId [listId]'
85
91
  }, {
86
92
  option: '-t, --listTitle [listTitle]'
93
+ }, {
94
+ option: '--listUrl [listUrl]'
87
95
  }, {
88
96
  option: '-i, --id [id]'
89
97
  });
@@ -104,7 +112,7 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
104
112
  return true;
105
113
  }));
106
114
  }, _SpoListWebhookGetCommand_initOptionSets = function _SpoListWebhookGetCommand_initOptionSets() {
107
- this.optionSets.push(['listId', 'listTitle']);
115
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
108
116
  };
109
117
  module.exports = new SpoListWebhookGetCommand();
110
118
  //# sourceMappingURL=list-webhook-get.js.map
@@ -13,11 +13,12 @@ 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 _SpoListWebhookListCommand_instances, _SpoListWebhookListCommand_initTelemetry, _SpoListWebhookListCommand_initOptions, _SpoListWebhookListCommand_initValidators;
16
+ var _SpoListWebhookListCommand_instances, _SpoListWebhookListCommand_initTelemetry, _SpoListWebhookListCommand_initOptions, _SpoListWebhookListCommand_initValidators, _SpoListWebhookListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const chalk = require("chalk");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -28,6 +29,7 @@ class SpoListWebhookListCommand extends SpoCommand_1.default {
28
29
  __classPrivateFieldGet(this, _SpoListWebhookListCommand_instances, "m", _SpoListWebhookListCommand_initTelemetry).call(this);
29
30
  __classPrivateFieldGet(this, _SpoListWebhookListCommand_instances, "m", _SpoListWebhookListCommand_initOptions).call(this);
30
31
  __classPrivateFieldGet(this, _SpoListWebhookListCommand_instances, "m", _SpoListWebhookListCommand_initValidators).call(this);
32
+ __classPrivateFieldGet(this, _SpoListWebhookListCommand_instances, "m", _SpoListWebhookListCommand_initOptionSets).call(this);
31
33
  }
32
34
  get name() {
33
35
  return commands_1.default.LIST_WEBHOOK_LIST;
@@ -47,21 +49,24 @@ class SpoListWebhookListCommand extends SpoCommand_1.default {
47
49
  logger.logToStderr(chalk.yellow(`Option 'id' is deprecated. Please use 'listId' instead`));
48
50
  }
49
51
  if (this.verbose) {
50
- const list = args.options.id ? formatting_1.formatting.encodeQueryParameter(args.options.id) : (args.options.listId ? formatting_1.formatting.encodeQueryParameter(args.options.listId) : (args.options.title ? formatting_1.formatting.encodeQueryParameter(args.options.title) : formatting_1.formatting.encodeQueryParameter(args.options.listTitle)));
51
- logger.logToStderr(`Retrieving webhook information for list ${list} in site at ${args.options.webUrl}...`);
52
+ logger.logToStderr(`Retrieving webhook information for list ${args.options.id || args.options.listId || args.options.listUrl} in site at ${args.options.webUrl}...`);
52
53
  }
53
- let requestUrl = '';
54
+ let requestUrl = `${args.options.webUrl}/_api/web`;
54
55
  if (args.options.id) {
55
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.id)}')/Subscriptions`;
56
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.id)}')/Subscriptions`;
56
57
  }
57
58
  else if (args.options.listId) {
58
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions`;
59
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions`;
59
60
  }
60
61
  else if (args.options.listTitle) {
61
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions`;
62
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions`;
62
63
  }
63
- else {
64
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.title)}')/Subscriptions`;
64
+ else if (args.options.title) {
65
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.title)}')/Subscriptions`;
66
+ }
67
+ else if (args.options.listUrl) {
68
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
69
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions`;
65
70
  }
66
71
  const requestOptions = {
67
72
  url: requestUrl,
@@ -94,10 +99,11 @@ class SpoListWebhookListCommand extends SpoCommand_1.default {
94
99
  _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand_initTelemetry = function _SpoListWebhookListCommand_initTelemetry() {
95
100
  this.telemetry.push((args) => {
96
101
  Object.assign(this.telemetryProperties, {
97
- id: (!(!args.options.id)).toString(),
98
- listId: (!(!args.options.listId)).toString(),
99
- listTitle: (!(!args.options.listTitle)).toString(),
100
- title: (!(!args.options.title)).toString()
102
+ id: typeof args.options.id !== 'undefined',
103
+ listId: typeof args.options.listId !== 'undefined',
104
+ listTitle: typeof args.options.listTitle !== 'undefined',
105
+ listUrl: typeof args.options.listUrl !== 'undefined',
106
+ title: typeof args.options.title !== 'undefined'
101
107
  });
102
108
  });
103
109
  }, _SpoListWebhookListCommand_initOptions = function _SpoListWebhookListCommand_initOptions() {
@@ -107,6 +113,8 @@ _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand
107
113
  option: '-i, --listId [listId]'
108
114
  }, {
109
115
  option: '-t, --listTitle [listTitle]'
116
+ }, {
117
+ option: '--listUrl [listUrl]'
110
118
  }, {
111
119
  option: '--id [id]'
112
120
  }, {
@@ -128,19 +136,10 @@ _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand
128
136
  return `${args.options.listId} is not a valid GUID`;
129
137
  }
130
138
  }
131
- if (args.options.id && args.options.title) {
132
- return 'Specify id or title, but not both';
133
- }
134
- if (args.options.listId && args.options.listTitle) {
135
- return 'Specify listId or listTitle, but not both';
136
- }
137
- if (!args.options.id && !args.options.title) {
138
- if (!args.options.listId && !args.options.listTitle) {
139
- return 'Specify listId or listTitle, one is required';
140
- }
141
- }
142
139
  return true;
143
140
  }));
141
+ }, _SpoListWebhookListCommand_initOptionSets = function _SpoListWebhookListCommand_initOptionSets() {
142
+ this.optionSets.push(['id', 'title', 'listId', 'listTitle', 'listUrl']);
144
143
  };
145
144
  module.exports = new SpoListWebhookListCommand();
146
145
  //# sourceMappingURL=list-webhook-list.js.map
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -40,15 +41,19 @@ class SpoListWebhookRemoveCommand extends SpoCommand_1.default {
40
41
  return __awaiter(this, void 0, void 0, function* () {
41
42
  const removeWebhook = () => __awaiter(this, void 0, void 0, function* () {
42
43
  if (this.verbose) {
43
- const list = (args.options.listId ? args.options.listId : args.options.listTitle);
44
+ const list = (args.options.listId || args.options.listId || args.options.listUrl);
44
45
  logger.logToStderr(`Webhook ${args.options.id} is about to be removed from list ${list} located at site ${args.options.webUrl}...`);
45
46
  }
46
- let requestUrl = '';
47
+ let requestUrl = `${args.options.webUrl}/_api/web`;
47
48
  if (args.options.listId) {
48
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
49
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
49
50
  }
50
- else {
51
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
51
+ else if (args.options.listTitle) {
52
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
53
+ }
54
+ else if (args.options.listUrl) {
55
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
56
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
52
57
  }
53
58
  const requestOptions = {
54
59
  url: requestUrl,
@@ -74,7 +79,7 @@ class SpoListWebhookRemoveCommand extends SpoCommand_1.default {
74
79
  type: 'confirm',
75
80
  name: 'continue',
76
81
  default: false,
77
- message: `Are you sure you want to remove webhook ${args.options.id} from list ${args.options.listTitle || args.options.listId} located at site ${args.options.webUrl}?`
82
+ message: `Are you sure you want to remove webhook ${args.options.id} from list ${args.options.listTitle || args.options.listId || args.options.listUrl} located at site ${args.options.webUrl}?`
78
83
  });
79
84
  if (result.continue) {
80
85
  yield removeWebhook();
@@ -86,10 +91,11 @@ class SpoListWebhookRemoveCommand extends SpoCommand_1.default {
86
91
  _SpoListWebhookRemoveCommand_instances = new WeakSet(), _SpoListWebhookRemoveCommand_initTelemetry = function _SpoListWebhookRemoveCommand_initTelemetry() {
87
92
  this.telemetry.push((args) => {
88
93
  Object.assign(this.telemetryProperties, {
89
- listId: (!(!args.options.listId)).toString(),
90
- listTitle: (!(!args.options.listTitle)).toString(),
91
- id: (!(!args.options.id)).toString(),
92
- confirm: (!(!args.options.confirm)).toString()
94
+ listId: typeof args.options.listId !== 'undefined',
95
+ listTitle: typeof args.options.listTitle !== 'undefined',
96
+ listUrl: typeof args.options.listUrl !== 'undefined',
97
+ id: typeof args.options.id !== 'undefined',
98
+ confirm: !!args.options.confirm
93
99
  });
94
100
  });
95
101
  }, _SpoListWebhookRemoveCommand_initOptions = function _SpoListWebhookRemoveCommand_initOptions() {
@@ -99,6 +105,8 @@ _SpoListWebhookRemoveCommand_instances = new WeakSet(), _SpoListWebhookRemoveCom
99
105
  option: '-l, --listId [listId]'
100
106
  }, {
101
107
  option: '-t, --listTitle [listTitle]'
108
+ }, {
109
+ option: '--listUrl [listUrl]'
102
110
  }, {
103
111
  option: '-i, --id <id>'
104
112
  }, {
@@ -121,7 +129,7 @@ _SpoListWebhookRemoveCommand_instances = new WeakSet(), _SpoListWebhookRemoveCom
121
129
  return true;
122
130
  }));
123
131
  }, _SpoListWebhookRemoveCommand_initOptionSets = function _SpoListWebhookRemoveCommand_initOptionSets() {
124
- this.optionSets.push(['listId', 'listTitle']);
132
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
125
133
  };
126
134
  module.exports = new SpoListWebhookRemoveCommand();
127
135
  //# sourceMappingURL=list-webhook-remove.js.map
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const chalk = require("chalk");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -39,14 +40,18 @@ class SpoListWebhookSetCommand extends SpoCommand_1.default {
39
40
  commandAction(logger, args) {
40
41
  return __awaiter(this, void 0, void 0, function* () {
41
42
  if (this.verbose) {
42
- logger.logToStderr(`Updating webhook ${args.options.id} belonging to list ${args.options.listId ? args.options.listId : args.options.listTitle} located at site ${args.options.webUrl}...`);
43
+ logger.logToStderr(`Updating webhook ${args.options.id} belonging to list ${args.options.listId || args.options.listTitle || args.options.listUrl} located at site ${args.options.webUrl}...`);
43
44
  }
44
- let requestUrl = '';
45
+ let requestUrl = `${args.options.webUrl}/_api/web`;
45
46
  if (args.options.listId) {
46
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
48
  }
48
- else {
49
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
49
+ else if (args.options.listTitle) {
50
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
51
+ }
52
+ else if (args.options.listUrl) {
53
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
54
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
50
55
  }
51
56
  const requestBody = {};
52
57
  if (args.options.notificationUrl) {
@@ -77,10 +82,11 @@ class SpoListWebhookSetCommand extends SpoCommand_1.default {
77
82
  _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_initTelemetry = function _SpoListWebhookSetCommand_initTelemetry() {
78
83
  this.telemetry.push((args) => {
79
84
  Object.assign(this.telemetryProperties, {
80
- listId: (!(!args.options.listId)).toString(),
81
- listTitle: (!(!args.options.listTitle)).toString(),
82
- notificationUrl: (!(!args.options.notificationUrl)).toString(),
83
- expirationDateTime: (!(!args.options.expirationDateTime)).toString()
85
+ listId: typeof args.options.listId !== 'undefined',
86
+ listTitle: typeof args.options.listTitle !== 'undefined',
87
+ listUrl: typeof args.options.listUrl !== 'undefined',
88
+ notificationUrl: typeof args.options.notificationUrl !== 'undefined',
89
+ expirationDateTime: typeof args.options.expirationDateTime !== 'undefined'
84
90
  });
85
91
  });
86
92
  }, _SpoListWebhookSetCommand_initOptions = function _SpoListWebhookSetCommand_initOptions() {
@@ -90,6 +96,8 @@ _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_i
90
96
  option: '-l, --listId [listId]'
91
97
  }, {
92
98
  option: '-t, --listTitle [listTitle]'
99
+ }, {
100
+ option: '--listUrl [listUrl]'
93
101
  }, {
94
102
  option: '-i, --id <id>'
95
103
  }, {
@@ -125,7 +133,7 @@ _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_i
125
133
  return true;
126
134
  }));
127
135
  }, _SpoListWebhookSetCommand_initOptionSets = function _SpoListWebhookSetCommand_initOptionSets() {
128
- this.optionSets.push(['listId', 'listTitle']);
136
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
129
137
  };
130
138
  module.exports = new SpoListWebhookSetCommand();
131
139
  //# sourceMappingURL=list-webhook-set.js.map
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _TodoTaskSetCommand_instances, _TodoTaskSetCommand_initTelemetry, _TodoTaskSetCommand_initOptions, _TodoTaskSetCommand_initValidators, _TodoTaskSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
19
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
20
21
  const commands_1 = require("../../commands");
21
22
  class TodoTaskSetCommand extends GraphCommand_1.default {
@@ -76,7 +77,14 @@ class TodoTaskSetCommand extends GraphCommand_1.default {
76
77
  return Promise.resolve(taskList.id);
77
78
  });
78
79
  }
80
+ getDateTimeTimeZone(dateTime) {
81
+ return {
82
+ dateTime: dateTime,
83
+ timeZone: 'Etc/GMT'
84
+ };
85
+ }
79
86
  mapRequestBody(options) {
87
+ var _a;
80
88
  const requestBody = {};
81
89
  if (options.status) {
82
90
  requestBody.status = options.status;
@@ -84,6 +92,21 @@ class TodoTaskSetCommand extends GraphCommand_1.default {
84
92
  if (options.title) {
85
93
  requestBody.title = options.title;
86
94
  }
95
+ if (options.importance) {
96
+ requestBody.importance = options.importance.toLowerCase();
97
+ }
98
+ if (options.bodyContentType || options.bodyContent) {
99
+ requestBody.body = {
100
+ content: options.bodyContent,
101
+ contentType: ((_a = options.bodyContentType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || 'text'
102
+ };
103
+ }
104
+ if (options.dueDateTime) {
105
+ requestBody.dueDateTime = this.getDateTimeTimeZone(options.dueDateTime);
106
+ }
107
+ if (options.reminderDateTime) {
108
+ requestBody.reminderDateTime = this.getDateTimeTimeZone(options.reminderDateTime);
109
+ }
87
110
  return requestBody;
88
111
  }
89
112
  }
@@ -93,7 +116,12 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
93
116
  listId: typeof args.options.listId !== 'undefined',
94
117
  listName: typeof args.options.listName !== 'undefined',
95
118
  status: typeof args.options.status !== 'undefined',
96
- title: typeof args.options.title !== 'undefined'
119
+ title: typeof args.options.title !== 'undefined',
120
+ bodyContent: typeof args.options.bodyContent !== 'undefined',
121
+ bodyContentType: args.options.bodyContentType,
122
+ dueDateTime: typeof args.options.dueDateTime !== 'undefined',
123
+ importance: args.options.importance,
124
+ reminderDateTime: typeof args.options.reminderDateTime !== 'undefined'
97
125
  });
98
126
  });
99
127
  }, _TodoTaskSetCommand_initOptions = function _TodoTaskSetCommand_initOptions() {
@@ -108,6 +136,18 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
108
136
  option: '--listName [listName]'
109
137
  }, {
110
138
  option: '--listId [listId]'
139
+ }, {
140
+ option: '--bodyContent [bodyContent]'
141
+ }, {
142
+ option: '--bodyContentType [bodyContentType]',
143
+ autocomplete: ['text', 'html']
144
+ }, {
145
+ option: '--dueDateTime [dueDateTime]'
146
+ }, {
147
+ option: '--importance [importance]',
148
+ autocomplete: ['low', 'normal', 'high']
149
+ }, {
150
+ option: '--reminderDateTime [reminderDateTime]'
111
151
  });
112
152
  }, _TodoTaskSetCommand_initValidators = function _TodoTaskSetCommand_initValidators() {
113
153
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -119,6 +159,18 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
119
159
  args.options.status !== 'deferred') {
120
160
  return `${args.options.status} is not a valid value. Allowed values are notStarted|inProgress|completed|waitingOnOthers|deferred`;
121
161
  }
162
+ if (args.options.bodyContentType && ['text', 'html'].indexOf(args.options.bodyContentType.toLowerCase()) === -1) {
163
+ return `'${args.options.bodyContentType}' is not a valid value for the bodyContentType option. Allowed values are text|html`;
164
+ }
165
+ if (args.options.importance && ['low', 'normal', 'high'].indexOf(args.options.importance.toLowerCase()) === -1) {
166
+ return `'${args.options.importance}' is not a valid value for the importance option. Allowed values are low|normal|high`;
167
+ }
168
+ if (args.options.dueDateTime && !validation_1.validation.isValidISODateTime(args.options.dueDateTime)) {
169
+ return `'${args.options.dueDateTime}' is not a valid ISO date string`;
170
+ }
171
+ if (args.options.reminderDateTime && !validation_1.validation.isValidISODateTime(args.options.reminderDateTime)) {
172
+ return `'${args.options.reminderDateTime}' is not a valid ISO date string`;
173
+ }
122
174
  return true;
123
175
  }));
124
176
  }, _TodoTaskSetCommand_initOptionSets = function _TodoTaskSetCommand_initOptionSets() {
@@ -26,10 +26,10 @@ Specify either `listTitle`, `listId` or `listUrl`.
26
26
  Specify either `listTitle`, `listId` or `listUrl`.
27
27
 
28
28
  `-n, --name [name]`
29
- The name of the event receiver to retrieve. Specify either `name` or `id` but not both.
29
+ : The name of the event receiver to retrieve. Specify either `name` or `id` but not both.
30
30
 
31
31
  `-i, --id [id]`
32
- The id of the event receiver to retrieve. Specify either `name` or `id` but not both.
32
+ : The id of the event receiver to retrieve. Specify either `name` or `id` but not both.
33
33
 
34
34
  `-s, --scope [scope]`
35
35
  : The scope of which to retrieve the Event Receivers.
@@ -23,10 +23,10 @@ m365 spo eventreceiver remove [options]
23
23
  : The url of the list, _if the event receiver should be retrieved from a list_. Specify either `listTitle`, `listId` or `listUrl`.
24
24
 
25
25
  `-n, --name [name]`
26
- The name. Specify either `name` or `id` but not both.
26
+ : The name. Specify either `name` or `id` but not both.
27
27
 
28
28
  `-i, --id [id]`
29
- The id. Specify either `name` or `id` but not both.
29
+ : The id. Specify either `name` or `id` but not both.
30
30
 
31
31
  `-s, --scope [scope]`
32
32
  : The scope. Can be either "site" or "web". Defaults to "web". Only applicable when not specifying any of the list properties.
@@ -11,13 +11,16 @@ m365 spo list roleinheritance break [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list to retrieve is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-i, --listId [listId]`
17
- : ID of the list to retrieve information for. Specify either id or title but not both
17
+ : ID of the list. Specify either `listTitle`, `listId` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list to retrieve information for. Specify either id or title but not both
20
+ : Title of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
24
 
22
25
  `-c, --clearExistingPermissions`
23
26
  : Flag if used clears all roles from the list
@@ -33,28 +36,28 @@ By default, when breaking permissions inheritance, the list will retain existing
33
36
 
34
37
  ## Examples
35
38
 
36
- Break inheritance of list _someList_ located in site _https://contoso.sharepoint.com/sites/project-x_
39
+ Break inheritance of list by title in a specific site
37
40
 
38
41
  ```sh
39
42
  m365 spo list roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --listTitle "someList"
40
43
  ```
41
44
 
42
- Break inheritance of list with ID _202b8199-b9de-43fd-9737-7f213f51c991_ located in site _https://contoso.sharepoint.com/sites/project-x_
45
+ Break inheritance of list by id in a specific site
43
46
 
44
47
  ```sh
45
48
  m365 spo list roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --listId "202b8199-b9de-43fd-9737-7f213f51c991"
46
49
  ```
47
50
 
48
- Break inheritance of list _someList_ located in site _https://contoso.sharepoint.com/sites/project-x_ with clearing permissions
51
+ Break inheritance of list by title located in a specific site and clearing the existing permissions
49
52
 
50
53
  ```sh
51
54
  m365 spo list roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --listTitle "someList" --clearExistingPermissions
52
55
  ```
53
56
 
54
- Break inheritance of list with ID _202b8199-b9de-43fd-9737-7f213f51c991_ located in site _https://contoso.sharepoint.com/sites/project-x_ with clearing permissions
57
+ Break inheritance of list by url in a specific site and clearing the existing permissions
55
58
 
56
59
  ```sh
57
- m365 spo list roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --listId "202b8199-b9de-43fd-9737-7f213f51c991" --clearExistingPermissions
60
+ m365 spo list roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --listUrl '/sites/project-x/lists/events' --clearExistingPermissions
58
61
  ```
59
62
 
60
63
  Break inheritance of list with ID _202b8199-b9de-43fd-9737-7f213f51c991_ located in site _https://contoso.sharepoint.com/sites/project-x_ with clearing permissions without prompting for confirmation
@@ -11,13 +11,16 @@ m365 spo list roleinheritance reset [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-i, --listId [listId]`
17
- : ID of the list. Specify either id or title but not both
17
+ : ID of the list. Specify either `listTitle`, `listId` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list. Specify either id or title but not both
20
+ : Title of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
24
 
22
25
  `--confirm`
23
26
  : Do not prompt for confirmation before resetting role inheritance.
@@ -26,20 +29,26 @@ m365 spo list roleinheritance reset [options]
26
29
 
27
30
  ## Examples
28
31
 
29
- Restore role inheritance of list with ID _0cd891ef-afce-4e55-b836-fce03286cccf_ located in site _https://contoso.sharepoint.com/sites/project-x_
32
+ Restores role inheritance of a specific list by id in a specific site
30
33
 
31
34
  ```sh
32
35
  m365 spo list roleinheritance reset --webUrl https://contoso.sharepoint.com/sites/project-x --listId 0cd891ef-afce-4e55-b836-fce03286cccf
33
36
  ```
34
37
 
35
- Restore role inheritance of list with title _test_ located in site _https://contoso.sharepoint.com/sites/project-x_
38
+ Restores role inheritance of a specific list by title in a specific site
36
39
 
37
40
  ```sh
38
41
  m365 spo list roleinheritance reset --webUrl https://contoso.sharepoint.com/sites/project-x --listTitle test
39
42
  ```
40
43
 
41
- Restore role inheritance of list with title _test_ located in site _https://contoso.sharepoint.com/sites/project-x_ without prompting for confirmation
44
+ Restores role inheritance of a specific list by url in a specific site
45
+
46
+ ```sh
47
+ m365 spo list roleinheritance reset --webUrl https://contoso.sharepoint.com/sites/project-x --listUrl '/sites/project-x/lists/events'
48
+ ```
49
+
50
+ Restores role inheritance of list a specific list by title without prompting for confirmation
42
51
 
43
52
  ```sh
44
53
  m365 spo list roleinheritance reset --webUrl https://contoso.sharepoint.com/sites/project-x --listTitle test --confirm
45
- ```
54
+ ```
@@ -11,46 +11,45 @@ m365 spo list webhook add [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list to add the webhook to is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-l, --listId [listId]`
17
- : ID of the list to which the webhook which should be added. Specify either `listId` or `listTitle` but not both
17
+ : ID of the list. Specify either `listTitle`, `listId` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list to which the webhook which should be added. Specify either `listId` or `listTitle` but not both
20
+ : Title of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
24
 
22
25
  `-n, --notificationUrl <notificationUrl>`
23
- : The notification url
26
+ : The notification URL.
24
27
 
25
28
  `-e, --expirationDateTime [expirationDateTime]`
26
- : The expiration date. Will be set to max (6 months from today) if not provided
29
+ : The expiration date. Will be set to max (6 months from today) if not provided.
27
30
 
28
31
  `-c, --clientState [clientState]`
29
- : A client state information that will be passed through notifications
32
+ : A client state information that will be passed through notifications.
30
33
 
31
34
  --8<-- "docs/cmd/_global.md"
32
35
 
33
36
  ## Examples
34
37
 
35
- Add a web hook to the list Documents located in site _https://contoso.sharepoint.com/sites/ninja_ with the notification url
36
- _https://contoso-funcions.azurewebsites.net/webhook_ and the default expiration
37
- date
38
+ Add a web hook to the list retrieved by Title located in a specific site with a specific notification url and the default expiration date
38
39
 
39
40
  ```sh
40
41
  m365 spo list webhook add --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --notificationUrl https://contoso-funcions.azurewebsites.net/webhook
41
42
  ```
42
43
 
43
- Add a web hook to the list Documents located in site _https://contoso.sharepoint.com/sites/ninja_ with the notification url
44
- _https://contoso-funcions.azurewebsites.net/webhook_ and an expiration date of _January 21st, 2019_
44
+ Add a web hook to the list retrieved by URL located in a specific site with a specific notification url and a specific expiration date
45
45
 
46
46
  ```sh
47
- m365 spo list webhook add --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --notificationUrl https://contoso-funcions.azurewebsites.net/webhook --expirationDateTime 2019-01-21
47
+ m365 spo list webhook add --webUrl https://contoso.sharepoint.com/sites/ninja --listUrl '/sites/ninja/Documents' --notificationUrl https://contoso-funcions.azurewebsites.net/webhook --expirationDateTime 2019-01-21
48
48
  ```
49
49
 
50
- Add a web hook to the list Documents located in site _https://contoso.sharepoint.com/sites/ninja_ with the notification url
51
- _https://contoso-funcions.azurewebsites.net/webhook_, a very specific expiration date of _6:15 PM on March 2nd, 2019_ and
52
- a client state
50
+ Add a web hook to the list retrieved by ID located in a specific site with a specific notification url, a specific expiration date and a client state
51
+
53
52
 
54
53
  ```sh
55
- m365 spo list webhook add --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --notificationUrl https://contoso-funcions.azurewebsites.net/webhook --expirationDateTime '2019-03-02T18:15' --clientState "Hello State!"
54
+ m365 spo list webhook add --webUrl https://contoso.sharepoint.com/sites/ninja --listId '3d6aefa0-f438-4789-b0cd-6e865f5d65b5' --notificationUrl https://contoso-funcions.azurewebsites.net/webhook --expirationDateTime '2019-03-02T18:15' --clientState "Hello State!"
56
55
  ```
@@ -11,16 +11,19 @@ m365 spo list webhook get [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list to retrieve the webhook info for is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-l, --listId [listId]`
17
- : ID of the list from which to retrieve the webhook. Specify either `listId` or `listTitle` but not both
17
+ : ID of the list. Specify either `listTitle`, `listId` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list from which to retrieve the webhook. Specify either `listId` or `listTitle` but not both
20
+ : Title of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listTitle`, `listId` or `listUrl`.
21
24
 
22
25
  `-i, --id [id]`
23
- : ID of the webhook to retrieve
26
+ : ID of the webhook.
24
27
 
25
28
  --8<-- "docs/cmd/_global.md"
26
29
 
@@ -30,14 +33,20 @@ If the specified `id` doesn't refer to an existing webhook, you will get a `404
30
33
 
31
34
  ## Examples
32
35
 
33
- Return information about a webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e85_ which belongs to a list with ID _0cd891ef-afce-4e55-b836-fce03286cccf_ located in site _https://contoso.sharepoint.com/sites/project-x_
36
+ Return information about a specific webhook which belongs to a list retrieved by ID in a specific site
34
37
 
35
38
  ```sh
36
39
  m365 spo list webhook get --webUrl https://contoso.sharepoint.com/sites/project-x --listId 0cd891ef-afce-4e55-b836-fce03286cccf --id cc27a922-8224-4296-90a5-ebbc54da2e85
37
40
  ```
38
41
 
39
- Return information about a webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e85_ which belongs to a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/project-x_
42
+ Return information about a specific webhook which belongs to a list retrieved by Title in a specific site
40
43
 
41
44
  ```sh
42
45
  m365 spo list webhook get --webUrl https://contoso.sharepoint.com/sites/project-x --listTitle Documents --id cc27a922-8224-4296-90a5-ebbc54da2e85
43
46
  ```
47
+
48
+ Return information about a specific webhook which belongs to a list retrieved by URL in a specific site
49
+
50
+ ```sh
51
+ m365 spo list webhook get --webUrl https://contoso.sharepoint.com/sites/project-x --listUrl '/sites/project-x/Documents' --id cc27a922-8224-4296-90a5-ebbc54da2e85
52
+ ```
@@ -11,32 +11,41 @@ m365 spo list webhook list [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list to retrieve webhooks for is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-i, --listId [listId]`
17
- : ID of the list to retrieve all webhooks for. Specify either `listId` or `listTitle` but not both
17
+ : ID of the list. Specify either `id`, `title`, `listTitle`, `listId` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list to retrieve all webhooks for. Specify either `listId` or `listTitle` but not both
20
+ : Title of the list. Specify either `id`, `title`, `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `id`, `title`, `listTitle`, `listId` or `listUrl`.
21
24
 
22
25
  `--id [id]`
23
- : (deprecated. Use `listId` instead) ID of the list to retrieve all webhooks for. Specify either `id` or `title` but not both
26
+ : (deprecated. Use `listId` instead) ID of the list to retrieve all webhooks for. Specify either `id`, `title`, `listTitle`, `listId` or `listUrl`.
24
27
 
25
28
  `--title [title]`
26
- : (deprecated. Use `listTitle` instead) Title of the list to retrieve all webhooks for. Specify either `id` or `title` but not both
29
+ : (deprecated. Use `listTitle` instead) Title of the list to retrieve all webhooks for. Specify either `id`, `title`, `listTitle`, `listId` or `listUrl`.
27
30
 
28
31
  --8<-- "docs/cmd/_global.md"
29
32
 
30
33
  ## Examples
31
34
 
32
- List all webhooks for a list with ID _0cd891ef-afce-4e55-b836-fce03286cccf_ located in site _https://contoso.sharepoint.com/sites/project-x_
35
+ List all webhooks for a list with a specific ID in a specific site
33
36
 
34
37
  ```sh
35
38
  m365 spo list webhook list --webUrl https://contoso.sharepoint.com/sites/project-x --listId 0cd891ef-afce-4e55-b836-fce03286cccf
36
39
  ```
37
40
 
38
- List all webhooks for a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/project-x_
41
+ List all webhooks for a list with a specific title in a specific site
39
42
 
40
43
  ```sh
41
44
  m365 spo list webhook list --webUrl https://contoso.sharepoint.com/sites/project-x --listTitle Documents
42
45
  ```
46
+
47
+ List all webhooks for a list with a specific URL in a specific site
48
+
49
+ ```sh
50
+ m365 spo list webhook list --webUrl https://contoso.sharepoint.com/sites/project-x --listUrl '/sites/project-x/Documents'
51
+ ```
@@ -11,19 +11,22 @@ m365 spo list webhook remove [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list to remove the webhook from is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-l, --listId [listId]`
17
- : ID of the list from which the webhook should be removed. Specify either `listId` or `listTitle` but not both
17
+ : ID of the list. Specify either `listId`, `listTitle` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list from which the webhook should be removed. Specify either `listId` or `listTitle` but not both
20
+ : Title of the list. Specify either `listId`, `listTitle` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listId`, `listTitle` or `listUrl`.
21
24
 
22
25
  `-i, --id <id>`
23
- : ID of the webhook to remove
26
+ : ID of the webhook.
24
27
 
25
28
  `--confirm`
26
- : Don't prompt for confirming removing the webhook
29
+ : Don't prompt for confirmation.
27
30
 
28
31
  --8<-- "docs/cmd/_global.md"
29
32
 
@@ -33,20 +36,19 @@ If the specified id doesn't refer to an existing webhook, you will get a `404 -
33
36
 
34
37
  ## Examples
35
38
 
36
- Remove webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ from a list with ID _0cd891ef-afce-4e55-b836-fce03286cccf_ located in site _https://contoso.sharepoint.com/sites/ninja_
39
+ Remove webhook with a specific ID from a list retrieved by ID in a specific site
37
40
 
38
41
  ```sh
39
42
  m365 spo list webhook remove --webUrl https://contoso.sharepoint.com/sites/ninja --listId 0cd891ef-afce-4e55-b836-fce03286cccf --id cc27a922-8224-4296-90a5-ebbc54da2e81
40
43
  ```
41
44
 
42
- Remove webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ from a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/ninja_
43
-
45
+ Remove webhook with a specific ID from a list retrieved by Title in a specific site
44
46
  ```sh
45
47
  m365 spo list webhook remove --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --id cc27a922-8224-4296-90a5-ebbc54da2e81
46
48
  ```
47
49
 
48
- Remove webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ from a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/ninja_ without being asked for confirmation
50
+ Remove webhook with a specific ID from a list retrieved by URL in a specific site without being asked for confirmation
49
51
 
50
52
  ```sh
51
- m365 spo list webhook remove --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --id cc27a922-8224-4296-90a5-ebbc54da2e81 --confirm
53
+ m365 spo list webhook remove --webUrl https://contoso.sharepoint.com/sites/ninja --listUrl '/sites/ninja/Documents' --id cc27a922-8224-4296-90a5-ebbc54da2e81 --confirm
52
54
  ```
@@ -11,22 +11,25 @@ m365 spo list webhook set [options]
11
11
  ## Options
12
12
 
13
13
  `-u, --webUrl <webUrl>`
14
- : URL of the site where the list which contains the webhook is located
14
+ : URL of the site where the list is located.
15
15
 
16
16
  `-l, --listId [listId]`
17
- : ID of the list which contains the webhook which should be updated. Specify either `listId` or `listTitle` but not both
17
+ : ID of the list. Specify either `listId`, `listTitle` or `listUrl`.
18
18
 
19
19
  `-t, --listTitle [listTitle]`
20
- : Title of the list which contains the webhook which should be updated. Specify either `listId` or `listTitle` but not both
20
+ : Title of the list. Specify either `listId`, `listTitle` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : Server- or site-relative URL of the list. Specify either `listId`, `listTitle` or `listUrl`.
21
24
 
22
25
  `-i, --id [id]`
23
- : ID of the webhook to update
26
+ : ID of the webhook to update.
24
27
 
25
28
  `-n, --notificationUrl [notificationUrl]`
26
- : The new notification url
29
+ : The new notification url.
27
30
 
28
31
  `-e, --expirationDateTime [expirationDateTime]`
29
- : The new expiration date
32
+ : The new expiration date.
30
33
 
31
34
  --8<-- "docs/cmd/_global.md"
32
35
 
@@ -36,21 +39,20 @@ If the specified `id` doesn't refer to an existing webhook, you will get a `404
36
39
 
37
40
  ## Examples
38
41
 
39
- Update the notification url of a webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ which belongs to a list with ID _0cd891ef-afce-4e55-b836-fce03286cccf_ located in site _https://contoso.sharepoint.com/sites/ninja_ to _https://contoso-functions.azurewebsites.net/webhook_
42
+ Update the notification url of a webhook with a specific ID attached to a list with a specific ID in a specific site to a specific URL
40
43
 
41
44
  ```sh
42
45
  m365 spo list webhook set --webUrl https://contoso.sharepoint.com/sites/ninja --listId 0cd891ef-afce-4e55-b836-fce03286cccf --id cc27a922-8224-4296-90a5-ebbc54da2e81 --notificationUrl https://contoso-functions.azurewebsites.net/webhook
43
46
  ```
44
47
 
45
- Update the expiration date of a webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ which belongs to a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/ninja_ to _October 9th, 2018 at 6:15 PM_
48
+ Update the expiration date of a webhook with a specific ID attached to a list with a specific title in a specific site to a specfic date
46
49
 
47
50
  ```sh
48
51
  m365 spo list webhook set --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --id cc27a922-8224-4296-90a5-ebbc54da2e81 --expirationDateTime 2018-10-09T18:15
49
52
  ```
50
53
 
51
- From the webhook with ID _cc27a922-8224-4296-90a5-ebbc54da2e81_ which belongs to a list with title _Documents_ located in site _https://contoso.sharepoint.com/sites/ninja_ update the notification url to _https://contoso-functions.azurewebsites.net/webhook_
52
- and the expiration date to _March 2nd, 2019_
54
+ Update the notification url of a webhook with a specific ID attached to a list with a specific URL in a specific site to a specific URL and the expiration date to a specific date
53
55
 
54
56
  ```sh
55
- m365 spo list webhook set --webUrl https://contoso.sharepoint.com/sites/ninja --listTitle Documents --id cc27a922-8224-4296-90a5-ebbc54da2e81 --notificationUrl https://contoso-functions.azurewebsites.net/webhook --expirationDateTime 2019-03-02
57
+ m365 spo list webhook set --webUrl https://contoso.sharepoint.com/sites/ninja --listUrl '/sites/ninja/Documents' --id cc27a922-8224-4296-90a5-ebbc54da2e81 --notificationUrl https://contoso-functions.azurewebsites.net/webhook --expirationDateTime 2019-03-02
56
58
  ```
@@ -25,18 +25,45 @@ m365 todo task set [options]
25
25
  `--listId [listId]`
26
26
  : The id of the task list in which the task exists. Specify either `listName` or `listId`, not both
27
27
 
28
+ `--bodyContent [bodyContent]`
29
+ : The body content of the task. In the UI this is called 'notes'.
30
+
31
+ `--bodyContentType [bodyContentType]`
32
+ : The type of the body content. Possible values are `text` and `html`. Default is `text`.
33
+
34
+ `--importance [importance]`
35
+ : The importance of the task. Possible values are: `low`, `normal`, `high`.
36
+
37
+ `--dueDateTime [dueDateTime]`
38
+ : The date and time when the task is due. This should be defined as a valid ISO 8601 string in the UTC time zone. Only date value is needed, time value is always ignored.
39
+
40
+ `--reminderDateTime [reminderDateTime]`
41
+ : The date and time for a reminder alert of the task to occur. This should be defined as a valid ISO 8601 string in the UTC time zone.
42
+
28
43
  --8<-- "docs/cmd/_global.md"
29
44
 
30
45
  ## Examples
31
46
 
32
- Update a task with title _New task_ to _Update doco_ in Microsoft To Do tasks list with the name _My task list_
47
+ Update a task with title _New task_ to _Update doco_ in Microsoft To Do tasks list with a specific name
33
48
 
34
49
  ```sh
35
50
  m365 todo task set --id "AAMkADU3Y2E0OTMxLTllYTQtNGFlZS1hZGM0LWI1NjZjY2FhM2RhMABGAAAAAADhr7P77n9xS6PdtDemRwpHBwCin1tvQMXzRKN1hQDz2S3VAAAXXsleAACin1tvQMXzRKN1hQDz2S3VAAAXXzr9AAA=" --title "Update doco" --listName "My task list"
36
51
  ```
37
52
 
38
- Update a task with status from _notStarted_ to _inProgress_ in Microsoft To Do tasks list with the name _My task list_
53
+ Update a task with status from _notStarted_ to _inProgress_ in Microsoft To Do tasks list with a specific name
39
54
 
40
55
  ```sh
41
56
  m365 todo task set --id "AAMkADU3Y2E0OTMxLTllYTQtNGFlZS1hZGM0LWI1NjZjY2FhM2RhMABGAAAAAADhr7P77n9xS6PdtDemRwpHBwCin1tvQMXzRKN1hQDz2S3VAAAXXsleAACin1tvQMXzRKN1hQDz2S3VAAAXXzr9AAA=" --status "inProgress" --listName "My task list"
42
57
  ```
58
+
59
+ Update a task with bodyContent and reminder and flag it as important in Microsoft To Do tasks list with a specific name
60
+
61
+ ```sh
62
+ m365 todo task set --id "AAMkADU3Y2E0OTMxLTllYTQtNGFlZS1hZGM0LWI1NjZjY2FhM2RhMABGAAAAAADhr7P77n9xS6PdtDemRwpHBwCin1tvQMXzRKN1hQDz2S3VAAAXXsleAACin1tvQMXzRKN1hQDz2S3VAAAXXzr9AAA=" --listName "My task list" --bodyContent "I should not forget this" --reminderDateTime 2023-01-01T12:00:00Z --importance high
63
+ ```
64
+
65
+ Update a task with due date in Microsoft To Do tasks list with list id
66
+
67
+ ```sh
68
+ m365 todo task set --id "AAMkADU3Y2E0OTMxLTllYTQtNGFlZS1hZGM0LWI1NjZjY2FhM2RhMABGAAAAAADhr7P77n9xS6PdtDemRwpHBwCin1tvQMXzRKN1hQDz2S3VAAAXXsleAACin1tvQMXzRKN1hQDz2S3VAAAXXzr9AAA=" --listId "AQMkADlhMTRkOGEzLWQ1M2QtNGVkNS04NjdmLWU0NzJhMjZmZWNmMwAuAAADKvwNgAMNPE_zFNRJXVrU1wEAhHKQZHItDEOVCn8U3xuA2AABmQeVPwAAAA==" --dueDateTime 2023-01-01
69
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnp/cli-microsoft365",
3
- "version": "6.0.0-beta.a008afc",
3
+ "version": "6.0.0-beta.a0a813f",
4
4
  "description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
5
5
  "license": "MIT",
6
6
  "main": "./dist/api.js",
@@ -122,6 +122,7 @@
122
122
  "Faleel, Mohamed Ashiq <ashiqf@gmail.com>",
123
123
  "Ford, Lee <fordyman@gmail.com>",
124
124
  "Freese, Luise <49960482+LuiseFreese@users.noreply.github.com>",
125
+ "Gaston Flores <gaston.flrs@gmail.com>",
125
126
  "Georgiev, Velin <velin.georgiev@gmail.com>",
126
127
  "Ghuge, Pramod <pramod7@gmail.com>",
127
128
  "Gölles, Thomas <thomy@outlook.at>",
@@ -129,6 +130,7 @@
129
130
  "Harding, Phil <pil.harding@platinumdogs.co.uk>",
130
131
  "Hawrylak, Paweł <phawrylak@outlook.com>",
131
132
  "Holemans, Milan <Milan.Holemans@vanroey.be>",
133
+ "Hüseyin Saatçi <huseyins@comodo.net>",
132
134
  "Honen, Nicholas <nickhonen@gmail.com>",
133
135
  "Högberg, Joakim <joakim.hogberg@bravero.se>",
134
136
  "Hvam, Allan <ahp@delegate.dk>",
@@ -166,6 +168,7 @@
166
168
  "Priem, Mark <mark.priem@outlook.com>",
167
169
  "Raju, Arnie <arnie.raju@thesolutioncollective.com.au>",
168
170
  "Ramalho, David <dramalho@storm.ie>",
171
+ "Rathi, Tanmay <tanmay_rathi@intuit.com>",
169
172
  "Reekmans, Yannick <reekmans.yannick@gmail.com>",
170
173
  "Romano, Rodrigo <rodrigo@rodrigoromano.net>",
171
174
  "Romão, Douglas <douglas.romao@trentim.com>",