@graph8/sdk 0.251.0 → 0.260.0

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 (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,1984 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.aiInbox` (AI Inbox): 79 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"activate_inbox_mailboxes_inbox_mailboxes_activate_post">;
9
+ *
10
+ * Reference with examples: aiInbox.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.aiInbox.<member>` -> the operationId it calls. */
15
+ export interface AiInboxMembers {
16
+ activateInboxMailboxes: "activate_inbox_mailboxes_inbox_mailboxes_activate_post";
17
+ addChannelComment: "add_channel_comment_inbox_channels__channel_id__comments_post";
18
+ addChannelTag: "add_channel_tag_inbox_channels__channel_id__tags_post";
19
+ addMailboxToWorkspace: "add_mailbox_to_workspace_inbox_workspaces__workspace_id__mailboxes_post";
20
+ assignChannel: "assign_channel_inbox_channels__channel_id__assign_post";
21
+ blockInboxSender: "block_inbox_sender_inbox_blocked_senders_post";
22
+ clearMeetingTranscriptLink: "clear_meeting_transcript_link_inbox_meetings__meeting_id__transcript_link_delete";
23
+ composeInboxEmail: "compose_inbox_email_inbox_emails_compose_post";
24
+ composeInboxLinkedinMessage: "compose_inbox_linkedin_message_inbox_linkedin_compose_post";
25
+ composeInboxSms: "compose_inbox_sms_inbox_sms_compose_post";
26
+ createInboxAgent: "create_inbox_agent_inbox_agents_post";
27
+ createInboxTag: "create_inbox_tag_inbox_tags_post";
28
+ createMeetingTask: "create_meeting_task_inbox_meetings__meeting_id__tasks_post";
29
+ deactivateInboxMailboxes: "deactivate_inbox_mailboxes_inbox_mailboxes_deactivate_post";
30
+ deleteInboxEmailDraft: "delete_inbox_email_draft_inbox_drafts_emails__draft_id__delete";
31
+ deleteInboxLinkedinDraft: "delete_inbox_linkedin_draft_inbox_linkedin_accounts__account_id__conversations__conversation_id__draft_delete";
32
+ deleteInboxTag: "delete_inbox_tag_inbox_tags__tag_id__delete";
33
+ deleteMeetingTask: "delete_meeting_task_inbox_meetings_tasks__task_id__delete";
34
+ disableInboxLinkedinAccount: "disable_inbox_linkedin_account_inbox_linkedin_accounts__account_id__disable_post";
35
+ downloadInboxAttachment: "download_inbox_attachment_inbox_attachments__token__get";
36
+ enableInboxLinkedinAccount: "enable_inbox_linkedin_account_inbox_linkedin_accounts__account_id__enable_post";
37
+ generateInboxDraft: "generate_inbox_draft_inbox_drafts_generate_post";
38
+ getAssigneeEligibility: "get_assignee_eligibility_inbox_channels__channel_id__assignee_eligibility_get";
39
+ getInboxCallResult: "get_inbox_call_result_inbox_call_results__call_id__get";
40
+ getInboxChannel: "get_inbox_channel_inbox_channels__channel_id__get";
41
+ getInboxEmailSettings: "get_inbox_email_settings_inbox_email_settings_get";
42
+ getInboxLinkedinAccount: "get_inbox_linkedin_account_inbox_linkedin_accounts__account_id__get";
43
+ getInboxLinkedinConversation: "get_inbox_linkedin_conversation_inbox_linkedin_accounts__account_id__conversations__conversation_id__get";
44
+ getInboxLinkedinConversationDetail: "get_inbox_linkedin_conversation_detail_inbox_linkedin_accounts__account_id__conversations__conversation_id__detail_get";
45
+ getInboxMailboxSync: "get_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_get";
46
+ getInboxTagAgent: "get_inbox_tag_agent_inbox_tags__tag_id__agent_get";
47
+ getInboxWorkspace: "get_inbox_workspace_inbox_workspaces__workspace_id__get";
48
+ getSequenceChannels: "get_sequence_channels_inbox_workspaces_sequence_channels__sequence_id__get";
49
+ getWorkspaceUnreadCounts: "get_workspace_unread_counts_inbox_workspaces_unread_counts_get";
50
+ linkInboxEmailToSequence: "link_inbox_email_to_sequence_inbox_emails__email_id__link_sequence_post";
51
+ linkMeetingTranscript: "link_meeting_transcript_inbox_meetings__meeting_id__transcript_link_post";
52
+ listAllInboxMailboxes: "list_all_inbox_mailboxes_inbox_mailboxes_all_get";
53
+ listAssignableMeetingUsers: "list_assignable_meeting_users_inbox_meetings__meeting_id__assignable_users_get";
54
+ listChannelComments: "list_channel_comments_inbox_channels__channel_id__comments_get";
55
+ listInboxBlockedSenders: "list_inbox_blocked_senders_inbox_blocked_senders_get";
56
+ listInboxEmailSequenceCandidates: "list_inbox_email_sequence_candidates_inbox_emails__email_id__sequence_candidates_get";
57
+ listInboxEmailSettingsTimezones: "list_inbox_email_settings_timezones_inbox_email_settings_timezones_get";
58
+ listInboxEmailsBySequence: "list_inbox_emails_by_sequence_inbox_emails_by_sequence__sequence_id__get";
59
+ listInboxLinkedinAccounts: "list_inbox_linkedin_accounts_inbox_linkedin_accounts_get";
60
+ listInboxMailboxes: "list_inbox_mailboxes_inbox_mailboxes_get";
61
+ listInboxMailboxesPaginated: "list_inbox_mailboxes_paginated_inbox_mailboxes_paginated_get";
62
+ listInboxUsers: "list_inbox_users_inbox_users_get";
63
+ listInboxWorkspaces: "list_inbox_workspaces_inbox_workspaces_get";
64
+ listMailboxAssociatedSequences: "list_mailbox_associated_sequences_inbox_mailboxes_associated_sequences_post";
65
+ listMeetingTasks: "list_meeting_tasks_inbox_meetings__meeting_id__tasks_get";
66
+ listMyMeetingTasks: "list_my_meeting_tasks_inbox_meetings_my_tasks_get";
67
+ markInboxEmailRead: "mark_inbox_email_read_inbox_emails__email_id__mark_read_post";
68
+ markInboxLinkedinConversationRead: "mark_inbox_linkedin_conversation_read_inbox_linkedin_accounts__account_id__conversations__conversation_id__read_post";
69
+ markInboxLinkedinConversationUnread: "mark_inbox_linkedin_conversation_unread_inbox_linkedin_accounts__account_id__conversations__conversation_id__unread_post";
70
+ markInboxSmsRead: "mark_inbox_sms_read_inbox_sms__thread_id__mark_read_post";
71
+ markMeetingNoTranscriptExpected: "mark_meeting_no_transcript_expected_inbox_meetings__meeting_id__no_transcript_post";
72
+ removeChannelTag: "remove_channel_tag_inbox_channels__channel_id__tags_delete";
73
+ revalidateInboxMailbox: "revalidate_inbox_mailbox_inbox_mailboxes__mailbox__revalidate_post";
74
+ searchInboxCallResults: "search_inbox_call_results_inbox_call_results_search_post";
75
+ searchInboxLinkedinConversations: "search_inbox_linkedin_conversations_inbox_linkedin_conversations_search_post";
76
+ setChannelAiPause: "set_channel_ai_pause_inbox_channels__channel_id__ai_pause_post";
77
+ setInboxEmailSequence: "set_inbox_email_sequence_inbox_emails__email_id__sequence_post";
78
+ setInboxEmailSettings: "set_inbox_email_settings_inbox_email_settings_put";
79
+ setInboxMailboxVisibility: "set_inbox_mailbox_visibility_inbox_mailboxes__mailbox__visibility_patch";
80
+ setMeetingSensitivity: "set_meeting_sensitivity_inbox_meetings__meeting_id__sensitivity_patch";
81
+ startInboxMailboxSync: "start_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_post";
82
+ stopInboxMailboxSync: "stop_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_delete";
83
+ syncInboxLinkedinAccounts: "sync_inbox_linkedin_accounts_inbox_linkedin_accounts_sync_post";
84
+ toggleInboxMailboxes: "toggle_inbox_mailboxes_inbox_mailboxes_bulk_patch";
85
+ unassignChannel: "unassign_channel_inbox_channels__channel_id__assign_delete";
86
+ unblockInboxSender: "unblock_inbox_sender_inbox_blocked_senders__blocked_sender_id__delete";
87
+ updateInboxLinkedinAccount: "update_inbox_linkedin_account_inbox_linkedin_accounts__account_id__put";
88
+ updateInboxMailboxSettings: "update_inbox_mailbox_settings_inbox_mailboxes__mailbox__settings_patch";
89
+ updateInboxTag: "update_inbox_tag_inbox_tags__tag_id__put";
90
+ updateMeetingTask: "update_meeting_task_inbox_meetings_tasks__task_id__patch";
91
+ uploadInboxDraftAttachment: "upload_inbox_draft_attachment_inbox_drafts_attachments_post";
92
+ uploadInboxNoteAttachment: "upload_inbox_note_attachment_inbox_notes_attachments_post";
93
+ validateInboxLinkedinAccount: "validate_inbox_linkedin_account_inbox_linkedin_validate_account_post";
94
+ validateInboxSendMailbox: "validate_inbox_send_mailbox_inbox_emails_validate_mailbox_post";
95
+ }
96
+
97
+ /** Input and output of every `g8.api.aiInbox` operation, keyed by operationId. */
98
+ export interface AiInboxOperations {
99
+ /**
100
+ * POST /inbox/mailboxes/activate
101
+ * Activate Inbox Mailboxes
102
+ * tier: external · scope: inbox:run
103
+ */
104
+ activate_inbox_mailboxes_inbox_mailboxes_activate_post: {
105
+ input: {
106
+ headers?: {
107
+ "X-Target-Org-Id"?: string | null;
108
+ };
109
+ body: MailboxActivateRequest;
110
+ };
111
+ output: ApiResponse_InboxPayload_;
112
+ };
113
+ /**
114
+ * POST /inbox/channels/{channel_id}/comments
115
+ * Add Channel Comment
116
+ * tier: write · scope: inbox:write
117
+ */
118
+ add_channel_comment_inbox_channels__channel_id__comments_post: {
119
+ input: {
120
+ path: {
121
+ /** Conversation id. */
122
+ channel_id: string;
123
+ };
124
+ query: {
125
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
126
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
127
+ };
128
+ headers?: {
129
+ "X-Target-Org-Id"?: string | null;
130
+ };
131
+ body: CommentCreateRequest;
132
+ };
133
+ output: ApiResponse_InboxPayload_;
134
+ };
135
+ /**
136
+ * POST /inbox/channels/{channel_id}/tags
137
+ * Add Channel Tag
138
+ * tier: write · scope: inbox:write
139
+ */
140
+ add_channel_tag_inbox_channels__channel_id__tags_post: {
141
+ input: {
142
+ path: {
143
+ /** Conversation id. */
144
+ channel_id: string;
145
+ };
146
+ query: {
147
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
148
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
149
+ /** LinkedIn account id. Required only for `heyreach`, where the id is account-scoped and ambiguous without it. */
150
+ linkedin_account_id?: number | null;
151
+ };
152
+ headers?: {
153
+ "X-Target-Org-Id"?: string | null;
154
+ };
155
+ body: developer_api__interfaces__dtos__inbox_collab__TagRequest;
156
+ };
157
+ output: ApiResponse_InboxPayload_;
158
+ };
159
+ /**
160
+ * POST /inbox/workspaces/{workspace_id}/mailboxes
161
+ * Add Mailbox To Workspace
162
+ * tier: write · scope: inbox:write
163
+ */
164
+ add_mailbox_to_workspace_inbox_workspaces__workspace_id__mailboxes_post: {
165
+ input: {
166
+ path: {
167
+ /** Workspace id (UUID). */
168
+ workspace_id: string;
169
+ };
170
+ headers?: {
171
+ "X-Target-Org-Id"?: string | null;
172
+ };
173
+ body: Body_add_mailbox_to_workspace_inbox_workspaces__workspace_id__mailboxes_post;
174
+ };
175
+ output: ApiResponse_InboxPayload_;
176
+ };
177
+ /**
178
+ * POST /inbox/channels/{channel_id}/assign
179
+ * Assign Channel
180
+ * tier: write · scope: inbox:write
181
+ */
182
+ assign_channel_inbox_channels__channel_id__assign_post: {
183
+ input: {
184
+ path: {
185
+ /** Conversation id. */
186
+ channel_id: string;
187
+ };
188
+ query: {
189
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
190
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
191
+ /** LinkedIn account id. Required only for `heyreach`, where the id is account-scoped and ambiguous without it. */
192
+ linkedin_account_id?: number | null;
193
+ };
194
+ headers?: {
195
+ "X-Target-Org-Id"?: string | null;
196
+ };
197
+ body: AssignmentCreateRequest;
198
+ };
199
+ output: ApiResponse_InboxPayload_;
200
+ };
201
+ /**
202
+ * POST /inbox/blocked-senders
203
+ * Block Inbox Sender
204
+ * tier: write · scope: inbox:write
205
+ */
206
+ block_inbox_sender_inbox_blocked_senders_post: {
207
+ input: {
208
+ headers?: {
209
+ "X-Target-Org-Id"?: string | null;
210
+ };
211
+ body: BlockedSenderCreateRequest;
212
+ };
213
+ output: ApiResponse_InboxPayload_;
214
+ };
215
+ /**
216
+ * DELETE /inbox/meetings/{meeting_id}/transcript-link
217
+ * Clear Meeting Transcript Link
218
+ * tier: destructive · scope: meetings:delete
219
+ */
220
+ clear_meeting_transcript_link_inbox_meetings__meeting_id__transcript_link_delete: {
221
+ input: {
222
+ path: {
223
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
224
+ meeting_id: string;
225
+ };
226
+ headers?: {
227
+ "X-Target-Org-Id"?: string | null;
228
+ };
229
+ };
230
+ output: ApiResponse_InboxPayload_;
231
+ };
232
+ /**
233
+ * POST /inbox/emails/compose
234
+ * Compose Inbox Email
235
+ * tier: external · scope: inbox:run
236
+ */
237
+ compose_inbox_email_inbox_emails_compose_post: {
238
+ input: {
239
+ headers?: {
240
+ "X-Target-Org-Id"?: string | null;
241
+ };
242
+ body: EmailComposeRequest;
243
+ };
244
+ output: ApiResponse_InboxPayload_;
245
+ };
246
+ /**
247
+ * POST /inbox/linkedin/compose
248
+ * Compose Inbox Linkedin Message
249
+ * tier: external · scope: inbox:run
250
+ */
251
+ compose_inbox_linkedin_message_inbox_linkedin_compose_post: {
252
+ input: {
253
+ headers?: {
254
+ "X-Target-Org-Id"?: string | null;
255
+ };
256
+ body: LinkedInComposeRequest;
257
+ };
258
+ output: ApiResponse_InboxPayload_;
259
+ };
260
+ /**
261
+ * POST /inbox/sms/compose
262
+ * Compose Inbox Sms
263
+ * tier: external · scope: inbox:run
264
+ */
265
+ compose_inbox_sms_inbox_sms_compose_post: {
266
+ input: {
267
+ headers?: {
268
+ "X-Target-Org-Id"?: string | null;
269
+ };
270
+ body: SmsComposeRequest;
271
+ };
272
+ output: ApiResponse_InboxPayload_;
273
+ };
274
+ /**
275
+ * POST /inbox/agents
276
+ * Create Inbox Agent
277
+ * tier: write · scope: inbox:write
278
+ */
279
+ create_inbox_agent_inbox_agents_post: {
280
+ input: {
281
+ headers?: {
282
+ "X-Target-Org-Id"?: string | null;
283
+ };
284
+ body: InboxAgentCreateRequest;
285
+ };
286
+ output: ApiResponse_InboxPayload_;
287
+ };
288
+ /**
289
+ * POST /inbox/tags
290
+ * Create Inbox Tag
291
+ * tier: write · scope: inbox:write
292
+ */
293
+ create_inbox_tag_inbox_tags_post: {
294
+ input: {
295
+ headers?: {
296
+ "X-Target-Org-Id"?: string | null;
297
+ };
298
+ body: TagCreateRequest;
299
+ };
300
+ output: ApiResponse_InboxPayload_;
301
+ };
302
+ /**
303
+ * POST /inbox/meetings/{meeting_id}/tasks
304
+ * Create Meeting Task
305
+ * tier: write · scope: meetings:write
306
+ */
307
+ create_meeting_task_inbox_meetings__meeting_id__tasks_post: {
308
+ input: {
309
+ path: {
310
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
311
+ meeting_id: string;
312
+ };
313
+ headers?: {
314
+ "X-Target-Org-Id"?: string | null;
315
+ };
316
+ body: MeetingTaskCreateRequest;
317
+ };
318
+ output: ApiResponse_InboxPayload_;
319
+ };
320
+ /**
321
+ * POST /inbox/mailboxes/deactivate
322
+ * Deactivate Inbox Mailboxes
323
+ * tier: write · scope: inbox:write
324
+ */
325
+ deactivate_inbox_mailboxes_inbox_mailboxes_deactivate_post: {
326
+ input: {
327
+ headers?: {
328
+ "X-Target-Org-Id"?: string | null;
329
+ };
330
+ body: MailboxActivateRequest;
331
+ };
332
+ output: ApiResponse_InboxPayload_;
333
+ };
334
+ /**
335
+ * DELETE /inbox/drafts/emails/{draft_id}
336
+ * Delete Inbox Email Draft
337
+ * tier: destructive · scope: inbox:delete
338
+ */
339
+ delete_inbox_email_draft_inbox_drafts_emails__draft_id__delete: {
340
+ input: {
341
+ path: {
342
+ /** The draft's message id, from `POST /inbox/emails/compose`. */
343
+ draft_id: string;
344
+ };
345
+ headers?: {
346
+ "X-Target-Org-Id"?: string | null;
347
+ };
348
+ };
349
+ output: ApiResponse_InboxPayload_;
350
+ };
351
+ /**
352
+ * DELETE /inbox/linkedin/accounts/{account_id}/conversations/{conversation_id}/draft
353
+ * Delete Inbox Linkedin Draft
354
+ * tier: destructive · scope: inbox:delete
355
+ */
356
+ delete_inbox_linkedin_draft_inbox_linkedin_accounts__account_id__conversations__conversation_id__draft_delete: {
357
+ input: {
358
+ path: {
359
+ /** LinkedIn account id (integer). */
360
+ account_id: number;
361
+ /** LinkedIn conversation id. */
362
+ conversation_id: string;
363
+ };
364
+ headers?: {
365
+ "X-Target-Org-Id"?: string | null;
366
+ };
367
+ };
368
+ output: ApiResponse_InboxPayload_;
369
+ };
370
+ /**
371
+ * DELETE /inbox/tags/{tag_id}
372
+ * Delete Inbox Tag
373
+ * tier: destructive · scope: inbox:delete
374
+ */
375
+ delete_inbox_tag_inbox_tags__tag_id__delete: {
376
+ input: {
377
+ path: {
378
+ /** Tag id. */
379
+ tag_id: string;
380
+ };
381
+ headers?: {
382
+ "X-Target-Org-Id"?: string | null;
383
+ };
384
+ };
385
+ output: ApiResponse_InboxPayload_;
386
+ };
387
+ /**
388
+ * DELETE /inbox/meetings/tasks/{task_id}
389
+ * Delete Meeting Task
390
+ * tier: destructive · scope: meetings:delete
391
+ */
392
+ delete_meeting_task_inbox_meetings_tasks__task_id__delete: {
393
+ input: {
394
+ path: {
395
+ /** Meeting task id. */
396
+ task_id: string;
397
+ };
398
+ headers?: {
399
+ "X-Target-Org-Id"?: string | null;
400
+ };
401
+ };
402
+ output: ApiResponse_InboxPayload_;
403
+ };
404
+ /**
405
+ * POST /inbox/linkedin/accounts/{account_id}/disable
406
+ * Disable Inbox Linkedin Account
407
+ * tier: write · scope: inbox:write
408
+ */
409
+ disable_inbox_linkedin_account_inbox_linkedin_accounts__account_id__disable_post: {
410
+ input: {
411
+ path: {
412
+ /** LinkedIn account id (integer). */
413
+ account_id: number;
414
+ };
415
+ headers?: {
416
+ "X-Target-Org-Id"?: string | null;
417
+ };
418
+ };
419
+ output: ApiResponse_InboxPayload_;
420
+ };
421
+ /**
422
+ * GET /inbox/attachments/{token}
423
+ * Download Inbox Attachment
424
+ * tier: read · scope: inbox:read
425
+ */
426
+ download_inbox_attachment_inbox_attachments__token__get: {
427
+ input: {
428
+ path: {
429
+ /** The `token` returned by `POST /inbox/drafts/attachments` or `POST /inbox/notes/attachments`. */
430
+ token: string;
431
+ };
432
+ headers?: {
433
+ "X-Target-Org-Id"?: string | null;
434
+ };
435
+ };
436
+ output: void;
437
+ };
438
+ /**
439
+ * POST /inbox/linkedin/accounts/{account_id}/enable
440
+ * Enable Inbox Linkedin Account
441
+ * tier: external · scope: inbox:run
442
+ */
443
+ enable_inbox_linkedin_account_inbox_linkedin_accounts__account_id__enable_post: {
444
+ input: {
445
+ path: {
446
+ /** LinkedIn account id (integer). */
447
+ account_id: number;
448
+ };
449
+ headers?: {
450
+ "X-Target-Org-Id"?: string | null;
451
+ };
452
+ };
453
+ output: ApiResponse_InboxPayload_;
454
+ };
455
+ /**
456
+ * POST /inbox/drafts/generate
457
+ * Generate Inbox Draft
458
+ * tier: billable · scope: inbox:run
459
+ */
460
+ generate_inbox_draft_inbox_drafts_generate_post: {
461
+ input: {
462
+ headers?: {
463
+ "X-Target-Org-Id"?: string | null;
464
+ };
465
+ body: AiDraftGenerateRequest;
466
+ };
467
+ output: ApiResponse_InboxPayload_;
468
+ };
469
+ /**
470
+ * GET /inbox/channels/{channel_id}/assignee-eligibility
471
+ * Get Assignee Eligibility
472
+ * tier: read · scope: inbox:read
473
+ */
474
+ get_assignee_eligibility_inbox_channels__channel_id__assignee_eligibility_get: {
475
+ input: {
476
+ path: {
477
+ /** Conversation id. */
478
+ channel_id: string;
479
+ };
480
+ query: {
481
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
482
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
483
+ };
484
+ headers?: {
485
+ "X-Target-Org-Id"?: string | null;
486
+ };
487
+ };
488
+ output: ApiResponse_InboxPayload_;
489
+ };
490
+ /**
491
+ * GET /inbox/call-results/{call_id}
492
+ * Get Inbox Call Result
493
+ * tier: read · scope: inbox:read
494
+ */
495
+ get_inbox_call_result_inbox_call_results__call_id__get: {
496
+ input: {
497
+ path: {
498
+ /** Integer call-result id. */
499
+ call_id: number;
500
+ };
501
+ headers?: {
502
+ "X-Target-Org-Id"?: string | null;
503
+ };
504
+ };
505
+ output: ApiResponse_InboxPayload_;
506
+ };
507
+ /**
508
+ * GET /inbox/channels/{channel_id}
509
+ * Get Inbox Channel
510
+ * tier: read · scope: inbox:read
511
+ */
512
+ get_inbox_channel_inbox_channels__channel_id__get: {
513
+ input: {
514
+ path: {
515
+ /** Conversation id. */
516
+ channel_id: string;
517
+ };
518
+ query: {
519
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels. */
520
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
521
+ };
522
+ headers?: {
523
+ "X-Target-Org-Id"?: string | null;
524
+ };
525
+ };
526
+ output: ApiResponse_InboxPayload_;
527
+ };
528
+ /**
529
+ * GET /inbox/email-settings
530
+ * Get Inbox Email Settings
531
+ * tier: read · scope: inbox:read
532
+ */
533
+ get_inbox_email_settings_inbox_email_settings_get: {
534
+ input: {
535
+ headers?: {
536
+ "X-Target-Org-Id"?: string | null;
537
+ };
538
+ };
539
+ output: ApiResponse_InboxPayload_;
540
+ };
541
+ /**
542
+ * GET /inbox/linkedin/accounts/{account_id}
543
+ * Get Inbox Linkedin Account
544
+ * tier: read · scope: inbox:read
545
+ */
546
+ get_inbox_linkedin_account_inbox_linkedin_accounts__account_id__get: {
547
+ input: {
548
+ path: {
549
+ /** LinkedIn account id (integer). */
550
+ account_id: number;
551
+ };
552
+ headers?: {
553
+ "X-Target-Org-Id"?: string | null;
554
+ };
555
+ };
556
+ output: ApiResponse_InboxPayload_;
557
+ };
558
+ /**
559
+ * GET /inbox/linkedin/accounts/{account_id}/conversations/{conversation_id}
560
+ * Get Inbox Linkedin Conversation
561
+ * tier: read · scope: inbox:read
562
+ */
563
+ get_inbox_linkedin_conversation_inbox_linkedin_accounts__account_id__conversations__conversation_id__get: {
564
+ input: {
565
+ path: {
566
+ /** LinkedIn account id (integer). */
567
+ account_id: number;
568
+ /** LinkedIn conversation id. */
569
+ conversation_id: string;
570
+ };
571
+ headers?: {
572
+ "X-Target-Org-Id"?: string | null;
573
+ };
574
+ };
575
+ output: ApiResponse_InboxPayload_;
576
+ };
577
+ /**
578
+ * GET /inbox/linkedin/accounts/{account_id}/conversations/{conversation_id}/detail
579
+ * Get Inbox Linkedin Conversation Detail
580
+ * tier: read · scope: inbox:read
581
+ */
582
+ get_inbox_linkedin_conversation_detail_inbox_linkedin_accounts__account_id__conversations__conversation_id__detail_get: {
583
+ input: {
584
+ path: {
585
+ /** LinkedIn account id (integer). */
586
+ account_id: number;
587
+ /** LinkedIn conversation id. */
588
+ conversation_id: string;
589
+ };
590
+ headers?: {
591
+ "X-Target-Org-Id"?: string | null;
592
+ };
593
+ };
594
+ output: ApiResponse_InboxPayload_;
595
+ };
596
+ /**
597
+ * GET /inbox/mailboxes/{mailbox}/sync
598
+ * Get Inbox Mailbox Sync
599
+ * tier: read · scope: inbox:read
600
+ */
601
+ get_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_get: {
602
+ input: {
603
+ path: {
604
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
605
+ mailbox: string;
606
+ };
607
+ query: {
608
+ /** How the mailbox is connected. REQUIRED and not inferred: the same address can be connected either way, and guessing would act on the wrong transport. Closed to a Literal so an unknown value is a 422 naming both, rather than a `ValueError` raised inside the handler. */
609
+ provider: "google_mailbox" | "smtp";
610
+ };
611
+ headers?: {
612
+ "X-Target-Org-Id"?: string | null;
613
+ };
614
+ };
615
+ output: ApiResponse_InboxPayload_;
616
+ };
617
+ /**
618
+ * GET /inbox/tags/{tag_id}/agent
619
+ * Get Inbox Tag Agent
620
+ * tier: read · scope: inbox:read
621
+ */
622
+ get_inbox_tag_agent_inbox_tags__tag_id__agent_get: {
623
+ input: {
624
+ path: {
625
+ /** Tag id. */
626
+ tag_id: string;
627
+ };
628
+ headers?: {
629
+ "X-Target-Org-Id"?: string | null;
630
+ };
631
+ };
632
+ output: ApiResponse_InboxPayload_;
633
+ };
634
+ /**
635
+ * GET /inbox/workspaces/{workspace_id}
636
+ * Get Inbox Workspace
637
+ * tier: read · scope: inbox:read
638
+ */
639
+ get_inbox_workspace_inbox_workspaces__workspace_id__get: {
640
+ input: {
641
+ path: {
642
+ /** Workspace id (UUID). */
643
+ workspace_id: string;
644
+ };
645
+ headers?: {
646
+ "X-Target-Org-Id"?: string | null;
647
+ };
648
+ };
649
+ output: ApiResponse_InboxPayload_;
650
+ };
651
+ /**
652
+ * GET /inbox/workspaces/sequence-channels/{sequence_id}
653
+ * Get Sequence Channels
654
+ * tier: read · scope: inbox:read
655
+ */
656
+ get_sequence_channels_inbox_workspaces_sequence_channels__sequence_id__get: {
657
+ input: {
658
+ path: {
659
+ /** Sequence id. */
660
+ sequence_id: string;
661
+ };
662
+ headers?: {
663
+ "X-Target-Org-Id"?: string | null;
664
+ };
665
+ };
666
+ output: ApiResponse_InboxListPayload_;
667
+ };
668
+ /**
669
+ * GET /inbox/workspaces/unread-counts
670
+ * Get Workspace Unread Counts
671
+ * tier: read · scope: inbox:read
672
+ */
673
+ get_workspace_unread_counts_inbox_workspaces_unread_counts_get: {
674
+ input: {
675
+ headers?: {
676
+ "X-Target-Org-Id"?: string | null;
677
+ };
678
+ };
679
+ output: ApiResponse_InboxPayload_;
680
+ };
681
+ /**
682
+ * POST /inbox/emails/{email_id}/link-sequence
683
+ * Link Inbox Email To Sequence
684
+ * tier: write · scope: inbox:write
685
+ */
686
+ link_inbox_email_to_sequence_inbox_emails__email_id__link_sequence_post: {
687
+ input: {
688
+ path: {
689
+ /** Email thread id. */
690
+ email_id: string;
691
+ };
692
+ headers?: {
693
+ "X-Target-Org-Id"?: string | null;
694
+ };
695
+ body: LinkSequenceRequest;
696
+ };
697
+ output: ApiResponse_InboxPayload_;
698
+ };
699
+ /**
700
+ * POST /inbox/meetings/{meeting_id}/transcript-link
701
+ * Link Meeting Transcript
702
+ * tier: write · scope: meetings:write
703
+ */
704
+ link_meeting_transcript_inbox_meetings__meeting_id__transcript_link_post: {
705
+ input: {
706
+ path: {
707
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
708
+ meeting_id: string;
709
+ };
710
+ headers?: {
711
+ "X-Target-Org-Id"?: string | null;
712
+ };
713
+ body: MeetingTranscriptLinkRequest;
714
+ };
715
+ output: ApiResponse_InboxPayload_;
716
+ };
717
+ /**
718
+ * GET /inbox/mailboxes/all
719
+ * List All Inbox Mailboxes
720
+ * tier: read · scope: inbox:read
721
+ */
722
+ list_all_inbox_mailboxes_inbox_mailboxes_all_get: {
723
+ input: {
724
+ query?: {
725
+ /** Whose personal mailboxes to include. Defaults to this key's human. */
726
+ user_email?: string | null;
727
+ };
728
+ headers?: {
729
+ "X-Target-Org-Id"?: string | null;
730
+ };
731
+ };
732
+ output: ApiResponse_InboxOpsListPayload_;
733
+ };
734
+ /**
735
+ * GET /inbox/meetings/{meeting_id}/assignable-users
736
+ * List Assignable Meeting Users
737
+ * tier: read · scope: meetings:read
738
+ */
739
+ list_assignable_meeting_users_inbox_meetings__meeting_id__assignable_users_get: {
740
+ input: {
741
+ path: {
742
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
743
+ meeting_id: string;
744
+ };
745
+ headers?: {
746
+ "X-Target-Org-Id"?: string | null;
747
+ };
748
+ };
749
+ output: ApiResponse_InboxOpsListPayload_;
750
+ };
751
+ /**
752
+ * GET /inbox/channels/{channel_id}/comments
753
+ * List Channel Comments
754
+ * tier: read · scope: inbox:read
755
+ */
756
+ list_channel_comments_inbox_channels__channel_id__comments_get: {
757
+ input: {
758
+ path: {
759
+ /** Conversation id. */
760
+ channel_id: string;
761
+ };
762
+ query: {
763
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
764
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
765
+ };
766
+ headers?: {
767
+ "X-Target-Org-Id"?: string | null;
768
+ };
769
+ };
770
+ output: ApiResponse_InboxListPayload_;
771
+ };
772
+ /**
773
+ * GET /inbox/blocked-senders
774
+ * List Inbox Blocked Senders
775
+ * tier: read · scope: inbox:read
776
+ */
777
+ list_inbox_blocked_senders_inbox_blocked_senders_get: {
778
+ input: {
779
+ query?: {
780
+ page?: number;
781
+ page_size?: number;
782
+ };
783
+ headers?: {
784
+ "X-Target-Org-Id"?: string | null;
785
+ };
786
+ };
787
+ output: ApiResponse_InboxOpsListPayload_;
788
+ };
789
+ /**
790
+ * GET /inbox/emails/{email_id}/sequence-candidates
791
+ * List Inbox Email Sequence Candidates
792
+ * tier: read · scope: inbox:read
793
+ */
794
+ list_inbox_email_sequence_candidates_inbox_emails__email_id__sequence_candidates_get: {
795
+ input: {
796
+ path: {
797
+ /** Email thread id. */
798
+ email_id: string;
799
+ };
800
+ query: {
801
+ /** Integer contact id - the CDP primary key, not an email address. */
802
+ contact_id: number;
803
+ };
804
+ headers?: {
805
+ "X-Target-Org-Id"?: string | null;
806
+ };
807
+ };
808
+ output: ApiResponse_InboxOpsListPayload_;
809
+ };
810
+ /**
811
+ * GET /inbox/email-settings/timezones
812
+ * List Inbox Email Settings Timezones
813
+ * tier: read · scope: inbox:read
814
+ */
815
+ list_inbox_email_settings_timezones_inbox_email_settings_timezones_get: {
816
+ input: {
817
+ headers?: {
818
+ "X-Target-Org-Id"?: string | null;
819
+ };
820
+ };
821
+ output: ApiResponse_InboxOpsListPayload_;
822
+ };
823
+ /**
824
+ * GET /inbox/emails/by-sequence/{sequence_id}
825
+ * List Inbox Emails By Sequence
826
+ * tier: read · scope: inbox:read
827
+ */
828
+ list_inbox_emails_by_sequence_inbox_emails_by_sequence__sequence_id__get: {
829
+ input: {
830
+ path: {
831
+ /** Sequence (campaign) id. */
832
+ sequence_id: string;
833
+ };
834
+ query?: {
835
+ page?: number;
836
+ page_size?: number;
837
+ };
838
+ headers?: {
839
+ "X-Target-Org-Id"?: string | null;
840
+ };
841
+ };
842
+ output: ApiResponse_InboxOpsListPayload_;
843
+ };
844
+ /**
845
+ * GET /inbox/linkedin/accounts
846
+ * List Inbox Linkedin Accounts
847
+ * tier: read · scope: inbox:read
848
+ */
849
+ list_inbox_linkedin_accounts_inbox_linkedin_accounts_get: {
850
+ input: {
851
+ query?: {
852
+ /** Filter by name. */
853
+ keyword?: string | null;
854
+ offset?: number;
855
+ limit?: number;
856
+ };
857
+ headers?: {
858
+ "X-Target-Org-Id"?: string | null;
859
+ };
860
+ };
861
+ output: ApiResponse_InboxOpsListPayload_;
862
+ };
863
+ /**
864
+ * GET /inbox/mailboxes
865
+ * List Inbox Mailboxes
866
+ * tier: read · scope: inbox:read
867
+ */
868
+ list_inbox_mailboxes_inbox_mailboxes_get: {
869
+ input: {
870
+ query?: {
871
+ /** Whose PERSONAL mailboxes to include. Defaults to the human who minted this key. An org-scoped key has no human, so it sees the team mailboxes only. */
872
+ user_email?: string | null;
873
+ /** Filter by connection type. */
874
+ provider?: ("google_mailbox" | "smtp") | null;
875
+ /** `team` (shared) or `personal` (owner-only). */
876
+ category?: ("team" | "personal") | null;
877
+ };
878
+ headers?: {
879
+ "X-Target-Org-Id"?: string | null;
880
+ };
881
+ };
882
+ output: ApiResponse_InboxOpsListPayload_;
883
+ };
884
+ /**
885
+ * GET /inbox/mailboxes/paginated
886
+ * List Inbox Mailboxes Paginated
887
+ * tier: read · scope: inbox:read
888
+ */
889
+ list_inbox_mailboxes_paginated_inbox_mailboxes_paginated_get: {
890
+ input: {
891
+ query?: {
892
+ page?: number;
893
+ page_size?: number;
894
+ /** `RUNNING` (being polled) or `STOPPED`. */
895
+ status?: ("RUNNING" | "STOPPED") | null;
896
+ /** Filter by connection type. */
897
+ provider?: ("google_mailbox" | "smtp") | null;
898
+ /** Substring of the mailbox address. */
899
+ search?: string | null;
900
+ };
901
+ headers?: {
902
+ "X-Target-Org-Id"?: string | null;
903
+ };
904
+ };
905
+ output: ApiResponse_InboxOpsListPayload_;
906
+ };
907
+ /**
908
+ * GET /inbox/users
909
+ * List Inbox Users
910
+ * tier: read · scope: inbox:read
911
+ */
912
+ list_inbox_users_inbox_users_get: {
913
+ input: {
914
+ headers?: {
915
+ "X-Target-Org-Id"?: string | null;
916
+ };
917
+ };
918
+ output: ApiResponse_InboxListPayload_;
919
+ };
920
+ /**
921
+ * GET /inbox/workspaces
922
+ * List Inbox Workspaces
923
+ * tier: read · scope: inbox:read
924
+ */
925
+ list_inbox_workspaces_inbox_workspaces_get: {
926
+ input: {
927
+ query?: {
928
+ page?: number;
929
+ page_size?: number;
930
+ };
931
+ headers?: {
932
+ "X-Target-Org-Id"?: string | null;
933
+ };
934
+ };
935
+ output: ApiResponse_InboxListPayload_;
936
+ };
937
+ /**
938
+ * POST /inbox/mailboxes/associated-sequences
939
+ * List Mailbox Associated Sequences
940
+ * tier: read · scope: inbox:read
941
+ */
942
+ list_mailbox_associated_sequences_inbox_mailboxes_associated_sequences_post: {
943
+ input: {
944
+ headers?: {
945
+ "X-Target-Org-Id"?: string | null;
946
+ };
947
+ body: MailboxAddressesRequest;
948
+ };
949
+ output: ApiResponse_InboxOpsListPayload_;
950
+ };
951
+ /**
952
+ * GET /inbox/meetings/{meeting_id}/tasks
953
+ * List Meeting Tasks
954
+ * tier: read · scope: meetings:read
955
+ */
956
+ list_meeting_tasks_inbox_meetings__meeting_id__tasks_get: {
957
+ input: {
958
+ path: {
959
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
960
+ meeting_id: string;
961
+ };
962
+ headers?: {
963
+ "X-Target-Org-Id"?: string | null;
964
+ };
965
+ };
966
+ output: ApiResponse_InboxOpsListPayload_;
967
+ };
968
+ /**
969
+ * GET /inbox/meetings/my-tasks
970
+ * List My Meeting Tasks
971
+ * tier: read · scope: meetings:read
972
+ */
973
+ list_my_meeting_tasks_inbox_meetings_my_tasks_get: {
974
+ input: {
975
+ headers?: {
976
+ "X-Target-Org-Id"?: string | null;
977
+ };
978
+ };
979
+ output: ApiResponse_InboxOpsListPayload_;
980
+ };
981
+ /**
982
+ * POST /inbox/emails/{email_id}/mark-read
983
+ * Mark Inbox Email Read
984
+ * tier: write · scope: inbox:write
985
+ */
986
+ mark_inbox_email_read_inbox_emails__email_id__mark_read_post: {
987
+ input: {
988
+ path: {
989
+ /** Email thread id. */
990
+ email_id: string;
991
+ };
992
+ headers?: {
993
+ "X-Target-Org-Id"?: string | null;
994
+ };
995
+ };
996
+ output: ApiResponse_InboxPayload_;
997
+ };
998
+ /**
999
+ * POST /inbox/linkedin/accounts/{account_id}/conversations/{conversation_id}/read
1000
+ * Mark Inbox Linkedin Conversation Read
1001
+ * tier: write · scope: inbox:write
1002
+ */
1003
+ mark_inbox_linkedin_conversation_read_inbox_linkedin_accounts__account_id__conversations__conversation_id__read_post: {
1004
+ input: {
1005
+ path: {
1006
+ /** LinkedIn account id (integer). */
1007
+ account_id: number;
1008
+ /** LinkedIn conversation id. */
1009
+ conversation_id: string;
1010
+ };
1011
+ headers?: {
1012
+ "X-Target-Org-Id"?: string | null;
1013
+ };
1014
+ };
1015
+ output: ApiResponse_InboxPayload_;
1016
+ };
1017
+ /**
1018
+ * POST /inbox/linkedin/accounts/{account_id}/conversations/{conversation_id}/unread
1019
+ * Mark Inbox Linkedin Conversation Unread
1020
+ * tier: write · scope: inbox:write
1021
+ */
1022
+ mark_inbox_linkedin_conversation_unread_inbox_linkedin_accounts__account_id__conversations__conversation_id__unread_post: {
1023
+ input: {
1024
+ path: {
1025
+ /** LinkedIn account id (integer). */
1026
+ account_id: number;
1027
+ /** LinkedIn conversation id. */
1028
+ conversation_id: string;
1029
+ };
1030
+ headers?: {
1031
+ "X-Target-Org-Id"?: string | null;
1032
+ };
1033
+ };
1034
+ output: ApiResponse_InboxPayload_;
1035
+ };
1036
+ /**
1037
+ * POST /inbox/sms/{thread_id}/mark-read
1038
+ * Mark Inbox Sms Read
1039
+ * tier: write · scope: inbox:write
1040
+ */
1041
+ mark_inbox_sms_read_inbox_sms__thread_id__mark_read_post: {
1042
+ input: {
1043
+ path: {
1044
+ /** SMS thread id. */
1045
+ thread_id: string;
1046
+ };
1047
+ headers?: {
1048
+ "X-Target-Org-Id"?: string | null;
1049
+ };
1050
+ };
1051
+ output: ApiResponse_InboxPayload_;
1052
+ };
1053
+ /**
1054
+ * POST /inbox/meetings/{meeting_id}/no-transcript
1055
+ * Mark Meeting No Transcript Expected
1056
+ * tier: write · scope: meetings:write
1057
+ */
1058
+ mark_meeting_no_transcript_expected_inbox_meetings__meeting_id__no_transcript_post: {
1059
+ input: {
1060
+ path: {
1061
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
1062
+ meeting_id: string;
1063
+ };
1064
+ headers?: {
1065
+ "X-Target-Org-Id"?: string | null;
1066
+ };
1067
+ };
1068
+ output: ApiResponse_InboxPayload_;
1069
+ };
1070
+ /**
1071
+ * DELETE /inbox/channels/{channel_id}/tags
1072
+ * Remove Channel Tag
1073
+ * tier: destructive · scope: inbox:delete
1074
+ */
1075
+ remove_channel_tag_inbox_channels__channel_id__tags_delete: {
1076
+ input: {
1077
+ path: {
1078
+ /** Conversation id. */
1079
+ channel_id: string;
1080
+ };
1081
+ query: {
1082
+ /** The tag to remove. */
1083
+ tag_id: string;
1084
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
1085
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
1086
+ /** LinkedIn account id. Required only for `heyreach`, where the id is account-scoped and ambiguous without it. */
1087
+ linkedin_account_id?: number | null;
1088
+ };
1089
+ headers?: {
1090
+ "X-Target-Org-Id"?: string | null;
1091
+ };
1092
+ };
1093
+ output: ApiResponse_InboxPayload_;
1094
+ };
1095
+ /**
1096
+ * POST /inbox/mailboxes/{mailbox}/revalidate
1097
+ * Revalidate Inbox Mailbox
1098
+ * tier: write · scope: inbox:write
1099
+ */
1100
+ revalidate_inbox_mailbox_inbox_mailboxes__mailbox__revalidate_post: {
1101
+ input: {
1102
+ path: {
1103
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
1104
+ mailbox: string;
1105
+ };
1106
+ headers?: {
1107
+ "X-Target-Org-Id"?: string | null;
1108
+ };
1109
+ };
1110
+ output: ApiResponse_InboxPayload_;
1111
+ };
1112
+ /**
1113
+ * POST /inbox/call-results/search
1114
+ * Search Inbox Call Results
1115
+ * tier: read · scope: inbox:read
1116
+ */
1117
+ search_inbox_call_results_inbox_call_results_search_post: {
1118
+ input: {
1119
+ headers?: {
1120
+ "X-Target-Org-Id"?: string | null;
1121
+ };
1122
+ body?: CallResultSearchRequest;
1123
+ };
1124
+ output: ApiResponse_InboxOpsListPayload_;
1125
+ };
1126
+ /**
1127
+ * POST /inbox/linkedin/conversations/search
1128
+ * Search Inbox Linkedin Conversations
1129
+ * tier: read · scope: inbox:read
1130
+ */
1131
+ search_inbox_linkedin_conversations_inbox_linkedin_conversations_search_post: {
1132
+ input: {
1133
+ headers?: {
1134
+ "X-Target-Org-Id"?: string | null;
1135
+ };
1136
+ body?: LinkedInConversationSearchRequest;
1137
+ };
1138
+ output: ApiResponse_InboxOpsListPayload_;
1139
+ };
1140
+ /**
1141
+ * POST /inbox/channels/{channel_id}/ai-pause
1142
+ * Set Channel Ai Pause
1143
+ * tier: write · scope: inbox:write
1144
+ */
1145
+ set_channel_ai_pause_inbox_channels__channel_id__ai_pause_post: {
1146
+ input: {
1147
+ path: {
1148
+ /** Conversation id. */
1149
+ channel_id: string;
1150
+ };
1151
+ query: {
1152
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
1153
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
1154
+ };
1155
+ headers?: {
1156
+ "X-Target-Org-Id"?: string | null;
1157
+ };
1158
+ body: AiPauseRequest;
1159
+ };
1160
+ output: ApiResponse_InboxPayload_;
1161
+ };
1162
+ /**
1163
+ * POST /inbox/emails/{email_id}/sequence
1164
+ * Set Inbox Email Sequence
1165
+ * tier: write · scope: inbox:write
1166
+ */
1167
+ set_inbox_email_sequence_inbox_emails__email_id__sequence_post: {
1168
+ input: {
1169
+ path: {
1170
+ /** Email thread id. */
1171
+ email_id: string;
1172
+ };
1173
+ query: {
1174
+ /** Sequence (campaign) id to attribute the thread to. */
1175
+ sequence_id: string;
1176
+ /** Display name stored alongside the id. */
1177
+ sequence_name: string;
1178
+ };
1179
+ headers?: {
1180
+ "X-Target-Org-Id"?: string | null;
1181
+ };
1182
+ };
1183
+ output: ApiResponse_InboxPayload_;
1184
+ };
1185
+ /**
1186
+ * PUT /inbox/email-settings
1187
+ * Set Inbox Email Settings
1188
+ * tier: write · scope: inbox:write
1189
+ */
1190
+ set_inbox_email_settings_inbox_email_settings_put: {
1191
+ input: {
1192
+ headers?: {
1193
+ "X-Target-Org-Id"?: string | null;
1194
+ };
1195
+ body: EmailSettingsRequest;
1196
+ };
1197
+ output: ApiResponse_InboxPayload_;
1198
+ };
1199
+ /**
1200
+ * PATCH /inbox/mailboxes/{mailbox}/visibility
1201
+ * Set Inbox Mailbox Visibility
1202
+ * tier: write · scope: inbox:write
1203
+ */
1204
+ set_inbox_mailbox_visibility_inbox_mailboxes__mailbox__visibility_patch: {
1205
+ input: {
1206
+ path: {
1207
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
1208
+ mailbox: string;
1209
+ };
1210
+ query: {
1211
+ /** True makes the mailbox and its threads visible to the whole team. False makes it personal to its owner. */
1212
+ shared_with_team: boolean;
1213
+ };
1214
+ headers?: {
1215
+ "X-Target-Org-Id"?: string | null;
1216
+ };
1217
+ };
1218
+ output: ApiResponse_InboxPayload_;
1219
+ };
1220
+ /**
1221
+ * PATCH /inbox/meetings/{meeting_id}/sensitivity
1222
+ * Set Meeting Sensitivity
1223
+ * tier: destructive · scope: meetings:delete
1224
+ */
1225
+ set_meeting_sensitivity_inbox_meetings__meeting_id__sensitivity_patch: {
1226
+ input: {
1227
+ path: {
1228
+ /** Meeting id, as returned by `GET /inbox/meetings`. */
1229
+ meeting_id: string;
1230
+ };
1231
+ headers?: {
1232
+ "X-Target-Org-Id"?: string | null;
1233
+ };
1234
+ body: MeetingSensitivityRequest;
1235
+ };
1236
+ output: ApiResponse_InboxPayload_;
1237
+ };
1238
+ /**
1239
+ * POST /inbox/mailboxes/{mailbox}/sync
1240
+ * Start Inbox Mailbox Sync
1241
+ * tier: external · scope: inbox:run
1242
+ */
1243
+ start_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_post: {
1244
+ input: {
1245
+ path: {
1246
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
1247
+ mailbox: string;
1248
+ };
1249
+ query: {
1250
+ /** How the mailbox is connected. REQUIRED and not inferred: the same address can be connected either way, and guessing would act on the wrong transport. Closed to a Literal so an unknown value is a 422 naming both, rather than a `ValueError` raised inside the handler. */
1251
+ provider: "google_mailbox" | "smtp";
1252
+ /** Label shown beside the address. */
1253
+ display_name?: string | null;
1254
+ };
1255
+ headers?: {
1256
+ "X-Target-Org-Id"?: string | null;
1257
+ };
1258
+ };
1259
+ output: ApiResponse_InboxPayload_;
1260
+ };
1261
+ /**
1262
+ * DELETE /inbox/mailboxes/{mailbox}/sync
1263
+ * Stop Inbox Mailbox Sync
1264
+ * tier: destructive · scope: inbox:delete
1265
+ */
1266
+ stop_inbox_mailbox_sync_inbox_mailboxes__mailbox__sync_delete: {
1267
+ input: {
1268
+ path: {
1269
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
1270
+ mailbox: string;
1271
+ };
1272
+ query: {
1273
+ /** How the mailbox is connected. REQUIRED and not inferred: the same address can be connected either way, and guessing would act on the wrong transport. Closed to a Literal so an unknown value is a 422 naming both, rather than a `ValueError` raised inside the handler. */
1274
+ provider: "google_mailbox" | "smtp";
1275
+ };
1276
+ headers?: {
1277
+ "X-Target-Org-Id"?: string | null;
1278
+ };
1279
+ };
1280
+ output: ApiResponse_InboxPayload_;
1281
+ };
1282
+ /**
1283
+ * POST /inbox/linkedin/accounts/sync
1284
+ * Sync Inbox Linkedin Accounts
1285
+ * tier: external · scope: inbox:run
1286
+ */
1287
+ sync_inbox_linkedin_accounts_inbox_linkedin_accounts_sync_post: {
1288
+ input: {
1289
+ headers?: {
1290
+ "X-Target-Org-Id"?: string | null;
1291
+ };
1292
+ };
1293
+ output: ApiResponse_InboxPayload_;
1294
+ };
1295
+ /**
1296
+ * PATCH /inbox/mailboxes/bulk
1297
+ * Toggle Inbox Mailboxes
1298
+ * tier: external · scope: inbox:run
1299
+ */
1300
+ toggle_inbox_mailboxes_inbox_mailboxes_bulk_patch: {
1301
+ input: {
1302
+ headers?: {
1303
+ "X-Target-Org-Id"?: string | null;
1304
+ };
1305
+ body: MailboxToggleRequest;
1306
+ };
1307
+ output: ApiResponse_InboxPayload_;
1308
+ };
1309
+ /**
1310
+ * DELETE /inbox/channels/{channel_id}/assign
1311
+ * Unassign Channel
1312
+ * tier: destructive · scope: inbox:delete
1313
+ */
1314
+ unassign_channel_inbox_channels__channel_id__assign_delete: {
1315
+ input: {
1316
+ path: {
1317
+ /** Conversation id. */
1318
+ channel_id: string;
1319
+ };
1320
+ query: {
1321
+ /** The person to take off. */
1322
+ assignee_email: string;
1323
+ /** Which channel the conversation lives in. REQUIRED: the same id means different rows in different channels, so this is what identifies the conversation, not a filter. */
1324
+ channel_type: "email" | "chat" | "phone" | "sms" | "heyreach" | "meetings" | "support" | "all";
1325
+ /** LinkedIn account id. Required only for `heyreach`, where the id is account-scoped and ambiguous without it. */
1326
+ linkedin_account_id?: number | null;
1327
+ };
1328
+ headers?: {
1329
+ "X-Target-Org-Id"?: string | null;
1330
+ };
1331
+ };
1332
+ output: ApiResponse_InboxPayload_;
1333
+ };
1334
+ /**
1335
+ * DELETE /inbox/blocked-senders/{blocked_sender_id}
1336
+ * Unblock Inbox Sender
1337
+ * tier: destructive · scope: inbox:delete
1338
+ */
1339
+ unblock_inbox_sender_inbox_blocked_senders__blocked_sender_id__delete: {
1340
+ input: {
1341
+ path: {
1342
+ /** Id of the block record, from `GET /inbox/blocked-senders`. */
1343
+ blocked_sender_id: string;
1344
+ };
1345
+ headers?: {
1346
+ "X-Target-Org-Id"?: string | null;
1347
+ };
1348
+ };
1349
+ output: ApiResponse_InboxPayload_;
1350
+ };
1351
+ /**
1352
+ * PUT /inbox/linkedin/accounts/{account_id}
1353
+ * Update Inbox Linkedin Account
1354
+ * tier: external · scope: inbox:run
1355
+ */
1356
+ update_inbox_linkedin_account_inbox_linkedin_accounts__account_id__put: {
1357
+ input: {
1358
+ path: {
1359
+ /** LinkedIn account id (integer). */
1360
+ account_id: number;
1361
+ };
1362
+ headers?: {
1363
+ "X-Target-Org-Id"?: string | null;
1364
+ };
1365
+ body: LinkedInAccountConfigRequest;
1366
+ };
1367
+ output: ApiResponse_InboxPayload_;
1368
+ };
1369
+ /**
1370
+ * PATCH /inbox/mailboxes/{mailbox}/settings
1371
+ * Update Inbox Mailbox Settings
1372
+ * tier: external · scope: inbox:run
1373
+ */
1374
+ update_inbox_mailbox_settings_inbox_mailboxes__mailbox__settings_patch: {
1375
+ input: {
1376
+ path: {
1377
+ /** The mailbox ADDRESS, e.g. `sales@acme.com`. Not a numeric id. */
1378
+ mailbox: string;
1379
+ };
1380
+ query: {
1381
+ /** How the mailbox is connected. REQUIRED and not inferred: the same address can be connected either way, and guessing would act on the wrong transport. Closed to a Literal so an unknown value is a 422 naming both, rather than a `ValueError` raised inside the handler. */
1382
+ provider: "google_mailbox" | "smtp";
1383
+ };
1384
+ headers?: {
1385
+ "X-Target-Org-Id"?: string | null;
1386
+ };
1387
+ body: MailboxSettingsRequest;
1388
+ };
1389
+ output: ApiResponse_InboxPayload_;
1390
+ };
1391
+ /**
1392
+ * PUT /inbox/tags/{tag_id}
1393
+ * Update Inbox Tag
1394
+ * tier: write · scope: inbox:write
1395
+ */
1396
+ update_inbox_tag_inbox_tags__tag_id__put: {
1397
+ input: {
1398
+ path: {
1399
+ /** Tag id, from `GET /workflows/inbox-tags`. */
1400
+ tag_id: string;
1401
+ };
1402
+ headers?: {
1403
+ "X-Target-Org-Id"?: string | null;
1404
+ };
1405
+ body: TagUpdateRequest;
1406
+ };
1407
+ output: ApiResponse_InboxPayload_;
1408
+ };
1409
+ /**
1410
+ * PATCH /inbox/meetings/tasks/{task_id}
1411
+ * Update Meeting Task
1412
+ * tier: write · scope: meetings:write
1413
+ */
1414
+ update_meeting_task_inbox_meetings_tasks__task_id__patch: {
1415
+ input: {
1416
+ path: {
1417
+ /** Meeting task id. */
1418
+ task_id: string;
1419
+ };
1420
+ headers?: {
1421
+ "X-Target-Org-Id"?: string | null;
1422
+ };
1423
+ body: MeetingTaskUpdateRequest;
1424
+ };
1425
+ output: ApiResponse_InboxPayload_;
1426
+ };
1427
+ /**
1428
+ * POST /inbox/drafts/attachments
1429
+ * Upload Inbox Draft Attachment
1430
+ * tier: write · scope: inbox:write
1431
+ */
1432
+ upload_inbox_draft_attachment_inbox_drafts_attachments_post: {
1433
+ input: {
1434
+ headers?: {
1435
+ "X-Target-Org-Id"?: string | null;
1436
+ };
1437
+ };
1438
+ output: ApiResponse_InboxPayload_;
1439
+ };
1440
+ /**
1441
+ * POST /inbox/notes/attachments
1442
+ * Upload Inbox Note Attachment
1443
+ * tier: write · scope: inbox:write
1444
+ */
1445
+ upload_inbox_note_attachment_inbox_notes_attachments_post: {
1446
+ input: {
1447
+ headers?: {
1448
+ "X-Target-Org-Id"?: string | null;
1449
+ };
1450
+ };
1451
+ output: ApiResponse_InboxPayload_;
1452
+ };
1453
+ /**
1454
+ * POST /inbox/linkedin/validate-account
1455
+ * Validate Inbox Linkedin Account
1456
+ * tier: read · scope: inbox:read
1457
+ */
1458
+ validate_inbox_linkedin_account_inbox_linkedin_validate_account_post: {
1459
+ input: {
1460
+ query: {
1461
+ /** The account you intend to send from. */
1462
+ linkedin_account_id: number;
1463
+ };
1464
+ headers?: {
1465
+ "X-Target-Org-Id"?: string | null;
1466
+ };
1467
+ };
1468
+ output: ApiResponse_InboxPayload_;
1469
+ };
1470
+ /**
1471
+ * POST /inbox/emails/validate-mailbox
1472
+ * Validate Inbox Send Mailbox
1473
+ * tier: read · scope: inbox:read
1474
+ */
1475
+ validate_inbox_send_mailbox_inbox_emails_validate_mailbox_post: {
1476
+ input: {
1477
+ query: {
1478
+ /** The mailbox address you intend to send AS. */
1479
+ mailbox: string;
1480
+ };
1481
+ headers?: {
1482
+ "X-Target-Org-Id"?: string | null;
1483
+ };
1484
+ };
1485
+ output: ApiResponse_InboxPayload_;
1486
+ };
1487
+ }
1488
+
1489
+ // 36 schemas referenced above (the same as G8Contract.<Name>).
1490
+
1491
+ /**
1492
+ * Ask the model to write or rewrite a message. THIS SPENDS CREDITS.
1493
+ *
1494
+ * One charge per call, including a multi-operation call: pass a LIST in
1495
+ * `operation` to apply several transforms in a single generation rather than
1496
+ * paying for each.
1497
+ *
1498
+ * Nothing here is delivered anywhere - it returns text. Sending it is a
1499
+ * separate call.
1500
+ */
1501
+ export interface AiDraftGenerateRequest {
1502
+ /** Required alongside `conversation_id`. `heyreach` is the LinkedIn channel and additionally needs `linkedin_account_id`. */
1503
+ channel_type?: ("email" | "heyreach" | "sms") | null;
1504
+ /** Ground the draft in this thread's history. */
1505
+ conversation_id?: string | null;
1506
+ /** Free-text prompt. With `generate_from_scratch` this writes a message with no thread at all. */
1507
+ instructions?: string | null;
1508
+ linkedin_account_id?: number | null;
1509
+ /** The text to transform. Required by every operation except `generate_from_scratch`. */
1510
+ message_html?: string;
1511
+ objective?: ("book_meeting" | "follow_up" | "re_engage" | "provide_value" | "handle_objection" | "close_deal") | null;
1512
+ /** One operation, or several applied together in a single charged call. */
1513
+ operation: ("change_tone" | "fix_grammar_spelling" | "change_objective" | "expand" | "shorten" | "change_persona" | "generate_from_scratch") | (Array<"change_tone" | "fix_grammar_spelling" | "change_objective" | "expand" | "shorten" | "change_persona" | "generate_from_scratch">);
1514
+ persona?: ("sdr" | "growth_manager" | "account_executive" | "customer_success" | "founder") | null;
1515
+ tone?: ("professional" | "friendly" | "casual" | "assertive" | "empathetic" | "urgent") | null;
1516
+ }
1517
+
1518
+ /**
1519
+ * Stop or resume the AI auto-responder on ONE conversation.
1520
+ *
1521
+ * Scoped to the conversation, not the org: pausing here does not disable the
1522
+ * responder anywhere else.
1523
+ */
1524
+ export interface AiPauseRequest {
1525
+ /** True stops the AI answering this thread; false lets it resume. */
1526
+ paused: boolean;
1527
+ }
1528
+
1529
+ export interface ApiResponse_InboxListPayload_ {
1530
+ data: InboxListPayload;
1531
+ pagination?: PaginationMeta | null;
1532
+ }
1533
+
1534
+ export interface ApiResponse_InboxOpsListPayload_ {
1535
+ data: InboxOpsListPayload;
1536
+ pagination?: PaginationMeta | null;
1537
+ }
1538
+
1539
+ export interface ApiResponse_InboxPayload_ {
1540
+ data: InboxPayload;
1541
+ pagination?: PaginationMeta | null;
1542
+ }
1543
+
1544
+ /**
1545
+ * Give a conversation to one or more people.
1546
+ *
1547
+ * A LIST, and up to 20: the app models shared ownership rather than a single
1548
+ * owner, so assigning replaces nothing - use `DELETE .../assign` to take
1549
+ * someone off.
1550
+ */
1551
+ export interface AssignmentCreateRequest {
1552
+ /** Who owns this conversation. Check eligibility first. */
1553
+ assignee_emails: Array<string>;
1554
+ }
1555
+
1556
+ /**
1557
+ * Stop a sender reaching one mailbox.
1558
+ *
1559
+ * Scoped to the MAILBOX, not the organisation: blocking on one mailbox does
1560
+ * not block the same sender on another.
1561
+ */
1562
+ export interface BlockedSenderCreateRequest {
1563
+ /** The mailbox to block them on. */
1564
+ mailbox: string;
1565
+ reason?: string | null;
1566
+ /** The address to block. */
1567
+ sender_email: string;
1568
+ }
1569
+
1570
+ export interface Body_add_mailbox_to_workspace_inbox_workspaces__workspace_id__mailboxes_post {
1571
+ /** Integer `mailboxes.id` - the database primary key, NOT the cron-job string id. The app is explicit about the difference and so is this. */
1572
+ mailbox_id: number;
1573
+ }
1574
+
1575
+ /** Filter recorded call outcomes. A POST because the filter is a body. */
1576
+ export interface CallResultSearchRequest {
1577
+ assigned_to_user_email?: string | null;
1578
+ campaign_ids?: Array<string> | null;
1579
+ disposition?: ("booked" | "positive" | "neutral" | "negative" | "voicemail") | null;
1580
+ page?: number;
1581
+ page_size?: number;
1582
+ sort_by?: "updated_at" | "created_at" | "last_message_at";
1583
+ sort_order?: "asc" | "desc";
1584
+ tag_ids?: Array<string> | null;
1585
+ updated_after?: string | null;
1586
+ updated_before?: string | null;
1587
+ }
1588
+
1589
+ /**
1590
+ * A file already uploaded to the private note namespace.
1591
+ *
1592
+ * Only `token` and `key` are load-bearing: the server re-validates the
1593
+ * capability token and never trusts the name, size or type a client sends.
1594
+ * They are accepted because the app's model accepts them.
1595
+ */
1596
+ export interface CommentAttachmentRef {
1597
+ key: string;
1598
+ name?: string | null;
1599
+ size?: number | null;
1600
+ token: string;
1601
+ type?: string | null;
1602
+ }
1603
+
1604
+ /**
1605
+ * An INTERNAL note on a conversation. The customer never sees it.
1606
+ *
1607
+ * Mentioning someone creates them a task in the Work app. The two mention
1608
+ * lists are ADDITIVE rather than alternatives: an id with no matching email
1609
+ * still gets the task, it just gets no notification - so sending both is how
1610
+ * you get the bell as well.
1611
+ */
1612
+ export interface CommentCreateRequest {
1613
+ attachments?: Array<CommentAttachmentRef>;
1614
+ content: string;
1615
+ /** The same users by email. Additive - this is what drives the notification. */
1616
+ mentioned_user_emails?: Array<string>;
1617
+ /** Mentioned users by id. Each gets a Work task. */
1618
+ mentioned_user_ids?: Array<string>;
1619
+ }
1620
+
1621
+ /**
1622
+ * Compose an email: save it as a draft, or SEND IT TO A REAL PERSON.
1623
+ *
1624
+ * `save_as_draft` decides which. It defaults to FALSE, which means SEND -
1625
+ * the app's default, kept rather than made safer here so the two ends cannot
1626
+ * disagree about what an omitted field does.
1627
+ */
1628
+ export interface EmailComposeRequest {
1629
+ /** Emails to assign the resulting thread to. */
1630
+ assigned_users?: Array<string>;
1631
+ /** Already-uploaded attachment references. The server re-validates each one. */
1632
+ attachments?: Array<Record<string, unknown>>;
1633
+ bcc?: Array<string>;
1634
+ cc?: Array<string>;
1635
+ /** Body, HTML. */
1636
+ content: string;
1637
+ /** Edit or send an existing draft. */
1638
+ draft_id?: string | null;
1639
+ /** The mailbox to send AS. Must already be syncing - check with `POST /inbox/emails/validate-mailbox` first. */
1640
+ from_mailbox: string;
1641
+ include_signature?: boolean;
1642
+ /** Thread to reply into. Omit to start a new conversation. */
1643
+ reply_to_email_id?: string | null;
1644
+ /** FALSE SENDS THE MESSAGE. True stores a draft and contacts nobody. */
1645
+ save_as_draft?: boolean;
1646
+ /** Auto-filled as `Re: {original}` on a reply if omitted. */
1647
+ subject?: string | null;
1648
+ /** Tags to attach to the thread. */
1649
+ tag_ids?: Array<string>;
1650
+ /** Recipients. These are real addresses. */
1651
+ to: Array<string>;
1652
+ }
1653
+
1654
+ /**
1655
+ * Organisation-wide AI Inbox email settings. There is no per-user copy.
1656
+ *
1657
+ * This is a REPLACE, not a merge: the app writes every field, so a value you
1658
+ * omit is written as its default rather than left alone. Read the current
1659
+ * settings first and send them back with your change applied.
1660
+ */
1661
+ export interface EmailSettingsRequest {
1662
+ /** AI Inbox agent that answers. See `POST /inbox/agents`. */
1663
+ agent_id?: string | number | null;
1664
+ auto_tagging?: boolean;
1665
+ business_hours_end?: number;
1666
+ /** Restrict AI replies to the hours below. */
1667
+ business_hours_only?: boolean;
1668
+ business_hours_start?: number;
1669
+ /** Booking event the AI offers when it schedules a meeting. */
1670
+ event_id?: number | null;
1671
+ /** Minutes between sync rounds. */
1672
+ refresh_rate?: number;
1673
+ /** IANA timezone name, e.g. `America/New_York`. Required. */
1674
+ timezone: string;
1675
+ }
1676
+
1677
+ /**
1678
+ * Create an AI Inbox agent.
1679
+ *
1680
+ * NOT the Copilot Agent Runtime at `/agent/*` - that surface runs and
1681
+ * approves autonomous work. This is the named responder an inbox tag or an
1682
+ * email setting points at.
1683
+ */
1684
+ export interface InboxAgentCreateRequest {
1685
+ /** Unique within the organisation. */
1686
+ name: string;
1687
+ }
1688
+
1689
+ /** An open envelope for a LIST result, so a bare list keeps its shape. */
1690
+ export interface InboxListPayload {
1691
+ items?: Array<unknown>;
1692
+ [key: string]: unknown;
1693
+ }
1694
+
1695
+ /**
1696
+ * An open LIST envelope: a bare list, or a named list, is reachable as
1697
+ * `items`, and every other key the app returned (totals, pagination) is kept.
1698
+ */
1699
+ export interface InboxOpsListPayload {
1700
+ items?: Array<unknown>;
1701
+ [key: string]: unknown;
1702
+ }
1703
+
1704
+ /**
1705
+ * An open envelope for a comment, an assignment or a workspace.
1706
+ *
1707
+ * Open because a comment carries attachment refs and mention metadata that
1708
+ * grow, and because an assignment result reports per-assignee outcomes.
1709
+ */
1710
+ export type InboxPayload = Record<string, unknown>;
1711
+
1712
+ /**
1713
+ * Attach an email thread to the sequence that produced it.
1714
+ *
1715
+ * Also tells the sequencer the contact replied, which HALTS the remaining
1716
+ * steps of that sequence for them. That is the point of the call, not a side
1717
+ * effect - linking a thread is how you stop chasing someone who answered.
1718
+ */
1719
+ export interface LinkSequenceRequest {
1720
+ /** Integer contact id - the CDP primary key, not an email address. */
1721
+ contact_id: number;
1722
+ /** From `GET /inbox/emails/{email_id}/sequence-candidates`. Only sequences that actually emailed this contact are accepted. */
1723
+ sequence_id: string;
1724
+ }
1725
+
1726
+ /**
1727
+ * Partial update of one LinkedIn account's inbox configuration.
1728
+ *
1729
+ * Turning `auto_respond` on with `require_human_review` false is the
1730
+ * combination that lets the AI message a real person unattended.
1731
+ */
1732
+ export interface LinkedInAccountConfigRequest {
1733
+ /** Whether the account's conversations appear in the inbox at all. */
1734
+ ai_inbox_enabled?: boolean | null;
1735
+ auto_respond?: boolean | null;
1736
+ auto_respond_config?: LinkedInAutoRespondConfig | null;
1737
+ /** Provider-side campaign id to attribute conversations to. */
1738
+ linkedin_campaign_id?: number | null;
1739
+ sequence_id?: string | null;
1740
+ }
1741
+
1742
+ /** When the AI is allowed to answer on a LinkedIn account by itself. */
1743
+ export interface LinkedInAutoRespondConfig {
1744
+ business_hours_end?: number;
1745
+ business_hours_only?: boolean;
1746
+ business_hours_start?: number;
1747
+ enabled?: boolean;
1748
+ exclude_intents?: Array<string>;
1749
+ max_replies_per_conversation?: number;
1750
+ min_delay_minutes?: number;
1751
+ /** True holds the reply as a draft instead of sending it. */
1752
+ require_human_review?: boolean;
1753
+ timezone?: string;
1754
+ trigger_on_intents?: Array<string>;
1755
+ }
1756
+
1757
+ /**
1758
+ * Compose a LinkedIn message: draft it, or SEND IT TO A REAL PERSON.
1759
+ *
1760
+ * ONE DRAFT PER CONVERSATION. Saving a draft on a conversation that already
1761
+ * has one REPLACES it, and sending deletes whatever draft was there.
1762
+ */
1763
+ export interface LinkedInComposeRequest {
1764
+ assigned_users?: Array<string>;
1765
+ /** An existing conversation on that account. */
1766
+ conversation_id: string;
1767
+ /** The sending account. Integer id. */
1768
+ linkedin_account_id: number;
1769
+ message: string;
1770
+ /** FALSE SENDS THE MESSAGE. True stores a draft. */
1771
+ save_as_draft?: boolean;
1772
+ tag_ids?: Array<string>;
1773
+ }
1774
+
1775
+ /** Filter LinkedIn conversations. A POST because the filter is a body. */
1776
+ export interface LinkedInConversationSearchRequest {
1777
+ limit?: number;
1778
+ linkedin_account_ids?: Array<number> | null;
1779
+ offset?: number;
1780
+ search?: string | null;
1781
+ /** False returns only unread conversations. */
1782
+ seen?: boolean | null;
1783
+ sequence_ids?: Array<string> | null;
1784
+ sort_order?: "asc" | "desc";
1785
+ tags?: Array<string> | null;
1786
+ updated_after?: string | null;
1787
+ updated_before?: string | null;
1788
+ }
1789
+
1790
+ /**
1791
+ * Start (or stop) syncing several mailboxes in one call.
1792
+ *
1793
+ * ALL-OR-NOTHING on activate: the app returns 400 if ANY mailbox fails, and
1794
+ * the ones that succeeded stay activated. Read the `failed` list in the error
1795
+ * body rather than assuming nothing happened.
1796
+ */
1797
+ export interface MailboxActivateRequest {
1798
+ /** Let the AI answer on these mailboxes. Omit to leave each mailbox as it is. */
1799
+ auto_respond?: boolean | null;
1800
+ /** Sequence id to attribute synced threads to. Applies to every mailbox listed. */
1801
+ campaign_id?: string | null;
1802
+ campaign_name?: string | null;
1803
+ /** How many unread threads the first sync reaches back for. */
1804
+ last_unread_limit?: number | null;
1805
+ mailboxes: Array<MailboxJobItem>;
1806
+ }
1807
+
1808
+ /** A list of mailbox addresses to look something up for. */
1809
+ export interface MailboxAddressesRequest {
1810
+ /** Mailbox addresses. An empty list returns an empty result. */
1811
+ mailboxes: Array<string>;
1812
+ }
1813
+
1814
+ /** One mailbox in a bulk activate/deactivate request. */
1815
+ export interface MailboxJobItem {
1816
+ display_name?: string | null;
1817
+ /** The mailbox address. */
1818
+ mailbox: string;
1819
+ provider: "google_mailbox" | "smtp";
1820
+ }
1821
+
1822
+ /**
1823
+ * Partial update of one mailbox's inbox settings. Mirrors
1824
+ * `ai_inbox.schemas.emails.MailboxSettingRequest`: omit a field to leave it alone.
1825
+ */
1826
+ export interface MailboxSettingsRequest {
1827
+ /** True lets the AI answer inbound mail on this mailbox. It will message real people. */
1828
+ auto_respond?: boolean | null;
1829
+ /** How many unread emails a sync round fetches. */
1830
+ last_unread_limit?: number | null;
1831
+ }
1832
+
1833
+ /**
1834
+ * Flip several mailboxes on or off, and optionally set auto-respond.
1835
+ *
1836
+ * `activate` is explicit rather than a toggle, so a retried request is
1837
+ * idempotent instead of flipping the state back.
1838
+ */
1839
+ export interface MailboxToggleRequest {
1840
+ /** True starts syncing, false stops it. */
1841
+ activate: boolean;
1842
+ auto_respond?: boolean | null;
1843
+ /** Mailbox addresses. */
1844
+ mailboxes: Array<string>;
1845
+ }
1846
+
1847
+ /**
1848
+ * WHO MAY READ THE RECORDING OF THIS MEETING.
1849
+ *
1850
+ * `private` restricts the transcript to the meeting's participants.
1851
+ * `normal` makes it visible to the organisation again - so moving a meeting
1852
+ * from `private` back to `normal` EXPOSES a transcript that was restricted,
1853
+ * and nobody who reads it in the meantime can be made to un-read it.
1854
+ *
1855
+ * The app takes a bare `Dict[str, str]` here and defaults a MISSING or
1856
+ * misspelled key to `"normal"`. That default is the exposing direction, so
1857
+ * this contract makes the value REQUIRED and closed: a typo is a 422 naming
1858
+ * both options rather than a silent un-restrict.
1859
+ */
1860
+ export interface MeetingSensitivityRequest {
1861
+ /** `private` = participants only. `normal` = visible to the organisation. Required - there is no safe default. */
1862
+ sensitivity: "normal" | "private";
1863
+ }
1864
+
1865
+ /**
1866
+ * A follow-up task hung off a meeting.
1867
+ *
1868
+ * The assignee must be a PARTICIPANT of the meeting; the server re-checks
1869
+ * that and does not trust a client-side filter.
1870
+ */
1871
+ export interface MeetingTaskCreateRequest {
1872
+ /** The assignee's user id, from `GET /inbox/meetings/{meeting_id}/assignable-users`. Must be a meeting participant. */
1873
+ assignee_user_id?: string | null;
1874
+ description?: string | null;
1875
+ due_date?: string | null;
1876
+ /** Lower is more urgent. The app's default is 2. */
1877
+ priority?: number;
1878
+ /** What needs doing. */
1879
+ title: string;
1880
+ }
1881
+
1882
+ /**
1883
+ * Patch a meeting task.
1884
+ *
1885
+ * NULLABLE FIELDS ARE THREE-STATE, and that is the whole point of PATCH here:
1886
+ *
1887
+ * * field absent from the body -> leave unchanged
1888
+ * * field present and `null` -> clear it (unassign / drop due date)
1889
+ * * field present with a value -> set it (reassignment is re-validated)
1890
+ *
1891
+ * The proxy forwards with `exclude_unset=True` so the app's own
1892
+ * `model_fields_set` check still distinguishes "sent null" from "not sent".
1893
+ * Dumping every field would turn every PATCH into a full overwrite that
1894
+ * cleared whatever the caller did not mention.
1895
+ */
1896
+ export interface MeetingTaskUpdateRequest {
1897
+ assignee_user_id?: string | null;
1898
+ description?: string | null;
1899
+ due_date?: string | null;
1900
+ /** Optimistic concurrency: the `updated_at` you read. If the task moved since, the update is refused instead of silently overwriting someone else's edit. */
1901
+ expected_updated_at?: string | null;
1902
+ priority?: number | null;
1903
+ status?: ("open" | "in_progress" | "completed" | "done" | "cancelled") | null;
1904
+ title?: string | null;
1905
+ }
1906
+
1907
+ /** Attach an existing transcript to a meeting. */
1908
+ export interface MeetingTranscriptLinkRequest {
1909
+ /** Id of a transcript that already exists in this organisation. */
1910
+ transcript_id: string;
1911
+ }
1912
+
1913
+ export interface PaginationMeta {
1914
+ /** Whether there are more pages */
1915
+ has_next: boolean;
1916
+ /** Items per page */
1917
+ limit: number;
1918
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
1919
+ next_cursor?: string | null;
1920
+ /** Current page number (1-indexed) */
1921
+ page: number;
1922
+ /** Total number of items */
1923
+ total: number;
1924
+ }
1925
+
1926
+ /**
1927
+ * Compose an SMS: save it as a draft, or SEND IT TO A REAL PHONE.
1928
+ *
1929
+ * `save_as_draft` defaults to FALSE, which means SEND.
1930
+ */
1931
+ export interface SmsComposeRequest {
1932
+ /** Message text. */
1933
+ body: string;
1934
+ draft_id?: string | null;
1935
+ /** A number this organisation owns, E.164. */
1936
+ from_number: string;
1937
+ /** FALSE SENDS THE MESSAGE. True stores a draft. */
1938
+ save_as_draft?: boolean;
1939
+ /** Existing SMS thread to continue. */
1940
+ thread_id?: string | null;
1941
+ /** The recipient's number, E.164. A real phone. */
1942
+ to_number: string;
1943
+ }
1944
+
1945
+ /** Create an inbox tag. Mirrors `ai_inbox.schemas.tags.TagCreateRequest`. */
1946
+ export interface TagCreateRequest {
1947
+ /** AI Inbox agent that answers threads carrying this tag. */
1948
+ agent_id?: string | null;
1949
+ /** Whether the auto-tagger may apply this tag on its own. */
1950
+ ai_can_apply?: boolean;
1951
+ color?: string | null;
1952
+ description?: string | null;
1953
+ /** Tag name, unique per organisation. */
1954
+ name: string;
1955
+ /** 1-100. */
1956
+ priority?: number | null;
1957
+ /** Plain-language rules the auto-tagger applies this tag by. */
1958
+ rules?: Array<string> | null;
1959
+ }
1960
+
1961
+ /**
1962
+ * Edit an inbox tag.
1963
+ *
1964
+ * Every field is optional, but the app writes the model as given, so send the
1965
+ * whole tag rather than only the field you are changing.
1966
+ */
1967
+ export interface TagUpdateRequest {
1968
+ agent_id?: string | null;
1969
+ /** Whether the AI may apply this tag on its own. */
1970
+ ai_can_apply?: boolean | null;
1971
+ color?: string | null;
1972
+ description?: string | null;
1973
+ name?: string | null;
1974
+ /** 1-100. */
1975
+ priority?: number | null;
1976
+ /** Natural-language rules the AI uses to decide the tag applies. */
1977
+ rules?: Array<string> | null;
1978
+ }
1979
+
1980
+ /** Attach an existing tag to a conversation. */
1981
+ export interface developer_api__interfaces__dtos__inbox_collab__TagRequest {
1982
+ /** The tag to attach. It must already exist. */
1983
+ tag_id: string;
1984
+ }