classificationRuleCollections
Custom Sensitive Info Types. Uploaded rule packages defining custom sensitive information types for DLP. The classificationRuleCollections entity set lives under /exchange/v1.0/classificationRuleCollections in the Governance & protection category.
| Fact | Value |
|---|---|
| Path | /exchange/v1.0/classificationRuleCollections |
| Category | Governance & protection |
| Tier | Tier 5, Compliance |
| Read role | Compliance.IPPS.Read.All (Community) |
| Write role | Compliance.IPPS.ReadWrite.All (Enterprise) |
| Backing cmdlets | Get-ClassificationRuleCollection, Set-ClassificationRuleCollection, New-ClassificationRuleCollection, Remove-ClassificationRuleCollection |
Routes
Section titled “Routes”| Method | Path | Synopsis | Role | Plan |
|---|---|---|---|---|
| GET | /exchange/v1.0/classificationRuleCollections |
List classification rule collections - tenant-installed XML packages of custom sensitive-info-type rules. | Compliance.IPPS.Read |
Community |
| POST | /exchange/v1.0/classificationRuleCollections |
POST /classificationRuleCollections - upload a new collection. Body: { “fileData”: “<base64-encoded classification-rule-XML>” }. The Name is embedded in the XML. Returns 204 on success (no Location header - the cmdlet doesn’t surface the new collection’s identity in its return value). | Compliance.IPPS.ReadWrite |
Enterprise |
| PUT | /exchange/v1.0/classificationRuleCollections |
PUT /classificationRuleCollections - replace the collection with new XML. Body: { “fileData”: “<base64-encoded XML>” }. The Name is embedded in the XML. Returns 204. | Compliance.IPPS.ReadWrite |
Enterprise |
| GET | /exchange/v1.0/classificationRuleCollections/{key} |
Get a single classification rule collection by Identity. Returns 404 if absent. | Compliance.IPPS.Read |
Community |
| DELETE | /exchange/v1.0/classificationRuleCollections/{key} |
DELETE /classificationRuleCollections/{key} - remove a collection by Name. Returns 204. | Compliance.IPPS.ReadWrite |
Enterprise |
GET /exchange/v1.0/classificationRuleCollections
Section titled “GET /exchange/v1.0/classificationRuleCollections”List classification rule collections - tenant-installed XML packages of custom sensitive-info-type rules.
Backing cmdlet: Get-ClassificationRuleCollection. Role: Compliance.IPPS.Read (Community).
POST /exchange/v1.0/classificationRuleCollections
Section titled “POST /exchange/v1.0/classificationRuleCollections”POST /classificationRuleCollections - upload a new collection. Body: { “fileData”: “<base64-encoded classification-rule-XML>” }. The Name is embedded in the XML. Returns 204 on success (no Location header - the cmdlet doesn’t surface the new collection’s identity in its return value).
Backing cmdlet: New-ClassificationRuleCollection. Role: Compliance.IPPS.ReadWrite (Enterprise).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
fileData |
body | yes | ||
dryRun |
query | bool (switch) |
Upload a classification rule collection
Section titled “Upload a classification rule collection”Upload a custom Transport classification rule collection via New-ClassificationRuleCollection. Body: a single fileData field carrying the base64-encoded rule-collection XML. The collection’s Name, Version, and all DocumentIdMatch entries live INSIDE the XML - there is no separate name field. The controller base64-decodes the string into Byte[] before invoking the cmdlet (FileData-only cmdlet pattern; same Byte[] convention as DlpEdmSchema). The cmdlet returns no entity, so the controller returns 204; subsequent GET /classificationRuleCollections lists the new entry. EXO-pool - Wiki applicable: Exchange Online (NOT IPPS).
POST /exchange/v1.0/classificationRuleCollections HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "fileData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTE2Ij8+PHJ1bGVQYWNrYWdlIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDExL21jZSI+Li4uPC9ydWxlUGFja2FnZT4="}HTTP/1.1 204 No ContentRelated: GET /exchange/v1.0/classificationRuleCollections, PUT /exchange/v1.0/classificationRuleCollections, DELETE /exchange/v1.0/classificationRuleCollections/{key}
PUT /exchange/v1.0/classificationRuleCollections
Section titled “PUT /exchange/v1.0/classificationRuleCollections”PUT /classificationRuleCollections - replace the collection with new XML. Body: { “fileData”: “<base64-encoded XML>” }. The Name is embedded in the XML. Returns 204.
Backing cmdlet: Set-ClassificationRuleCollection. Role: Compliance.IPPS.ReadWrite (Enterprise).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
fileData |
body | yes | ||
dryRun |
query | bool (switch) |
Replace a classification rule collection with new XML
Section titled “Replace a classification rule collection with new XML”Replaces a tenant-installed classification rule collection by uploading a fresh base64-encoded XML payload (the collection name and all DocumentIdMatch entries are embedded in the XML). Backed by Set-ClassificationRuleCollection.
PUT /exchange/v1.0/classificationRuleCollections HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "fileData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTE2Ij8+PFJ1bGVQYWNrYWdlIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDExLzEwL3NlYXJjaC9SdWxlUGFja2FnZSI+PFJ1bGVQYWNrIGlkPSJhdGhlbmFvbmUtc2FtcGxlLWNsYXNzaWZpY2F0aW9uUnVsZUNvbGxlY3Rpb25zIi8+PC9SdWxlUGFja2FnZT4="}HTTP/1.1 204 No ContentNotes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative. PUT is an atomic replace of the entire XML rule collection (Set-ClassificationRuleCollection accepts only -FileData); the controller base64-decodes fileData to Byte[] before invocation and returns 204 No Content.
Related: GET /exchange/v1.0/classificationRuleCollections
GET /exchange/v1.0/classificationRuleCollections/{key}
Section titled “GET /exchange/v1.0/classificationRuleCollections/{key}”Get a single classification rule collection by Identity. Returns 404 if absent.
Backing cmdlet: Get-ClassificationRuleCollection. Role: Compliance.IPPS.Read (Community).
DELETE /exchange/v1.0/classificationRuleCollections/{key}
Section titled “DELETE /exchange/v1.0/classificationRuleCollections/{key}”DELETE /classificationRuleCollections/{key} - remove a collection by Name. Returns 204.
Backing cmdlet: Remove-ClassificationRuleCollection. Role: Compliance.IPPS.ReadWrite (Enterprise).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
dryRun |
query | bool (switch) |
Delete a classification rule collection
Section titled “Delete a classification rule collection”Removes a tenant-installed classification rule collection by Name. Backed by Remove-ClassificationRuleCollection.
DELETE /exchange/v1.0/classificationRuleCollections/{key} HTTP/1.1Authorization: Bearer {token}Content-Type: application/jsonHTTP/1.1 204 No ContentNotes: Doc-derived from Wiki + write-param allowlist; not live-captured. The {key} is the collection Name (e.g. exonaut-sample-classificationRuleCollections). Returns 204 No Content on success.
Related: GET /exchange/v1.0/classificationRuleCollections
?dryRun=true previews of any write stay on Community.

