ClassificationRuleUpdateDto
| Field | Required | Description |
|---|---|---|
action | No | See definition below |
archive | No | Archive matches; turning it on requires archiveConsent |
archiveConsent | No | The owner explicitly agrees that matches are archived |
enabled | No | A disabled rule keeps what it applied and stops changing anything |
mediaType | No | See definition below |
personIds | No | Match any of these people |
tagIds | No | Match any of these tags, or a tag beneath one of them |
tagName | No | The rule-owned tag a match receives; null tags nothing |
takenAfter | No | Taken on or after this day (YYYY-MM-DD) |
takenBefore | No | Taken on or before this day (YYYY-MM-DD) |
threshold | No | The confidence a visual phrase has to reach |
visualQueries | No | Visual category phrases compared with each item |
Complete definition
required lists fields that must be present. nullable allows a null value; it does not make the field optional. Response enums retain exact wire values for compatibility.
Field definitions: ClassificationRuleAction, ClassificationMediaType
{
"properties": {
"action": {
"$ref": "#/components/schemas/ClassificationRuleAction"
},
"archive": {
"description": "Archive matches; turning it on requires archiveConsent",
"type": "boolean"
},
"archiveConsent": {
"description": "The owner explicitly agrees that matches are archived",
"type": "boolean"
},
"enabled": {
"description": "A disabled rule keeps what it applied and stops changing anything",
"type": "boolean"
},
"mediaType": {
"$ref": "#/components/schemas/ClassificationMediaType"
},
"personIds": {
"description": "Match any of these people",
"items": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"tagIds": {
"description": "Match any of these tags, or a tag beneath one of them",
"items": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"tagName": {
"description": "The rule-owned tag a match receives; null tags nothing",
"maxLength": 120,
"minLength": 1,
"nullable": true,
"type": "string"
},
"takenAfter": {
"description": "Taken on or after this day (YYYY-MM-DD)",
"nullable": true,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"takenBefore": {
"description": "Taken on or before this day (YYYY-MM-DD)",
"nullable": true,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"threshold": {
"description": "The confidence a visual phrase has to reach",
"format": "double",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"visualQueries": {
"description": "Visual category phrases compared with each item",
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"type": "array"
}
},
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.