@pnp/cli-microsoft365 5.0.0-beta.cdbc898 → 5.0.0-beta.d025005

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.eslintrc.js +1 -0
  2. package/dist/api.d.ts +11 -0
  3. package/dist/api.js +17 -0
  4. package/dist/cli/Cli.js +19 -4
  5. package/dist/m365/aad/commands/app/app-add.js +43 -7
  6. package/dist/m365/aad/commands/user/user-list.js +7 -4
  7. package/dist/m365/flow/commands/flow-get.js +2 -2
  8. package/dist/m365/planner/AppliedCategories.js +3 -0
  9. package/dist/m365/planner/commands/task/task-details-get.js +39 -0
  10. package/dist/m365/planner/commands/task/task-get.js +37 -0
  11. package/dist/m365/planner/commands/task/task-set.js +357 -0
  12. package/dist/m365/planner/commands.js +4 -1
  13. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN014008_CODE_launch_hostedWorkbench_type.js +62 -0
  14. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.14.0-beta.4.js → upgrade-1.14.0-rc.2.js} +27 -25
  15. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  16. package/dist/m365/spo/commands/group/group-user-add.js +6 -6
  17. package/dist/m365/spo/commands/group/group-user-remove.js +100 -0
  18. package/dist/m365/spo/commands.js +1 -0
  19. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +57 -0
  20. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +56 -0
  21. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +39 -0
  22. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +38 -0
  23. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +51 -0
  24. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +38 -0
  25. package/dist/m365/tenant/commands.js +6 -0
  26. package/docs/docs/cmd/aad/user/user-list.md +9 -0
  27. package/docs/docs/cmd/planner/task/task-details-get.md +24 -0
  28. package/docs/docs/cmd/planner/task/task-get.md +24 -0
  29. package/docs/docs/cmd/planner/task/task-set.md +99 -0
  30. package/docs/docs/cmd/search/externalconnection/externalconnection-add.md +3 -3
  31. package/docs/docs/cmd/spo/group/group-user-remove.md +39 -0
  32. package/docs/docs/cmd/teams/channel/channel-get.md +1 -1
  33. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +33 -0
  34. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +30 -0
  35. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +24 -0
  36. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +34 -0
  37. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +28 -0
  38. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +34 -0
  39. package/npm-shrinkwrap.json +808 -770
  40. package/package.json +19 -18
  41. package/dist/m365/base/AadCommand.js +0 -10
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FN014008_CODE_launch_hostedWorkbench_type = void 0;
4
+ const path = require("path");
5
+ const JsonRule_1 = require("./JsonRule");
6
+ class FN014008_CODE_launch_hostedWorkbench_type extends JsonRule_1.JsonRule {
7
+ constructor(type) {
8
+ super();
9
+ this.type = type;
10
+ }
11
+ get id() {
12
+ return 'FN014008';
13
+ }
14
+ get title() {
15
+ return 'Hosted workbench type in .vscode/launch.json';
16
+ }
17
+ get description() {
18
+ return `In the .vscode/launch.json file, update the type property for the hosted workbench launch configuration`;
19
+ }
20
+ get resolution() {
21
+ return `{
22
+ "configurations": [
23
+ {
24
+ "type": "${this.type}"
25
+ }
26
+ ]
27
+ }`;
28
+ }
29
+ get resolutionType() {
30
+ return 'json';
31
+ }
32
+ get severity() {
33
+ return 'Recommended';
34
+ }
35
+ get file() {
36
+ return '.vscode/launch.json';
37
+ }
38
+ visit(project, findings) {
39
+ if (!project.vsCode ||
40
+ !project.vsCode.launchJson ||
41
+ !project.vsCode.launchJson.configurations) {
42
+ return;
43
+ }
44
+ const occurrences = [];
45
+ project.vsCode.launchJson.configurations.forEach((configuration, i) => {
46
+ if (configuration.name === 'Hosted workbench' &&
47
+ configuration.type !== this.type) {
48
+ const node = this.getAstNodeFromFile(project.vsCode.launchJson, `configurations[${i}].url`);
49
+ occurrences.push({
50
+ file: path.relative(project.path, this.file),
51
+ resolution: this.resolution,
52
+ position: this.getPositionFromNode(node)
53
+ });
54
+ }
55
+ });
56
+ if (occurrences.length > 0) {
57
+ this.addFindingWithOccurrences(occurrences, findings);
58
+ }
59
+ }
60
+ }
61
+ exports.FN014008_CODE_launch_hostedWorkbench_type = FN014008_CODE_launch_hostedWorkbench_type;
62
+ //# sourceMappingURL=FN014008_CODE_launch_hostedWorkbench_type.js.map
@@ -26,32 +26,34 @@ const FN006004_CFG_PS_developer_1 = require("./rules/FN006004_CFG_PS_developer")
26
26
  const FN006005_CFG_PS_metadata_1 = require("./rules/FN006005_CFG_PS_metadata");
