@pnp/cli-microsoft365 7.11.0-beta.c513557 → 8.0.0-beta.b0e3dab
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +5 -2
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/Auth.js +1 -1
- package/dist/AuthServer.js +10 -10
- package/dist/Command.js +10 -10
- package/dist/chili/index.js +1 -1
- package/dist/cli/cli.js +11 -11
- package/dist/index.js +1 -1
- package/dist/m365/base/AnonymousCommand.js +1 -1
- package/dist/m365/base/DelegatedGraphCommand.js +2 -2
- package/dist/m365/base/PowerAppsCommand.js +2 -2
- package/dist/m365/base/PowerAutomateCommand.js +2 -2
- package/dist/m365/base/PowerBICommand.js +2 -2
- package/dist/m365/base/PowerPlatformCommand.js +2 -2
- package/dist/m365/base/VivaEngageCommand.js +2 -2
- package/dist/m365/cli/commands/cli-consent.js +1 -1
- package/dist/m365/commands/login.js +1 -1
- package/dist/m365/commands/logout.js +1 -1
- package/dist/m365/commands/status.js +1 -1
- package/dist/m365/connection/commands/connection-list.js +1 -1
- package/dist/m365/connection/commands/connection-remove.js +1 -1
- package/dist/m365/connection/commands/connection-set.js +1 -1
- package/dist/m365/connection/commands/connection-use.js +1 -1
- package/dist/m365/entra/commands/app/app-permission-add.js +21 -1
- package/dist/m365/entra/commands/app/app-permission-remove.js +17 -0
- package/dist/m365/entra/commands/m365group/m365group-add.js +1 -0
- package/dist/m365/entra/commands/m365group/m365group-user-list.js +1 -1
- package/dist/m365/external/commands/connection/connection-doctor.js +1 -1
- package/dist/m365/external/commands/connection/connection-schema-add.js +4 -4
- package/dist/m365/file/commands/file-copy.js +3 -3
- package/dist/m365/flow/commands/flow-list.js +21 -23
- package/dist/m365/pa/commands/app/app-export.js +1 -1
- package/dist/m365/pa/commands/app/app-owner-set.js +1 -1
- package/dist/m365/pp/commands/solution/solution-publish.js +1 -1
- package/dist/m365/purview/commands/threatassessment/threatassessment-list.js +1 -1
- package/dist/m365/spfx/commands/project/project-azuredevops-pipeline-add.js +1 -1
- package/dist/m365/spfx/commands/project/project-externalize.js +1 -1
- package/dist/m365/spfx/commands/project/project-github-workflow-add.js +1 -1
- package/dist/m365/spfx/commands/spfx-doctor.js +4 -4
- package/dist/m365/spo/commands/cdn/cdn-get.js +12 -15
- package/dist/m365/spo/commands/cdn/cdn-set.js +6 -4
- package/dist/m365/spo/commands/commandset/commandset-get.js +1 -1
- package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
- package/dist/m365/spo/commands/group/group-member-add.js +103 -99
- package/dist/m365/spo/commands/group/group-member-remove.js +2 -2
- package/dist/m365/spo/commands/list/list-retentionlabel-ensure.js +1 -1
- package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +1 -1
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +2 -2
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +2 -2
- package/dist/m365/spo/commands/site/site-commsite-enable.js +1 -1
- package/dist/m365/spo/commands/spo-search.js +1 -1
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +4 -4
- package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +2 -2
- package/dist/m365/spo/commands/user/user-ensure.js +1 -1
- package/dist/m365/teams/commands/chat/chat-member-add.js +1 -1
- package/dist/m365/teams/commands/meeting/meeting-list.js +1 -1
- package/dist/m365/viva/commands/engage/engage-community-get.js +1 -1
- package/dist/request.js +13 -14
- package/dist/utils/spo.js +5 -5
- package/dist/utils/validation.js +25 -0
- package/docs/docs/cmd/flow/flow-list.mdx +114 -56
- package/docs/docs/cmd/spo/cdn/cdn-set.mdx +3 -3
- package/docs/docs/cmd/spo/group/group-member-add.mdx +34 -27
- package/npm-shrinkwrap.json +802 -601
- package/package.json +12 -12
|
@@ -44,7 +44,7 @@ class SpoTenantCommandSetSetCommand extends SpoCommand {
|
|
|
44
44
|
}
|
|
45
45
|
async getListItemById(logger, webUrl, listServerRelativeUrl, id) {
|
|
46
46
|
if (this.verbose) {
|
|
47
|
-
logger.logToStderr(`Getting the list item by id ${id}`);
|
|
47
|
+
await logger.logToStderr(`Getting the list item by id ${id}`);
|
|
48
48
|
}
|
|
49
49
|
const reqOptions = {
|
|
50
50
|
url: `${webUrl}/_api/web/GetList('${formatting.encodeQueryParameter(listServerRelativeUrl)}')/Items(${id})`,
|
|
@@ -57,7 +57,7 @@ class SpoTenantCommandSetSetCommand extends SpoCommand {
|
|
|
57
57
|
}
|
|
58
58
|
async updateTenantWideExtension(appCatalogUrl, options, listServerRelativeUrl, logger) {
|
|
59
59
|
if (this.verbose) {
|
|
60
|
-
logger.logToStderr('Updating tenant wide extension to the TenantWideExtensions list');
|
|
60
|
+
await logger.logToStderr('Updating tenant wide extension to the TenantWideExtensions list');
|
|
61
61
|
}
|
|
62
62
|
const formValues = [];
|
|
63
63
|
if (options.newTitle !== undefined) {
|
|
@@ -27,7 +27,7 @@ class SpoUserEnsureCommand extends SpoCommand {
|
|
|
27
27
|
async commandAction(logger, args) {
|
|
28
28
|
if (args.options.aadId) {
|
|
29
29
|
args.options.entraId = args.options.aadId;
|
|
30
|
-
this.warn(logger, `Option 'aadId' is deprecated. Please use 'entraId' instead`);
|
|
30
|
+
await this.warn(logger, `Option 'aadId' is deprecated. Please use 'entraId' instead`);
|
|
31
31
|
}
|
|
32
32
|
if (this.verbose) {
|
|
33
33
|
await logger.logToStderr(`Ensuring user ${args.options.entraId || args.options.userName} at site ${args.options.webUrl}`);
|
|
@@ -27,7 +27,7 @@ class TeamsChatMemberAddCommand extends GraphCommand {
|
|
|
27
27
|
async commandAction(logger, args) {
|
|
28
28
|
try {
|
|
29
29
|
if (this.verbose) {
|
|
30
|
-
logger.logToStderr(`Adding member ${args.options.userId || args.options.userName} to chat with id ${args.options.chatId}...`);
|
|
30
|
+
await logger.logToStderr(`Adding member ${args.options.userId || args.options.userName} to chat with id ${args.options.chatId}...`);
|
|
31
31
|
}
|
|
32
32
|
const chatMemberAddOptions = {
|
|
33
33
|
url: `${this.resource}/v1.0/chats/${args.options.chatId}/members`,
|
|
@@ -90,7 +90,7 @@ class TeamsMeetingListCommand extends GraphCommand {
|
|
|
90
90
|
let result = [];
|
|
91
91
|
for (let i = 0; i < meetingUrls.length; i += 20) {
|
|
92
92
|
if (this.verbose) {
|
|
93
|
-
logger.logToStderr(`Retrieving meetings ${i + 1}-${Math.min(i + 20, meetingUrls.length)}...`);
|
|
93
|
+
await logger.logToStderr(`Retrieving meetings ${i + 1}-${Math.min(i + 20, meetingUrls.length)}...`);
|
|
94
94
|
}
|
|
95
95
|
const batch = meetingUrls.slice(i, i + 20);
|
|
96
96
|
const requestOptions = {
|
|
@@ -22,7 +22,7 @@ class VivaEngageCommunityGetCommand extends GraphCommand {
|
|
|
22
22
|
}
|
|
23
23
|
async commandAction(logger, args) {
|
|
24
24
|
if (this.verbose) {
|
|
25
|
-
logger.logToStderr(`Getting the information of Viva Engage community with id '${args.options.id}'...`);
|
|
25
|
+
await logger.logToStderr(`Getting the information of Viva Engage community with id '${args.options.id}'...`);
|
|
26
26
|
}
|
|
27
27
|
const requestOptions = {
|
|
28
28
|
url: `${this.resource}/beta/employeeExperience/communities/${args.options.id}`,
|
package/dist/request.js
CHANGED
|
@@ -14,39 +14,39 @@ class Request {
|
|
|
14
14
|
}
|
|
15
15
|
this._debug = debug;
|
|
16
16
|
if (this._debug) {
|
|
17
|
-
this.req.interceptors.request.use(config => {
|
|
17
|
+
this.req.interceptors.request.use(async (config) => {
|
|
18
18
|
if (this._logger) {
|
|
19
|
-
this._logger.logToStderr('Request:');
|
|
19
|
+
await this._logger.logToStderr('Request:');
|
|
20
20
|
const properties = ['url', 'method', 'headers', 'responseType', 'decompress'];
|
|
21
21
|
if (config.responseType !== 'stream') {
|
|
22
22
|
properties.push('data');
|
|
23
23
|
}
|
|
24
|
-
this._logger.logToStderr(JSON.stringify(formatting.filterObject(config, properties), null, 2));
|
|
24
|
+
await this._logger.logToStderr(JSON.stringify(formatting.filterObject(config, properties), null, 2));
|
|
25
25
|
}
|
|
26
26
|
return config;
|
|
27
27
|
});
|
|
28
28
|
// since we're stubbing requests, response interceptor is never called in
|
|
29
29
|
// tests, so let's exclude it from coverage
|
|
30
30
|
/* c8 ignore next 26 */
|
|
31
|
-
this.req.interceptors.response.use((response) => {
|
|
31
|
+
this.req.interceptors.response.use(async (response) => {
|
|
32
32
|
if (this._logger) {
|
|
33
|
-
this._logger.logToStderr('Response:');
|
|
33
|
+
await this._logger.logToStderr('Response:');
|
|
34
34
|
const properties = ['status', 'statusText', 'headers'];
|
|
35
35
|
if (response.headers['content-type'] &&
|
|
36
36
|
response.headers['content-type'].indexOf('json') > -1) {
|
|
37
37
|
properties.push('data');
|
|
38
38
|
}
|
|
39
|
-
this._logger.logToStderr(JSON.stringify({
|
|
39
|
+
await this._logger.logToStderr(JSON.stringify({
|
|
40
40
|
url: response.config.url,
|
|
41
41
|
...formatting.filterObject(response, properties)
|
|
42
42
|
}, null, 2));
|
|
43
43
|
}
|
|
44
44
|
return response;
|
|
45
|
-
}, (error) => {
|
|
45
|
+
}, async (error) => {
|
|
46
46
|
if (this._logger) {
|
|
47
47
|
const properties = ['status', 'statusText', 'headers'];
|
|
48
|
-
this._logger.logToStderr('Request error:');
|
|
49
|
-
this._logger.logToStderr(JSON.stringify({
|
|
48
|
+
await this._logger.logToStderr('Request error:');
|
|
49
|
+
await this._logger.logToStderr(JSON.stringify({
|
|
50
50
|
url: error.config?.url,
|
|
51
51
|
...formatting.filterObject(error.response, properties),
|
|
52
52
|
error: error.error
|
|
@@ -169,7 +169,7 @@ class Request {
|
|
|
169
169
|
timings.api.push(Number(end - start));
|
|
170
170
|
_resolve((options.responseType === 'stream' || options.fullResponse) ? res : res.data);
|
|
171
171
|
}
|
|
172
|
-
}, (error) => {
|
|
172
|
+
}, async (error) => {
|
|
173
173
|
if (error && error.response &&
|
|
174
174
|
(error.response.status === 429 ||
|
|
175
175
|
error.response.status === 503)) {
|
|
@@ -178,11 +178,10 @@ class Request {
|
|
|
178
178
|
retryAfter = 10;
|
|
179
179
|
}
|
|
180
180
|
if (this._debug) {
|
|
181
|
-
this._logger.log(`Request throttled. Waiting ${retryAfter}sec before retrying...`);
|
|
181
|
+
await this._logger.log(`Request throttled. Waiting ${retryAfter}sec before retrying...`);
|
|
182
182
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}, retryAfter * 1000);
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
184
|
+
setTimeout(async () => { this.execute(options, resolve || _resolve, reject || _reject); }, retryAfter * 1000);
|
|
186
185
|
}
|
|
187
186
|
else {
|
|
188
187
|
if (reject) {
|
package/dist/utils/spo.js
CHANGED
|
@@ -1173,7 +1173,7 @@ export const spo = {
|
|
|
1173
1173
|
*/
|
|
1174
1174
|
async getFileAsListItemByUrl(absoluteListUrl, url, logger, verbose) {
|
|
1175
1175
|
if (verbose && logger) {
|
|
1176
|
-
logger.logToStderr(`Getting the file properties with url ${url}`);
|
|
1176
|
+
await logger.logToStderr(`Getting the file properties with url ${url}`);
|
|
1177
1177
|
}
|
|
1178
1178
|
const serverRelativePath = urlUtil.getServerRelativePath(absoluteListUrl, url);
|
|
1179
1179
|
const requestUrl = `${absoluteListUrl}/_api/web/GetFileByServerRelativePath(DecodedUrl=@f)?$expand=ListItemAllFields&@f='${formatting.encodeQueryParameter(serverRelativePath)}'`;
|
|
@@ -1206,7 +1206,7 @@ export const spo = {
|
|
|
1206
1206
|
const serverRelativeSiteMatch = absoluteListUrl.match(new RegExp('/sites/[^/]+'));
|
|
1207
1207
|
const webUrl = `${parsedUrl.protocol}//${parsedUrl.host}${serverRelativeSiteMatch ?? ''}`;
|
|
1208
1208
|
if (verbose && logger) {
|
|
1209
|
-
logger.logToStderr(`Getting list id...`);
|
|
1209
|
+
await logger.logToStderr(`Getting list id...`);
|
|
1210
1210
|
}
|
|
1211
1211
|
const listRequestOptions = {
|
|
1212
1212
|
url: `${absoluteListUrl}?$select=Id`,
|
|
@@ -1218,7 +1218,7 @@ export const spo = {
|
|
|
1218
1218
|
const list = await request.get(listRequestOptions);
|
|
1219
1219
|
const listId = list.Id;
|
|
1220
1220
|
if (verbose && logger) {
|
|
1221
|
-
logger.logToStderr(`Getting request digest for systemUpdate request`);
|
|
1221
|
+
await logger.logToStderr(`Getting request digest for systemUpdate request`);
|
|
1222
1222
|
}
|
|
1223
1223
|
const res = await spo.getRequestDigest(webUrl);
|
|
1224
1224
|
const formDigestValue = res.FormDigestValue;
|
|
@@ -1361,7 +1361,7 @@ export const spo = {
|
|
|
1361
1361
|
*/
|
|
1362
1362
|
async getSiteId(webUrl, logger, verbose) {
|
|
1363
1363
|
if (verbose && logger) {
|
|
1364
|
-
logger.logToStderr(`Getting site id for URL: ${webUrl}...`);
|
|
1364
|
+
await logger.logToStderr(`Getting site id for URL: ${webUrl}...`);
|
|
1365
1365
|
}
|
|
1366
1366
|
const url = new URL(webUrl);
|
|
1367
1367
|
const requestOptions = {
|
|
@@ -1393,7 +1393,7 @@ export const spo = {
|
|
|
1393
1393
|
};
|
|
1394
1394
|
const response = await request.post(requestOptions);
|
|
1395
1395
|
if (verbose) {
|
|
1396
|
-
logger.logToStderr('Attempt to get _ObjectIdentity_ key values');
|
|
1396
|
+
await logger.logToStderr('Attempt to get _ObjectIdentity_ key values');
|
|
1397
1397
|
}
|
|
1398
1398
|
const json = JSON.parse(response);
|
|
1399
1399
|
const contents = json.find(x => { return x.ErrorInfo; });
|
package/dist/utils/validation.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatting } from "./formatting.js";
|
|
1
2
|
export const validation = {
|
|
2
3
|
isValidGuidArray(guidsString) {
|
|
3
4
|
const guids = guidsString.split(',').map(guid => guid.trim());
|
|
@@ -33,6 +34,24 @@ export const validation = {
|
|
|
33
34
|
// verify if the upn is a valid upn. @meusername will be replaced in a later stage with the actual username of the logged in user
|
|
34
35
|
return upnRegEx.test(upn) || upn.toLowerCase().trim() === '@meusername';
|
|
35
36
|
},
|
|
37
|
+
/**
|
|
38
|
+
* Validates if the provided number is a valid positive integer (1 or higher).
|
|
39
|
+
* @param integer Integer value.
|
|
40
|
+
* @returns True if integer, false otherwise.
|
|
41
|
+
*/
|
|
42
|
+
isValidPositiveInteger(integer) {
|
|
43
|
+
return !isNaN(Number(integer)) && Number.isInteger(+integer) && +integer > 0;
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* Validates an array of integers. The integers must be positive (1 or higher).
|
|
47
|
+
* @param integerString Comma-separated string of integers.
|
|
48
|
+
* @returns True if the integers are valid, an error message with the invalid integers otherwise.
|
|
49
|
+
*/
|
|
50
|
+
isValidPositiveIntegerArray(integerString) {
|
|
51
|
+
const integers = formatting.splitAndTrim(integerString);
|
|
52
|
+
const invalidIntegers = integers.filter(integer => !this.isValidPositiveInteger(integer));
|
|
53
|
+
return invalidIntegers.length > 0 ? invalidIntegers.join(', ') : true;
|
|
54
|
+
},
|
|
36
55
|
isDateInRange(date, monthOffset) {
|
|
37
56
|
const d = new Date(date);
|
|
38
57
|
const cutoffDate = new Date();
|
|
@@ -332,6 +351,12 @@ export const validation = {
|
|
|
332
351
|
isValidISODuration(duration) {
|
|
333
352
|
const durationRegEx = new RegExp(/^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d+M$))?((\d+W)|(\d+\.\d+W$))?((\d+D)|(\d+\.\d+D$))?(T(?=\d)((\d+H)|(\d+\.\d+H$))?((\d+M)|(\d+\.\d+M$))?(\d+(\.\d+)?S)?)??$/);
|
|
334
353
|
return durationRegEx.test(duration);
|
|
354
|
+
},
|
|
355
|
+
isValidPermission(permissions) {
|
|
356
|
+
const invalidPermissions = permissions
|
|
357
|
+
.split(' ')
|
|
358
|
+
.filter(permission => permission.indexOf('/') < 0);
|
|
359
|
+
return invalidPermissions.length > 0 ? invalidPermissions : true;
|
|
335
360
|
}
|
|
336
361
|
};
|
|
337
362
|
//# sourceMappingURL=validation.js.map
|
|
@@ -4,7 +4,7 @@ import TabItem from '@theme/TabItem';
|
|
|
4
4
|
|
|
5
5
|
# flow list
|
|
6
6
|
|
|
7
|
-
Lists Power Automate
|
|
7
|
+
Lists Power Automate flows in the given environment
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
@@ -83,85 +83,61 @@ m365 flow list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --
|
|
|
83
83
|
```json
|
|
84
84
|
[
|
|
85
85
|
{
|
|
86
|
-
"name": "
|
|
87
|
-
"id": "/providers/Microsoft.ProcessSimple/environments/Default-
|
|
86
|
+
"name": "fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d",
|
|
87
|
+
"id": "/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d",
|
|
88
88
|
"type": "Microsoft.ProcessSimple/environments/flows",
|
|
89
89
|
"properties": {
|
|
90
90
|
"apiId": "/providers/Microsoft.PowerApps/apis/shared_logicflows",
|
|
91
|
-
"displayName": "
|
|
91
|
+
"displayName": "Invoicing flow",
|
|
92
92
|
"userType": "Owner",
|
|
93
93
|
"state": "Started",
|
|
94
94
|
"connectionReferences": {
|
|
95
|
-
"
|
|
96
|
-
"connectionName": "
|
|
97
|
-
"source": "
|
|
98
|
-
"id": "/providers/Microsoft.PowerApps/apis/
|
|
99
|
-
"displayName": "
|
|
100
|
-
"iconUri": "https://
|
|
101
|
-
"brandColor": "#
|
|
102
|
-
"tier": "NotSpecified"
|
|
103
|
-
},
|
|
104
|
-
"shared_flowpush": {
|
|
105
|
-
"connectionName": "shared-flowpush-d2c01136-3f7d-4449-b4f1-cb2d03a35ba8",
|
|
106
|
-
"source": "Invoker",
|
|
107
|
-
"id": "/providers/Microsoft.PowerApps/apis/shared_flowpush",
|
|
108
|
-
"displayName": "Notifications",
|
|
109
|
-
"iconUri": "https://connectoricons-prod.azureedge.net/releases/v1.0.1599/1.0.1599.3017/flowpush/icon.png",
|
|
110
|
-
"brandColor": "#FF3B30",
|
|
95
|
+
"shared_office365": {
|
|
96
|
+
"connectionName": "shared-office365-19528cc4-23c1-4b39-abea-f010eb9fe3f9",
|
|
97
|
+
"source": "Embedded",
|
|
98
|
+
"id": "/providers/Microsoft.PowerApps/apis/shared_office365",
|
|
99
|
+
"displayName": "Office 365 Outlook",
|
|
100
|
+
"iconUri": "https://connectoricons-prod.azureedge.net/releases/v1.0.1686/1.0.1686.3706/office365/icon.png",
|
|
101
|
+
"brandColor": "#0078D4",
|
|
111
102
|
"tier": "Standard"
|
|
112
103
|
}
|
|
113
104
|
},
|
|
114
|
-
"createdTime": "
|
|
115
|
-
"lastModifiedTime": "
|
|
105
|
+
"createdTime": "2024-07-09T21:32:14.5918501Z",
|
|
106
|
+
"lastModifiedTime": "2024-07-09T21:32:15.2349507Z",
|
|
116
107
|
"environment": {
|
|
117
|
-
"name": "Default-
|
|
108
|
+
"name": "Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4",
|
|
118
109
|
"type": "Microsoft.ProcessSimple/environments",
|
|
119
|
-
"id": "/providers/Microsoft.ProcessSimple/environments/Default-
|
|
110
|
+
"id": "/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4"
|
|
120
111
|
},
|
|
121
112
|
"definitionSummary": {
|
|
122
113
|
"triggers": [
|
|
123
114
|
{
|
|
124
|
-
"type": "
|
|
125
|
-
"kind": "Button",
|
|
115
|
+
"type": "Recurrence",
|
|
126
116
|
"metadata": {
|
|
127
|
-
"operationMetadataId": "
|
|
117
|
+
"operationMetadataId": "57317efe-4f87-47bc-b69c-179452c75f87"
|
|
128
118
|
}
|
|
129
119
|
}
|
|
130
120
|
],
|
|
131
121
|
"actions": [
|
|
132
122
|
{
|
|
133
123
|
"type": "OpenApiConnection",
|
|
134
|
-
"swaggerOperationId": "
|
|
124
|
+
"swaggerOperationId": "SendEmailV2",
|
|
135
125
|
"metadata": {
|
|
136
|
-
"operationMetadataId": "
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"type": "Table",
|
|
141
|
-
"metadata": {
|
|
142
|
-
"operationMetadataId": "1164ebc4-b501-46bc-bc88-cc99660f92c3"
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"type": "OpenApiConnection",
|
|
147
|
-
"swaggerOperationId": "SendEmailNotification",
|
|
148
|
-
"metadata": {
|
|
149
|
-
"operationMetadataId": "9febe29f-2e36-4765-81ab-83645d28332d"
|
|
126
|
+
"operationMetadataId": "474e8016-6a45-466a-a021-3fedf5a766be"
|
|
150
127
|
}
|
|
151
128
|
}
|
|
152
129
|
]
|
|
153
130
|
},
|
|
154
131
|
"creator": {
|
|
155
|
-
"tenantId": "
|
|
156
|
-
"objectId": "
|
|
157
|
-
"userId": "
|
|
132
|
+
"tenantId": "1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4",
|
|
133
|
+
"objectId": "9723d9b0-b8d6-48af-b381-fb4a9f0403e4",
|
|
134
|
+
"userId": "9723d9b0-b8d6-48af-b381-fb4a9f0403e4",
|
|
158
135
|
"userType": "ActiveDirectory"
|
|
159
136
|
},
|
|
160
137
|
"provisioningMethod": "FromDefinition",
|
|
161
138
|
"flowFailureAlertSubscribed": true,
|
|
162
139
|
"isManaged": false
|
|
163
|
-
}
|
|
164
|
-
"displayName": "Contoso Invoicing Flow"
|
|
140
|
+
}
|
|
165
141
|
}
|
|
166
142
|
]
|
|
167
143
|
```
|
|
@@ -171,16 +147,16 @@ m365 flow list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --
|
|
|
171
147
|
|
|
172
148
|
```text
|
|
173
149
|
name displayName
|
|
174
|
-
------------------------------------
|
|
175
|
-
|
|
150
|
+
------------------------------------ --------------
|
|
151
|
+
fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d Invoicing Flow
|
|
176
152
|
```
|
|
177
153
|
|
|
178
154
|
</TabItem>
|
|
179
155
|
<TabItem value="CSV">
|
|
180
156
|
|
|
181
157
|
```csv
|
|
182
|
-
name,displayName
|
|
183
|
-
|
|
158
|
+
name,id,type,displayName
|
|
159
|
+
fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d,/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d,Microsoft.ProcessSimple/environments/flows,Invoicing flow
|
|
184
160
|
```
|
|
185
161
|
|
|
186
162
|
</TabItem>
|
|
@@ -189,18 +165,100 @@ m365 flow list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --
|
|
|
189
165
|
```md
|
|
190
166
|
# flow list --environmentName "Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4"
|
|
191
167
|
|
|
192
|
-
Date:
|
|
168
|
+
Date: 09/07/2024
|
|
193
169
|
|
|
194
|
-
##
|
|
170
|
+
## Invoicing flow (/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d)
|
|
195
171
|
|
|
196
172
|
Property | Value
|
|
197
173
|
---------|-------
|
|
198
|
-
name |
|
|
199
|
-
id | /providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/
|
|
174
|
+
name | fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d
|
|
175
|
+
id | /providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d
|
|
200
176
|
type | Microsoft.ProcessSimple/environments/flows
|
|
201
|
-
displayName |
|
|
177
|
+
displayName | Invoicing flow
|
|
202
178
|
```
|
|
203
179
|
|
|
204
180
|
</TabItem>
|
|
205
181
|
</Tabs>
|
|
206
182
|
|
|
183
|
+
### `asAdmin` response
|
|
184
|
+
|
|
185
|
+
<Tabs>
|
|
186
|
+
<TabItem value="JSON">
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
[
|
|
190
|
+
{
|
|
191
|
+
"name": "fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d",
|
|
192
|
+
"id": "/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d",
|
|
193
|
+
"type": "Microsoft.ProcessSimple/environments/flows",
|
|
194
|
+
"properties": {
|
|
195
|
+
"apiId": "/providers/Microsoft.PowerApps/apis/shared_logicflows",
|
|
196
|
+
"displayName": "Invoicing flow",
|
|
197
|
+
"state": "Started",
|
|
198
|
+
"createdTime": "2024-07-09T21:32:15Z",
|
|
199
|
+
"lastModifiedTime": "2024-07-09T21:32:15Z",
|
|
200
|
+
"flowSuspensionReason": "None",
|
|
201
|
+
"environment": {
|
|
202
|
+
"name": "Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4",
|
|
203
|
+
"type": "Microsoft.ProcessSimple/environments",
|
|
204
|
+
"id": "/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4"
|
|
205
|
+
},
|
|
206
|
+
"definitionSummary": {
|
|
207
|
+
"triggers": [],
|
|
208
|
+
"actions": []
|
|
209
|
+
},
|
|
210
|
+
"creator": {
|
|
211
|
+
"tenantId": "1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4",
|
|
212
|
+
"objectId": "9723d9b0-b8d6-48af-b381-fb4a9f0403e4",
|
|
213
|
+
"userId": "9723d9b0-b8d6-48af-b381-fb4a9f0403e4",
|
|
214
|
+
"userType": "ActiveDirectory"
|
|
215
|
+
},
|
|
216
|
+
"flowFailureAlertSubscribed": false,
|
|
217
|
+
"isManaged": false,
|
|
218
|
+
"machineDescriptionData": {},
|
|
219
|
+
"flowOpenAiData": {
|
|
220
|
+
"isConsequential": false,
|
|
221
|
+
"isConsequentialFlagOverwritten": false
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
</TabItem>
|
|
229
|
+
<TabItem value="Text">
|
|
230
|
+
|
|
231
|
+
```text
|
|
232
|
+
name displayName
|
|
233
|
+
------------------------------------ --------------
|
|
234
|
+
fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d Invoicing Flow
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
</TabItem>
|
|
238
|
+
<TabItem value="CSV">
|
|
239
|
+
|
|
240
|
+
```csv
|
|
241
|
+
name,id,type,displayName
|
|
242
|
+
fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d,/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d,Microsoft.ProcessSimple/environments/flows,Invoicing flow
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
</TabItem>
|
|
246
|
+
<TabItem value="Markdown">
|
|
247
|
+
|
|
248
|
+
```md
|
|
249
|
+
# flow list --environmentName "Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4"
|
|
250
|
+
|
|
251
|
+
Date: 09/07/2024
|
|
252
|
+
|
|
253
|
+
## Invoicing flow (/providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d)
|
|
254
|
+
|
|
255
|
+
Property | Value
|
|
256
|
+
---------|-------
|
|
257
|
+
name | fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d
|
|
258
|
+
id | /providers/Microsoft.ProcessSimple/environments/Default-1e852b49-bf4b-4ba5-bcd4-a8c4706c8ed4/flows/fc2d4ef5-4151-4e93-9aaa-1f380d7ed95d
|
|
259
|
+
type | Microsoft.ProcessSimple/environments/flows
|
|
260
|
+
displayName | Invoicing flow
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
</TabItem>
|
|
264
|
+
</Tabs>
|
|
@@ -17,10 +17,10 @@ m365 spo cdn set [options]
|
|
|
17
17
|
: Set to true to enable CDN or to false to disable it. Allowed values: `true`, `false`.
|
|
18
18
|
|
|
19
19
|
`-t, --type [type]`
|
|
20
|
-
: Type of CDN to
|
|
20
|
+
: Type of CDN to update. Allowed values: `Public`, `Private`, `Both`. Defaults to `Public`.
|
|
21
21
|
|
|
22
22
|
`--noDefaultOrigins`
|
|
23
|
-
:
|
|
23
|
+
: Specify this flag to not create the default origins.
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
<Global />
|
|
@@ -35,7 +35,7 @@ Using the `--noDefaultOrigins` option you can specify to skip the creation of th
|
|
|
35
35
|
|
|
36
36
|
:::info
|
|
37
37
|
|
|
38
|
-
To use this command you
|
|
38
|
+
To use this command you must be a Global or SharePoint administrator.
|
|
39
39
|
|
|
40
40
|
:::
|
|
41
41
|
|
|
@@ -110,17 +110,21 @@ m365 spo group member add --webUrl https://contoso.sharepoint.com/sites/SiteA --
|
|
|
110
110
|
```json
|
|
111
111
|
[
|
|
112
112
|
{
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"Email": "
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
113
|
+
"Id": 11,
|
|
114
|
+
"IsHiddenInUI": false,
|
|
115
|
+
"LoginName": "i:0#.f|membership|adelev@contoso.onmicrosoft.com",
|
|
116
|
+
"Title": "Adele Vance",
|
|
117
|
+
"PrincipalType": 1,
|
|
118
|
+
"Email": "Adele.Vance@contoso.onmicrosoft.com",
|
|
119
|
+
"Expiration": "",
|
|
120
|
+
"IsEmailAuthenticationGuestUser": false,
|
|
121
|
+
"IsShareByEmailGuestUser": false,
|
|
122
|
+
"IsSiteAdmin": false,
|
|
123
|
+
"UserId": {
|
|
124
|
+
"NameId": "10032001f5ac2029",
|
|
125
|
+
"NameIdIssuer": "urn:federation:microsoftonline"
|
|
126
|
+
},
|
|
127
|
+
"UserPrincipalName": "adelev@contoso.onmicrosoft.com"
|
|
124
128
|
}
|
|
125
129
|
]
|
|
126
130
|
```
|
|
@@ -129,39 +133,42 @@ m365 spo group member add --webUrl https://contoso.sharepoint.com/sites/SiteA --
|
|
|
129
133
|
<TabItem value="Text">
|
|
130
134
|
|
|
131
135
|
```text
|
|
132
|
-
|
|
133
|
-
-----------
|
|
134
|
-
|
|
136
|
+
Title UserPrincipalName
|
|
137
|
+
----------- -------------------------------------
|
|
138
|
+
Adele Vance Adele.Vance@contoso.onmicrosoft.com
|
|
135
139
|
```
|
|
136
140
|
|
|
137
141
|
</TabItem>
|
|
138
142
|
<TabItem value="CSV">
|
|
139
143
|
|
|
140
144
|
```csv
|
|
141
|
-
|
|
142
|
-
|
|
145
|
+
Id,IsHiddenInUI,LoginName,Title,PrincipalType,Email,Expiration,IsEmailAuthenticationGuestUser,IsShareByEmailGuestUser,IsSiteAdmin,UserPrincipalName
|
|
146
|
+
11,,i:0#.f|membership|adelev@contoso.onmicrosoft.com,Adele Vance,1,Adele.Vance@contoso.onmicrosoft.com,,,,,adelev@contoso.onmicrosoft.com
|
|
143
147
|
```
|
|
144
148
|
|
|
145
149
|
</TabItem>
|
|
146
150
|
<TabItem value="Markdown">
|
|
147
151
|
|
|
148
152
|
```md
|
|
149
|
-
# spo group member add --webUrl "https://contoso.sharepoint.com" --groupId "5" --
|
|
153
|
+
# spo group member add --webUrl "https://contoso.sharepoint.com/sites/Marketing" --groupId "5" --userNames "AdeleV@contoso.onmicrosoft.com"
|
|
150
154
|
|
|
151
|
-
Date:
|
|
155
|
+
Date: 10/07/2024
|
|
152
156
|
|
|
153
|
-
##
|
|
157
|
+
## Adele Vance (11)
|
|
154
158
|
|
|
155
159
|
Property | Value
|
|
156
160
|
---------|-------
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
Id | 11
|
|
162
|
+
IsHiddenInUI | false
|
|
163
|
+
LoginName | i:0#.f\|membership\|adelev@contoso.onmicrosoft.com
|
|
164
|
+
Title | Adele Vance
|
|
165
|
+
PrincipalType | 1
|
|
166
|
+
Email | Adele.Vance@contoso.onmicrosoft.com
|
|
167
|
+
Expiration |
|
|
168
|
+
IsEmailAuthenticationGuestUser | false
|
|
169
|
+
IsShareByEmailGuestUser | false
|
|
170
|
+
IsSiteAdmin | false
|
|
171
|
+
UserPrincipalName | adelev@contoso.onmicrosoft.com
|
|
165
172
|
```
|
|
166
173
|
|
|
167
174
|
</TabItem>
|