@pnp/cli-microsoft365 10.4.0-beta.3149a76 → 10.4.0-beta.47f1e4d
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.cjs +3 -1
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/cli/cli.js +10 -2
- package/dist/config.js +2 -0
- package/dist/m365/entra/commands/resourcenamespace/resourcenamespace-list.js +28 -0
- package/dist/m365/entra/commands/user/user-session-revoke.js +70 -0
- package/dist/m365/entra/commands.js +2 -0
- package/dist/m365/outlook/commands/mailbox/mailbox-settings-get.js +71 -0
- package/dist/m365/outlook/commands/mailbox/mailbox-settings-set.js +5 -2
- package/dist/m365/outlook/commands.js +1 -0
- package/dist/m365/spo/commands/mail/mail-send.js +2 -0
- package/dist/m365/spo/commands/page/page-get.js +40 -27
- package/dist/m365/tenant/commands/report/report-settings-get.js +32 -0
- package/dist/m365/tenant/commands.js +1 -0
- package/docs/docs/cmd/entra/resourcenamespace/resourcenamespace-list.mdx +96 -0
- package/docs/docs/cmd/entra/rolepermission/rolepermission-list.mdx +2 -0
- package/docs/docs/cmd/entra/user/user-session-revoke.mdx +65 -0
- package/docs/docs/cmd/outlook/mailbox/mailbox-settings-get.mdx +131 -0
- package/docs/docs/cmd/spo/page/page-get.mdx +11 -2
- package/docs/docs/cmd/tenant/report/report-settings-get.mdx +67 -0
- package/package.json +1 -1
package/dist/cli/cli.js
CHANGED
|
@@ -159,9 +159,17 @@ async function execute(rawArgs) {
|
|
|
159
159
|
shouldPrompt) {
|
|
160
160
|
await cli.error('🌶️ Provide values for the following parameters:');
|
|
161
161
|
for (const error of result.error.errors) {
|
|
162
|
-
const
|
|
162
|
+
const optionName = error.path.join('.');
|
|
163
|
+
const optionInfo = cli.commandToExecute.options.find(o => o.name === optionName);
|
|
163
164
|
const answer = await cli.promptForValue(optionInfo);
|
|
164
|
-
|
|
165
|
+
// coerce the answer to the correct type
|
|
166
|
+
try {
|
|
167
|
+
const parsed = getCommandOptionsFromArgs([`--${optionName}`, answer], cli.commandToExecute);
|
|
168
|
+
cli.optionsFromArgs.options[optionName] = parsed[optionName];
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
return cli.closeWithError(e.message, cli.optionsFromArgs, true);
|
|
172
|
+
}
|
|
165
173
|
}
|
|
166
174
|
}
|
|
167
175
|
else {
|
package/dist/config.js
CHANGED
|
@@ -35,8 +35,10 @@ export default {
|
|
|
35
35
|
'https://graph.microsoft.com/Policy.Read.All',
|
|
36
36
|
'https://graph.microsoft.com/RecordsManagement.ReadWrite.All',
|
|
37
37
|
'https://graph.microsoft.com/Reports.ReadWrite.All',
|
|
38
|
+
'https://graph.microsoft.com/ReportSettings.ReadWrite.All',
|
|
38
39
|
'https://graph.microsoft.com/RoleAssignmentSchedule.ReadWrite.Directory',
|
|
39
40
|
'https://graph.microsoft.com/RoleEligibilitySchedule.Read.Directory',
|
|
41
|
+
'https://graph.microsoft.com/RoleManagement.Read.Directory',
|
|
40
42
|
'https://graph.microsoft.com/SecurityEvents.Read.All',
|
|
41
43
|
'https://graph.microsoft.com/ServiceHealth.Read.All',
|
|
42
44
|
'https://graph.microsoft.com/ServiceMessage.Read.All',
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { odata } from '../../../../utils/odata.js';
|
|
2
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
3
|
+
import commands from '../../commands.js';
|
|
4
|
+
class EntraResourcenamespaceListCommand extends GraphCommand {
|
|
5
|
+
get name() {
|
|
6
|
+
return commands.RESOURCENAMESPACE_LIST;
|
|
7
|
+
}
|
|
8
|
+
get description() {
|
|
9
|
+
return 'Get a list of the RBAC resource namespaces and their properties';
|
|
10
|
+
}
|
|
11
|
+
defaultProperties() {
|
|
12
|
+
return ['id', 'name'];
|
|
13
|
+
}
|
|
14
|
+
async commandAction(logger) {
|
|
15
|
+
if (this.verbose) {
|
|
16
|
+
await logger.logToStderr('Getting a list of the RBAC resource namespaces and their properties...');
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const results = await odata.getAllItems(`${this.resource}/beta/roleManagement/directory/resourceNamespaces`);
|
|
20
|
+
await logger.log(results);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
this.handleRejectedODataJsonPromise(err);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export default new EntraResourcenamespaceListCommand();
|
|
28
|
+
//# sourceMappingURL=resourcenamespace-list.js.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
3
|
+
import { zod } from '../../../../utils/zod.js';
|
|
4
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
5
|
+
import commands from '../../commands.js';
|
|
6
|
+
import { validation } from '../../../../utils/validation.js';
|
|
7
|
+
import request from '../../../../request.js';
|
|
8
|
+
import { cli } from '../../../../cli/cli.js';
|
|
9
|
+
import { formatting } from '../../../../utils/formatting.js';
|
|
10
|
+
const options = globalOptionsZod
|
|
11
|
+
.extend({
|
|
12
|
+
userId: zod.alias('i', z.string().refine(id => validation.isValidGuid(id), id => ({
|
|
13
|
+
message: `'${id}' is not a valid GUID.`
|
|
14
|
+
})).optional()),
|
|
15
|
+
userName: zod.alias('n', z.string().refine(name => validation.isValidUserPrincipalName(name), name => ({
|
|
16
|
+
message: `'${name}' is not a valid UPN.`
|
|
17
|
+
})).optional()),
|
|
18
|
+
force: zod.alias('f', z.boolean().optional())
|
|
19
|
+
})
|
|
20
|
+
.strict();
|
|
21
|
+
class EntraUserSessionRevokeCommand extends GraphCommand {
|
|
22
|
+
get name() {
|
|
23
|
+
return commands.USER_SESSION_REVOKE;
|
|
24
|
+
}
|
|
25
|
+
get description() {
|
|
26
|
+
return 'Revokes all sign-in sessions for a given user';
|
|
27
|
+
}
|
|
28
|
+
get schema() {
|
|
29
|
+
return options;
|
|
30
|
+
}
|
|
31
|
+
getRefinedSchema(schema) {
|
|
32
|
+
return schema
|
|
33
|
+
.refine(options => [options.userId, options.userName].filter(o => o !== undefined).length === 1, {
|
|
34
|
+
message: `Specify either 'userId' or 'userName'.`
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async commandAction(logger, args) {
|
|
38
|
+
const revokeUserSessions = async () => {
|
|
39
|
+
try {
|
|
40
|
+
const userIdentifier = args.options.userId ?? args.options.userName;
|
|
41
|
+
if (this.verbose) {
|
|
42
|
+
await logger.logToStderr(`Invalidating all the refresh tokens for user ${userIdentifier}...`);
|
|
43
|
+
}
|
|
44
|
+
const requestOptions = {
|
|
45
|
+
url: `${this.resource}/v1.0/users('${formatting.encodeQueryParameter(userIdentifier)}')/revokeSignInSessions`,
|
|
46
|
+
headers: {
|
|
47
|
+
accept: 'application/json;odata.metadata=none'
|
|
48
|
+
},
|
|
49
|
+
responseType: 'json',
|
|
50
|
+
data: {}
|
|
51
|
+
};
|
|
52
|
+
await request.post(requestOptions);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
this.handleRejectedODataJsonPromise(err);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
if (args.options.force) {
|
|
59
|
+
await revokeUserSessions();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const result = await cli.promptForConfirmation({ message: `This will revoke all sessions for the user '${args.options.userId || args.options.userName}', requiring the user to re-sign in from all devices. Are you sure?` });
|
|
63
|
+
if (result) {
|
|
64
|
+
await revokeUserSessions();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export default new EntraUserSessionRevokeCommand();
|
|
70
|
+
//# sourceMappingURL=user-session-revoke.js.map
|
|
@@ -88,6 +88,7 @@ export default {
|
|
|
88
88
|
PIM_ROLE_ASSIGNMENT_ELIGIBILITY_LIST: `${prefix} pim role assignment eligibility list`,
|
|
89
89
|
PIM_ROLE_REQUEST_LIST: `${prefix} pim role request list`,
|
|
90
90
|
POLICY_LIST: `${prefix} policy list`,
|
|
91
|
+
RESOURCENAMESPACE_LIST: `${prefix} resourcenamespace list`,
|
|
91
92
|
ROLEDEFINITION_ADD: `${prefix} roledefinition add`,
|
|
92
93
|
ROLEDEFINITION_LIST: `${prefix} roledefinition list`,
|
|
93
94
|
ROLEDEFINITION_GET: `${prefix} roledefinition get`,
|
|
@@ -118,6 +119,7 @@ export default {
|
|
|
118
119
|
USER_REGISTRATIONDETAILS_LIST: `${prefix} user registrationdetails list`,
|
|
119
120
|
USER_REMOVE: `${prefix} user remove`,
|
|
120
121
|
USER_RECYCLEBINITEM_RESTORE: `${prefix} user recyclebinitem restore`,
|
|
122
|
+
USER_SESSION_REVOKE: `${prefix} user session revoke`,
|
|
121
123
|
USER_SET: `${prefix} user set`,
|
|
122
124
|
USER_SIGNIN_LIST: `${prefix} user signin list`
|
|
123
125
|
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
3
|
+
import { zod } from '../../../../utils/zod.js';
|
|
4
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
5
|
+
import commands from '../../commands.js';
|
|
6
|
+
import { validation } from '../../../../utils/validation.js';
|
|
7
|
+
import request from '../../../../request.js';
|
|
8
|
+
import { accessToken } from '../../../../utils/accessToken.js';
|
|
9
|
+
import auth from '../../../../Auth.js';
|
|
10
|
+
const options = globalOptionsZod
|
|
11
|
+
.extend({
|
|
12
|
+
userId: zod.alias('i', z.string().refine(id => validation.isValidGuid(id), id => ({
|
|
13
|
+
message: `'${id}' is not a valid GUID.`
|
|
14
|
+
})).optional()),
|
|
15
|
+
userName: zod.alias('n', z.string().refine(name => validation.isValidUserPrincipalName(name), name => ({
|
|
16
|
+
message: `'${name}' is not a valid UPN.`
|
|
17
|
+
})).optional())
|
|
18
|
+
})
|
|
19
|
+
.strict();
|
|
20
|
+
class OutlookMailboxSettingsGetCommand extends GraphCommand {
|
|
21
|
+
get name() {
|
|
22
|
+
return commands.MAILBOX_SETTINGS_GET;
|
|
23
|
+
}
|
|
24
|
+
get description() {
|
|
25
|
+
return `Get the user's mailbox settings`;
|
|
26
|
+
}
|
|
27
|
+
get schema() {
|
|
28
|
+
return options;
|
|
29
|
+
}
|
|
30
|
+
getRefinedSchema(schema) {
|
|
31
|
+
return schema
|
|
32
|
+
.refine(options => !(options.userId && options.userName), {
|
|
33
|
+
message: 'Specify either userId or userName, but not both'
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async commandAction(logger, args) {
|
|
37
|
+
const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken);
|
|
38
|
+
let requestUrl = `${this.resource}/v1.0/me/mailboxSettings`;
|
|
39
|
+
if (isAppOnlyAccessToken) {
|
|
40
|
+
if (!args.options.userId && !args.options.userName) {
|
|
41
|
+
throw 'When running with application permissions either userId or userName is required';
|
|
42
|
+
}
|
|
43
|
+
const userIdentifier = args.options.userId ?? args.options.userName;
|
|
44
|
+
if (this.verbose) {
|
|
45
|
+
await logger.logToStderr(`Retrieving mailbox settings for user ${userIdentifier}...`);
|
|
46
|
+
}
|
|
47
|
+
requestUrl = `${this.resource}/v1.0/users('${userIdentifier}')/mailboxSettings`;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (args.options.userId || args.options.userName) {
|
|
51
|
+
throw 'You can retrieve mailbox settings of other users only if CLI is authenticated in app-only mode';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const requestOptions = {
|
|
55
|
+
url: requestUrl,
|
|
56
|
+
headers: {
|
|
57
|
+
accept: 'application/json;odata.metadata=none'
|
|
58
|
+
},
|
|
59
|
+
responseType: 'json'
|
|
60
|
+
};
|
|
61
|
+
try {
|
|
62
|
+
const result = await request.get(requestOptions);
|
|
63
|
+
await logger.log(result);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
this.handleRejectedODataJsonPromise(err);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export default new OutlookMailboxSettingsGetCommand();
|
|
71
|
+
//# sourceMappingURL=mailbox-settings-get.js.map
|
|
@@ -46,6 +46,9 @@ class OutlookMailboxSettingsSetCommand extends GraphCommand {
|
|
|
46
46
|
}
|
|
47
47
|
getRefinedSchema(schema) {
|
|
48
48
|
return schema
|
|
49
|
+
.refine(options => !(options.userId && options.userName), {
|
|
50
|
+
message: 'Specify either userId or userName, but not both'
|
|
51
|
+
})
|
|
49
52
|
.refine(options => [options.workingDays, options.workingHoursStartTime, options.workingHoursEndTime, options.workingHoursTimeZone,
|
|
50
53
|
options.autoReplyStatus, options.autoReplyExternalAudience, options.autoReplyExternalMessage, options.autoReplyInternalMessage,
|
|
51
54
|
options.autoReplyStartDateTime, options.autoReplyStartTimeZone, options.autoReplyEndDateTime, options.autoReplyEndTimeZone,
|
|
@@ -57,8 +60,8 @@ class OutlookMailboxSettingsSetCommand extends GraphCommand {
|
|
|
57
60
|
const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken);
|
|
58
61
|
let requestUrl = `${this.resource}/v1.0/me/mailboxSettings`;
|
|
59
62
|
if (isAppOnlyAccessToken) {
|
|
60
|
-
if (args.options.userId && args.options.userName) {
|
|
61
|
-
throw 'When running with application permissions either userId or userName is required
|
|
63
|
+
if (!args.options.userId && !args.options.userName) {
|
|
64
|
+
throw 'When running with application permissions either userId or userName is required';
|
|
62
65
|
}
|
|
63
66
|
const userIdentifier = args.options.userId ?? args.options.userName;
|
|
64
67
|
if (this.verbose) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const prefix = 'outlook';
|
|
2
2
|
export default {
|
|
3
3
|
MAIL_SEND: `${prefix} mail send`,
|
|
4
|
+
MAILBOX_SETTINGS_GET: `${prefix} mailbox settings get`,
|
|
4
5
|
MAILBOX_SETTINGS_SET: `${prefix} mailbox settings set`,
|
|
5
6
|
MESSAGE_GET: `${prefix} message get`,
|
|
6
7
|
MESSAGE_LIST: `${prefix} message list`,
|
|
@@ -8,6 +8,7 @@ import request from '../../../../request.js';
|
|
|
8
8
|
import { validation } from '../../../../utils/validation.js';
|
|
9
9
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
10
10
|
import commands from '../../commands.js';
|
|
11
|
+
import outlookCommands from '../../../outlook/commands.js';
|
|
11
12
|
class SpoMailSendCommand extends SpoCommand {
|
|
12
13
|
get name() {
|
|
13
14
|
return commands.MAIL_SEND;
|
|
@@ -23,6 +24,7 @@ class SpoMailSendCommand extends SpoCommand {
|
|
|
23
24
|
__classPrivateFieldGet(this, _SpoMailSendCommand_instances, "m", _SpoMailSendCommand_initValidators).call(this);
|
|
24
25
|
}
|
|
25
26
|
async commandAction(logger, args) {
|
|
27
|
+
await this.showDeprecationWarning(logger, commands.MAIL_SEND, outlookCommands.MAIL_SEND);
|
|
26
28
|
const params = {
|
|
27
29
|
properties: {
|
|
28
30
|
__metadata: { "type": "SP.Utilities.EmailProperties" },
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoPageGetCommand_instances, _SpoPageGetCommand_initOptions, _SpoPageGetCommand_initValidators;
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { zod } from '../../../../utils/zod.js';
|
|
3
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
7
4
|
import request from '../../../../request.js';
|
|
8
5
|
import { formatting } from '../../../../utils/formatting.js';
|
|
9
6
|
import { urlUtil } from '../../../../utils/urlUtil.js';
|
|
10
7
|
import { validation } from '../../../../utils/validation.js';
|
|
11
8
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
12
9
|
import commands from '../../commands.js';
|
|
10
|
+
const options = globalOptionsZod
|
|
11
|
+
.extend({
|
|
12
|
+
webUrl: zod.alias('u', z.string()
|
|
13
|
+
.refine(url => validation.isValidSharePointUrl(url) === true, url => ({
|
|
14
|
+
message: `'${url}' is not a valid SharePoint Online site URL.`
|
|
15
|
+
}))),
|
|
16
|
+
name: zod.alias('n', z.string()).optional(),
|
|
17
|
+
default: z.boolean().optional(),
|
|
18
|
+
metadataOnly: z.boolean().optional()
|
|
19
|
+
})
|
|
20
|
+
.strict();
|
|
13
21
|
class SpoPageGetCommand extends SpoCommand {
|
|
14
22
|
get name() {
|
|
15
23
|
return commands.PAGE_GET;
|
|
@@ -20,21 +28,37 @@ class SpoPageGetCommand extends SpoCommand {
|
|
|
20
28
|
defaultProperties() {
|
|
21
29
|
return ['commentsDisabled', 'numSections', 'numControls', 'title', 'layoutType'];
|
|
22
30
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
get schema() {
|
|
32
|
+
return options;
|
|
33
|
+
}
|
|
34
|
+
getRefinedSchema(schema) {
|
|
35
|
+
return schema
|
|
36
|
+
.refine(options => [options.name, options.default].filter(x => x !== undefined).length === 1, {
|
|
37
|
+
message: `Specify either name or default, but not both.`
|
|
38
|
+
});
|
|
28
39
|
}
|
|
29
40
|
async commandAction(logger, args) {
|
|
30
41
|
if (this.verbose) {
|
|
31
42
|
await logger.logToStderr(`Retrieving information about the page...`);
|
|
32
43
|
}
|
|
33
|
-
let pageName =
|
|
34
|
-
if (args.options.name.indexOf('.aspx') < 0) {
|
|
35
|
-
pageName += '.aspx';
|
|
36
|
-
}
|
|
44
|
+
let pageName = '';
|
|
37
45
|
try {
|
|
46
|
+
if (args.options.name) {
|
|
47
|
+
pageName = args.options.name.endsWith('.aspx')
|
|
48
|
+
? args.options.name
|
|
49
|
+
: `${args.options.name}.aspx`;
|
|
50
|
+
}
|
|
51
|
+
else if (args.options.default) {
|
|
52
|
+
const requestOptions = {
|
|
53
|
+
url: `${args.options.webUrl}/_api/Web/RootFolder?$select=WelcomePage`,
|
|
54
|
+
headers: {
|
|
55
|
+
accept: 'application/json;odata=nometadata'
|
|
56
|
+
},
|
|
57
|
+
responseType: 'json'
|
|
58
|
+
};
|
|
59
|
+
const { WelcomePage } = await request.get(requestOptions);
|
|
60
|
+
pageName = WelcomePage.split('/').pop();
|
|
61
|
+
}
|
|
38
62
|
let requestOptions = {
|
|
39
63
|
url: `${args.options.webUrl}/_api/web/GetFileByServerRelativePath(DecodedUrl='${urlUtil.getServerRelativeSiteUrl(args.options.webUrl)}/SitePages/${formatting.encodeQueryParameter(pageName)}')?$expand=ListItemAllFields/ClientSideApplicationId,ListItemAllFields/PageLayoutType,ListItemAllFields/CommentsDisabled`,
|
|
40
64
|
headers: {
|
|
@@ -45,7 +69,7 @@ class SpoPageGetCommand extends SpoCommand {
|
|
|
45
69
|
};
|
|
46
70
|
const page = await request.get(requestOptions);
|
|
47
71
|
if (page.ListItemAllFields.ClientSideApplicationId !== 'b6917cb1-93a0-4b97-a84d-7cf49975d4ec') {
|
|
48
|
-
throw `Page ${
|
|
72
|
+
throw `Page ${pageName} is not a modern page.`;
|
|
49
73
|
}
|
|
50
74
|
let pageItemData = {};
|
|
51
75
|
pageItemData = Object.assign({}, page);
|
|
@@ -80,16 +104,5 @@ class SpoPageGetCommand extends SpoCommand {
|
|
|
80
104
|
}
|
|
81
105
|
}
|
|
82
106
|
}
|
|
83
|
-
_SpoPageGetCommand_instances = new WeakSet(), _SpoPageGetCommand_initOptions = function _SpoPageGetCommand_initOptions() {
|
|
84
|
-
this.options.unshift({
|
|
85
|
-
option: '-n, --name <name>'
|
|
86
|
-
}, {
|
|
87
|
-
option: '-u, --webUrl <webUrl>'
|
|
88
|
-
}, {
|
|
89
|
-
option: '--metadataOnly'
|
|
90
|
-
});
|
|
91
|
-
}, _SpoPageGetCommand_initValidators = function _SpoPageGetCommand_initValidators() {
|
|
92
|
-
this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
|
|
93
|
-
};
|
|
94
107
|
export default new SpoPageGetCommand();
|
|
95
108
|
//# sourceMappingURL=page-get.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
2
|
+
import commands from '../../commands.js';
|
|
3
|
+
import request from '../../../../request.js';
|
|
4
|
+
class TenantReportSettingsGetCommand extends GraphCommand {
|
|
5
|
+
get name() {
|
|
6
|
+
return commands.REPORT_SETTINGS_GET;
|
|
7
|
+
}
|
|
8
|
+
get description() {
|
|
9
|
+
return 'Get the tenant-level settings for Microsoft 365 reports';
|
|
10
|
+
}
|
|
11
|
+
async commandAction(logger) {
|
|
12
|
+
if (this.verbose) {
|
|
13
|
+
await logger.logToStderr('Getting tenant-level settings for Microsoft 365 reports...');
|
|
14
|
+
}
|
|
15
|
+
const requestOptions = {
|
|
16
|
+
url: `${this.resource}/v1.0/admin/reportSettings`,
|
|
17
|
+
headers: {
|
|
18
|
+
accept: 'application/json;odata.metadata=none'
|
|
19
|
+
},
|
|
20
|
+
responseType: 'json'
|
|
21
|
+
};
|
|
22
|
+
try {
|
|
23
|
+
const res = await request.get(requestOptions);
|
|
24
|
+
await logger.log(res);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
this.handleRejectedODataJsonPromise(err);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default new TenantReportSettingsGetCommand();
|
|
32
|
+
//# sourceMappingURL=report-settings-get.js.map
|
|
@@ -15,6 +15,7 @@ export default {
|
|
|
15
15
|
REPORT_OFFICE365ACTIVATIONSUSERDETAIL: `${prefix} report office365activationsuserdetail`,
|
|
16
16
|
REPORT_OFFICE365ACTIVATIONSUSERCOUNTS: `${prefix} report office365activationsusercounts`,
|
|
17
17
|
REPORT_SERVICESUSERCOUNTS: `${prefix} report servicesusercounts`,
|
|
18
|
+
REPORT_SETTINGS_GET: `${prefix} report settings get`,
|
|
18
19
|
REPORT_SETTINGS_SET: `${prefix} report settings set`,
|
|
19
20
|
SECURITY_ALERTS_LIST: `${prefix} security alerts list`,
|
|
20
21
|
SERVICEANNOUNCEMENT_HEALTHISSUE_GET: `${prefix} serviceannouncement healthissue get`,
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
4
|
+
|
|
5
|
+
# entra resourcenamespace list
|
|
6
|
+
|
|
7
|
+
Get a list of the RBAC resource namespaces and their properties
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
m365 entra resourcenamespace list [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
<Global />
|
|
18
|
+
|
|
19
|
+
## Remarks
|
|
20
|
+
|
|
21
|
+
:::warning
|
|
22
|
+
|
|
23
|
+
The command is based on an API that is currently in preview and is subject to change once the API reached general availability.
|
|
24
|
+
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
Retrieve all resource namespaces.
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
m365 entra resourcenamespace list
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Response
|
|
36
|
+
|
|
37
|
+
<Tabs>
|
|
38
|
+
<TabItem value="JSON">
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
[
|
|
42
|
+
{
|
|
43
|
+
"id": "microsoft.directory",
|
|
44
|
+
"name": "microsoft.directory"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "microsoft.aad.b2c",
|
|
48
|
+
"name": "microsoft.aad.b2c"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
</TabItem>
|
|
54
|
+
<TabItem value="Text">
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
id name
|
|
58
|
+
-------------------- --------------------
|
|
59
|
+
microsoft.directory microsoft.directory
|
|
60
|
+
microsoft.aad.b2c microsoft.aad.b2c
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
</TabItem>
|
|
64
|
+
<TabItem value="CSV">
|
|
65
|
+
|
|
66
|
+
```csv
|
|
67
|
+
id,name
|
|
68
|
+
microsoft.directory,microsoft.directory
|
|
69
|
+
microsoft.aad.b2c,microsoft.aad.b2c
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
</TabItem>
|
|
73
|
+
<TabItem value="Markdown">
|
|
74
|
+
|
|
75
|
+
```md
|
|
76
|
+
# entra resourcenamespace list
|
|
77
|
+
|
|
78
|
+
Date: 1/31/2025
|
|
79
|
+
|
|
80
|
+
## microsoft.directory (microsoft.directory)
|
|
81
|
+
|
|
82
|
+
Property | Value
|
|
83
|
+
---------|-------
|
|
84
|
+
id | microsoft.directory
|
|
85
|
+
name | microsoft.directory
|
|
86
|
+
|
|
87
|
+
## microsoft.aad.b2c (microsoft.aad.b2c)
|
|
88
|
+
|
|
89
|
+
Property | Value
|
|
90
|
+
---------|-------
|
|
91
|
+
id | microsoft.aad.b2c
|
|
92
|
+
name | microsoft.aad.b2c
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
</TabItem>
|
|
96
|
+
</Tabs>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
|
|
3
|
+
# entra user session revoke
|
|
4
|
+
|
|
5
|
+
Revokes all sign-in sessions for a given user
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
m365 entra user session revoke [options]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Options
|
|
14
|
+
```md definition-list
|
|
15
|
+
`-i, --userId [userId]`
|
|
16
|
+
: The id of the user. Specify either `userId` or `userName`, but not both.
|
|
17
|
+
|
|
18
|
+
`-n, --userName [userName]`
|
|
19
|
+
: The user principal name of the user. Specify either `userId` or `userName`, but not both.
|
|
20
|
+
|
|
21
|
+
`-f, --force`
|
|
22
|
+
: Don't prompt for confirmation.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
<Global />
|
|
26
|
+
|
|
27
|
+
## Remarks
|
|
28
|
+
|
|
29
|
+
:::info
|
|
30
|
+
|
|
31
|
+
To use this command you must be either **User Administrator** or **Global Administrator**.
|
|
32
|
+
|
|
33
|
+
:::
|
|
34
|
+
|
|
35
|
+
:::note
|
|
36
|
+
|
|
37
|
+
There might be a small delay of a few minutes before tokens are revoked.
|
|
38
|
+
|
|
39
|
+
This API doesn't revoke sign-in sessions for external users, because external users sign in through their home tenant.
|
|
40
|
+
|
|
41
|
+
:::
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
Revoke sign-in sessions of a user specified by id
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
m365 entra user session revoke --userId 4fb72b9b-d0b0-4a35-8bc1-83f9a6488c48
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Revoke sign-in sessions of a user specified by its UPN
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
m365 entra user session revoke --userName john.doe@contoso.onmicrosoft.com
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Revoke sign-in sessions of a user specified by its UPN without prompting for confirmation
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
m365 entra user session revoke --userName john.doe@contoso.onmicrosoft.com --force
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Response
|
|
64
|
+
|
|
65
|
+
The command won't return a response on success.
|