PhysicalDeduplicationPlanDto
| Field | Required | Description |
|---|---|---|
applicableCopies | Yes | Copies listed with a share decision: the most this plan can apply. Copies past the list limit wait for a later plan |
copies | Yes | array |
copiesTruncated | Yes | True when more copies were reviewed than the stored preview keeps; totals still cover all of them |
deletedBytes | Yes | Measured: bytes actually removed from disk by applying this plan so far |
eligibleAssets | Yes | integer |
fingerprint | Yes | Digest over the plan evidence; changes with every preview () |
hiddenCopies | Yes | Copies left out of the rows because they are Locked media of another account; counted, never named |
linkedAssets | Yes | integer |
logicalBytes | Yes | Logical asset bytes (): the sizes of every asset that references a shared original once this plan is applied, counted once per asset |
masterUserId | Yes | Account whose originals are retained by this plan |
masterUserName | Yes | Display name of the retained account |
mode | Yes | See definition below |
planId | Yes | Short name of this plan, typed to confirm applying it () |
ranAt | Yes | When the plan was produced |
reclaimableBytes | Yes | Estimate: bytes of the copies to share, with their generated files, that applying would free |
retained | Yes | array |
scopeUserId | Yes | When set, only copies owned by this account were reviewed; null means every account |
scopeUserName | Yes | string |
sharedOriginalBytes | Yes | Physical shared-original bytes (): the retained originals those assets share, counted once per file |
skippedExternal | Yes | integer |
skippedMissingMaster | Yes | integer |
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: PhysicalDeduplicationCopyDto, PhysicalDeduplicationPlanMode, PhysicalDeduplicationRetainedDto
{
"properties": {
"applicableCopies": {
"description": "Copies listed with a share decision: the most this plan can apply. Copies past the list limit wait for a later plan",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"copies": {
"items": {
"$ref": "#/components/schemas/PhysicalDeduplicationCopyDto"
},
"type": "array"
},
"copiesTruncated": {
"description": "True when more copies were reviewed than the stored preview keeps; totals still cover all of them",
"type": "boolean"
},
"deletedBytes": {
"description": "Measured: bytes actually removed from disk by applying this plan so far",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"eligibleAssets": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"fingerprint": {
"description": "Digest over the plan evidence; changes with every preview ()",
"type": "string"
},
"hiddenCopies": {
"description": "Copies left out of the rows because they are Locked media of another account; counted, never named",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"linkedAssets": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"logicalBytes": {
"description": "Logical asset bytes (): the sizes of every asset that references a shared original once this plan is applied, counted once per asset",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"masterUserId": {
"description": "Account whose originals are retained by this plan",
"type": "string"
},
"masterUserName": {
"description": "Display name of the retained account",
"type": "string"
},
"mode": {
"$ref": "#/components/schemas/PhysicalDeduplicationPlanMode"
},
"planId": {
"description": "Short name of this plan, typed to confirm applying it ()",
"type": "string"
},
"ranAt": {
"description": "When the plan was produced",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"reclaimableBytes": {
"description": "Estimate: bytes of the copies to share, with their generated files, that applying would free",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"retained": {
"items": {
"$ref": "#/components/schemas/PhysicalDeduplicationRetainedDto"
},
"type": "array"
},
"scopeUserId": {
"description": "When set, only copies owned by this account were reviewed; null means every account",
"nullable": true,
"type": "string"
},
"scopeUserName": {
"nullable": true,
"type": "string"
},
"sharedOriginalBytes": {
"description": "Physical shared-original bytes (): the retained originals those assets share, counted once per file",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"skippedExternal": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"skippedMissingMaster": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"applicableCopies",
"copies",
"copiesTruncated",
"deletedBytes",
"eligibleAssets",
"fingerprint",
"hiddenCopies",
"linkedAssets",
"logicalBytes",
"masterUserId",
"masterUserName",
"mode",
"planId",
"ranAt",
"reclaimableBytes",
"retained",
"scopeUserId",
"scopeUserName",
"sharedOriginalBytes",
"skippedExternal",
"skippedMissingMaster"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.