# PhysicalDeduplicationPlanDto

Source: https://frameleaf.app/docs/api/schema/PhysicalDeduplicationPlanDto/

```json
{
  "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"
}
```
