@pnp/cli-microsoft365 10.6.0-beta.807bbab → 10.6.0-beta.908b842
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/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/config.js +1 -0
- package/dist/m365/entra/commands/policy/policy-list.js +46 -3
- package/dist/m365/graph/commands/openextension/openextension-get.js +57 -0
- package/dist/m365/graph/commands/openextension/openextension-list.js +62 -0
- package/dist/m365/graph/commands/openextension/openextension-remove.js +68 -0
- package/dist/m365/graph/commands.js +3 -0
- package/docs/docs/cmd/entra/policy/policy-list.mdx +1 -1
- package/docs/docs/cmd/graph/openextension/openextension-get.mdx +111 -0
- package/docs/docs/cmd/graph/openextension/openextension-list.mdx +129 -0
- package/docs/docs/cmd/graph/openextension/openextension-remove.mdx +59 -0
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -33,6 +33,7 @@ export default {
|
|
|
33
33
|
'https://graph.microsoft.com/PeopleSettings.ReadWrite.All',
|
|
34
34
|
'https://graph.microsoft.com/Place.Read.All',
|
|
35
35
|
'https://graph.microsoft.com/Policy.Read.All',
|
|
36
|
+
'https://graph.microsoft.com/Policy.Read.PermissionGrant',
|
|
36
37
|
'https://graph.microsoft.com/RecordsManagement.ReadWrite.All',
|
|
37
38
|
'https://graph.microsoft.com/Reports.Read.All',
|
|
38
39
|
'https://graph.microsoft.com/ReportSettings.ReadWrite.All',
|
|
@@ -9,10 +9,22 @@ import GraphCommand from '../../../base/GraphCommand.js';
|
|
|
9
9
|
import commands from '../../commands.js';
|
|
10
10
|
const policyEndPoints = {
|
|
11
11
|
activitybasedtimeout: "activityBasedTimeoutPolicies",
|
|
12
|
+
adminconsentrequest: "adminConsentRequestPolicy",
|
|
13
|
+
appManagement: "appManagementPolicies",
|
|
14
|
+
authenticationflows: "authenticationFlowsPolicy",
|
|
15
|
+
authenticationmethods: "authenticationMethodsPolicy",
|
|
16
|
+
authenticationstrength: "authenticationStrengthPolicies",
|
|
12
17
|
authorization: "authorizationPolicy",
|
|
13
18
|
claimsmapping: "claimsMappingPolicies",
|
|
19
|
+
conditionalaccess: "conditionalAccessPolicies",
|
|
20
|
+
crosstenantaccess: "crossTenantAccessPolicy",
|
|
21
|
+
defaultappmanagement: "defaultAppManagementPolicy",
|
|
22
|
+
deviceregistration: "deviceRegistrationPolicy",
|
|
23
|
+
featurerolloutpolicy: "featureRolloutPolicies",
|
|
14
24
|
homerealmdiscovery: "homeRealmDiscoveryPolicies",
|
|
15
25
|
identitysecuritydefaultsenforcement: "identitySecurityDefaultsEnforcementPolicy",
|
|
26
|
+
permissiongrant: "permissionGrantPolicies",
|
|
27
|
+
rolemanagement: "roleManagementPolicies",
|
|
16
28
|
tokenissuance: "tokenIssuancePolicies",
|
|
17
29
|
tokenlifetime: "tokenLifetimePolicies"
|
|
18
30
|
};
|
|
@@ -56,15 +68,26 @@ class EntraPolicyListCommand extends GraphCommand {
|
|
|
56
68
|
}
|
|
57
69
|
async getPolicies(policyType) {
|
|
58
70
|
const endpoint = policyEndPoints[policyType];
|
|
71
|
+
let requestUrl = `${this.resource}/v1.0/policies/${endpoint}`;
|
|
72
|
+
if (endpoint === policyEndPoints.rolemanagement) {
|
|
73
|
+
// roleManagementPolicies endpoint requires $filter query parameter
|
|
74
|
+
requestUrl += `?$filter=scopeId eq '/' and scopeType eq 'DirectoryRole'`;
|
|
75
|
+
}
|
|
59
76
|
const requestOptions = {
|
|
60
|
-
url:
|
|
77
|
+
url: requestUrl,
|
|
61
78
|
headers: {
|
|
62
79
|
accept: 'application/json;odata.metadata=none'
|
|
63
80
|
},
|
|
64
81
|
responseType: 'json'
|
|
65
82
|
};
|
|
66
83
|
const response = await request.get(requestOptions);
|
|
67
|
-
if (endpoint === policyEndPoints.
|
|
84
|
+
if (endpoint === policyEndPoints.adminconsentrequest ||
|
|
85
|
+
endpoint === policyEndPoints.authenticationflows ||
|
|
86
|
+
endpoint === policyEndPoints.authenticationmethods ||
|
|
87
|
+
endpoint === policyEndPoints.authorization ||
|
|
88
|
+
endpoint === policyEndPoints.crosstenantaccess ||
|
|
89
|
+
endpoint === policyEndPoints.defaultappmanagement ||
|
|
90
|
+
endpoint === policyEndPoints.deviceregistration ||
|
|
68
91
|
endpoint === policyEndPoints.identitysecuritydefaultsenforcement) {
|
|
69
92
|
return response;
|
|
70
93
|
}
|
|
@@ -95,6 +118,26 @@ _a = EntraPolicyListCommand, _EntraPolicyListCommand_instances = new WeakSet(),
|
|
|
95
118
|
return true;
|
|
96
119
|
});
|
|
97
120
|
};
|
|
98
|
-
EntraPolicyListCommand.supportedPolicyTypes = [
|
|
121
|
+
EntraPolicyListCommand.supportedPolicyTypes = [
|
|
122
|
+
'activityBasedTimeout',
|
|
123
|
+
'adminConsentRequest',
|
|
124
|
+
'appManagement',
|
|
125
|
+
'authenticationFlows',
|
|
126
|
+
'authenticationMethods',
|
|
127
|
+
'authenticationStrength',
|
|
128
|
+
'authorization',
|
|
129
|
+
'claimsMapping',
|
|
130
|
+
'conditionalAccess',
|
|
131
|
+
'crossTenantAccess',
|
|
132
|
+
'defaultAppManagement',
|
|
133
|
+
'deviceRegistration',
|
|
134
|
+
'featureRolloutPolicy',
|
|
135
|
+
'homeRealmDiscovery',
|
|
136
|
+
'identitySecurityDefaultsEnforcement',
|
|
137
|
+
'permissionGrant',
|
|
138
|
+
'roleManagement',
|
|
139
|
+
'tokenIssuance',
|
|
140
|
+
'tokenLifetime'
|
|
141
|
+
];
|
|
99
142
|
export default new EntraPolicyListCommand();
|
|
100
143
|
//# sourceMappingURL=policy-list.js.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
3
|
+
import { zod } from '../../../../utils/zod.js';
|
|
4
|
+
import { validation } from '../../../../utils/validation.js';
|
|
5
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
6
|
+
import commands from '../../commands.js';
|
|
7
|
+
import request from '../../../../request.js';
|
|
8
|
+
const options = globalOptionsZod
|
|
9
|
+
.extend({
|
|
10
|
+
resourceId: zod.alias('i', z.string()),
|
|
11
|
+
resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization'])),
|
|
12
|
+
name: zod.alias('n', z.string())
|
|
13
|
+
})
|
|
14
|
+
.strict();
|
|
15
|
+
class GraphOpenExtensionGetCommand extends GraphCommand {
|
|
16
|
+
get name() {
|
|
17
|
+
return commands.OPENEXTENSION_GET;
|
|
18
|
+
}
|
|
19
|
+
get description() {
|
|
20
|
+
return 'Retrieves a specific open extension for a resource';
|
|
21
|
+
}
|
|
22
|
+
get schema() {
|
|
23
|
+
return options;
|
|
24
|
+
}
|
|
25
|
+
getRefinedSchema(schema) {
|
|
26
|
+
return schema
|
|
27
|
+
.refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' || (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
|
|
28
|
+
message: `The '${options.resourceId}' must be a valid GUID`,
|
|
29
|
+
path: ['resourceId']
|
|
30
|
+
}))
|
|
31
|
+
.refine(options => options.resourceType !== 'user' || (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
|
|
32
|
+
message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
|
|
33
|
+
path: ['resourceId']
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
async commandAction(logger, args) {
|
|
37
|
+
try {
|
|
38
|
+
if (this.verbose) {
|
|
39
|
+
await logger.logToStderr(`Retrieving open extension for resource ${args.options.resourceId}...`);
|
|
40
|
+
}
|
|
41
|
+
const requestOptions = {
|
|
42
|
+
url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions/${args.options.name}`,
|
|
43
|
+
headers: {
|
|
44
|
+
accept: 'application/json;odata.metadata=none'
|
|
45
|
+
},
|
|
46
|
+
responseType: 'json'
|
|
47
|
+
};
|
|
48
|
+
const res = await request.get(requestOptions);
|
|
49
|
+
await logger.log(res);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
this.handleRejectedODataJsonPromise(err);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export default new GraphOpenExtensionGetCommand();
|
|
57
|
+
//# sourceMappingURL=openextension-get.js.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
3
|
+
import { zod } from '../../../../utils/zod.js';
|
|
4
|
+
import { validation } from '../../../../utils/validation.js';
|
|
5
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
6
|
+
import commands from '../../commands.js';
|
|
7
|
+
import { odata } from '../../../../utils/odata.js';
|
|
8
|
+
const options = globalOptionsZod
|
|
9
|
+
.extend({
|
|
10
|
+
resourceId: zod.alias('i', z.string()),
|
|
11
|
+
resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization']))
|
|
12
|
+
})
|
|
13
|
+
.strict();
|
|
14
|
+
class GraphOpenExtensionListCommand extends GraphCommand {
|
|
15
|
+
get name() {
|
|
16
|
+
return commands.OPENEXTENSION_LIST;
|
|
17
|
+
}
|
|
18
|
+
get description() {
|
|
19
|
+
return 'Retrieves all open extensions for a resource';
|
|
20
|
+
}
|
|
21
|
+
defaultProperties() {
|
|
22
|
+
return ['id', 'extensionName'];
|
|
23
|
+
}
|
|
24
|
+
get schema() {
|
|
25
|
+
return options;
|
|
26
|
+
}
|
|
27
|
+
getRefinedSchema(schema) {
|
|
28
|
+
return schema
|
|
29
|
+
.refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' ||
|
|
30
|
+
(options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
|
|
31
|
+
message: `The '${options.resourceId}' must be a valid GUID`,
|
|
32
|
+
path: ['resourceId']
|
|
33
|
+
}))
|
|
34
|
+
.refine(options => options.resourceType !== 'user' ||
|
|
35
|
+
(options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
|
|
36
|
+
message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
|
|
37
|
+
path: ['resourceId']
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
async commandAction(logger, args) {
|
|
41
|
+
try {
|
|
42
|
+
const requestOptions = {
|
|
43
|
+
url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions`,
|
|
44
|
+
headers: {
|
|
45
|
+
accept: 'application/json;odata.metadata=none',
|
|
46
|
+
'content-type': 'application/json'
|
|
47
|
+
},
|
|
48
|
+
responseType: 'json'
|
|
49
|
+
};
|
|
50
|
+
if (args.options.verbose) {
|
|
51
|
+
await logger.logToStderr(`Retrieving open extensions for the ${args.options.resourceType} with id '${args.options.resourceId}'...`);
|
|
52
|
+
}
|
|
53
|
+
const res = await odata.getAllItems(requestOptions);
|
|
54
|
+
await logger.log(res);
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
this.handleRejectedODataJsonPromise(err);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export default new GraphOpenExtensionListCommand();
|
|
62
|
+
//# sourceMappingURL=openextension-list.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
3
|
+
import { zod } from '../../../../utils/zod.js';
|
|
4
|
+
import { validation } from '../../../../utils/validation.js';
|
|
5
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
6
|
+
import commands from '../../commands.js';
|
|
7
|
+
import { cli } from '../../../../cli/cli.js';
|
|
8
|
+
import request from '../../../../request.js';
|
|
9
|
+
const options = globalOptionsZod
|
|
10
|
+
.extend({
|
|
11
|
+
resourceId: zod.alias('i', z.string()),
|
|
12
|
+
resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization'])),
|
|
13
|
+
name: zod.alias('n', z.string()),
|
|
14
|
+
force: zod.alias('f', z.boolean().optional())
|
|
15
|
+
})
|
|
16
|
+
.strict();
|
|
17
|
+
class GraphOpenExtensionRemoveCommand extends GraphCommand {
|
|
18
|
+
get name() {
|
|
19
|
+
return commands.OPENEXTENSION_REMOVE;
|
|
20
|
+
}
|
|
21
|
+
get description() {
|
|
22
|
+
return 'Removes a specific open extension for a resource';
|
|
23
|
+
}
|
|
24
|
+
get schema() {
|
|
25
|
+
return options;
|
|
26
|
+
}
|
|
27
|
+
getRefinedSchema(schema) {
|
|
28
|
+
return schema
|
|
29
|
+
.refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' || (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
|
|
30
|
+
message: `The '${options.resourceId}' must be a valid GUID`,
|
|
31
|
+
path: ['resourceId']
|
|
32
|
+
}))
|
|
33
|
+
.refine(options => options.resourceType !== 'user' || (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
|
|
34
|
+
message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
|
|
35
|
+
path: ['resourceId']
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
async commandAction(logger, args) {
|
|
39
|
+
const removeOpenExtension = async () => {
|
|
40
|
+
try {
|
|
41
|
+
if (this.verbose) {
|
|
42
|
+
await logger.logToStderr(`Removing open extension for resource ${args.options.resourceId}...`);
|
|
43
|
+
}
|
|
44
|
+
const requestOptions = {
|
|
45
|
+
url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions/${args.options.name}`,
|
|
46
|
+
headers: {
|
|
47
|
+
accept: 'application/json;odata.metadata=none'
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
await request.delete(requestOptions);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
this.handleRejectedODataJsonPromise(err);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
if (args.options.force) {
|
|
57
|
+
await removeOpenExtension();
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove open extension '${args.options.name}' from resource '${args.options.resourceId}' of type '${args.options.resourceType}'?` });
|
|
61
|
+
if (result) {
|
|
62
|
+
await removeOpenExtension();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default new GraphOpenExtensionRemoveCommand();
|
|
68
|
+
//# sourceMappingURL=openextension-remove.js.map
|
|
@@ -5,6 +5,9 @@ export default {
|
|
|
5
5
|
DIRECTORYEXTENSION_GET: `${prefix} directoryextension get`,
|
|
6
6
|
DIRECTORYEXTENSION_REMOVE: `${prefix} directoryextension remove`,
|
|
7
7
|
OPENEXTENSION_ADD: `${prefix} openextension add`,
|
|
8
|
+
OPENEXTENSION_GET: `${prefix} openextension get`,
|
|
9
|
+
OPENEXTENSION_LIST: `${prefix} openextension list`,
|
|
10
|
+
OPENEXTENSION_REMOVE: `${prefix} openextension remove`,
|
|
8
11
|
SCHEMAEXTENSION_ADD: `${prefix} schemaextension add`,
|
|
9
12
|
SCHEMAEXTENSION_GET: `${prefix} schemaextension get`,
|
|
10
13
|
SCHEMAEXTENSION_LIST: `${prefix} schemaextension list`,
|
|
@@ -16,7 +16,7 @@ m365 entra policy list [options]
|
|
|
16
16
|
|
|
17
17
|
```md definition-list
|
|
18
18
|
`-t, --type [type]`
|
|
19
|
-
: The type of policies to return. Allowed values `activityBasedTimeout`, `authorization`, `claimsMapping`, `homeRealmDiscovery`, `identitySecurityDefaultsEnforcement`, `tokenIssuance`, `tokenLifetime`. If omitted, all policies are returned.
|
|
19
|
+
: The type of policies to return. Allowed values `activityBasedTimeout`, `adminConsentRequest`, `appManagement`, `authenticationFlows`, `authenticationMethods`, `authenticationStrength`, `authorization`, `claimsMapping`, `conditionalAccess`, `crossTenantAccess`, `defaultAppManagement`, `deviceRegistration`, `featureRolloutPolicy`, `homeRealmDiscovery`, `identitySecurityDefaultsEnforcement`, `permissionGrant`, `roleManagement`, `tokenIssuance`, `tokenLifetime`. If omitted, all policies are returned.
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
<Global />
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
4
|
+
|
|
5
|
+
# graph openextension get
|
|
6
|
+
|
|
7
|
+
Retrieves a specific open extension for a resource
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
m365 graph openextension get [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
```md definition-list
|
|
18
|
+
`-n, --name <name>`
|
|
19
|
+
: The name of the open extension to retrieve.
|
|
20
|
+
|
|
21
|
+
`-i, --resourceId <resourceId>`
|
|
22
|
+
: The Id of the resource for which to retrieve the open extension.
|
|
23
|
+
|
|
24
|
+
`-t, --resourceType <resourceType>`
|
|
25
|
+
: The type of resource. Allowed values are `user`, `group`, `device`, `organization`.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
<Global />
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
Retrieve a specified open extension for a user specified by id.
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
m365 graph openextension get --resourceId eb77fbcf-6fe8-458b-985d-1747284793bc --name 'com.contoso.roamingSettings' --resourceType user
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Retrieve a specified open extension for a user specified by UPN.
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
m365 graph openextension get --resourceId john.doe@contoso.com --name 'com.contoso.roamingSettings' --resourceType user
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Response
|
|
45
|
+
|
|
46
|
+
<Tabs>
|
|
47
|
+
<TabItem value="JSON">
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"extensionName": "com.contoso.roamingSettings",
|
|
52
|
+
"name": "com.contoso.roamingSettings",
|
|
53
|
+
"resourceId": "john.doe@contoso.com",
|
|
54
|
+
"resourceType": "user",
|
|
55
|
+
"theme": "dark",
|
|
56
|
+
"color": "red",
|
|
57
|
+
"language": "English",
|
|
58
|
+
"id": "com.contoso.roamingSettings"
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
</TabItem>
|
|
63
|
+
<TabItem value="Text">
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
color : red
|
|
67
|
+
extensionName: com.contoso.roamingSettings
|
|
68
|
+
id : com.contoso.roamingSettings
|
|
69
|
+
language : English
|
|
70
|
+
name : com.contoso.roamingSettings
|
|
71
|
+
resourceId : john.doe@contoso.com
|
|
72
|
+
resourceType : user
|
|
73
|
+
theme : dark
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
</TabItem>
|
|
77
|
+
<TabItem value="CSV">
|
|
78
|
+
|
|
79
|
+
```csv
|
|
80
|
+
extensionName,name,resourceId,resourceType,theme,color,language,id
|
|
81
|
+
com.contoso.roamingSettings,com.contoso.roamingSettings,john.doe@contoso.com,user,dark,red,English,com.contoso.roamingSettings
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
</TabItem>
|
|
85
|
+
<TabItem value="Markdown">
|
|
86
|
+
|
|
87
|
+
```md
|
|
88
|
+
# graph openextension get --debug "false" --verbose "false" --resourceId "john.doe@contoso.com" --resourceType "user" --name "com.contoso.roamingSettings"
|
|
89
|
+
|
|
90
|
+
Date: 2025-04-07
|
|
91
|
+
|
|
92
|
+
## com.contoso.roamingSettings (com.contoso.roamingSettings)
|
|
93
|
+
|
|
94
|
+
Property | Value
|
|
95
|
+
---------|-------
|
|
96
|
+
extensionName | com.contoso.roamingSettings
|
|
97
|
+
name | com.contoso.roamingSettings
|
|
98
|
+
resourceId | john.doe@contoso.com
|
|
99
|
+
resourceType | user
|
|
100
|
+
theme | dark
|
|
101
|
+
color | red
|
|
102
|
+
language | English
|
|
103
|
+
id | com.contoso.roamingSettings
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
</TabItem>
|
|
107
|
+
</Tabs>
|
|
108
|
+
|
|
109
|
+
## More information
|
|
110
|
+
|
|
111
|
+
- Open extensions: https://learn.microsoft.com/graph/extensibility-overview?tabs=http#open-extensions
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
4
|
+
|
|
5
|
+
# graph openextension list
|
|
6
|
+
|
|
7
|
+
Retrieves all open extensions for a resource
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
m365 graph openextension list [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
```md definition-list
|
|
18
|
+
`-i, --resourceId <resourceId>`
|
|
19
|
+
: The Id of the resource for which to retrieve open extensions.
|
|
20
|
+
|
|
21
|
+
`-t, --resourceType <resourceType>`
|
|
22
|
+
: The type of resource. Allowed values are `user`, `group`, `device`, `organization`.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
<Global />
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
Retrieve open extensions for a user specified by id
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
m365 graph openextension list --resourceId eb77fbcf-6fe8-458b-985d-1747284793bc --resourceType user
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Retrieve open extensions for a user specified by UPN
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
m365 graph openextension list --resourceId john.doe@contoso.com --resourceType user
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Retrieve open extensions for a group specified by id
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
m365 graph openextension list --resourceId 19588303-70bf-44a4-beb1-e2f0f1ed06b3 --resourceType group
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Retrieve open extensions for an organization specified by id
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
m365 graph openextension list --resourceId c956e711-f074-40c3-8431-fbd69bb67d9c --resourceType organization
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Response
|
|
54
|
+
|
|
55
|
+
<Tabs>
|
|
56
|
+
<TabItem value="JSON">
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
[
|
|
60
|
+
{
|
|
61
|
+
"extensionName": "com.contoso.roamingSettings",
|
|
62
|
+
"theme": "dark",
|
|
63
|
+
"color": "purple",
|
|
64
|
+
"lang": "Japanese",
|
|
65
|
+
"id": "com.contoso.roamingSettings"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"extensionName": "com.test.m365",
|
|
69
|
+
"settings": {
|
|
70
|
+
"theme": "dark"
|
|
71
|
+
},
|
|
72
|
+
"supportedSystem": "Linux",
|
|
73
|
+
"id": "com.test.m365"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
</TabItem>
|
|
79
|
+
<TabItem value="Text">
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
extensionName id
|
|
83
|
+
--------------------------- ---------------------------
|
|
84
|
+
com.contoso.roamingSettings com.contoso.roamingSettings
|
|
85
|
+
com.test.m365 com.test.m365
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
</TabItem>
|
|
89
|
+
<TabItem value="CSV">
|
|
90
|
+
|
|
91
|
+
```csv
|
|
92
|
+
extensionName,theme,color,lang,id
|
|
93
|
+
com.contoso.roamingSettings,dark,purple,Japanese,com.contoso.roamingSettings
|
|
94
|
+
com.test.m365,,,,com.test.m365
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
</TabItem>
|
|
98
|
+
<TabItem value="Markdown">
|
|
99
|
+
|
|
100
|
+
```md
|
|
101
|
+
# graph openextension list --resourceId "eb77fbcf-6fe8-458b-985d-1747284793bc" --resourceType "user"
|
|
102
|
+
|
|
103
|
+
Date: 3/29/2025
|
|
104
|
+
|
|
105
|
+
## com.contoso.roamingSettings
|
|
106
|
+
|
|
107
|
+
Property | Value
|
|
108
|
+
---------|-------
|
|
109
|
+
extensionName | com.contoso.roamingSettings
|
|
110
|
+
theme | dark
|
|
111
|
+
color | purple
|
|
112
|
+
lang | Japanese
|
|
113
|
+
id | com.contoso.roamingSettings
|
|
114
|
+
|
|
115
|
+
## com.test.m365
|
|
116
|
+
|
|
117
|
+
Property | Value
|
|
118
|
+
---------|-------
|
|
119
|
+
extensionName | com.test.m365
|
|
120
|
+
supportedSystem | Linux
|
|
121
|
+
id | com.test.m365
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
</TabItem>
|
|
125
|
+
</Tabs>
|
|
126
|
+
|
|
127
|
+
## More information
|
|
128
|
+
|
|
129
|
+
- Open extensions: https://learn.microsoft.com/graph/extensibility-overview?tabs=http#open-extensions
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
4
|
+
|
|
5
|
+
# graph openextension remove
|
|
6
|
+
|
|
7
|
+
Removes a specific open extension for a resource
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
m365 graph openextension remove [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
```md definition-list
|
|
18
|
+
`-n, --name <name>`
|
|
19
|
+
: The name of the open extension to remove.
|
|
20
|
+
|
|
21
|
+
`-i, --resourceId <resourceId>`
|
|
22
|
+
: The Id of the resource for which to remove the open extension.
|
|
23
|
+
|
|
24
|
+
`-t, --resourceType <resourceType>`
|
|
25
|
+
: The type of resource. Allowed values are `user`, `group`, `device`, `organization`.
|
|
26
|
+
|
|
27
|
+
`-f, --force`
|
|
28
|
+
: Don't prompt for confirmation.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
<Global />
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
Remove a specified open extension for a user specified by id.
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
m365 graph openextension remove --resourceId eb77fbcf-6fe8-458b-985d-1747284793bc --name 'com.contoso.roamingSettings' --resourceType user
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Remove a specified open extension for a user specified by UPN without confirmation prompt.
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
m365 graph openextension remove --resourceId john.doe@contoso.com --name 'com.contoso.roamingSettings' --resourceType user --force
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Remove a specified open extension for a group specified by id.
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
m365 graph openextension remove --resourceId c956e711-f074-40c3-8431-fbd69bb67d9c --name 'com.contoso.groupSettings' --resourceType group
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Response
|
|
54
|
+
|
|
55
|
+
The command won't return a response on success.
|
|
56
|
+
|
|
57
|
+
## More information
|
|
58
|
+
|
|
59
|
+
- Open extensions: https://learn.microsoft.com/graph/extensibility-overview?tabs=http#open-extensions
|
package/package.json
CHANGED