27
27
  const FN006006_CFG_PS_features_1 = require("./rules/FN006006_CFG_PS_features");
28
28
  const FN010001_YORC_version_1 = require("./rules/FN010001_YORC_version");
29
+ const FN014008_CODE_launch_hostedWorkbench_type_1 = require("./rules/FN014008_CODE_launch_hostedWorkbench_type");
29
30
  module.exports = [
30
- new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.14.0-beta.4'),
31
- new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.14.0-beta.4'),
32
- new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.14.0-beta.4'),
33
- new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.14.0-beta.4'),
34
- new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.14.0-beta.4'),
35
- new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.14.0-beta.4'),
36
- new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.14.0-beta.4'),
37
- new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.14.0-beta.4'),
38
- new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.14.0-beta.4'),
39
- new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.14.0-beta.4'),
40
- new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.14.0-beta.4'),
41
- new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.14.0-beta.4'),
42
- new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.14.0-beta.4'),
43
- new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.14.0-beta.4'),
44
- new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.14.0-beta.4'),
45
- new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.14.0-beta.4'),
46
- new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.14.0-beta.4'),
47
- new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.14.0-beta.4'),
48
- new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.14.0-beta.4'),
49
- new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.14.0-beta.4'),
50
- new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.14.0-beta.4'),
51
- new FN002009_DEVDEP_microsoft_sp_tslint_rules_1.FN002009_DEVDEP_microsoft_sp_tslint_rules('1.14.0-beta.4'),
52
- new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.14.0-beta.4'),
31
+ new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.14.0-rc.2'),
32
+ new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.14.0-rc.2'),
33
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.14.0-rc.2'),
34
+ new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.14.0-rc.2'),
35
+ new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.14.0-rc.2'),
36
+ new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.14.0-rc.2'),
37
+ new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.14.0-rc.2'),
38
+ new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.14.0-rc.2'),
39
+ new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.14.0-rc.2'),
40
+ new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.14.0-rc.2'),
41
+ new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.14.0-rc.2'),
42
+ new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.14.0-rc.2'),
43
+ new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.14.0-rc.2'),
44
+ new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.14.0-rc.2'),
45
+ new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.14.0-rc.2'),
46
+ new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.14.0-rc.2'),
47
+ new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.14.0-rc.2'),
48
+ new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.14.0-rc.2'),
49
+ new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.14.0-rc.2'),
50
+ new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.14.0-rc.2'),
51
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.14.0-rc.2'),
52
+ new FN002009_DEVDEP_microsoft_sp_tslint_rules_1.FN002009_DEVDEP_microsoft_sp_tslint_rules('1.14.0-rc.2'),
53
+ new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.14.0-rc.2'),
53
54
  new FN006005_CFG_PS_metadata_1.FN006005_CFG_PS_metadata(),
54
55
  new FN006006_CFG_PS_features_1.FN006006_CFG_PS_features(),
55
- new FN010001_YORC_version_1.FN010001_YORC_version('1.14.0-beta.4')
56
+ new FN010001_YORC_version_1.FN010001_YORC_version('1.14.0-rc.2'),
57
+ new FN014008_CODE_launch_hostedWorkbench_type_1.FN014008_CODE_launch_hostedWorkbench_type('pwa-chrome')
56
58
  ];
