gatewaysdk 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. gatewaysdk/__init__.py +540 -0
  2. gatewaysdk/adapter/__init__.py +15 -0
  3. gatewaysdk/adapter/base.py +94 -0
  4. gatewaysdk/adapter/messages.py +270 -0
  5. gatewaysdk/adapter/triplet.py +1026 -0
  6. gatewaysdk/algorithm/__init__.py +39 -0
  7. gatewaysdk/algorithm/apo/__init__.py +5 -0
  8. gatewaysdk/algorithm/apo/apo.py +898 -0
  9. gatewaysdk/algorithm/apo/prompts/apply_edit_variant01.poml +22 -0
  10. gatewaysdk/algorithm/apo/prompts/apply_edit_variant02.poml +18 -0
  11. gatewaysdk/algorithm/apo/prompts/text_gradient_variant01.poml +18 -0
  12. gatewaysdk/algorithm/apo/prompts/text_gradient_variant02.poml +16 -0
  13. gatewaysdk/algorithm/apo/prompts/text_gradient_variant03.poml +107 -0
  14. gatewaysdk/algorithm/base.py +262 -0
  15. gatewaysdk/algorithm/decorator.py +264 -0
  16. gatewaysdk/algorithm/evals/__init__.py +7 -0
  17. gatewaysdk/algorithm/evals/evals.py +217 -0
  18. gatewaysdk/algorithm/fast.py +250 -0
  19. gatewaysdk/algorithm/gepa/__init__.py +61 -0
  20. gatewaysdk/algorithm/gepa/adapter.py +495 -0
  21. gatewaysdk/algorithm/gepa/gepa.py +570 -0
  22. gatewaysdk/algorithm/gepa/lib/__init__.py +18 -0
  23. gatewaysdk/algorithm/gepa/lib/adapters/README.md +12 -0
  24. gatewaysdk/algorithm/gepa/lib/adapters/__init__.py +0 -0
  25. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/README.md +341 -0
  26. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/__init__.py +1 -0
  27. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/anymaths_adapter.py +174 -0
  28. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/requirements.txt +1 -0
  29. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/README.md +0 -0
  30. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/__init__.py +0 -0
  31. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/default_adapter.py +209 -0
  32. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/README.md +7 -0
  33. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/__init__.py +0 -0
  34. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/dspy_adapter.py +307 -0
  35. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/README.md +99 -0
  36. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py +137 -0
  37. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/full_program_adapter.py +268 -0
  38. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/GEPA_RAG.md +621 -0
  39. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/__init__.py +56 -0
  40. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/evaluation_metrics.py +226 -0
  41. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/generic_rag_adapter.py +496 -0
  42. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/rag_pipeline.py +238 -0
  43. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_store_interface.py +212 -0
  44. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/__init__.py +2 -0
  45. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/chroma_store.py +196 -0
  46. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/lancedb_store.py +422 -0
  47. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/milvus_store.py +409 -0
  48. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/qdrant_store.py +368 -0
  49. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/weaviate_store.py +418 -0
  50. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/README.md +552 -0
  51. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/__init__.py +37 -0
  52. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_adapter.py +699 -0
  53. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_client.py +364 -0
  54. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/README.md +9 -0
  55. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/__init__.py +0 -0
  56. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/terminal_bench_adapter.py +217 -0
  57. gatewaysdk/algorithm/gepa/lib/api.py +382 -0
  58. gatewaysdk/algorithm/gepa/lib/core/__init__.py +0 -0
  59. gatewaysdk/algorithm/gepa/lib/core/adapter.py +180 -0
  60. gatewaysdk/algorithm/gepa/lib/core/data_loader.py +74 -0
  61. gatewaysdk/algorithm/gepa/lib/core/engine.py +379 -0
  62. gatewaysdk/algorithm/gepa/lib/core/result.py +233 -0
  63. gatewaysdk/algorithm/gepa/lib/core/state.py +636 -0
  64. gatewaysdk/algorithm/gepa/lib/examples/__init__.py +0 -0
  65. gatewaysdk/algorithm/gepa/lib/examples/aime.py +24 -0
  66. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/eval_default.py +111 -0
  67. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/instruction_prompt.txt +9 -0
  68. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/optimal_prompt.txt +24 -0
  69. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/train_anymaths.py +177 -0
  70. gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/arc_agi.ipynb +25705 -0
  71. gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/example.ipynb +348 -0
  72. gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/__init__.py +4 -0
  73. gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/mcp_optimization_example.py +456 -0
  74. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/RAG_GUIDE.md +613 -0
  75. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/__init__.py +9 -0
  76. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/rag_optimization.py +820 -0
  77. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/requirements-rag.txt +29 -0
  78. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/instruction_prompt.txt +16 -0
  79. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/terminus.txt +9 -0
  80. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/train_terminus.py +161 -0
  81. gatewaysdk/algorithm/gepa/lib/gepa_utils.py +117 -0
  82. gatewaysdk/algorithm/gepa/lib/logging/__init__.py +0 -0
  83. gatewaysdk/algorithm/gepa/lib/logging/experiment_tracker.py +187 -0
  84. gatewaysdk/algorithm/gepa/lib/logging/logger.py +75 -0
  85. gatewaysdk/algorithm/gepa/lib/logging/utils.py +103 -0
  86. gatewaysdk/algorithm/gepa/lib/proposer/__init__.py +0 -0
  87. gatewaysdk/algorithm/gepa/lib/proposer/base.py +31 -0
  88. gatewaysdk/algorithm/gepa/lib/proposer/merge.py +357 -0
  89. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/__init__.py +0 -0
  90. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/base.py +49 -0
  91. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/reflective_mutation.py +176 -0
  92. gatewaysdk/algorithm/gepa/lib/py.typed +0 -0
  93. gatewaysdk/algorithm/gepa/lib/strategies/__init__.py +0 -0
  94. gatewaysdk/algorithm/gepa/lib/strategies/batch_sampler.py +77 -0
  95. gatewaysdk/algorithm/gepa/lib/strategies/candidate_selector.py +50 -0
  96. gatewaysdk/algorithm/gepa/lib/strategies/component_selector.py +36 -0
  97. gatewaysdk/algorithm/gepa/lib/strategies/eval_policy.py +64 -0
  98. gatewaysdk/algorithm/gepa/lib/strategies/instruction_proposal.py +126 -0
  99. gatewaysdk/algorithm/gepa/lib/utils/__init__.py +10 -0
  100. gatewaysdk/algorithm/gepa/lib/utils/stop_condition.py +196 -0
  101. gatewaysdk/algorithm/gepa/tracing.py +105 -0
  102. gatewaysdk/algorithm/utils.py +177 -0
  103. gatewaysdk/algorithm/verl/__init__.py +5 -0
  104. gatewaysdk/algorithm/verl/interface.py +202 -0
  105. gatewaysdk/automations.py +111 -0
  106. gatewaysdk/benchmark_hub/README.md +88 -0
  107. gatewaysdk/benchmark_hub/__init__.py +119 -0
  108. gatewaysdk/benchmark_hub/_archive.py +189 -0
  109. gatewaysdk/benchmark_hub/_tar.py +6 -0
  110. gatewaysdk/benchmark_hub/client.py +992 -0
  111. gatewaysdk/benchmark_hub/dispatch_shard.py +34 -0
  112. gatewaysdk/benchmark_hub/eval_config.py +20 -0
  113. gatewaysdk/benchmark_hub/evals.py +351 -0
  114. gatewaysdk/benchmark_hub/harbor_adapter.py +673 -0
  115. gatewaysdk/benchmark_hub/path_utils.py +81 -0
  116. gatewaysdk/benchmark_hub/save_utils.py +101 -0
  117. gatewaysdk/benchmark_hub/verifiers_adapter.py +327 -0
  118. gatewaysdk/benchmark_hub/versioning.py +72 -0
  119. gatewaysdk/build.py +515 -0
  120. gatewaysdk/cli/__init__.py +58 -0
  121. gatewaysdk/cli/agent_runner.py +132 -0
  122. gatewaysdk/cli/http_client.py +115 -0
  123. gatewaysdk/cli/platform.py +4086 -0
  124. gatewaysdk/cli/prometheus.py +115 -0
  125. gatewaysdk/cli/release_gate.py +215 -0
  126. gatewaysdk/cli/store.py +131 -0
  127. gatewaysdk/cli/vllm.py +29 -0
  128. gatewaysdk/client.py +406 -0
  129. gatewaysdk/config.py +348 -0
  130. gatewaysdk/connectors/__init__.py +25 -0
  131. gatewaysdk/connectors/client.py +203 -0
  132. gatewaysdk/connectors/skill.py +25 -0
  133. gatewaysdk/connectors/template.py +106 -0
  134. gatewaysdk/context.py +606 -0
  135. gatewaysdk/emitter/__init__.py +43 -0
  136. gatewaysdk/emitter/annotation.py +370 -0
  137. gatewaysdk/emitter/exception.py +54 -0
  138. gatewaysdk/emitter/message.py +61 -0
  139. gatewaysdk/emitter/object.py +117 -0
  140. gatewaysdk/emitter/reward.py +320 -0
  141. gatewaysdk/env_var.py +156 -0
  142. gatewaysdk/environment/__init__.py +108 -0
  143. gatewaysdk/environment/_bundle.py +281 -0
  144. gatewaysdk/environment/_harbor.py +276 -0
  145. gatewaysdk/environment/_materialize.py +97 -0
  146. gatewaysdk/environment/_tar.py +33 -0
  147. gatewaysdk/environment/_world.py +346 -0
  148. gatewaysdk/environment/core.py +527 -0
  149. gatewaysdk/environment/errors.py +58 -0
  150. gatewaysdk/environment/runtime.py +150 -0
  151. gatewaysdk/environment/schema/__init__.py +35 -0
  152. gatewaysdk/environment/schema/__main__.py +225 -0
  153. gatewaysdk/environment/schema/_slack_fidelity.py +116 -0
  154. gatewaysdk/environment/schema/_slack_scenario.py +183 -0
  155. gatewaysdk/environment/schema/api.py +1628 -0
  156. gatewaysdk/environment/schema/batch.py +755 -0
  157. gatewaysdk/environment/schema/compiler.py +615 -0
  158. gatewaysdk/environment/schema/conform.py +428 -0
  159. gatewaysdk/environment/schema/connector.py +777 -0
  160. gatewaysdk/environment/schema/connectors/apple-business-manager/handlers.py +17 -0
  161. gatewaysdk/environment/schema/connectors/apple-business-manager/parity.json +28 -0
  162. gatewaysdk/environment/schema/connectors/apple-business-manager/provenance.json +233 -0
  163. gatewaysdk/environment/schema/connectors/apple-business-manager/scope.toml +112 -0
  164. gatewaysdk/environment/schema/connectors/apple-business-manager/world.json +1380 -0
  165. gatewaysdk/environment/schema/connectors/base.json +28 -0
  166. gatewaysdk/environment/schema/connectors/custom/handlers.py +18 -0
  167. gatewaysdk/environment/schema/connectors/custom/world.json +123 -0
  168. gatewaysdk/environment/schema/connectors/github/handlers.py +81 -0
  169. gatewaysdk/environment/schema/connectors/github/parity.json +37 -0
  170. gatewaysdk/environment/schema/connectors/github/provenance.json +134 -0
  171. gatewaysdk/environment/schema/connectors/github/scope.toml +158 -0
  172. gatewaysdk/environment/schema/connectors/github/world.json +5869 -0
  173. gatewaysdk/environment/schema/connectors/google-calendar/handlers.py +23 -0
  174. gatewaysdk/environment/schema/connectors/google-calendar/world.json +209 -0
  175. gatewaysdk/environment/schema/connectors/google-drive/handlers.py +18 -0
  176. gatewaysdk/environment/schema/connectors/google-drive/world.json +286 -0
  177. gatewaysdk/environment/schema/connectors/jamf/handlers.py +34 -0
  178. gatewaysdk/environment/schema/connectors/jamf/parity.json +49 -0
  179. gatewaysdk/environment/schema/connectors/jamf/provenance.json +181 -0
  180. gatewaysdk/environment/schema/connectors/jamf/scope.toml +128 -0
  181. gatewaysdk/environment/schema/connectors/jamf/world.json +2218 -0
  182. gatewaysdk/environment/schema/connectors/jira/handlers.py +28 -0
  183. gatewaysdk/environment/schema/connectors/jira/world.json +389 -0
  184. gatewaysdk/environment/schema/connectors/kandji/handlers.py +38 -0
  185. gatewaysdk/environment/schema/connectors/kandji/parity.json +29 -0
  186. gatewaysdk/environment/schema/connectors/kandji/provenance.json +152 -0
  187. gatewaysdk/environment/schema/connectors/kandji/scope.toml +120 -0
  188. gatewaysdk/environment/schema/connectors/kandji/world.json +765 -0
  189. gatewaysdk/environment/schema/connectors/linear/handlers.py +20 -0
  190. gatewaysdk/environment/schema/connectors/linear/world.json +363 -0
  191. gatewaysdk/environment/schema/connectors/microsoft-teams/fidelity.json +45 -0
  192. gatewaysdk/environment/schema/connectors/microsoft-teams/handlers.py +1 -0
  193. gatewaysdk/environment/schema/connectors/microsoft-teams/provenance.json +851 -0
  194. gatewaysdk/environment/schema/connectors/microsoft-teams/scope.md +231 -0
  195. gatewaysdk/environment/schema/connectors/microsoft-teams/teams-types.json +1710 -0
  196. gatewaysdk/environment/schema/connectors/microsoft-teams/world.json +858 -0
  197. gatewaysdk/environment/schema/connectors/netsuite/handlers.py +32 -0
  198. gatewaysdk/environment/schema/connectors/netsuite/parity.json +50 -0
  199. gatewaysdk/environment/schema/connectors/netsuite/provenance.json +137 -0
  200. gatewaysdk/environment/schema/connectors/netsuite/scope.toml +78 -0
  201. gatewaysdk/environment/schema/connectors/netsuite/world.json +16243 -0
  202. gatewaysdk/environment/schema/connectors/salesforce/handlers.py +806 -0
  203. gatewaysdk/environment/schema/connectors/salesforce/parity.json +46 -0
  204. gatewaysdk/environment/schema/connectors/salesforce/provenance.json +143 -0
  205. gatewaysdk/environment/schema/connectors/salesforce/scope.toml +174 -0
  206. gatewaysdk/environment/schema/connectors/salesforce/world.json +4695 -0
  207. gatewaysdk/environment/schema/connectors/slack/MODEL.md +236 -0
  208. gatewaysdk/environment/schema/connectors/slack/capabilities.json +1039 -0
  209. gatewaysdk/environment/schema/connectors/slack/handlers.py +762 -0
  210. gatewaysdk/environment/schema/connectors/slack/parity.json +65 -0
  211. gatewaysdk/environment/schema/connectors/slack/provenance.json +294 -0
  212. gatewaysdk/environment/schema/connectors/slack/scope.toml +44 -0
  213. gatewaysdk/environment/schema/connectors/slack/world.json +4993 -0
  214. gatewaysdk/environment/schema/connectors/workday/handlers.py +75 -0
  215. gatewaysdk/environment/schema/connectors/workday/parity.json +36 -0
  216. gatewaysdk/environment/schema/connectors/workday/provenance.json +179 -0
  217. gatewaysdk/environment/schema/connectors/workday/scope.toml +180 -0
  218. gatewaysdk/environment/schema/connectors/workday/world.json +806 -0
  219. gatewaysdk/environment/schema/data.py +593 -0
  220. gatewaysdk/environment/schema/extract.py +263 -0
  221. gatewaysdk/environment/schema/host.py +2437 -0
  222. gatewaysdk/environment/schema/host_surfaces.py +275 -0
  223. gatewaysdk/environment/schema/platform.py +1272 -0
  224. gatewaysdk/environment/schema/scaffold.py +250 -0
  225. gatewaysdk/environment/schema/skill.py +118 -0
  226. gatewaysdk/environment/schema/skills/agents/connector-template-author.md +202 -0
  227. gatewaysdk/environment/schema/skills/connector-schema-authoring/CONNECTORS.md +331 -0
  228. gatewaysdk/environment/schema/skills/connector-schema-authoring/CONVENTIONS.md +100 -0
  229. gatewaysdk/environment/schema/skills/connector-schema-authoring/SKILL.md +313 -0
  230. gatewaysdk/environment/schema/skills/world-data-ingestion/ROWS.md +223 -0
  231. gatewaysdk/environment/schema/skills/world-data-ingestion/SKILL.md +293 -0
  232. gatewaysdk/environment/schema/skills/worlds-getting-started/SKILL.md +390 -0
  233. gatewaysdk/environment/schema/slack.py +757 -0
  234. gatewaysdk/environment/schema/snapshot.py +479 -0
  235. gatewaysdk/environment/schema/store.py +904 -0
  236. gatewaysdk/environment/schema/tasks.py +525 -0
  237. gatewaysdk/environment/schema/tools_world.py +322 -0
  238. gatewaysdk/environment/schema/validation.py +577 -0
  239. gatewaysdk/environment/schema/worker.py +78 -0
  240. gatewaysdk/environment/schema/workers.py +500 -0
  241. gatewaysdk/environment/schema/world_tests.py +336 -0
  242. gatewaysdk/environments/__init__.py +24 -0
  243. gatewaysdk/environments/client.py +486 -0
  244. gatewaysdk/environments/types.py +318 -0
  245. gatewaysdk/execution/__init__.py +15 -0
  246. gatewaysdk/execution/base.py +64 -0
  247. gatewaysdk/execution/client_server.py +443 -0
  248. gatewaysdk/execution/events.py +69 -0
  249. gatewaysdk/execution/inter_process.py +16 -0
  250. gatewaysdk/execution/shared_memory.py +282 -0
  251. gatewaysdk/experiments/__init__.py +90 -0
  252. gatewaysdk/experiments/assignment.py +177 -0
  253. gatewaysdk/experiments/client.py +877 -0
  254. gatewaysdk/experiments/exposure.py +222 -0
  255. gatewaysdk/experiments/types.py +81 -0
  256. gatewaysdk/importers/__init__.py +49 -0
  257. gatewaysdk/importers/_normalize.py +91 -0
  258. gatewaysdk/importers/builder.py +173 -0
  259. gatewaysdk/importers/client.py +95 -0
  260. gatewaysdk/importers/langsmith.py +196 -0
  261. gatewaysdk/importers/recipes.py +249 -0
  262. gatewaysdk/instrumentation/__init__.py +300 -0
  263. gatewaysdk/instrumentation/agentops.py +314 -0
  264. gatewaysdk/instrumentation/agentops_langchain.py +45 -0
  265. gatewaysdk/instrumentation/base.py +119 -0
  266. gatewaysdk/instrumentation/litellm.py +83 -0
  267. gatewaysdk/instrumentation/registry.py +273 -0
  268. gatewaysdk/instrumentation/vllm.py +81 -0
  269. gatewaysdk/instrumentation/weave.py +500 -0
  270. gatewaysdk/integrations/__init__.py +15 -0
  271. gatewaysdk/integrations/gateway/__init__.py +11 -0
  272. gatewaysdk/integrations/gateway/client.py +171 -0
  273. gatewaysdk/integrations/tool_access.py +549 -0
  274. gatewaysdk/litagent/__init__.py +11 -0
  275. gatewaysdk/litagent/decorator.py +536 -0
  276. gatewaysdk/litagent/litagent.py +252 -0
  277. gatewaysdk/llm_proxy.py +1742 -0
  278. gatewaysdk/logging.py +370 -0
  279. gatewaysdk/memory.py +278 -0
  280. gatewaysdk/personas.py +186 -0
  281. gatewaysdk/platform/__init__.py +17 -0
  282. gatewaysdk/platform/builder.py +221 -0
  283. gatewaysdk/platform/compatibility.py +67 -0
  284. gatewaysdk/platform/manifest.py +185 -0
  285. gatewaysdk/platform/orchestrator.py +901 -0
  286. gatewaysdk/platform/registry.py +122 -0
  287. gatewaysdk/platform/worker.py +864 -0
  288. gatewaysdk/replay/__init__.py +1032 -0
  289. gatewaysdk/replay/pytest.py +56 -0
  290. gatewaysdk/reward.py +7 -0
  291. gatewaysdk/run.py +1781 -0
  292. gatewaysdk/runner/__init__.py +11 -0
  293. gatewaysdk/runner/agent.py +878 -0
  294. gatewaysdk/runner/base.py +182 -0
  295. gatewaysdk/runner/legacy.py +309 -0
  296. gatewaysdk/security.py +700 -0
  297. gatewaysdk/semconv.py +170 -0
  298. gatewaysdk/server.py +399 -0
  299. gatewaysdk/sessions.py +282 -0
  300. gatewaysdk/store/__init__.py +45 -0
  301. gatewaysdk/store/base.py +908 -0
  302. gatewaysdk/store/client_server.py +2093 -0
  303. gatewaysdk/store/collection/__init__.py +30 -0
  304. gatewaysdk/store/collection/base.py +587 -0
  305. gatewaysdk/store/collection/memory.py +970 -0
  306. gatewaysdk/store/collection/mongo.py +1412 -0
  307. gatewaysdk/store/collection_based.py +1823 -0
  308. gatewaysdk/store/gateway.py +983 -0
  309. gatewaysdk/store/gateway_listener.py +465 -0
  310. gatewaysdk/store/listener.py +58 -0
  311. gatewaysdk/store/memory.py +396 -0
  312. gatewaysdk/store/mongo.py +165 -0
  313. gatewaysdk/store/redis_stream.py +517 -0
  314. gatewaysdk/store/sqlite.py +3 -0
  315. gatewaysdk/store/threading.py +370 -0
  316. gatewaysdk/store/utils.py +142 -0
  317. gatewaysdk/tracer/__init__.py +14 -0
  318. gatewaysdk/tracer/base.py +286 -0
  319. gatewaysdk/tracer/dummy.py +106 -0
  320. gatewaysdk/tracer/otel.py +559 -0
  321. gatewaysdk/tracing/__init__.py +110 -0
  322. gatewaysdk/tracing/api.py +808 -0
  323. gatewaysdk/tracing/attributes.py +9 -0
  324. gatewaysdk/tracing/context.py +272 -0
  325. gatewaysdk/tracing/exporters/__init__.py +10 -0
  326. gatewaysdk/tracing/exporters/gateway.py +228 -0
  327. gatewaysdk/tracing/identity.py +288 -0
  328. gatewaysdk/tracing/init.py +620 -0
  329. gatewaysdk/tracing/instrumentors/__init__.py +15 -0
  330. gatewaysdk/tracing/instrumentors/claude_agent_sdk.py +766 -0
  331. gatewaysdk/tracing/instrumentors/instrumentation_principles.md +294 -0
  332. gatewaysdk/tracing/instrumentors/registry.py +352 -0
  333. gatewaysdk/tracing/mapping.py +729 -0
  334. gatewaysdk/tracing/processors.py +393 -0
  335. gatewaysdk/tracing/push.py +617 -0
  336. gatewaysdk/tracing/push_models.py +247 -0
  337. gatewaysdk/tracing/semconv.py +294 -0
  338. gatewaysdk/tracing/span_builder.py +356 -0
  339. gatewaysdk/trainer/__init__.py +6 -0
  340. gatewaysdk/trainer/init_utils.py +263 -0
  341. gatewaysdk/trainer/legacy.py +359 -0
  342. gatewaysdk/trainer/registry.py +12 -0
  343. gatewaysdk/trainer/trainer.py +638 -0
  344. gatewaysdk/types/__init__.py +63 -0
  345. gatewaysdk/types/core.py +556 -0
  346. gatewaysdk/types/resources.py +204 -0
  347. gatewaysdk/types/tracer.py +515 -0
  348. gatewaysdk/types/tracing.py +162 -0
  349. gatewaysdk/users.py +251 -0
  350. gatewaysdk/utils/__init__.py +1 -0
  351. gatewaysdk/utils/id.py +18 -0
  352. gatewaysdk/utils/metrics.py +1025 -0
  353. gatewaysdk/utils/otel.py +550 -0
  354. gatewaysdk/utils/otlp.py +556 -0
  355. gatewaysdk/utils/redact.py +22 -0
  356. gatewaysdk/utils/server_launcher.py +1045 -0
  357. gatewaysdk/utils/system_snapshot.py +90 -0
  358. gatewaysdk/verl/__init__.py +8 -0
  359. gatewaysdk/verl/__main__.py +6 -0
  360. gatewaysdk/verl/async_server.py +46 -0
  361. gatewaysdk/verl/config.yaml +27 -0
  362. gatewaysdk/verl/daemon.py +1154 -0
  363. gatewaysdk/verl/dataset.py +44 -0
  364. gatewaysdk/verl/entrypoint.py +248 -0
  365. gatewaysdk/verl/trainer.py +549 -0
  366. gatewaysdk/world_browser.py +748 -0
  367. gatewaysdk/world_data.py +453 -0
  368. gatewaysdk/world_sessions.py +978 -0
  369. gatewaysdk/world_tasks.py +285 -0
  370. gatewaysdk/world_tools.py +115 -0
  371. gatewaysdk/worlds.py +639 -0
  372. gatewaysdk-0.3.2.dist-info/METADATA +236 -0
  373. gatewaysdk-0.3.2.dist-info/RECORD +376 -0
  374. gatewaysdk-0.3.2.dist-info/WHEEL +4 -0
  375. gatewaysdk-0.3.2.dist-info/entry_points.txt +5 -0
  376. gatewaysdk-0.3.2.dist-info/licenses/LICENSE +19 -0
