{
  "format_version": 1,
  "copyright": "Copyright 2026 Firefly Software Foundation",
  "license": "Apache-2.0",
  "api_prefix": "/api/v1",
  "status": "Canonical API contract; development snapshot",
  "canonical_operation_count": 248,
  "qualified_compatibility_operations": [
    {
      "operation": "GlossaryController.list_terms",
      "method": "GET",
      "path": "/api/v1/structured/glossary",
      "source": "backend/src/koinon/knowledge/legacy_read.py",
      "source_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "native_controller": "GlossaryController",
      "native_method": "list_terms",
      "native_source_sha256": "d1837ae24422b157ef03732b03618ca180cf93f5b42b3dcab87512ff8346e4ee",
      "guard": "backend/src/koinon/knowledge/legacy_read.py",
      "guard_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "request_schema": null,
      "response_schema": "GlossaryPage",
      "sdk_python": "glossary_terms",
      "sdk_python_agent": false,
      "sdk_typescript": "structured.glossary.list",
      "sdk_java": "client.structuredGlossary(tenant,workspace).list",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "GlossaryController.get_term",
      "method": "GET",
      "path": "/api/v1/structured/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/legacy_read.py",
      "source_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "native_controller": "GlossaryController",
      "native_method": "get_term",
      "native_source_sha256": "d1837ae24422b157ef03732b03618ca180cf93f5b42b3dcab87512ff8346e4ee",
      "guard": "backend/src/koinon/knowledge/legacy_read.py",
      "guard_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "request_schema": null,
      "response_schema": "GlossaryTermRead",
      "sdk_python": "glossary_term",
      "sdk_python_agent": false,
      "sdk_typescript": "structured.glossary.get",
      "sdk_java": "client.structuredGlossary(tenant,workspace).get",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "GlossaryController.create",
      "method": "POST",
      "path": "/api/v1/structured/glossary",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "GlossaryController",
      "native_method": "create",
      "native_source_sha256": "d1837ae24422b157ef03732b03618ca180cf93f5b42b3dcab87512ff8346e4ee",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": "GlossaryTermCreate",
      "response_schema": "GlossaryTermRead",
      "sdk_python": "create_glossary_term",
      "sdk_python_agent": false,
      "sdk_typescript": "structured.glossary.create",
      "sdk_java": "client.structuredGlossary(tenant,workspace).create",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "GlossaryController.update",
      "method": "PUT",
      "path": "/api/v1/structured/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "GlossaryController",
      "native_method": "update",
      "native_source_sha256": "d1837ae24422b157ef03732b03618ca180cf93f5b42b3dcab87512ff8346e4ee",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": "GlossaryTermUpdate",
      "response_schema": "GlossaryTermRead",
      "sdk_python": "update_glossary_term",
      "sdk_python_agent": false,
      "sdk_typescript": "structured.glossary.update",
      "sdk_java": "client.structuredGlossary(tenant,workspace).update",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID",
        "If-Match (exact unparsed updated_at string)"
      ]
    },
    {
      "operation": "GlossaryController.delete",
      "method": "DELETE",
      "path": "/api/v1/structured/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "GlossaryController",
      "native_method": "delete",
      "native_source_sha256": "d1837ae24422b157ef03732b03618ca180cf93f5b42b3dcab87512ff8346e4ee",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": null,
      "response_schema": "void",
      "sdk_python": "delete_glossary_term",
      "sdk_python_agent": false,
      "sdk_typescript": "structured.glossary.remove",
      "sdk_java": "client.structuredGlossary(tenant,workspace).remove",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID",
        "If-Match (exact unparsed updated_at string)"
      ]
    },
    {
      "operation": "AgentGlossaryController.list_terms",
      "method": "GET",
      "path": "/api/v1/structured/agent/glossary",
      "source": "backend/src/koinon/knowledge/legacy_read.py",
      "source_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "native_controller": "AgentGlossaryController",
      "native_method": "list_terms",
      "native_source_sha256": "977a2e4be797898ffc47d3414e9b22df8965cf699057af6d9b9e4cca60b37738",
      "guard": "backend/src/koinon/knowledge/legacy_read.py",
      "guard_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "request_schema": null,
      "response_schema": "GlossaryPage",
      "sdk_python": "glossary_terms",
      "sdk_python_agent": true,
      "sdk_typescript": "structured.agentGlossary.list",
      "sdk_java": "client.structuredAgentGlossary(tenant,workspace).list",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "AgentGlossaryController.get_term",
      "method": "GET",
      "path": "/api/v1/structured/agent/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/legacy_read.py",
      "source_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "native_controller": "AgentGlossaryController",
      "native_method": "get_term",
      "native_source_sha256": "977a2e4be797898ffc47d3414e9b22df8965cf699057af6d9b9e4cca60b37738",
      "guard": "backend/src/koinon/knowledge/legacy_read.py",
      "guard_sha256": "bf254427e915dca7f772b8b84289cdc7e47b597fe8f81b0ef67adef07cc1b769",
      "request_schema": null,
      "response_schema": "GlossaryTermRead",
      "sdk_python": "glossary_term",
      "sdk_python_agent": true,
      "sdk_typescript": "structured.agentGlossary.get",
      "sdk_java": "client.structuredAgentGlossary(tenant,workspace).get",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "AgentGlossaryController.create",
      "method": "POST",
      "path": "/api/v1/structured/agent/glossary",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "AgentGlossaryController",
      "native_method": "create",
      "native_source_sha256": "977a2e4be797898ffc47d3414e9b22df8965cf699057af6d9b9e4cca60b37738",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": "GlossaryTermCreate",
      "response_schema": "GlossaryTermRead",
      "sdk_python": "create_glossary_term",
      "sdk_python_agent": true,
      "sdk_typescript": "structured.agentGlossary.create",
      "sdk_java": "client.structuredAgentGlossary(tenant,workspace).create",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID"
      ]
    },
    {
      "operation": "AgentGlossaryController.update",
      "method": "PUT",
      "path": "/api/v1/structured/agent/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "AgentGlossaryController",
      "native_method": "update",
      "native_source_sha256": "977a2e4be797898ffc47d3414e9b22df8965cf699057af6d9b9e4cca60b37738",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": "GlossaryTermUpdate",
      "response_schema": "GlossaryTermRead",
      "sdk_python": "update_glossary_term",
      "sdk_python_agent": true,
      "sdk_typescript": "structured.agentGlossary.update",
      "sdk_java": "client.structuredAgentGlossary(tenant,workspace).update",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID",
        "If-Match (exact unparsed updated_at string)"
      ]
    },
    {
      "operation": "AgentGlossaryController.delete",
      "method": "DELETE",
      "path": "/api/v1/structured/agent/glossary/{term_id}",
      "source": "backend/src/koinon/knowledge/glossary_writes.py",
      "source_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "native_controller": "AgentGlossaryController",
      "native_method": "delete",
      "native_source_sha256": "977a2e4be797898ffc47d3414e9b22df8965cf699057af6d9b9e4cca60b37738",
      "guard": "backend/src/koinon/knowledge/glossary_writes.py",
      "guard_sha256": "e6e57973fa41fecab5101da905ceee447bfa3f12fde19d3649e9da35db5aa4fc",
      "request_schema": null,
      "response_schema": "void",
      "sdk_python": "delete_glossary_term",
      "sdk_python_agent": true,
      "sdk_typescript": "structured.agentGlossary.remove",
      "sdk_java": "client.structuredAgentGlossary(tenant,workspace).remove",
      "headers": [
        "X-Tenant-ID",
        "X-Workspace-ID",
        "If-Match (exact unparsed updated_at string)"
      ]
    }
  ],
  "precision": {
    "safe_integer_limit": 9007199254740991,
    "exact_decimals": "decimal string",
    "unsafe_integers": "base10 string",
    "raw_data": "JSON number|string|boolean|null recursively; never coerce exact strings"
  },
  "authentication": {
    "headless": "caller-supplied bearer, fresh per request; renewal owned by caller",
    "browser": "same operation suffix under /bff/api/v1 with native cookie session and CSRF on writes",
    "tokens_management": "interactive verified identity required; PAT cannot mint or manage PATs",
    "applications_management": "interactive owner identity required; personal tokens and application credentials cannot approve or manage authorizations"
  },
  "semantics": {
    "writes": "no automatic retries; explicit chat client_request_id supports server idempotency",
    "null": "omitted provider secret preserves, explicit null clears; optional request fields preserve explicit null where server accepts it",
    "streams": "close/cancel consuming stream releases HTTP response; explicit cancel endpoint cancels durable run; no automatic reconnect",
    "preconditions": "content writes require current sha256/snapshot_id via If-Match; no forced overwrite helper",
    "paging": "honor only endpoint-declared query parameters; Page fields optional for items-only endpoints"
  },
  "excluded": [
    {
      "path": "/auth/me",
      "reason": "browser session introspection; headless SDK uses verified bearer/profile/context"
    },
    {
      "path": "/health,/ready",
      "reason": "public operator probes outside versioned API; deployment HTTP checks"
    },
    {
      "path": "/api/v1/canon/**,/api/v1/structured/**",
      "reason": "Retained routes are excluded except the explicit qualified_compatibility_operations list; operation admission depends on deployment prerequisites and current authority"
    }
  ],
  "operations": [
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/activity/personal",
      "category": "canonical",
      "operation": "ActivityController.personal",
      "source": "backend/src/koinon/activity/controllers.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ActivityWindow]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "ActivitySummary",
      "sdk_python": "personal_activity",
      "sdk_typescript": "activity.personal",
      "sdk_java": "client.activity.personal",
      "request_schema": "ActivityWindow",
      "response_schema": "ActivitySummary",
      "success_status": 200,
      "source_sha256": "dd2880d95f4b0cbfd73f365c3a00347f766d6e1fe3b7afb92b92a6aedb7b3993",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/activity/administration",
      "category": "canonical",
      "operation": "ActivityController.administrative",
      "source": "backend/src/koinon/activity/controllers.py",
      "line": 27,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ActivityWindow]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "ActivitySummary",
      "sdk_python": "administrative_activity",
      "sdk_typescript": "activity.administrative",
      "sdk_java": "client.activity.administrative",
      "request_schema": "ActivityWindow",
      "response_schema": "ActivitySummary",
      "success_status": 200,
      "source_sha256": "dd2880d95f4b0cbfd73f365c3a00347f766d6e1fe3b7afb92b92a6aedb7b3993",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/audit",
      "category": "canonical",
      "operation": "AuditController.audit",
      "source": "backend/src/koinon/api/controllers/audit.py",
      "line": 20,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "action",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "subject",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "from_date",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "through_date",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "time_zone",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "UTC"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "created_at"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "desc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "audit",
      "sdk_typescript": "audit.list",
      "sdk_java": "client.audit.list",
      "request_schema": null,
      "response_schema": "Page[AuditEvent]",
      "success_status": 200,
      "source_sha256": "5ebbe1ddaf9761282740d98fe2eb58df9233bc5d6ff07826ad3d60696bde44dc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/catalog",
      "category": "canonical",
      "operation": "CatalogController.catalog_list",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 31,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "parent_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "project_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "include_archived",
          "annotation": "QueryParam[bool]",
          "location": "query",
          "required": false,
          "default": false
        },
        {
          "name": "view",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "raw"
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "format",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "tag",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 100
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "name"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "asc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "catalog",
      "sdk_typescript": "catalog.list",
      "sdk_java": "client.catalog.list",
      "request_schema": null,
      "response_schema": "Page[CatalogEntry]",
      "success_status": 200,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/catalog",
      "category": "canonical",
      "operation": "CatalogController.catalog_create",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 80,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CatalogCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create",
      "sdk_typescript": "catalog.create",
      "sdk_java": "client.catalog.create",
      "request_schema": "CatalogCreate",
      "response_schema": "CatalogEntry",
      "success_status": 201,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}",
      "category": "canonical",
      "operation": "CatalogController.catalog_get",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 89,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "get",
      "sdk_typescript": "catalog.get",
      "sdk_java": "client.catalog.get",
      "request_schema": null,
      "response_schema": "CatalogEntry",
      "success_status": 200,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}",
      "category": "canonical",
      "operation": "CatalogController.catalog_patch",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 93,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CatalogPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update",
      "sdk_typescript": "catalog.update",
      "sdk_java": "client.catalog.update",
      "request_schema": "CatalogUpdate",
      "response_schema": "CatalogEntry",
      "success_status": 200,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}/archive",
      "category": "canonical",
      "operation": "CatalogController.catalog_archive",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 110,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_updated_at",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "archive",
      "sdk_typescript": "catalog.archive",
      "sdk_java": "client.catalog.archive",
      "request_schema": null,
      "response_schema": "CatalogEntry",
      "success_status": 200,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}/restore",
      "category": "canonical",
      "operation": "CatalogController.catalog_restore",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 128,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_updated_at",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "restore",
      "sdk_typescript": "catalog.restore",
      "sdk_java": "client.catalog.restore",
      "request_schema": null,
      "response_schema": "CatalogEntry",
      "success_status": 200,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}",
      "category": "canonical",
      "operation": "CatalogController.catalog_delete",
      "source": "backend/src/koinon/api/controllers/catalog.py",
      "line": 146,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "delete",
      "sdk_typescript": "catalog.delete",
      "sdk_java": "client.catalog.delete",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "05ca78aafa47348ca8ddc3e3c252bc49e087f27c369344b996cf7c9fcdbf95c4",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/catalog/{entry_id}/move",
      "category": "canonical",
      "operation": "CatalogHierarchyController.move",
      "source": "backend/src/koinon/api/controllers/catalog_hierarchy.py",
      "line": 20,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "entry_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CatalogMove]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "move",
      "sdk_typescript": "catalog.move",
      "sdk_java": "client.catalog.move",
      "request_schema": "CatalogMove",
      "response_schema": "CatalogEntry",
      "success_status": 200,
      "source_sha256": "a19f6fe88a53dc833e16dc24b90ba65fc90043fdaa940166655cd78491040dfd",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/context",
      "category": "canonical",
      "operation": "ContextController.context",
      "source": "backend/src/koinon/api/controllers/context.py",
      "line": 22,
      "parameters": [],
      "return_annotation": "dict",
      "sdk_python": "context",
      "sdk_typescript": "context",
      "sdk_java": "client.platform.context",
      "request_schema": null,
      "response_schema": "ContextResponse",
      "success_status": 200,
      "source_sha256": "9c6689a25659e4187cc99e6794b5c3ac1d42c60b3ed5ebdf166ca1fbf70fb769",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/jobs",
      "category": "canonical",
      "operation": "JobController.list",
      "source": "backend/src/koinon/api/controllers/jobs.py",
      "line": 18,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "jobs",
      "sdk_typescript": "jobs.list",
      "sdk_java": "client.jobs.list",
      "request_schema": null,
      "response_schema": "Page[Job]",
      "success_status": 200,
      "source_sha256": "75e90625f11cc39dbd6db573da42b2c56386aab328811941c08f08fdbc68edc3",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/jobs/{job_id}",
      "category": "canonical",
      "operation": "JobController.get",
      "source": "backend/src/koinon/api/controllers/jobs.py",
      "line": 22,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "job_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "job",
      "sdk_typescript": "jobs.get",
      "sdk_java": "client.jobs.get",
      "request_schema": null,
      "response_schema": "Job",
      "success_status": 200,
      "source_sha256": "75e90625f11cc39dbd6db573da42b2c56386aab328811941c08f08fdbc68edc3",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/jobs/{job_id}/cancel",
      "category": "canonical",
      "operation": "JobController.cancel",
      "source": "backend/src/koinon/api/controllers/jobs.py",
      "line": 26,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "job_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "cancel_job",
      "sdk_typescript": "jobs.cancel",
      "sdk_java": "client.jobs.cancel",
      "request_schema": null,
      "response_schema": "Job",
      "success_status": 200,
      "source_sha256": "75e90625f11cc39dbd6db573da42b2c56386aab328811941c08f08fdbc68edc3",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/members",
      "category": "canonical",
      "operation": "MembershipController.members",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 35,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "role",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "scope",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "members",
      "sdk_typescript": "members.list",
      "sdk_java": "client.members.list",
      "request_schema": null,
      "response_schema": "Page[Membership]",
      "success_status": 200,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/members",
      "category": "canonical",
      "operation": "MembershipController.member_create",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 66,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[MemberCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "add_member",
      "sdk_typescript": "members.add",
      "sdk_java": "client.members.add",
      "request_schema": "MemberInput",
      "response_schema": "Membership",
      "success_status": 201,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/members/{member_id}",
      "category": "canonical",
      "operation": "MembershipController.member_patch",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 76,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "member_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[MemberPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_member",
      "sdk_typescript": "members.update",
      "sdk_java": "client.members.update",
      "request_schema": "MemberUpdate",
      "response_schema": "Membership",
      "success_status": 200,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/members/{member_id}",
      "category": "canonical",
      "operation": "MembershipController.member_delete",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 93,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "member_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "remove_member",
      "sdk_typescript": "members.remove",
      "sdk_java": "client.members.remove",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/invitations",
      "category": "canonical",
      "operation": "MembershipController.invitations_list",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 99,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "pending"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "invitations",
      "sdk_typescript": "invitations.list",
      "sdk_java": "client.invitations.list",
      "request_schema": null,
      "response_schema": "Page[Invitation]",
      "success_status": 200,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/invitations",
      "category": "canonical",
      "operation": "MembershipController.invitation_create",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 118,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[InvitationInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "create_invitation",
      "sdk_typescript": "invitations.create",
      "sdk_java": "client.invitations.create",
      "request_schema": "InvitationInput",
      "response_schema": "InvitationCreated",
      "success_status": 201,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/invitations/{invitation_id}",
      "category": "canonical",
      "operation": "MembershipController.invitation_revoke",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 132,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "revoke_invitation",
      "sdk_typescript": "invitations.revoke",
      "sdk_java": "client.invitations.revoke",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/invitations/inspect",
      "category": "canonical",
      "operation": "MembershipController.invitation_inspect",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 138,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[InvitationToken]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "inspect_invitation",
      "sdk_typescript": "invitations.inspect",
      "sdk_java": "client.invitationAccess.inspect",
      "request_schema": "InvitationToken",
      "response_schema": "InvitationPreview",
      "success_status": 200,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/invitations/redeem",
      "category": "canonical",
      "operation": "MembershipController.invitation_redeem",
      "source": "backend/src/koinon/api/controllers/memberships.py",
      "line": 145,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[InvitationToken]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "redeem_invitation",
      "sdk_typescript": "invitations.redeem",
      "sdk_java": "client.invitationAccess.redeem",
      "request_schema": "InvitationToken",
      "response_schema": "Membership",
      "success_status": 201,
      "source_sha256": "5791aaf461b67dfebc06cfc082841028752bdf489fc212ee229295f908ba03b1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/agents",
      "category": "canonical",
      "operation": "AgentController.agents",
      "source": "backend/src/koinon/assistants/agent_controller.py",
      "line": 30,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "project_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "name"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "asc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "agents",
      "sdk_typescript": "agents.list",
      "sdk_java": "client.agents.list",
      "request_schema": null,
      "response_schema": "Page[AgentConfiguration]",
      "success_status": 200,
      "source_sha256": "7b2f32abe1a3ef8b5a8bf21950f0ad7ad955219b652f06293febfbe7ec3ff5e9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/agents",
      "category": "canonical",
      "operation": "AgentController.agent_create",
      "source": "backend/src/koinon/assistants/agent_controller.py",
      "line": 57,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AgentInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_agent",
      "sdk_typescript": "agents.create",
      "sdk_java": "client.agents.create",
      "request_schema": "AgentInput",
      "response_schema": "AgentConfiguration",
      "success_status": 201,
      "source_sha256": "7b2f32abe1a3ef8b5a8bf21950f0ad7ad955219b652f06293febfbe7ec3ff5e9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/agents/{agent_id}",
      "category": "canonical",
      "operation": "AgentController.agent_update",
      "source": "backend/src/koinon/assistants/agent_controller.py",
      "line": 67,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "agent_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AgentInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_agent",
      "sdk_typescript": "agents.update",
      "sdk_java": "client.agents.update",
      "request_schema": "AgentInput",
      "response_schema": "AgentConfiguration",
      "success_status": 200,
      "source_sha256": "7b2f32abe1a3ef8b5a8bf21950f0ad7ad955219b652f06293febfbe7ec3ff5e9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/agents/{agent_id}/validate",
      "category": "canonical",
      "operation": "AgentController.agent_validate",
      "source": "backend/src/koinon/assistants/agent_controller.py",
      "line": 78,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "agent_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "validate_agent",
      "sdk_typescript": "agents.validate",
      "sdk_java": "client.agents.validate",
      "request_schema": null,
      "response_schema": "AgentConfiguration",
      "success_status": 200,
      "source_sha256": "7b2f32abe1a3ef8b5a8bf21950f0ad7ad955219b652f06293febfbe7ec3ff5e9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads",
      "category": "canonical",
      "operation": "AssistantController.threads",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 36,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "updated_at"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "desc"
        },
        {
          "name": "folder_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "unfiled",
          "annotation": "QueryParam[bool]",
          "location": "query",
          "required": false,
          "default": false
        },
        {
          "name": "project_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "active"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "threads",
      "sdk_typescript": "chat.threads",
      "sdk_java": "client.chat.threads",
      "request_schema": null,
      "response_schema": "Page[ChatThread]",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads",
      "category": "canonical",
      "operation": "AssistantController.thread_create",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 67,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ThreadInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_thread",
      "sdk_typescript": "chat.create",
      "sdk_java": "client.chat.createThread",
      "request_schema": "ThreadInput",
      "response_schema": "ChatThread",
      "success_status": 201,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/messages",
      "category": "canonical",
      "operation": "AssistantController.messages",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 77,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "before",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 50
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "messages",
      "sdk_typescript": "chat.messages",
      "sdk_java": "client.chat.messages",
      "request_schema": null,
      "response_schema": "Page[ChatMessage]",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/runs",
      "category": "canonical",
      "operation": "AssistantController.submit",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 90,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[RunInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "submit_run",
      "sdk_typescript": "chat.submit",
      "sdk_java": "client.chat.submit",
      "request_schema": "RunInput",
      "response_schema": "ChatRun",
      "success_status": 202,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/cancel",
      "category": "canonical",
      "operation": "AssistantController.cancel",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 101,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "cancel_run",
      "sdk_typescript": "chat.cancel",
      "sdk_java": "client.chat.cancel",
      "request_schema": null,
      "response_schema": "ChatRun",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/retry",
      "category": "canonical",
      "operation": "AssistantController.retry",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 105,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "retry_run",
      "sdk_typescript": "chat.retry",
      "sdk_java": "client.chat.retry",
      "request_schema": null,
      "response_schema": "ChatRun",
      "success_status": 202,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/events",
      "category": "canonical",
      "operation": "AssistantController.events",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 109,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "StreamingResponse",
      "sdk_python": "events",
      "sdk_typescript": "chat.events",
      "sdk_java": "client.chat.events",
      "request_schema": null,
      "response_schema": "StreamEvent",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "text/event-stream",
      "headers": [
        "Last-Event-ID (last fully processed opaque event ID)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/results/{result_id}",
      "category": "canonical",
      "operation": "AssistantController.result",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 171,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "result_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "result",
      "sdk_typescript": "chat.result",
      "sdk_java": "client.chat.result",
      "request_schema": null,
      "response_schema": "EvidenceResult",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/activity",
      "category": "canonical",
      "operation": "AssistantController.activities",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 179,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "run_activities",
      "sdk_typescript": "chat.activities",
      "sdk_java": "client.chat.activities",
      "request_schema": null,
      "response_schema": "Page[ToolActivity]",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/audit",
      "category": "canonical",
      "operation": "AssistantController.audit",
      "source": "backend/src/koinon/assistants/controllers.py",
      "line": 192,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "run_audit",
      "sdk_typescript": "chat.audit",
      "sdk_java": "client.chat.audit",
      "request_schema": null,
      "response_schema": "AnswerAudit",
      "success_status": 200,
      "source_sha256": "5d44e2f7530fe7ec0b3c63bfc397b329975b1e5d2ec98e10d5e5c182506e5104",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/folders",
      "category": "canonical",
      "operation": "ChatHistoryController.folders",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 30,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "parent_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "root_only",
          "annotation": "QueryParam[bool]",
          "location": "query",
          "required": false,
          "default": false
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "name"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "asc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "folders",
      "sdk_typescript": "chat.folders.list",
      "sdk_java": "client.chatFolders.list",
      "request_schema": null,
      "response_schema": "Page[ChatFolder]",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/folders",
      "category": "canonical",
      "operation": "ChatHistoryController.create_folder",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 57,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[FolderCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_folder",
      "sdk_typescript": "chat.folders.create",
      "sdk_java": "client.chatFolders.create",
      "request_schema": "FolderCreate",
      "response_schema": "ChatFolder",
      "success_status": 201,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/folders/{folder_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.folder",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 67,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "folder_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "folder",
      "sdk_typescript": "chat.folders.get",
      "sdk_java": "client.chatFolders.get",
      "request_schema": null,
      "response_schema": "ChatFolder",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/chat/folders/{folder_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.patch_folder",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 71,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "folder_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[FolderPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_folder",
      "sdk_typescript": "chat.folders.update",
      "sdk_java": "client.chatFolders.update",
      "request_schema": "FolderPatch",
      "response_schema": "ChatFolder",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/chat/folders/{folder_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.delete_folder",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 83,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "folder_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": null,
      "sdk_python": "delete_folder",
      "sdk_typescript": "chat.folders.delete",
      "sdk_java": "client.chatFolders.delete",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.thread",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 95,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "thread",
      "sdk_typescript": "chat.get",
      "sdk_java": "client.chat.get",
      "request_schema": null,
      "response_schema": "ChatThread",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.patch_thread",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 99,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ThreadPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_thread",
      "sdk_typescript": "chat.update",
      "sdk_java": "client.chat.update",
      "request_schema": "ThreadPatch",
      "response_schema": "ChatThread",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/title-suggestion",
      "category": "canonical",
      "operation": "ChatHistoryController.title_suggestion",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 111,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[TitleRequest]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "suggest_title",
      "sdk_typescript": "chat.suggestTitle",
      "sdk_java": "client.chat.suggestTitle",
      "request_schema": "TitleRequest",
      "response_schema": "TitleSuggestion",
      "success_status": 200,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}",
      "category": "canonical",
      "operation": "ChatHistoryController.delete_thread",
      "source": "backend/src/koinon/assistants/history/controllers.py",
      "line": 129,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": null,
      "sdk_python": "delete_thread",
      "sdk_typescript": "chat.delete",
      "sdk_java": "client.chat.delete",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "8457df3c778b10e43efe99d555be31a5936a2b03867030e12cac61532197fe29",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/proposals/{proposal_id}",
      "category": "canonical",
      "operation": "CatalogProposalController.get",
      "source": "backend/src/koinon/assistants/proposal_controller.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "proposal_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "proposal",
      "sdk_typescript": "chat.proposals.get",
      "sdk_java": "client.chatProposals.get",
      "request_schema": null,
      "response_schema": "CatalogProposal",
      "success_status": 200,
      "source_sha256": "dcafa41a19361f8692403adc1340b580d06cb8987fe357d0090a4b61774cfcd9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/proposals/{proposal_id}/confirm",
      "category": "canonical",
      "operation": "CatalogProposalController.confirm",
      "source": "backend/src/koinon/assistants/proposal_controller.py",
      "line": 29,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "proposal_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ProposalConfirmation]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "confirm_proposal",
      "sdk_typescript": "chat.proposals.confirm",
      "sdk_java": "client.chatProposals.confirm",
      "request_schema": "ProposalConfirmation",
      "response_schema": "CatalogProposal",
      "success_status": 200,
      "source_sha256": "dcafa41a19361f8692403adc1340b580d06cb8987fe357d0090a4b61774cfcd9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/runs/{run_id}/proposals/{proposal_id}/cancel",
      "category": "canonical",
      "operation": "CatalogProposalController.cancel",
      "source": "backend/src/koinon/assistants/proposal_controller.py",
      "line": 44,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "run_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "proposal_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ProposalRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "cancel_proposal",
      "sdk_typescript": "chat.proposals.cancel",
      "sdk_java": "client.chatProposals.cancel",
      "request_schema": "ProposalRevision",
      "response_schema": "CatalogProposal",
      "success_status": 200,
      "source_sha256": "dcafa41a19361f8692403adc1340b580d06cb8987fe357d0090a4b61774cfcd9",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/configuration",
      "category": "canonical",
      "operation": "ProviderController.configuration",
      "source": "backend/src/koinon/assistants/provider_controller.py",
      "line": 31,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "configuration",
      "sdk_typescript": "configuration.get",
      "sdk_java": "client.configuration.get",
      "request_schema": null,
      "response_schema": "Configuration",
      "success_status": 200,
      "source_sha256": "c881dab3a834eb9f08e82f63aa1bc7dbe8f67d3a6aa23e2bbd2a5aa352ce0491",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/providers",
      "category": "canonical",
      "operation": "ProviderController.provider_create",
      "source": "backend/src/koinon/assistants/provider_controller.py",
      "line": 39,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ProviderInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_provider",
      "sdk_typescript": "providers.create",
      "sdk_java": "client.providers.create",
      "request_schema": "ProviderInput",
      "response_schema": "ModelProvider",
      "success_status": 201,
      "source_sha256": "c881dab3a834eb9f08e82f63aa1bc7dbe8f67d3a6aa23e2bbd2a5aa352ce0491",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/providers/{provider_id}",
      "category": "canonical",
      "operation": "ProviderController.provider_update",
      "source": "backend/src/koinon/assistants/provider_controller.py",
      "line": 49,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ProviderInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_provider",
      "sdk_typescript": "providers.update",
      "sdk_java": "client.providers.update",
      "request_schema": "ProviderInput",
      "response_schema": "ModelProvider",
      "success_status": 200,
      "source_sha256": "c881dab3a834eb9f08e82f63aa1bc7dbe8f67d3a6aa23e2bbd2a5aa352ce0491",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/providers/{provider_id}/validate",
      "category": "canonical",
      "operation": "ProviderController.provider_validate",
      "source": "backend/src/koinon/assistants/provider_controller.py",
      "line": 67,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "validate_provider",
      "sdk_typescript": "providers.validate",
      "sdk_java": "client.providers.validate",
      "request_schema": null,
      "response_schema": "ValidationResult",
      "success_status": 200,
      "source_sha256": "c881dab3a834eb9f08e82f63aa1bc7dbe8f67d3a6aa23e2bbd2a5aa352ce0491",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/authorized-applications",
      "category": "canonical",
      "operation": "AuthorizedApplicationController.list",
      "source": "backend/src/koinon/authorized_applications/controllers.py",
      "line": 18,
      "parameters": [
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "connected_at"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "desc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "authorized_applications",
      "sdk_typescript": "authorizedApplications.list",
      "sdk_java": "client.authorizedApplications.list",
      "request_schema": null,
      "response_schema": "Page[AuthorizedApplication]",
      "success_status": 200,
      "source_sha256": "af6224f59c833b8eb8e66fc50385715ce841eb97c17bf4fd7fc3c6b6f83a7fd7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/authorized-applications/{application_id}",
      "category": "canonical",
      "operation": "AuthorizedApplicationController.detail",
      "source": "backend/src/koinon/authorized_applications/controllers.py",
      "line": 39,
      "parameters": [
        {
          "name": "application_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "authorized_application",
      "sdk_typescript": "authorizedApplications.get",
      "sdk_java": "client.authorizedApplications.get",
      "request_schema": null,
      "response_schema": "AuthorizedApplication",
      "success_status": 200,
      "source_sha256": "af6224f59c833b8eb8e66fc50385715ce841eb97c17bf4fd7fc3c6b6f83a7fd7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/authorized-applications/{application_id}",
      "category": "canonical",
      "operation": "AuthorizedApplicationController.revoke",
      "source": "backend/src/koinon/authorized_applications/controllers.py",
      "line": 43,
      "parameters": [
        {
          "name": "application_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": null,
      "sdk_python": "revoke_authorized_application",
      "sdk_typescript": "authorizedApplications.revoke",
      "sdk_java": "client.authorizedApplications.revoke",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "af6224f59c833b8eb8e66fc50385715ce841eb97c17bf4fd7fc3c6b6f83a7fd7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/recipient-providers",
      "category": "canonical",
      "operation": "CommunicationsController.providers",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 20
        }
      ],
      "return_annotation": "RecipientProviderPage",
      "sdk_python": "communication_providers",
      "sdk_typescript": "communications.recipients.providers",
      "sdk_java": "client.communications.recipientProviders",
      "request_schema": null,
      "response_schema": "RecipientProviderPage",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/recipients",
      "category": "canonical",
      "operation": "CommunicationsController.recipients_search",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 87,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "provider_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "after",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 20
        }
      ],
      "return_annotation": "DirectoryRecipientPage",
      "sdk_python": "communication_recipients",
      "sdk_typescript": "communications.recipients.list",
      "sdk_java": "client.communications.recipients",
      "request_schema": null,
      "response_schema": "DirectoryRecipientPage",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/invitations/email/preview",
      "category": "canonical",
      "operation": "CommunicationsController.preview",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 108,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[EmailInvitationInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "EmailPreview",
      "sdk_python": "preview_email_invitation",
      "sdk_typescript": "communications.emailInvitations.preview",
      "sdk_java": "client.communications.previewInvitation",
      "request_schema": "EmailInvitationInput",
      "response_schema": "EmailPreview",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/invitations/email",
      "category": "canonical",
      "operation": "CommunicationsController.create",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 114,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[EmailInvitationInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "EmailInvitation",
      "sdk_python": "create_email_invitation",
      "sdk_typescript": "communications.emailInvitations.create",
      "sdk_java": "client.communications.createInvitation",
      "request_schema": "EmailInvitationInput",
      "response_schema": "EmailInvitation",
      "success_status": 201,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/invitations/email",
      "category": "canonical",
      "operation": "CommunicationsController.page",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 122,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "pending"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "EmailInvitationPage",
      "sdk_python": "email_invitations",
      "sdk_typescript": "communications.emailInvitations.list",
      "sdk_java": "client.communications.invitations",
      "request_schema": null,
      "response_schema": "EmailInvitationPage",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/invitations/email/{invitation_id}",
      "category": "canonical",
      "operation": "CommunicationsController.revoke",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 141,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "revoke_email_invitation",
      "sdk_typescript": "communications.emailInvitations.revoke",
      "sdk_java": "client.communications.revokeInvitation",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/invitations/email/{invitation_id}/resend",
      "category": "canonical",
      "operation": "CommunicationsController.resend",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 145,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "EmailInvitation",
      "sdk_python": "resend_email_invitation",
      "sdk_typescript": "communications.emailInvitations.resend",
      "sdk_java": "client.communications.resendInvitation",
      "request_schema": null,
      "response_schema": "EmailInvitation",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/invitations/email/{invitation_id}",
      "category": "canonical",
      "operation": "CommunicationsController.inspect",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 151,
      "parameters": [
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "InvitationReview",
      "sdk_python": "email_invitation",
      "sdk_typescript": "communications.emailInvitations.review",
      "sdk_java": "client.emailInvitations.review",
      "request_schema": null,
      "response_schema": "InvitationReview",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/invitations/email/{invitation_id}/accept",
      "category": "canonical",
      "operation": "CommunicationsController.accept",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 157,
      "parameters": [
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "accept_email_invitation",
      "sdk_typescript": "communications.emailInvitations.accept",
      "sdk_java": "client.emailInvitations.accept",
      "request_schema": null,
      "response_schema": "Membership",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/invitations/email/{invitation_id}/decline",
      "category": "canonical",
      "operation": "CommunicationsController.decline",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 165,
      "parameters": [
        {
          "name": "invitation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "InvitationReview",
      "sdk_python": "decline_email_invitation",
      "sdk_typescript": "communications.emailInvitations.decline",
      "sdk_java": "client.emailInvitations.decline",
      "request_schema": null,
      "response_schema": "InvitationReview",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/capabilities",
      "category": "canonical",
      "operation": "CommunicationsController.capabilities",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 171,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "CommunicationCapabilities",
      "sdk_python": "communications_capabilities",
      "sdk_typescript": "communications.administration.capabilities",
      "sdk_java": "client.communications.capabilities",
      "request_schema": null,
      "response_schema": "CommunicationCapabilities",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/policy",
      "category": "canonical",
      "operation": "CommunicationsController.policy",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 175,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "CommunicationPolicy",
      "sdk_python": "communications_policy",
      "sdk_typescript": "communications.administration.policy",
      "sdk_java": "client.communications.policy",
      "request_schema": null,
      "response_schema": "CommunicationPolicy",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/communications/policy",
      "category": "canonical",
      "operation": "CommunicationsController.policy_update",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 179,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CommunicationPolicyInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "CommunicationPolicy",
      "sdk_python": "update_communications_policy",
      "sdk_typescript": "communications.administration.updatePolicy",
      "sdk_java": "client.communications.updatePolicy",
      "request_schema": "CommunicationPolicyInput",
      "response_schema": "CommunicationPolicy",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries",
      "category": "canonical",
      "operation": "CommunicationsController.deliveries",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 187,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "channel",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "email"
        },
        {
          "name": "created_from",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "created_to",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "DeliveryPage",
      "sdk_python": "communication_deliveries",
      "sdk_typescript": "communications.administration.deliveries",
      "sdk_java": "client.communications.deliveries",
      "request_schema": null,
      "response_schema": "DeliveryPage",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}",
      "category": "canonical",
      "operation": "CommunicationsController.delivery",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 214,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DeliveryRecord",
      "sdk_python": "communication_delivery",
      "sdk_typescript": "communications.administration.delivery",
      "sdk_java": "client.communications.delivery",
      "request_schema": null,
      "response_schema": "DeliveryRecord",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}/retry",
      "category": "canonical",
      "operation": "CommunicationsController.retry",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 222,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DeliveryRecord",
      "sdk_python": "retry_communication_delivery",
      "sdk_typescript": "communications.administration.retry",
      "sdk_java": "client.communications.retryDelivery",
      "request_schema": null,
      "response_schema": "DeliveryRecord",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/notifications",
      "category": "canonical",
      "operation": "NotificationController.page",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 237,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "read",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "OwnNotificationPage",
      "sdk_python": "notifications",
      "sdk_typescript": "communications.notifications.list",
      "sdk_java": "client.notifications.list",
      "request_schema": null,
      "response_schema": "OwnNotificationPage",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/notifications/unread-count",
      "category": "canonical",
      "operation": "NotificationController.unread_count",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 256,
      "parameters": [],
      "return_annotation": "NotificationUnreadCount",
      "sdk_python": "notification_unread_count",
      "sdk_typescript": "communications.notifications.unreadCount",
      "sdk_java": "client.notifications.unreadCount",
      "request_schema": null,
      "response_schema": "NotificationUnreadCount",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/notifications/{notification_id}/read",
      "category": "canonical",
      "operation": "NotificationController.read",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 262,
      "parameters": [
        {
          "name": "notification_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "OwnNotification",
      "sdk_python": "read_notification",
      "sdk_typescript": "communications.notifications.markRead",
      "sdk_java": "client.notifications.markRead",
      "request_schema": null,
      "response_schema": "OwnNotification",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/notifications/preferences",
      "category": "canonical",
      "operation": "NotificationController.preferences",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 268,
      "parameters": [],
      "return_annotation": "NotificationPreferences",
      "sdk_python": "notification_preferences",
      "sdk_typescript": "communications.notifications.preferences",
      "sdk_java": "client.notifications.preferences",
      "request_schema": null,
      "response_schema": "NotificationPreferences",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/notifications/preferences",
      "category": "canonical",
      "operation": "NotificationController.preferences_update",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 274,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[NotificationPreferencesInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "NotificationPreferences",
      "sdk_python": "update_notification_preferences",
      "sdk_typescript": "communications.notifications.updatePreferences",
      "sdk_java": "client.notifications.updatePreferences",
      "request_schema": "NotificationPreferencesInput",
      "response_schema": "NotificationPreferences",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/notifications/preferences/preview",
      "category": "canonical",
      "operation": "NotificationController.preferences_preview",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 282,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[NotificationPreferencesInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "DigestSchedulePreview",
      "sdk_python": "preview_notification_schedule",
      "sdk_typescript": "communications.notifications.previewPreferences",
      "sdk_java": "client.notifications.previewSchedule",
      "request_schema": "NotificationPreferencesInput",
      "response_schema": "DigestSchedulePreview",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/notifications/preferences/email-preview",
      "category": "canonical",
      "operation": "NotificationController.email_preview",
      "source": "backend/src/koinon/communications/controllers.py",
      "line": 290,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[ActivityEmailPreviewInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "EmailPreview",
      "sdk_python": "preview_activity_email",
      "sdk_typescript": "communications.notifications.previewEmail",
      "sdk_java": "client.notifications.previewEmail",
      "request_schema": "ActivityEmailPreviewInput",
      "response_schema": "EmailPreview",
      "success_status": 200,
      "source_sha256": "37c98532e00effcf5272fcdfe77aec12e9b1397770c0a08f5c358ad7a072c1fd",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}/recovery",
      "category": "canonical",
      "operation": "DeliveryRecoveryController.delivery_recovery",
      "source": "backend/src/koinon/communications/recovery_controller.py",
      "line": 29,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DeliveryRecoveryOptions",
      "sdk_python": "communication_delivery_recovery",
      "sdk_typescript": "communications.administration.recovery",
      "sdk_java": "client.communications.recovery",
      "request_schema": null,
      "response_schema": "DeliveryRecoveryOptions",
      "success_status": 200,
      "source_sha256": "5d5dff3b17453a2b7c64d1fbe41ba917743103a4fd7cb9be5b1636beff9fa848",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}/observations",
      "category": "canonical",
      "operation": "DeliveryRecoveryController.delivery_observations",
      "source": "backend/src/koinon/communications/recovery_controller.py",
      "line": 35,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DeliveryObservationPage",
      "sdk_python": "communication_delivery_observations",
      "sdk_typescript": "communications.administration.observations",
      "sdk_java": "client.communications.observations",
      "request_schema": null,
      "response_schema": "DeliveryObservationPage",
      "success_status": 200,
      "source_sha256": "5d5dff3b17453a2b7c64d1fbe41ba917743103a4fd7cb9be5b1636beff9fa848",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}/observations",
      "category": "canonical",
      "operation": "DeliveryRecoveryController.inspect_delivery",
      "source": "backend/src/koinon/communications/recovery_controller.py",
      "line": 41,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[DeliveryInspectionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "DeliveryOperationObservation",
      "sdk_python": "inspect_communication_delivery",
      "sdk_typescript": "communications.administration.inspectDelivery",
      "sdk_java": "client.communications.inspectDelivery",
      "request_schema": "DeliveryInspectionInput",
      "response_schema": "DeliveryOperationObservation",
      "success_status": 200,
      "source_sha256": "5d5dff3b17453a2b7c64d1fbe41ba917743103a4fd7cb9be5b1636beff9fa848",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/communications/deliveries/{delivery_id}/welcome-recovery",
      "category": "canonical",
      "operation": "DeliveryRecoveryController.recover_welcome",
      "source": "backend/src/koinon/communications/recovery_controller.py",
      "line": 57,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "delivery_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[WelcomeRecoveryInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "WelcomeRecoveryAcknowledgement",
      "sdk_python": "recover_welcome_delivery",
      "sdk_typescript": "communications.administration.recoverWelcome",
      "sdk_java": "client.communications.recoverWelcome",
      "request_schema": "WelcomeRecoveryInput",
      "response_schema": "WelcomeRecoveryAcknowledgement",
      "success_status": 200,
      "source_sha256": "5d5dff3b17453a2b7c64d1fbe41ba917743103a4fd7cb9be5b1636beff9fa848",
      "sdk_typescript_factory": "createCommunicationsApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/communications",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers",
      "category": "canonical",
      "operation": "CorporateIdentityController.list",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 49,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "identity_providers",
      "sdk_typescript": "identity.list",
      "sdk_java": "client.identity.list",
      "request_schema": null,
      "response_schema": "IdentityProviderPage",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers",
      "category": "canonical",
      "operation": "CorporateIdentityController.create",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityProviderInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_identity_provider",
      "sdk_typescript": "identity.create",
      "sdk_java": "client.identity.create",
      "request_schema": "IdentityProviderInput",
      "response_schema": "IdentityProvider",
      "success_status": 201,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}",
      "category": "canonical",
      "operation": "CorporateIdentityController.get",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 78,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "identity_provider",
      "sdk_typescript": "identity.get",
      "sdk_java": "client.identity.get",
      "request_schema": null,
      "response_schema": "IdentityProvider",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}",
      "category": "canonical",
      "operation": "CorporateIdentityController.update",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 84,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityProviderPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_identity_provider",
      "sdk_typescript": "identity.update",
      "sdk_java": "client.identity.update",
      "request_schema": "IdentityProviderPatch",
      "response_schema": "IdentityProvider",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/test",
      "category": "canonical",
      "operation": "CorporateIdentityController.test",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 96,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "test_identity_provider",
      "sdk_typescript": "identity.test",
      "sdk_java": "client.identity.test",
      "request_schema": "IdentityRevision",
      "response_schema": "IdentityValidation",
      "success_status": 201,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/tests/{validation_id}",
      "category": "canonical",
      "operation": "CorporateIdentityController.test_status",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 110,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "validation_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "identity_test_status",
      "sdk_typescript": "identity.testStatus",
      "sdk_java": "client.identity.testStatus",
      "request_schema": null,
      "response_schema": "IdentityValidation",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/groups",
      "category": "canonical",
      "operation": "CorporateIdentityController.groups",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 122,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "after",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "identity_groups",
      "sdk_typescript": "identity.groups",
      "sdk_java": "client.identity.groups",
      "request_schema": null,
      "response_schema": "IdentityGroupPage",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/mappings",
      "category": "canonical",
      "operation": "CorporateIdentityController.mappings",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 136,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "identity_mappings",
      "sdk_typescript": "identity.mappings",
      "sdk_java": "client.identity.mappings",
      "request_schema": null,
      "response_schema": "IdentityMappingPage",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/mappings",
      "category": "canonical",
      "operation": "CorporateIdentityController.mapping_create",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 159,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityMappingInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_identity_mapping",
      "sdk_typescript": "identity.createMapping",
      "sdk_java": "client.identity.createMapping",
      "request_schema": "IdentityMappingInput",
      "response_schema": "IdentityMapping",
      "success_status": 201,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/mappings/{mapping_id}",
      "category": "canonical",
      "operation": "CorporateIdentityController.mapping_update",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 169,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "mapping_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityMappingInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_identity_mapping",
      "sdk_typescript": "identity.updateMapping",
      "sdk_java": "client.identity.updateMapping",
      "request_schema": "IdentityMappingInput",
      "response_schema": "IdentityMapping",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/mappings/{mapping_id}",
      "category": "canonical",
      "operation": "CorporateIdentityController.mapping_remove",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 182,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "mapping_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "remove_identity_mapping",
      "sdk_typescript": "identity.removeMapping",
      "sdk_java": "client.identity.removeMapping",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/activate",
      "category": "canonical",
      "operation": "CorporateIdentityController.activate",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 195,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityActivation]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "activate_identity_provider",
      "sdk_typescript": "identity.activate",
      "sdk_java": "client.identity.activate",
      "request_schema": "IdentityActivation",
      "response_schema": "IdentityProvider",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/identity/providers/{provider_id}/disable",
      "category": "canonical",
      "operation": "CorporateIdentityController.disable",
      "source": "backend/src/koinon/corporate_identity/controllers.py",
      "line": 207,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IdentityRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "disable_identity_provider",
      "sdk_typescript": "identity.disable",
      "sdk_java": "client.identity.disable",
      "request_schema": "IdentityRevision",
      "response_schema": "IdentityProvider",
      "success_status": 200,
      "source_sha256": "c3eaab84fe6c9467048940e6ef92eda9eb555497062fa112e8eaf4ca3a8f5535",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/me/presentation",
      "category": "canonical",
      "operation": "CorporateProfilesController.presentation",
      "source": "backend/src/koinon/corporate_profiles/controllers.py",
      "line": 39,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "OrganizationPresentation",
      "sdk_python": "organization_presentation",
      "sdk_typescript": "corporateProfiles.presentation",
      "sdk_java": "client.corporateProfiles.presentation",
      "request_schema": null,
      "response_schema": "OrganizationPresentation",
      "success_status": 200,
      "source_sha256": "c6bef27c79805706a27f7660ea7d34d3a82fc54be62486b9a60fa5fab1a5989b",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/me/presentation",
      "category": "canonical",
      "operation": "CorporateProfilesController.update_presentation",
      "source": "backend/src/koinon/corporate_profiles/controllers.py",
      "line": 52,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationPresentationInput]]",
          "location": "body",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "OrganizationPresentation",
      "sdk_python": "update_organization_presentation",
      "sdk_typescript": "corporateProfiles.updatePresentation",
      "sdk_java": "client.corporateProfiles.updatePresentation",
      "request_schema": "OrganizationPresentationInput",
      "response_schema": "OrganizationPresentation",
      "success_status": 200,
      "source_sha256": "c6bef27c79805706a27f7660ea7d34d3a82fc54be62486b9a60fa5fab1a5989b",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/me/profile-refresh",
      "category": "canonical",
      "operation": "CorporateProfilesController.refresh_self",
      "source": "backend/src/koinon/corporate_profiles/controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CorporateProfileRefreshInput]]",
          "location": "body",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "CorporateProfileRefresh",
      "sdk_python": "refresh_organization_profile",
      "sdk_typescript": "corporateProfiles.refreshSelf",
      "sdk_java": "client.corporateProfiles.refreshSelf",
      "request_schema": "CorporateProfileRefreshInput",
      "response_schema": "CorporateProfileRefresh",
      "success_status": 202,
      "source_sha256": "c6bef27c79805706a27f7660ea7d34d3a82fc54be62486b9a60fa5fab1a5989b",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/{person_id}/profile-refresh",
      "category": "canonical",
      "operation": "CorporateProfilesController.refresh_person",
      "source": "backend/src/koinon/corporate_profiles/controllers.py",
      "line": 84,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "person_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CorporateProfileRefreshInput]]",
          "location": "body",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "CorporateProfileRefresh",
      "sdk_python": "refresh_organization_person_profile",
      "sdk_typescript": "corporateProfiles.refreshPerson",
      "sdk_java": "client.corporateProfiles.refreshPerson",
      "request_schema": "CorporateProfileRefreshInput",
      "response_schema": "CorporateProfileRefresh",
      "success_status": 202,
      "source_sha256": "c6bef27c79805706a27f7660ea7d34d3a82fc54be62486b9a60fa5fab1a5989b",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/evidence/conversations",
      "category": "canonical",
      "operation": "EvidenceController.conversation",
      "source": "backend/src/koinon/evidence/controllers.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[MessageSelection]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "conversation_evidence",
      "sdk_typescript": "evidence.conversation",
      "sdk_java": "client.evidence.conversation",
      "request_schema": "MessageSelection",
      "response_schema": "EvidenceManifest",
      "success_status": 200,
      "source_sha256": "95cfd2e582d6f774143d610cb5d9e155819a578a324de1f05a34770ed610fe73",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/exports/reviews",
      "category": "canonical",
      "operation": "ExportController.review",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 32,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExportReviewRequest]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "review_export",
      "sdk_typescript": "exports.review",
      "sdk_java": "client.exports.review",
      "request_schema": "ExportReviewRequest",
      "response_schema": "ExportReview",
      "success_status": 201,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/exports",
      "category": "canonical",
      "operation": "ExportController.create",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 41,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExportCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "create_export",
      "sdk_typescript": "exports.create",
      "sdk_java": "client.exports.create",
      "request_schema": "ExportCreate",
      "response_schema": "Export",
      "success_status": 201,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/exports",
      "category": "canonical",
      "operation": "ExportController.list",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 49,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "exports",
      "sdk_typescript": "exports.list",
      "sdk_java": "client.exports.list",
      "request_schema": null,
      "response_schema": "ExportPage",
      "success_status": 200,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/exports/{export_id}",
      "category": "canonical",
      "operation": "ExportController.get",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "export_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "export",
      "sdk_typescript": "exports.get",
      "sdk_java": "client.exports.get",
      "request_schema": null,
      "response_schema": "Export",
      "success_status": 200,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/exports/{export_id}/download",
      "category": "canonical",
      "operation": "ExportController.download",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 76,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "export_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "export_download",
      "sdk_typescript": "exports.download",
      "sdk_java": "client.exports.download",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "binary",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/exports/{export_id}",
      "category": "canonical",
      "operation": "ExportController.cancel",
      "source": "backend/src/koinon/exports/controllers.py",
      "line": 91,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "export_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "cancel_export",
      "sdk_typescript": "exports.cancel",
      "sdk_java": "client.exports.cancel",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "397ef3c46d85f5242b9d086b35e6424e771630aea19a40ddddf146526993deef",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/capabilities",
      "category": "canonical",
      "operation": "ChatAttachmentsController.capabilities",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 49,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "AttachmentCapabilities",
      "sdk_python": "attachment_capabilities",
      "sdk_typescript": "chat.attachments.capabilities",
      "sdk_java": "client.chatAttachments.capabilities",
      "request_schema": null,
      "response_schema": "AttachmentCapabilities",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments",
      "category": "canonical",
      "operation": "ChatAttachmentsController.upload",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 57,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "AttachmentView",
      "sdk_python": "upload_attachment",
      "sdk_typescript": "chat.attachments.upload",
      "sdk_java": "client.chatAttachments.upload",
      "request_schema": "AttachmentUpload",
      "response_schema": "AttachmentView",
      "success_status": 202,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "multipart/form-data",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments",
      "category": "canonical",
      "operation": "ChatAttachmentsController.list_files",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 98,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "AttachmentPage",
      "sdk_python": "attachments",
      "sdk_typescript": "chat.attachments.list",
      "sdk_java": "client.chatAttachments.list",
      "request_schema": null,
      "response_schema": "AttachmentPage",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}",
      "category": "canonical",
      "operation": "ChatAttachmentsController.get",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 123,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "AttachmentView",
      "sdk_python": "attachment",
      "sdk_typescript": "chat.attachments.get",
      "sdk_java": "client.chatAttachments.get",
      "request_schema": null,
      "response_schema": "AttachmentView",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}/original",
      "category": "canonical",
      "operation": "ChatAttachmentsController.original",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 131,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "attachment_original",
      "sdk_typescript": "chat.attachments.original",
      "sdk_java": "client.chatAttachments.original",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "binary",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}/chunks",
      "category": "canonical",
      "operation": "ChatAttachmentsController.chunks",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 149,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        }
      ],
      "return_annotation": "PrivateChunkPage",
      "sdk_python": "attachment_chunks",
      "sdk_typescript": "chat.attachments.chunks",
      "sdk_java": "client.chatAttachments.chunks",
      "request_schema": null,
      "response_schema": "PrivateChunkPage",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}/cancel",
      "category": "canonical",
      "operation": "ChatAttachmentsController.cancel",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 172,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AttachmentRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "AttachmentView",
      "sdk_python": "cancel_attachment",
      "sdk_typescript": "chat.attachments.cancel",
      "sdk_java": "client.chatAttachments.cancel",
      "request_schema": "AttachmentRevision",
      "response_schema": "AttachmentView",
      "success_status": 200,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}/retry",
      "category": "canonical",
      "operation": "ChatAttachmentsController.retry",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 190,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AttachmentRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "AttachmentView",
      "sdk_python": "retry_attachment",
      "sdk_typescript": "chat.attachments.retry",
      "sdk_java": "client.chatAttachments.retry",
      "request_schema": "AttachmentRevision",
      "response_schema": "AttachmentView",
      "success_status": 202,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}",
      "category": "canonical",
      "operation": "ChatAttachmentsController.delete",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 209,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "remove_attachment",
      "sdk_typescript": "chat.attachments.remove",
      "sdk_java": "client.chatAttachments.remove",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/chat/threads/{thread_id}/attachments/{attachment_id}/knowledge",
      "category": "canonical",
      "operation": "ChatAttachmentsController.knowledge",
      "source": "backend/src/koinon/knowledge/attachments/controllers.py",
      "line": 228,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "thread_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "attachment_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AttachmentPromotionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "AttachmentPromotionView",
      "sdk_python": "promote_attachment",
      "sdk_typescript": "chat.attachments.promote",
      "sdk_java": "client.chatAttachments.promote",
      "request_schema": "AttachmentPromotionInput",
      "response_schema": "AttachmentPromotionView",
      "success_status": 201,
      "source_sha256": "f2a07d34a1db6a0ab35a7550fe5ec47b49bda9879df8289eadc4f8f6074dfe79",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/catalog/availability",
      "category": "canonical",
      "operation": "KnowledgeAvailabilityController.observe",
      "source": "backend/src/koinon/knowledge/availability/controller.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[AvailabilityRequest]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_availability",
      "sdk_typescript": "availability.observe",
      "sdk_java": "client.catalog.availability",
      "request_schema": "AvailabilityRequest",
      "response_schema": "AvailabilityResponse",
      "success_status": 200,
      "source_sha256": "18a3a3131196a157100161e1142f200933a451e89aa637cca6911135e003dca5",
      "sdk_typescript_factory": "createAvailabilityApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/availability",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-processing",
      "category": "canonical",
      "operation": "KnowledgeAvailabilityController.processing",
      "source": "backend/src/koinon/knowledge/availability/controller.py",
      "line": 29,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ProcessingRequest]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_processing",
      "sdk_typescript": "availability.processing",
      "sdk_java": "client.catalog.processing",
      "request_schema": "ProcessingRequest",
      "response_schema": "ProcessingResponse",
      "success_status": 200,
      "source_sha256": "18a3a3131196a157100161e1142f200933a451e89aa637cca6911135e003dca5",
      "sdk_typescript_factory": "createAvailabilityApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/availability",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/source-batch-capabilities",
      "category": "canonical",
      "operation": "FileBatchController.capabilities",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 52,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "FileBatchCapabilities",
      "sdk_python": "file_batch_capabilities",
      "sdk_typescript": "fileBatches.capabilities",
      "sdk_java": "client.fileBatches.capabilities",
      "request_schema": null,
      "response_schema": "FileBatchCapabilities",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches",
      "category": "canonical",
      "operation": "FileBatchController.create",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 58,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[FileBatchCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "create_file_batch",
      "sdk_typescript": "fileBatches.create",
      "sdk_java": "client.fileBatches.create",
      "request_schema": "FileBatchCreate",
      "response_schema": "FileBatchView",
      "success_status": 201,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches",
      "category": "canonical",
      "operation": "FileBatchController.list",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 66,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "FileBatchPage",
      "sdk_python": "file_batches",
      "sdk_typescript": "fileBatches.list",
      "sdk_java": "client.fileBatches.list",
      "request_schema": null,
      "response_schema": "FileBatchPage",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}",
      "category": "canonical",
      "operation": "FileBatchController.get",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 78,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "file_batch",
      "sdk_typescript": "fileBatches.get",
      "sdk_java": "client.fileBatches.get",
      "request_schema": null,
      "response_schema": "FileBatchView",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items",
      "category": "canonical",
      "operation": "FileBatchController.items",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 82,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "FileItemPage",
      "sdk_python": "file_batch_items",
      "sdk_typescript": "fileBatches.items",
      "sdk_java": "client.fileBatches.items",
      "request_schema": null,
      "response_schema": "FileItemPage",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/content",
      "category": "canonical",
      "operation": "FileBatchController.content",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 95,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "StagedFileReceipt",
      "sdk_python": "upload_file_batch_item",
      "sdk_typescript": "fileBatches.upload",
      "sdk_java": "client.fileBatches.upload",
      "request_schema": "BulkFileUpload",
      "response_schema": "StagedFileReceipt",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/octet-stream",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/receipt",
      "category": "canonical",
      "operation": "FileBatchController.receipt",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 134,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "StagedFileReceipt",
      "sdk_python": "file_batch_item_receipt",
      "sdk_typescript": "fileBatches.receipt",
      "sdk_java": "client.fileBatches.receipt",
      "request_schema": null,
      "response_schema": "StagedFileReceipt",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/submit",
      "category": "canonical",
      "operation": "FileBatchController.submit",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 140,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BulkAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "submit_file_batch",
      "sdk_typescript": "fileBatches.submit",
      "sdk_java": "client.fileBatches.submit",
      "request_schema": "BulkAction",
      "response_schema": "FileBatchView",
      "success_status": 202,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/cancel",
      "category": "canonical",
      "operation": "FileBatchController.cancel",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 148,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BulkAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "cancel_file_batch",
      "sdk_typescript": "fileBatches.cancel",
      "sdk_java": "client.fileBatches.cancel",
      "request_schema": "BulkAction",
      "response_schema": "FileBatchView",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/reconcile",
      "category": "canonical",
      "operation": "FileBatchController.reconcile",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 156,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BulkAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "reconcile_file_batch_item",
      "sdk_typescript": "fileBatches.reconcile",
      "sdk_java": "client.fileBatches.reconcile",
      "request_schema": "BulkAction",
      "response_schema": "FileBatchView",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/original/reconcile",
      "category": "canonical",
      "operation": "FileBatchController.recover_original",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 169,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BulkAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "reconcile_file_batch_original",
      "sdk_typescript": "fileBatches.recoverOriginal",
      "sdk_java": "client.fileBatches.recoverOriginal",
      "request_schema": "BulkAction",
      "response_schema": "FileBatchView",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/recovery",
      "category": "canonical",
      "operation": "FileBatchController.processing_recovery",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 182,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "FileRecoveryView",
      "sdk_python": "file_batch_processing_recovery",
      "sdk_typescript": "fileBatches.processingRecovery",
      "sdk_java": "client.fileBatches.processingRecovery",
      "request_schema": null,
      "response_schema": "FileRecoveryView",
      "success_status": 200,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/batches/{batch_id}/items/{item_id}/recover",
      "category": "canonical",
      "operation": "FileBatchController.recover_processing",
      "source": "backend/src/koinon/knowledge/bulk/controllers.py",
      "line": 190,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BulkRecoveryAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "FileBatchView",
      "sdk_python": "recover_file_batch_processing",
      "sdk_typescript": "fileBatches.recoverProcessing",
      "sdk_java": "client.fileBatches.recoverProcessing",
      "request_schema": "BulkRecoveryAction",
      "response_schema": "FileBatchView",
      "success_status": 202,
      "source_sha256": "06f34d914ed508cade2d37fcf5450fa59f251925fcb0bf77ab70aff705300ca7",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/query-batch-capabilities",
      "category": "canonical",
      "operation": "QueryBatchController.capabilities",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 29,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchCapabilities",
      "sdk_python": "query_batch_capabilities",
      "sdk_typescript": "queryBatches.capabilities",
      "sdk_java": "client.queryBatches.capabilities",
      "request_schema": null,
      "response_schema": "QueryBatchCapabilities",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches",
      "category": "canonical",
      "operation": "QueryBatchController.create",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 37,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[QueryBatchCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchView",
      "sdk_python": "create_query_batch",
      "sdk_typescript": "queryBatches.create",
      "sdk_java": "client.queryBatches.create",
      "request_schema": "QueryBatchCreate",
      "response_schema": "QueryBatchView",
      "success_status": 201,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches",
      "category": "canonical",
      "operation": "QueryBatchController.list",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 45,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "QueryBatchPage",
      "sdk_python": "query_batches",
      "sdk_typescript": "queryBatches.list",
      "sdk_java": "client.queryBatches.list",
      "request_schema": null,
      "response_schema": "QueryBatchPage",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches/{batch_id}",
      "category": "canonical",
      "operation": "QueryBatchController.get",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 57,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchView",
      "sdk_python": "query_batch",
      "sdk_typescript": "queryBatches.get",
      "sdk_java": "client.queryBatches.get",
      "request_schema": null,
      "response_schema": "QueryBatchView",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches/{batch_id}/items",
      "category": "canonical",
      "operation": "QueryBatchController.items",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 61,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "QueryBatchItemPage",
      "sdk_python": "query_batch_items",
      "sdk_typescript": "queryBatches.items",
      "sdk_java": "client.queryBatches.items",
      "request_schema": null,
      "response_schema": "QueryBatchItemPage",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches/{batch_id}/items/{item_id}/result",
      "category": "canonical",
      "operation": "QueryBatchController.result",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 74,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchResult",
      "sdk_python": "query_batch_result",
      "sdk_typescript": "queryBatches.result",
      "sdk_java": "client.queryBatches.result",
      "request_schema": null,
      "response_schema": "QueryBatchResult",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches/{batch_id}/cancel",
      "category": "canonical",
      "operation": "QueryBatchController.cancel",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 80,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[QueryBatchAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchCancellation",
      "sdk_python": "cancel_query_batch",
      "sdk_typescript": "queryBatches.cancel",
      "sdk_java": "client.queryBatches.cancel",
      "request_schema": "QueryBatchAction",
      "response_schema": "QueryBatchCancellation",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/queries/batches/{batch_id}/items/{item_id}/reconcile",
      "category": "canonical",
      "operation": "QueryBatchController.reconcile",
      "source": "backend/src/koinon/knowledge/bulk_queries/controllers.py",
      "line": 92,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "batch_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[QueryBatchAction]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "QueryBatchView",
      "sdk_python": "reconcile_query_batch_item",
      "sdk_typescript": "queryBatches.reconcile",
      "sdk_java": "client.queryBatches.reconcile",
      "request_schema": "QueryBatchAction",
      "response_schema": "QueryBatchView",
      "success_status": 200,
      "source_sha256": "c6ae5f8eea05e05c972f44f0131557aa7cfede38674a0c57b9526237c36f6edc",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-roles",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.roles",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 29,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "knowledge_roles",
      "sdk_typescript": "knowledgeConnections.roles",
      "sdk_java": "client.knowledgeConnections.roles",
      "request_schema": null,
      "response_schema": "KnowledgeRoles",
      "success_status": 200,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-connections",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.list_connections",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 37,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "knowledge_connections",
      "sdk_typescript": "knowledgeConnections.list",
      "sdk_java": "client.knowledgeConnections.list",
      "request_schema": null,
      "response_schema": "Page[KnowledgeConnection]",
      "success_status": 200,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-connections",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.create",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 47,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ConnectionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_knowledge_connection",
      "sdk_typescript": "knowledgeConnections.create",
      "sdk_java": "client.knowledgeConnections.create",
      "request_schema": "KnowledgeConnectionInput",
      "response_schema": "KnowledgeConnection",
      "success_status": 201,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-connections/{connection_id}",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.update",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 55,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "connection_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ConnectionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_knowledge_connection",
      "sdk_typescript": "knowledgeConnections.update",
      "sdk_java": "client.knowledgeConnections.update",
      "request_schema": "KnowledgeConnectionInput",
      "response_schema": "KnowledgeConnection",
      "success_status": 200,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-connections/{connection_id}",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.get",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "connection_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "knowledge_connection",
      "sdk_typescript": "knowledgeConnections.get",
      "sdk_java": "client.knowledgeConnections.get",
      "request_schema": null,
      "response_schema": "KnowledgeConnection",
      "success_status": 200,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-connections/{connection_id}",
      "category": "canonical",
      "operation": "KnowledgeConnectionsController.delete",
      "source": "backend/src/koinon/knowledge/connections/controllers.py",
      "line": 74,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "connection_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "delete_knowledge_connection",
      "sdk_typescript": "knowledgeConnections.remove",
      "sdk_java": "client.knowledgeConnections.remove",
      "request_schema": null,
      "response_schema": "Deleted",
      "success_status": 200,
      "source_sha256": "825f869535746214e5976934c729684a449eba1d4373bfd2da03c88b0699d404",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/sources/upload",
      "category": "canonical",
      "operation": "KnowledgeController.upload",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 33,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "upload",
      "sdk_typescript": "sources.uploadFile",
      "sdk_java": "client.sources.upload",
      "request_schema": "SourceUpload",
      "response_schema": "UploadResponse",
      "success_status": 201,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "multipart/form-data",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/search",
      "category": "canonical",
      "operation": "KnowledgeController.search",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 82,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[SearchInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "search",
      "sdk_typescript": "search",
      "sdk_java": "client.knowledge.search",
      "request_schema": "SearchRequest",
      "response_schema": "SearchResponse",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/query",
      "category": "canonical",
      "operation": "KnowledgeController.query",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 88,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[QueryInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "query",
      "sdk_typescript": "query",
      "sdk_java": "client.knowledge.query",
      "request_schema": "QueryRequest",
      "response_schema": "QueryResponse",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/schema",
      "category": "canonical",
      "operation": "KnowledgeController.schema",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 96,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "schema",
      "sdk_typescript": "dataset.schema",
      "sdk_java": "client.datasets.schema",
      "request_schema": null,
      "response_schema": "DatasetSchema",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/lineage",
      "category": "canonical",
      "operation": "KnowledgeController.lineage",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 100,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "asset_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "lineage",
      "sdk_typescript": "lineage",
      "sdk_java": "client.knowledge.lineage",
      "request_schema": null,
      "response_schema": "Lineage",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/chunks",
      "category": "canonical",
      "operation": "KnowledgeController.document_chunks",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 106,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "offset",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 0
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 50
        },
        {
          "name": "page",
          "annotation": "QueryParam[int | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "section",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "document_chunks",
      "sdk_typescript": "documents.chunks",
      "sdk_java": "client.documents.chunks",
      "request_schema": null,
      "response_schema": "DocumentChunks",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/original",
      "category": "canonical",
      "operation": "KnowledgeController.document_original",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 129,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "document_download",
      "sdk_typescript": "documents.download",
      "sdk_java": "client.documents.original",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "binary",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/reingest",
      "category": "canonical",
      "operation": "ContentController.reingest_document",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 183,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[DocumentReingestInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "reingest_document",
      "sdk_typescript": "documents.reingest",
      "sdk_java": "client.documents.reingest",
      "request_schema": "DocumentReingestInput",
      "response_schema": "ContentUpdate",
      "success_status": 201,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": [
        "If-Match (unquoted digest/snapshot helper argument; quoted wire header)",
        "X-Koinon-Source-Version (optional UUID paired with extraction)",
        "X-Koinon-Extraction (optional ingestion UUID paired with source version)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/reingest",
      "category": "canonical",
      "operation": "ContentController.reingest_table",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 205,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[TableReingestInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "reingest_table",
      "sdk_typescript": "dataset.reingestTable",
      "sdk_java": "client.datasets.reingestTable",
      "request_schema": "TableReingestInput",
      "response_schema": "ContentUpdate",
      "success_status": 201,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "application/json",
      "headers": [
        "If-Match (unquoted digest/snapshot helper argument; quoted wire header)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/content",
      "category": "canonical",
      "operation": "ContentController.document",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 222,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "replace_document",
      "sdk_typescript": "documents.replace",
      "sdk_java": "client.documents.replace",
      "request_schema": "DocumentReplacement",
      "response_schema": "ContentUpdate",
      "success_status": 201,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "multipart/form-data",
      "headers": [
        "If-Match (unquoted digest/snapshot helper argument; quoted wire header)",
        "X-Koinon-Source-Version (optional UUID paired with extraction)",
        "X-Koinon-Extraction (optional ingestion UUID paired with source version)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/content",
      "category": "canonical",
      "operation": "ContentController.table",
      "source": "backend/src/koinon/knowledge/controllers.py",
      "line": 248,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "replace_table",
      "sdk_typescript": "dataset.replaceTable",
      "sdk_java": "client.datasets.replaceTable",
      "request_schema": "TableReplacement",
      "response_schema": "ContentUpdate",
      "success_status": 201,
      "source_sha256": "d4e95cff899792374da72d0588f29aabd63efe0c9be58dff2d274576093057ff",
      "encoding": "multipart/form-data",
      "headers": [
        "If-Match (unquoted digest/snapshot helper argument; quoted wire header)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-intents",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.preview",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 22,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[KnowledgeIntentInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "preview_knowledge",
      "sdk_typescript": "knowledgeIntents.preview",
      "sdk_java": "client.knowledgeIntents.preview",
      "request_schema": "KnowledgeIntentInput",
      "response_schema": "KnowledgeIntent",
      "success_status": 201,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-intents/{intent_id}",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.intent",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 33,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "intent_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_intent",
      "sdk_typescript": "knowledgeIntents.get",
      "sdk_java": "client.knowledgeIntents.get",
      "request_schema": null,
      "response_schema": "KnowledgeIntent",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-intents/{intent_id}/confirm",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.confirm",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 41,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "intent_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[KnowledgeConfirmation]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "confirm_knowledge",
      "sdk_typescript": "knowledgeIntents.confirm",
      "sdk_java": "client.knowledgeIntents.confirm",
      "request_schema": "KnowledgeConfirmation",
      "response_schema": "KnowledgeCommitOutcome",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "success_statuses": [
        200,
        202
      ],
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-intents/{intent_id}/cancel",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.cancel",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 58,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "intent_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[KnowledgeCancellation]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "cancel_knowledge",
      "sdk_typescript": "knowledgeIntents.cancel",
      "sdk_java": "client.knowledgeIntents.cancel",
      "request_schema": "KnowledgeCancellation",
      "response_schema": "KnowledgeIntent",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-items",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.list",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 72,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "project_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "destination_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_items",
      "sdk_typescript": "knowledgeItems.list",
      "sdk_java": "client.knowledgeItems.list",
      "request_schema": null,
      "response_schema": "KnowledgeItemPage",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-items/{item_id}",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.get",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 97,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_item",
      "sdk_typescript": "knowledgeItems.get",
      "sdk_java": "client.knowledgeItems.get",
      "request_schema": null,
      "response_schema": "KnowledgeItemView",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-items/{item_id}/versions/{version}",
      "category": "canonical",
      "operation": "CuratedKnowledgeController.version",
      "source": "backend/src/koinon/knowledge/curated/controllers.py",
      "line": 103,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "item_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "version",
          "annotation": "PathVar[int]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "knowledge_version",
      "sdk_typescript": "knowledgeItems.version",
      "sdk_java": "client.knowledgeItems.version",
      "request_schema": null,
      "response_schema": "KnowledgeItemView",
      "success_status": 200,
      "source_sha256": "c2b842b54a37b4d6672396ea9a3cc7e30a46fafc6bf8e7cdd8176f01c6618f56",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/files",
      "category": "canonical",
      "operation": "DatasetFilesController.append",
      "source": "backend/src/koinon/knowledge/dataset_append_controller.py",
      "line": 22,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "append_dataset_file",
      "sdk_typescript": "dataset.appendFile",
      "sdk_java": "client.datasets.appendFile",
      "request_schema": "DatasetFileUpload",
      "response_schema": "DatasetFileAppendResult",
      "success_status": 201,
      "source_sha256": "a0f9332f6af606eb2ac9dee13b363bc1f5c9f6fc312d67b92ac8286164853eb2",
      "encoding": "multipart/form-data",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions",
      "category": "canonical",
      "operation": "DocumentHistoryController.versions",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 30,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "DocumentVersionPage",
      "sdk_python": "document_versions",
      "sdk_typescript": "documents.versions",
      "sdk_java": "client.documents.versions",
      "request_schema": null,
      "response_schema": "DocumentVersionPage",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions/{source_version_id}",
      "category": "canonical",
      "operation": "DocumentHistoryController.version",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 47,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_version_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DocumentVersion",
      "sdk_python": "document_version",
      "sdk_typescript": "documents.version",
      "sdk_java": "client.documents.version",
      "request_schema": null,
      "response_schema": "DocumentVersion",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions/{source_version_id}/extractions",
      "category": "canonical",
      "operation": "DocumentHistoryController.extractions",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 62,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_version_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "DocumentExtractionPage",
      "sdk_python": "document_extractions",
      "sdk_typescript": "documents.extractions",
      "sdk_java": "client.documents.extractions",
      "request_schema": null,
      "response_schema": "DocumentExtractionPage",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions/{source_version_id}/extractions/{extraction_id}/parts",
      "category": "canonical",
      "operation": "DocumentHistoryController.parts",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 81,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_version_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "extraction_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "DocumentPartPage",
      "sdk_python": "document_parts",
      "sdk_typescript": "documents.parts",
      "sdk_java": "client.documents.parts",
      "request_schema": null,
      "response_schema": "DocumentPartPage",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions/{source_version_id}/extractions/{extraction_id}/parts/{source_part_id}",
      "category": "canonical",
      "operation": "DocumentHistoryController.part",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 104,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_version_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "extraction_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_part_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "DocumentPartContent",
      "sdk_python": "document_part",
      "sdk_typescript": "documents.part",
      "sdk_java": "client.documents.part",
      "request_schema": null,
      "response_schema": "DocumentPartContent",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/documents/{document_id}/versions/{source_version_id}/original",
      "category": "canonical",
      "operation": "DocumentHistoryController.original",
      "source": "backend/src/koinon/knowledge/document_history/controllers.py",
      "line": 123,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "document_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "source_version_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "document_version_original",
      "sdk_typescript": "documents.versionOriginal",
      "sdk_java": "client.documents.versionOriginal",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "490c6711727b1888c39d377a4b8264f8e4e297bcdb9899b4d6bee8c7cb87a4aa",
      "encoding": "binary",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-knowledge-reviews",
      "category": "canonical",
      "operation": "ExternalKnowledgeReviewController.stage",
      "source": "backend/src/koinon/knowledge/external_reviews/controllers.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalReviewInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "stage_external_review",
      "sdk_typescript": "externalReviews.stage",
      "sdk_java": "client.externalReviews.stage",
      "request_schema": "ExternalReviewInput",
      "response_schema": "ExternalReviewView",
      "success_status": 201,
      "source_sha256": "888c00a236b4fb98b89578ede935e014b59b7bcb74677b2e4e295d3adae2392c",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/external-knowledge-reviews/{review_id}",
      "category": "canonical",
      "operation": "ExternalKnowledgeReviewController.get",
      "source": "backend/src/koinon/knowledge/external_reviews/controllers.py",
      "line": 35,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "external_review",
      "sdk_typescript": "externalReviews.get",
      "sdk_java": "client.externalReviews.get",
      "request_schema": null,
      "response_schema": "ExternalReviewView",
      "success_status": 200,
      "source_sha256": "888c00a236b4fb98b89578ede935e014b59b7bcb74677b2e4e295d3adae2392c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-knowledge-reviews/{review_id}/approve",
      "category": "canonical",
      "operation": "ExternalKnowledgeReviewController.approve",
      "source": "backend/src/koinon/knowledge/external_reviews/controllers.py",
      "line": 41,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalReviewDecision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "approve_external_review",
      "sdk_typescript": "externalReviews.approve",
      "sdk_java": "client.externalReviews.approve",
      "request_schema": "ExternalReviewDecision",
      "response_schema": "KnowledgeCommitOutcome",
      "success_status": 200,
      "source_sha256": "888c00a236b4fb98b89578ede935e014b59b7bcb74677b2e4e295d3adae2392c",
      "success_statuses": [
        200,
        202
      ],
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-knowledge-reviews/{review_id}/cancel",
      "category": "canonical",
      "operation": "ExternalKnowledgeReviewController.cancel",
      "source": "backend/src/koinon/knowledge/external_reviews/controllers.py",
      "line": 58,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalReviewDecision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "cancel_external_review",
      "sdk_typescript": "externalReviews.cancel",
      "sdk_java": "client.externalReviews.cancel",
      "request_schema": "ExternalReviewDecision",
      "response_schema": "ExternalReviewView",
      "success_status": 200,
      "source_sha256": "888c00a236b4fb98b89578ede935e014b59b7bcb74677b2e4e295d3adae2392c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/cleanup",
      "category": "canonical",
      "operation": "ExternalFileReviewController.cleanup",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 26,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalFileCleanupInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "cleanup_external_file_reviews",
      "sdk_typescript": "externalFileReviews.cleanup",
      "sdk_java": "client.externalFileReviews.cleanup",
      "request_schema": "ExternalFileCleanupInput",
      "response_schema": "ExternalFileCleanupResult",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews",
      "category": "canonical",
      "operation": "ExternalFileReviewController.stage",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 36,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalFileReviewInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "stage_external_file_review",
      "sdk_typescript": "externalFileReviews.stage",
      "sdk_java": "client.externalFileReviews.stage",
      "request_schema": "ExternalFileReviewInput",
      "response_schema": "ExternalFileReviewView",
      "success_status": 201,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/{review_id}",
      "category": "canonical",
      "operation": "ExternalFileReviewController.get",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 50,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "external_file_review",
      "sdk_typescript": "externalFileReviews.get",
      "sdk_java": "client.externalFileReviews.get",
      "request_schema": null,
      "response_schema": "ExternalFileReviewView",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/{review_id}/chunks",
      "category": "canonical",
      "operation": "ExternalFileReviewController.chunk",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 56,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalFileChunkInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "upload_external_file_chunk",
      "sdk_typescript": "externalFileReviews.chunk",
      "sdk_java": "client.externalFileReviews.chunk",
      "request_schema": "ExternalFileChunkInput",
      "response_schema": "ExternalFileReviewView",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/{review_id}/seal",
      "category": "canonical",
      "operation": "ExternalFileReviewController.seal",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 70,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "seal_external_file_review",
      "sdk_typescript": "externalFileReviews.seal",
      "sdk_java": "client.externalFileReviews.seal",
      "request_schema": null,
      "response_schema": "ExternalFileReviewView",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/{review_id}/approve",
      "category": "canonical",
      "operation": "ExternalFileReviewController.approve",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 76,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalReviewDecision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "approve_external_file_review",
      "sdk_typescript": "externalFileReviews.approve",
      "sdk_java": "client.externalFileReviews.approve",
      "request_schema": "ExternalReviewDecision",
      "response_schema": "ExternalFileReviewView",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "success_statuses": [
        200,
        202
      ],
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/external-file-reviews/{review_id}/cancel",
      "category": "canonical",
      "operation": "ExternalFileReviewController.cancel",
      "source": "backend/src/koinon/knowledge/external_reviews/file_controllers.py",
      "line": 93,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "review_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ExternalReviewDecision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "cancel_external_file_review",
      "sdk_typescript": "externalFileReviews.cancel",
      "sdk_java": "client.externalFileReviews.cancel",
      "request_schema": "ExternalReviewDecision",
      "response_schema": "ExternalFileReviewView",
      "success_status": 200,
      "source_sha256": "8fddc1ad27fd99e48ca1add1b65b6cad0798e6aa8772b1dfcf5e6b428493b43a",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.list_indexes",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 34,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "domain",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 50
        },
        {
          "name": "offset",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 0
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "dimensions",
          "annotation": "QueryParam[int | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "model_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "provider_kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "IndexPage",
      "sdk_python": "knowledge_indexes",
      "sdk_typescript": "knowledgeIndexes.list",
      "sdk_java": "client.knowledgeIndexes.list",
      "request_schema": null,
      "response_schema": "IndexPage",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-index-choices",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.choices",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 63,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "domain",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 50
        },
        {
          "name": "offset",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 0
        },
        {
          "name": "status",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "dimensions",
          "annotation": "QueryParam[int | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "model_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "provider_kind",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "NativeIndexPage",
      "sdk_python": "native_index_choices",
      "sdk_typescript": "knowledgeIndexes.choices",
      "sdk_java": "client.knowledgeIndexes.choices",
      "request_schema": null,
      "response_schema": "NativeIndexPage",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-index-choices/{choice_id}",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.choice",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 92,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "choice_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "domain",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "NativeIndexChoice",
      "sdk_python": "native_index_choice",
      "sdk_typescript": "knowledgeIndexes.choice",
      "sdk_java": "client.knowledgeIndexes.choice",
      "request_schema": null,
      "response_schema": "NativeIndexChoice",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes/{index_id}",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.get",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 111,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "index_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "KnowledgeIndexView",
      "sdk_python": "knowledge_index",
      "sdk_typescript": "knowledgeIndexes.get",
      "sdk_java": "client.knowledgeIndexes.get",
      "request_schema": null,
      "response_schema": "KnowledgeIndexView",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes/plan",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.plan",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 119,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IndexPlanInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "IndexPlanView",
      "sdk_python": "plan_knowledge_index",
      "sdk_typescript": "knowledgeIndexes.plan",
      "sdk_java": "client.knowledgeIndexes.plan",
      "request_schema": "IndexPlanInput",
      "response_schema": "IndexPlanView",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.create",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 127,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IndexCreateInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "IndexJobView",
      "sdk_python": "create_knowledge_index",
      "sdk_typescript": "knowledgeIndexes.create",
      "sdk_java": "client.knowledgeIndexes.create",
      "request_schema": "IndexCreateInput",
      "response_schema": "IndexJobView",
      "success_status": 202,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes/{index_id}/activate",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.activate",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 140,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "index_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IndexActivateInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "KnowledgeIndexView",
      "sdk_python": "activate_knowledge_index",
      "sdk_typescript": "knowledgeIndexes.activate",
      "sdk_java": "client.knowledgeIndexes.activate",
      "request_schema": "IndexActivateInput",
      "response_schema": "KnowledgeIndexView",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes/{index_id}/cancel",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.cancel",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 154,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "index_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IndexRevisionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "KnowledgeIndexView",
      "sdk_python": "cancel_knowledge_index",
      "sdk_typescript": "knowledgeIndexes.cancel",
      "sdk_java": "client.knowledgeIndexes.cancel",
      "request_schema": "IndexRevisionInput",
      "response_schema": "KnowledgeIndexView",
      "success_status": 200,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/knowledge-indexes/{index_id}/resume",
      "category": "canonical",
      "operation": "KnowledgeIndexesController.resume",
      "source": "backend/src/koinon/knowledge/indexes/controllers.py",
      "line": 168,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "index_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[IndexRevisionInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "IndexJobView",
      "sdk_python": "resume_knowledge_index",
      "sdk_typescript": "knowledgeIndexes.resume",
      "sdk_java": "client.knowledgeIndexes.resume",
      "request_schema": "IndexRevisionInput",
      "response_schema": "IndexJobView",
      "success_status": 202,
      "source_sha256": "290184a3a98ee053c685543baa405ab1b40071f064b1c4f9f6b7831ae4c9b014",
      "encoding": "application/json",
      "headers": [
        "Idempotency-Key (required; caller-supplied stable operation key)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/provenance",
      "category": "canonical",
      "operation": "TableProvenanceController.snapshot",
      "source": "backend/src/koinon/knowledge/provenance/controllers.py",
      "line": 19,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "snapshot_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "TableProvenance",
      "sdk_python": "table_provenance",
      "sdk_typescript": "dataset.tableProvenance",
      "sdk_java": "client.datasets.tableProvenance",
      "request_schema": null,
      "response_schema": "TableProvenance",
      "success_status": 200,
      "source_sha256": "d22e854a45df9bc2164d84e79cf21cc2661989d4114c6bfe6add1f1c877c2bd1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/snapshots",
      "category": "canonical",
      "operation": "TableProvenanceController.history",
      "source": "backend/src/koinon/knowledge/provenance/controllers.py",
      "line": 32,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "TableSnapshotPage",
      "sdk_python": "table_snapshots",
      "sdk_typescript": "dataset.tableSnapshots",
      "sdk_java": "client.datasets.tableSnapshots",
      "request_schema": null,
      "response_schema": "TableSnapshotPage",
      "success_status": 200,
      "source_sha256": "d22e854a45df9bc2164d84e79cf21cc2661989d4114c6bfe6add1f1c877c2bd1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/coordinates",
      "category": "canonical",
      "operation": "TableCoordinateController.manifest",
      "source": "backend/src/koinon/knowledge/provenance/coordinate_controllers.py",
      "line": 25,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "snapshot_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "TableCoordinateManifest",
      "sdk_python": "table_coordinates",
      "sdk_typescript": "dataset.tableCoordinates",
      "sdk_java": "client.datasets.tableCoordinates",
      "request_schema": null,
      "response_schema": "TableCoordinateManifest",
      "success_status": 200,
      "source_sha256": "d759c25229cdf4d1a0f99b628cd660604272935cddb743f5c3b86c5940ab9bc1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/coordinates/cells",
      "category": "canonical",
      "operation": "TableCoordinateController.cells",
      "source": "backend/src/koinon/knowledge/provenance/coordinate_controllers.py",
      "line": 38,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[CoordinateCellRequest]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "TableCoordinateSelection",
      "sdk_python": "table_coordinate_cells",
      "sdk_typescript": "dataset.tableCoordinateCells",
      "sdk_java": "client.datasets.tableCoordinateCells",
      "request_schema": "CoordinateCellRequest",
      "response_schema": "TableCoordinateSelection",
      "success_status": 200,
      "source_sha256": "d759c25229cdf4d1a0f99b628cd660604272935cddb743f5c3b86c5940ab9bc1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/coordinates/rows",
      "category": "canonical",
      "operation": "TableCoordinateController.rows",
      "source": "backend/src/koinon/knowledge/provenance/coordinate_controllers.py",
      "line": 51,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "snapshot_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "TableRowRangePage",
      "sdk_python": "table_coordinate_rows",
      "sdk_typescript": "dataset.tableCoordinateRows",
      "sdk_java": "client.datasets.tableCoordinateRows",
      "request_schema": null,
      "response_schema": "TableRowRangePage",
      "success_status": 200,
      "source_sha256": "d759c25229cdf4d1a0f99b628cd660604272935cddb743f5c3b86c5940ab9bc1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/datasets/{dataset_id}/tables/{table_id}/coordinates/columns",
      "category": "canonical",
      "operation": "TableCoordinateController.columns",
      "source": "backend/src/koinon/knowledge/provenance/coordinate_controllers.py",
      "line": 72,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "dataset_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "table_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "snapshot_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "TableColumnBindingPage",
      "sdk_python": "table_coordinate_columns",
      "sdk_typescript": "dataset.tableCoordinateColumns",
      "sdk_java": "client.datasets.tableCoordinateColumns",
      "request_schema": null,
      "response_schema": "TableColumnBindingPage",
      "success_status": 200,
      "source_sha256": "d759c25229cdf4d1a0f99b628cd660604272935cddb743f5c3b86c5940ab9bc1",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/mcp/connection",
      "category": "canonical",
      "operation": "McpConnectionController.get",
      "source": "backend/src/koinon/mcp/controllers.py",
      "line": 19,
      "parameters": [],
      "return_annotation": "McpConnectionDescriptor",
      "sdk_python": "mcp_connection",
      "sdk_typescript": "mcp.connection",
      "sdk_java": "client.mcp.connection",
      "request_schema": null,
      "response_schema": "McpConnectionDescriptor",
      "success_status": 200,
      "source_sha256": "4ea9c4cfedd5b8b4167702ff99c8b943543fd978320876451a4d4d9ed7c2261b",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/mcp/connection",
      "category": "canonical",
      "operation": "McpOrganizationConnectionController.get",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 37,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "organization_mcp_connection",
      "sdk_typescript": "mcp.organizationConnection",
      "sdk_java": "client.mcp.organizationConnection",
      "request_schema": null,
      "response_schema": "McpConnectionDescriptor",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients/readiness",
      "category": "canonical",
      "operation": "McpOAuthClientController.readiness",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 50,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "mcp_oauth_clients_readiness",
      "sdk_typescript": "mcpOAuthClients.readiness",
      "sdk_java": "client.mcpOAuthClients.readiness",
      "request_schema": null,
      "response_schema": "McpOAuthClientReadiness",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients",
      "category": "canonical",
      "operation": "McpOAuthClientController.page",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 54,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "name"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "asc"
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "mcp_oauth_clients",
      "sdk_typescript": "mcpOAuthClients.list",
      "sdk_java": "client.mcpOAuthClients.list",
      "request_schema": null,
      "response_schema": "McpOAuthClientPage",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients",
      "category": "canonical",
      "operation": "McpOAuthClientController.create",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 81,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[McpOAuthClientInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "create_mcp_oauth_client",
      "sdk_typescript": "mcpOAuthClients.create",
      "sdk_java": "client.mcpOAuthClients.create",
      "request_schema": "McpOAuthClientInput",
      "response_schema": "McpOAuthClientCredential",
      "success_status": 201,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients/{client_id}",
      "category": "canonical",
      "operation": "McpOAuthClientController.retrieve",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 93,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "client_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "mcp_oauth_client",
      "sdk_typescript": "mcpOAuthClients.get",
      "sdk_java": "client.mcpOAuthClients.get",
      "request_schema": null,
      "response_schema": "McpOAuthClient",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients/{client_id}",
      "category": "canonical",
      "operation": "McpOAuthClientController.update",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 102,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "client_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[McpOAuthClientPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "update_mcp_oauth_client",
      "sdk_typescript": "mcpOAuthClients.update",
      "sdk_java": "client.mcpOAuthClients.update",
      "request_schema": "McpOAuthClientPatch",
      "response_schema": "McpOAuthClient",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/mcp/oauth-clients/{client_id}/rotate-secret",
      "category": "canonical",
      "operation": "McpOAuthClientController.rotate_secret",
      "source": "backend/src/koinon/mcp_applications/controllers.py",
      "line": 119,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "client_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[McpOAuthClientRevision]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "rotate_mcp_oauth_client_secret",
      "sdk_typescript": "mcpOAuthClients.rotateSecret",
      "sdk_java": "client.mcpOAuthClients.rotateSecret",
      "request_schema": "McpOAuthClientRevision",
      "response_schema": "McpOAuthClientCredential",
      "success_status": 200,
      "source_sha256": "8fa73cf4654c35a103fc5fac6e6d24fad12d248d0e3e11330dd9ca50c2e6d0d0",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/branding/defaults",
      "category": "canonical",
      "operation": "BrandingDefaultsController.defaults",
      "source": "backend/src/koinon/organization_branding/controllers.py",
      "line": 24,
      "parameters": [],
      "return_annotation": "BrandingValues",
      "sdk_python": "branding_defaults",
      "sdk_typescript": "branding.defaults",
      "sdk_java": "client.brandingDefaults.defaults",
      "request_schema": null,
      "response_schema": "BrandingValues",
      "success_status": 200,
      "source_sha256": "be1fd620d2b3a519110890ca062bc4732527eec64b49598379c9f4cb37c97ded",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/branding",
      "category": "canonical",
      "operation": "OrganizationBrandingController.get",
      "source": "backend/src/koinon/organization_branding/controllers.py",
      "line": 35,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "OrganizationBranding",
      "sdk_python": "organization_branding",
      "sdk_typescript": "branding.get",
      "sdk_java": "client.organizationBranding.get",
      "request_schema": null,
      "response_schema": "OrganizationBranding",
      "success_status": 200,
      "source_sha256": "be1fd620d2b3a519110890ca062bc4732527eec64b49598379c9f4cb37c97ded",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/branding",
      "category": "canonical",
      "operation": "OrganizationBrandingController.update",
      "source": "backend/src/koinon/organization_branding/controllers.py",
      "line": 39,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationBrandingInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationBranding",
      "sdk_python": "update_organization_branding",
      "sdk_typescript": "branding.update",
      "sdk_java": "client.organizationBranding.update",
      "request_schema": "OrganizationBrandingInput",
      "response_schema": "OrganizationBranding",
      "success_status": 200,
      "source_sha256": "be1fd620d2b3a519110890ca062bc4732527eec64b49598379c9f4cb37c97ded",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/branding/reset",
      "category": "canonical",
      "operation": "OrganizationBrandingController.reset",
      "source": "backend/src/koinon/organization_branding/controllers.py",
      "line": 45,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[BrandingResetInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationBranding",
      "sdk_python": "reset_organization_branding",
      "sdk_typescript": "branding.reset",
      "sdk_java": "client.organizationBranding.reset",
      "request_schema": "BrandingResetInput",
      "response_schema": "OrganizationBranding",
      "success_status": 200,
      "source_sha256": "be1fd620d2b3a519110890ca062bc4732527eec64b49598379c9f4cb37c97ded",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/chat/settings",
      "category": "canonical",
      "operation": "OrganizationChatController.get",
      "source": "backend/src/koinon/organization_chat/controllers.py",
      "line": 19,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "project_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "organization_chat_settings",
      "sdk_typescript": "organizationChat.get",
      "sdk_java": "client.organizationChat.get",
      "request_schema": null,
      "response_schema": "OrganizationChatSettings",
      "success_status": 200,
      "source_sha256": "85ee10136705e0c3a79d462cf13e6a08780dd932672c1d7ca0fc551de4582695",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/chat/settings",
      "category": "canonical",
      "operation": "OrganizationChatController.update",
      "source": "backend/src/koinon/organization_chat/controllers.py",
      "line": 34,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationChatSettingsInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_organization_chat_settings",
      "sdk_typescript": "organizationChat.update",
      "sdk_java": "client.organizationChat.update",
      "request_schema": "OrganizationChatSettingsInput",
      "response_schema": "OrganizationChatSettings",
      "success_status": 200,
      "source_sha256": "85ee10136705e0c3a79d462cf13e6a08780dd932672c1d7ca0fc551de4582695",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/knowledge/settings",
      "category": "canonical",
      "operation": "OrganizationKnowledgeController.get",
      "source": "backend/src/koinon/organization_knowledge/controllers.py",
      "line": 22,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "OrganizationKnowledgeSettings",
      "sdk_python": "organization_knowledge_settings",
      "sdk_typescript": "organizationKnowledge.get",
      "sdk_java": "client.organizationKnowledge.get",
      "request_schema": null,
      "response_schema": "OrganizationKnowledgeSettings",
      "success_status": 200,
      "source_sha256": "9ab094768b9c3f891d2ae4a990e18e81df935c50b2a7a1a3fdf9aeb2c972247c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/knowledge/settings",
      "category": "canonical",
      "operation": "OrganizationKnowledgeController.update",
      "source": "backend/src/koinon/organization_knowledge/controllers.py",
      "line": 26,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationKnowledgeSettingsInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationKnowledgeSettings",
      "sdk_python": "update_organization_knowledge_settings",
      "sdk_typescript": "organizationKnowledge.update",
      "sdk_java": "client.organizationKnowledge.update",
      "request_schema": "OrganizationKnowledgeSettingsInput",
      "response_schema": "OrganizationKnowledgeSettings",
      "success_status": 200,
      "source_sha256": "9ab094768b9c3f891d2ae4a990e18e81df935c50b2a7a1a3fdf9aeb2c972247c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/me",
      "category": "canonical",
      "operation": "OrganizationPeopleController.self",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 50,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "OrganizationPerson",
      "sdk_python": "organization_person_self",
      "sdk_typescript": "organizationPeople.me",
      "sdk_java": "client.organizationPeople.me",
      "request_schema": null,
      "response_schema": "OrganizationPerson",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people",
      "category": "canonical",
      "operation": "OrganizationPeopleController.page",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 59,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "job_title",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "unit_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "department_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "manager_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "unassigned",
          "annotation": "QueryParam[bool]",
          "location": "query",
          "required": false,
          "default": false
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "OrganizationPersonPage",
      "sdk_python": "organization_people",
      "sdk_typescript": "organizationPeople.list",
      "sdk_java": "client.organizationPeople.list",
      "request_schema": null,
      "response_schema": "OrganizationPersonPage",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/organization/people",
      "category": "canonical",
      "operation": "OrganizationPeopleController.create",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 92,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationPersonCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationPerson",
      "sdk_python": "create_organization_person",
      "sdk_typescript": "organizationPeople.create",
      "sdk_java": "client.organizationPeople.create",
      "request_schema": "OrganizationPersonCreate",
      "response_schema": "OrganizationPerson",
      "success_status": 201,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/{person_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.get",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 103,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "person_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "OrganizationPerson",
      "sdk_python": "organization_person",
      "sdk_typescript": "organizationPeople.get",
      "sdk_java": "client.organizationPeople.get",
      "request_schema": null,
      "response_schema": "OrganizationPerson",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/{person_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.update",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 124,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "person_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationPersonPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationPerson",
      "sdk_python": "update_organization_person",
      "sdk_typescript": "organizationPeople.update",
      "sdk_java": "client.organizationPeople.update",
      "request_schema": "OrganizationPersonPatch",
      "response_schema": "OrganizationPerson",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/{person_id}/avatar",
      "category": "canonical",
      "operation": "OrganizationPeopleController.avatar",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 139,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "person_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "organization_person_avatar",
      "sdk_typescript": "organizationPeople.avatar",
      "sdk_java": "client.organizationPeople.avatar",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "binary",
      "headers": [
        "If-None-Match (optional; avatars only)"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/people/{person_id}/reports",
      "category": "canonical",
      "operation": "OrganizationPeopleController.reports",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 155,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "person_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "OrganizationPersonPage",
      "sdk_python": "organization_person_reports",
      "sdk_typescript": "organizationPeople.reports",
      "sdk_java": "client.organizationPeople.reports",
      "request_schema": null,
      "response_schema": "OrganizationPersonPage",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/units",
      "category": "canonical",
      "operation": "OrganizationPeopleController.units",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 177,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "parent_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "OrganizationUnitPage",
      "sdk_python": "organization_units",
      "sdk_typescript": "organizationPeople.units",
      "sdk_java": "client.organizationPeople.units",
      "request_schema": null,
      "response_schema": "OrganizationUnitPage",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/organization/units",
      "category": "canonical",
      "operation": "OrganizationPeopleController.create_unit",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 198,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationUnitInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationUnit",
      "sdk_python": "create_organization_unit",
      "sdk_typescript": "organizationPeople.createUnit",
      "sdk_java": "client.organizationPeople.createUnit",
      "request_schema": "OrganizationUnitInput",
      "response_schema": "OrganizationUnit",
      "success_status": 201,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/organization/units/{unit_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.update_unit",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 206,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "unit_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationUnitPatch]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationUnit",
      "sdk_python": "update_organization_unit",
      "sdk_typescript": "organizationPeople.updateUnit",
      "sdk_java": "client.organizationPeople.updateUnit",
      "request_schema": "OrganizationUnitPatch",
      "response_schema": "OrganizationUnit",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/organization/units/{unit_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.delete_unit",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 218,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "unit_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "expected_revision",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "delete_organization_unit",
      "sdk_typescript": "organizationPeople.deleteUnit",
      "sdk_java": "client.organizationPeople.deleteUnit",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/directory-settings",
      "category": "canonical",
      "operation": "OrganizationPeopleController.settings",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 233,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "OrganizationDirectorySettings",
      "sdk_python": "organization_directory_settings",
      "sdk_typescript": "organizationPeople.settings",
      "sdk_java": "client.organizationPeople.settings",
      "request_schema": null,
      "response_schema": "OrganizationDirectorySettings",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/tenants/{tenant_id}/organization/directory-settings",
      "category": "canonical",
      "operation": "OrganizationPeopleController.update_settings",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 237,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationDirectorySettingsInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationDirectorySettings",
      "sdk_python": "update_organization_directory_settings",
      "sdk_typescript": "organizationPeople.updateSettings",
      "sdk_java": "client.organizationPeople.updateSettings",
      "request_schema": "OrganizationDirectorySettingsInput",
      "response_schema": "OrganizationDirectorySettings",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/organization/profile-mappings/{provider_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.mapping",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 245,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "OrganizationProfileMapping",
      "sdk_python": "organization_profile_mapping",
      "sdk_typescript": "organizationPeople.mapping",
      "sdk_java": "client.organizationPeople.mapping",
      "request_schema": null,
      "response_schema": "OrganizationProfileMapping",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PUT",
      "path": "/api/v1/tenants/{tenant_id}/organization/profile-mappings/{provider_id}",
      "category": "canonical",
      "operation": "OrganizationPeopleController.update_mapping",
      "source": "backend/src/koinon/organization_people/controllers.py",
      "line": 251,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "provider_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[OrganizationProfileMappingInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "OrganizationProfileMapping",
      "sdk_python": "update_organization_profile_mapping",
      "sdk_typescript": "organizationPeople.updateMapping",
      "sdk_java": "client.organizationPeople.updateMapping",
      "request_schema": "OrganizationProfileMappingInput",
      "response_schema": "OrganizationProfileMapping",
      "success_status": 200,
      "source_sha256": "150f5e13f65b285e533a7da858a36cc3c0d15e75155835c89cf0d640af08f67c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/platform/health",
      "category": "canonical",
      "operation": "PlatformController.health",
      "source": "backend/src/koinon/platform/controllers.py",
      "line": 21,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "PlatformHealth",
      "sdk_python": "platform_health",
      "sdk_typescript": "platformHealth.health",
      "sdk_java": "client.platformHealth.health",
      "request_schema": null,
      "response_schema": "PlatformHealth",
      "success_status": 200,
      "source_sha256": "4a8fe2e5e463308ec9bab9e6658e5ac30d0dfdd162371651e58ef590f6fc16e4",
      "sdk_typescript_factory": "createPlatformHealthApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/platform-health",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/platform/system-information",
      "category": "canonical",
      "operation": "PlatformController.system_information",
      "source": "backend/src/koinon/platform/controllers.py",
      "line": 25,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "SystemInformation",
      "sdk_python": "system_information",
      "sdk_typescript": "platformHealth.systemInformation",
      "sdk_java": "client.platformHealth.systemInformation",
      "request_schema": null,
      "response_schema": "SystemInformation",
      "success_status": 200,
      "source_sha256": "4a8fe2e5e463308ec9bab9e6658e5ac30d0dfdd162371651e58ef590f6fc16e4",
      "sdk_typescript_factory": "createPlatformHealthApi",
      "sdk_typescript_module": "@fireflyframework/koinon-sdk/platform-health",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/profile",
      "category": "canonical",
      "operation": "ProfileController.get",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 50,
      "parameters": [],
      "return_annotation": "dict",
      "sdk_python": "profile",
      "sdk_typescript": "profile.get",
      "sdk_java": "client.profile.get",
      "request_schema": null,
      "response_schema": "UserProfile",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "PATCH",
      "path": "/api/v1/profile",
      "category": "canonical",
      "operation": "ProfileController.update",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 56,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[ProfileInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "update_profile",
      "sdk_typescript": "profile.update",
      "sdk_java": "client.profile.update",
      "request_schema": "ProfileUpdate",
      "response_schema": "UserProfile",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/profile/avatar",
      "category": "canonical",
      "operation": "ProfileController.avatar",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 66,
      "parameters": [],
      "return_annotation": "Response",
      "sdk_python": "avatar_download",
      "sdk_typescript": "profile.avatarDownload",
      "sdk_java": "client.profile.avatar",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "binary",
      "headers": [
        "If-None-Match (optional; avatars only)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/profile/avatar",
      "category": "canonical",
      "operation": "ProfileController.set_avatar",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 71,
      "parameters": [],
      "return_annotation": "dict",
      "sdk_python": "set_avatar",
      "sdk_typescript": "profile.uploadAvatar",
      "sdk_java": "client.profile.uploadAvatar",
      "request_schema": "AvatarUpload",
      "response_schema": "UserProfile",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "image/png|image/jpeg|image/webp",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/profile/avatar",
      "category": "canonical",
      "operation": "ProfileController.delete_avatar",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 88,
      "parameters": [],
      "return_annotation": "dict",
      "sdk_python": "delete_avatar",
      "sdk_typescript": "profile.deleteAvatar",
      "sdk_java": "client.profile.deleteAvatar",
      "request_schema": null,
      "response_schema": "UserProfile",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/people",
      "category": "canonical",
      "operation": "ProfileController.people",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 93,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "limit",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 20
        },
        {
          "name": "after",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "people",
      "sdk_typescript": "people.list",
      "sdk_java": "client.people.list",
      "request_schema": null,
      "response_schema": "Page[Person]",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/people/{profile_id}/avatar",
      "category": "canonical",
      "operation": "ProfileController.person_avatar",
      "source": "backend/src/koinon/profiles/controllers.py",
      "line": 111,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "profile_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "person_avatar",
      "sdk_typescript": "people.avatar",
      "sdk_java": "client.people.avatar",
      "request_schema": null,
      "response_schema": "BinaryDownload",
      "success_status": 200,
      "source_sha256": "74816fab8584769adae9d70e8c75eebe84ec4bd9968cbdfb49f281542c651d94",
      "encoding": "binary",
      "headers": [
        "If-None-Match (optional; avatars only)"
      ]
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/shares/reviews",
      "category": "canonical",
      "operation": "ShareController.review",
      "source": "backend/src/koinon/sharing/controllers.py",
      "line": 32,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ShareReviewInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "review_share",
      "sdk_typescript": "shares.review",
      "sdk_java": "client.shares.review",
      "request_schema": "ShareReviewInput",
      "response_schema": "ShareReview",
      "success_status": 201,
      "source_sha256": "21b4c891e79bd778f6cda460b19de0604c65905193342c0e16918bc700d95213",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tenants/{tenant_id}/shares",
      "category": "canonical",
      "operation": "ShareController.create",
      "source": "backend/src/koinon/sharing/controllers.py",
      "line": 40,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "body",
          "annotation": "Valid[Body[ShareCreate]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "create_share",
      "sdk_typescript": "shares.create",
      "sdk_java": "client.shares.create",
      "request_schema": "ShareCreate",
      "response_schema": "Share",
      "success_status": 201,
      "source_sha256": "21b4c891e79bd778f6cda460b19de0604c65905193342c0e16918bc700d95213",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/shares",
      "category": "canonical",
      "operation": "ShareController.list",
      "source": "backend/src/koinon/sharing/controllers.py",
      "line": 48,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        }
      ],
      "return_annotation": "JSONResponse",
      "sdk_python": "shares",
      "sdk_typescript": "shares.list",
      "sdk_java": "client.shares.list",
      "request_schema": null,
      "response_schema": "SharePage",
      "success_status": 200,
      "source_sha256": "21b4c891e79bd778f6cda460b19de0604c65905193342c0e16918bc700d95213",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tenants/{tenant_id}/shares/{share_id}",
      "category": "canonical",
      "operation": "ShareController.get",
      "source": "backend/src/koinon/sharing/controllers.py",
      "line": 69,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "share_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "Response",
      "sdk_python": "share",
      "sdk_typescript": "shares.get",
      "sdk_java": "client.shares.get",
      "request_schema": null,
      "response_schema": "SharedConversation",
      "success_status": 200,
      "source_sha256": "21b4c891e79bd778f6cda460b19de0604c65905193342c0e16918bc700d95213",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tenants/{tenant_id}/shares/{share_id}",
      "category": "canonical",
      "operation": "ShareController.revoke",
      "source": "backend/src/koinon/sharing/controllers.py",
      "line": 81,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        },
        {
          "name": "share_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": "None",
      "sdk_python": "revoke_share",
      "sdk_typescript": "shares.revoke",
      "sdk_java": "client.shares.revoke",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "21b4c891e79bd778f6cda460b19de0604c65905193342c0e16918bc700d95213",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tokens",
      "category": "canonical",
      "operation": "PersonalTokenController.list",
      "source": "backend/src/koinon/tokens/controllers.py",
      "line": 38,
      "parameters": [
        {
          "name": "q",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": ""
        },
        {
          "name": "status",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "all"
        },
        {
          "name": "page",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 1
        },
        {
          "name": "page_size",
          "annotation": "QueryParam[int]",
          "location": "query",
          "required": false,
          "default": 25
        },
        {
          "name": "sort",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "created_at"
        },
        {
          "name": "order",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": false,
          "default": "desc"
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "tokens",
      "sdk_typescript": "tokens.list",
      "sdk_java": "client.tokens.list",
      "request_schema": null,
      "response_schema": "Page[PersonalToken]",
      "success_status": 200,
      "source_sha256": "28820a6b2d6d8ac06c34dfc982ae8156a1e15091279ab5a60fb225d039ca242c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/tokens/scopes",
      "category": "canonical",
      "operation": "PersonalTokenController.scopes",
      "source": "backend/src/koinon/tokens/controllers.py",
      "line": 59,
      "parameters": [
        {
          "name": "tenant_id",
          "annotation": "QueryParam[str]",
          "location": "query",
          "required": true
        },
        {
          "name": "workspace_id",
          "annotation": "QueryParam[str | None]",
          "location": "query",
          "required": false,
          "default": null
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "token_scopes",
      "sdk_typescript": "tokens.scopes",
      "sdk_java": "client.tokens.scopes",
      "request_schema": null,
      "response_schema": "TokenScopeOptions",
      "success_status": 200,
      "source_sha256": "28820a6b2d6d8ac06c34dfc982ae8156a1e15091279ab5a60fb225d039ca242c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "POST",
      "path": "/api/v1/tokens",
      "category": "canonical",
      "operation": "PersonalTokenController.create",
      "source": "backend/src/koinon/tokens/controllers.py",
      "line": 65,
      "parameters": [
        {
          "name": "body",
          "annotation": "Valid[Body[TokenInput]]",
          "location": "body",
          "required": true
        }
      ],
      "return_annotation": "dict",
      "sdk_python": "create_token",
      "sdk_typescript": "tokens.create",
      "sdk_java": "client.tokens.create",
      "request_schema": "TokenInput",
      "response_schema": "TokenCreated",
      "success_status": 201,
      "source_sha256": "28820a6b2d6d8ac06c34dfc982ae8156a1e15091279ab5a60fb225d039ca242c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "DELETE",
      "path": "/api/v1/tokens/{token_id}",
      "category": "canonical",
      "operation": "PersonalTokenController.revoke",
      "source": "backend/src/koinon/tokens/controllers.py",
      "line": 69,
      "parameters": [
        {
          "name": "token_id",
          "annotation": "PathVar[str]",
          "location": "path",
          "required": true
        }
      ],
      "return_annotation": null,
      "sdk_python": "revoke_token",
      "sdk_typescript": "tokens.revoke",
      "sdk_java": "client.tokens.revoke",
      "request_schema": null,
      "response_schema": "void",
      "success_status": 204,
      "source_sha256": "28820a6b2d6d8ac06c34dfc982ae8156a1e15091279ab5a60fb225d039ca242c",
      "encoding": "application/json",
      "headers": []
    },
    {
      "method": "GET",
      "path": "/api/v1/capabilities",
      "category": "canonical",
      "operation": "CapabilitiesController.capabilities",
      "source": "backend/src/koinon/web/capabilities.py",
      "line": 63,
      "parameters": [],
      "return_annotation": "dict",
      "sdk_python": "capabilities",
      "sdk_typescript": "capabilities",
      "sdk_java": "client.platform.capabilities",
      "request_schema": null,
      "response_schema": "Capabilities",
      "success_status": 200,
      "source_sha256": "3c8051cd80906123158f3e871146c217d2e1b7cbbdff3f5f5a7cc9c069c257f6",
      "encoding": "application/json",
      "headers": []
    }
  ]
}