57
- //# sourceMappingURL=upgrade-1.14.0-beta.4.js.map
59
+ //# sourceMappingURL=upgrade-1.14.0-rc.2.js.map
@@ -45,7 +45,7 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
45
45
  '1.12.1',
46
46
  '1.13.0',
47
47
  '1.13.1',
48
- '1.14.0-beta.4'
48
+ '1.14.0-rc.2'
49
49
  ];
50
50
  }
51
51
  get name() {
@@ -53,11 +53,11 @@ class SpoGroupUserAddCommand extends SpoCommand_1.default {
53
53
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
54
54
  }
55
55
  getGroupId(args) {
56
- if (args.options.groupId) {
57
- return Promise.resolve(args.options.groupId);
58
- }
56
+ const getGroupMethod = args.options.groupName ?
57
+ `GetByName('${encodeURIComponent(args.options.groupName)}')` :
58
+ `GetById('${args.options.groupId}')`;
59
59
  const requestOptions = {
60
- url: `${args.options.webUrl}/_api/web/sitegroups/GetByName('${encodeURIComponent(args.options.groupName)}')`,
60
+ url: `${args.options.webUrl}/_api/web/sitegroups/${getGroupMethod}`,
61
61
  headers: {
62
62
  'accept': 'application/json;odata=nometadata'
63
63
  },
@@ -68,9 +68,9 @@ class SpoGroupUserAddCommand extends SpoCommand_1.default {
68
68
  .then(response => {
69
69
  const groupId = response.Id;
70
70
  if (!groupId) {
71
- return Promise.reject(`The specified group not exist in the SharePoint site`);
71
+ return Promise.reject(`The specified group does not exist in the SharePoint site`);
72
72
  }
73
- return Promise.resolve(groupId);
73
+ return groupId;
74
74
  });
75
75
  }
76
76
  getOnlyActiveUsers(args, logger) {
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../../../cli");
4
+ const request_1 = require("../../../../request");
5
+ const SpoCommand_1 = require("../../../base/SpoCommand");
6
+ const commands_1 = require("../../commands");
7
+ class SpoGroupUserRemoveCommand extends SpoCommand_1.default {
8
+ get name() {
9
+ return commands_1.default.GROUP_USER_REMOVE;
10
+ }
11
+ get description() {
12
+ return 'Removes the specified user from a SharePoint group';
13
+ }
14
+ getTelemetryProperties(args) {
15
+ const telemetryProps = super.getTelemetryProperties(args);
16
+ telemetryProps.groupId = (!(!args.options.groupId)).toString();
17
+ telemetryProps.groupName = (!(!args.options.groupName)).toString();
18
+ telemetryProps.confirm = (!(!args.options.confirm)).toString();
19
+ return telemetryProps;
20
+ }
21
+ commandAction(logger, args, cb) {
22
+ const removeUserfromSPGroup = () => {
23
+ if (this.verbose) {
24
+ logger.logToStderr(`Removing User with Username ${args.options.userName} from Group: ${args.options.groupId ? args.options.groupId : args.options.groupName}`);
25
+ }
26
+ const loginName = `i:0#.f|membership|${args.options.userName}`;
27
+ const requestUrl = `${args.options.webUrl}/_api/web/sitegroups/${args.options.groupId
28
+ ? `GetById('${encodeURIComponent(args.options.groupId)}')`
29
+ : `GetByName('${encodeURIComponent(args.options.groupName)}')`}/users/removeByLoginName(@LoginName)?@LoginName='${encodeURIComponent(loginName)}'`;
30
+ const requestOptions = {
31
+ url: requestUrl,
32
+ headers: {
33
+ 'accept': 'application/json;odata=nometadata'
34
+ },
35
+ responseType: 'json'
36
+ };
37
+ request_1.default
38
+ .post(requestOptions)
39
+ .then(() => {
40
+ cb();
41
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
42
+ };
43
+ if (args.options.confirm) {
44
+ if (this.debug) {
45
+ logger.logToStderr('Confirmation bypassed by entering confirm option. Removing the user from SharePoint Group...');
46
+ }
47
+ removeUserfromSPGroup();
48
+ }
49
+ else {
50
+ cli_1.Cli.prompt({
51
+ type: 'confirm',
52
+ name: 'continue',
53
+ default: false,
54
+ message: `Are you sure you want to remove user User ${args.options.userName} from SharePoint group?`
55
+ }, (result) => {
56
+ if (!result.continue) {
57
+ cb();
58
+ }
59
+ else {
60
+ removeUserfromSPGroup();
61
+ }
62
+ });
63
+ }
64
+ }
65
+ options() {
66
+ const options = [
67
+ {
68
+ option: '-u, --webUrl <webUrl>'
69
+ },
70
+ {
71
+ option: '--groupId [groupId]'
72
+ },
73
+ {
74
+ option: '--groupName [groupName]'
75
+ },
76
+ {
77
+ option: '--userName <userName>'
78
+ },
79
+ {
80
+ option: '--confirm'
81
+ }
82
+ ];
83
+ const parentOptions = super.options();
84
+ return options.concat(parentOptions);
85
+ }
86
+ validate(args) {
87
+ if (args.options.groupId && args.options.groupName) {
88
+ return 'Use either "groupName" or "groupId", but not both';
89
+ }
90
+ if (!args.options.groupId && !args.options.groupName) {
91
+ return 'Either "groupName" or "groupId" is required';
92
+ }
93
+ if (args.options.groupId && isNaN(args.options.groupId)) {
94
+ return `Specified "groupId" ${args.options.groupId} is not valid`;
95
+ }
96
+ return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
97
+ }
98
+ }
99
+ module.exports = new SpoGroupUserRemoveCommand();
100
+ //# sourceMappingURL=group-user-remove.js.map
@@ -64,6 +64,7 @@ exports.default = {
64
64
  GROUP_REMOVE: `${prefix} group remove`,
65
65
  GROUP_USER_ADD: `${prefix} group user add`,
66
66
  GROUP_USER_LIST: `${prefix} group user list`,
67
+ GROUP_USER_REMOVE: `${prefix} group user remove`,
67
68
  HIDEDEFAULTTHEMES_GET: `${prefix} hidedefaultthemes get`,
68
69
  HIDEDEFAULTTHEMES_SET: `${prefix} hidedefaultthemes set`,
69
70
  HOMESITE_GET: `${prefix} homesite get`,
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GraphCommand_1 = require("../../../base/GraphCommand");
4
+ const request_1 = require("../../../../request");
5
+ const commands_1 = require("../../commands");
6
+ class TenantServiceAnnouncementHealthGetCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTH_GET;
9
+ }
10
+ get description() {
11
+ return 'This operation provides the health information of a specified service for a tenant';
12
+ }
13
+ getTelemetryProperties(args) {
14
+ const telemetryProps = super.getTelemetryProperties(args);
15
+ telemetryProps.issues = typeof args.options.issues !== 'undefined';
16
+ return telemetryProps;
17
+ }
18
+ defaultProperties() {
19
+ return ['id', 'status', 'service'];
20
+ }
21
+ commandAction(logger, args, cb) {
22
+ this
23
+ .getServiceHealth(args.options)
24
+ .then((res) => {
25
+ logger.log(res);
26
+ cb();
27
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
28
+ }
29
+ getServiceHealth(options) {
30
+ const requestOptions = {
31
+ url: `${this.resource}/v1.0/admin/serviceAnnouncement/healthOverviews/${options.serviceName}${options.issues && (!options.output || options.output.toLocaleLowerCase() === 'json') ? '?$expand=issues' : ''}`,
32
+ headers: {
33
+ accept: 'application/json;odata.metadata=none'
34
+ },
35
+ responseType: 'json'
36
+ };
37
+ return request_1.default
38
+ .get(requestOptions)
39
+ .then(response => {
40
+ const serviceHealth = response;
41
+ if (!serviceHealth) {
42
+ return Promise.reject(`Error fetching service health`);
43
+ }
44
+ return Promise.resolve(serviceHealth);
45
+ });
46
+ }
47
+ options() {
48
+ const options = [
49
+ { option: '-s, --serviceName <serviceName>' },
50
+ { option: '-i, --issues' }
51
+ ];
52
+ const parentOptions = super.options();
53
+ return options.concat(parentOptions);
54
+ }
55
+ }
56
+ module.exports = new TenantServiceAnnouncementHealthGetCommand();
57
+ //# sourceMappingURL=serviceannouncement-health-get.js.map
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GraphCommand_1 = require("../../../base/GraphCommand");
4
+ const request_1 = require("../../../../request");
5
+ const commands_1 = require("../../commands");
6
+ class TenantServiceAnnouncementHealthListCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTH_LIST;
9
+ }
10
+ get description() {
11
+ return 'This operation provides the health report of all subscribed services for a tenant';
12
+ }
13
+ getTelemetryProperties(args) {
14
+ const telemetryProps = super.getTelemetryProperties(args);
15
+ telemetryProps.issues = typeof args.options.issues !== 'undefined';
16
+ return telemetryProps;
17
+ }
18
+ defaultProperties() {
19
+ return ['id', 'status', 'service'];
20
+ }
21
+ commandAction(logger, args, cb) {
22
+ this
23
+ .listServiceHealth(args.options)
24
+ .then((res) => {
25
+ logger.log(res);
26
+ cb();
27
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
28
+ }
29
+ listServiceHealth(options) {
30
+ const requestOptions = {
31
+ url: `${this.resource}/v1.0/admin/serviceAnnouncement/healthOverviews${options.issues && (!options.output || options.output.toLocaleLowerCase() === 'json') ? '?$expand=issues' : ''}`,
32
+ headers: {
33
+ accept: 'application/json;odata.metadata=none'
34
+ },
35
+ responseType: 'json'
36
+ };
37
+ return request_1.default
38
+ .get(requestOptions)
39
+ .then(response => {
40
+ const serviceHealthList = response.value;
41
+ if (!serviceHealthList) {
42
+ return Promise.reject(`Error fetching service health`);
43
+ }
44
+ return Promise.resolve(serviceHealthList);
45
+ });
46
+ }
47
+ options() {
48
+ const options = [
49
+ { option: '-i, --issues' }
50
+ ];
51
+ const parentOptions = super.options();
52
+ return options.concat(parentOptions);
53
+ }
54
+ }
55
+ module.exports = new TenantServiceAnnouncementHealthListCommand();
56
+ //# sourceMappingURL=serviceannouncement-health-list.js.map
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
+ const commands_1 = require("../../commands");
6
+ class TenantServiceAnnouncementHealthIssueGetCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTHISSUE_GET;
9
+ }
10
+ get description() {
11
+ return 'Gets a specified service health issue for tenant';
12
+ }
13
+ commandAction(logger, args, cb) {
14
+ const requestOptions = {
15
+ url: `${this.resource}/v1.0/admin/serviceAnnouncement/issues/${encodeURIComponent(args.options.id)}`,
16
+ headers: {
17
+ accept: 'application/json;odata.metadata=none'
18
+ },
19
+ responseType: 'json'
20
+ };
21
+ request_1.default
22
+ .get(requestOptions)
23
+ .then((res) => {
24
+ logger.log(res);
25
+ cb();
26
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
27
+ }
28
+ options() {
29
+ const options = [
30
+ {
31
+ option: '-i, --id <id>'
32
+ }
33
+ ];
34
+ const parentOptions = super.options();
35
+ return options.concat(parentOptions);
36
+ }
37
+ }
38
+ module.exports = new TenantServiceAnnouncementHealthIssueGetCommand();
39
+ //# sourceMappingURL=serviceannouncement-healthissue-get.js.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
4
+ const commands_1 = require("../../commands");
5
+ class TenantServiceAnnouncementHealthIssueListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ get name() {
7
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTHISSUE_LIST;
8
+ }
9
+ get description() {
10
+ return 'Gets all service health issues for the tenant';
11
+ }
12
+ defaultProperties() {
13
+ return ['id', 'title'];
14
+ }
15
+ commandAction(logger, args, cb) {
16
+ let endpoint = `${this.resource}/v1.0/admin/serviceAnnouncement/issues`;
17
+ if (args.options.service) {
18
+ endpoint += `?$filter=service eq '${encodeURIComponent(args.options.service)}'`;
19
+ }
20
+ this
21
+ .getAllItems(endpoint, logger, true)
22
+ .then(() => {
23
+ logger.log(this.items);
24
+ cb();
25
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
26
+ }
27
+ options() {
28
+ const options = [
29
+ {
30
+ option: '-s, --service [service]'
31
+ }
32
+ ];
33
+ const parentOptions = super.options();
34
+ return options.concat(parentOptions);
35
+ }
36
+ }
37
+ module.exports = new TenantServiceAnnouncementHealthIssueListCommand();
38
+ //# sourceMappingURL=serviceannouncement-healthissue-list.js.map
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
+ const commands_1 = require("../../commands");
6
+ class TenantServiceAnnouncementMessageGetCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.SERVICEANNOUNCEMENT_MESSAGE_GET;
9
+ }
10
+ get description() {
11
+ return 'Retrieves a specified service update message for the tenant';
12
+ }
13
+ commandAction(logger, args, cb) {
14
+ if (this.verbose) {
15
+ logger.logToStderr(`Retrieving service update message ${args.options.id}`);
16
+ }
17
+ const requestOptions = {
18
+ url: `${this.resource}/v1.0/admin/serviceAnnouncement/messages/${args.options.id}`,
19
+ headers: {
20
+ accept: 'application/json;odata.metadata=none'
21
+ },
22
+ responseType: 'json'
23
+ };
24
+ request_1.default
25
+ .get(requestOptions)
26
+ .then((res) => {
27
+ logger.log(res);
28
+ cb();
29
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
30
+ }
31
+ options() {
32
+ const options = [
33
+ {
34
+ option: '-i, --id <id>'
35
+ }
36
+ ];
37
+ const parentOptions = super.options();
38
+ return options.concat(parentOptions);
39
+ }
40
+ isValidId(id) {
41
+ return (/MC\d{6}/).test(id);
42
+ }
43
+ validate(args) {
44
+ if (!this.isValidId(args.options.id)) {
45
+ return `${args.options.id} is not a valid message ID`;
46
+ }
47
+ return true;
48
+ }
49
+ }
50
+ module.exports = new TenantServiceAnnouncementMessageGetCommand();
51
+ //# sourceMappingURL=serviceannouncement-message-get.js.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
4
+ const commands_1 = require("../../commands");
5
+ class TenantServiceAnnouncementMessageListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ get name() {
7
+ return commands_1.default.SERVICEANNOUNCEMENT_MESSAGE_LIST;
8
+ }
9
+ get description() {
10
+ return 'Gets all service update messages for the tenant';
11
+ }
12
+ defaultProperties() {
13
+ return ['id', 'title'];
14
+ }
15
+ commandAction(logger, args, cb) {
16
+ let endpoint = `${this.resource}/v1.0/admin/serviceAnnouncement/messages`;
17
+ if (args.options.service) {
18
+ endpoint += `?$filter=services/any(c:c+eq+'${encodeURIComponent(args.options.service)}')`;
19
+ }
20
+ this
21
+ .getAllItems(endpoint, logger, true)
22
+ .then(() => {
23
+ logger.log(this.items);
24
+ cb();
25
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
26
+ }
27
+ options() {
28
+ const options = [
29
+ {
30
+ option: '-s, --service [service]'
31
+ }
32
+ ];
33
+ const parentOptions = super.options();
34
+ return options.concat(parentOptions);
35
+ }
36
+ }
37
+ module.exports = new TenantServiceAnnouncementMessageListCommand();
38
+ //# sourceMappingURL=serviceannouncement-message-list.js.map
@@ -10,9 +10,15 @@ exports.default = {
10
10
  REPORT_OFFICE365ACTIVATIONSUSERDETAIL: `${prefix} report office365activationsuserdetail`,
11
11
  REPORT_OFFICE365ACTIVATIONSUSERCOUNTS: `${prefix} report office365activationsusercounts`,
12
12
  REPORT_SERVICESUSERCOUNTS: `${prefix} report servicesusercounts`,
13
+ SERVICEANNOUNCEMENT_HEALTHISSUE_GET: `${prefix} serviceannouncement healthissue get`,
13
14
  SERVICE_LIST: `${prefix} service list`,
14
15
  SERVICE_MESSAGE_LIST: `${prefix} service message list`,
15
16
  SERVICE_REPORT_HISTORICALSERVICESTATUS: `${prefix} service report historicalservicestatus`,
17
+ SERVICEANNOUNCEMENT_HEALTH_GET: `${prefix} serviceannouncement health get`,
18
+ SERVICEANNOUNCEMENT_HEALTH_LIST: `${prefix} serviceannouncement health list`,
19
+ SERVICEANNOUNCEMENT_HEALTHISSUE_LIST: `${prefix} serviceannouncement healthissue list`,
20
+ SERVICEANNOUNCEMENT_MESSAGE_GET: `${prefix} serviceannouncement message get`,
21
+ SERVICEANNOUNCEMENT_MESSAGE_LIST: `${prefix} serviceannouncement message list`,
16
22
  STATUS_LIST: `${prefix} status list`
17
23
  };
18
24
  //# sourceMappingURL=commands.js.map
@@ -13,6 +13,9 @@ m365 aad user list [options]
13
13
  `-p, --properties [properties]`
14
14
  : Comma-separated list of properties to retrieve
15
15
 
16
+ `-d, --deleted`
17
+ : Use to retrieve deleted users
18
+
16
19
  --8<-- "docs/cmd/_global.md"
17
20
 
18
21
  ## Remarks
@@ -31,6 +34,12 @@ List all users in the tenant
31
34
  m365 aad user list
32
35
  ```
33
36
 
37
+ List all recently deleted users in the tenant
38
+
39
+ ```sh
40
+ m365 aad user list --deleted
41
+ ```
42
+
34
43
  List all users in the tenant. For each one return the display name and e-mail address
35
44
 
36
45
  ```sh
@@ -0,0 +1,24 @@
1
+ # planner task details get
2
+
3
+ Retrieve the details of the specified planner task
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner task details get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --taskId <taskId>`
14
+ : ID of the task to retrieve details from
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Retrieve the details of the specified planner task
21
+
22
+ ```sh
23
+ m365 planner task details get --taskId 'vzCcZoOv-U27PwydxHB8opcADJo-'
24
+ ```
@@ -0,0 +1,24 @@
1
+ # planner task get
2
+
3
+ Retrieve the the specified planner task
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner task get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id <id>`
14
+ : ID of the task to retrieve details from
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Retrieve the the specified planner task
21
+
22
+ ```sh
23
+ m365 planner task get --id 'vzCcZoOv-U27PwydxHB8opcADJo-'
24
+ ```