{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/trimble/json-schema/trimble-issue-access-response-schema.json",
  "title": "IssueAccessResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/trimble-connect-issues-openapi.yml#/components/schemas/IssueAccessResponse",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "actorId": {
      "type": "string"
    },
    "_actions": {
      "type": "array",
      "description": "Effective actions the actor may perform on this issue, derived from `max(inherited floor, explicit ACL grant)`.\n\n**PROJECT context:** ADMIN/creator → all 7 actions; assignee → edit bucket (6 actions, no Delete); explicit `edit`/`view` ACL holders get their respective bucket; actors with no ACL match receive an empty list.\n\n**FILE context:** `[issue:Read, issue:Update, issue:Delete, issue:AddLinks, issue:DeleteLinks, issue:ReadLinks]` — `issue:UpdatePermissions` is never present.",
      "items": {
        "type": "string",
        "description": "Actions a caller may perform on an issue. Returned in `_actions` when requested via `?fields=_actions`.\n\n**Wire values (serialized as enum name):**\n- `ISSUE_READ` — view issue details; present for all actors with any ACL bucket\n- `ISSUE_UPDATE` — edit issue fields; present for `edit` bucket holders and above\n- `ISSUE_DELETE` — delete the issue; only ADMIN and issue creator (the `edit` bucket does NOT include Delete)\n- `ISSUE_ADD_LINKS` — create links on this issue; present for `edit` bucket\n- `ISSUE_DELETE_LINKS` — remove links from this issue; present for `edit` bucket\n- `ISSUE_READ_LINKS` — list links on this issue; present for `view` bucket and above\n- `ISSUE_UPDATE_PERMISSIONS` — call `PATCH /permissions`; present for `edit` bucket; **never returned in FILE context**\n\n**Context rules:**\n- PROJECT context: determined by caller role, ACL buckets, and restriction mode\n- FILE context: all values except `ISSUE_UPDATE_PERMISSIONS` are returned for any user who can access the file",
        "enum": [
          "ISSUE_UPDATE",
          "ISSUE_DELETE",
          "ISSUE_READ",
          "ISSUE_ADD_LINKS",
          "ISSUE_DELETE_LINKS",
          "ISSUE_READ_LINKS",
          "ISSUE_UPDATE_PERMISSIONS"
        ]
      }
    }
  },
  "required": [
    "actorId",
    "id"
  ]
}