@pnp/cli-microsoft365 6.3.0-beta.4c3b2c9 → 6.3.0-beta.861847a
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.js +2 -0
- package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +76 -0
- package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +47 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +77 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +8 -8
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +44 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +97 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +90 -0
- package/dist/m365/purview/commands.js +7 -1
- package/dist/m365/spo/commands/listitem/listitem-add.js +2 -1
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +179 -0
- package/dist/m365/spo/commands.js +1 -0
- package/docs/docs/cmd/purview/retentionevent/retentionevent-get.md +132 -0
- package/docs/docs/cmd/purview/retentionevent/retentionevent-list.md +107 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.md +106 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.md +97 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.md +43 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.md +43 -0
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.md +59 -0
- package/package.json +1 -1
|
@@ -0,0 +1,179 @@
|
|
|
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
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
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");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var _SpoTenantApplicationCustomizerAddCommand_instances, _SpoTenantApplicationCustomizerAddCommand_initTelemetry, _SpoTenantApplicationCustomizerAddCommand_initOptions, _SpoTenantApplicationCustomizerAddCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const validation_1 = require("../../../../utils/validation");
|
|
19
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
20
|
+
const commands_1 = require("../../commands");
|
|
21
|
+
const Cli_1 = require("../../../../cli/Cli");
|
|
22
|
+
const spoTenantAppCatalogUrlGetCommand = require("../tenant/tenant-appcatalogurl-get");
|
|
23
|
+
const spoListItemAddCommand = require("../listitem/listitem-add");
|
|
24
|
+
const spoListItemListCommand = require("../listitem/listitem-list");
|
|
25
|
+
const urlUtil_1 = require("../../../../utils/urlUtil");
|
|
26
|
+
class SpoTenantApplicationCustomizerAddCommand extends SpoCommand_1.default {
|
|
27
|
+
get name() {
|
|
28
|
+
return commands_1.default.TENANT_APPLICATIONCUSTOMIZER_ADD;
|
|
29
|
+
}
|
|
30
|
+
get description() {
|
|
31
|
+
return 'Add an application customizer as a tenant wide extension.';
|
|
32
|
+
}
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
_SpoTenantApplicationCustomizerAddCommand_instances.add(this);
|
|
36
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerAddCommand_instances, "m", _SpoTenantApplicationCustomizerAddCommand_initTelemetry).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerAddCommand_instances, "m", _SpoTenantApplicationCustomizerAddCommand_initOptions).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerAddCommand_instances, "m", _SpoTenantApplicationCustomizerAddCommand_initValidators).call(this);
|
|
39
|
+
}
|
|
40
|
+
commandAction(logger, args) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
const appCatalogUrl = yield this.getAppCatalogUrl(logger);
|
|
44
|
+
const componentManifest = yield this.getComponentManifest(appCatalogUrl, args.options.clientSideComponentId, logger);
|
|
45
|
+
const clientComponentManifest = JSON.parse(componentManifest.ClientComponentManifest);
|
|
46
|
+
if (clientComponentManifest.extensionType !== "ApplicationCustomizer") {
|
|
47
|
+
throw `The extension type of this component is not of type 'ApplicationCustomizer' but of type '${clientComponentManifest.extensionType}'`;
|
|
48
|
+
}
|
|
49
|
+
const solution = yield this.getSolutionFromAppCatalog(appCatalogUrl, componentManifest.SolutionId, logger);
|
|
50
|
+
if (!solution.ContainsTenantWideExtension) {
|
|
51
|
+
throw `The solution does not contain an extension that can be deployed to all sites. Make sure that you've entered the correct component Id.`;
|
|
52
|
+
}
|
|
53
|
+
else if (!solution.SkipFeatureDeployment) {
|
|
54
|
+
throw 'The solution has not been deployed to all sites. Make sure to deploy this solution to all sites.';
|
|
55
|
+
}
|
|
56
|
+
yield this.addTenantWideExtension(appCatalogUrl, args.options, logger);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
this.handleRejectedODataJsonPromise(err);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
getAppCatalogUrl(logger) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const spoTenantAppCatalogUrlGetCommandOutput = yield Cli_1.Cli.executeCommandWithOutput(spoTenantAppCatalogUrlGetCommand, { options: { output: 'text', _: [] } });
|
|
66
|
+
if (this.verbose) {
|
|
67
|
+
logger.logToStderr(spoTenantAppCatalogUrlGetCommandOutput.stderr);
|
|
68
|
+
}
|
|
69
|
+
const appCatalogUrl = spoTenantAppCatalogUrlGetCommandOutput.stdout;
|
|
70
|
+
if (!appCatalogUrl) {
|
|
71
|
+
throw 'Cannot add tenant-wide application customizer as app catalog cannot be found';
|
|
72
|
+
}
|
|
73
|
+
if (this.verbose) {
|
|
74
|
+
logger.logToStderr(`Got tenant app catalog url: ${appCatalogUrl}`);
|
|
75
|
+
}
|
|
76
|
+
return appCatalogUrl;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getComponentManifest(appCatalogUrl, clientSideComponentId, logger) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
if (this.verbose) {
|
|
82
|
+
logger.logToStderr('Retrieving component manifest item from the ComponentManifests list on the app catalog site so that we get the solution id');
|
|
83
|
+
}
|
|
84
|
+
const camlQuery = `<View><ViewFields><FieldRef Name='ClientComponentId'></FieldRef><FieldRef Name='SolutionId'></FieldRef><FieldRef Name='ClientComponentManifest'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='ClientComponentId' /><Value Type='Guid'>${clientSideComponentId}</Value></Eq></Where></Query></View>`;
|
|
85
|
+
const commandOptions = {
|
|
86
|
+
webUrl: appCatalogUrl,
|
|
87
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/Lists/ComponentManifests`,
|
|
88
|
+
camlQuery: camlQuery,
|
|
89
|
+
verbose: this.verbose,
|
|
90
|
+
debug: this.debug,
|
|
91
|
+
output: 'json'
|
|
92
|
+
};
|
|
93
|
+
const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
94
|
+
if (this.verbose) {
|
|
95
|
+
logger.logToStderr(output.stderr);
|
|
96
|
+
}
|
|
97
|
+
const outputParsed = JSON.parse(output.stdout);
|
|
98
|
+
if (outputParsed.length === 0) {
|
|
99
|
+
throw 'No component found with the specified clientSideComponentId found in the component manifest list. Make sure that the application is added to the application catalog';
|
|
100
|
+
}
|
|
101
|
+
return outputParsed[0];
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getSolutionFromAppCatalog(appCatalogUrl, solutionId, logger) {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
if (this.verbose) {
|
|
107
|
+
logger.logToStderr(`Retrieving solution with id ${solutionId} from the application catalog`);
|
|
108
|
+
}
|
|
109
|
+
const camlQuery = `<View><ViewFields><FieldRef Name='SkipFeatureDeployment'></FieldRef><FieldRef Name='ContainsTenantWideExtension'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='AppProductID' /><Value Type='Guid'>${solutionId}</Value></Eq></Where></Query></View>`;
|
|
110
|
+
const commandOptions = {
|
|
111
|
+
webUrl: appCatalogUrl,
|
|
112
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/AppCatalog`,
|
|
113
|
+
camlQuery: camlQuery,
|
|
114
|
+
verbose: this.verbose,
|
|
115
|
+
debug: this.debug,
|
|
116
|
+
output: 'json'
|
|
117
|
+
};
|
|
118
|
+
const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
119
|
+
if (this.verbose) {
|
|
120
|
+
logger.logToStderr(output.stderr);
|
|
121
|
+
}
|
|
122
|
+
const outputParsed = JSON.parse(output.stdout);
|
|
123
|
+
if (outputParsed.length === 0) {
|
|
124
|
+
throw `No component found with the solution id ${solutionId}. Make sure that the solution is available in the app catalog`;
|
|
125
|
+
}
|
|
126
|
+
return outputParsed[0];
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
addTenantWideExtension(appCatalogUrl, options, logger) {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
if (this.verbose) {
|
|
132
|
+
logger.logToStderr('Pre-checks finished. Adding tenant wide extension to the TenantWideExtensions list');
|
|
133
|
+
}
|
|
134
|
+
const commandOptions = {
|
|
135
|
+
webUrl: appCatalogUrl,
|
|
136
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/Lists/TenantWideExtensions`,
|
|
137
|
+
Title: options.title,
|
|
138
|
+
TenantWideExtensionComponentId: options.clientSideComponentId,
|
|
139
|
+
TenantWideExtensionLocation: 'ClientSideExtension.ApplicationCustomizer',
|
|
140
|
+
TenantWideExtensionSequence: 0,
|
|
141
|
+
TenantWideExtensionListTemplate: 0,
|
|
142
|
+
TenantWideExtensionComponentProperties: options.clientSideComponentProperties || '',
|
|
143
|
+
TenantWideExtensionWebTemplate: options.webTemplate || '',
|
|
144
|
+
TenantWideExtensionDisabled: false,
|
|
145
|
+
verbose: this.verbose,
|
|
146
|
+
debug: this.debug,
|
|
147
|
+
output: options.output
|
|
148
|
+
};
|
|
149
|
+
yield Cli_1.Cli.executeCommand(spoListItemAddCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
_SpoTenantApplicationCustomizerAddCommand_instances = new WeakSet(), _SpoTenantApplicationCustomizerAddCommand_initTelemetry = function _SpoTenantApplicationCustomizerAddCommand_initTelemetry() {
|
|
154
|
+
this.telemetry.push((args) => {
|
|
155
|
+
Object.assign(this.telemetryProperties, {
|
|
156
|
+
clientSideComponentProperties: typeof args.options.clientSideComponentProperties !== 'undefined',
|
|
157
|
+
webTemplate: typeof args.options.webTemplate !== 'undefined'
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
}, _SpoTenantApplicationCustomizerAddCommand_initOptions = function _SpoTenantApplicationCustomizerAddCommand_initOptions() {
|
|
161
|
+
this.options.unshift({
|
|
162
|
+
option: '-t, --title <title>'
|
|
163
|
+
}, {
|
|
164
|
+
option: '-i, --clientSideComponentId <clientSideComponentId>'
|
|
165
|
+
}, {
|
|
166
|
+
option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
|
|
167
|
+
}, {
|
|
168
|
+
option: '-w, --webTemplate [webTemplate]'
|
|
169
|
+
});
|
|
170
|
+
}, _SpoTenantApplicationCustomizerAddCommand_initValidators = function _SpoTenantApplicationCustomizerAddCommand_initValidators() {
|
|
171
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
if (!validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
|
|
173
|
+
return `${args.options.clientSideComponentId} is not a valid GUID`;
|
|
174
|
+
}
|
|
175
|
+
return true;
|
|
176
|
+
}));
|
|
177
|
+
};
|
|
178
|
+
module.exports = new SpoTenantApplicationCustomizerAddCommand();
|
|
179
|
+
//# sourceMappingURL=tenant-applicationcustomizer-add.js.map
|
|
@@ -277,6 +277,7 @@ exports.default = {
|
|
|
277
277
|
STORAGEENTITY_REMOVE: `${prefix} storageentity remove`,
|
|
278
278
|
TENANT_APPCATALOG_ADD: `${prefix} tenant appcatalog add`,
|
|
279
279
|
TENANT_APPCATALOGURL_GET: `${prefix} tenant appcatalogurl get`,
|
|
280
|
+
TENANT_APPLICATIONCUSTOMIZER_ADD: `${prefix} tenant applicationcustomizer add`,
|
|
280
281
|
TENANT_RECYCLEBINITEM_LIST: `${prefix} tenant recyclebinitem list`,
|
|
281
282
|
TENANT_RECYCLEBINITEM_REMOVE: `${prefix} tenant recyclebinitem remove`,
|
|
282
283
|
TENANT_RECYCLEBINITEM_RESTORE: `${prefix} tenant recyclebinitem restore`,
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# purview retentionevent get
|
|
2
|
+
|
|
3
|
+
Get a retention event
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 purview retentionevent get [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-i, --id <id>`
|
|
14
|
+
: The Id of the retention event.
|
|
15
|
+
|
|
16
|
+
--8<-- "docs/cmd/_global.md"
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
Get a retention event by id
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
m365 purview retentionevent get --id c37d695e-d581-4ae9-82a0-9364eba4291e
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Remarks
|
|
27
|
+
|
|
28
|
+
!!! attention
|
|
29
|
+
This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
|
|
30
|
+
|
|
31
|
+
!!! attention
|
|
32
|
+
This command currently only supports delegated permissions.
|
|
33
|
+
|
|
34
|
+
## More information
|
|
35
|
+
|
|
36
|
+
This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created.
|
|
37
|
+
|
|
38
|
+
[Read more on event-based retention here](https://learn.microsoft.com/en-us/microsoft-365/compliance/event-driven-retention?view=o365-worldwide)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Response
|
|
42
|
+
|
|
43
|
+
=== "JSON"
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"displayName": "Contract xyz expired",
|
|
48
|
+
"description": "The retention period for documents related to Contract xyz started because the contract expired.",
|
|
49
|
+
"eventTriggerDateTime": "2023-02-01T09:16:37Z",
|
|
50
|
+
"lastStatusUpdateDateTime": "2023-02-01T09:21:15Z",
|
|
51
|
+
"createdDateTime": "2023-02-01T09:17:40Z",
|
|
52
|
+
"lastModifiedDateTime": "2023-02-01T09:17:40Z",
|
|
53
|
+
"id": "c37d695e-d581-4ae9-82a0-9364eba4291e",
|
|
54
|
+
"eventQueries": [
|
|
55
|
+
{
|
|
56
|
+
"queryType": "files",
|
|
57
|
+
"query": "1234"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"queryType": "messages",
|
|
61
|
+
"query": "Terminate"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"eventStatus": {
|
|
65
|
+
"error": null,
|
|
66
|
+
"status": "success"
|
|
67
|
+
},
|
|
68
|
+
"eventPropagationResults": [
|
|
69
|
+
{
|
|
70
|
+
"serviceName": "SharePoint",
|
|
71
|
+
"location": null,
|
|
72
|
+
"status": "none",
|
|
73
|
+
"statusInformation": null
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"createdBy": {
|
|
77
|
+
"user": {
|
|
78
|
+
"id": null,
|
|
79
|
+
"displayName": "John Doe"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"lastModifiedBy": {
|
|
83
|
+
"user": {
|
|
84
|
+
"id": null,
|
|
85
|
+
"displayName": "John Doe"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
=== "Text"
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
createdBy : {"user":{"id":null,"displayName":"John Doe"}}
|
|
95
|
+
createdDateTime : 2023-02-01T09:17:40Z
|
|
96
|
+
description : The retention period for documents related to Contract xyz started because the contract expired.
|
|
97
|
+
displayName : Contract xyz expired
|
|
98
|
+
eventTriggerDateTime : 2023-02-01T09:16:37Z
|
|
99
|
+
id : c37d695e-d581-4ae9-82a0-9364eba4291e
|
|
100
|
+
lastModifiedBy : {"user":{"id":null,"displayName":"John Doe"}}
|
|
101
|
+
lastModifiedDateTime : 2023-02-01T09:17:40Z
|
|
102
|
+
lastStatusUpdateDateTime: 2023-02-01T09:21:15Z
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
=== "CSV"
|
|
106
|
+
|
|
107
|
+
```csv
|
|
108
|
+
displayName,description,eventTriggerDateTime,lastStatusUpdateDateTime,createdDateTime,lastModifiedDateTime,id,createdBy,lastModifiedBy
|
|
109
|
+
Contract xyz expired,The retention period for documents related to Contract xyz started because the contract expired.,2023-02-01T09:16:37Z,2023-02-01T09:21:15Z,2023-02-01T09:17:40Z,2023-02-01T09:17:40Z,c37d695e-d581-4ae9-82a0-9364eba4291e,{"user":{"id":null,"displayName":"John Doe"}},{"user":{"id":null,"displayName":"John Doe"}}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
=== "Markdown"
|
|
113
|
+
|
|
114
|
+
```md
|
|
115
|
+
# purview retentionevent get --id "c37d695e-d581-4ae9-82a0-9364eba4291e"
|
|
116
|
+
|
|
117
|
+
Date: 2/1/2023
|
|
118
|
+
|
|
119
|
+
## Contract xyz expired (c37d695e-d581-4ae9-82a0-9364eba4291e)
|
|
120
|
+
|
|
121
|
+
Property | Value
|
|
122
|
+
---------|-------
|
|
123
|
+
displayName | Contract xyz expired
|
|
124
|
+
description | The retention period for documents related to Contract xyz started because the contract expired.
|
|
125
|
+
eventTriggerDateTime | 2023-02-01T09:16:37Z
|
|
126
|
+
lastStatusUpdateDateTime: 2023-02-01T09:21:15Z
|
|
127
|
+
createdDateTime | 2023-02-01T09:17:40Z
|
|
128
|
+
lastModifiedDateTime | 2023-02-01T09:17:40Z
|
|
129
|
+
id | c37d695e-d581-4ae9-82a0-9364eba4291e
|
|
130
|
+
createdBy | {"user":{"id":null,"displayName":"John Doe"}}
|
|
131
|
+
lastModifiedBy | {"user":{"id":null,"displayName":"John Doe"}}
|
|
132
|
+
```
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# purview retentionevent list
|
|
2
|
+
|
|
3
|
+
Get a list of retention events
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 purview retentionevent list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
--8<-- "docs/cmd/_global.md"
|
|
14
|
+
|
|
15
|
+
## Examples
|
|
16
|
+
|
|
17
|
+
Get a list of retention events
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
m365 purview retentionevent list
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Remarks
|
|
24
|
+
|
|
25
|
+
!!! attention
|
|
26
|
+
This command is based on a Microsoft Graph API that is currently in preview and is subject to change once the API reached general availability.
|
|
27
|
+
|
|
28
|
+
!!! attention
|
|
29
|
+
This command currently does not support app only permissions.
|
|
30
|
+
|
|
31
|
+
## More information
|
|
32
|
+
|
|
33
|
+
This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created.
|
|
34
|
+
|
|
35
|
+
## Response
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
=== "JSON"
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
[
|
|
42
|
+
{
|
|
43
|
+
"displayName": "Contract xyz expired",
|
|
44
|
+
"description": null,
|
|
45
|
+
"eventTriggerDateTime": "2023-02-03T13:51:40Z",
|
|
46
|
+
"eventStatus": null,
|
|
47
|
+
"lastStatusUpdateDateTime": null,
|
|
48
|
+
"createdDateTime": "2023-02-03T13:51:40Z",
|
|
49
|
+
"lastModifiedDateTime": "2023-02-03T13:51:40Z",
|
|
50
|
+
"id": "7248cfa8-c03a-4ec1-49a4-08db05edc686",
|
|
51
|
+
"eventQueries": [],
|
|
52
|
+
"eventPropagationResults": [],
|
|
53
|
+
"createdBy": {
|
|
54
|
+
"user": {
|
|
55
|
+
"id": null,
|
|
56
|
+
"displayName": "John Doe"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"lastModifiedBy": {
|
|
60
|
+
"user": {
|
|
61
|
+
"id": null,
|
|
62
|
+
"displayName": "John Doe"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
=== "Text"
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
id displayName eventTriggerDateTime
|
|
73
|
+
------------------------------------ --------------------- --------------------
|
|
74
|
+
7248cfa8-c03a-4ec1-49a4-08db05edc686 Contract xyz expired 2023-02-03T13:51:40Z
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
=== "CSV"
|
|
78
|
+
|
|
79
|
+
```csv
|
|
80
|
+
id,displayName,isInUse
|
|
81
|
+
7248cfa8-c03a-4ec1-49a4-08db05edc686,Contract xyz expired,2023-02-03T13:51:40Z
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
=== "Markdown"
|
|
85
|
+
|
|
86
|
+
```md
|
|
87
|
+
# purview retentionevent list
|
|
88
|
+
|
|
89
|
+
Date: 3/2/2023
|
|
90
|
+
|
|
91
|
+
## Contract xyz expired (7248cfa8-c03a-4ec1-49a4-08db05edc686)
|
|
92
|
+
|
|
93
|
+
Property | Value
|
|
94
|
+
---------|-------
|
|
95
|
+
displayName | Contract xyz expired
|
|
96
|
+
description | null
|
|
97
|
+
eventTriggerDateTime | 2023-02-03T13:51:40Z
|
|
98
|
+
eventStatus | null
|
|
99
|
+
lastStatusUpdateDateTime | null
|
|
100
|
+
createdDateTime | 2023-02-03T13:51:40Z
|
|
101
|
+
lastModifiedDateTime | 2023-02-03T13:51:40Z
|
|
102
|
+
id | 7248cfa8-c03a-4ec1-49a4-08db05edc686
|
|
103
|
+
eventQueries | []
|
|
104
|
+
eventPropagationResults | []
|
|
105
|
+
createdBy | {"user":{"id":null,"displayName":"John Doe"}}
|
|
106
|
+
lastModifiedBy | {"user":{"id":null,"displayName":"John Doe"}}
|
|
107
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# purview retentioneventtype add
|
|
2
|
+
|
|
3
|
+
Create a retention event type
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 purview retentioneventtype add [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-n, --displayName <displayName>`
|
|
14
|
+
: The display name of the event type.
|
|
15
|
+
|
|
16
|
+
`-d, --description [description]`
|
|
17
|
+
: A description for the event type.
|
|
18
|
+
|
|
19
|
+
--8<-- "docs/cmd/_global.md"
|
|
20
|
+
|
|
21
|
+
## Examples
|
|
22
|
+
|
|
23
|
+
Create a retention event type *Contract Expiry*.
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
m365 purview retentioneventtype add --displayName 'Contract Expiry' --description 'A retention event type to start a retention period based on the date that a contract expired.'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
|
|
31
|
+
!!! attention
|
|
32
|
+
This command is based on a Microsoft Graph API that is currently in preview and is subject to change once the API reached general availability.
|
|
33
|
+
|
|
34
|
+
!!! attention
|
|
35
|
+
This command currently only supports delegated permissions.
|
|
36
|
+
|
|
37
|
+
## More information
|
|
38
|
+
|
|
39
|
+
This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created. [Read more about event-based retention here](https://learn.microsoft.com/en-us/microsoft-365/compliance/event-driven-retention?view=o365-worldwide)
|
|
40
|
+
|
|
41
|
+
## Response
|
|
42
|
+
|
|
43
|
+
=== "JSON"
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
{
|
|
48
|
+
"displayName": "Contract Expiry",
|
|
49
|
+
"description": "A retention event type to start a retention period based on the date that a contract expired.",
|
|
50
|
+
"createdDateTime": "2023-01-31T20:33:33Z",
|
|
51
|
+
"lastModifiedDateTime": "2023-01-31T20:33:33Z",
|
|
52
|
+
"id": "f15d2493-7ad2-4185-a3f6-9580542490a0",
|
|
53
|
+
"createdBy": {
|
|
54
|
+
"user": {
|
|
55
|
+
"id": null,
|
|
56
|
+
"displayName": "Mathijs Verbeeck"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"lastModifiedBy": {
|
|
60
|
+
"user": {
|
|
61
|
+
"id": null,
|
|
62
|
+
"displayName": "Mathijs Verbeeck"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
=== "Text"
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
createdBy : {"user":{"id":null,"displayName":"Mathijs Verbeeck"}}
|
|
73
|
+
createdDateTime : 2023-01-31T20:40:40Z
|
|
74
|
+
description : A retention event type to start a retention period based on the date that a contract expired.
|
|
75
|
+
displayName : Contract Expiry
|
|
76
|
+
id : 806cb481-4cc6-47c3-af26-26d64f6e7aab
|
|
77
|
+
lastModifiedBy : {"user":{"id":null,"displayName":"Mathijs Verbeeck"}}
|
|
78
|
+
lastModifiedDateTime: 2023-01-31T20:40:40Z
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
=== "CSV"
|
|
82
|
+
|
|
83
|
+
```csv
|
|
84
|
+
displayName,description,createdDateTime,lastModifiedDateTime,id,createdBy,lastModifiedBy
|
|
85
|
+
Contract Expiry,A retention event type to start a retention period based on the date that a contract expired.,2023-01-31T20:53:23Z,2023-01-31T20:53:23Z,b430ae4c-1e26-422f-9544-67df3abfb200,"{""user"":{""id"":null,""displayName"":""Mathijs Verbeeck""}}","{""user"":{""id"":null,""displayName"":""Mathijs Verbeeck""}}"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
=== "Markdown"
|
|
89
|
+
|
|
90
|
+
```md
|
|
91
|
+
# purview retentioneventtype add --displayName "Contract Expiry" --description "A retention event type to start a retention period based on the date that a contract expired."
|
|
92
|
+
|
|
93
|
+
Date: 31/01/2023
|
|
94
|
+
|
|
95
|
+
## Contract Expiry (ca0e1f8d-4e42-4a81-be85-022502d70c4e)
|
|
96
|
+
|
|
97
|
+
Property | Value
|
|
98
|
+
---------|-------
|
|
99
|
+
displayName | Contract Expiry
|
|
100
|
+
description | A retention event type to start a retention period based on the date that a contract expired.
|
|
101
|
+
createdDateTime | 2023-01-31T20:55:35Z
|
|
102
|
+
lastModifiedDateTime | 2023-01-31T20:55:35Z
|
|
103
|
+
id | ca0e1f8d-4e42-4a81-be85-022502d70c4e
|
|
104
|
+
createdBy | {"user":{"id":null,"displayName":"Mathijs Verbeeck"}}
|
|
105
|
+
lastModifiedBy | {"user":{"id":null,"displayName":"Mathijs Verbeeck"}}
|
|
106
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# purview retentioneventtype list
|
|
2
|
+
|
|
3
|
+
Get a list of retention event types
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 purview retentioneventtype list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
--8<-- "docs/cmd/_global.md"
|
|
14
|
+
|
|
15
|
+
## Examples
|
|
16
|
+
|
|
17
|
+
Get a list of retention event types
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
m365 purview retentioneventtype list
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Remarks
|
|
24
|
+
|
|
25
|
+
!!! attention
|
|
26
|
+
This command is based on a Microsoft Graph API that is currently in preview and is subject to change once the API reached general availability.
|
|
27
|
+
|
|
28
|
+
!!! attention
|
|
29
|
+
This command currently does not support app only permissions.
|
|
30
|
+
|
|
31
|
+
## More information
|
|
32
|
+
|
|
33
|
+
This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created.
|
|
34
|
+
|
|
35
|
+
## Response
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
=== "JSON"
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
[
|
|
42
|
+
{
|
|
43
|
+
"displayName": "Contract Expiry",
|
|
44
|
+
"description": "",
|
|
45
|
+
"createdDateTime": "2023-02-02T15:47:54Z",
|
|
46
|
+
"lastModifiedDateTime": "2023-02-02T15:47:54Z",
|
|
47
|
+
"id": "81fa91bd-66cd-4c6c-b0cb-71f37210dc74",
|
|
48
|
+
"createdBy": {
|
|
49
|
+
"user": {
|
|
50
|
+
"id": "36155f4e-bdbd-4101-ba20-5e78f5fba9a9",
|
|
51
|
+
"displayName": null
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"lastModifiedBy": {
|
|
55
|
+
"user": {
|
|
56
|
+
"id": "36155f4e-bdbd-4101-ba20-5e78f5fba9a9",
|
|
57
|
+
"displayName": null
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
=== "Text"
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
id displayName createdDateTime
|
|
68
|
+
------------------------------------ --------------------- --------------------
|
|
69
|
+
81fa91bd-66cd-4c6c-b0cb-71f37210dc74 Contract Expiry 2023-02-02T15:47:54Z
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
=== "CSV"
|
|
73
|
+
|
|
74
|
+
```csv
|
|
75
|
+
id,displayName,createdDateTime
|
|
76
|
+
81fa91bd-66cd-4c6c-b0cb-71f37210dc74,Contract Expiry,2023-02-02T15:47:54Z
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
=== "Markdown"
|
|
80
|
+
|
|
81
|
+
```md
|
|
82
|
+
# purview retentioneventtype list
|
|
83
|
+
|
|
84
|
+
Date: 8/2/2023
|
|
85
|
+
|
|
86
|
+
## Contract Expiry (81fa91bd-66cd-4c6c-b0cb-71f37210dc74)
|
|
87
|
+
|
|
88
|
+
Property | Value
|
|
89
|
+
---------|-------
|
|
90
|
+
displayName | Contract Expiry
|
|
91
|
+
description | null
|
|
92
|
+
createdDateTime | 2023-02-02T15:47:54Z
|
|
93
|
+
lastModifiedDateTime | 2023-02-02T15:47:54Z
|
|
94
|
+
id | 81fa91bd-66cd-4c6c-b0cb-71f37210dc74
|
|
95
|
+
createdBy | {"user":{"id":"36155f4e-bdbd-4101-ba20-5e78f5fba9a9","displayName":null}}
|
|
96
|
+
lastModifiedBy | {"user":{"id":"36155f4e-bdbd-4101-ba20-5e78f5fba9a9","displayName":null}}
|
|
97
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# purview retentioneventtype remove
|
|
2
|
+
|
|
3
|
+
Delete a retention event type
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 purview retentioneventtype remove [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-i, --id <id>`
|
|
14
|
+
: The Id of the retention event type.
|
|
15
|
+
|
|
16
|
+
`--confirm`
|
|
17
|
+
: Don't prompt for confirmation to remove the retention event type.
|
|
18
|
+
|
|
19
|
+
--8<-- "docs/cmd/_global.md"
|
|
20
|
+
|
|
21
|
+
## Examples
|
|
22
|
+
|
|
23
|
+
Delete a retention event type by id
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
m365 purview retentioneventtype remove --id c37d695e-d581-4ae9-82a0-9364eba4291e
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
|
|
31
|
+
!!! attention
|
|
32
|
+
This command is based on a Microsoft Graph API that is currently in preview and is subject to change once the API reached general availability.
|
|
33
|
+
|
|
34
|
+
!!! attention
|
|
35
|
+
This command currently only supports delegated permissions.
|
|
36
|
+
|
|
37
|
+
## More information
|
|
38
|
+
|
|
39
|
+
This command is part of a series of commands that have to do with event-based retention. Event-based retention is about starting a retention period when a specific event occurs, instead of the moment a document was labeled or created. [Read more about event-based retention here](https://learn.microsoft.com/en-us/microsoft-365/compliance/event-driven-retention?view=o365-worldwide)
|
|
40
|
+
|
|
41
|
+
## Response
|
|
42
|
+
|
|
43
|
+
The command won't return a response on success.
|