{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Repacks what the repository's refs reach into one dev.knotless.pack and deletes the packs it replaces, as `knotless repo compact` does, with claims a day old. Packs younger than the grace period stay. Its owner can, logged in to this appview's web pages: the appview writes with the session it keeps for that account, which the pages' session cookie names. For an organization's repository, so can an admin who joined it, logged in to the pages or with a service token from their own PDS for this method: the appview's gateway, which the organization delegated its writes to, writes as the organization.",
      "errors": [
        {
          "description": "No such repository.",
          "name": "NotFound"
        },
        {
          "description": "No account is logged in to the pages, or its session has ended.",
          "name": "AuthenticationRequired"
        },
        {
          "description": "The account logged in is not the repository's owner.",
          "name": "Forbidden"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "repo": {
              "description": "The repository's dev.knotless.repo record, as dev.knotless.getRepo takes it.",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "repo"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "claims": {
              "description": "How many old claims were dropped.",
              "minimum": 0,
              "type": "integer"
            },
            "folded": {
              "description": "How many of them were folded into one.",
              "minimum": 0,
              "type": "integer"
            },
            "packs": {
              "description": "How many packs it had.",
              "minimum": 0,
              "type": "integer"
            },
            "refs": {
              "description": "How many records of deleted refs were dropped, each left with no target by a client from before a delete removed them.",
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "packs",
            "folded",
            "claims"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Folds a repository's packs into one.",
  "id": "dev.knotless.compactRepo",
  "lexicon": 1
}
