@pnp/cli-microsoft365 7.2.0-beta.2970c86 → 7.2.0-beta.6775e3a
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/.devcontainer/Dockerfile +0 -1
- package/Dockerfile +0 -1
- package/dist/Command.js +7 -24
- package/dist/chili/chili.js +40 -51
- package/dist/cli/Cli.js +24 -12
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-get.js +2 -15
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-remove.js +5 -22
- package/dist/m365/aad/commands/app/app-remove.js +2 -7
- package/dist/m365/aad/commands/app/app-role-remove.js +2 -7
- package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +2 -7
- package/dist/m365/aad/commands/group/group-remove.js +2 -7
- package/dist/m365/aad/commands/groupsetting/groupsetting-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-clear.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-user-remove.js +2 -7
- package/dist/m365/aad/commands/oauth2grant/oauth2grant-remove.js +2 -7
- package/dist/m365/aad/commands/siteclassification/siteclassification-disable.js +2 -7
- package/dist/m365/aad/commands/user/user-license-remove.js +2 -7
- package/dist/m365/aad/commands/user/user-recyclebinitem-clear.js +2 -7
- package/dist/m365/aad/commands/user/user-recyclebinitem-remove.js +2 -7
- package/dist/m365/aad/commands/user/user-remove.js +2 -7
- package/dist/m365/commands/setup.js +31 -37
- package/dist/m365/context/commands/context-remove.js +2 -7
- package/dist/m365/context/commands/option/option-remove.js +2 -7
- package/dist/m365/{search/commands/externalconnection/externalconnection-add.js → external/commands/connection/connection-add.js} +16 -13
- package/dist/m365/{search/commands/externalconnection/externalconnection-get.js → external/commands/connection/connection-get.js} +16 -13
- package/dist/m365/{search/commands/externalconnection/externalconnection-list.js → external/commands/connection/connection-list.js} +7 -4
- package/dist/m365/{search/commands/externalconnection/externalconnection-remove.js → external/commands/connection/connection-remove.js} +19 -21
- package/dist/m365/{search/commands/externalconnection/externalconnection-schema-add.js → external/commands/connection/connection-schema-add.js} +14 -11
- package/dist/m365/external/commands.js +15 -0
- package/dist/m365/flow/commands/flow-remove.js +2 -7
- package/dist/m365/flow/commands/owner/owner-remove.js +2 -7
- package/dist/m365/flow/commands/run/run-cancel.js +2 -7
- package/dist/m365/flow/commands/run/run-resubmit.js +2 -7
- package/dist/m365/graph/commands/schemaextension/schemaextension-remove.js +2 -7
- package/dist/m365/pa/commands/app/app-consent-set.js +2 -7
- package/dist/m365/pa/commands/app/app-permission-remove.js +2 -7
- package/dist/m365/pa/commands/app/app-remove.js +2 -7
- package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -7
- package/dist/m365/planner/commands/plan/plan-remove.js +2 -7
- package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -14
- package/dist/m365/planner/commands/roster/roster-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-checklistitem-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-reference-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-remove.js +2 -7
- package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-remove.js +2 -7
- package/dist/m365/pp/commands/card/card-remove.js +2 -7
- package/dist/m365/pp/commands/chatbot/chatbot-remove.js +2 -7
- package/dist/m365/pp/commands/dataverse/dataverse-table-remove.js +2 -7
- package/dist/m365/pp/commands/dataverse/dataverse-table-row-remove.js +2 -7
- package/dist/m365/pp/commands/solution/solution-publisher-remove.js +2 -7
- package/dist/m365/pp/commands/solution/solution-remove.js +2 -7
- package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +2 -7
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +2 -7
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +2 -7
- package/dist/m365/spo/commands/app/app-remove.js +2 -7
- package/dist/m365/spo/commands/app/app-retract.js +2 -7
- package/dist/m365/spo/commands/app/app-uninstall.js +2 -7
- package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-remove.js +2 -7
- package/dist/m365/spo/commands/cdn/cdn-origin-remove.js +2 -7
- package/dist/m365/spo/commands/commandset/commandset-remove.js +2 -7
- package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +2 -7
- package/dist/m365/spo/commands/contenttype/contenttype-remove.js +2 -2
- package/dist/m365/spo/commands/customaction/customaction-clear.js +2 -7
- package/dist/m365/spo/commands/customaction/customaction-remove.js +2 -7
- package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +2 -7
- package/dist/m365/spo/commands/field/field-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-checkout-undo.js +2 -7
- package/dist/m365/spo/commands/file/file-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/file/file-sharinglink-clear.js +2 -7
- package/dist/m365/spo/commands/file/file-sharinglink-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-version-clear.js +2 -7
- package/dist/m365/spo/commands/file/file-version-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-version-restore.js +2 -7
- package/dist/m365/spo/commands/folder/folder-remove.js +2 -7
- package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +2 -7
- package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/group/group-member-remove.js +2 -7
- package/dist/m365/spo/commands/group/group-remove.js +2 -7
- package/dist/m365/spo/commands/homesite/homesite-remove.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +2 -7
- package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-contenttype-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-retentionlabel-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/list/list-view-field-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-view-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-webhook-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/navigation/navigation-node-remove.js +2 -7
- package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +2 -7
- package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +2 -7
- package/dist/m365/spo/commands/page/page-remove.js +2 -7
- package/dist/m365/spo/commands/propertybag/propertybag-remove.js +2 -7
- package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +2 -7
- package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +2 -7
- package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-clear.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-move.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-set.js +33 -1
- package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +2 -7
- package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +2 -7
- package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +2 -7
- package/dist/m365/spo/commands/sitescript/sitescript-remove.js +2 -7
- package/dist/m365/spo/commands/storageentity/storageentity-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-commandset-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +2 -7
- package/dist/m365/spo/commands/theme/theme-remove.js +2 -7
- package/dist/m365/spo/commands/user/user-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +2 -7
- package/dist/m365/teams/commands/app/app-remove.js +2 -7
- package/dist/m365/teams/commands/app/app-uninstall.js +2 -7
- package/dist/m365/teams/commands/cache/cache-remove.js +2 -7
- package/dist/m365/teams/commands/channel/channel-member-remove.js +2 -7
- package/dist/m365/teams/commands/channel/channel-remove.js +2 -7
- package/dist/m365/teams/commands/chat/chat-member-remove.js +2 -7
- package/dist/m365/teams/commands/tab/tab-remove.js +2 -7
- package/dist/m365/teams/commands/team/team-remove.js +2 -7
- package/dist/m365/teams/commands/user/user-app-remove.js +2 -7
- package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +9 -6
- package/dist/m365/tenant/commands/people/people-profilecardproperty-get.js +3 -1
- package/dist/m365/tenant/commands/people/people-profilecardproperty-list.js +4 -14
- package/dist/m365/tenant/commands/people/people-profilecardproperty-remove.js +2 -7
- package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +118 -0
- package/dist/m365/tenant/commands.js +1 -0
- package/dist/m365/todo/commands/list/list-remove.js +2 -7
- package/dist/m365/todo/commands/task/task-remove.js +2 -7
- package/dist/m365/yammer/commands/group/group-user-remove.js +2 -7
- package/dist/m365/yammer/commands/message/message-like-set.js +3 -8
- package/dist/m365/yammer/commands/message/message-remove.js +2 -7
- package/dist/utils/aadAdministrativeUnit.js +25 -0
- package/dist/utils/prompt.js +26 -7
- package/docs/docs/cmd/{search/externalconnection/externalconnection-add.mdx → external/connection/connection-add.mdx} +16 -10
- package/docs/docs/cmd/{search/externalconnection/externalconnection-get.mdx → external/connection/connection-get.mdx} +16 -11
- package/docs/docs/cmd/{search/externalconnection/externalconnection-list.mdx → external/connection/connection-list.mdx} +12 -7
- package/docs/docs/cmd/external/connection/connection-remove.mdx +54 -0
- package/docs/docs/cmd/external/connection/connection-schema-add.mdx +41 -0
- package/docs/docs/cmd/spo/file/file-rename.mdx +2 -0
- package/docs/docs/cmd/spo/site/site-set.mdx +15 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-add.mdx +0 -48
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-get.mdx +4 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-list.mdx +6 -14
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-set.mdx +120 -0
- package/npm-shrinkwrap.json +262 -186
- package/package.json +6 -8
- package/dist/m365/search/commands.js +0 -9
- package/docs/docs/cmd/search/externalconnection/externalconnection-remove.mdx +0 -48
- package/docs/docs/cmd/search/externalconnection/externalconnection-schema-add.mdx +0 -35
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import GraphCommand from '../../../base/GraphCommand.js';
|
|
2
|
-
import request from '../../../../request.js';
|
|
3
2
|
import commands from '../../commands.js';
|
|
3
|
+
import { odata } from '../../../../utils/odata.js';
|
|
4
4
|
class TenantPeopleProfileCardPropertyListCommand extends GraphCommand {
|
|
5
5
|
get name() {
|
|
6
6
|
return commands.PEOPLE_PROFILECARDPROPERTY_LIST;
|
|
@@ -8,25 +8,15 @@ class TenantPeopleProfileCardPropertyListCommand extends GraphCommand {
|
|
|
8
8
|
get description() {
|
|
9
9
|
return 'Lists all profile card properties';
|
|
10
10
|
}
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
}
|
|
14
11
|
async commandAction(logger, args) {
|
|
15
12
|
try {
|
|
16
13
|
if (this.verbose) {
|
|
17
|
-
await logger.logToStderr(`
|
|
14
|
+
await logger.logToStderr(`Listing all profile card properties...`);
|
|
18
15
|
}
|
|
19
|
-
const
|
|
20
|
-
url: `${this.resource}/v1.0/admin/people/profileCardProperties`,
|
|
21
|
-
headers: {
|
|
22
|
-
accept: 'application/json;odata.metadata=none'
|
|
23
|
-
},
|
|
24
|
-
responseType: 'json'
|
|
25
|
-
};
|
|
26
|
-
const result = await request.get(requestOptions);
|
|
16
|
+
const result = await odata.getAllItems(`${this.resource}/v1.0/admin/people/profileCardProperties`);
|
|
27
17
|
let output = result;
|
|
28
18
|
if (args.options.output && args.options.output !== 'json') {
|
|
29
|
-
output = output.
|
|
19
|
+
output = output.sort((n1, n2) => {
|
|
30
20
|
const localizations1 = n1.annotations[0]?.localizations?.length ?? 0;
|
|
31
21
|
const localizations2 = n2.annotations[0]?.localizations?.length ?? 0;
|
|
32
22
|
if (localizations1 > localizations2) {
|
|
@@ -47,13 +47,8 @@ class TenantPeopleProfileCardPropertyRemoveCommand extends GraphCommand {
|
|
|
47
47
|
await removeProfileCardProperty();
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
|
-
const result = await Cli.
|
|
51
|
-
|
|
52
|
-
name: 'continue',
|
|
53
|
-
default: false,
|
|
54
|
-
message: `Are you sure you want to remove the profile card property '${directoryPropertyName}'?`
|
|
55
|
-
});
|
|
56
|
-
if (result.continue) {
|
|
50
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the profile card property '${directoryPropertyName}'?` });
|
|
51
|
+
if (result) {
|
|
57
52
|
await removeProfileCardProperty();
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
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");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _TenantPeopleProfileCardPropertySetCommand_instances, _TenantPeopleProfileCardPropertySetCommand_initTelemetry, _TenantPeopleProfileCardPropertySetCommand_initOptions, _TenantPeopleProfileCardPropertySetCommand_initValidators, _TenantPeopleProfileCardPropertySetCommand_initTypes;
|
|
7
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
8
|
+
import request from '../../../../request.js';
|
|
9
|
+
import { profileCardPropertyNames as allProfileCardPropertyNames } from './profileCardProperties.js';
|
|
10
|
+
import commands from '../../commands.js';
|
|
11
|
+
class TenantPeopleProfileCardPropertySetCommand extends GraphCommand {
|
|
12
|
+
get name() {
|
|
13
|
+
return commands.PEOPLE_PROFILECARDPROPERTY_SET;
|
|
14
|
+
}
|
|
15
|
+
get description() {
|
|
16
|
+
return 'Updates a custom attribute to the profile card property';
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
_TenantPeopleProfileCardPropertySetCommand_instances.add(this);
|
|
21
|
+
this.profileCardPropertyNames = allProfileCardPropertyNames.filter(p => p.toLowerCase().startsWith('customattribute'));
|
|
22
|
+
__classPrivateFieldGet(this, _TenantPeopleProfileCardPropertySetCommand_instances, "m", _TenantPeopleProfileCardPropertySetCommand_initTelemetry).call(this);
|
|
23
|
+
__classPrivateFieldGet(this, _TenantPeopleProfileCardPropertySetCommand_instances, "m", _TenantPeopleProfileCardPropertySetCommand_initOptions).call(this);
|
|
24
|
+
__classPrivateFieldGet(this, _TenantPeopleProfileCardPropertySetCommand_instances, "m", _TenantPeopleProfileCardPropertySetCommand_initValidators).call(this);
|
|
25
|
+
__classPrivateFieldGet(this, _TenantPeopleProfileCardPropertySetCommand_instances, "m", _TenantPeopleProfileCardPropertySetCommand_initTypes).call(this);
|
|
26
|
+
}
|
|
27
|
+
allowUnknownOptions() {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
async commandAction(logger, args) {
|
|
31
|
+
try {
|
|
32
|
+
if (this.verbose) {
|
|
33
|
+
await logger.logToStderr(`Updating profile card property '${args.options.name}'...`);
|
|
34
|
+
}
|
|
35
|
+
// Get the right casing for the profile card property name
|
|
36
|
+
const profileCardProperty = this.profileCardPropertyNames.find(p => p.toLowerCase() === args.options.name.toLowerCase());
|
|
37
|
+
const requestOptions = {
|
|
38
|
+
url: `${this.resource}/v1.0/admin/people/profileCardProperties/${profileCardProperty}`,
|
|
39
|
+
headers: {
|
|
40
|
+
accept: 'application/json;odata.metadata=none'
|
|
41
|
+
},
|
|
42
|
+
responseType: 'json',
|
|
43
|
+
data: {
|
|
44
|
+
annotations: [
|
|
45
|
+
{
|
|
46
|
+
displayName: args.options.displayName,
|
|
47
|
+
localizations: this.getLocalizations(args.options)
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const result = await request.patch(requestOptions);
|
|
53
|
+
let output = result;
|
|
54
|
+
// Transform the output to make it more readable
|
|
55
|
+
if (args.options.output && args.options.output !== 'json' && result.annotations.length > 0) {
|
|
56
|
+
output = result.annotations[0].localizations.reduce((acc, curr) => ({
|
|
57
|
+
...acc,
|
|
58
|
+
['displayName ' + curr.languageTag]: curr.displayName
|
|
59
|
+
}), {
|
|
60
|
+
...result,
|
|
61
|
+
displayName: result.annotations[0].displayName
|
|
62
|
+
});
|
|
63
|
+
delete output.annotations;
|
|
64
|
+
}
|
|
65
|
+
await logger.log(output);
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
this.handleRejectedODataJsonPromise(err);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Transform option to localization object.
|
|
73
|
+
* @example Transform "--displayName-en-US 'Cost center'" to { languageTag: 'en-US', displayName: 'Cost center' }
|
|
74
|
+
*/
|
|
75
|
+
getLocalizations(options) {
|
|
76
|
+
const unknownOptions = this.getUnknownOptions(options);
|
|
77
|
+
const result = Object.keys(unknownOptions).map(o => ({
|
|
78
|
+
languageTag: o.substring(o.indexOf('-') + 1),
|
|
79
|
+
displayName: unknownOptions[o]
|
|
80
|
+
}));
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
_TenantPeopleProfileCardPropertySetCommand_instances = new WeakSet(), _TenantPeopleProfileCardPropertySetCommand_initTelemetry = function _TenantPeopleProfileCardPropertySetCommand_initTelemetry() {
|
|
85
|
+
this.telemetry.push((args) => {
|
|
86
|
+
// Add unknown options to telemetry
|
|
87
|
+
const unknownOptions = Object.keys(this.getUnknownOptions(args.options));
|
|
88
|
+
const unknownOptionsObj = unknownOptions.reduce((obj, key) => ({ ...obj, [key]: true }), {});
|
|
89
|
+
Object.assign(this.telemetryProperties, {
|
|
90
|
+
displayName: typeof args.options.displayName !== 'undefined',
|
|
91
|
+
...unknownOptionsObj
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}, _TenantPeopleProfileCardPropertySetCommand_initOptions = function _TenantPeopleProfileCardPropertySetCommand_initOptions() {
|
|
95
|
+
this.options.unshift({
|
|
96
|
+
option: '-n, --name <name>',
|
|
97
|
+
autocomplete: this.profileCardPropertyNames
|
|
98
|
+
}, {
|
|
99
|
+
option: '-d, --displayName <displayName>'
|
|
100
|
+
});
|
|
101
|
+
}, _TenantPeopleProfileCardPropertySetCommand_initValidators = function _TenantPeopleProfileCardPropertySetCommand_initValidators() {
|
|
102
|
+
this.validators.push(async (args) => {
|
|
103
|
+
if (!this.profileCardPropertyNames.some(p => p.toLowerCase() === args.options.name.toLowerCase())) {
|
|
104
|
+
return `'${args.options.name}' is not a valid value for option name. Allowed values are: ${this.profileCardPropertyNames.join(', ')}.`;
|
|
105
|
+
}
|
|
106
|
+
// Unknown options are allowed only if they start with 'displayName-'
|
|
107
|
+
const unknownOptionKeys = Object.keys(this.getUnknownOptions(args.options));
|
|
108
|
+
const invalidOptionKey = unknownOptionKeys.find(o => !o.startsWith('displayName-'));
|
|
109
|
+
if (invalidOptionKey) {
|
|
110
|
+
return `Invalid option: '${invalidOptionKey}'`;
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
});
|
|
114
|
+
}, _TenantPeopleProfileCardPropertySetCommand_initTypes = function _TenantPeopleProfileCardPropertySetCommand_initTypes() {
|
|
115
|
+
this.types.string.push('name', 'displayName');
|
|
116
|
+
};
|
|
117
|
+
export default new TenantPeopleProfileCardPropertySetCommand();
|
|
118
|
+
//# sourceMappingURL=people-profilecardproperty-set.js.map
|
|
@@ -6,6 +6,7 @@ export default {
|
|
|
6
6
|
PEOPLE_PROFILECARDPROPERTY_GET: `${prefix} people profilecardproperty get`,
|
|
7
7
|
PEOPLE_PROFILECARDPROPERTY_LIST: `${prefix} people profilecardproperty list`,
|
|
8
8
|
PEOPLE_PROFILECARDPROPERTY_REMOVE: `${prefix} people profilecardproperty remove`,
|
|
9
|
+
PEOPLE_PROFILECARDPROPERTY_SET: `${prefix} people profilecardproperty set`,
|
|
9
10
|
REPORT_ACTIVEUSERCOUNTS: `${prefix} report activeusercounts`,
|
|
10
11
|
REPORT_ACTIVEUSERDETAIL: `${prefix} report activeuserdetail`,
|
|
11
12
|
REPORT_OFFICE365ACTIVATIONCOUNTS: `${prefix} report office365activationcounts`,
|
|
@@ -27,13 +27,8 @@ class TodoListRemoveCommand extends GraphCommand {
|
|
|
27
27
|
await this.removeList(args);
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
const result = await Cli.
|
|
31
|
-
|
|
32
|
-
name: 'continue',
|
|
33
|
-
default: false,
|
|
34
|
-
message: `Are you sure you want to remove the task list ${args.options.id || args.options.name}?`
|
|
35
|
-
});
|
|
36
|
-
if (result.continue) {
|
|
30
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the task list ${args.options.id || args.options.name}?` });
|
|
31
|
+
if (result) {
|
|
37
32
|
await this.removeList(args);
|
|
38
33
|
}
|
|
39
34
|
}
|
|
@@ -27,13 +27,8 @@ class TodoTaskRemoveCommand extends GraphCommand {
|
|
|
27
27
|
await this.removeToDoTask(args.options);
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
const result = await Cli.
|
|
31
|
-
|
|
32
|
-
name: 'continue',
|
|
33
|
-
default: false,
|
|
34
|
-
message: `Are you sure you want to remove the task ${args.options.id} from list ${args.options.listId || args.options.listName}?`
|
|
35
|
-
});
|
|
36
|
-
if (result.continue) {
|
|
30
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the task ${args.options.id} from list ${args.options.listId || args.options.listName}?` });
|
|
31
|
+
if (result) {
|
|
37
32
|
await this.removeToDoTask(args.options);
|
|
38
33
|
}
|
|
39
34
|
}
|
|
@@ -31,13 +31,8 @@ class YammerGroupUserRemoveCommand extends YammerCommand {
|
|
|
31
31
|
if (args.options.id) {
|
|
32
32
|
messagePrompt = `Are you sure you want to remove the user ${args.options.id} from the group ${args.options.groupId}?`;
|
|
33
33
|
}
|
|
34
|
-
const result = await Cli.
|
|
35
|
-
|
|
36
|
-
name: 'continue',
|
|
37
|
-
default: false,
|
|
38
|
-
message: messagePrompt
|
|
39
|
-
});
|
|
40
|
-
if (result.continue) {
|
|
34
|
+
const result = await Cli.promptForConfirmation({ message: messagePrompt });
|
|
35
|
+
if (result) {
|
|
41
36
|
await this.executeRemoveAction(args.options);
|
|
42
37
|
}
|
|
43
38
|
}
|
|
@@ -29,14 +29,9 @@ class YammerMessageLikeSetCommand extends YammerCommand {
|
|
|
29
29
|
await this.executeLikeAction(args.options);
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
const
|
|
33
|
-
const result = await Cli.
|
|
34
|
-
|
|
35
|
-
name: 'continue',
|
|
36
|
-
default: false,
|
|
37
|
-
message: messagePrompt
|
|
38
|
-
});
|
|
39
|
-
if (result.continue) {
|
|
32
|
+
const message = `Are you sure you want to unlike message ${args.options.messageId}?`;
|
|
33
|
+
const result = await Cli.promptForConfirmation({ message });
|
|
34
|
+
if (result) {
|
|
40
35
|
await this.executeLikeAction(args.options);
|
|
41
36
|
}
|
|
42
37
|
}
|
|
@@ -27,13 +27,8 @@ class YammerMessageRemoveCommand extends YammerCommand {
|
|
|
27
27
|
await this.removeMessage(args.options);
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
const result = await Cli.
|
|
31
|
-
|
|
32
|
-
name: 'continue',
|
|
33
|
-
default: false,
|
|
34
|
-
message: `Are you sure you want to remove the Yammer message ${args.options.id}?`
|
|
35
|
-
});
|
|
36
|
-
if (result.continue) {
|
|
30
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the Yammer message ${args.options.id}?` });
|
|
31
|
+
if (result) {
|
|
37
32
|
await this.removeMessage(args.options);
|
|
38
33
|
}
|
|
39
34
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { odata } from "./odata.js";
|
|
2
|
+
import { formatting } from "./formatting.js";
|
|
3
|
+
import { Cli } from "../cli/Cli.js";
|
|
4
|
+
const graphResource = 'https://graph.microsoft.com';
|
|
5
|
+
export const aadAdministrativeUnit = {
|
|
6
|
+
/**
|
|
7
|
+
* Get an administrative unit by its display name.
|
|
8
|
+
* @param displayName Administrative unit display name.
|
|
9
|
+
* @returns The administrative unit.
|
|
10
|
+
* @throws Error when administrative unit was not found.
|
|
11
|
+
*/
|
|
12
|
+
async getAdministrativeUnitByDisplayName(displayName) {
|
|
13
|
+
const administrativeUnits = await odata.getAllItems(`${graphResource}/v1.0/directory/administrativeUnits?$filter=displayName eq '${formatting.encodeQueryParameter(displayName)}'`);
|
|
14
|
+
if (administrativeUnits.length === 0) {
|
|
15
|
+
throw `The specified administrative unit '${displayName}' does not exist.`;
|
|
16
|
+
}
|
|
17
|
+
if (administrativeUnits.length > 1) {
|
|
18
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', administrativeUnits);
|
|
19
|
+
const selectedAdministrativeUnit = await Cli.handleMultipleResultsFound(`Multiple administrative units with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
20
|
+
return selectedAdministrativeUnit;
|
|
21
|
+
}
|
|
22
|
+
return administrativeUnits[0];
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=aadAdministrativeUnit.js.map
|
package/dist/utils/prompt.js
CHANGED
|
@@ -1,16 +1,35 @@
|
|
|
1
|
-
import { Cli } from '../cli/Cli.js';
|
|
2
1
|
import { settingsNames } from '../settingsNames.js';
|
|
3
|
-
|
|
2
|
+
import { Cli } from '../cli/Cli.js';
|
|
3
|
+
let inquirerInput;
|
|
4
|
+
let inquirerConfirm;
|
|
5
|
+
let inquirerSelect;
|
|
4
6
|
export const prompt = {
|
|
5
7
|
/* c8 ignore next 10 */
|
|
6
|
-
async forInput(config
|
|
7
|
-
if (!
|
|
8
|
-
|
|
8
|
+
async forInput(config) {
|
|
9
|
+
if (!inquirerInput) {
|
|
10
|
+
inquirerInput = await import('@inquirer/input');
|
|
11
|
+
}
|
|
12
|
+
const cli = Cli.getInstance();
|
|
13
|
+
const errorOutput = cli.getSettingWithDefaultValue(settingsNames.errorOutput, 'stderr');
|
|
14
|
+
return inquirerInput.default(config, { output: errorOutput === 'stderr' ? process.stderr : process.stdout });
|
|
15
|
+
},
|
|
16
|
+
/* c8 ignore next 10 */
|
|
17
|
+
async forConfirmation(config) {
|
|
18
|
+
if (!inquirerConfirm) {
|
|
19
|
+
inquirerConfirm = await import('@inquirer/confirm');
|
|
20
|
+
}
|
|
21
|
+
const cli = Cli.getInstance();
|
|
22
|
+
const errorOutput = cli.getSettingWithDefaultValue(settingsNames.errorOutput, 'stderr');
|
|
23
|
+
return inquirerConfirm.default(config, { output: errorOutput === 'stderr' ? process.stderr : process.stdout });
|
|
24
|
+
},
|
|
25
|
+
/* c8 ignore next 10 */
|
|
26
|
+
async forSelection(config) {
|
|
27
|
+
if (!inquirerSelect) {
|
|
28
|
+
inquirerSelect = await import('@inquirer/select');
|
|
9
29
|
}
|
|
10
30
|
const cli = Cli.getInstance();
|
|
11
31
|
const errorOutput = cli.getSettingWithDefaultValue(settingsNames.errorOutput, 'stderr');
|
|
12
|
-
|
|
13
|
-
return await prompt(config, answers);
|
|
32
|
+
return inquirerSelect.default(config, { output: errorOutput === 'stderr' ? process.stderr : process.stdout });
|
|
14
33
|
}
|
|
15
34
|
};
|
|
16
35
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
import Global from '/docs/cmd/_global.mdx';
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# external connection add
|
|
4
4
|
|
|
5
|
-
Add a new external connection
|
|
5
|
+
Add a new external connection
|
|
6
6
|
|
|
7
7
|
## Usage
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
m365
|
|
10
|
+
m365 external connection add [options]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Alias
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
m365 search externalconnection add
|
|
11
17
|
```
|
|
12
18
|
|
|
13
19
|
## Options
|
|
14
20
|
|
|
15
21
|
```md definition-list
|
|
16
22
|
`-i, --id <id>`
|
|
17
|
-
: Developer-provided unique ID of the connection within the Azure Active Directory tenant
|
|
23
|
+
: Developer-provided unique ID of the connection within the Azure Active Directory tenant.
|
|
18
24
|
|
|
19
25
|
`-n, --name <name>`
|
|
20
|
-
: The display name of the connection to be displayed in the Microsoft 365 admin center. Maximum length of 128 characters
|
|
26
|
+
: The display name of the connection to be displayed in the Microsoft 365 admin center. Maximum length of 128 characters.
|
|
21
27
|
|
|
22
28
|
`-d, --description <description>`
|
|
23
|
-
: Description of the connection displayed in the Microsoft 365 admin center
|
|
29
|
+
: Description of the connection displayed in the Microsoft 365 admin center.
|
|
24
30
|
|
|
25
31
|
`--authorizedAppIds [authorizedAppIds]`
|
|
26
32
|
: Comma-separated collection of application IDs for registered Azure Active Directory apps that are allowed to manage the external connection and to index content in the external connection.
|
|
@@ -34,16 +40,16 @@ The `id` must be at least 3 and no more than 32 characters long. It can contain
|
|
|
34
40
|
|
|
35
41
|
## Examples
|
|
36
42
|
|
|
37
|
-
Adds a new external connection with name and description of test app
|
|
43
|
+
Adds a new external connection with name and description of test app.
|
|
38
44
|
|
|
39
45
|
```sh
|
|
40
|
-
m365
|
|
46
|
+
m365 external connection add --id MyApp --name "Test" --description "Test"
|
|
41
47
|
```
|
|
42
48
|
|
|
43
|
-
Adds a new external connection with a limited number of authorized apps
|
|
49
|
+
Adds a new external connection with a limited number of authorized apps.
|
|
44
50
|
|
|
45
51
|
```sh
|
|
46
|
-
m365
|
|
52
|
+
m365 external connection add --id MyApp --name "Test" --description "Test" --authorizedAppIds "00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002"
|
|
47
53
|
```
|
|
48
54
|
|
|
49
55
|
## Response
|
|
@@ -2,40 +2,46 @@ import Global from '/docs/cmd/_global.mdx';
|
|
|
2
2
|
import Tabs from '@theme/Tabs';
|
|
3
3
|
import TabItem from '@theme/TabItem';
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# external connection get
|
|
6
6
|
|
|
7
|
-
Allow the administrator to get a specific external connection
|
|
7
|
+
Allow the administrator to get a specific external connection
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
m365
|
|
12
|
+
m365 external connection get [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Alias
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
m365 search externalconnection get
|
|
13
19
|
```
|
|
14
20
|
|
|
15
21
|
## Options
|
|
16
22
|
|
|
17
23
|
```md definition-list
|
|
18
24
|
`-i, --id [id]`
|
|
19
|
-
: ID of the External Connection to get. Specify either `id` or `name
|
|
25
|
+
: ID of the External Connection to get. Specify either `id` or `name`.
|
|
20
26
|
|
|
21
27
|
`-n, --name [name]`
|
|
22
|
-
: Name of the External Connection to get. Specify either `id` or `name
|
|
28
|
+
: Name of the External Connection to get. Specify either `id` or `name`.
|
|
23
29
|
```
|
|
24
30
|
|
|
25
31
|
<Global />
|
|
26
32
|
|
|
27
33
|
## Examples
|
|
28
34
|
|
|
29
|
-
Get the External Connection by its id
|
|
35
|
+
Get the External Connection by its id.
|
|
30
36
|
|
|
31
37
|
```sh
|
|
32
|
-
m365
|
|
38
|
+
m365 external connection get --id "MyApp"
|
|
33
39
|
```
|
|
34
40
|
|
|
35
|
-
Get the External Connection by its name
|
|
41
|
+
Get the External Connection by its name.
|
|
36
42
|
|
|
37
43
|
```sh
|
|
38
|
-
m365
|
|
44
|
+
m365 external connection get --name "Test"
|
|
39
45
|
```
|
|
40
46
|
|
|
41
47
|
## Response
|
|
@@ -83,7 +89,7 @@ m365 search externalconnection get --name "Test"
|
|
|
83
89
|
<TabItem value="Markdown">
|
|
84
90
|
|
|
85
91
|
```md
|
|
86
|
-
#
|
|
92
|
+
# external connection get --id "CLITest"
|
|
87
93
|
|
|
88
94
|
Date: 2022-11-05
|
|
89
95
|
|
|
@@ -99,4 +105,3 @@ m365 search externalconnection get --name "Test"
|
|
|
99
105
|
|
|
100
106
|
</TabItem>
|
|
101
107
|
</Tabs>
|
|
102
|
-
|
|
@@ -2,14 +2,20 @@ import Global from '/docs/cmd/_global.mdx';
|
|
|
2
2
|
import Tabs from '@theme/Tabs';
|
|
3
3
|
import TabItem from '@theme/TabItem';
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# external connection list
|
|
6
6
|
|
|
7
|
-
Lists external connections
|
|
7
|
+
Lists external connections
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
m365
|
|
12
|
+
m365 external connection list [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Alias
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
m365 search externalconnection list
|
|
13
19
|
```
|
|
14
20
|
|
|
15
21
|
## Options
|
|
@@ -18,10 +24,10 @@ m365 search externalconnection list [options]
|
|
|
18
24
|
|
|
19
25
|
## Examples
|
|
20
26
|
|
|
21
|
-
List external connections
|
|
27
|
+
List external connections.
|
|
22
28
|
|
|
23
29
|
```sh
|
|
24
|
-
m365
|
|
30
|
+
m365 external connection list
|
|
25
31
|
```
|
|
26
32
|
|
|
27
33
|
## Response
|
|
@@ -69,7 +75,7 @@ m365 search externalconnection list
|
|
|
69
75
|
<TabItem value="Markdown">
|
|
70
76
|
|
|
71
77
|
```md
|
|
72
|
-
#
|
|
78
|
+
# external connection list
|
|
73
79
|
|
|
74
80
|
Date: 2022-09-05
|
|
75
81
|
|
|
@@ -85,4 +91,3 @@ m365 search externalconnection list
|
|
|
85
91
|
|
|
86
92
|
</TabItem>
|
|
87
93
|
</Tabs>
|
|
88
|
-
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
|
|
3
|
+
# external connection remove
|
|
4
|
+
|
|
5
|
+
Allow the administrator to remove a specific external connection
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
m365 external connection remove [options]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Alias
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
m365 search externalconnection remove
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
```md definition-list
|
|
22
|
+
`-i, --id [id]`
|
|
23
|
+
: ID of the External Connection to remove. Specify either `id` or `name`.
|
|
24
|
+
|
|
25
|
+
`-n, --name [name]`
|
|
26
|
+
: Name of the External Connection to remove. Specify either `id` or `name`.
|
|
27
|
+
|
|
28
|
+
`-f, --force`
|
|
29
|
+
: Don't prompt for confirming removing the connection.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
<Global />
|
|
33
|
+
|
|
34
|
+
## Remarks
|
|
35
|
+
|
|
36
|
+
If the command finds multiple external connections with the specified name, it will prompt you to disambiguate which external connection it should remove, listing the discovered IDs.
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
Removes external connection by its id.
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
m365 external connection remove --id "MyApp"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Removes external connection by its name. Will NOT prompt for confirmation before removing.
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
m365 external connection remove --name "Test" --force
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Response
|
|
53
|
+
|
|
54
|
+
The command won't return a response on success.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
|
|
3
|
+
# external connection schema add
|
|
4
|
+
|
|
5
|
+
Allow the administrator to add a schema to a specific external connection
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
m365 external connection schema add [options]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Alias
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
m365 search externalconnection schema add
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
```md definition-list
|
|
22
|
+
`-i, --externalConnectionId <externalConnectionId>`
|
|
23
|
+
: ID of the External Connection.
|
|
24
|
+
|
|
25
|
+
`-s, --schema [schema]`
|
|
26
|
+
: The schema object to be added.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<Global />
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
Adds a new schema to a specific external connection.
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
m365 external connection schema add --externalConnectionId 'CliConnectionId' --schema '{"baseType":"microsoft.graph.externalItem","properties":[{"name":"ticketTitle","type":"String","isSearchable":"true","isRetrievable":"true","labels":["title"]},{"name":"priority","type":"String","isQueryable":"true","isRetrievable":"true","isSearchable":"false"},{"name":"assignee","type":"String","isRetrievable":"true"}]}'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Response
|
|
40
|
+
|
|
41
|
+
The command won't return a response on success.
|
|
@@ -49,6 +49,9 @@ m365 spo site set [options]
|
|
|
49
49
|
`--siteLogoUrl [siteLogoUrl]`
|
|
50
50
|
: Set the logo for the site collection. This can be an absolute or relative URL to a file on the current site collection.
|
|
51
51
|
|
|
52
|
+
`--siteThumbnailUrl [siteThumbnailUrl]`
|
|
53
|
+
: Set the thumbnail for the site collection. This can be an absolute or relative URL to a file on the current site collection.
|
|
54
|
+
|
|
52
55
|
`--resourceQuota [resourceQuota]`
|
|
53
56
|
: The quota for this site collection in Sandboxed Solutions units
|
|
54
57
|
|
|
@@ -184,6 +187,18 @@ Unset the logo on the site
|
|
|
184
187
|
m365 spo site set --url https://contoso.sharepoint.com/sites/sales --siteLogoUrl ""
|
|
185
188
|
```
|
|
186
189
|
|
|
190
|
+
Set the thumbnail on the site
|
|
191
|
+
|
|
192
|
+
```sh
|
|
193
|
+
m365 spo site set --url https://contoso.sharepoint.com/sites/sales --siteThumbnailUrl "/sites/sales/SiteAssets/parker-ms-1200.png"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Unset the thumbnail on the site
|
|
197
|
+
|
|
198
|
+
```sh
|
|
199
|
+
m365 spo site set --url https://contoso.sharepoint.com/sites/sales --siteThumbnailUrl ""
|
|
200
|
+
```
|
|
201
|
+
|
|
187
202
|
Lock the site preventing users from accessing it. Wait for the configuration to complete
|
|
188
203
|
|
|
189
204
|
```sh
|