@@ -0,0 +1,4993 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:gateway:connector:slack",
4
+ "$defs": {
5
+ "Id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "description": "Opaque Slack identity. No prefix, regex, email, or name uniqueness assumptions."
9
+ },
10
+ "SlackTs": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Exact Slack timestamp bytes; no float conversion. The language cannot enforce decimal timestamp syntax."
14
+ },
15
+ "VendorObject": {
16
+ "type": "object",
17
+ "properties": {},
18
+ "required": [],
19
+ "additionalProperties": true,
20
+ "description": "Extensibility boundary: preserves arbitrary vendor-defined nested JSON object content; no internal field validation or interactive semantics."
21
+ },
22
+ "CollectionObservation": {
23
+ "type": ["string", "null"],
24
+ "enum": ["present", null],
25
+ "description": "Optional normalized map/array observation: absent means not supplied; null preserves source null; present with no associated rows can represent an observed empty collection. Completeness is not enforced."
26
+ },
27
+ "TextObject": {
28
+ "type": "object",
29
+ "properties": {
30
+ "type": {
31
+ "type": "string",
32
+ "enum": ["plain_text", "mrkdwn"]
33
+ },
34
+ "text": {
35
+ "type": "string"
36
+ },
37
+ "emoji": {
38
+ "type": "boolean"
39
+ },
40
+ "verbatim": {
41
+ "type": "boolean"
42
+ }
43
+ },
44
+ "required": ["type", "text"],
45
+ "additionalProperties": false
46
+ },
47
+ "PlainTextObject": {
48
+ "type": "object",
49
+ "properties": {
50
+ "type": {
51
+ "type": "string",
52
+ "const": "plain_text"
53
+ },
54
+ "text": {
55
+ "type": "string",
56
+ "maxLength": 24
57
+ },
58
+ "emoji": {
59
+ "type": "boolean"
60
+ }
61
+ },
62
+ "required": ["type", "text"],
63
+ "additionalProperties": false
64
+ },
65
+ "BlockElement": {
66
+ "type": "object",
67
+ "properties": {
68
+ "type": {
69
+ "$ref": "#/$defs/Id"
70
+ },
71
+ "action_id": {
72
+ "type": "string"
73
+ },
74
+ "block_id": {
75
+ "type": "string"
76
+ },
77
+ "value": {
78
+ "type": "string"
79
+ },
80
+ "url": {
81
+ "type": "string"
82
+ },
83
+ "image_url": {
84
+ "type": "string"
85
+ },
86
+ "alt_text": {
87
+ "type": "string"
88
+ },
89
+ "text": {
90
+ "anyOf": [
91
+ {
92
+ "type": "string"
93
+ },
94
+ {
95
+ "$ref": "#/$defs/TextObject"
96
+ }
97
+ ]
98
+ },
99
+ "elements": {
100
+ "type": "array",
101
+ "items": {
102
+ "$ref": "#/$defs/VendorObject"
103
+ }
104
+ }
105
+ },
106
+ "required": ["type"],
107
+ "additionalProperties": true,
108
+ "description": "Known element envelope. Nested elements and vendor-defined extra properties are an explicit extensibility boundary, not recursive Block Kit validation."
109
+ },
110
+ "Block": {
111
+ "type": "object",
112
+ "properties": {
113
+ "type": {
114
+ "$ref": "#/$defs/Id"
115
+ },
116
+ "block_id": {
117
+ "type": "string"
118
+ },
119
+ "image_url": {
120
+ "type": "string"
121
+ },
122
+ "alt_text": {
123
+ "type": "string"
124
+ },
125
+ "text": {
126
+ "$ref": "#/$defs/TextObject"
127
+ },
128
+ "title": {
129
+ "$ref": "#/$defs/TextObject"
130
+ },
131
+ "fields": {
132
+ "type": "array",
133
+ "items": {
134
+ "$ref": "#/$defs/TextObject"
135
+ }
136
+ },
137
+ "elements": {
138
+ "type": "array",
139
+ "items": {
140
+ "$ref": "#/$defs/BlockElement"
141
+ }
142
+ },
143
+ "element": {
144
+ "$ref": "#/$defs/BlockElement"
145
+ },
146
+ "accessory": {
147
+ "$ref": "#/$defs/BlockElement"
148
+ },
149
+ "hint": {
150
+ "$ref": "#/$defs/TextObject"
151
+ },
152
+ "label": {
153
+ "$ref": "#/$defs/TextObject"
154
+ },
155
+ "optional": {
156
+ "type": "boolean"
157
+ },
158
+ "dispatch_action": {
159
+ "type": "boolean"
160
+ }
161
+ },
162
+ "required": ["type"],
163
+ "additionalProperties": true,
164
+ "description": "Typed known Block Kit envelope; unknown block properties are preserved. Type-dependent requirements, counts, nesting and interaction semantics are not enforced."
165
+ },
166
+ "Attachment": {
167
+ "type": "object",
168
+ "properties": {
169
+ "fallback": {
170
+ "type": "string"
171
+ },
172
+ "color": {
173
+ "type": "string"
174
+ },
175
+ "pretext": {
176
+ "type": "string"
177
+ },
178
+ "author_name": {
179
+ "type": "string"
180
+ },
181
+ "author_link": {
182
+ "type": "string"
183
+ },
184
+ "author_icon": {
185
+ "type": "string"
186
+ },
187
+ "title": {
188
+ "type": "string"
189
+ },
190
+ "title_link": {
191
+ "type": "string"
192
+ },
193
+ "text": {
194
+ "type": "string"
195
+ },
196
+ "image_url": {
197
+ "type": "string"
198
+ },
199
+ "thumb_url": {
200
+ "type": "string"
201
+ },
202
+ "footer": {
203
+ "type": "string"
204
+ },
205
+ "footer_icon": {
206
+ "type": "string"
207
+ },
208
+ "id": {
209
+ "type": "integer"
210
+ },
211
+ "ts": {
212
+ "anyOf": [
213
+ {
214
+ "$ref": "#/$defs/SlackTs"
215
+ },
216
+ {
217
+ "type": "integer",
218
+ "minimum": 0
219
+ }
220
+ ]
221
+ },
222
+ "fields": {
223
+ "type": "array",
224
+ "items": {
225
+ "type": "object",
226
+ "properties": {
227
+ "title": {
228
+ "type": "string"
229
+ },
230
+ "value": {
231
+ "type": "string"
232
+ },
233
+ "short": {
234
+ "type": "boolean"
235
+ }
236
+ },
237
+ "required": [],
238
+ "additionalProperties": false
239
+ }
240
+ },
241
+ "blocks": {
242
+ "type": "array",
243
+ "items": {
244
+ "$ref": "#/$defs/Block"
245
+ }
246
+ },
247
+ "mrkdwn_in": {
248
+ "type": "array",
249
+ "items": {
250
+ "type": "string"
251
+ }
252
+ },
253
+ "actions": {
254
+ "type": "array",
255
+ "items": {
256
+ "$ref": "#/$defs/BlockElement"
257
+ }
258
+ }
259
+ },
260
+ "required": [],
261
+ "additionalProperties": true,
262
+ "description": "Known legacy attachment fields with a vendor-defined extension boundary; no rendering or interactive semantics."
263
+ },
264
+ "Metadata": {
265
+ "type": "object",
266
+ "properties": {
267
+ "event_type": {
268
+ "$ref": "#/$defs/Id"
269
+ },
270
+ "event_payload": {
271
+ "$ref": "#/$defs/VendorObject"
272
+ }
273
+ },
274
+ "required": ["event_type", "event_payload"],
275
+ "additionalProperties": false
276
+ },
277
+ "RequestOptions": {
278
+ "type": "object",
279
+ "properties": {
280
+ "mrkdwn": {
281
+ "type": "boolean"
282
+ },
283
+ "link_names": {
284
+ "type": "boolean"
285
+ },
286
+ "unfurl_links": {
287
+ "type": "boolean"
288
+ },
289
+ "unfurl_media": {
290
+ "type": "boolean"
291
+ },
292
+ "reply_broadcast": {
293
+ "type": "boolean"
294
+ },
295
+ "parse": {
296
+ "type": "string"
297
+ }
298
+ },
299
+ "required": [],
300
+ "additionalProperties": false,
301
+ "description": "Emulator-preserved posting options; not asserted to be returned by Slack history."
302
+ },
303
+ "Icons": {
304
+ "type": "object",
305
+ "properties": {
306
+ "image_24": {
307
+ "type": ["string", "null"]
308
+ },
309
+ "image_32": {
310
+ "type": ["string", "null"]
311
+ },
312
+ "image_36": {
313
+ "type": ["string", "null"]
314
+ },
315
+ "image_48": {
316
+ "type": ["string", "null"]
317
+ },
318
+ "image_64": {
319
+ "type": ["string", "null"]
320
+ },
321
+ "image_72": {
322
+ "type": ["string", "null"]
323
+ },
324
+ "image_96": {
325
+ "type": ["string", "null"]
326
+ },
327
+ "image_128": {
328
+ "type": ["string", "null"]
329
+ },
330
+ "image_192": {
331
+ "type": ["string", "null"]
332
+ },
333
+ "image_512": {
334
+ "type": ["string", "null"]
335
+ },
336
+ "image_1024": {
337
+ "type": ["string", "null"]
338
+ },
339
+ "image_original": {
340
+ "type": ["string", "null"]
341
+ },
342
+ "emoji": {
343
+ "type": ["string", "null"]
344
+ }
345
+ },
346
+ "required": [],
347
+ "additionalProperties": false
348
+ },
349
+ "BotProfile": {
350
+ "type": "object",
351
+ "properties": {
352
+ "id": {
353
+ "$ref": "#/$defs/Id"
354
+ },
355
+ "app_id": {
356
+ "type": "string"
357
+ },
358
+ "user_id": {
359
+ "type": "string"
360
+ },
361
+ "team_id": {
362
+ "type": "string"
363
+ },
364
+ "name": {
365
+ "type": "string"
366
+ },
367
+ "deleted": {
368
+ "type": "boolean"
369
+ },
370
+ "updated": {
371
+ "type": "integer",
372
+ "minimum": 0
373
+ },
374
+ "icons": {
375
+ "$ref": "#/$defs/Icons"
376
+ }
377
+ },
378
+ "required": [],
379
+ "additionalProperties": false
380
+ },
381
+ "Edited": {
382
+ "type": "object",
383
+ "properties": {
384
+ "user": {
385
+ "$ref": "#/$defs/Id"
386
+ },
387
+ "ts": {
388
+ "$ref": "#/$defs/SlackTs"
389
+ }
390
+ },
391
+ "required": ["user", "ts"],
392
+ "additionalProperties": false
393
+ },
394
+ "ReactionObservation": {
395
+ "type": "object",
396
+ "properties": {
397
+ "name": {
398
+ "$ref": "#/$defs/Id"
399
+ },
400
+ "count": {
401
+ "type": "integer",
402
+ "minimum": 0
403
+ },
404
+ "users": {
405
+ "type": "array",
406
+ "items": {
407
+ "$ref": "#/$defs/Id"
408
+ }
409
+ }
410
+ },
411
+ "required": ["name", "count"],
412
+ "additionalProperties": false,
413
+ "description": "Reported count and potentially truncated external actor sample; no count equality invariant."
414
+ },
415
+ "UnavailableFile": {
416
+ "oneOf": [
417
+ {
418
+ "type": "object",
419
+ "properties": {
420
+ "file_access": {
421
+ "type": "string",
422
+ "const": "check_file_info"
423
+ }
424
+ },
425
+ "required": ["file_access"],
426
+ "additionalProperties": false
427
+ },
428
+ {
429
+ "type": "object",
430
+ "properties": {
431
+ "mode": {
432
+ "type": "string",
433
+ "enum": ["tombstone", "file_access"]
434
+ }
435
+ },
436
+ "required": ["mode"],
437
+ "additionalProperties": false
438
+ }
439
+ ],
440
+ "description": "Explicit limited-access reference variant; contains no fabricated full file metadata."
441
+ },
442
+ "Profile": {
443
+ "type": "object",
444
+ "properties": {
445
+ "display_name": {
446
+ "type": ["string", "null"]
447
+ },
448
+ "real_name": {
449
+ "type": ["string", "null"]
450
+ },
451
+ "email": {
452
+ "type": ["string", "null"]
453
+ },
454
+ "image_48": {
455
+ "type": ["string", "null"]
456
+ },
457
+ "image_192": {
458
+ "type": ["string", "null"]
459
+ },
460
+ "title": {
461
+ "type": ["string", "null"]
462
+ },
463
+ "phone": {
464
+ "type": ["string", "null"]
465
+ },
466
+ "skype": {
467
+ "type": ["string", "null"]
468
+ },
469
+ "real_name_normalized": {
470
+ "type": ["string", "null"]
471
+ },
472
+ "display_name_normalized": {
473
+ "type": ["string", "null"]
474
+ },
475
+ "status_text": {
476
+ "type": ["string", "null"]
477
+ },
478
+ "status_emoji": {
479
+ "type": ["string", "null"]
480
+ },
481
+ "avatar_hash": {
482
+ "type": ["string", "null"]
483
+ },
484
+ "start_date": {
485
+ "type": ["string", "null"]
486
+ },
487
+ "pronouns": {
488
+ "type": ["string", "null"]
489
+ },
490
+ "huddle_state": {
491
+ "type": ["string", "null"]
492
+ },
493
+ "first_name": {
494
+ "type": ["string", "null"]
495
+ },
496
+ "last_name": {
497
+ "type": ["string", "null"]
498
+ },
499
+ "image_24": {
500
+ "type": ["string", "null"]
501
+ },
502
+ "image_32": {
503
+ "type": ["string", "null"]
504
+ },
505
+ "image_72": {
506
+ "type": ["string", "null"]
507
+ },
508
+ "image_512": {
509
+ "type": ["string", "null"]
510
+ },
511
+ "image_1024": {
512
+ "type": ["string", "null"]
513
+ },
514
+ "image_original": {
515
+ "type": ["string", "null"]
516
+ },
517
+ "status_text_canonical": {
518
+ "type": ["string", "null"]
519
+ },
520
+ "team": {
521
+ "type": ["string", "null"]
522
+ },
523
+ "api_app_id": {
524
+ "type": ["string", "null"]
525
+ },
526
+ "bot_id": {
527
+ "type": ["string", "null"]
528
+ },
529
+ "guest_invited_by": {
530
+ "type": ["string", "null"]
531
+ },
532
+ "huddle_state_call_id": {
533
+ "type": ["string", "null"]
534
+ },
535
+ "huddle_state_channel_id": {
536
+ "type": ["string", "null"]
537
+ },
538
+ "last_avatar_image_hash": {
539
+ "type": ["string", "null"]
540
+ },
541
+ "name": {
542
+ "type": ["string", "null"]
543
+ },
544
+ "user_id": {
545
+ "type": ["string", "null"]
546
+ },
547
+ "username": {
548
+ "type": ["string", "null"]
549
+ },
550
+ "who_can_share_contact_card": {
551
+ "type": ["string", "null"]
552
+ },
553
+ "status_expiration": {
554
+ "type": ["integer", "null"],
555
+ "minimum": 0
556
+ },
557
+ "huddle_state_expiration_ts": {
558
+ "type": ["integer", "null"],
559
+ "minimum": 0
560
+ },
561
+ "guest_expiration_ts": {
562
+ "type": ["integer", "null"],
563
+ "minimum": 0
564
+ },
565
+ "memberships_count": {
566
+ "type": ["integer", "null"],
567
+ "minimum": 0
568
+ },
569
+ "updated": {
570
+ "type": ["integer", "null"],
571
+ "minimum": 0
572
+ },
573
+ "always_active": {
574
+ "type": ["boolean", "null"]
575
+ },
576
+ "is_agentforce_bot": {
577
+ "type": ["boolean", "null"]
578
+ },
579
+ "is_app_user": {
580
+ "type": ["boolean", "null"]
581
+ },
582
+ "is_custom_image": {
583
+ "type": ["boolean", "null"]
584
+ },
585
+ "is_restricted": {
586
+ "type": ["boolean", "null"]
587
+ },
588
+ "is_sidekick_bot": {
589
+ "type": ["boolean", "null"]
590
+ },
591
+ "is_ultra_restricted": {
592
+ "type": ["boolean", "null"]
593
+ },
594
+ "status_clear_on_focus_end": {
595
+ "type": ["boolean", "null"]
596
+ },
597
+ "restricted_user_type": {
598
+ "type": ["integer", "null"]
599
+ },
600
+ "status_emoji_display_info": {
601
+ "type": ["array", "null"],
602
+ "items": {
603
+ "type": "object",
604
+ "properties": {
605
+ "emoji_name": {
606
+ "type": ["string", "null"]
607
+ },
608
+ "display_alias": {
609
+ "type": ["string", "null"]
610
+ },
611
+ "display_url": {
612
+ "type": ["string", "null"]
613
+ },
614
+ "unicode": {
615
+ "type": ["string", "null"]
616
+ }
617
+ },
618
+ "required": [],
619
+ "additionalProperties": true
620
+ }
621
+ },
622
+ "fields_state": {
623
+ "$ref": "#/$defs/CollectionObservation"
624
+ }
625
+ },
626
+ "required": [],
627
+ "additionalProperties": false
628
+ },
629
+ "EnterpriseUser": {
630
+ "type": "object",
631
+ "properties": {
632
+ "id": {
633
+ "type": ["string", "null"]
634
+ },
635
+ "enterprise_id": {
636
+ "type": ["string", "null"]
637
+ },
638
+ "enterprise_name": {
639
+ "type": ["string", "null"]
640
+ },
641
+ "is_admin": {
642
+ "type": ["boolean", "null"]
643
+ },
644
+ "is_owner": {
645
+ "type": ["boolean", "null"]
646
+ },
647
+ "is_primary_owner": {
648
+ "type": ["boolean", "null"]
649
+ },
650
+ "teams": {
651
+ "type": ["array", "null"],
652
+ "items": {
653
+ "$ref": "#/$defs/Id"
654
+ }
655
+ }
656
+ },
657
+ "required": [],
658
+ "additionalProperties": false
659
+ },
660
+ "WorkspaceIcon": {
661
+ "type": "object",
662
+ "properties": {
663
+ "image_34": {
664
+ "type": ["string", "null"]
665
+ },
666
+ "image_44": {
667
+ "type": ["string", "null"]
668
+ },
669
+ "image_68": {
670
+ "type": ["string", "null"]
671
+ },
672
+ "image_88": {
673
+ "type": ["string", "null"]
674
+ },
675
+ "image_102": {
676
+ "type": ["string", "null"]
677
+ },
678
+ "image_132": {
679
+ "type": ["string", "null"]
680
+ },
681
+ "image_230": {
682
+ "type": ["string", "null"]
683
+ },
684
+ "image_default": {
685
+ "type": "boolean"
686
+ }
687
+ },
688
+ "required": [],
689
+ "additionalProperties": false
690
+ },
691
+ "Workspace": {
692
+ "type": "object",
693
+ "properties": {
694
+ "id": {
695
+ "$ref": "#/$defs/Id"
696
+ },
697
+ "name": {
698
+ "type": ["string", "null"]
699
+ },
700
+ "domain": {
701
+ "type": ["string", "null"]
702
+ },
703
+ "email_domain": {
704
+ "type": ["string", "null"]
705
+ },
706
+ "url": {
707
+ "type": ["string", "null"]
708
+ },
709
+ "enterprise_id": {
710
+ "type": ["string", "null"]
711
+ },
712
+ "enterprise_name": {
713
+ "type": ["string", "null"]
714
+ },
715
+ "icon": {
716
+ "anyOf": [
717
+ {
718
+ "$ref": "#/$defs/WorkspaceIcon"
719
+ },
720
+ {
721
+ "type": "null"
722
+ }
723
+ ]
724
+ }
725
+ },
726
+ "required": ["id"],
727
+ "additionalProperties": false
728
+ },
729
+ "User": {
730
+ "type": "object",
731
+ "properties": {
732
+ "workspace_id": {
733
+ "$ref": "#/$defs/Id"
734
+ },
735
+ "id": {
736
+ "$ref": "#/$defs/Id"
737
+ },
738
+ "team_id": {
739
+ "type": ["string", "null"]
740
+ },
741
+ "team": {
742
+ "type": ["string", "null"]
743
+ },
744
+ "enterprise_id": {
745
+ "type": ["string", "null"]
746
+ },
747
+ "enterprise_name": {
748
+ "type": ["string", "null"]
749
+ },
750
+ "name": {
751
+ "type": ["string", "null"]
752
+ },
753
+ "real_name": {
754
+ "type": ["string", "null"]
755
+ },
756
+ "color": {
757
+ "type": ["string", "null"]
758
+ },
759
+ "tz": {
760
+ "type": ["string", "null"]
761
+ },
762
+ "tz_label": {
763
+ "type": ["string", "null"]
764
+ },
765
+ "locale": {
766
+ "type": ["string", "null"]
767
+ },
768
+ "who_can_share_contact_card": {
769
+ "type": ["string", "null"]
770
+ },
771
+ "deleted": {
772
+ "type": ["boolean", "null"]
773
+ },
774
+ "is_admin": {
775
+ "type": ["boolean", "null"]
776
+ },
777
+ "is_owner": {
778
+ "type": ["boolean", "null"]
779
+ },
780
+ "is_primary_owner": {
781
+ "type": ["boolean", "null"]
782
+ },
783
+ "is_restricted": {
784
+ "type": ["boolean", "null"]
785
+ },
786
+ "is_ultra_restricted": {
787
+ "type": ["boolean", "null"]
788
+ },
789
+ "is_bot": {
790
+ "type": ["boolean", "null"]
791
+ },
792
+ "is_app_user": {
793
+ "type": ["boolean", "null"]
794
+ },
795
+ "is_external": {
796
+ "type": ["boolean", "null"]
797
+ },
798
+ "is_stranger": {
799
+ "type": ["boolean", "null"]
800
+ },
801
+ "is_email_confirmed": {
802
+ "type": ["boolean", "null"]
803
+ },
804
+ "is_invited_user": {
805
+ "type": ["boolean", "null"]
806
+ },
807
+ "is_forgotten": {
808
+ "type": ["boolean", "null"]
809
+ },
810
+ "is_agentforce_bot": {
811
+ "type": ["boolean", "null"]
812
+ },
813
+ "is_workflow_bot": {
814
+ "type": ["boolean", "null"]
815
+ },
816
+ "is_profile_only_user": {
817
+ "type": ["boolean", "null"]
818
+ },
819
+ "always_active": {
820
+ "type": ["boolean", "null"]
821
+ },
822
+ "suspended": {
823
+ "type": ["boolean", "null"]
824
+ },
825
+ "has_2fa": {
826
+ "type": ["boolean", "null"]
827
+ },
828
+ "tz_offset": {
829
+ "type": ["integer", "null"]
830
+ },
831
+ "updated": {
832
+ "type": ["integer", "null"],
833
+ "minimum": 0
834
+ },
835
+ "first_login": {
836
+ "type": ["integer", "null"],
837
+ "minimum": 0
838
+ },
839
+ "restricted_user_type": {
840
+ "type": ["integer", "null"]
841
+ },
842
+ "teams": {
843
+ "type": ["array", "null"],
844
+ "items": {
845
+ "$ref": "#/$defs/Id"
846
+ }
847
+ },
848
+ "two_factor_type": {
849
+ "type": ["string", "null"],
850
+ "enum": ["app", "sms", null]
851
+ },
852
+ "profile": {
853
+ "anyOf": [
854
+ {
855
+ "$ref": "#/$defs/Profile"
856
+ },
857
+ {
858
+ "type": "null"
859
+ }
860
+ ]
861
+ },
862
+ "enterprise_user": {
863
+ "anyOf": [
864
+ {
865
+ "$ref": "#/$defs/EnterpriseUser"
866
+ },
867
+ {
868
+ "type": "null"
869
+ }
870
+ ]
871
+ }
872
+ },
873
+ "required": ["workspace_id", "id"],
874
+ "additionalProperties": false
875
+ },
876
+ "UserProfileField": {
877
+ "type": "object",
878
+ "properties": {
879
+ "workspace_id": {
880
+ "$ref": "#/$defs/Id"
881
+ },
882
+ "user_id": {
883
+ "$ref": "#/$defs/Id"
884
+ },
885
+ "field_id": {
886
+ "$ref": "#/$defs/Id"
887
+ },
888
+ "value": {
889
+ "type": ["string", "null"]
890
+ },
891
+ "alt": {
892
+ "type": ["string", "null"]
893
+ },
894
+ "label": {
895
+ "type": ["string", "null"]
896
+ }
897
+ },
898
+ "required": ["workspace_id", "user_id", "field_id", "value"],
899
+ "additionalProperties": false
900
+ },
901
+ "Presence": {
902
+ "type": "object",
903
+ "properties": {
904
+ "workspace_id": {
905
+ "$ref": "#/$defs/Id"
906
+ },
907
+ "user_id": {
908
+ "$ref": "#/$defs/Id"
909
+ },
910
+ "presence": {
911
+ "type": "string",
912
+ "enum": ["active", "away"]
913
+ },
914
+ "manual_presence": {
915
+ "type": "string",
916
+ "enum": ["auto", "away"]
917
+ },
918
+ "online": {
919
+ "type": "boolean"
920
+ },
921
+ "auto_away": {
922
+ "type": "boolean"
923
+ },
924
+ "manual_away": {
925
+ "type": "boolean"
926
+ },
927
+ "connection_count": {
928
+ "type": "integer",
929
+ "minimum": 0
930
+ },
931
+ "last_activity": {
932
+ "type": "integer",
933
+ "minimum": 0
934
+ }
935
+ },
936
+ "required": ["workspace_id", "user_id", "presence"],
937
+ "additionalProperties": false
938
+ },
939
+ "Bot": {
940
+ "type": "object",
941
+ "properties": {
942
+ "workspace_id": {
943
+ "$ref": "#/$defs/Id"
944
+ },
945
+ "id": {
946
+ "$ref": "#/$defs/Id"
947
+ },
948
+ "app_id": {
949
+ "type": "string"
950
+ },
951
+ "user_id": {
952
+ "type": "string"
953
+ },
954
+ "team_id": {
955
+ "type": "string"
956
+ },
957
+ "name": {
958
+ "type": "string"
959
+ },
960
+ "deleted": {
961
+ "type": "boolean"
962
+ },
963
+ "updated": {
964
+ "type": "integer",
965
+ "minimum": 0
966
+ },
967
+ "icons": {
968
+ "$ref": "#/$defs/Icons"
969
+ }
970
+ },
971
+ "required": ["workspace_id", "id"],
972
+ "additionalProperties": false
973
+ },
974
+ "App": {
975
+ "type": "object",
976
+ "properties": {
977
+ "workspace_id": {
978
+ "$ref": "#/$defs/Id"
979
+ },
980
+ "id": {
981
+ "$ref": "#/$defs/Id"
982
+ },
983
+ "client_id": {
984
+ "type": "string"
985
+ },
986
+ "name": {
987
+ "type": "string"
988
+ },
989
+ "bot_id": {
990
+ "type": "string"
991
+ },
992
+ "bot_user_id": {
993
+ "type": "string"
994
+ },
995
+ "bot_name": {
996
+ "type": "string"
997
+ },
998
+ "installer_user_id": {
999
+ "type": "string"
1000
+ },
1001
+ "team_id": {
1002
+ "type": "string"
1003
+ },
1004
+ "scopes": {
1005
+ "type": "array",
1006
+ "items": {
1007
+ "type": "string"
1008
+ }
1009
+ },
1010
+ "user_scopes": {
1011
+ "type": "array",
1012
+ "items": {
1013
+ "type": "string"
1014
+ }
1015
+ }
1016
+ },
1017
+ "required": ["workspace_id", "id"],
1018
+ "additionalProperties": false
1019
+ },
1020
+ "Topic": {
1021
+ "type": "object",
1022
+ "properties": {
1023
+ "value": {
1024
+ "type": "string"
1025
+ },
1026
+ "creator": {
1027
+ "type": "string"
1028
+ },
1029
+ "last_set": {
1030
+ "type": "integer",
1031
+ "minimum": 0
1032
+ }
1033
+ },
1034
+ "required": ["value", "creator", "last_set"],
1035
+ "additionalProperties": false
1036
+ },
1037
+ "PostingRestriction": {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "subteam": {
1041
+ "type": "array",
1042
+ "items": {
1043
+ "type": "string"
1044
+ }
1045
+ },
1046
+ "type": {
1047
+ "type": "array",
1048
+ "items": {
1049
+ "type": "string"
1050
+ }
1051
+ },
1052
+ "user": {
1053
+ "type": "array",
1054
+ "items": {
1055
+ "type": "string"
1056
+ }
1057
+ }
1058
+ },
1059
+ "required": [],
1060
+ "additionalProperties": false
1061
+ },
1062
+ "ChannelProperties": {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "at_channel_restricted": {
1066
+ "type": "boolean"
1067
+ },
1068
+ "at_here_restricted": {
1069
+ "type": "boolean"
1070
+ },
1071
+ "huddles_restricted": {
1072
+ "type": "boolean"
1073
+ },
1074
+ "sharing_disabled": {
1075
+ "type": "boolean"
1076
+ },
1077
+ "auto_open_tab_id": {
1078
+ "type": "string"
1079
+ },
1080
+ "default_tab_id": {
1081
+ "type": "string"
1082
+ },
1083
+ "who_can_manage_channel_agent": {
1084
+ "type": "string"
1085
+ },
1086
+ "membership_limit": {
1087
+ "type": "integer",
1088
+ "minimum": 0
1089
+ },
1090
+ "posting_restricted_to": {
1091
+ "$ref": "#/$defs/PostingRestriction"
1092
+ },
1093
+ "threads_restricted_to": {
1094
+ "$ref": "#/$defs/PostingRestriction"
1095
+ },
1096
+ "tabs": {
1097
+ "type": "array",
1098
+ "items": {
1099
+ "type": "object",
1100
+ "properties": {
1101
+ "id": {
1102
+ "type": "string"
1103
+ },
1104
+ "label": {
1105
+ "type": "string"
1106
+ },
1107
+ "type": {
1108
+ "type": "string"
1109
+ },
1110
+ "data": {
1111
+ "$ref": "#/$defs/VendorObject"
1112
+ },
1113
+ "is_disabled": {
1114
+ "type": "boolean"
1115
+ }
1116
+ },
1117
+ "required": [],
1118
+ "additionalProperties": false
1119
+ }
1120
+ },
1121
+ "canvas": {
1122
+ "$ref": "#/$defs/VendorObject"
1123
+ },
1124
+ "channel_solutions": {
1125
+ "$ref": "#/$defs/VendorObject"
1126
+ },
1127
+ "crm": {
1128
+ "$ref": "#/$defs/VendorObject"
1129
+ },
1130
+ "huddles": {
1131
+ "$ref": "#/$defs/VendorObject"
1132
+ },
1133
+ "meeting_notes": {
1134
+ "$ref": "#/$defs/VendorObject"
1135
+ },
1136
+ "record_channel": {
1137
+ "$ref": "#/$defs/VendorObject"
1138
+ },
1139
+ "workflow": {
1140
+ "$ref": "#/$defs/VendorObject"
1141
+ },
1142
+ "channel_workflows": {
1143
+ "type": "array",
1144
+ "items": {
1145
+ "$ref": "#/$defs/VendorObject"
1146
+ }
1147
+ }
1148
+ },
1149
+ "required": [],
1150
+ "additionalProperties": false,
1151
+ "description": "Collaboration settings are typed; embedded canvas/workflow/CRM/huddle metadata is preserved as vendor objects, not modeled as standalone domains."
1152
+ },
1153
+ "Channel": {
1154
+ "type": "object",
1155
+ "properties": {
1156
+ "workspace_id": {
1157
+ "$ref": "#/$defs/Id"
1158
+ },
1159
+ "id": {
1160
+ "$ref": "#/$defs/Id"
1161
+ },
1162
+ "team_id": {
1163
+ "type": "string"
1164
+ },
1165
+ "name": {
1166
+ "type": "string"
1167
+ },
1168
+ "name_normalized": {
1169
+ "type": "string"
1170
+ },
1171
+ "creator": {
1172
+ "type": "string"
1173
+ },
1174
+ "enterprise_id": {
1175
+ "type": "string"
1176
+ },
1177
+ "context_team_id": {
1178
+ "type": "string"
1179
+ },
1180
+ "conversation_host_id": {
1181
+ "type": "string"
1182
+ },
1183
+ "frozen_reason": {
1184
+ "type": "string"
1185
+ },
1186
+ "use_case": {
1187
+ "type": "string"
1188
+ },
1189
+ "parent_conversation": {
1190
+ "type": ["string", "null"]
1191
+ },
1192
+ "created": {
1193
+ "type": "integer",
1194
+ "minimum": 0
1195
+ },
1196
+ "updated": {
1197
+ "type": "integer",
1198
+ "minimum": 0
1199
+ },
1200
+ "is_moved": {
1201
+ "type": "integer",
1202
+ "minimum": 0
1203
+ },
1204
+ "retention_duration": {
1205
+ "type": "integer",
1206
+ "minimum": 0
1207
+ },
1208
+ "unlinked": {
1209
+ "type": "integer",
1210
+ "minimum": 0
1211
+ },
1212
+ "num_members": {
1213
+ "type": "integer",
1214
+ "minimum": 0
1215
+ },
1216
+ "is_channel": {
1217
+ "type": "boolean"
1218
+ },
1219
+ "is_private": {
1220
+ "type": "boolean"
1221
+ },
1222
+ "is_im": {
1223
+ "type": "boolean"
1224
+ },
1225
+ "is_mpim": {
1226
+ "type": "boolean"
1227
+ },
1228
+ "is_archived": {
1229
+ "type": "boolean"
1230
+ },
1231
+ "is_group": {
1232
+ "type": "boolean"
1233
+ },
1234
+ "is_general": {
1235
+ "type": "boolean"
1236
+ },
1237
+ "is_shared": {
1238
+ "type": "boolean"
1239
+ },
1240
+ "is_org_shared": {
1241
+ "type": "boolean"
1242
+ },
1243
+ "is_ext_shared": {
1244
+ "type": "boolean"
1245
+ },
1246
+ "is_pending_ext_shared": {
1247
+ "type": "boolean"
1248
+ },
1249
+ "is_frozen": {
1250
+ "type": "boolean"
1251
+ },
1252
+ "has_pins": {
1253
+ "type": "boolean"
1254
+ },
1255
+ "is_channel_agent_enabled": {
1256
+ "type": "boolean"
1257
+ },
1258
+ "is_ext_ws_shared": {
1259
+ "type": "boolean"
1260
+ },
1261
+ "is_file": {
1262
+ "type": "boolean"
1263
+ },
1264
+ "is_non_threadable": {
1265
+ "type": "boolean"
1266
+ },
1267
+ "is_org_default": {
1268
+ "type": "boolean"
1269
+ },
1270
+ "is_org_mandatory": {
1271
+ "type": "boolean"
1272
+ },
1273
+ "shared_team_ids": {
1274
+ "type": "array",
1275
+ "items": {
1276
+ "$ref": "#/$defs/Id"
1277
+ }
1278
+ },
1279
+ "pending_connected_team_ids": {
1280
+ "type": "array",
1281
+ "items": {
1282
+ "$ref": "#/$defs/Id"
1283
+ }
1284
+ },
1285
+ "pending_shared": {
1286
+ "type": "array",
1287
+ "items": {
1288
+ "$ref": "#/$defs/Id"
1289
+ }
1290
+ },
1291
+ "connected_team_ids": {
1292
+ "type": "array",
1293
+ "items": {
1294
+ "$ref": "#/$defs/Id"
1295
+ }
1296
+ },
1297
+ "internal_team_ids": {
1298
+ "type": "array",
1299
+ "items": {
1300
+ "$ref": "#/$defs/Id"
1301
+ }
1302
+ },
1303
+ "previous_names": {
1304
+ "type": "array",
1305
+ "items": {
1306
+ "type": "string"
1307
+ }
1308
+ },
1309
+ "topic": {
1310
+ "$ref": "#/$defs/Topic"
1311
+ },
1312
+ "purpose": {
1313
+ "$ref": "#/$defs/Topic"
1314
+ },
1315
+ "properties": {
1316
+ "$ref": "#/$defs/ChannelProperties"
1317
+ }
1318
+ },
1319
+ "required": ["workspace_id", "id"],
1320
+ "additionalProperties": false
1321
+ },
1322
+ "Membership": {
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "workspace_id": {
1326
+ "$ref": "#/$defs/Id"
1327
+ },
1328
+ "channel_id": {
1329
+ "$ref": "#/$defs/Id"
1330
+ },
1331
+ "user_id": {
1332
+ "$ref": "#/$defs/Id"
1333
+ }
1334
+ },
1335
+ "required": ["workspace_id", "channel_id", "user_id"],
1336
+ "additionalProperties": false
1337
+ },
1338
+ "ConversationState": {
1339
+ "type": "object",
1340
+ "properties": {
1341
+ "workspace_id": {
1342
+ "$ref": "#/$defs/Id"
1343
+ },
1344
+ "channel_id": {
1345
+ "$ref": "#/$defs/Id"
1346
+ },
1347
+ "user_id": {
1348
+ "$ref": "#/$defs/Id"
1349
+ },
1350
+ "is_open": {
1351
+ "type": "boolean"
1352
+ },
1353
+ "is_member": {
1354
+ "type": "boolean"
1355
+ },
1356
+ "is_starred": {
1357
+ "type": "boolean"
1358
+ },
1359
+ "is_read_only": {
1360
+ "type": "boolean"
1361
+ },
1362
+ "is_thread_only": {
1363
+ "type": "boolean"
1364
+ },
1365
+ "counterpart_user_id": {
1366
+ "$ref": "#/$defs/Id"
1367
+ },
1368
+ "last_read": {
1369
+ "$ref": "#/$defs/SlackTs"
1370
+ },
1371
+ "unread_count": {
1372
+ "type": "integer",
1373
+ "minimum": 0
1374
+ },
1375
+ "unread_count_display": {
1376
+ "type": "integer",
1377
+ "minimum": 0
1378
+ },
1379
+ "latest": {
1380
+ "anyOf": [
1381
+ {
1382
+ "$ref": "#/$defs/SlackTs"
1383
+ },
1384
+ {
1385
+ "$ref": "#/$defs/VendorObject"
1386
+ }
1387
+ ]
1388
+ }
1389
+ },
1390
+ "required": ["workspace_id", "channel_id", "user_id"],
1391
+ "additionalProperties": false
1392
+ },
1393
+ "MessageSnapshot": {
1394
+ "type": "object",
1395
+ "properties": {
1396
+ "ts": {
1397
+ "$ref": "#/$defs/SlackTs"
1398
+ },
1399
+ "text": {
1400
+ "type": "string"
1401
+ },
1402
+ "subtype": {
1403
+ "type": "string"
1404
+ },
1405
+ "user": {
1406
+ "$ref": "#/$defs/Id"
1407
+ },
1408
+ "bot_id": {
1409
+ "$ref": "#/$defs/Id"
1410
+ },
1411
+ "app_id": {
1412
+ "$ref": "#/$defs/Id"
1413
+ },
1414
+ "username": {
1415
+ "type": "string"
1416
+ },
1417
+ "icon_url": {
1418
+ "type": "string"
1419
+ },
1420
+ "icon_emoji": {
1421
+ "type": "string"
1422
+ },
1423
+ "client_msg_id": {
1424
+ "type": "string"
1425
+ },
1426
+ "topic": {
1427
+ "type": "string"
1428
+ },
1429
+ "purpose": {
1430
+ "type": "string"
1431
+ },
1432
+ "old_name": {
1433
+ "type": "string"
1434
+ },
1435
+ "name": {
1436
+ "type": "string"
1437
+ },
1438
+ "team": {
1439
+ "$ref": "#/$defs/Id"
1440
+ },
1441
+ "source_team": {
1442
+ "$ref": "#/$defs/Id"
1443
+ },
1444
+ "user_team": {
1445
+ "$ref": "#/$defs/Id"
1446
+ },
1447
+ "channel_type": {
1448
+ "type": "string"
1449
+ },
1450
+ "upload": {
1451
+ "type": "boolean"
1452
+ },
1453
+ "hidden": {
1454
+ "type": "boolean"
1455
+ },
1456
+ "no_notifications": {
1457
+ "type": "boolean"
1458
+ },
1459
+ "edited": {
1460
+ "$ref": "#/$defs/Edited"
1461
+ },
1462
+ "bot_profile": {
1463
+ "$ref": "#/$defs/BotProfile"
1464
+ },
1465
+ "blocks": {
1466
+ "type": "array",
1467
+ "items": {
1468
+ "$ref": "#/$defs/Block"
1469
+ }
1470
+ },
1471
+ "attachments": {
1472
+ "type": "array",
1473
+ "items": {
1474
+ "$ref": "#/$defs/Attachment"
1475
+ }
1476
+ },
1477
+ "metadata": {
1478
+ "$ref": "#/$defs/Metadata"
1479
+ },
1480
+ "request_options": {
1481
+ "$ref": "#/$defs/RequestOptions"
1482
+ },
1483
+ "reply_count": {
1484
+ "type": "integer",
1485
+ "minimum": 0
1486
+ },
1487
+ "reply_users_count": {
1488
+ "type": "integer",
1489
+ "minimum": 0
1490
+ },
1491
+ "reply_users": {
1492
+ "type": "array",
1493
+ "items": {
1494
+ "$ref": "#/$defs/Id"
1495
+ }
1496
+ },
1497
+ "latest_reply": {
1498
+ "$ref": "#/$defs/SlackTs"
1499
+ },
1500
+ "deleted_ts": {
1501
+ "$ref": "#/$defs/SlackTs"
1502
+ },
1503
+ "event_ts": {
1504
+ "$ref": "#/$defs/SlackTs"
1505
+ },
1506
+ "app_context": {
1507
+ "$ref": "#/$defs/AppContext"
1508
+ },
1509
+ "permalink": {
1510
+ "type": "string"
1511
+ }
1512
+ },
1513
+ "required": [],
1514
+ "additionalProperties": false,
1515
+ "description": "Nonrecursive lifecycle observation; excludes independent canonical thread, file and reaction relations."
1516
+ },
1517
+ "Message": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "workspace_id": {
1521
+ "$ref": "#/$defs/Id"
1522
+ },
1523
+ "channel_id": {
1524
+ "$ref": "#/$defs/Id"
1525
+ },
1526
+ "ts": {
1527
+ "$ref": "#/$defs/SlackTs"
1528
+ },
1529
+ "type": {
1530
+ "type": "string",
1531
+ "const": "message"
1532
+ },
1533
+ "text": {
1534
+ "type": "string"
1535
+ },
1536
+ "subtype": {
1537
+ "type": "string"
1538
+ },
1539
+ "user": {
1540
+ "$ref": "#/$defs/Id"
1541
+ },
1542
+ "bot_id": {
1543
+ "$ref": "#/$defs/Id"
1544
+ },
1545
+ "app_id": {
1546
+ "$ref": "#/$defs/Id"
1547
+ },
1548
+ "username": {
1549
+ "type": "string"
1550
+ },
1551
+ "icon_url": {
1552
+ "type": "string"
1553
+ },
1554
+ "icon_emoji": {
1555
+ "type": "string"
1556
+ },
1557
+ "client_msg_id": {
1558
+ "type": "string"
1559
+ },
1560
+ "topic": {
1561
+ "type": "string"
1562
+ },
1563
+ "purpose": {
1564
+ "type": "string"
1565
+ },
1566
+ "old_name": {
1567
+ "type": "string"
1568
+ },
1569
+ "name": {
1570
+ "type": "string"
1571
+ },
1572
+ "team": {
1573
+ "$ref": "#/$defs/Id"
1574
+ },
1575
+ "source_team": {
1576
+ "$ref": "#/$defs/Id"
1577
+ },
1578
+ "user_team": {
1579
+ "$ref": "#/$defs/Id"
1580
+ },
1581
+ "channel_type": {
1582
+ "type": "string"
1583
+ },
1584
+ "upload": {
1585
+ "type": "boolean"
1586
+ },
1587
+ "hidden": {
1588
+ "type": "boolean"
1589
+ },
1590
+ "no_notifications": {
1591
+ "type": "boolean"
1592
+ },
1593
+ "edited": {
1594
+ "$ref": "#/$defs/Edited"
1595
+ },
1596
+ "bot_profile": {
1597
+ "$ref": "#/$defs/BotProfile"
1598
+ },
1599
+ "blocks": {
1600
+ "type": "array",
1601
+ "items": {
1602
+ "$ref": "#/$defs/Block"
1603
+ }
1604
+ },
1605
+ "attachments": {
1606
+ "type": "array",
1607
+ "items": {
1608
+ "$ref": "#/$defs/Attachment"
1609
+ }
1610
+ },
1611
+ "metadata": {
1612
+ "$ref": "#/$defs/Metadata"
1613
+ },
1614
+ "request_options": {
1615
+ "$ref": "#/$defs/RequestOptions"
1616
+ },
1617
+ "reply_count": {
1618
+ "type": "integer",
1619
+ "minimum": 0
1620
+ },
1621
+ "reply_users_count": {
1622
+ "type": "integer",
1623
+ "minimum": 0
1624
+ },
1625
+ "reply_users": {
1626
+ "type": "array",
1627
+ "items": {
1628
+ "$ref": "#/$defs/Id"
1629
+ }
1630
+ },
1631
+ "latest_reply": {
1632
+ "$ref": "#/$defs/SlackTs"
1633
+ },
1634
+ "deleted_ts": {
1635
+ "$ref": "#/$defs/SlackTs"
1636
+ },
1637
+ "event_ts": {
1638
+ "$ref": "#/$defs/SlackTs"
1639
+ },
1640
+ "message": {
1641
+ "$ref": "#/$defs/MessageSnapshot"
1642
+ },
1643
+ "previous_message": {
1644
+ "$ref": "#/$defs/MessageSnapshot"
1645
+ },
1646
+ "app_context": {
1647
+ "$ref": "#/$defs/AppContext"
1648
+ },
1649
+ "permalink": {
1650
+ "type": "string"
1651
+ }
1652
+ },
1653
+ "required": ["workspace_id", "channel_id", "ts", "type"],
1654
+ "additionalProperties": false
1655
+ },
1656
+ "MessageThread": {
1657
+ "type": "object",
1658
+ "properties": {
1659
+ "workspace_id": {
1660
+ "$ref": "#/$defs/Id"
1661
+ },
1662
+ "channel_id": {
1663
+ "$ref": "#/$defs/Id"
1664
+ },
1665
+ "reply_ts": {
1666
+ "$ref": "#/$defs/SlackTs"
1667
+ },
1668
+ "parent_ts": {
1669
+ "$ref": "#/$defs/SlackTs"
1670
+ }
1671
+ },
1672
+ "required": ["workspace_id", "channel_id", "reply_ts", "parent_ts"],
1673
+ "additionalProperties": false
1674
+ },
1675
+ "ReactionSummary": {
1676
+ "type": "object",
1677
+ "properties": {
1678
+ "workspace_id": {
1679
+ "$ref": "#/$defs/Id"
1680
+ },
1681
+ "channel_id": {
1682
+ "$ref": "#/$defs/Id"
1683
+ },
1684
+ "message_ts": {
1685
+ "$ref": "#/$defs/SlackTs"
1686
+ },
1687
+ "name": {
1688
+ "$ref": "#/$defs/Id"
1689
+ },
1690
+ "count": {
1691
+ "type": "integer",
1692
+ "minimum": 0
1693
+ }
1694
+ },
1695
+ "required": ["workspace_id", "channel_id", "message_ts", "name", "count"],
1696
+ "additionalProperties": false
1697
+ },
1698
+ "ReactionUser": {
1699
+ "type": "object",
1700
+ "properties": {
1701
+ "workspace_id": {
1702
+ "$ref": "#/$defs/Id"
1703
+ },
1704
+ "channel_id": {
1705
+ "$ref": "#/$defs/Id"
1706
+ },
1707
+ "message_ts": {
1708
+ "$ref": "#/$defs/SlackTs"
1709
+ },
1710
+ "name": {
1711
+ "$ref": "#/$defs/Id"
1712
+ },
1713
+ "user_id": {
1714
+ "$ref": "#/$defs/Id"
1715
+ }
1716
+ },
1717
+ "required": [
1718
+ "workspace_id",
1719
+ "channel_id",
1720
+ "message_ts",
1721
+ "name",
1722
+ "user_id"
1723
+ ],
1724
+ "additionalProperties": false
1725
+ },
1726
+ "MessageUserState": {
1727
+ "type": "object",
1728
+ "properties": {
1729
+ "workspace_id": {
1730
+ "$ref": "#/$defs/Id"
1731
+ },
1732
+ "channel_id": {
1733
+ "$ref": "#/$defs/Id"
1734
+ },
1735
+ "message_ts": {
1736
+ "$ref": "#/$defs/SlackTs"
1737
+ },
1738
+ "user_id": {
1739
+ "$ref": "#/$defs/Id"
1740
+ },
1741
+ "is_starred": {
1742
+ "type": "boolean"
1743
+ }
1744
+ },
1745
+ "required": ["workspace_id", "channel_id", "message_ts", "user_id"],
1746
+ "additionalProperties": false
1747
+ },
1748
+ "ScheduledMessage": {
1749
+ "type": "object",
1750
+ "properties": {
1751
+ "workspace_id": {
1752
+ "$ref": "#/$defs/Id"
1753
+ },
1754
+ "channel_id": {
1755
+ "$ref": "#/$defs/Id"
1756
+ },
1757
+ "id": {
1758
+ "$ref": "#/$defs/Id"
1759
+ },
1760
+ "type": {
1761
+ "type": "string",
1762
+ "const": "delayed_message"
1763
+ },
1764
+ "text": {
1765
+ "type": "string"
1766
+ },
1767
+ "subtype": {
1768
+ "type": "string"
1769
+ },
1770
+ "user": {
1771
+ "$ref": "#/$defs/Id"
1772
+ },
1773
+ "bot_id": {
1774
+ "$ref": "#/$defs/Id"
1775
+ },
1776
+ "app_id": {
1777
+ "$ref": "#/$defs/Id"
1778
+ },
1779
+ "username": {
1780
+ "type": "string"
1781
+ },
1782
+ "icon_url": {
1783
+ "type": "string"
1784
+ },
1785
+ "icon_emoji": {
1786
+ "type": "string"
1787
+ },
1788
+ "client_msg_id": {
1789
+ "type": "string"
1790
+ },
1791
+ "topic": {
1792
+ "type": "string"
1793
+ },
1794
+ "purpose": {
1795
+ "type": "string"
1796
+ },
1797
+ "old_name": {
1798
+ "type": "string"
1799
+ },
1800
+ "name": {
1801
+ "type": "string"
1802
+ },
1803
+ "team": {
1804
+ "$ref": "#/$defs/Id"
1805
+ },
1806
+ "source_team": {
1807
+ "$ref": "#/$defs/Id"
1808
+ },
1809
+ "user_team": {
1810
+ "$ref": "#/$defs/Id"
1811
+ },
1812
+ "channel_type": {
1813
+ "type": "string"
1814
+ },
1815
+ "upload": {
1816
+ "type": "boolean"
1817
+ },
1818
+ "hidden": {
1819
+ "type": "boolean"
1820
+ },
1821
+ "no_notifications": {
1822
+ "type": "boolean"
1823
+ },
1824
+ "edited": {
1825
+ "$ref": "#/$defs/Edited"
1826
+ },
1827
+ "bot_profile": {
1828
+ "$ref": "#/$defs/BotProfile"
1829
+ },
1830
+ "blocks": {
1831
+ "type": "array",
1832
+ "items": {
1833
+ "$ref": "#/$defs/Block"
1834
+ }
1835
+ },
1836
+ "attachments": {
1837
+ "type": "array",
1838
+ "items": {
1839
+ "$ref": "#/$defs/Attachment"
1840
+ }
1841
+ },
1842
+ "metadata": {
1843
+ "$ref": "#/$defs/Metadata"
1844
+ },
1845
+ "request_options": {
1846
+ "$ref": "#/$defs/RequestOptions"
1847
+ },
1848
+ "reply_count": {
1849
+ "type": "integer",
1850
+ "minimum": 0
1851
+ },
1852
+ "reply_users_count": {
1853
+ "type": "integer",
1854
+ "minimum": 0
1855
+ },
1856
+ "reply_users": {
1857
+ "type": "array",
1858
+ "items": {
1859
+ "$ref": "#/$defs/Id"
1860
+ }
1861
+ },
1862
+ "latest_reply": {
1863
+ "$ref": "#/$defs/SlackTs"
1864
+ },
1865
+ "deleted_ts": {
1866
+ "$ref": "#/$defs/SlackTs"
1867
+ },
1868
+ "event_ts": {
1869
+ "$ref": "#/$defs/SlackTs"
1870
+ },
1871
+ "message": {
1872
+ "$ref": "#/$defs/MessageSnapshot"
1873
+ },
1874
+ "previous_message": {
1875
+ "$ref": "#/$defs/MessageSnapshot"
1876
+ },
1877
+ "post_at": {
1878
+ "type": "integer",
1879
+ "minimum": 0
1880
+ },
1881
+ "date_created": {
1882
+ "type": "integer",
1883
+ "minimum": 0
1884
+ },
1885
+ "app_context": {
1886
+ "$ref": "#/$defs/AppContext"
1887
+ },
1888
+ "permalink": {
1889
+ "type": "string"
1890
+ }
1891
+ },
1892
+ "required": [
1893
+ "workspace_id",
1894
+ "channel_id",
1895
+ "id",
1896
+ "post_at",
1897
+ "date_created"
1898
+ ],
1899
+ "additionalProperties": false
1900
+ },
1901
+ "ScheduledMessageThread": {
1902
+ "type": "object",
1903
+ "properties": {
1904
+ "workspace_id": {
1905
+ "$ref": "#/$defs/Id"
1906
+ },
1907
+ "channel_id": {
1908
+ "$ref": "#/$defs/Id"
1909
+ },
1910
+ "scheduled_message_id": {
1911
+ "$ref": "#/$defs/Id"
1912
+ },
1913
+ "parent_ts": {
1914
+ "$ref": "#/$defs/SlackTs"
1915
+ }
1916
+ },
1917
+ "required": [
1918
+ "workspace_id",
1919
+ "channel_id",
1920
+ "scheduled_message_id",
1921
+ "parent_ts"
1922
+ ],
1923
+ "additionalProperties": false
1924
+ },
1925
+ "EphemeralMessage": {
1926
+ "type": "object",
1927
+ "properties": {
1928
+ "workspace_id": {
1929
+ "$ref": "#/$defs/Id"
1930
+ },
1931
+ "channel_id": {
1932
+ "$ref": "#/$defs/Id"
1933
+ },
1934
+ "ts": {
1935
+ "$ref": "#/$defs/SlackTs"
1936
+ },
1937
+ "recipient_user_id": {
1938
+ "$ref": "#/$defs/Id"
1939
+ },
1940
+ "type": {
1941
+ "type": "string",
1942
+ "const": "message"
1943
+ },
1944
+ "text": {
1945
+ "type": "string"
1946
+ },
1947
+ "subtype": {
1948
+ "type": "string"
1949
+ },
1950
+ "user": {
1951
+ "$ref": "#/$defs/Id"
1952
+ },
1953
+ "bot_id": {
1954
+ "$ref": "#/$defs/Id"
1955
+ },
1956
+ "app_id": {
1957
+ "$ref": "#/$defs/Id"
1958
+ },
1959
+ "username": {
1960
+ "type": "string"
1961
+ },
1962
+ "icon_url": {
1963
+ "type": "string"
1964
+ },
1965
+ "icon_emoji": {
1966
+ "type": "string"
1967
+ },
1968
+ "client_msg_id": {
1969
+ "type": "string"
1970
+ },
1971
+ "topic": {
1972
+ "type": "string"
1973
+ },
1974
+ "purpose": {
1975
+ "type": "string"
1976
+ },
1977
+ "old_name": {
1978
+ "type": "string"
1979
+ },
1980
+ "name": {
1981
+ "type": "string"
1982
+ },
1983
+ "team": {
1984
+ "$ref": "#/$defs/Id"
1985
+ },
1986
+ "source_team": {
1987
+ "$ref": "#/$defs/Id"
1988
+ },
1989
+ "user_team": {
1990
+ "$ref": "#/$defs/Id"
1991
+ },
1992
+ "channel_type": {
1993
+ "type": "string"
1994
+ },
1995
+ "upload": {
1996
+ "type": "boolean"
1997
+ },
1998
+ "hidden": {
1999
+ "type": "boolean"
2000
+ },
2001
+ "no_notifications": {
2002
+ "type": "boolean"
2003
+ },
2004
+ "edited": {
2005
+ "$ref": "#/$defs/Edited"
2006
+ },
2007
+ "bot_profile": {
2008
+ "$ref": "#/$defs/BotProfile"
2009
+ },
2010
+ "blocks": {
2011
+ "type": "array",
2012
+ "items": {
2013
+ "$ref": "#/$defs/Block"
2014
+ }
2015
+ },
2016
+ "attachments": {
2017
+ "type": "array",
2018
+ "items": {
2019
+ "$ref": "#/$defs/Attachment"
2020
+ }
2021
+ },
2022
+ "metadata": {
2023
+ "$ref": "#/$defs/Metadata"
2024
+ },
2025
+ "request_options": {
2026
+ "$ref": "#/$defs/RequestOptions"
2027
+ },
2028
+ "reply_count": {
2029
+ "type": "integer",
2030
+ "minimum": 0
2031
+ },
2032
+ "reply_users_count": {
2033
+ "type": "integer",
2034
+ "minimum": 0
2035
+ },
2036
+ "reply_users": {
2037
+ "type": "array",
2038
+ "items": {
2039
+ "$ref": "#/$defs/Id"
2040
+ }
2041
+ },
2042
+ "latest_reply": {
2043
+ "$ref": "#/$defs/SlackTs"
2044
+ },
2045
+ "deleted_ts": {
2046
+ "$ref": "#/$defs/SlackTs"
2047
+ },
2048
+ "event_ts": {
2049
+ "$ref": "#/$defs/SlackTs"
2050
+ },
2051
+ "message": {
2052
+ "$ref": "#/$defs/MessageSnapshot"
2053
+ },
2054
+ "previous_message": {
2055
+ "$ref": "#/$defs/MessageSnapshot"
2056
+ },
2057
+ "reaction_observations": {
2058
+ "type": "array",
2059
+ "items": {
2060
+ "$ref": "#/$defs/ReactionObservation"
2061
+ }
2062
+ },
2063
+ "unavailable_files": {
2064
+ "type": "array",
2065
+ "items": {
2066
+ "type": "object",
2067
+ "properties": {
2068
+ "id": {
2069
+ "$ref": "#/$defs/Id"
2070
+ },
2071
+ "reference": {
2072
+ "$ref": "#/$defs/UnavailableFile"
2073
+ }
2074
+ },
2075
+ "required": ["id", "reference"],
2076
+ "additionalProperties": false
2077
+ }
2078
+ },
2079
+ "app_context": {
2080
+ "$ref": "#/$defs/AppContext"
2081
+ },
2082
+ "permalink": {
2083
+ "type": "string"
2084
+ }
2085
+ },
2086
+ "required": [
2087
+ "workspace_id",
2088
+ "channel_id",
2089
+ "ts",
2090
+ "recipient_user_id",
2091
+ "type"
2092
+ ],
2093
+ "additionalProperties": false
2094
+ },
2095
+ "EphemeralMessageThread": {
2096
+ "type": "object",
2097
+ "properties": {
2098
+ "workspace_id": {
2099
+ "$ref": "#/$defs/Id"
2100
+ },
2101
+ "channel_id": {
2102
+ "$ref": "#/$defs/Id"
2103
+ },
2104
+ "message_ts": {
2105
+ "$ref": "#/$defs/SlackTs"
2106
+ },
2107
+ "recipient_user_id": {
2108
+ "$ref": "#/$defs/Id"
2109
+ },
2110
+ "parent_ts": {
2111
+ "$ref": "#/$defs/SlackTs"
2112
+ }
2113
+ },
2114
+ "required": [
2115
+ "workspace_id",
2116
+ "channel_id",
2117
+ "message_ts",
2118
+ "recipient_user_id",
2119
+ "parent_ts"
2120
+ ],
2121
+ "additionalProperties": false
2122
+ },
2123
+ "FileCommentObservation": {
2124
+ "type": "object",
2125
+ "properties": {
2126
+ "id": {
2127
+ "type": "string"
2128
+ },
2129
+ "user": {
2130
+ "type": "string"
2131
+ },
2132
+ "comment": {
2133
+ "type": "string"
2134
+ },
2135
+ "channel": {
2136
+ "type": "string"
2137
+ },
2138
+ "created": {
2139
+ "type": "integer",
2140
+ "minimum": 0
2141
+ },
2142
+ "timestamp": {
2143
+ "type": "integer",
2144
+ "minimum": 0
2145
+ }
2146
+ },
2147
+ "required": [],
2148
+ "additionalProperties": false,
2149
+ "description": "Legacy uploader comment observation only; no file-comment entity, pin, or API semantics."
2150
+ },
2151
+ "File": {
2152
+ "type": "object",
2153
+ "properties": {
2154
+ "workspace_id": {
2155
+ "$ref": "#/$defs/Id"
2156
+ },
2157
+ "id": {
2158
+ "$ref": "#/$defs/Id"
2159
+ },
2160
+ "name": {
2161
+ "type": ["string", "null"]
2162
+ },
2163
+ "team_id": {
2164
+ "type": "string"
2165
+ },
2166
+ "user": {
2167
+ "type": "string"
2168
+ },
2169
+ "source_team": {
2170
+ "type": "string"
2171
+ },
2172
+ "user_team": {
2173
+ "type": "string"
2174
+ },
2175
+ "title": {
2176
+ "type": "string"
2177
+ },
2178
+ "mimetype": {
2179
+ "type": "string"
2180
+ },
2181
+ "filetype": {
2182
+ "type": "string"
2183
+ },
2184
+ "pretty_type": {
2185
+ "type": "string"
2186
+ },
2187
+ "mode": {
2188
+ "type": "string"
2189
+ },
2190
+ "external_type": {
2191
+ "type": "string"
2192
+ },
2193
+ "external_id": {
2194
+ "type": "string"
2195
+ },
2196
+ "url": {
2197
+ "type": "string"
2198
+ },
2199
+ "url_download": {
2200
+ "type": "string"
2201
+ },
2202
+ "url_private": {
2203
+ "type": "string"
2204
+ },
2205
+ "url_private_download": {
2206
+ "type": "string"
2207
+ },
2208
+ "permalink": {
2209
+ "type": "string"
2210
+ },
2211
+ "permalink_public": {
2212
+ "type": "string"
2213
+ },
2214
+ "edit_link": {
2215
+ "type": "string"
2216
+ },
2217
+ "username": {
2218
+ "type": "string"
2219
+ },
2220
+ "bot_id": {
2221
+ "type": "string"
2222
+ },
2223
+ "bot_user_id": {
2224
+ "type": "string"
2225
+ },
2226
+ "alt_txt": {
2227
+ "type": "string"
2228
+ },
2229
+ "snippet_type": {
2230
+ "type": "string"
2231
+ },
2232
+ "subtype": {
2233
+ "type": "string"
2234
+ },
2235
+ "access": {
2236
+ "type": "string"
2237
+ },
2238
+ "file_access": {
2239
+ "type": "string"
2240
+ },
2241
+ "org_or_workspace_access": {
2242
+ "type": "string"
2243
+ },
2244
+ "preview": {
2245
+ "type": "string"
2246
+ },
2247
+ "preview_highlight": {
2248
+ "type": "string"
2249
+ },
2250
+ "preview_plain_text": {
2251
+ "type": "string"
2252
+ },
2253
+ "preview_html": {
2254
+ "type": "string"
2255
+ },
2256
+ "deanimate_gif": {
2257
+ "type": "string"
2258
+ },
2259
+ "pjpeg": {
2260
+ "type": "string"
2261
+ },
2262
+ "external_url": {
2263
+ "type": ["string", "null"]
2264
+ },
2265
+ "state": {
2266
+ "type": ["string", "null"]
2267
+ },
2268
+ "timestamp": {
2269
+ "type": ["integer", "null"],
2270
+ "minimum": 0
2271
+ },
2272
+ "size": {
2273
+ "type": "integer",
2274
+ "minimum": 0
2275
+ },
2276
+ "created": {
2277
+ "type": "integer",
2278
+ "minimum": 0
2279
+ },
2280
+ "updated": {
2281
+ "type": "integer",
2282
+ "minimum": 0
2283
+ },
2284
+ "comments_count": {
2285
+ "type": "integer",
2286
+ "minimum": 0
2287
+ },
2288
+ "num_stars": {
2289
+ "type": "integer",
2290
+ "minimum": 0
2291
+ },
2292
+ "original_w": {
2293
+ "type": "integer",
2294
+ "minimum": 0
2295
+ },
2296
+ "original_h": {
2297
+ "type": "integer",
2298
+ "minimum": 0
2299
+ },
2300
+ "image_exif_rotation": {
2301
+ "type": "integer",
2302
+ "minimum": 0
2303
+ },
2304
+ "lines": {
2305
+ "type": "integer",
2306
+ "minimum": 0
2307
+ },
2308
+ "lines_more": {
2309
+ "type": "integer",
2310
+ "minimum": 0
2311
+ },
2312
+ "private_channels_with_file_access_count": {
2313
+ "type": "integer",
2314
+ "minimum": 0
2315
+ },
2316
+ "private_external_workspaces_with_read_access_count": {
2317
+ "type": "integer",
2318
+ "minimum": 0
2319
+ },
2320
+ "most_recent_access_request_ts": {
2321
+ "type": "integer",
2322
+ "minimum": 0
2323
+ },
2324
+ "is_external": {
2325
+ "type": "boolean"
2326
+ },
2327
+ "is_public": {
2328
+ "type": "boolean"
2329
+ },
2330
+ "public_url_shared": {
2331
+ "type": "boolean"
2332
+ },
2333
+ "display_as_bot": {
2334
+ "type": "boolean"
2335
+ },
2336
+ "editable": {
2337
+ "type": "boolean"
2338
+ },
2339
+ "deleted": {
2340
+ "type": "boolean"
2341
+ },
2342
+ "has_rich_preview": {
2343
+ "type": "boolean"
2344
+ },
2345
+ "has_more_shares": {
2346
+ "type": "boolean"
2347
+ },
2348
+ "skipped_shares": {
2349
+ "type": "boolean"
2350
+ },
2351
+ "is_restricted_sharing_enabled": {
2352
+ "type": "boolean"
2353
+ },
2354
+ "ai_generated": {
2355
+ "type": "boolean"
2356
+ },
2357
+ "restriction_type": {
2358
+ "type": "integer",
2359
+ "enum": [0, 1]
2360
+ },
2361
+ "teams_shared_with": {
2362
+ "type": "array",
2363
+ "items": {
2364
+ "$ref": "#/$defs/Id"
2365
+ }
2366
+ },
2367
+ "external_workspaces_with_read_access": {
2368
+ "type": "array",
2369
+ "items": {
2370
+ "$ref": "#/$defs/Id"
2371
+ }
2372
+ },
2373
+ "dm_mpdm_users_with_file_access": {
2374
+ "type": "array",
2375
+ "items": {
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "user_id": {
2379
+ "$ref": "#/$defs/Id"
2380
+ },
2381
+ "access": {
2382
+ "type": "string"
2383
+ }
2384
+ },
2385
+ "required": ["user_id"],
2386
+ "additionalProperties": false
2387
+ }
2388
+ },
2389
+ "initial_comment": {
2390
+ "$ref": "#/$defs/FileCommentObservation"
2391
+ },
2392
+ "upload_initial_comment": {
2393
+ "type": "string"
2394
+ },
2395
+ "thumb_64": {
2396
+ "type": "string"
2397
+ },
2398
+ "thumb_80": {
2399
+ "type": "string"
2400
+ },
2401
+ "thumb_160": {
2402
+ "type": "string"
2403
+ },
2404
+ "thumb_360": {
2405
+ "type": "string"
2406
+ },
2407
+ "thumb_360_w": {
2408
+ "type": "integer",
2409
+ "minimum": 0
2410
+ },
2411
+ "thumb_360_h": {
2412
+ "type": "integer",
2413
+ "minimum": 0
2414
+ },
2415
+ "thumb_480": {
2416
+ "type": "string"
2417
+ },
2418
+ "thumb_480_w": {
2419
+ "type": "integer",
2420
+ "minimum": 0
2421
+ },
2422
+ "thumb_480_h": {
2423
+ "type": "integer",
2424
+ "minimum": 0
2425
+ },
2426
+ "thumb_720": {
2427
+ "type": "string"
2428
+ },
2429
+ "thumb_720_w": {
2430
+ "type": "integer",
2431
+ "minimum": 0
2432
+ },
2433
+ "thumb_720_h": {
2434
+ "type": "integer",
2435
+ "minimum": 0
2436
+ },
2437
+ "thumb_800": {
2438
+ "type": "string"
2439
+ },
2440
+ "thumb_800_w": {
2441
+ "type": "integer",
2442
+ "minimum": 0
2443
+ },
2444
+ "thumb_800_h": {
2445
+ "type": "integer",
2446
+ "minimum": 0
2447
+ },
2448
+ "thumb_960": {
2449
+ "type": "string"
2450
+ },
2451
+ "thumb_960_w": {
2452
+ "type": "integer",
2453
+ "minimum": 0
2454
+ },
2455
+ "thumb_960_h": {
2456
+ "type": "integer",
2457
+ "minimum": 0
2458
+ },
2459
+ "thumb_1024": {
2460
+ "type": "string"
2461
+ },
2462
+ "thumb_1024_w": {
2463
+ "type": "integer",
2464
+ "minimum": 0
2465
+ },
2466
+ "thumb_1024_h": {
2467
+ "type": "integer",
2468
+ "minimum": 0
2469
+ },
2470
+ "thumb_360_gif": {
2471
+ "type": "string"
2472
+ },
2473
+ "thumb_pdf": {
2474
+ "type": "string"
2475
+ },
2476
+ "date_delete": {
2477
+ "type": "integer",
2478
+ "minimum": 0
2479
+ },
2480
+ "is_archived": {
2481
+ "type": "boolean"
2482
+ },
2483
+ "is_deleted": {
2484
+ "type": "boolean"
2485
+ },
2486
+ "is_hidden_by_limit": {
2487
+ "type": "boolean"
2488
+ },
2489
+ "is_legally_held": {
2490
+ "type": "boolean"
2491
+ },
2492
+ "is_tombstoned": {
2493
+ "type": "boolean"
2494
+ },
2495
+ "update_notification": {
2496
+ "type": ["integer", "null"],
2497
+ "minimum": 0
2498
+ },
2499
+ "migrated_id": {
2500
+ "type": "string"
2501
+ },
2502
+ "app_id": {
2503
+ "type": "string"
2504
+ },
2505
+ "app_name": {
2506
+ "type": "string"
2507
+ },
2508
+ "thumb_480_gif": {
2509
+ "type": "string"
2510
+ },
2511
+ "thumb_video": {
2512
+ "type": "string"
2513
+ },
2514
+ "url_static_preview": {
2515
+ "type": "string"
2516
+ },
2517
+ "deanimate": {
2518
+ "type": "string"
2519
+ },
2520
+ "converted_pdf": {
2521
+ "type": "string"
2522
+ },
2523
+ "thumb_pdf_w": {
2524
+ "type": "integer",
2525
+ "minimum": 0
2526
+ },
2527
+ "thumb_pdf_h": {
2528
+ "type": "integer",
2529
+ "minimum": 0
2530
+ },
2531
+ "thumb_video_ts": {
2532
+ "type": "string"
2533
+ },
2534
+ "thumb_video_w": {
2535
+ "type": "integer",
2536
+ "minimum": 0
2537
+ },
2538
+ "thumb_video_h": {
2539
+ "type": "integer",
2540
+ "minimum": 0
2541
+ }
2542
+ },
2543
+ "required": ["workspace_id", "id", "mode", "mimetype", "size"],
2544
+ "additionalProperties": false
2545
+ },
2546
+ "MessageFile": {
2547
+ "type": "object",
2548
+ "properties": {
2549
+ "workspace_id": {
2550
+ "$ref": "#/$defs/Id"
2551
+ },
2552
+ "channel_id": {
2553
+ "$ref": "#/$defs/Id"
2554
+ },
2555
+ "message_ts": {
2556
+ "$ref": "#/$defs/SlackTs"
2557
+ },
2558
+ "file_id": {
2559
+ "$ref": "#/$defs/Id"
2560
+ },
2561
+ "position": {
2562
+ "type": "integer",
2563
+ "minimum": 0
2564
+ }
2565
+ },
2566
+ "required": ["workspace_id", "channel_id", "message_ts", "file_id"],
2567
+ "additionalProperties": false
2568
+ },
2569
+ "UnavailableMessageFile": {
2570
+ "type": "object",
2571
+ "properties": {
2572
+ "workspace_id": {
2573
+ "$ref": "#/$defs/Id"
2574
+ },
2575
+ "channel_id": {
2576
+ "$ref": "#/$defs/Id"
2577
+ },
2578
+ "message_ts": {
2579
+ "$ref": "#/$defs/SlackTs"
2580
+ },
2581
+ "file_id": {
2582
+ "$ref": "#/$defs/Id"
2583
+ },
2584
+ "reference": {
2585
+ "$ref": "#/$defs/UnavailableFile"
2586
+ },
2587
+ "position": {
2588
+ "type": "integer",
2589
+ "minimum": 0
2590
+ }
2591
+ },
2592
+ "required": [
2593
+ "workspace_id",
2594
+ "channel_id",
2595
+ "message_ts",
2596
+ "file_id",
2597
+ "reference"
2598
+ ],
2599
+ "additionalProperties": false
2600
+ },
2601
+ "EphemeralMessageFile": {
2602
+ "type": "object",
2603
+ "properties": {
2604
+ "workspace_id": {
2605
+ "$ref": "#/$defs/Id"
2606
+ },
2607
+ "channel_id": {
2608
+ "$ref": "#/$defs/Id"
2609
+ },
2610
+ "message_ts": {
2611
+ "$ref": "#/$defs/SlackTs"
2612
+ },
2613
+ "recipient_user_id": {
2614
+ "$ref": "#/$defs/Id"
2615
+ },
2616
+ "file_id": {
2617
+ "$ref": "#/$defs/Id"
2618
+ },
2619
+ "position": {
2620
+ "type": "integer",
2621
+ "minimum": 0
2622
+ }
2623
+ },
2624
+ "required": [
2625
+ "workspace_id",
2626
+ "channel_id",
2627
+ "message_ts",
2628
+ "recipient_user_id",
2629
+ "file_id"
2630
+ ],
2631
+ "additionalProperties": false
2632
+ },
2633
+ "FileShare": {
2634
+ "type": "object",
2635
+ "properties": {
2636
+ "workspace_id": {
2637
+ "$ref": "#/$defs/Id"
2638
+ },
2639
+ "channel_id": {
2640
+ "$ref": "#/$defs/Id"
2641
+ },
2642
+ "message_ts": {
2643
+ "$ref": "#/$defs/SlackTs"
2644
+ },
2645
+ "file_id": {
2646
+ "$ref": "#/$defs/Id"
2647
+ },
2648
+ "visibility": {
2649
+ "type": "string",
2650
+ "enum": ["public", "private"]
2651
+ },
2652
+ "channel_name": {
2653
+ "type": "string"
2654
+ },
2655
+ "team_id": {
2656
+ "type": "string"
2657
+ },
2658
+ "share_user_id": {
2659
+ "type": "string"
2660
+ },
2661
+ "source": {
2662
+ "type": "string"
2663
+ },
2664
+ "observed_thread_ts": {
2665
+ "$ref": "#/$defs/SlackTs"
2666
+ },
2667
+ "latest_reply": {
2668
+ "$ref": "#/$defs/SlackTs"
2669
+ },
2670
+ "reply_count": {
2671
+ "type": "integer",
2672
+ "minimum": 0
2673
+ },
2674
+ "reply_users_count": {
2675
+ "type": "integer",
2676
+ "minimum": 0
2677
+ },
2678
+ "reply_users": {
2679
+ "type": "array",
2680
+ "items": {
2681
+ "$ref": "#/$defs/Id"
2682
+ }
2683
+ },
2684
+ "is_silent_share": {
2685
+ "type": "boolean"
2686
+ }
2687
+ },
2688
+ "required": [
2689
+ "workspace_id",
2690
+ "channel_id",
2691
+ "message_ts",
2692
+ "file_id",
2693
+ "visibility"
2694
+ ],
2695
+ "additionalProperties": false
2696
+ },
2697
+ "FileChannelObservation": {
2698
+ "type": "object",
2699
+ "properties": {
2700
+ "workspace_id": {
2701
+ "$ref": "#/$defs/Id"
2702
+ },
2703
+ "file_id": {
2704
+ "$ref": "#/$defs/Id"
2705
+ },
2706
+ "channel_id": {
2707
+ "$ref": "#/$defs/Id"
2708
+ },
2709
+ "kind": {
2710
+ "type": "string",
2711
+ "enum": ["channels", "groups", "ims"]
2712
+ }
2713
+ },
2714
+ "required": ["workspace_id", "file_id", "channel_id", "kind"],
2715
+ "additionalProperties": false
2716
+ },
2717
+ "FileUserState": {
2718
+ "type": "object",
2719
+ "properties": {
2720
+ "workspace_id": {
2721
+ "$ref": "#/$defs/Id"
2722
+ },
2723
+ "file_id": {
2724
+ "$ref": "#/$defs/Id"
2725
+ },
2726
+ "user_id": {
2727
+ "$ref": "#/$defs/Id"
2728
+ },
2729
+ "is_starred": {
2730
+ "type": "boolean"
2731
+ },
2732
+ "last_read": {
2733
+ "type": "integer",
2734
+ "minimum": 0
2735
+ }
2736
+ },
2737
+ "required": ["workspace_id", "file_id", "user_id"],
2738
+ "additionalProperties": false
2739
+ },
2740
+ "FileReactionSummary": {
2741
+ "type": "object",
2742
+ "properties": {
2743
+ "workspace_id": {
2744
+ "$ref": "#/$defs/Id"
2745
+ },
2746
+ "file_id": {
2747
+ "$ref": "#/$defs/Id"
2748
+ },
2749
+ "name": {
2750
+ "$ref": "#/$defs/Id"
2751
+ },
2752
+ "count": {
2753
+ "type": "integer",
2754
+ "minimum": 0
2755
+ }
2756
+ },
2757
+ "required": ["workspace_id", "file_id", "name", "count"],
2758
+ "additionalProperties": false
2759
+ },
2760
+ "FileReactionUser": {
2761
+ "type": "object",
2762
+ "properties": {
2763
+ "workspace_id": {
2764
+ "$ref": "#/$defs/Id"
2765
+ },
2766
+ "file_id": {
2767
+ "$ref": "#/$defs/Id"
2768
+ },
2769
+ "name": {
2770
+ "$ref": "#/$defs/Id"
2771
+ },
2772
+ "user_id": {
2773
+ "$ref": "#/$defs/Id"
2774
+ }
2775
+ },
2776
+ "required": ["workspace_id", "file_id", "name", "user_id"],
2777
+ "additionalProperties": false
2778
+ },
2779
+ "Pin": {
2780
+ "type": "object",
2781
+ "properties": {
2782
+ "workspace_id": {
2783
+ "$ref": "#/$defs/Id"
2784
+ },
2785
+ "channel_id": {
2786
+ "$ref": "#/$defs/Id"
2787
+ },
2788
+ "message_ts": {
2789
+ "$ref": "#/$defs/SlackTs"
2790
+ },
2791
+ "created": {
2792
+ "type": "integer",
2793
+ "minimum": 0
2794
+ },
2795
+ "created_by": {
2796
+ "$ref": "#/$defs/Id"
2797
+ }
2798
+ },
2799
+ "required": ["workspace_id", "channel_id", "message_ts"],
2800
+ "additionalProperties": false
2801
+ },
2802
+ "Bookmark": {
2803
+ "type": "object",
2804
+ "properties": {
2805
+ "workspace_id": {
2806
+ "$ref": "#/$defs/Id"
2807
+ },
2808
+ "channel_id": {
2809
+ "$ref": "#/$defs/Id"
2810
+ },
2811
+ "id": {
2812
+ "$ref": "#/$defs/Id"
2813
+ },
2814
+ "type": {
2815
+ "type": "string"
2816
+ },
2817
+ "title": {
2818
+ "type": "string"
2819
+ },
2820
+ "link": {
2821
+ "type": "string"
2822
+ },
2823
+ "emoji": {
2824
+ "type": "string"
2825
+ },
2826
+ "icon_url": {
2827
+ "type": "string"
2828
+ },
2829
+ "rank": {
2830
+ "type": "string"
2831
+ },
2832
+ "last_updated_by_user_id": {
2833
+ "type": "string"
2834
+ },
2835
+ "last_updated_by_team_id": {
2836
+ "type": "string"
2837
+ },
2838
+ "entity_id": {
2839
+ "type": ["string", "null"]
2840
+ },
2841
+ "shortcut_id": {
2842
+ "type": ["string", "null"]
2843
+ },
2844
+ "app_id": {
2845
+ "type": ["string", "null"]
2846
+ },
2847
+ "parent_id": {
2848
+ "type": ["string", "null"]
2849
+ },
2850
+ "date_created": {
2851
+ "type": "integer",
2852
+ "minimum": 0
2853
+ },
2854
+ "date_updated": {
2855
+ "type": "integer",
2856
+ "minimum": 0
2857
+ },
2858
+ "access_level": {
2859
+ "type": "string",
2860
+ "enum": ["read", "write"]
2861
+ }
2862
+ },
2863
+ "required": ["workspace_id", "channel_id", "id", "type", "title", "rank"],
2864
+ "additionalProperties": false
2865
+ },
2866
+ "Usergroup": {
2867
+ "type": "object",
2868
+ "properties": {
2869
+ "workspace_id": {
2870
+ "$ref": "#/$defs/Id"
2871
+ },
2872
+ "id": {
2873
+ "$ref": "#/$defs/Id"
2874
+ },
2875
+ "team_id": {
2876
+ "type": "string"
2877
+ },
2878
+ "name": {
2879
+ "type": "string"
2880
+ },
2881
+ "handle": {
2882
+ "type": "string"
2883
+ },
2884
+ "description": {
2885
+ "type": "string"
2886
+ },
2887
+ "enterprise_id": {
2888
+ "type": "string"
2889
+ },
2890
+ "enterprise_subteam_id": {
2891
+ "type": "string"
2892
+ },
2893
+ "auto_type": {
2894
+ "type": ["string", "null"]
2895
+ },
2896
+ "created_by": {
2897
+ "type": ["string", "null"]
2898
+ },
2899
+ "updated_by": {
2900
+ "type": ["string", "null"]
2901
+ },
2902
+ "deleted_by": {
2903
+ "type": ["string", "null"]
2904
+ },
2905
+ "date_create": {
2906
+ "type": "integer",
2907
+ "minimum": 0
2908
+ },
2909
+ "date_update": {
2910
+ "type": "integer",
2911
+ "minimum": 0
2912
+ },
2913
+ "date_delete": {
2914
+ "type": "integer",
2915
+ "minimum": 0
2916
+ },
2917
+ "channel_count": {
2918
+ "type": "integer",
2919
+ "minimum": 0
2920
+ },
2921
+ "user_count": {
2922
+ "anyOf": [
2923
+ {
2924
+ "type": "integer",
2925
+ "minimum": 0
2926
+ },
2927
+ {
2928
+ "type": "string"
2929
+ }
2930
+ ]
2931
+ },
2932
+ "is_usergroup": {
2933
+ "type": "boolean"
2934
+ },
2935
+ "is_external": {
2936
+ "type": "boolean"
2937
+ },
2938
+ "auto_provision": {
2939
+ "type": "boolean"
2940
+ },
2941
+ "is_editing_restricted": {
2942
+ "type": "boolean"
2943
+ },
2944
+ "is_idp_group": {
2945
+ "type": "boolean"
2946
+ },
2947
+ "is_membership_locked": {
2948
+ "type": "boolean"
2949
+ },
2950
+ "is_org_level": {
2951
+ "type": "boolean"
2952
+ },
2953
+ "is_section": {
2954
+ "type": "boolean"
2955
+ },
2956
+ "is_subteam": {
2957
+ "type": "boolean"
2958
+ },
2959
+ "is_visible": {
2960
+ "type": "boolean"
2961
+ },
2962
+ "teams": {
2963
+ "type": "array",
2964
+ "items": {
2965
+ "$ref": "#/$defs/Id"
2966
+ }
2967
+ },
2968
+ "prefs": {
2969
+ "type": "object",
2970
+ "properties": {
2971
+ "file_id": {
2972
+ "$ref": "#/$defs/Id"
2973
+ }
2974
+ },
2975
+ "required": [],
2976
+ "additionalProperties": false
2977
+ },
2978
+ "users_state": {
2979
+ "$ref": "#/$defs/CollectionObservation"
2980
+ }
2981
+ },
2982
+ "required": ["workspace_id", "id"],
2983
+ "additionalProperties": false
2984
+ },
2985
+ "UsergroupMembership": {
2986
+ "type": "object",
2987
+ "properties": {
2988
+ "workspace_id": {
2989
+ "$ref": "#/$defs/Id"
2990
+ },
2991
+ "usergroup_id": {
2992
+ "$ref": "#/$defs/Id"
2993
+ },
2994
+ "user_id": {
2995
+ "$ref": "#/$defs/Id"
2996
+ }
2997
+ },
2998
+ "required": ["workspace_id", "usergroup_id", "user_id"],
2999
+ "additionalProperties": false
3000
+ },
3001
+ "UsergroupChannel": {
3002
+ "type": "object",
3003
+ "properties": {
3004
+ "workspace_id": {
3005
+ "$ref": "#/$defs/Id"
3006
+ },
3007
+ "usergroup_id": {
3008
+ "$ref": "#/$defs/Id"
3009
+ },
3010
+ "channel_id": {
3011
+ "$ref": "#/$defs/Id"
3012
+ },
3013
+ "kind": {
3014
+ "type": "string",
3015
+ "enum": [
3016
+ "associated",
3017
+ "default_public",
3018
+ "default_private",
3019
+ "default_additional"
3020
+ ]
3021
+ }
3022
+ },
3023
+ "required": ["workspace_id", "usergroup_id", "channel_id", "kind"],
3024
+ "additionalProperties": false
3025
+ },
3026
+ "ViewStateValue": {
3027
+ "type": "object",
3028
+ "properties": {
3029
+ "type": {
3030
+ "$ref": "#/$defs/Id"
3031
+ },
3032
+ "value": {
3033
+ "type": ["string", "null"]
3034
+ },
3035
+ "selected_date": {
3036
+ "type": ["string", "null"]
3037
+ },
3038
+ "selected_time": {
3039
+ "type": ["string", "null"]
3040
+ },
3041
+ "selected_user": {
3042
+ "type": ["string", "null"]
3043
+ },
3044
+ "selected_channel": {
3045
+ "type": ["string", "null"]
3046
+ },
3047
+ "selected_conversation": {
3048
+ "type": ["string", "null"]
3049
+ },
3050
+ "selected_date_time": {
3051
+ "type": ["integer", "null"],
3052
+ "minimum": 0
3053
+ },
3054
+ "selected_users": {
3055
+ "type": ["array", "null"],
3056
+ "items": {
3057
+ "type": "string"
3058
+ }
3059
+ },
3060
+ "selected_channels": {
3061
+ "type": ["array", "null"],
3062
+ "items": {
3063
+ "type": "string"
3064
+ }
3065
+ },
3066
+ "selected_conversations": {
3067
+ "type": ["array", "null"],
3068
+ "items": {
3069
+ "type": "string"
3070
+ }
3071
+ },
3072
+ "selected_option": {
3073
+ "anyOf": [
3074
+ {
3075
+ "$ref": "#/$defs/VendorObject"
3076
+ },
3077
+ {
3078
+ "type": "null"
3079
+ }
3080
+ ]
3081
+ },
3082
+ "selected_options": {
3083
+ "type": "array",
3084
+ "items": {
3085
+ "$ref": "#/$defs/VendorObject"
3086
+ }
3087
+ },
3088
+ "rich_text_value": {
3089
+ "anyOf": [
3090
+ {
3091
+ "$ref": "#/$defs/VendorObject"
3092
+ },
3093
+ {
3094
+ "type": "null"
3095
+ }
3096
+ ]
3097
+ }
3098
+ },
3099
+ "required": ["type"],
3100
+ "additionalProperties": true,
3101
+ "description": "Known state value types plus vendor-defined element extensions. Block/action map keys are normalized into ViewStateEntry keys; no element compatibility validation."
3102
+ },
3103
+ "View": {
3104
+ "type": "object",
3105
+ "properties": {
3106
+ "workspace_id": {
3107
+ "$ref": "#/$defs/Id"
3108
+ },
3109
+ "id": {
3110
+ "$ref": "#/$defs/Id"
3111
+ },
3112
+ "user_id": {
3113
+ "$ref": "#/$defs/Id"
3114
+ },
3115
+ "team_id": {
3116
+ "type": "string"
3117
+ },
3118
+ "app_id": {
3119
+ "type": "string"
3120
+ },
3121
+ "bot_id": {
3122
+ "type": "string"
3123
+ },
3124
+ "hash": {
3125
+ "type": "string"
3126
+ },
3127
+ "root_view_id": {
3128
+ "type": "string"
3129
+ },
3130
+ "previous_view_id": {
3131
+ "type": "string"
3132
+ },
3133
+ "type": {
3134
+ "type": "string",
3135
+ "enum": ["home", "modal"]
3136
+ },
3137
+ "blocks": {
3138
+ "type": "array",
3139
+ "items": {
3140
+ "$ref": "#/$defs/Block"
3141
+ },
3142
+ "maxItems": 100
3143
+ },
3144
+ "title": {
3145
+ "anyOf": [
3146
+ {
3147
+ "$ref": "#/$defs/PlainTextObject"
3148
+ },
3149
+ {
3150
+ "type": "null"
3151
+ }
3152
+ ]
3153
+ },
3154
+ "submit": {
3155
+ "anyOf": [
3156
+ {
3157
+ "$ref": "#/$defs/PlainTextObject"
3158
+ },
3159
+ {
3160
+ "type": "null"
3161
+ }
3162
+ ]
3163
+ },
3164
+ "close": {
3165
+ "anyOf": [
3166
+ {
3167
+ "$ref": "#/$defs/PlainTextObject"
3168
+ },
3169
+ {
3170
+ "type": "null"
3171
+ }
3172
+ ]
3173
+ },
3174
+ "private_metadata": {
3175
+ "type": "string",
3176
+ "maxLength": 3000
3177
+ },
3178
+ "callback_id": {
3179
+ "type": "string",
3180
+ "maxLength": 255
3181
+ },
3182
+ "external_id": {
3183
+ "type": "string"
3184
+ },
3185
+ "clear_on_close": {
3186
+ "type": "boolean"
3187
+ },
3188
+ "notify_on_close": {
3189
+ "type": "boolean"
3190
+ },
3191
+ "submit_disabled": {
3192
+ "type": "boolean"
3193
+ },
3194
+ "created": {
3195
+ "type": "integer",
3196
+ "minimum": 0
3197
+ },
3198
+ "updated": {
3199
+ "type": "integer",
3200
+ "minimum": 0
3201
+ },
3202
+ "state": {
3203
+ "type": "object",
3204
+ "properties": {
3205
+ "values_state": {
3206
+ "$ref": "#/$defs/CollectionObservation"
3207
+ }
3208
+ },
3209
+ "required": [],
3210
+ "additionalProperties": false,
3211
+ "description": "Normalized state map observation; dynamic values live in slack_view_state_entries."
3212
+ }
3213
+ },
3214
+ "required": ["workspace_id", "id", "type", "blocks", "user_id"],
3215
+ "additionalProperties": false
3216
+ },
3217
+ "ViewStateEntry": {
3218
+ "type": "object",
3219
+ "properties": {
3220
+ "workspace_id": {
3221
+ "$ref": "#/$defs/Id"
3222
+ },
3223
+ "view_id": {
3224
+ "$ref": "#/$defs/Id"
3225
+ },
3226
+ "block_id": {
3227
+ "$ref": "#/$defs/Id"
3228
+ },
3229
+ "action_id": {
3230
+ "$ref": "#/$defs/Id"
3231
+ },
3232
+ "value": {
3233
+ "$ref": "#/$defs/ViewStateValue"
3234
+ }
3235
+ },
3236
+ "required": ["workspace_id", "view_id", "block_id", "action_id", "value"],
3237
+ "additionalProperties": false
3238
+ },
3239
+ "AppContext": {
3240
+ "type": "object",
3241
+ "properties": {
3242
+ "entities": {
3243
+ "type": "array",
3244
+ "items": {
3245
+ "type": "object",
3246
+ "properties": {
3247
+ "type": {
3248
+ "type": "string"
3249
+ },
3250
+ "value": {
3251
+ "type": "string"
3252
+ },
3253
+ "team_id": {
3254
+ "type": "string"
3255
+ }
3256
+ },
3257
+ "required": ["type", "value"],
3258
+ "additionalProperties": false
3259
+ }
3260
+ }
3261
+ },
3262
+ "required": [],
3263
+ "additionalProperties": false
3264
+ },
3265
+ "SlackErrorResponse": {
3266
+ "type": "object",
3267
+ "properties": {
3268
+ "ok": {
3269
+ "type": "boolean",
3270
+ "const": false
3271
+ },
3272
+ "error": {
3273
+ "type": "string",
3274
+ "minLength": 1
3275
+ }
3276
+ },
3277
+ "required": ["ok", "error"],
3278
+ "additionalProperties": false
3279
+ },
3280
+ "SlackChannelResponse": {
3281
+ "type": "object",
3282
+ "properties": {
3283
+ "ok": {
3284
+ "type": "boolean",
3285
+ "const": true
3286
+ },
3287
+ "channel": {
3288
+ "type": "object",
3289
+ "properties": {},
3290
+ "additionalProperties": true
3291
+ }
3292
+ },
3293
+ "required": ["ok", "channel"],
3294
+ "additionalProperties": false
3295
+ },
3296
+ "SlackHistoryResponse": {
3297
+ "type": "object",
3298
+ "properties": {
3299
+ "ok": {
3300
+ "type": "boolean",
3301
+ "const": true
3302
+ },
3303
+ "messages": {
3304
+ "type": "array",
3305
+ "items": {
3306
+ "type": "object",
3307
+ "properties": {},
3308
+ "additionalProperties": true
3309
+ }
3310
+ },
3311
+ "response_metadata": {
3312
+ "type": "object",
3313
+ "properties": {
3314
+ "next_cursor": {
3315
+ "type": "string"
3316
+ }
3317
+ },
3318
+ "required": ["next_cursor"],
3319
+ "additionalProperties": false
3320
+ },
3321
+ "has_more": {
3322
+ "type": "boolean"
3323
+ }
3324
+ },
3325
+ "required": ["ok", "messages", "response_metadata", "has_more"],
3326
+ "additionalProperties": false
3327
+ },
3328
+ "SlackOkResponse": {
3329
+ "type": "object",
3330
+ "properties": {
3331
+ "ok": {
3332
+ "type": "boolean",
3333
+ "const": true
3334
+ }
3335
+ },
3336
+ "required": ["ok"],
3337
+ "additionalProperties": false
3338
+ }
3339
+ },
3340
+ "x-gateway": {
3341
+ "version": 1,
3342
+ "domain_version": "2.0.0",
3343
+ "package": {
3344
+ "id": "gateway-connector-slack",
3345
+ "version": "2.1.1"
3346
+ },
3347
+ "entities": {
3348
+ "slack_workspaces": {
3349
+ "schema": {
3350
+ "$ref": "#/$defs/Workspace"
3351
+ },
3352
+ "primary_key": ["id"],
3353
+ "relationships": []
3354
+ },
3355
+ "slack_users": {
3356
+ "schema": {
3357
+ "$ref": "#/$defs/User"
3358
+ },
3359
+ "primary_key": ["workspace_id", "id"],
3360
+ "relationships": [
3361
+ {
3362
+ "fields": ["workspace_id"],
3363
+ "target": "slack_workspaces",
3364
+ "on_delete": "restrict"
3365
+ }
3366
+ ]
3367
+ },
3368
+ "slack_user_profile_fields": {
3369
+ "schema": {
3370
+ "$ref": "#/$defs/UserProfileField"
3371
+ },
3372
+ "primary_key": ["workspace_id", "user_id", "field_id"],
3373
+ "relationships": [
3374
+ {
3375
+ "fields": ["workspace_id", "user_id"],
3376
+ "target": "slack_users",
3377
+ "on_delete": "restrict"
3378
+ }
3379
+ ]
3380
+ },
3381
+ "slack_presence": {
3382
+ "schema": {
3383
+ "$ref": "#/$defs/Presence"
3384
+ },
3385
+ "primary_key": ["workspace_id", "user_id"],
3386
+ "relationships": [
3387
+ {
3388
+ "fields": ["workspace_id", "user_id"],
3389
+ "target": "slack_users",
3390
+ "on_delete": "restrict"
3391
+ }
3392
+ ]
3393
+ },
3394
+ "slack_bots": {
3395
+ "schema": {
3396
+ "$ref": "#/$defs/Bot"
3397
+ },
3398
+ "primary_key": ["workspace_id", "id"],
3399
+ "relationships": [
3400
+ {
3401
+ "fields": ["workspace_id"],
3402
+ "target": "slack_workspaces",
3403
+ "on_delete": "restrict"
3404
+ }
3405
+ ]
3406
+ },
3407
+ "slack_apps": {
3408
+ "schema": {
3409
+ "$ref": "#/$defs/App"
3410
+ },
3411
+ "primary_key": ["workspace_id", "id"],
3412
+ "relationships": [
3413
+ {
3414
+ "fields": ["workspace_id"],
3415
+ "target": "slack_workspaces",
3416
+ "on_delete": "restrict"
3417
+ }
3418
+ ]
3419
+ },
3420
+ "slack_channels": {
3421
+ "schema": {
3422
+ "$ref": "#/$defs/Channel"
3423
+ },
3424
+ "primary_key": ["workspace_id", "id"],
3425
+ "relationships": [
3426
+ {
3427
+ "fields": ["workspace_id"],
3428
+ "target": "slack_workspaces",
3429
+ "on_delete": "restrict"
3430
+ }
3431
+ ]
3432
+ },
3433
+ "slack_memberships": {
3434
+ "schema": {
3435
+ "$ref": "#/$defs/Membership"
3436
+ },
3437
+ "primary_key": ["workspace_id", "channel_id", "user_id"],
3438
+ "relationships": [
3439
+ {
3440
+ "fields": ["workspace_id", "channel_id"],
3441
+ "target": "slack_channels",
3442
+ "on_delete": "restrict"
3443
+ },
3444
+ {
3445
+ "fields": ["workspace_id", "user_id"],
3446
+ "target": "slack_users",
3447
+ "on_delete": "restrict"
3448
+ }
3449
+ ]
3450
+ },
3451
+ "slack_conversation_states": {
3452
+ "schema": {
3453
+ "$ref": "#/$defs/ConversationState"
3454
+ },
3455
+ "primary_key": ["workspace_id", "channel_id", "user_id"],
3456
+ "relationships": [
3457
+ {
3458
+ "fields": ["workspace_id", "channel_id"],
3459
+ "target": "slack_channels",
3460
+ "on_delete": "restrict"
3461
+ },
3462
+ {
3463
+ "fields": ["workspace_id", "user_id"],
3464
+ "target": "slack_users",
3465
+ "on_delete": "restrict"
3466
+ }
3467
+ ]
3468
+ },
3469
+ "slack_messages": {
3470
+ "schema": {
3471
+ "$ref": "#/$defs/Message"
3472
+ },
3473
+ "primary_key": ["workspace_id", "channel_id", "ts"],
3474
+ "relationships": [
3475
+ {
3476
+ "fields": ["workspace_id", "channel_id"],
3477
+ "target": "slack_channels",
3478
+ "on_delete": "restrict"
3479
+ }
3480
+ ]
3481
+ },
3482
+ "slack_message_threads": {
3483
+ "schema": {
3484
+ "$ref": "#/$defs/MessageThread"
3485
+ },
3486
+ "primary_key": ["workspace_id", "channel_id", "reply_ts"],
3487
+ "relationships": [
3488
+ {
3489
+ "fields": ["workspace_id", "channel_id", "reply_ts"],
3490
+ "target": "slack_messages",
3491
+ "on_delete": "restrict"
3492
+ },
3493
+ {
3494
+ "fields": ["workspace_id", "channel_id", "parent_ts"],
3495
+ "target": "slack_messages",
3496
+ "on_delete": "restrict"
3497
+ }
3498
+ ]
3499
+ },
3500
+ "slack_reaction_summaries": {
3501
+ "schema": {
3502
+ "$ref": "#/$defs/ReactionSummary"
3503
+ },
3504
+ "primary_key": ["workspace_id", "channel_id", "message_ts", "name"],
3505
+ "relationships": [
3506
+ {
3507
+ "fields": ["workspace_id", "channel_id", "message_ts"],
3508
+ "target": "slack_messages",
3509
+ "on_delete": "restrict"
3510
+ }
3511
+ ]
3512
+ },
3513
+ "slack_reaction_users": {
3514
+ "schema": {
3515
+ "$ref": "#/$defs/ReactionUser"
3516
+ },
3517
+ "primary_key": [
3518
+ "workspace_id",
3519
+ "channel_id",
3520
+ "message_ts",
3521
+ "name",
3522
+ "user_id"
3523
+ ],
3524
+ "relationships": [
3525
+ {
3526
+ "fields": ["workspace_id", "channel_id", "message_ts", "name"],
3527
+ "target": "slack_reaction_summaries",
3528
+ "on_delete": "restrict"
3529
+ }
3530
+ ]
3531
+ },
3532
+ "slack_message_user_states": {
3533
+ "schema": {
3534
+ "$ref": "#/$defs/MessageUserState"
3535
+ },
3536
+ "primary_key": ["workspace_id", "channel_id", "message_ts", "user_id"],
3537
+ "relationships": [
3538
+ {
3539
+ "fields": ["workspace_id", "channel_id", "message_ts"],
3540
+ "target": "slack_messages",
3541
+ "on_delete": "restrict"
3542
+ },
3543
+ {
3544
+ "fields": ["workspace_id", "user_id"],
3545
+ "target": "slack_users",
3546
+ "on_delete": "restrict"
3547
+ }
3548
+ ]
3549
+ },
3550
+ "slack_scheduled_messages": {
3551
+ "schema": {
3552
+ "$ref": "#/$defs/ScheduledMessage"
3553
+ },
3554
+ "primary_key": ["workspace_id", "channel_id", "id"],
3555
+ "relationships": [
3556
+ {
3557
+ "fields": ["workspace_id", "channel_id"],
3558
+ "target": "slack_channels",
3559
+ "on_delete": "restrict"
3560
+ }
3561
+ ]
3562
+ },
3563
+ "slack_scheduled_message_threads": {
3564
+ "schema": {
3565
+ "$ref": "#/$defs/ScheduledMessageThread"
3566
+ },
3567
+ "primary_key": ["workspace_id", "channel_id", "scheduled_message_id"],
3568
+ "relationships": [
3569
+ {
3570
+ "fields": ["workspace_id", "channel_id", "scheduled_message_id"],
3571
+ "target": "slack_scheduled_messages",
3572
+ "on_delete": "restrict"
3573
+ },
3574
+ {
3575
+ "fields": ["workspace_id", "channel_id", "parent_ts"],
3576
+ "target": "slack_messages",
3577
+ "on_delete": "restrict"
3578
+ }
3579
+ ]
3580
+ },
3581
+ "slack_ephemeral_messages": {
3582
+ "schema": {
3583
+ "$ref": "#/$defs/EphemeralMessage"
3584
+ },
3585
+ "primary_key": [
3586
+ "workspace_id",
3587
+ "channel_id",
3588
+ "ts",
3589
+ "recipient_user_id"
3590
+ ],
3591
+ "relationships": [
3592
+ {
3593
+ "fields": ["workspace_id", "channel_id"],
3594
+ "target": "slack_channels",
3595
+ "on_delete": "restrict"
3596
+ },
3597
+ {
3598
+ "fields": ["workspace_id", "recipient_user_id"],
3599
+ "target": "slack_users",
3600
+ "on_delete": "restrict"
3601
+ }
3602
+ ]
3603
+ },
3604
+ "slack_ephemeral_message_threads": {
3605
+ "schema": {
3606
+ "$ref": "#/$defs/EphemeralMessageThread"
3607
+ },
3608
+ "primary_key": [
3609
+ "workspace_id",
3610
+ "channel_id",
3611
+ "message_ts",
3612
+ "recipient_user_id"
3613
+ ],
3614
+ "relationships": [
3615
+ {
3616
+ "fields": [
3617
+ "workspace_id",
3618
+ "channel_id",
3619
+ "message_ts",
3620
+ "recipient_user_id"
3621
+ ],
3622
+ "target": "slack_ephemeral_messages",
3623
+ "on_delete": "restrict"
3624
+ },
3625
+ {
3626
+ "fields": ["workspace_id", "channel_id", "parent_ts"],
3627
+ "target": "slack_messages",
3628
+ "on_delete": "restrict"
3629
+ }
3630
+ ]
3631
+ },
3632
+ "slack_files": {
3633
+ "schema": {
3634
+ "$ref": "#/$defs/File"
3635
+ },
3636
+ "primary_key": ["workspace_id", "id"],
3637
+ "relationships": [
3638
+ {
3639
+ "fields": ["workspace_id"],
3640
+ "target": "slack_workspaces",
3641
+ "on_delete": "restrict"
3642
+ }
3643
+ ]
3644
+ },
3645
+ "slack_message_files": {
3646
+ "schema": {
3647
+ "$ref": "#/$defs/MessageFile"
3648
+ },
3649
+ "primary_key": ["workspace_id", "channel_id", "message_ts", "file_id"],
3650
+ "relationships": [
3651
+ {
3652
+ "fields": ["workspace_id", "channel_id", "message_ts"],
3653
+ "target": "slack_messages",
3654
+ "on_delete": "restrict"
3655
+ },
3656
+ {
3657
+ "fields": ["workspace_id", "file_id"],
3658
+ "target": "slack_files",
3659
+ "on_delete": "restrict"
3660
+ }
3661
+ ]
3662
+ },
3663
+ "slack_unavailable_message_files": {
3664
+ "schema": {
3665
+ "$ref": "#/$defs/UnavailableMessageFile"
3666
+ },
3667
+ "primary_key": ["workspace_id", "channel_id", "message_ts", "file_id"],
3668
+ "relationships": [
3669
+ {
3670
+ "fields": ["workspace_id", "channel_id", "message_ts"],
3671
+ "target": "slack_messages",
3672
+ "on_delete": "restrict"
3673
+ }
3674
+ ]
3675
+ },
3676
+ "slack_ephemeral_message_files": {
3677
+ "schema": {
3678
+ "$ref": "#/$defs/EphemeralMessageFile"
3679
+ },
3680
+ "primary_key": [
3681
+ "workspace_id",
3682
+ "channel_id",
3683
+ "message_ts",
3684
+ "recipient_user_id",
3685
+ "file_id"
3686
+ ],
3687
+ "relationships": [
3688
+ {
3689
+ "fields": [
3690
+ "workspace_id",
3691
+ "channel_id",
3692
+ "message_ts",
3693
+ "recipient_user_id"
3694
+ ],
3695
+ "target": "slack_ephemeral_messages",
3696
+ "on_delete": "restrict"
3697
+ },
3698
+ {
3699
+ "fields": ["workspace_id", "file_id"],
3700
+ "target": "slack_files",
3701
+ "on_delete": "restrict"
3702
+ }
3703
+ ]
3704
+ },
3705
+ "slack_file_shares": {
3706
+ "schema": {
3707
+ "$ref": "#/$defs/FileShare"
3708
+ },
3709
+ "primary_key": ["workspace_id", "channel_id", "message_ts", "file_id"],
3710
+ "relationships": [
3711
+ {
3712
+ "fields": ["workspace_id", "channel_id", "message_ts", "file_id"],
3713
+ "target": "slack_message_files",
3714
+ "on_delete": "restrict"
3715
+ }
3716
+ ]
3717
+ },
3718
+ "slack_file_channel_observations": {
3719
+ "schema": {
3720
+ "$ref": "#/$defs/FileChannelObservation"
3721
+ },
3722
+ "primary_key": ["workspace_id", "file_id", "channel_id", "kind"],
3723
+ "relationships": [
3724
+ {
3725
+ "fields": ["workspace_id", "file_id"],
3726
+ "target": "slack_files",
3727
+ "on_delete": "restrict"
3728
+ },
3729
+ {
3730
+ "fields": ["workspace_id", "channel_id"],
3731
+ "target": "slack_channels",
3732
+ "on_delete": "restrict"
3733
+ }
3734
+ ]
3735
+ },
3736
+ "slack_file_user_states": {
3737
+ "schema": {
3738
+ "$ref": "#/$defs/FileUserState"
3739
+ },
3740
+ "primary_key": ["workspace_id", "file_id", "user_id"],
3741
+ "relationships": [
3742
+ {
3743
+ "fields": ["workspace_id", "file_id"],
3744
+ "target": "slack_files",
3745
+ "on_delete": "restrict"
3746
+ },
3747
+ {
3748
+ "fields": ["workspace_id", "user_id"],
3749
+ "target": "slack_users",
3750
+ "on_delete": "restrict"
3751
+ }
3752
+ ]
3753
+ },
3754
+ "slack_file_reaction_summaries": {
3755
+ "schema": {
3756
+ "$ref": "#/$defs/FileReactionSummary"
3757
+ },
3758
+ "primary_key": ["workspace_id", "file_id", "name"],
3759
+ "relationships": [
3760
+ {
3761
+ "fields": ["workspace_id", "file_id"],
3762
+ "target": "slack_files",
3763
+ "on_delete": "restrict"
3764
+ }
3765
+ ]
3766
+ },
3767
+ "slack_file_reaction_users": {
3768
+ "schema": {
3769
+ "$ref": "#/$defs/FileReactionUser"
3770
+ },
3771
+ "primary_key": ["workspace_id", "file_id", "name", "user_id"],
3772
+ "relationships": [
3773
+ {
3774
+ "fields": ["workspace_id", "file_id", "name"],
3775
+ "target": "slack_file_reaction_summaries",
3776
+ "on_delete": "restrict"
3777
+ }
3778
+ ]
3779
+ },
3780
+ "slack_pins": {
3781
+ "schema": {
3782
+ "$ref": "#/$defs/Pin"
3783
+ },
3784
+ "primary_key": ["workspace_id", "channel_id", "message_ts"],
3785
+ "relationships": [
3786
+ {
3787
+ "fields": ["workspace_id", "channel_id", "message_ts"],
3788
+ "target": "slack_messages",
3789
+ "on_delete": "restrict"
3790
+ }
3791
+ ]
3792
+ },
3793
+ "slack_bookmarks": {
3794
+ "schema": {
3795
+ "$ref": "#/$defs/Bookmark"
3796
+ },
3797
+ "primary_key": ["workspace_id", "channel_id", "id"],
3798
+ "relationships": [
3799
+ {
3800
+ "fields": ["workspace_id", "channel_id"],
3801
+ "target": "slack_channels",
3802
+ "on_delete": "restrict"
3803
+ }
3804
+ ]
3805
+ },
3806
+ "slack_usergroups": {
3807
+ "schema": {
3808
+ "$ref": "#/$defs/Usergroup"
3809
+ },
3810
+ "primary_key": ["workspace_id", "id"],
3811
+ "relationships": [
3812
+ {
3813
+ "fields": ["workspace_id"],
3814
+ "target": "slack_workspaces",
3815
+ "on_delete": "restrict"
3816
+ }
3817
+ ]
3818
+ },
3819
+ "slack_usergroup_memberships": {
3820
+ "schema": {
3821
+ "$ref": "#/$defs/UsergroupMembership"
3822
+ },
3823
+ "primary_key": ["workspace_id", "usergroup_id", "user_id"],
3824
+ "relationships": [
3825
+ {
3826
+ "fields": ["workspace_id", "usergroup_id"],
3827
+ "target": "slack_usergroups",
3828
+ "on_delete": "restrict"
3829
+ },
3830
+ {
3831
+ "fields": ["workspace_id", "user_id"],
3832
+ "target": "slack_users",
3833
+ "on_delete": "restrict"
3834
+ }
3835
+ ]
3836
+ },
3837
+ "slack_usergroup_channels": {
3838
+ "schema": {
3839
+ "$ref": "#/$defs/UsergroupChannel"
3840
+ },
3841
+ "primary_key": ["workspace_id", "usergroup_id", "channel_id", "kind"],
3842
+ "relationships": [
3843
+ {
3844
+ "fields": ["workspace_id", "usergroup_id"],
3845
+ "target": "slack_usergroups",
3846
+ "on_delete": "restrict"
3847
+ },
3848
+ {
3849
+ "fields": ["workspace_id", "channel_id"],
3850
+ "target": "slack_channels",
3851
+ "on_delete": "restrict"
3852
+ }
3853
+ ]
3854
+ },
3855
+ "slack_views": {
3856
+ "schema": {
3857
+ "$ref": "#/$defs/View"
3858
+ },
3859
+ "primary_key": ["workspace_id", "id"],
3860
+ "relationships": [
3861
+ {
3862
+ "fields": ["workspace_id"],
3863
+ "target": "slack_workspaces",
3864
+ "on_delete": "restrict"
3865
+ },
3866
+ {
3867
+ "fields": ["workspace_id", "user_id"],
3868
+ "target": "slack_users",
3869
+ "on_delete": "restrict"
3870
+ }
3871
+ ]
3872
+ },
3873
+ "slack_view_state_entries": {
3874
+ "schema": {
3875
+ "$ref": "#/$defs/ViewStateEntry"
3876
+ },
3877
+ "primary_key": ["workspace_id", "view_id", "block_id", "action_id"],
3878
+ "relationships": [
3879
+ {
3880
+ "fields": ["workspace_id", "view_id"],
3881
+ "target": "slack_views",
3882
+ "on_delete": "restrict"
3883
+ }
3884
+ ]
3885
+ }
3886
+ },
3887
+ "tools": {
3888
+ "list_channels": {
3889
+ "input": {
3890
+ "type": "object",
3891
+ "properties": {
3892
+ "workspace_id": {
3893
+ "$ref": "#/$defs/Id"
3894
+ }
3895
+ },
3896
+ "required": ["workspace_id"],
3897
+ "additionalProperties": false
3898
+ },
3899
+ "output": {
3900
+ "type": "array",
3901
+ "items": {
3902
+ "$ref": "#/$defs/Channel"
3903
+ }
3904
+ },
3905
+ "description": "List local conversations in one workspace. No Slack API visibility or pagination behavior."
3906
+ },
3907
+ "list_messages": {
3908
+ "input": {
3909
+ "type": "object",
3910
+ "properties": {
3911
+ "workspace_id": {
3912
+ "$ref": "#/$defs/Id"
3913
+ },
3914
+ "channel_id": {
3915
+ "$ref": "#/$defs/Id"
3916
+ }
3917
+ },
3918
+ "required": ["workspace_id", "channel_id"],
3919
+ "additionalProperties": false
3920
+ },
3921
+ "output": {
3922
+ "type": "array",
3923
+ "items": {
3924
+ "$ref": "#/$defs/Message"
3925
+ }
3926
+ },
3927
+ "description": "List local persistent messages in ascending exact decimal timestamp order. Invalid decimal strings reject in this helper; the domain only enforces nonempty strings. Equal numeric values tie-break by original bytes."
3928
+ },
3929
+ "post_message": {
3930
+ "input": {
3931
+ "type": "object",
3932
+ "properties": {
3933
+ "message": {
3934
+ "$ref": "#/$defs/Message"
3935
+ }
3936
+ },
3937
+ "required": ["message"],
3938
+ "additionalProperties": false
3939
+ },
3940
+ "output": {
3941
+ "$ref": "#/$defs/Message"
3942
+ },
3943
+ "description": "Insert a local top-level human text message from a current member. Caller supplies workspace, channel and exact ts. No timestamp generation, Slack API, delivery, threading, or authorization emulation."
3944
+ },
3945
+ "users.list": {
3946
+ "description": "Offline Slack users.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
3947
+ "input": {
3948
+ "type": "object",
3949
+ "properties": {
3950
+ "cursor": {
3951
+ "type": "string"
3952
+ },
3953
+ "limit": {
3954
+ "type": "integer",
3955
+ "minimum": 1,
3956
+ "maximum": 999
3957
+ }
3958
+ },
3959
+ "required": [],
3960
+ "additionalProperties": false
3961
+ },
3962
+ "output": {
3963
+ "anyOf": [
3964
+ {
3965
+ "type": "object",
3966
+ "properties": {
3967
+ "ok": {
3968
+ "type": "boolean",
3969
+ "const": true
3970
+ },
3971
+ "members": {
3972
+ "type": "array",
3973
+ "items": {
3974
+ "type": "object",
3975
+ "properties": {},
3976
+ "additionalProperties": true
3977
+ }
3978
+ },
3979
+ "response_metadata": {
3980
+ "type": "object",
3981
+ "properties": {
3982
+ "next_cursor": {
3983
+ "type": "string"
3984
+ }
3985
+ },
3986
+ "required": ["next_cursor"],
3987
+ "additionalProperties": false
3988
+ },
3989
+ "has_more": {
3990
+ "type": "boolean"
3991
+ }
3992
+ },
3993
+ "required": ["ok", "members", "response_metadata", "has_more"],
3994
+ "additionalProperties": false
3995
+ },
3996
+ {
3997
+ "$ref": "#/$defs/SlackErrorResponse"
3998
+ }
3999
+ ]
4000
+ }
4001
+ },
4002
+ "users.info": {
4003
+ "description": "Offline Slack users.info executable subset using the bound bundle principal. See fidelity.json for limitations.",
4004
+ "input": {
4005
+ "type": "object",
4006
+ "properties": {
4007
+ "user": {
4008
+ "type": "string",
4009
+ "minLength": 1
4010
+ }
4011
+ },
4012
+ "required": ["user"],
4013
+ "additionalProperties": false
4014
+ },
4015
+ "output": {
4016
+ "anyOf": [
4017
+ {
4018
+ "type": "object",
4019
+ "properties": {
4020
+ "ok": {
4021
+ "type": "boolean",
4022
+ "const": true
4023
+ },
4024
+ "user": {
4025
+ "type": "object",
4026
+ "properties": {},
4027
+ "additionalProperties": true
4028
+ }
4029
+ },
4030
+ "required": ["ok", "user"],
4031
+ "additionalProperties": false
4032
+ },
4033
+ {
4034
+ "$ref": "#/$defs/SlackErrorResponse"
4035
+ }
4036
+ ]
4037
+ }
4038
+ },
4039
+ "conversations.list": {
4040
+ "description": "Offline Slack conversations.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4041
+ "input": {
4042
+ "type": "object",
4043
+ "properties": {
4044
+ "cursor": {
4045
+ "type": "string"
4046
+ },
4047
+ "limit": {
4048
+ "type": "integer",
4049
+ "minimum": 1,
4050
+ "maximum": 999
4051
+ },
4052
+ "types": {
4053
+ "type": "string",
4054
+ "minLength": 1
4055
+ },
4056
+ "exclude_archived": {
4057
+ "type": "boolean"
4058
+ }
4059
+ },
4060
+ "required": [],
4061
+ "additionalProperties": false
4062
+ },
4063
+ "output": {
4064
+ "anyOf": [
4065
+ {
4066
+ "type": "object",
4067
+ "properties": {
4068
+ "ok": {
4069
+ "type": "boolean",
4070
+ "const": true
4071
+ },
4072
+ "channels": {
4073
+ "type": "array",
4074
+ "items": {
4075
+ "type": "object",
4076
+ "properties": {},
4077
+ "additionalProperties": true
4078
+ }
4079
+ },
4080
+ "response_metadata": {
4081
+ "type": "object",
4082
+ "properties": {
4083
+ "next_cursor": {
4084
+ "type": "string"
4085
+ }
4086
+ },
4087
+ "required": ["next_cursor"],
4088
+ "additionalProperties": false
4089
+ },
4090
+ "has_more": {
4091
+ "type": "boolean"
4092
+ }
4093
+ },
4094
+ "required": ["ok", "channels", "response_metadata", "has_more"],
4095
+ "additionalProperties": false
4096
+ },
4097
+ {
4098
+ "$ref": "#/$defs/SlackErrorResponse"
4099
+ }
4100
+ ]
4101
+ }
4102
+ },
4103
+ "conversations.info": {
4104
+ "description": "Offline Slack conversations.info executable subset using the bound bundle principal. See fidelity.json for limitations.",
4105
+ "input": {
4106
+ "type": "object",
4107
+ "properties": {
4108
+ "channel": {
4109
+ "type": "string",
4110
+ "minLength": 1
4111
+ }
4112
+ },
4113
+ "required": ["channel"],
4114
+ "additionalProperties": false
4115
+ },
4116
+ "output": {
4117
+ "anyOf": [
4118
+ {
4119
+ "$ref": "#/$defs/SlackChannelResponse"
4120
+ },
4121
+ {
4122
+ "$ref": "#/$defs/SlackErrorResponse"
4123
+ }
4124
+ ]
4125
+ }
4126
+ },
4127
+ "conversations.members": {
4128
+ "description": "Offline Slack conversations.members executable subset using the bound bundle principal. See fidelity.json for limitations.",
4129
+ "input": {
4130
+ "type": "object",
4131
+ "properties": {
4132
+ "cursor": {
4133
+ "type": "string"
4134
+ },
4135
+ "limit": {
4136
+ "type": "integer",
4137
+ "minimum": 1,
4138
+ "maximum": 999
4139
+ },
4140
+ "channel": {
4141
+ "type": "string",
4142
+ "minLength": 1
4143
+ }
4144
+ },
4145
+ "required": ["channel"],
4146
+ "additionalProperties": false
4147
+ },
4148
+ "output": {
4149
+ "anyOf": [
4150
+ {
4151
+ "type": "object",
4152
+ "properties": {
4153
+ "ok": {
4154
+ "type": "boolean",
4155
+ "const": true
4156
+ },
4157
+ "members": {
4158
+ "type": "array",
4159
+ "items": {
4160
+ "type": "string",
4161
+ "minLength": 1
4162
+ }
4163
+ },
4164
+ "response_metadata": {
4165
+ "type": "object",
4166
+ "properties": {
4167
+ "next_cursor": {
4168
+ "type": "string"
4169
+ }
4170
+ },
4171
+ "required": ["next_cursor"],
4172
+ "additionalProperties": false
4173
+ },
4174
+ "has_more": {
4175
+ "type": "boolean"
4176
+ }
4177
+ },
4178
+ "required": ["ok", "members", "response_metadata", "has_more"],
4179
+ "additionalProperties": false
4180
+ },
4181
+ {
4182
+ "$ref": "#/$defs/SlackErrorResponse"
4183
+ }
4184
+ ]
4185
+ }
4186
+ },
4187
+ "conversations.history": {
4188
+ "description": "Offline Slack conversations.history executable subset using the bound bundle principal. See fidelity.json for limitations.",
4189
+ "input": {
4190
+ "type": "object",
4191
+ "properties": {
4192
+ "cursor": {
4193
+ "type": "string"
4194
+ },
4195
+ "limit": {
4196
+ "type": "integer",
4197
+ "minimum": 1,
4198
+ "maximum": 999
4199
+ },
4200
+ "channel": {
4201
+ "type": "string",
4202
+ "minLength": 1
4203
+ },
4204
+ "oldest": {
4205
+ "type": "string",
4206
+ "minLength": 1
4207
+ },
4208
+ "latest": {
4209
+ "type": "string",
4210
+ "minLength": 1
4211
+ },
4212
+ "inclusive": {
4213
+ "type": "boolean"
4214
+ }
4215
+ },
4216
+ "required": ["channel"],
4217
+ "additionalProperties": false
4218
+ },
4219
+ "output": {
4220
+ "anyOf": [
4221
+ {
4222
+ "$ref": "#/$defs/SlackHistoryResponse"
4223
+ },
4224
+ {
4225
+ "$ref": "#/$defs/SlackErrorResponse"
4226
+ }
4227
+ ]
4228
+ }
4229
+ },
4230
+ "conversations.replies": {
4231
+ "description": "Offline Slack conversations.replies executable subset using the bound bundle principal. See fidelity.json for limitations.",
4232
+ "input": {
4233
+ "type": "object",
4234
+ "properties": {
4235
+ "cursor": {
4236
+ "type": "string"
4237
+ },
4238
+ "limit": {
4239
+ "type": "integer",
4240
+ "minimum": 1,
4241
+ "maximum": 999
4242
+ },
4243
+ "channel": {
4244
+ "type": "string",
4245
+ "minLength": 1
4246
+ },
4247
+ "oldest": {
4248
+ "type": "string",
4249
+ "minLength": 1
4250
+ },
4251
+ "latest": {
4252
+ "type": "string",
4253
+ "minLength": 1
4254
+ },
4255
+ "inclusive": {
4256
+ "type": "boolean"
4257
+ },
4258
+ "ts": {
4259
+ "type": "string",
4260
+ "minLength": 1
4261
+ }
4262
+ },
4263
+ "required": ["channel", "ts"],
4264
+ "additionalProperties": false
4265
+ },
4266
+ "output": {
4267
+ "anyOf": [
4268
+ {
4269
+ "$ref": "#/$defs/SlackHistoryResponse"
4270
+ },
4271
+ {
4272
+ "$ref": "#/$defs/SlackErrorResponse"
4273
+ }
4274
+ ]
4275
+ }
4276
+ },
4277
+ "conversations.join": {
4278
+ "description": "Offline Slack conversations.join executable subset using the bound bundle principal. See fidelity.json for limitations.",
4279
+ "input": {
4280
+ "type": "object",
4281
+ "properties": {
4282
+ "channel": {
4283
+ "type": "string",
4284
+ "minLength": 1
4285
+ }
4286
+ },
4287
+ "required": ["channel"],
4288
+ "additionalProperties": false
4289
+ },
4290
+ "output": {
4291
+ "anyOf": [
4292
+ {
4293
+ "$ref": "#/$defs/SlackChannelResponse"
4294
+ },
4295
+ {
4296
+ "$ref": "#/$defs/SlackErrorResponse"
4297
+ }
4298
+ ]
4299
+ }
4300
+ },
4301
+ "conversations.leave": {
4302
+ "description": "Offline Slack conversations.leave executable subset using the bound bundle principal. See fidelity.json for limitations.",
4303
+ "input": {
4304
+ "type": "object",
4305
+ "properties": {
4306
+ "channel": {
4307
+ "type": "string",
4308
+ "minLength": 1
4309
+ }
4310
+ },
4311
+ "required": ["channel"],
4312
+ "additionalProperties": false
4313
+ },
4314
+ "output": {
4315
+ "anyOf": [
4316
+ {
4317
+ "$ref": "#/$defs/SlackOkResponse"
4318
+ },
4319
+ {
4320
+ "$ref": "#/$defs/SlackErrorResponse"
4321
+ }
4322
+ ]
4323
+ }
4324
+ },
4325
+ "chat.postMessage": {
4326
+ "description": "Offline Slack chat.postMessage executable subset using the bound bundle principal. See fidelity.json for limitations.",
4327
+ "input": {
4328
+ "type": "object",
4329
+ "properties": {
4330
+ "channel": {
4331
+ "type": "string",
4332
+ "minLength": 1
4333
+ },
4334
+ "text": {
4335
+ "type": "string",
4336
+ "maxLength": 40000
4337
+ },
4338
+ "blocks": {
4339
+ "type": "array",
4340
+ "items": {
4341
+ "$ref": "#/$defs/Block"
4342
+ }
4343
+ },
4344
+ "attachments": {
4345
+ "type": "array",
4346
+ "items": {
4347
+ "$ref": "#/$defs/Attachment"
4348
+ }
4349
+ },
4350
+ "thread_ts": {
4351
+ "type": "string",
4352
+ "minLength": 1
4353
+ },
4354
+ "reply_broadcast": {
4355
+ "type": "boolean"
4356
+ },
4357
+ "client_msg_id": {
4358
+ "type": "string",
4359
+ "minLength": 1
4360
+ }
4361
+ },
4362
+ "required": ["channel"],
4363
+ "additionalProperties": false
4364
+ },
4365
+ "output": {
4366
+ "anyOf": [
4367
+ {
4368
+ "type": "object",
4369
+ "properties": {
4370
+ "ok": {
4371
+ "type": "boolean",
4372
+ "const": true
4373
+ },
4374
+ "channel": {
4375
+ "type": "string",
4376
+ "minLength": 1
4377
+ },
4378
+ "ts": {
4379
+ "type": "string",
4380
+ "minLength": 1
4381
+ },
4382
+ "message": {
4383
+ "type": "object",
4384
+ "properties": {},
4385
+ "additionalProperties": true
4386
+ }
4387
+ },
4388
+ "required": ["ok", "channel", "ts", "message"],
4389
+ "additionalProperties": false
4390
+ },
4391
+ {
4392
+ "$ref": "#/$defs/SlackErrorResponse"
4393
+ }
4394
+ ]
4395
+ }
4396
+ },
4397
+ "chat.update": {
4398
+ "description": "Offline Slack chat.update executable subset using the bound bundle principal. See fidelity.json for limitations.",
4399
+ "input": {
4400
+ "type": "object",
4401
+ "properties": {
4402
+ "channel": {
4403
+ "type": "string",
4404
+ "minLength": 1
4405
+ },
4406
+ "ts": {
4407
+ "type": "string",
4408
+ "minLength": 1
4409
+ },
4410
+ "text": {
4411
+ "type": "string",
4412
+ "maxLength": 40000
4413
+ },
4414
+ "blocks": {
4415
+ "type": "array",
4416
+ "items": {
4417
+ "$ref": "#/$defs/Block"
4418
+ }
4419
+ },
4420
+ "attachments": {
4421
+ "type": "array",
4422
+ "items": {
4423
+ "$ref": "#/$defs/Attachment"
4424
+ }
4425
+ }
4426
+ },
4427
+ "required": ["channel", "ts"],
4428
+ "additionalProperties": false
4429
+ },
4430
+ "output": {
4431
+ "anyOf": [
4432
+ {
4433
+ "type": "object",
4434
+ "properties": {
4435
+ "ok": {
4436
+ "type": "boolean",
4437
+ "const": true
4438
+ },
4439
+ "channel": {
4440
+ "type": "string",
4441
+ "minLength": 1
4442
+ },
4443
+ "ts": {
4444
+ "type": "string",
4445
+ "minLength": 1
4446
+ },
4447
+ "text": {
4448
+ "type": "string"
4449
+ },
4450
+ "message": {
4451
+ "type": "object",
4452
+ "properties": {},
4453
+ "additionalProperties": true
4454
+ }
4455
+ },
4456
+ "required": ["ok", "channel", "ts", "message"],
4457
+ "additionalProperties": false
4458
+ },
4459
+ {
4460
+ "$ref": "#/$defs/SlackErrorResponse"
4461
+ }
4462
+ ]
4463
+ }
4464
+ },
4465
+ "chat.delete": {
4466
+ "description": "Offline Slack chat.delete executable subset using the bound bundle principal. See fidelity.json for limitations.",
4467
+ "input": {
4468
+ "type": "object",
4469
+ "properties": {
4470
+ "channel": {
4471
+ "type": "string",
4472
+ "minLength": 1
4473
+ },
4474
+ "ts": {
4475
+ "type": "string",
4476
+ "minLength": 1
4477
+ }
4478
+ },
4479
+ "required": ["channel", "ts"],
4480
+ "additionalProperties": false
4481
+ },
4482
+ "output": {
4483
+ "anyOf": [
4484
+ {
4485
+ "type": "object",
4486
+ "properties": {
4487
+ "ok": {
4488
+ "type": "boolean",
4489
+ "const": true
4490
+ },
4491
+ "channel": {
4492
+ "type": "string",
4493
+ "minLength": 1
4494
+ },
4495
+ "ts": {
4496
+ "type": "string",
4497
+ "minLength": 1
4498
+ }
4499
+ },
4500
+ "required": ["ok", "channel", "ts"],
4501
+ "additionalProperties": false
4502
+ },
4503
+ {
4504
+ "$ref": "#/$defs/SlackErrorResponse"
4505
+ }
4506
+ ]
4507
+ }
4508
+ },
4509
+ "reactions.add": {
4510
+ "description": "Offline Slack reactions.add executable subset using the bound bundle principal. See fidelity.json for limitations.",
4511
+ "input": {
4512
+ "type": "object",
4513
+ "properties": {
4514
+ "channel": {
4515
+ "type": "string",
4516
+ "minLength": 1
4517
+ },
4518
+ "timestamp": {
4519
+ "type": "string",
4520
+ "minLength": 1
4521
+ },
4522
+ "name": {
4523
+ "type": "string",
4524
+ "minLength": 1
4525
+ }
4526
+ },
4527
+ "required": ["channel", "timestamp", "name"],
4528
+ "additionalProperties": false
4529
+ },
4530
+ "output": {
4531
+ "anyOf": [
4532
+ {
4533
+ "$ref": "#/$defs/SlackOkResponse"
4534
+ },
4535
+ {
4536
+ "$ref": "#/$defs/SlackErrorResponse"
4537
+ }
4538
+ ]
4539
+ }
4540
+ },
4541
+ "reactions.remove": {
4542
+ "description": "Offline Slack reactions.remove executable subset using the bound bundle principal. See fidelity.json for limitations.",
4543
+ "input": {
4544
+ "type": "object",
4545
+ "properties": {
4546
+ "channel": {
4547
+ "type": "string",
4548
+ "minLength": 1
4549
+ },
4550
+ "timestamp": {
4551
+ "type": "string",
4552
+ "minLength": 1
4553
+ },
4554
+ "name": {
4555
+ "type": "string",
4556
+ "minLength": 1
4557
+ }
4558
+ },
4559
+ "required": ["channel", "timestamp", "name"],
4560
+ "additionalProperties": false
4561
+ },
4562
+ "output": {
4563
+ "anyOf": [
4564
+ {
4565
+ "$ref": "#/$defs/SlackOkResponse"
4566
+ },
4567
+ {
4568
+ "$ref": "#/$defs/SlackErrorResponse"
4569
+ }
4570
+ ]
4571
+ }
4572
+ },
4573
+ "reactions.get": {
4574
+ "description": "Offline Slack reactions.get executable subset using the bound bundle principal. See fidelity.json for limitations.",
4575
+ "input": {
4576
+ "type": "object",
4577
+ "properties": {
4578
+ "channel": {
4579
+ "type": "string",
4580
+ "minLength": 1
4581
+ },
4582
+ "timestamp": {
4583
+ "type": "string",
4584
+ "minLength": 1
4585
+ }
4586
+ },
4587
+ "required": ["channel", "timestamp"],
4588
+ "additionalProperties": false
4589
+ },
4590
+ "output": {
4591
+ "anyOf": [
4592
+ {
4593
+ "type": "object",
4594
+ "properties": {
4595
+ "ok": {
4596
+ "type": "boolean",
4597
+ "const": true
4598
+ },
4599
+ "type": {
4600
+ "type": "string",
4601
+ "const": "message"
4602
+ },
4603
+ "channel": {
4604
+ "type": "string",
4605
+ "minLength": 1
4606
+ },
4607
+ "message": {
4608
+ "type": "object",
4609
+ "properties": {},
4610
+ "additionalProperties": true
4611
+ }
4612
+ },
4613
+ "required": ["ok", "type", "channel", "message"],
4614
+ "additionalProperties": false
4615
+ },
4616
+ {
4617
+ "$ref": "#/$defs/SlackErrorResponse"
4618
+ }
4619
+ ]
4620
+ }
4621
+ },
4622
+ "files.info": {
4623
+ "description": "Offline Slack files.info executable subset using the bound bundle principal. See fidelity.json for limitations.",
4624
+ "input": {
4625
+ "type": "object",
4626
+ "properties": {
4627
+ "file": {
4628
+ "type": "string",
4629
+ "minLength": 1
4630
+ }
4631
+ },
4632
+ "required": ["file"],
4633
+ "additionalProperties": false
4634
+ },
4635
+ "output": {
4636
+ "anyOf": [
4637
+ {
4638
+ "type": "object",
4639
+ "properties": {
4640
+ "ok": {
4641
+ "type": "boolean",
4642
+ "const": true
4643
+ },
4644
+ "file": {
4645
+ "type": "object",
4646
+ "properties": {},
4647
+ "additionalProperties": true
4648
+ }
4649
+ },
4650
+ "required": ["ok", "file"],
4651
+ "additionalProperties": false
4652
+ },
4653
+ {
4654
+ "$ref": "#/$defs/SlackErrorResponse"
4655
+ }
4656
+ ]
4657
+ }
4658
+ },
4659
+ "files.list": {
4660
+ "description": "Offline Slack files.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4661
+ "input": {
4662
+ "type": "object",
4663
+ "properties": {
4664
+ "channel": {
4665
+ "type": "string",
4666
+ "minLength": 1
4667
+ },
4668
+ "user": {
4669
+ "type": "string",
4670
+ "minLength": 1
4671
+ },
4672
+ "page": {
4673
+ "type": "integer",
4674
+ "minimum": 1
4675
+ },
4676
+ "count": {
4677
+ "type": "integer",
4678
+ "minimum": 1,
4679
+ "maximum": 999
4680
+ }
4681
+ },
4682
+ "required": [],
4683
+ "additionalProperties": false
4684
+ },
4685
+ "output": {
4686
+ "anyOf": [
4687
+ {
4688
+ "type": "object",
4689
+ "properties": {
4690
+ "ok": {
4691
+ "type": "boolean",
4692
+ "const": true
4693
+ },
4694
+ "files": {
4695
+ "type": "array",
4696
+ "items": {
4697
+ "type": "object",
4698
+ "properties": {},
4699
+ "additionalProperties": true
4700
+ }
4701
+ },
4702
+ "paging": {
4703
+ "type": "object",
4704
+ "properties": {},
4705
+ "additionalProperties": true
4706
+ }
4707
+ },
4708
+ "required": ["ok", "files", "paging"],
4709
+ "additionalProperties": false
4710
+ },
4711
+ {
4712
+ "$ref": "#/$defs/SlackErrorResponse"
4713
+ }
4714
+ ]
4715
+ }
4716
+ },
4717
+ "pins.list": {
4718
+ "description": "Offline Slack pins.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4719
+ "input": {
4720
+ "type": "object",
4721
+ "properties": {
4722
+ "channel": {
4723
+ "type": "string",
4724
+ "minLength": 1
4725
+ }
4726
+ },
4727
+ "required": ["channel"],
4728
+ "additionalProperties": false
4729
+ },
4730
+ "output": {
4731
+ "anyOf": [
4732
+ {
4733
+ "type": "object",
4734
+ "properties": {
4735
+ "ok": {
4736
+ "type": "boolean",
4737
+ "const": true
4738
+ },
4739
+ "items": {
4740
+ "type": "array",
4741
+ "items": {
4742
+ "type": "object",
4743
+ "properties": {},
4744
+ "additionalProperties": true
4745
+ }
4746
+ }
4747
+ },
4748
+ "required": ["ok", "items"],
4749
+ "additionalProperties": false
4750
+ },
4751
+ {
4752
+ "$ref": "#/$defs/SlackErrorResponse"
4753
+ }
4754
+ ]
4755
+ }
4756
+ },
4757
+ "pins.add": {
4758
+ "description": "Offline Slack pins.add executable subset using the bound bundle principal. See fidelity.json for limitations.",
4759
+ "input": {
4760
+ "type": "object",
4761
+ "properties": {
4762
+ "channel": {
4763
+ "type": "string",
4764
+ "minLength": 1
4765
+ },
4766
+ "timestamp": {
4767
+ "type": "string",
4768
+ "minLength": 1
4769
+ }
4770
+ },
4771
+ "required": ["channel", "timestamp"],
4772
+ "additionalProperties": false
4773
+ },
4774
+ "output": {
4775
+ "anyOf": [
4776
+ {
4777
+ "$ref": "#/$defs/SlackOkResponse"
4778
+ },
4779
+ {
4780
+ "$ref": "#/$defs/SlackErrorResponse"
4781
+ }
4782
+ ]
4783
+ }
4784
+ },
4785
+ "pins.remove": {
4786
+ "description": "Offline Slack pins.remove executable subset using the bound bundle principal. See fidelity.json for limitations.",
4787
+ "input": {
4788
+ "type": "object",
4789
+ "properties": {
4790
+ "channel": {
4791
+ "type": "string",
4792
+ "minLength": 1
4793
+ },
4794
+ "timestamp": {
4795
+ "type": "string",
4796
+ "minLength": 1
4797
+ }
4798
+ },
4799
+ "required": ["channel", "timestamp"],
4800
+ "additionalProperties": false
4801
+ },
4802
+ "output": {
4803
+ "anyOf": [
4804
+ {
4805
+ "$ref": "#/$defs/SlackOkResponse"
4806
+ },
4807
+ {
4808
+ "$ref": "#/$defs/SlackErrorResponse"
4809
+ }
4810
+ ]
4811
+ }
4812
+ },
4813
+ "bookmarks.list": {
4814
+ "description": "Offline Slack bookmarks.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4815
+ "input": {
4816
+ "type": "object",
4817
+ "properties": {
4818
+ "channel_id": {
4819
+ "type": "string",
4820
+ "minLength": 1
4821
+ }
4822
+ },
4823
+ "required": ["channel_id"],
4824
+ "additionalProperties": false
4825
+ },
4826
+ "output": {
4827
+ "anyOf": [
4828
+ {
4829
+ "type": "object",
4830
+ "properties": {
4831
+ "ok": {
4832
+ "type": "boolean",
4833
+ "const": true
4834
+ },
4835
+ "bookmarks": {
4836
+ "type": "array",
4837
+ "items": {
4838
+ "type": "object",
4839
+ "properties": {},
4840
+ "additionalProperties": true
4841
+ }
4842
+ }
4843
+ },
4844
+ "required": ["ok", "bookmarks"],
4845
+ "additionalProperties": false
4846
+ },
4847
+ {
4848
+ "$ref": "#/$defs/SlackErrorResponse"
4849
+ }
4850
+ ]
4851
+ }
4852
+ },
4853
+ "usergroups.list": {
4854
+ "description": "Offline Slack usergroups.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4855
+ "input": {
4856
+ "type": "object",
4857
+ "properties": {
4858
+ "include_users": {
4859
+ "type": "boolean"
4860
+ },
4861
+ "include_disabled": {
4862
+ "type": "boolean"
4863
+ }
4864
+ },
4865
+ "required": [],
4866
+ "additionalProperties": false
4867
+ },
4868
+ "output": {
4869
+ "anyOf": [
4870
+ {
4871
+ "type": "object",
4872
+ "properties": {
4873
+ "ok": {
4874
+ "type": "boolean",
4875
+ "const": true
4876
+ },
4877
+ "usergroups": {
4878
+ "type": "array",
4879
+ "items": {
4880
+ "type": "object",
4881
+ "properties": {},
4882
+ "additionalProperties": true
4883
+ }
4884
+ }
4885
+ },
4886
+ "required": ["ok", "usergroups"],
4887
+ "additionalProperties": false
4888
+ },
4889
+ {
4890
+ "$ref": "#/$defs/SlackErrorResponse"
4891
+ }
4892
+ ]
4893
+ }
4894
+ },
4895
+ "usergroups.users.list": {
4896
+ "description": "Offline Slack usergroups.users.list executable subset using the bound bundle principal. See fidelity.json for limitations.",
4897
+ "input": {
4898
+ "type": "object",
4899
+ "properties": {
4900
+ "usergroup": {
4901
+ "type": "string",
4902
+ "minLength": 1
4903
+ }
4904
+ },
4905
+ "required": ["usergroup"],
4906
+ "additionalProperties": false
4907
+ },
4908
+ "output": {
4909
+ "anyOf": [
4910
+ {
4911
+ "type": "object",
4912
+ "properties": {
4913
+ "ok": {
4914
+ "type": "boolean",
4915
+ "const": true
4916
+ },
4917
+ "users": {
4918
+ "type": "array",
4919
+ "items": {
4920
+ "type": "string",
4921
+ "minLength": 1
4922
+ }
4923
+ }
4924
+ },
4925
+ "required": ["ok", "users"],
4926
+ "additionalProperties": false
4927
+ },
4928
+ {
4929
+ "$ref": "#/$defs/SlackErrorResponse"
4930
+ }
4931
+ ]
4932
+ }
4933
+ },
4934
+ "users.getPresence": {
4935
+ "description": "Offline Slack users.getPresence executable subset using the bound bundle principal. See fidelity.json for limitations.",
4936
+ "input": {
4937
+ "type": "object",
4938
+ "properties": {
4939
+ "user": {
4940
+ "type": "string",
4941
+ "minLength": 1
4942
+ }
4943
+ },
4944
+ "required": ["user"],
4945
+ "additionalProperties": false
4946
+ },
4947
+ "output": {
4948
+ "anyOf": [
4949
+ {
4950
+ "type": "object",
4951
+ "properties": {
4952
+ "ok": {
4953
+ "type": "boolean",
4954
+ "const": true
4955
+ },
4956
+ "presence": {
4957
+ "type": "string",
4958
+ "enum": ["active", "away"]
4959
+ },
4960
+ "manual_presence": {
4961
+ "type": "string",
4962
+ "enum": ["auto", "away"]
4963
+ },
4964
+ "online": {
4965
+ "type": "boolean"
4966
+ },
4967
+ "auto_away": {
4968
+ "type": "boolean"
4969
+ },
4970
+ "manual_away": {
4971
+ "type": "boolean"
4972
+ },
4973
+ "connection_count": {
4974
+ "type": "integer",
4975
+ "minimum": 0
4976
+ },
4977
+ "last_activity": {
4978
+ "type": "integer",
4979
+ "minimum": 0
4980
+ }
4981
+ },
4982
+ "required": ["ok", "presence"],
4983
+ "additionalProperties": false
4984
+ },
4985
+ {
4986
+ "$ref": "#/$defs/SlackErrorResponse"
4987
+ }
4988
+ ]
4989
+ }
4990
+ }
4991
+ }
4992
+ }
4993
+ }