@pnp/cli-microsoft365 5.2.0-beta.0f1c454 → 5.2.0-beta.a4da212

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.
@@ -15,6 +15,7 @@ const request_1 = require("../../../../request");
15
15
  const utils_1 = require("../../../../utils");
16
16
  const GraphCommand_1 = require("../../../base/GraphCommand");
17
17
  const commands_1 = require("../../commands");
18
+ const chatUtil_1 = require("./chatUtil");
18
19
  class TeamsChatMessageSendCommand extends GraphCommand_1.default {
19
20
  get name() {
20
21
  return commands_1.default.CHAT_MESSAGE_SEND;
@@ -79,7 +80,7 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
79
80
  return `${args.options.chatId} is not a valid Teams ChatId.`;
80
81
  }
81
82
  if (args.options.userEmails) {
82
- const userEmails = this.convertCommaSeparatedListToArray(args.options.userEmails);
83
+ const userEmails = chatUtil_1.chatUtil.convertParticipantStringToArray(args.options.userEmails);
83
84
  if (!userEmails || userEmails.length === 0 || userEmails.some(e => !utils_1.validation.isValidUserPrincipalName(e))) {
84
85
  return `${args.options.userEmails} contains one or more invalid email addresses.`;
85
86
  }
@@ -98,9 +99,9 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
98
99
  }
99
100
  ensureChatIdByUserEmails(userEmailsOption, logger) {
100
101
  return __awaiter(this, void 0, void 0, function* () {
101
- const userEmails = this.convertCommaSeparatedListToArray(userEmailsOption);
102
+ const userEmails = chatUtil_1.chatUtil.convertParticipantStringToArray(userEmailsOption);
102
103
  const currentUserEmail = utils_1.accessToken.getUserNameFromAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken).toLowerCase();
103
- const existingChats = yield this.findExistingGroupChatsByMembers([currentUserEmail, ...userEmails], logger);
104
+ const existingChats = yield chatUtil_1.chatUtil.findExistingChatsByParticipants([currentUserEmail, ...userEmails], logger);
104
105
  if (!existingChats || existingChats.length === 0) {
105
106
  const chat = yield this.createConversation([currentUserEmail, ...userEmails]);
106
107
  return chat.id;
@@ -116,7 +117,7 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
116
117
  }
117
118
  getChatIdByName(chatName, logger) {
118
119
  return __awaiter(this, void 0, void 0, function* () {
119
- const existingChats = yield this.findExistingGroupChatsByName(chatName, logger);
120
+ const existingChats = yield chatUtil_1.chatUtil.findExistingGroupChatsByName(chatName, logger);
120
121
  if (!existingChats || existingChats.length === 0) {
121
122
  throw new Error('No chat conversation was found with this name.');
122
123
  }
@@ -186,32 +187,6 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
186
187
  yield request_1.default.post(requestOptions);
187
188
  });
188
189
  }
189
- findExistingGroupChatsByMembers(expectedMemberEmails, logger) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- const endpoint = `${this.resource}/v1.0/chats?$filter=chatType eq 'group'&$expand=members&$select=id,topic,createdDateTime,members`;
192
- const foundChats = [];
193
- const chats = yield utils_1.odata.getAllItems(endpoint, logger);
194
- for (const chat of chats) {
195
- const chatMembers = chat.members;
196
- if (chatMembers.length === expectedMemberEmails.length) {
197
- const chatMemberEmails = chatMembers.map(member => { var _a; return (_a = member.email) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
198
- if (expectedMemberEmails.every(email => chatMemberEmails.some(memberEmail => memberEmail === email))) {
199
- foundChats.push(chat);
200
- }
201
- }
202
- }
203
- return foundChats;
204
- });
205
- }
206
- findExistingGroupChatsByName(name, logger) {
207
- return __awaiter(this, void 0, void 0, function* () {
208
- const endpoint = `${this.resource}/v1.0/chats?$filter=topic eq '${encodeURIComponent(name)}'&$expand=members&$select=id,topic,createdDateTime,chatType`;
209
- return utils_1.odata.getAllItems(endpoint, logger);
210
- });
211
- }
212
- convertCommaSeparatedListToArray(userEmailsString) {
213
- return userEmailsString.toLowerCase().replace(/\s/g, '').split(',').filter(e => e && e !== '');
214
- }
215
190
  }
216
191
  module.exports = new TeamsChatMessageSendCommand();
217
192
  //# sourceMappingURL=chat-message-send.js.map
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.chatUtil = void 0;
13
+ const odata_1 = require("../../../../utils/odata");
14
+ exports.chatUtil = {
15
+ /**
16
+ * Finds existing Microsoft Teams chats by participants, using the Microsoft Graph
17
+ * @param expectedMemberEmails a string array of participant emailaddresses
18
+ * @param logger a logger to pipe into the graph request odata helper.
19
+ */
20
+ findExistingChatsByParticipants(expectedMemberEmails, logger) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const chatType = expectedMemberEmails.length === 2 ? 'oneOnOne' : 'group';
23
+ const endpoint = `https://graph.microsoft.com/v1.0/chats?$filter=chatType eq '${chatType}'&$expand=members&$select=id,topic,createdDateTime,members`;
24
+ const foundChats = [];
25
+ const chats = yield odata_1.odata.getAllItems(endpoint, logger);
26
+ for (const chat of chats) {
27
+ const chatMembers = chat.members;
28
+ if (chatMembers.length === expectedMemberEmails.length) {
29
+ const chatMemberEmails = chatMembers.map(member => { var _a; return (_a = member.email) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
30
+ if (expectedMemberEmails.every(email => chatMemberEmails.some(memberEmail => memberEmail === email))) {
31
+ foundChats.push(chat);
32
+ }
33
+ }
34
+ }
35
+ return foundChats;
36
+ });
37
+ },
38
+ /**
39
+ * Finds existing Microsoft Teams chats by name, using the Microsoft Graph
40
+ * @param name the name of the chat conversation to find
41
+ * @param logger a logger to pipe into the graph request odata helper.
42
+ */
43
+ findExistingGroupChatsByName(name, logger) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const endpoint = `https://graph.microsoft.com/v1.0/chats?$filter=topic eq '${encodeURIComponent(name).replace("'", "''")}'&$expand=members&$select=id,topic,createdDateTime,chatType`;
46
+ return odata_1.odata.getAllItems(endpoint, logger);
47
+ });
48
+ },
49
+ /**
50
+ * Converts a comma or space separated string into an array.
51
+ * @param value the string to convert
52
+ */
53
+ convertParticipantStringToArray(value) {
54
+ if (value.indexOf(',') === -1) {
55
+ return value.trim().toLowerCase().split(' ').filter(e => e && e !== '');
56
+ }
57
+ else {
58
+ return value.trim().toLowerCase().split(',').filter(e => e && e !== '');
59
+ }
60
+ }
61
+ };
62
+ //# sourceMappingURL=chatUtil.js.map
@@ -11,8 +11,10 @@ exports.default = {
11
11
  CHANNEL_ADD: `${prefix} channel add`,
12
12
  CHANNEL_GET: `${prefix} channel get`,
13
13
  CHANNEL_LIST: `${prefix} channel list`,
14
+ CHANNEL_MEMBERSHIP_LIST: `${prefix} channel membership list`,
14
15
  CHANNEL_REMOVE: `${prefix} channel remove`,
15
16
  CHANNEL_SET: `${prefix} channel set`,
17
+ CHAT_GET: `${prefix} chat get`,
16
18
  CHAT_LIST: `${prefix} chat list`,
17
19
  CHAT_MEMBER_LIST: `${prefix} chat member list`,
18
20
  CHAT_MESSAGE_LIST: `${prefix} chat message list`,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.settingsNames = void 0;
4
4
  const settingsNames = {
5
5
  autoOpenBrowserOnLogin: 'autoOpenBrowserOnLogin',
6
+ autoOpenLinksInBrowser: 'autoOpenLinksInBrowser',
6
7
  copyDeviceCodeToClipboard: 'copyDeviceCodeToClipboard',
7
8
  csvEscape: 'csvEscape',
8
9
  csvHeader: 'csvHeader',
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./accessToken"), exports);
18
18
  __exportStar(require("./formatting"), exports);
19
19
  __exportStar(require("./fsUtil"), exports);
20
+ __exportStar(require("./md"), exports);
20
21
  __exportStar(require("./odata"), exports);
21
22
  __exportStar(require("./packageManager"), exports);
22
23
  __exportStar(require("./sinonUtil"), exports);
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.md = void 0;
4
+ const fs = require("fs");
5
+ const os_1 = require("os");
6
+ const path = require("path");
7
+ function convertTitle(md) {
8
+ return md.replace(/^#\s+(.*)/gm, (match, title) => {
9
+ return title.toLocaleUpperCase() + os_1.EOL + Array(title.length + 1).join('=');
10
+ });
11
+ }
12
+ function convertHeadings(md) {
13
+ return md.replace(/^(#+)\s+(.*)/gm, (match, level, content) => {
14
+ return `${os_1.EOL}${content.toLocaleUpperCase()}`;
15
+ });
16
+ }
17
+ function convertAdmonitions(md) {
18
+ const regex = new RegExp('^!!!\\s(.*)' + os_1.EOL + '\\s+', 'gm');
19
+ return md.replace(regex, (match, content) => {
20
+ return content.toLocaleUpperCase() + os_1.EOL + os_1.EOL;
21
+ });
22
+ }
23
+ function includeContent(md, rootFolder) {
24
+ return md.replace(/^--8<-- "([^"]+)"/gm, (match, filePath) => {
25
+ return fs.readFileSync(path.join(rootFolder, filePath), 'utf8');
26
+ });
27
+ }
28
+ function convertDd(md) {
29
+ return md.replace(/^:\s(.*)/gm, (match, content) => {
30
+ return ` ${content}`;
31
+ });
32
+ }
33
+ function convertHyperlinks(md) {
34
+ return md.replace(/\[([^\]]+)\]\(([^\)]+)\)/gm, (match, label, url) => {
35
+ // if the link is the same as the content, return just the link
36
+ if (label === url) {
37
+ return url;
38
+ }
39
+ // if the link is relative, remove it because there's no way to open it
40
+ // from the terminal anyway. In the future, we could convert it to the
41
+ // actual link of the docs.
42
+ if (!url.startsWith('http:') && !url.startsWith('https:')) {
43
+ return label;
44
+ }
45
+ return `${label} (${url})`;
46
+ });
47
+ }
48
+ function convertCodeFences(md) {
49
+ const regex = new RegExp('^```.*?' + os_1.EOL + '(.*?)```' + os_1.EOL, 'gms');
50
+ return md.replace(regex, (match, code) => {
51
+ return ` ${code}${os_1.EOL}`;
52
+ });
53
+ }
54
+ function removeInlineMarkup(md) {
55
+ // from https://stackoverflow.com/a/70064453
56
+ return md.replace(/(?<marks>[`]|\*{1,3}|_{1,3}|~{2})(?<inmarks>.*?)\1/g, '$<inmarks>$<link_text>');
57
+ }
58
+ function removeTooManyEmptyLines(md) {
59
+ const regex = new RegExp('(' + os_1.EOL + '){4,}', 'g');
60
+ return md.replace(regex, Array(4).join(os_1.EOL));
61
+ }
62
+ const convertFunctions = [
63
+ convertTitle,
64
+ convertHeadings,
65
+ convertAdmonitions,
66
+ convertDd,
67
+ convertHyperlinks,
68
+ convertCodeFences,
69
+ removeInlineMarkup,
70
+ removeTooManyEmptyLines
71
+ ];
72
+ exports.md = {
73
+ md2plain(md, rootFolderDocs) {
74
+ md = includeContent(md, rootFolderDocs);
75
+ convertFunctions.forEach(convert => {
76
+ md = convert(md);
77
+ });
78
+ return md;
79
+ }
80
+ };
81
+ //# sourceMappingURL=md.js.map
@@ -13,34 +13,34 @@ m365 spo tenant settings set [options]
13
13
  --8<-- "docs/cmd/_global.md"
14
14
 
15
15
  `--MinCompatibilityLevel [MinCompatibilityLevel]`
16
- : Specifies the lower bound on the compatibility level for new sites'
16
+ : Specifies the lower bound on the compatibility level for new sites
17
17
 
18
18
  `--MaxCompatibilityLevel [MaxCompatibilityLevel]`
19
- : Specifies the upper bound on the compatibility level for new sites'
19
+ : Specifies the upper bound on the compatibility level for new sites
20
20
 
21
21
  `--ExternalServicesEnabled [ExternalServicesEnabled]`
22
22
  : Enables external services for a tenant. External services are defined as services that are not in the Microsoft 365 datacenters. Allowed values `true,false`
23
23
 
24
24
  `--NoAccessRedirectUrl [NoAccessRedirectUrl]`
25
- : Specifies the URL of the redirected site for those site collections which have the locked state "NoAccess"'
25
+ : Specifies the URL of the redirected site for those site collections which have the locked state "NoAccess"
26
26
 
27
27
  `--SharingCapability [SharingCapability]`
28
- : Determines what level of sharing is available for the site. The valid values are: ExternalUserAndGuestSharing (default) - External user sharing (share by email) and guest link sharing are both enabled. Disabled - External user sharing (share by email) and guest link sharing are both disabled. ExternalUserSharingOnly - External user sharing (share by email) is enabled, but guest link sharing is disabled. Allowed values Disabled,ExternalUserSharingOnly,ExternalUserAndGuestSharing,ExistingExternalUserSharingOnly
28
+ : Determines what level of sharing is available for the site. The valid values are: ExternalUserAndGuestSharing (default) - External user sharing (share by email) and guest link sharing are both enabled. Disabled - External user sharing (share by email) and guest link sharing are both disabled. ExternalUserSharingOnly - External user sharing (share by email) is enabled, but guest link sharing is disabled. Allowed values `Disabled,ExternalUserSharingOnly,ExternalUserAndGuestSharing,ExistingExternalUserSharingOnly`
29
29
 
30
30
  `--DisplayStartASiteOption [DisplayStartASiteOption]`
31
31
  : Determines whether tenant users see the Start a Site menu option. Allowed values `true,false`
32
32
 
33
33
  `--StartASiteFormUrl [StartASiteFormUrl]`
34
- : Specifies URL of the form to load in the Start a Site dialog. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Full URL - Example:"https://contoso.sharepoint.com/path/to/form"'
34
+ : Specifies URL of the form to load in the Start a Site dialog. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Full URL - Example:"https://contoso.sharepoint.com/path/to/form"
35
35
 
36
36
  `--ShowEveryoneClaim [ShowEveryoneClaim]`
37
37
  : Enables the administrator to hide the Everyone claim in the People Picker. When users share an item with Everyone, it is accessible to all authenticated users in the tenant\'s Azure Active Directory, including any active external users who have previously accepted invitations. Note, that some SharePoint system resources such as templates and pages are required to be shared to Everyone and this type of sharing does not expose any user data or metadata. Allowed values `true,false`
38
38
 
39
39
  `--ShowAllUsersClaim [ShowAllUsersClaim]`
40
- : Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant\'s Azure Active Directory who have authenticated with via this method. When users share an item with "All Users (x)" it is accessible to all organtization members in the tenant that used NTLM to authentication with SharePoint. Allowed values `true,false`
40
+ : Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant\'s Azure Active Directory who have authenticated with via this method. When users share an item with "All Users (x)" it is accessible to all organization members in the tenant that used NTLM to authentication with SharePoint. Allowed values `true,false`
41
41
 
42
42
  `--ShowEveryoneExceptExternalUsersClaim [ShowEveryoneExceptExternalUsersClaim]`
43
- : Enables the administrator to hide the "Everyone except external users" claim in the People Picker. When users share an item with "Everyone except external users", it is accessible to all organization members in the tenant\'s Azure Active Directory, but not to any users who have previously accepted invitations. Allowed values `true,false`
43
+ : Enables the administrator to hide the "Everyone except external users" claim in the People Picker. When users share an item with "Everyone except external users", it is accessible to all organization members in the tenant's Azure Active Directory, but not to any users who have previously accepted invitations. Allowed values `true,false`
44
44
 
45
45
  `--SearchResolveExactEmailOrUPN [SearchResolveExactEmailOrUPN]`
46
46
  : Removes the search capability from People Picker. Note, recently resolved names will still appear in the list until browser cache is cleared or expired. SharePoint Administrators will still be able to use starts with or partial name matching when enabled. Allowed values `true,false`
@@ -49,7 +49,7 @@ m365 spo tenant settings set [options]
49
49
  : When set to true this will disable the ability to use Modern Authentication that leverages ADAL across the tenant. Allowed values `true,false`
50
50
 
51
51
  `--LegacyAuthProtocolsEnabled [LegacyAuthProtocolsEnabled]`
52
- : By default this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols(such as, Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
52
+ : By default this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols (such as, Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
53
53
 
54
54
  `--RequireAcceptingAccountMatchInvitedAccount [RequireAcceptingAccountMatchInvitedAccount]`
55
55
  : Ensures that an external user can only accept an external sharing invitation with an account matching the invited email address. Administrators who desire increased control over external collaborators should consider enabling this feature. Allowed values `true,false`
@@ -58,7 +58,7 @@ m365 spo tenant settings set [options]
58
58
  : Creates a Shared with Everyone folder in every user\'s new OneDrive for Business document library. The valid values are: True (default) - The Shared with Everyone folder is created. False - No folder is created when the site and OneDrive for Business document library is created. Allowed values `true,false`
59
59
 
60
60
  `--SignInAccelerationDomain [SignInAccelerationDomain]`
61
- : Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company\'s Identity Provider\'s portal. This value can also be used with Azure Active Directory Premium to customize the Azure Active Directory login page. Acceleration will not occur on site collections that are shared externally. This value should be configured with the login domain that is used by your company (that is, example@contoso.com). If your company has multiple third-party identity providers, configuring the sign-in acceleration value will break sign-in for your organization. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Login Domain - For example: "contoso.com". No value assigned by default'
61
+ : Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company's Identity Provider's portal. This value can also be used with Azure Active Directory Premium to customize the Azure Active Directory login page. Acceleration will not occur on site collections that are shared externally. This value should be configured with the login domain that is used by your company (that is, example@contoso.com). If your company has multiple third-party identity providers, configuring the sign-in acceleration value will break sign-in for your organization. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Login Domain - For example: "contoso.com". No value assigned by default
62
62
 
63
63
  `--EnableGuestSignInAcceleration [EnableGuestSignInAcceleration]`
64
64
  : Accelerates guest-enabled site collections as well as member-only site collections when the SignInAccelerationDomain parameter is set. Allowed values `true,false`
@@ -70,7 +70,7 @@ m365 spo tenant settings set [options]
70
70
  : When the feature is enabled, all external sharing invitations that are sent will blind copy the e-mail messages listed in the BccExternalSharingsInvitationList. Allowed values `true,false`
71
71
 
72
72
  `--BccExternalSharingInvitationsList [BccExternalSharingInvitationsList]`
73
- : Specifies a list of e-mail addresses to be BCC\'d when the BCC for External Sharing feature is enabled. Multiple addresses can be specified by creating a comma separated list with no spaces'
73
+ : Specifies a list of e-mail addresses to be BCC'd when the BCC for External Sharing feature is enabled. Multiple addresses can be specified by creating a comma separated list with no spaces
74
74
 
75
75
  `--UserVoiceForFeedbackEnabled [UserVoiceForFeedbackEnabled]`
76
76
  : Enables or disables the User Voice Feedback button. Allowed values `true,false`
@@ -79,22 +79,22 @@ m365 spo tenant settings set [options]
79
79
  : Enables or disables the publish CDN. Allowed values `true,false`
80
80
 
81
81
  `--PublicCdnAllowedFileTypes [PublicCdnAllowedFileTypes]`
82
- : Sets public CDN allowed file types'
82
+ : Sets public CDN allowed file types
83
83
 
84
84
  `--RequireAnonymousLinksExpireInDays [RequireAnonymousLinksExpireInDays]`
85
- : Specifies all anonymous links that have been created (or will be created) will expire after the set number of days. To remove the expiration requirement, set the value to zero (0)'
85
+ : Specifies all anonymous links that have been created (or will be created) will expire after the set number of days. To remove the expiration requirement, set the value to zero (0)
86
86
 
87
87
  `--SharingAllowedDomainList [SharingAllowedDomainList]`
88
- : Specifies a list of email domains that is allowed for sharing with the external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"'
88
+ : Specifies a list of email domains that is allowed for sharing with the external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
89
89
 
90
90
  `--SharingBlockedDomainList [SharingBlockedDomainList]`
91
- : Specifies a list of email domains that is blocked or prohibited for sharing with the external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"'
91
+ : Specifies a list of email domains that is blocked or prohibited for sharing with the external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
92
92
 
93
93
  `--SharingDomainRestrictionMode [SharingDomainRestrictionMode]`
94
- : Specifies the external sharing mode for domains. Allowed values None,AllowList,BlockList
94
+ : Specifies the external sharing mode for domains. Allowed values `None,AllowList,BlockList`
95
95
 
96
96
  `--OneDriveStorageQuota [OneDriveStorageQuota]`
97
- : Sets a default OneDrive for Business storage quota for the tenant. It will be used for new OneDrive for Business sites created. A typical use will be to reduce the amount of storage associated with OneDrive for Business to a level below what the License entitles the users. For example, it could be used to set the quota to 10 gigabytes (GB) by default'
97
+ : Sets a default OneDrive for Business storage quota for the tenant. It will be used for new OneDrive for Business sites created. A typical use will be to reduce the amount of storage associated with OneDrive for Business to a level below what the License entitles the users. For example, it could be used to set the quota to 10 gigabytes (GB) by default
98
98
 
99
99
  `--OneDriveForGuestsEnabled [OneDriveForGuestsEnabled]`
100
100
  : Lets OneDrive for Business creation for administrator managed guest users. Administrator managed Guest users use credentials in the resource tenant to access the resources. Allowed values `true,false`
@@ -103,7 +103,7 @@ m365 spo tenant settings set [options]
103
103
  : Allows access from network locations that are defined by an administrator. The values are true and false. The default value is false which means the setting is disabled. Before the iPAddressEnforcement parameter is set, make sure you add a valid IPv4 or IPv6 address to the iPAddressAllowList parameter. Allowed values `true,false`
104
104
 
105
105
  `--IPAddressAllowList [IPAddressAllowList]`
106
- : Configures multiple IP addresses or IP address ranges (IPv4 or IPv6). Use commas to separate multiple IP addresses or IP address ranges. Verify there are no overlapping IP addresses and ensure IP ranges use Classless Inter-Domain Routing (CIDR) notation. For example, 172.16.0.0, 192.168.1.0/27. No value is assigned by default'
106
+ : Configures multiple IP addresses or IP address ranges (IPv4 or IPv6). Use commas to separate multiple IP addresses or IP address ranges. Verify there are no overlapping IP addresses and ensure IP ranges use Classless Inter-Domain Routing (CIDR) notation. For example, `172.16.0.0, 192.168.1.0/27`. No value is assigned by default
107
107
 
108
108
  `--IPAddressWACTokenLifetime [IPAddressWACTokenLifetime]`
109
109
  : Sets IP Address WAC token lifetime'
@@ -112,13 +112,13 @@ m365 spo tenant settings set [options]
112
112
  : Sets use find people in PeoplePicker to true or false. Note: When set to true, users aren\'t able to share with security groups or SharePoint groups. Allowed values `true,false`
113
113
 
114
114
  `--DefaultSharingLinkType [DefaultSharingLinkType]`
115
- : Lets administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values None,Direct,Internal,AnonymousAccess
115
+ : Lets administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values `None,Direct,Internal,AnonymousAccess`
116
116
 
117
117
  `--ODBMembersCanShare [ODBMembersCanShare]`
118
- : Lets administrators set policy on re-sharing behavior in OneDrive for Business. Allowed values Unspecified,On,Off
118
+ : Lets administrators set policy on re-sharing behavior in OneDrive for Business. Allowed values `Unspecified,On,Off`
119
119
 
120
120
  `--ODBAccessRequests [ODBAccessRequests]`
121
- : Lets administrators set policy on access requests and requests to share in OneDrive for Business. Allowed values Unspecified,On,Off
121
+ : Lets administrators set policy on access requests and requests to share in OneDrive for Business. Allowed values `Unspecified,On,Off`
122
122
 
123
123
  `--PreventExternalUsersFromResharing [PreventExternalUsersFromResharing]`
124
124
  : Prevents external users from resharing. Allowed values `true,false`
@@ -127,16 +127,16 @@ m365 spo tenant settings set [options]
127
127
  : Shows people picker suggestions for guest users. Allowed values `true,false`
128
128
 
129
129
  `--FileAnonymousLinkType [FileAnonymousLinkType]`
130
- : Sets the file anonymous link type to None, View or Edit
130
+ : Sets the file anonymous link type to `None`, `View` or `Edit`
131
131
 
132
132
  `--FolderAnonymousLinkType [FolderAnonymousLinkType]`
133
- : Sets the folder anonymous link type to None, View or Edit
133
+ : Sets the folder anonymous link type to `None`, `View` or `Edit`
134
134
 
135
135
  `--NotifyOwnersWhenItemsReshared [NotifyOwnersWhenItemsReshared]`
136
- : When this parameter is set to true and another user re-shares a document from a user\'s OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
136
+ : When this parameter is set to true and another user re-shares a document from a user's OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
137
137
 
138
138
  `--NotifyOwnersWhenInvitationsAccepted [NotifyOwnersWhenInvitationsAccepted]`
139
- : When this parameter is set to true and when an external user accepts an invitation to a resource in a user\'s OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
139
+ : When this parameter is set to true and when an external user accepts an invitation to a resource in a user's OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
140
140
 
141
141
  `--NotificationsInOneDriveForBusinessEnabled [NotificationsInOneDriveForBusinessEnabled]`
142
142
  : Enables or disables notifications in OneDrive for business. Allowed values `true,false`
@@ -154,16 +154,16 @@ m365 spo tenant settings set [options]
154
154
  : Enables or disables social bar on site pages. Allowed values `true,false`
155
155
 
156
156
  `--OrphanedPersonalSitesRetentionPeriod [OrphanedPersonalSitesRetentionPeriod]`
157
- : Specifies the number of days after a user\'s Active Directory account is deleted that their OneDrive for Business content will be deleted. The value range is in days, between 30 and 3650. The default value is 30'
157
+ : Specifies the number of days after a user's Active Directory account is deleted that their OneDrive for Business content will be deleted. The value range is in days, between 30 and 3650. The default value is 30
158
158
 
159
159
  `--DisallowInfectedFileDownload [DisallowInfectedFileDownload]`
160
160
  : Prevents the Download button from being displayed on the Virus Found warning page. Allowed values `true,false`
161
161
 
162
162
  `--DefaultLinkPermission [DefaultLinkPermission]`
163
- : Choose the dafault permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values None,View,Edit
163
+ : Choose the dafault permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values `None,View,Edit`
164
164
 
165
165
  `--ConditionalAccessPolicy [ConditionalAccessPolicy]`
166
- : Configures conditional access policy. Allowed values AllowFullAccess,AllowLimitedAccess,BlockAccess
166
+ : Configures conditional access policy. Allowed values `AllowFullAccess,AllowLimitedAccess,BlockAccess`
167
167
 
168
168
  `--AllowDownloadingNonWebViewableFiles [AllowDownloadingNonWebViewableFiles]`
169
169
  : Allows downloading non web viewable files. The Allowed values `true,false`
@@ -181,7 +181,7 @@ m365 spo tenant settings set [options]
181
181
  : Sets email attestation to required. Allowed values `true,false`
182
182
 
183
183
  `--EmailAttestationReAuthDays [EmailAttestationReAuthDays]`
184
- : Sets email attestation re-auth days'
184
+ : Sets email attestation re-auth days
185
185
 
186
186
  `--HideDefaultThemes [HideDefaultThemes]`
187
187
  : Defines if the default themes are visible or hidden. Allowed values `true,false`
@@ -223,7 +223,7 @@ m365 spo tenant settings set [options]
223
223
  : Is unmanaged sync client for tenant restricted. Allowed values `true,false`
224
224
 
225
225
  `--LimitedAccessFileType [LimitedAccessFileType]`
226
- : Allows users to preview only Office files in the browser. This option increases security but may be a barrier to user productivity. Allowed values OfficeOnlineFilesOnly,WebPreviewableFiles,OtherFiles
226
+ : Allows users to preview only Office files in the browser. This option increases security but may be a barrier to user productivity. Allowed values `OfficeOnlineFilesOnly,WebPreviewableFiles,OtherFiles`
227
227
 
228
228
  `--OptOutOfGrooveBlock [OptOutOfGrooveBlock]`
229
229
  : Opts out of the groove block. Allowed values `true,false`
@@ -241,23 +241,29 @@ m365 spo tenant settings set [options]
241
241
  : Show NGSC dialog for sync on OneDrive for Business. Allowed values `true,false`
242
242
 
243
243
  `--SpecialCharactersStateInFileFolderNames [SpecialCharactersStateInFileFolderNames]`
244
- : Sets the special characters state in file and folder names in SharePoint and OneDrive for Business. Allowed values NoPreference,Allowed,Disallowed
244
+ : Sets the special characters state in file and folder names in SharePoint and OneDrive for Business. Allowed values `NoPreference,Allowed,Disallowed`
245
245
 
246
246
  `--SyncPrivacyProfileProperties [SyncPrivacyProfileProperties]`
247
247
  : Syncs privacy profile properties. Allowed values `true,false`
248
248
 
249
249
  `--ExcludedFileExtensionsForSyncClient [ExcludedFileExtensionsForSyncClient]`
250
- : Excluded file extensions for sync client. Array of strings split by comma (\',\')'
250
+ : Excluded file extensions for sync client. Array of strings split by comma
251
251
 
252
252
  `--AllowedDomainListForSyncClient [AllowedDomainListForSyncClient]`
253
- : Sets allowed domain list for sync client. Array of GUIDs split by comma (\',\'). Example:c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201'
253
+ : Sets allowed domain list for sync client. Array of GUIDs split by comma. Example: `c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201`
254
254
 
255
255
  `--DisabledWebPartIds [DisabledWebPartIds]`
256
- : Sets disabled web part Ids. Array of GUIDs split by comma (\',\'). Example:c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201'
256
+ : Sets disabled web part Ids. Array of GUIDs split by comma. Example: `c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201`
257
257
 
258
258
  `--DisableCustomAppAuthentication [DisableCustomAppAuthentication]`
259
259
  : Configure if ACS-based app-only auth should be disabled or not. Allowed values `true,false`
260
260
 
261
+ `--EnableAzureADB2BIntegration [EnableAzureADB2BIntegration]`
262
+ : Enables the preview for OneDrive and SharePoint integration with Azure AD B2B. Allowed values `true,false`. Azure AD one-time passcode needs to be enabled for this integration to work. For more information see [http://aka.ms/spo-b2b-integration](https://aka.ms/spo-b2b-integration).
263
+
264
+ `--SyncAadB2BManagementPolicy [SyncAadB2BManagementPolicy]`
265
+ : Syncs Azure B2B Management Policies. Allowed values `true,false`. For more information, see [SharePoint and OneDrive integration with Azure AD B2B](https://aka.ms/spo-b2b-integration).
266
+
261
267
  !!! important
262
268
  To use this command you have to have permissions to access the tenant admin site.
263
269
 
@@ -274,3 +280,16 @@ Sets multiple tenant global settings at once
274
280
  ```sh
275
281
  m365 spo tenant settings set --UserVoiceForFeedbackEnabled true --HideSyncButtonOnODB true --AllowedDomainListForSyncClient c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201
276
282
  ```
283
+
284
+ Enable Azure AD B2B integration for SharePoint and OneDrive and sync the Azure AD B2B management policies
285
+
286
+ ```sh
287
+ m365 spo tenant settings set --EnableAzureADB2BIntegration true
288
+ m365 spo tenant settings set --SyncAadB2BManagementPolicy true
289
+ ```
290
+
291
+ Disable Azure AD B2B integration for SharePoint and OneDrive
292
+
293
+ ```sh
294
+ m365 spo tenant settings set --EnableAzureADB2BIntegration false
295
+ ```
@@ -0,0 +1,48 @@
1
+ # teams channel membership list
2
+
3
+ Lists memberships in the specified Microsoft Teams team channel
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 teams channel membership list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--teamId [teamId]`
14
+ : The Id of the Microsoft Teams team. Specify either `teamId` or `teamName` but not both
15
+
16
+ `--teamName [teamName]`
17
+ : The display name of the Microsoft Teams team. Specify either `teamId` or `teamName` but not both
18
+
19
+ `--channelId [channelId]`
20
+ : The Id of the Microsoft Teams team channel. Specify either `channelId` or `channelName` but not both
21
+
22
+ `--channelName [channelName]`
23
+ : The display name of the Microsoft Teams team channel. Specify either `channelId` or `channelName` but not both
24
+
25
+ `-r, --role [role]`
26
+ : Filter the results to only users with the given role: owner, member, guest
27
+
28
+ --8<-- "docs/cmd/_global.md"
29
+
30
+ ## Examples
31
+
32
+ List the memberships in a specified Microsoft Teams team with id 00000000-0000-0000-0000-000000000000 and channel id 00:00000000000000000000000000000000@thread.skype
33
+
34
+ ```sh
35
+ m365 teams channel membership list --teamId 00000000-0000-0000-0000-000000000000 --channelId 00:00000000000000000000000000000000@thread.skype
36
+ ```
37
+
38
+ List the memberships in a specified Microsoft Teams team with name _Team Name_ and channel with name _Channel Name_
39
+
40
+ ```sh
41
+ m365 teams channel membership list --teamName "Team Name" --channelName "Channel Name"
42
+ ```
43
+
44
+ List all owner memberships in the specified Microsoft Teams team with id 00000000-0000-0000-0000-000000000000 and channel id 00:00000000000000000000000000000000@thread.skype
45
+
46
+ ```sh
47
+ m365 teams channel membership list --teamId 00000000-0000-0000-0000-000000000000 --channelId 00:00000000000000000000000000000000@thread.skype --role owner
48
+ ```
@@ -0,0 +1,53 @@
1
+ # teams chat get
2
+
3
+ Get a Microsoft Teams chat conversation by id, participants or chat name.
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 teams chat get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id [id]`
14
+ : The ID of the chat conversation. Specify either `id`, `name` or `participants`, but not multiple.
15
+
16
+ `-n, --name [name]`
17
+ : The display name of the chat conversation. Specify either `id`, `name` or `participants`, but not multiple.
18
+
19
+ `-p, --participants [participants]`
20
+ : A comma-separated list of one or more e-mail addresses. Specify either `id`, `name` or `participants`, but not multiple.
21
+
22
+ --8<-- "docs/cmd/_global.md"
23
+
24
+ ## Remarks
25
+
26
+ The output will not include the chat conversation members or messages. It will just retrieve the conversation details.
27
+ When using the `participants` option, the signed-in user will automatically be included as a participant. There's no need to add it to the list manually.
28
+
29
+ ## Examples
30
+
31
+ Get a Microsoft Teams chat conversation by id
32
+
33
+ ```sh
34
+ m365 teams chat get --id 19:2da4c29f6d7041eca70b638b43d45437@thread.v2
35
+ ```
36
+
37
+ Get a Microsoft Teams one on one chat conversation, finding it by participant.
38
+
39
+ ```sh
40
+ m365 teams chat get --participants alexw@contoso.com
41
+ ```
42
+
43
+ Get a Microsoft Teams group chat conversation, finding it by participants.
44
+
45
+ ```sh
46
+ m365 teams chat get --participants alexw@contoso.com,meganb@contoso.com
47
+ ```
48
+
49
+ Get a Microsoft Teams chat conversation, finding it by display name
50
+
51
+ ```sh
52
+ m365 teams chat get --name "Just a conversation"
53
+ ```