Skip to content

ClassificationRuleCreateDto

Endpoints · All schemas

FieldRequiredDescription
actionNoDefaults to the server default rule action
albumNameYesName of the smart album
archiveNoArchive matches; requires archiveConsent
archiveConsentNoThe owner explicitly agrees that matches are archived
descriptionNoDescription of the smart album
enabledNoboolean
iconNoIcon of the smart album
mediaTypeNoSee definition below
parentIdNoCollection to create the smart album inside
personIdsNoMatch any of these people
tagIdsNoMatch any of these tags, or a tag beneath one of them
tagNameNoThe rule-owned tag a match receives; null tags nothing
takenAfterNoTaken on or after this day (YYYY-MM-DD)
takenBeforeNoTaken on or before this day (YYYY-MM-DD)
thresholdNoThe confidence a visual phrase has to reach
visualQueriesNoVisual 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",
      "description": "Defaults to the server default rule action"
    },
    "albumName": {
      "description": "Name of the smart album",
      "maxLength": 120,
      "minLength": 1,
      "type": "string"
    },
    "archive": {
      "default": false,
      "description": "Archive matches; requires archiveConsent",
      "type": "boolean"
    },
    "archiveConsent": {
      "description": "The owner explicitly agrees that matches are archived",
      "type": "boolean"
    },
    "description": {
      "description": "Description of the smart album",
      "maxLength": 2000,
      "nullable": true,
      "type": "string"
    },
    "enabled": {
      "default": true,
      "type": "boolean"
    },
    "icon": {
      "description": "Icon of the smart album",
      "maxLength": 80,
      "type": "string"
    },
    "mediaType": {
      "$ref": "#/components/schemas/ClassificationMediaType",
      "default": "any"
    },
    "parentId": {
      "description": "Collection to create the smart album inside",
      "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"
    },
    "personIds": {
      "default": [],
      "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": {
      "default": [],
      "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": {
      "default": null,
      "description": "Taken on or after this day (YYYY-MM-DD)",
      "nullable": true,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "type": "string"
    },
    "takenBefore": {
      "default": null,
      "description": "Taken on or before this day (YYYY-MM-DD)",
      "nullable": true,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "type": "string"
    },
    "threshold": {
      "default": 0.25,
      "description": "The confidence a visual phrase has to reach",
      "format": "double",
      "maximum": 1,
      "minimum": 0,
      "type": "number"
    },
    "visualQueries": {
      "default": [],
      "description": "Visual category phrases compared with each item",
      "items": {
        "maxLength": 120,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "type": "array"
    }
  },
  "required": [
    "albumName"
  ],
  "type": "object"
}