@epilot/sdk 2.1.0-rc.0 → 2.1.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 (357) hide show
  1. package/definitions/app.json +38 -0
  2. package/definitions/automation.json +2 -37
  3. package/definitions/blueprint-manifest-runtime.json +1 -1
  4. package/definitions/blueprint-manifest.json +115 -1
  5. package/definitions/customer-portal-runtime.json +1 -1
  6. package/definitions/customer-portal.json +279 -42
  7. package/definitions/data-management.json +10 -0
  8. package/definitions/email-template.json +25 -3
  9. package/definitions/entity.json +205 -3
  10. package/definitions/erp-integration-runtime.json +1 -1
  11. package/definitions/erp-integration.json +472 -13
  12. package/definitions/journey.json +257 -12
  13. package/definitions/kanban.json +630 -78
  14. package/definitions/organization-runtime.json +1 -1
  15. package/definitions/organization.json +614 -51
  16. package/definitions/workflow.json +40 -0
  17. package/dist/README-VG67PX4R.js +7 -0
  18. package/dist/README-W4B35MRN.cjs +7 -0
  19. package/dist/_index-AMVZBT2K.cjs +99 -0
  20. package/dist/_index-S6LFD3ER.js +99 -0
  21. package/dist/access-token-6BJDZSFE.cjs +7 -0
  22. package/dist/access-token-GSQZLDXR.js +7 -0
  23. package/dist/address-HA4RMRNQ.cjs +7 -0
  24. package/dist/address-QVJUGMOG.js +7 -0
  25. package/dist/address-suggestions-74244BAJ.js +7 -0
  26. package/dist/address-suggestions-IUQMYF27.cjs +7 -0
  27. package/dist/ai-agents-IZWFEUSH.js +7 -0
  28. package/dist/ai-agents-PWHKNRCX.cjs +7 -0
  29. package/dist/apis/access-token.cjs +10 -13
  30. package/dist/apis/access-token.js +7 -10
  31. package/dist/apis/address-suggestions.cjs +10 -13
  32. package/dist/apis/address-suggestions.js +7 -10
  33. package/dist/apis/address.cjs +10 -13
  34. package/dist/apis/address.js +7 -10
  35. package/dist/apis/ai-agents.cjs +10 -13
  36. package/dist/apis/ai-agents.js +7 -10
  37. package/dist/apis/app.cjs +10 -13
  38. package/dist/apis/app.js +7 -10
  39. package/dist/apis/audit-logs.cjs +10 -13
  40. package/dist/apis/audit-logs.js +7 -10
  41. package/dist/apis/automation.cjs +10 -13
  42. package/dist/apis/automation.js +7 -10
  43. package/dist/apis/billing.cjs +10 -13
  44. package/dist/apis/billing.js +7 -10
  45. package/dist/apis/blueprint-manifest.cjs +10 -13
  46. package/dist/apis/blueprint-manifest.js +7 -10
  47. package/dist/apis/consent.cjs +10 -13
  48. package/dist/apis/consent.js +7 -10
  49. package/dist/apis/customer-portal.cjs +10 -13
  50. package/dist/apis/customer-portal.js +7 -10
  51. package/dist/apis/dashboard.cjs +10 -13
  52. package/dist/apis/dashboard.js +7 -10
  53. package/dist/apis/data-management.cjs +10 -13
  54. package/dist/apis/data-management.js +7 -10
  55. package/dist/apis/deduplication.cjs +10 -13
  56. package/dist/apis/deduplication.js +7 -10
  57. package/dist/apis/design.cjs +10 -13
  58. package/dist/apis/design.js +7 -10
  59. package/dist/apis/document.cjs +10 -13
  60. package/dist/apis/document.js +7 -10
  61. package/dist/apis/email-settings.cjs +10 -13
  62. package/dist/apis/email-settings.js +7 -10
  63. package/dist/apis/email-template.cjs +10 -13
  64. package/dist/apis/email-template.js +7 -10
  65. package/dist/apis/entity-mapping.cjs +10 -13
  66. package/dist/apis/entity-mapping.js +7 -10
  67. package/dist/apis/entity.cjs +10 -13
  68. package/dist/apis/entity.js +7 -10
  69. package/dist/apis/environments.cjs +10 -13
  70. package/dist/apis/environments.js +7 -10
  71. package/dist/apis/erp-integration.cjs +10 -13
  72. package/dist/apis/erp-integration.js +7 -10
  73. package/dist/apis/event-catalog.cjs +10 -13
  74. package/dist/apis/event-catalog.js +7 -10
  75. package/dist/apis/file.cjs +10 -13
  76. package/dist/apis/file.js +7 -10
  77. package/dist/apis/iban.cjs +10 -13
  78. package/dist/apis/iban.js +7 -10
  79. package/dist/apis/journey.cjs +10 -13
  80. package/dist/apis/journey.js +7 -10
  81. package/dist/apis/kanban.cjs +10 -13
  82. package/dist/apis/kanban.js +7 -10
  83. package/dist/apis/message.cjs +10 -13
  84. package/dist/apis/message.js +7 -10
  85. package/dist/apis/metering.cjs +10 -13
  86. package/dist/apis/metering.js +7 -10
  87. package/dist/apis/notes.cjs +10 -13
  88. package/dist/apis/notes.js +7 -10
  89. package/dist/apis/notification.cjs +10 -13
  90. package/dist/apis/notification.js +7 -10
  91. package/dist/apis/organization.cjs +10 -13
  92. package/dist/apis/organization.d.cts +2 -2
  93. package/dist/apis/organization.d.ts +2 -2
  94. package/dist/apis/organization.js +7 -10
  95. package/dist/apis/partner-directory.cjs +10 -13
  96. package/dist/apis/partner-directory.js +7 -10
  97. package/dist/apis/permissions.cjs +10 -13
  98. package/dist/apis/permissions.js +7 -10
  99. package/dist/apis/pricing-tier.cjs +10 -13
  100. package/dist/apis/pricing-tier.js +7 -10
  101. package/dist/apis/pricing.cjs +10 -13
  102. package/dist/apis/pricing.js +7 -10
  103. package/dist/apis/purpose.cjs +10 -13
  104. package/dist/apis/purpose.js +7 -10
  105. package/dist/apis/sandbox.cjs +10 -13
  106. package/dist/apis/sandbox.js +7 -10
  107. package/dist/apis/submission.cjs +10 -13
  108. package/dist/apis/submission.js +7 -10
  109. package/dist/apis/targeting.cjs +10 -13
  110. package/dist/apis/targeting.js +7 -10
  111. package/dist/apis/template-variables.cjs +10 -13
  112. package/dist/apis/template-variables.js +7 -10
  113. package/dist/apis/user.cjs +10 -13
  114. package/dist/apis/user.js +7 -10
  115. package/dist/apis/validation-rules.cjs +10 -13
  116. package/dist/apis/validation-rules.js +7 -10
  117. package/dist/apis/webhooks.cjs +10 -13
  118. package/dist/apis/webhooks.js +7 -10
  119. package/dist/apis/workflow-definition.cjs +10 -13
  120. package/dist/apis/workflow-definition.js +7 -10
  121. package/dist/apis/workflow.cjs +10 -13
  122. package/dist/apis/workflow.js +7 -10
  123. package/dist/app-IKHWU222.cjs +7 -0
  124. package/dist/app-VLM3SWKA.js +7 -0
  125. package/dist/audit-logs-5VXHOQ7S.js +7 -0
  126. package/dist/audit-logs-D2LFUA2R.cjs +7 -0
  127. package/dist/automation-3HGCK725.cjs +7 -0
  128. package/dist/automation-72VGEJCY.js +7 -0
  129. package/dist/billing-DUWDISHP.cjs +7 -0
  130. package/dist/billing-IPALEAG2.js +7 -0
  131. package/dist/blueprint-manifest-CXSCRQ5X.js +7 -0
  132. package/dist/blueprint-manifest-SHNZPK5O.cjs +7 -0
  133. package/dist/chunk-2HOJWFQ4.js +14 -0
  134. package/dist/chunk-372VUPHN.js +14 -0
  135. package/dist/chunk-3HJEWWPS.cjs +14 -0
  136. package/dist/chunk-3N67SSL3.js +14 -0
  137. package/dist/chunk-3XEP56SV.cjs +204 -0
  138. package/dist/chunk-3ZZ57K3S.cjs +14 -0
  139. package/dist/chunk-4SWC43JO.cjs +14 -0
  140. package/dist/chunk-4VFQTSJQ.js +14 -0
  141. package/dist/chunk-57QIBYDN.js +14 -0
  142. package/dist/chunk-5SNJAD6F.cjs +14 -0
  143. package/dist/chunk-73H6TVKN.js +14 -0
  144. package/dist/chunk-A6JOROUC.cjs +14 -0
  145. package/dist/chunk-AJKH25H2.cjs +14 -0
  146. package/dist/chunk-ARWMTXJV.cjs +14 -0
  147. package/dist/chunk-B3ZGAG7B.js +14 -0
  148. package/dist/chunk-BH5ZXK4J.cjs +14 -0
  149. package/dist/chunk-BWFXLUK5.cjs +14 -0
  150. package/dist/chunk-C6UTZEHH.js +14 -0
  151. package/dist/chunk-CPKBR34V.js +14 -0
  152. package/dist/chunk-CWSHYFVZ.js +14 -0
  153. package/dist/chunk-DJKSULPK.js +14 -0
  154. package/dist/chunk-DNJ54L2G.js +14 -0
  155. package/dist/chunk-DY2D2IW5.cjs +14 -0
  156. package/dist/chunk-E26ZO7QM.cjs +14 -0
  157. package/dist/chunk-EBCHCYUO.js +14 -0
  158. package/dist/chunk-EPAIOB5U.cjs +14 -0
  159. package/dist/chunk-EQZMT2HF.cjs +14 -0
  160. package/dist/chunk-F376L6PP.cjs +14 -0
  161. package/dist/chunk-F472YLJG.cjs +14 -0
  162. package/dist/chunk-FXOX3X7E.cjs +14 -0
  163. package/dist/chunk-G2REP2VZ.cjs +14 -0
  164. package/dist/chunk-GLO477NZ.js +14 -0
  165. package/dist/chunk-H4VSK4KF.js +14 -0
  166. package/dist/chunk-HPSGM6QP.js +14 -0
  167. package/dist/chunk-HPYHWTTA.cjs +14 -0
  168. package/dist/chunk-IH4CMOML.js +14 -0
  169. package/dist/chunk-IMT3IE5M.cjs +14 -0
  170. package/dist/chunk-IP2WWEOU.js +14 -0
  171. package/dist/chunk-IS2VB342.js +14 -0
  172. package/dist/chunk-ITX53XAZ.js +14 -0
  173. package/dist/chunk-JXBXDTFG.cjs +14 -0
  174. package/dist/chunk-K62XK7KU.js +14 -0
  175. package/dist/chunk-KA3TGFJP.js +14 -0
  176. package/dist/chunk-KBOVBUBM.js +14 -0
  177. package/dist/chunk-KPGC2D6E.js +14 -0
  178. package/dist/chunk-KSXTBGIV.js +14 -0
  179. package/dist/chunk-LCIJ4TJ4.cjs +14 -0
  180. package/dist/chunk-LQOLYXGQ.cjs +14 -0
  181. package/dist/chunk-LSIWCIQV.js +14 -0
  182. package/dist/chunk-MHNSZ4HE.js +14 -0
  183. package/dist/chunk-MKX4CKAB.cjs +14 -0
  184. package/dist/chunk-MRTAFRO7.js +14 -0
  185. package/dist/chunk-MRZ7LGKZ.js +14 -0
  186. package/dist/chunk-MSASBR2Y.js +14 -0
  187. package/dist/chunk-NAWLLC3T.cjs +14 -0
  188. package/dist/chunk-NJK5F5TF.cjs +21 -0
  189. package/dist/chunk-NLSZVGHK.cjs +14 -0
  190. package/dist/chunk-O4LRVGOY.js +14 -0
  191. package/dist/chunk-OG2DMGU6.cjs +14 -0
  192. package/dist/chunk-OGQKJTXF.js +14 -0
  193. package/dist/chunk-PETLAONH.js +14 -0
  194. package/dist/chunk-PVSS2WPM.cjs +14 -0
  195. package/dist/chunk-PXITFTJA.cjs +14 -0
  196. package/dist/chunk-QDVPPRWI.cjs +14 -0
  197. package/dist/chunk-QKERXNJJ.cjs +14 -0
  198. package/dist/chunk-QLML3IP5.cjs +14 -0
  199. package/dist/chunk-QVAJ5JP4.js +14 -0
  200. package/dist/chunk-RD7E4OSJ.cjs +14 -0
  201. package/dist/chunk-RWSA3LXE.cjs +14 -0
  202. package/dist/chunk-RXSS67VI.cjs +14 -0
  203. package/dist/chunk-S3ZNESMC.cjs +14 -0
  204. package/dist/chunk-S7NDMDRX.js +14 -0
  205. package/dist/chunk-SK3VYIZ6.cjs +14 -0
  206. package/dist/chunk-SMGHAG5C.cjs +14 -0
  207. package/dist/chunk-T46LODOF.js +14 -0
  208. package/dist/chunk-TIJWJVKZ.js +14 -0
  209. package/dist/chunk-TLWCYLNA.js +14 -0
  210. package/dist/chunk-TRJLYZHD.js +14 -0
  211. package/dist/chunk-UKKJMCNH.js +14 -0
  212. package/dist/chunk-ULBEEHG4.js +204 -0
  213. package/dist/chunk-VGTUK3QD.cjs +14 -0
  214. package/dist/chunk-VQ7R36AC.js +14 -0
  215. package/dist/chunk-VVQB5W7U.cjs +14 -0
  216. package/dist/chunk-VVVATFGK.cjs +14 -0
  217. package/dist/chunk-WMTYO5OX.cjs +14 -0
  218. package/dist/chunk-WOSSSFXB.js +14 -0
  219. package/dist/chunk-WOXXNKTE.js +14 -0
  220. package/dist/chunk-XKI2OAYV.cjs +14 -0
  221. package/dist/chunk-XR4QF6KQ.cjs +14 -0
  222. package/dist/chunk-XYHTQ523.cjs +14 -0
  223. package/dist/chunk-XZYZLSUO.cjs +14 -0
  224. package/dist/chunk-YPSWSI3M.js +21 -0
  225. package/dist/chunk-YYBIU5BQ.js +14 -0
  226. package/dist/chunk-YZA5WZUS.js +14 -0
  227. package/dist/chunk-Z4LUE424.cjs +14 -0
  228. package/dist/chunk-ZV6XYUXS.js +14 -0
  229. package/dist/consent-CS2ZBZX4.cjs +7 -0
  230. package/dist/consent-NNYHF2N4.js +7 -0
  231. package/dist/customer-portal-D3SLPAHZ.js +7 -0
  232. package/dist/customer-portal-UR3GN4VU.cjs +7 -0
  233. package/dist/dashboard-UHYR5RTY.cjs +7 -0
  234. package/dist/dashboard-UTPGXFW5.js +7 -0
  235. package/dist/data-management-QH2IJ5QV.js +7 -0
  236. package/dist/data-management-TEFRLGSU.cjs +7 -0
  237. package/dist/deduplication-ECVAZVVA.cjs +7 -0
  238. package/dist/deduplication-GYIST22B.js +7 -0
  239. package/dist/design-KUVXMFFK.cjs +7 -0
  240. package/dist/design-YKBXRW5C.js +7 -0
  241. package/dist/document-CY2A2OE7.js +7 -0
  242. package/dist/document-RYQ7MF6U.cjs +7 -0
  243. package/dist/email-settings-TQ5GGDYG.js +7 -0
  244. package/dist/email-settings-TQC34GST.cjs +7 -0
  245. package/dist/email-template-M2VVL4TI.cjs +7 -0
  246. package/dist/email-template-WYROV3UG.js +7 -0
  247. package/dist/entity-FA6PZX6S.js +7 -0
  248. package/dist/entity-IX5NSHPX.cjs +7 -0
  249. package/dist/entity-mapping-7J3IAGKQ.js +7 -0
  250. package/dist/entity-mapping-ZNMFCUKK.cjs +7 -0
  251. package/dist/environments-E3X6NYGX.js +7 -0
  252. package/dist/environments-P2JS4F5N.cjs +7 -0
  253. package/dist/erp-integration-EP2XFEH5.js +7 -0
  254. package/dist/erp-integration-NNV72VFI.cjs +7 -0
  255. package/dist/event-catalog-C45ISVMP.cjs +7 -0
  256. package/dist/event-catalog-D7VJ7WRS.js +7 -0
  257. package/dist/file-UOWBTDIU.cjs +7 -0
  258. package/dist/file-XSN3NAVZ.js +7 -0
  259. package/dist/iban-24GHLFDB.cjs +7 -0
  260. package/dist/iban-LDKYDVQV.js +7 -0
  261. package/dist/index.cjs +199 -58
  262. package/dist/index.d.cts +17 -2
  263. package/dist/index.d.ts +17 -2
  264. package/dist/index.js +197 -56
  265. package/dist/journey-7CKX67M7.js +7 -0
  266. package/dist/journey-EUZ6MVHG.cjs +7 -0
  267. package/dist/kanban-CHTH2ZSY.cjs +7 -0
  268. package/dist/kanban-HI6LL5WY.js +7 -0
  269. package/dist/message-3XZLJR6R.cjs +7 -0
  270. package/dist/message-ZNMCS5YH.js +7 -0
  271. package/dist/metering-DZNZPPY6.cjs +7 -0
  272. package/dist/metering-KOSCPPKB.js +7 -0
  273. package/dist/notes-3AO5GXIT.js +7 -0
  274. package/dist/notes-MPWOQC5J.cjs +7 -0
  275. package/dist/notification-PZOCUYD5.cjs +7 -0
  276. package/dist/notification-VWDZRSFZ.js +7 -0
  277. package/dist/organization-RARYYG2E.cjs +7 -0
  278. package/dist/organization-ZERPH2IH.js +7 -0
  279. package/dist/{organization.d-Bd2Hmk8v.d.cts → organization.d-DqwnNxMg.d.cts} +34 -7
  280. package/dist/{organization.d-Bd2Hmk8v.d.ts → organization.d-DqwnNxMg.d.ts} +34 -7
  281. package/dist/partner-directory-2XMPQWWX.js +7 -0
  282. package/dist/partner-directory-WHNTKQ5E.cjs +7 -0
  283. package/dist/permissions-4T3GFNB4.js +7 -0
  284. package/dist/permissions-FGBIJNN7.cjs +7 -0
  285. package/dist/pricing-4Z4TOETA.cjs +7 -0
  286. package/dist/pricing-C65DTZSX.js +7 -0
  287. package/dist/pricing-tier-NI35WOUP.cjs +7 -0
  288. package/dist/pricing-tier-VUOFK5Q7.js +7 -0
  289. package/dist/purpose-AKOEUHZ4.cjs +7 -0
  290. package/dist/purpose-RBRV3AQZ.js +7 -0
  291. package/dist/sandbox-2KN4X66E.cjs +7 -0
  292. package/dist/sandbox-L2SOOGGR.js +7 -0
  293. package/dist/submission-7BISSPO6.js +7 -0
  294. package/dist/submission-Q24BU4GS.cjs +7 -0
  295. package/dist/targeting-EYGYZD6M.cjs +7 -0
  296. package/dist/targeting-GEJTJN5Z.js +7 -0
  297. package/dist/template-variables-OAYS2E3G.cjs +1148 -0
  298. package/dist/template-variables-VKDJJZUT.js +1148 -0
  299. package/dist/user-EIEOI3OG.js +7 -0
  300. package/dist/user-NJJ7XVKB.cjs +7 -0
  301. package/dist/validation-rules-P6F5P73P.js +7 -0
  302. package/dist/validation-rules-VDU3CIZV.cjs +7 -0
  303. package/dist/webhooks-I7JWU34X.cjs +7 -0
  304. package/dist/webhooks-WPLEHVPX.js +7 -0
  305. package/dist/workflow-3LLURW3H.js +7 -0
  306. package/dist/workflow-RAGQDYXT.cjs +7 -0
  307. package/dist/workflow-definition-B6ELOZUR.cjs +7 -0
  308. package/dist/workflow-definition-D24CRCK2.js +7 -0
  309. package/docs/access-token.md +440 -0
  310. package/docs/address-suggestions.md +256 -0
  311. package/docs/address.md +284 -0
  312. package/docs/ai-agents.md +1891 -0
  313. package/docs/app.md +3388 -0
  314. package/docs/audit-logs.md +242 -0
  315. package/docs/automation.md +4044 -0
  316. package/docs/billing.md +783 -0
  317. package/docs/blueprint-manifest.md +3234 -0
  318. package/docs/consent.md +213 -0
  319. package/docs/customer-portal.md +11399 -0
  320. package/docs/dashboard.md +640 -0
  321. package/docs/data-management.md +883 -0
  322. package/docs/deduplication.md +135 -0
  323. package/docs/design.md +1273 -0
  324. package/docs/document.md +590 -0
  325. package/docs/email-settings.md +1544 -0
  326. package/docs/email-template.md +1197 -0
  327. package/docs/entity-mapping.md +2864 -0
  328. package/docs/entity.md +9595 -0
  329. package/docs/environments.md +259 -0
  330. package/docs/erp-integration.md +4572 -0
  331. package/docs/event-catalog.md +835 -0
  332. package/docs/file.md +1453 -0
  333. package/docs/iban.md +61 -0
  334. package/docs/journey.md +2268 -0
  335. package/docs/kanban.md +882 -0
  336. package/docs/message.md +2122 -0
  337. package/docs/metering.md +1431 -0
  338. package/docs/notes.md +670 -0
  339. package/docs/notification.md +1207 -0
  340. package/docs/organization.md +733 -0
  341. package/docs/partner-directory.md +1197 -0
  342. package/docs/permissions.md +1047 -0
  343. package/docs/pricing-tier.md +81 -0
  344. package/docs/pricing.md +5923 -0
  345. package/docs/purpose.md +283 -0
  346. package/docs/sandbox.md +389 -0
  347. package/docs/submission.md +195 -0
  348. package/docs/targeting.md +959 -0
  349. package/docs/template-variables.md +1141 -0
  350. package/docs/user.md +2555 -0
  351. package/docs/validation-rules.md +1597 -0
  352. package/docs/webhooks.md +996 -0
  353. package/docs/workflow-definition.md +3842 -0
  354. package/docs/workflow.md +4465 -0
  355. package/package.json +3 -2
  356. package/dist/chunk-XE25WERA.js +0 -125
  357. package/dist/chunk-XEQMAKGA.cjs +0 -125
@@ -0,0 +1,7 @@
1
+ import "./chunk-YPSWSI3M.js";
2
+
3
+ // src/docs/erp-integration.json
4
+ var erp_integration_default = '# ERP Integration API\n\n- **Base URL:** `https://erp-integration-api.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/erp-integration](https://docs.epilot.io/api/erp-integration)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.erpIntegration.acknowledgeTracking(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/erp-integration\'\n\nconst erpIntegrationClient = getClient()\nauthorize(erpIntegrationClient, () => \'<token>\')\nconst { data } = await erpIntegrationClient.acknowledgeTracking(...)\n```\n\n## Operations\n\n**erp**\n- [`acknowledgeTracking`](#acknowledgetracking)\n- [`triggerErp`](#triggererp)\n- [`processErpUpdatesEventsV3`](#processerpupdateseventsv3)\n- [`simulateMappingV2`](#simulatemappingv2)\n- [`simulateMapping`](#simulatemapping)\n\n**integrations**\n- [`listIntegrations`](#listintegrations)\n- [`createIntegration`](#createintegration)\n- [`getIntegration`](#getintegration)\n- [`updateIntegration`](#updateintegration)\n- [`deleteIntegration`](#deleteintegration)\n- [`queryEvents`](#queryevents)\n- [`replayEvents`](#replayevents)\n- [`listUseCases`](#listusecases)\n- [`createUseCase`](#createusecase)\n- [`getUseCase`](#getusecase)\n- [`updateUseCase`](#updateusecase)\n- [`deleteUseCase`](#deleteusecase)\n- [`listUseCaseHistory`](#listusecasehistory)\n- [`listIntegrationsV2`](#listintegrationsv2)\n- [`createIntegrationV2`](#createintegrationv2)\n- [`getIntegrationV2`](#getintegrationv2)\n- [`updateIntegrationV2`](#updateintegrationv2)\n- [`deleteIntegrationV2`](#deleteintegrationv2)\n- [`setIntegrationAppMapping`](#setintegrationappmapping)\n- [`deleteIntegrationAppMapping`](#deleteintegrationappmapping)\n- [`getOutboundStatus`](#getoutboundstatus)\n- [`listSecureProxies`](#listsecureproxies)\n\n**monitoring**\n- [`queryInboundMonitoringEvents`](#queryinboundmonitoringevents)\n- [`getMonitoringStats`](#getmonitoringstats)\n- [`getMonitoringTimeSeries`](#getmonitoringtimeseries)\n- [`queryAccessLogs`](#queryaccesslogs)\n- [`queryOutboundMonitoringEvents`](#queryoutboundmonitoringevents)\n\n**proxy**\n- [`secureProxy`](#secureproxy)\n\n**Schemas**\n- [`ErrorResponseBase`](#errorresponsebase)\n- [`ErpEvent`](#erpevent)\n- [`ErpUpdatesEventsV2Request`](#erpupdateseventsv2request)\n- [`ErpEventV3`](#erpeventv3)\n- [`ErpUpdatesEventsV3Request`](#erpupdateseventsv3request)\n- [`TriggerErpActionRequest`](#triggererpactionrequest)\n- [`TriggerWebhookResp`](#triggerwebhookresp)\n- [`IntegrationEditableFields`](#integrationeditablefields)\n- [`Integration`](#integration)\n- [`CreateIntegrationRequest`](#createintegrationrequest)\n- [`UpdateIntegrationRequest`](#updateintegrationrequest)\n- [`EnvironmentFieldConfig`](#environmentfieldconfig)\n- [`IntegrationSettings`](#integrationsettings)\n- [`AutoRefreshSettings`](#autorefreshsettings)\n- [`SetIntegrationAppMappingRequest`](#setintegrationappmappingrequest)\n- [`DeleteIntegrationAppMappingRequest`](#deleteintegrationappmappingrequest)\n- [`IntegrationAppMapping`](#integrationappmapping)\n- [`IntegrationWithUseCases`](#integrationwithusecases)\n- [`UpsertIntegrationWithUseCasesRequest`](#upsertintegrationwithusecasesrequest)\n- [`InboundIntegrationEventConfiguration`](#inboundintegrationeventconfiguration)\n- [`OutboundIntegrationEventConfiguration`](#outboundintegrationeventconfiguration)\n- [`IntegrationEntity`](#integrationentity)\n- [`IntegrationMeterReading`](#integrationmeterreading)\n- [`PruneScopeConfig`](#prunescopeconfig)\n- [`MeterReadingPruneScopeConfig`](#meterreadingprunescopeconfig)\n- [`MeterUniqueIdsConfig`](#meteruniqueidsconfig)\n- [`IntegrationEntityField`](#integrationentityfield)\n- [`FileProxyUrlParam`](#fileproxyurlparam)\n- [`FileProxyUrlParams`](#fileproxyurlparams)\n- [`FileProxyUrlConfig`](#fileproxyurlconfig)\n- [`EmbeddedUseCaseRequest`](#embeddedusecaserequest)\n- [`EmbeddedUseCaseRequestBase`](#embeddedusecaserequestbase)\n- [`EmbeddedInboundUseCaseRequest`](#embeddedinboundusecaserequest)\n- [`EmbeddedOutboundUseCaseRequest`](#embeddedoutboundusecaserequest)\n- [`EmbeddedFileProxyUseCaseRequest`](#embeddedfileproxyusecaserequest)\n- [`EmbeddedSecureProxyUseCaseRequest`](#embeddedsecureproxyusecaserequest)\n- [`UseCaseBase`](#usecasebase)\n- [`InboundUseCase`](#inboundusecase)\n- [`OutboundUseCase`](#outboundusecase)\n- [`FileProxyUseCase`](#fileproxyusecase)\n- [`SecureProxyUseCase`](#secureproxyusecase)\n- [`UseCase`](#usecase)\n- [`CreateUseCaseRequest`](#createusecaserequest)\n- [`CreateUseCaseRequestBase`](#createusecaserequestbase)\n- [`CreateInboundUseCaseRequest`](#createinboundusecaserequest)\n- [`CreateOutboundUseCaseRequest`](#createoutboundusecaserequest)\n- [`CreateFileProxyUseCaseRequest`](#createfileproxyusecaserequest)\n- [`CreateSecureProxyUseCaseRequest`](#createsecureproxyusecaserequest)\n- [`UpdateUseCaseRequest`](#updateusecaserequest)\n- [`UpdateUseCaseRequestBase`](#updateusecaserequestbase)\n- [`UpdateInboundUseCaseRequest`](#updateinboundusecaserequest)\n- [`UpdateOutboundUseCaseRequest`](#updateoutboundusecaserequest)\n- [`UpdateFileProxyUseCaseRequest`](#updatefileproxyusecaserequest)\n- [`UpdateSecureProxyUseCaseRequest`](#updatesecureproxyusecaserequest)\n- [`UseCaseHistoryEntry`](#usecasehistoryentry)\n- [`UseCaseHistoryEntryBase`](#usecasehistoryentrybase)\n- [`InboundUseCaseHistoryEntry`](#inboundusecasehistoryentry)\n- [`OutboundUseCaseHistoryEntry`](#outboundusecasehistoryentry)\n- [`FileProxyUseCaseHistoryEntry`](#fileproxyusecasehistoryentry)\n- [`SecureProxyUseCaseHistoryEntry`](#secureproxyusecasehistoryentry)\n- [`SecureProxyUseCaseConfiguration`](#secureproxyusecaseconfiguration)\n- [`SecureProxySummary`](#secureproxysummary)\n- [`SecureProxyRequest`](#secureproxyrequest)\n- [`SecureProxyResponse`](#secureproxyresponse)\n- [`FileProxyUseCaseConfiguration`](#fileproxyusecaseconfiguration)\n- [`FileProxySecureProxyAttachment`](#fileproxysecureproxyattachment)\n- [`FileProxyAuth`](#fileproxyauth)\n- [`FileProxyParam`](#fileproxyparam)\n- [`FileProxyStep`](#fileproxystep)\n- [`FileProxyResponseConfig`](#fileproxyresponseconfig)\n- [`MappingSimulationRequest`](#mappingsimulationrequest)\n- [`MappingSimulationV2Request`](#mappingsimulationv2request)\n- [`MappingSimulationResponse`](#mappingsimulationresponse)\n- [`MappingSimulationWarning`](#mappingsimulationwarning)\n- [`EntityUpdate`](#entityupdate)\n- [`MeterReadingUpdate`](#meterreadingupdate)\n- [`IntegrationConfigurationV1`](#integrationconfigurationv1)\n- [`IntegrationObjectV1`](#integrationobjectv1)\n- [`IntegrationFieldV1`](#integrationfieldv1)\n- [`IntegrationConfigurationV2`](#integrationconfigurationv2)\n- [`OutboundMapping`](#outboundmapping)\n- [`DeliveryConfig`](#deliveryconfig)\n- [`OutboundStatusResponse`](#outboundstatusresponse)\n- [`OutboundUseCaseStatus`](#outboundusecasestatus)\n- [`WebhookStatus`](#webhookstatus)\n- [`OutboundConflict`](#outboundconflict)\n- [`RelationConfig`](#relationconfig)\n- [`RelationItemConfig`](#relationitemconfig)\n- [`RelationUniqueIdField`](#relationuniqueidfield)\n- [`RelationRefsConfig`](#relationrefsconfig)\n- [`RelationRefItemConfig`](#relationrefitemconfig)\n- [`RelationRefValueConfig`](#relationrefvalueconfig)\n- [`RepeatableFieldType`](#repeatablefieldtype)\n- [`ReplayEventsRequest`](#replayeventsrequest)\n- [`QueryEventsRequest`](#queryeventsrequest)\n- [`QueryInboundMonitoringEventsRequest`](#queryinboundmonitoringeventsrequest)\n- [`QueryAccessLogsRequest`](#queryaccesslogsrequest)\n- [`AccessLogEntry`](#accesslogentry)\n- [`GetMonitoringStatsRequest`](#getmonitoringstatsrequest)\n- [`GetMonitoringTimeSeriesRequest`](#getmonitoringtimeseriesrequest)\n- [`TimeSeriesBucket`](#timeseriesbucket)\n- [`QueryOutboundMonitoringEventsRequest`](#queryoutboundmonitoringeventsrequest)\n- [`OutboundMonitoringEvent`](#outboundmonitoringevent)\n- [`MonitoringStats`](#monitoringstats)\n- [`InboundMonitoringEvent`](#inboundmonitoringevent)\n\n### `acknowledgeTracking`\n\nAcknowledges an ERP tracking record by removing it from the tracking table, requires public authentication\n\n`POST /v1/erp/tracking/acknowledgement`\n\n```ts\nconst { data } = await client.acknowledgeTracking(\n null,\n {\n ack_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `triggerErp`\n\nTriggers the ERP integration process\n\n`POST /v1/erp/trigger`\n\n```ts\nconst { data } = await client.triggerErp(\n null,\n {\n execution_id: \'string\',\n org_id: \'string\',\n webhook_id: \'string\',\n flow_id: \'string\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n action_id: \'string\',\n flow_action_id: \'string\',\n flow_name: \'string\',\n activity_id: \'string\',\n entity_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": "string",\n "message": "string",\n "body": {},\n "code": "string",\n "status": "succeeded",\n "start_date": "string",\n "end_date": "string",\n "event_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `processErpUpdatesEventsV3`\n\nHandles updates from ERP systems using integration_id directly.\nThis is the v3 version that removes the unused event_type field and renames object_type to event_name\nto align with the integration UI n\n\n`POST /v3/erp/updates/events`\n\n```ts\nconst { data } = await client.processErpUpdatesEventsV3(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n correlation_id: \'string\',\n events: [\n {},\n {}\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_id": "string",\n "status": "success",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMappingV2`\n\nTest v2.0 mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v2/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMappingV2(\n null,\n {\n event_configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n },\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMapping`\n\nTest mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v1/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMapping(\n null,\n {\n mapping_configuration: {\n version: \'1.0\',\n mapping: {\n objects: {}\n }\n },\n object_type: \'string\',\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listIntegrations`\n\nRetrieve all integrations for the authenticated organization\n\n`GET /v1/integrations`\n\n```ts\nconst { data } = await client.listIntegrations()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegration`\n\nCreate a new integration configuration\n\n`POST /v1/integrations`\n\n```ts\nconst { data } = await client.createIntegration(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `getIntegration`\n\nRetrieve a specific integration by its ID\n\n`GET /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `updateIntegration`\n\nUpdate an existing integration configuration\n\n`PUT /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegration(\n {\n integrationId: \'example\',\n },\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegration`\n\nDelete an integration and all its use cases\n\n`DELETE /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryEvents`\n\nQuery events for a specific integration\n\n`POST /v1/integrations/{integrationId}/events`\n\n```ts\nconst { data } = await client.queryEvents(\n {\n integrationId: \'example\',\n },\n {\n event_id: \'string\',\n event_type: \'CREATE\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n limit: 25,\n cursor: {\n event_time: \'2025-10-31T12:34:56Z\',\n event_id: \'evt_1234567890abcdef\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "event_type": "CREATE",\n "object_type": "string",\n "timestamp": "1970-01-01T00:00:00.000Z",\n "format": "json",\n "payload": "string",\n "deduplication_id": "evt-2025-05-01-12345-create-bp"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `replayEvents`\n\nReplay one or more events for a specific integration. Events will be re-processed with their original payloads but with a new correlation ID for traceability.\n\n`POST /v1/integrations/{integrationId}/events/replay`\n\n```ts\nconst { data } = await client.replayEvents(\n {\n integrationId: \'example\',\n },\n {\n event_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_ids": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `listUseCases`\n\nRetrieve all use cases for a specific integration\n\n`GET /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.listUseCases({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createUseCase`\n\nCreate a new use case for an integration\n\n`POST /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.createUseCase(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getUseCase`\n\nRetrieve a specific use case by its ID\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.getUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `updateUseCase`\n\nUpdate an existing use case configuration\n\n`PUT /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.updateUseCase(\n {\n integrationId: \'example\',\n useCaseId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteUseCase`\n\nDelete a use case from an integration\n\n`DELETE /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.deleteUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `listUseCaseHistory`\n\nRetrieve historical versions of a use case\'s configuration.\nHistory entries are returned in reverse chronological order (newest first).\nUse the \'cursor\' parameter for pagination to fetch additional en\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history`\n\n```ts\nconst { data } = await client.listUseCaseHistory({\n integrationId: \'example\',\n useCaseId: \'example\',\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "history_created_at": "1970-01-01T00:00:00.000Z",\n "type": "inbound",\n "configuration": {}\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `listIntegrationsV2`\n\nRetrieve all integrations with embedded use cases for the authenticated organization\n\n`GET /v2/integrations`\n\n```ts\nconst { data } = await client.listIntegrationsV2()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [],\n "settings": {},\n "use_cases": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegrationV2`\n\nCreate a new integration with embedded use cases.\n\n`POST /v2/integrations`\n\n```ts\nconst { data } = await client.createIntegrationV2(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getIntegrationV2`\n\nRetrieve a specific integration with all its embedded use cases\n\n`GET /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `updateIntegrationV2`\n\nUpdate an existing integration with embedded use cases.\nThe integration must already exist.\nUse cases are updated declaratively:\n- Use cases in the request with matching IDs are updated\n- Use cases in\n\n`PUT /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegrationV2(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationV2`\n\nDelete an integration and all its use cases\n\n`DELETE /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `setIntegrationAppMapping`\n\nCreates or updates a mapping from an app/component to an integration.\nThis allows ERP updates sent via app_id and component_id to be associated\nwith a specific integration configuration.\n\n`PUT /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.setIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n overwrite: false\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationAppMapping`\n\nRemoves a mapping from an app/component to an integration.\n\n`DELETE /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.deleteIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryInboundMonitoringEvents`\n\nQuery inbound monitoring events for a specific integration.\nReturns detailed information about inbound sync events from ERP systems,\nincluding success rates, error breakdowns, and processing metrics.\n\n`POST /v1/integrations/{integrationId}/monitoring/inbound-events`\n\n```ts\nconst { data } = await client.queryInboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n event_type: \'CREATE\',\n sync_type: \'entity\',\n status: \'success\',\n error_category: \'validation\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n event_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n completed_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "correlation_id": "string",\n "integration_id": "string",\n "use_case_id": "string",\n "event_type": "CREATE",\n "object_type": "string",\n "sync_type": "entity",\n "status": "success",\n "error_code": "string",\n "error_message": "string",\n "error_category": "validation",\n "processing_duration_ms": 0,\n "received_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "completed_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringStats`\n\nGet aggregated statistics for both inbound and outbound monitoring events for a specific integration.\nReturns summary metrics for inbound (ERP sync) and outbound (webhook delivery) events,\nincluding s\n\n`POST /v1/integrations/{integrationId}/monitoring/stats`\n\n```ts\nconst { data } = await client.getMonitoringStats(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n inbound_group_by: [\'use_case_id\', \'status\'],\n outbound_group_by: [\'event_name\', \'status\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "inbound": {\n "total_events": 0,\n "total_correlations": 0,\n "success_count": 0,\n "error_count": 0,\n "skipped_count": 0,\n "warning_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n },\n "outbound": {\n "total_events": 0,\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringTimeSeries`\n\nGet time-series aggregated event counts for monitoring charts.\nReturns pre-bucketed counts at configurable intervals for both inbound and outbound events.\nMaximum of 200 buckets per request. Returns 4\n\n`POST /v1/integrations/{integrationId}/monitoring/timeseries`\n\n```ts\nconst { data } = await client.getMonitoringTimeSeries(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n interval: \'1h\',\n direction: \'both\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "interval": "5m",\n "from_date": "1970-01-01T00:00:00.000Z",\n "to_date": "1970-01-01T00:00:00.000Z",\n "buckets": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "inbound": {\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "total_count": 0\n },\n "outbound": {\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "total_count": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getOutboundStatus`\n\nGet the status of all outbound use cases for a specific integration.\nReturns conflict information when events or webhooks are disabled but the use case is enabled.\n\n`GET /v1/integrations/{integrationId}/outbound-status`\n\n```ts\nconst { data } = await client.getOutboundStatus({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "useCases": [\n {\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "useCaseEnabled": true,\n "eventCatalogEvent": "contract.created",\n "eventEnabled": true,\n "webhooks": [\n {\n "webhookId": "string",\n "webhookName": "string",\n "enabled": true\n }\n ],\n "status": "ok",\n "conflicts": [\n {\n "type": "event_disabled",\n "webhookId": "string",\n "message": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `queryAccessLogs`\n\nQuery API access logs for a specific integration\'s organization.\nReturns access token usage analytics filtered by user_id (access token).\nSupports infinite scroll pagination with cursor-based navigati\n\n`POST /v1/integrations/{integrationId}/monitoring/access-logs`\n\n```ts\nconst { data } = await client.queryAccessLogs(\n {\n integrationId: \'example\',\n },\n {\n token_id: \'api_5ZugdRXasLfWBypHi93Fk\',\n service: \'entity\',\n method: \'GET\',\n path: \'/v1/entity\',\n status: 200,\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n timestamp: \'1970-01-01T00:00:00.000Z\',\n request_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "environment": "string",\n "service": "string",\n "request_id": "string",\n "method": "string",\n "path": "string",\n "status": 0,\n "response_latency_ms": 0,\n "response_length": 0,\n "token_id": "string",\n "org_id": "string",\n "origin": "string",\n "source_ip": "string"\n }\n ],\n "next_cursor": {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "request_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `queryOutboundMonitoringEvents`\n\nQuery outbound monitoring events for a specific integration.\nReturns detailed information about outbound event deliveries,\nfiltered by event_name (event_catalog_event) linked to the integration\'s outb\n\n`POST /v1/integrations/{integrationId}/monitoring/outbound-events`\n\n```ts\nconst { data } = await client.queryOutboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n event_name: \'automation_flow_target\',\n status: \'succeeded\',\n webhook_config_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n created_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "event_name": "string",\n "status": "succeeded",\n "url": "string",\n "http_method": "string",\n "http_response": {},\n "webhook_config_id": "string",\n "metadata": {},\n "execution_context": {},\n "payload": {},\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "created_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `listSecureProxies`\n\nList all secure proxy use cases\n\n`GET /v1/integrations/secure-proxies`\n\n```ts\nconst { data } = await client.listSecureProxies()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "secure_proxies": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integration_name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `secureProxy`\n\nProxy HTTP request through secure VPC\n\n`POST /v1/secure-proxy`\n\n```ts\nconst { data } = await client.secureProxy(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_slug: \'string\',\n url: \'https://example.com/path\',\n method: \'GET\',\n headers: {},\n body: {},\n response_type: \'json\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": 0,\n "headers": {},\n "body": {}\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ErrorResponseBase`\n\n```ts\ntype ErrorResponseBase = {\n code?: string\n message?: string\n}\n```\n\n### `ErpEvent`\n\n```ts\ntype ErpEvent = {\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n}\n```\n\n### `ErpUpdatesEventsV2Request`\n\n```ts\ntype ErpUpdatesEventsV2Request = {\n integration_id: string // uuid\n correlation_id?: string\n events: Array<{\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n }>\n}\n```\n\n### `ErpEventV3`\n\n```ts\ntype ErpEventV3 = unknown | unknown\n```\n\n### `ErpUpdatesEventsV3Request`\n\n```ts\ntype ErpUpdatesEventsV3Request = {\n integration_id: string // uuid\n correlation_id?: string\n events: unknown | unknown[]\n}\n```\n\n### `TriggerErpActionRequest`\n\n```ts\ntype TriggerErpActionRequest = {\n execution_id: string\n org_id: string\n webhook_id: string\n flow_id: string\n created_at: string // date-time\n action_id: string\n flow_action_id: string\n flow_name: string\n activity_id: string\n entity_id: string\n}\n```\n\n### `TriggerWebhookResp`\n\n```ts\ntype TriggerWebhookResp = {\n status_code?: string\n message?: string\n body?: object\n code?: string\n status?: "succeeded" | "failed"\n start_date?: string\n end_date?: string\n event_id?: string\n}\n```\n\n### `IntegrationEditableFields`\n\n```ts\ntype IntegrationEditableFields = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `Integration`\n\n```ts\ntype Integration = {\n id: string // uuid\n orgId: string\n created_at: string // date-time\n updated_at: string // date-time\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `CreateIntegrationRequest`\n\n```ts\ntype CreateIntegrationRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `UpdateIntegrationRequest`\n\n```ts\ntype UpdateIntegrationRequest = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `EnvironmentFieldConfig`\n\n```ts\ntype EnvironmentFieldConfig = {\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n}\n```\n\n### `IntegrationSettings`\n\nSettings for the integration\n\n```ts\ntype IntegrationSettings = {\n autoRefresh?: {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n }\n}\n```\n\n### `AutoRefreshSettings`\n\nAuto-refresh settings for keeping integration data fresh\n\n```ts\ntype AutoRefreshSettings = {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n}\n```\n\n### `SetIntegrationAppMappingRequest`\n\n```ts\ntype SetIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n overwrite?: boolean\n}\n```\n\n### `DeleteIntegrationAppMappingRequest`\n\n```ts\ntype DeleteIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n}\n```\n\n### `IntegrationAppMapping`\n\n```ts\ntype IntegrationAppMapping = {\n integration_id: string // uuid\n}\n```\n\n### `IntegrationWithUseCases`\n\n```ts\ntype IntegrationWithUseCases = {\n use_cases: Array<{\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: { ... }\n allowed_domains?: { ... }\n }\n }>\n}\n```\n\n### `UpsertIntegrationWithUseCasesRequest`\n\n```ts\ntype UpsertIntegrationWithUseCasesRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n use_cases?: Array<{\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: { ... }\n allowed_domains?: { ... }\n }\n }>\n}\n```\n\n### `InboundIntegrationEventConfiguration`\n\nConfiguration for inbound use cases (ERP to epilot)\n\n```ts\ntype InboundIntegrationEventConfiguration = {\n entities?: Array<{\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: { ... }\n schema?: { ... }\n unique_ids?: { ... }\n query?: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n }>\n }>\n meter_readings?: Array<{\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: { ... }\n }\n meter: {\n unique_ids: { ... }\n }\n meter_counter?: {\n unique_ids: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n }>\n }>\n}\n```\n\n### `OutboundIntegrationEventConfiguration`\n\nConfiguration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.\n\n```ts\ntype OutboundIntegrationEventConfiguration = {\n event_catalog_event: string\n mappings: Array<{\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: { ... }\n webhook_id: { ... }\n webhook_name?: { ... }\n webhook_url?: { ... }\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n }>\n}\n```\n\n### `IntegrationEntity`\n\n```ts\ntype IntegrationEntity = {\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n query?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n }>\n}\n```\n\n### `IntegrationMeterReading`\n\n```ts\ntype IntegrationMeterReading = {\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: string\n }\n meter: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n meter_counter?: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n }>\n}\n```\n\n### `PruneScopeConfig`\n\nScope configuration for upsert-prune-scope modes.\nDefines how to find entities that should be pruned if not in the upsert payload.\nThe scope is resolved against the original event payload (not individual array items).\n\n\n```ts\ntype PruneScopeConfig = {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n query?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `MeterReadingPruneScopeConfig`\n\nScope configuration for meter reading upsert-prune-scope mode.\nThe scope is all readings for the same meter + counter.\n\n\n```ts\ntype MeterReadingPruneScopeConfig = {\n source?: string\n}\n```\n\n### `MeterUniqueIdsConfig`\n\n```ts\ntype MeterUniqueIdsConfig = {\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `IntegrationEntityField`\n\n```ts\ntype IntegrationEntityField = {\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n _tags?: { ... }\n unique_ids: { ... }\n }>\n jsonataExpression?: string\n }\n relation_refs?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n path: { ... }\n value: { ... }\n }>\n jsonataExpression?: string\n }\n file_proxy_url?: {\n use_case_slug: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n } | {\n use_case_id: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUrlParam`\n\nParameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.\n\n```ts\ntype FileProxyUrlParam = {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}\n```\n\n### `FileProxyUrlParams`\n\nCustom query parameters. Keys become URL param names, values resolved from payload.\n\n```ts\ntype FileProxyUrlParams = Record<string, {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}>\n```\n\n### `FileProxyUrlConfig`\n\nAuto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.\n\n\n```ts\ntype FileProxyUrlConfig = {\n use_case_slug: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n} | {\n use_case_id: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n}\n```\n\n### `EmbeddedUseCaseRequest`\n\n```ts\ntype EmbeddedUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n // ...\n}\n```\n\n### `EmbeddedUseCaseRequestBase`\n\n```ts\ntype EmbeddedUseCaseRequestBase = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n}\n```\n\n### `EmbeddedInboundUseCaseRequest`\n\n```ts\ntype EmbeddedInboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedOutboundUseCaseRequest`\n\n```ts\ntype EmbeddedOutboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedFileProxyUseCaseRequest`\n\n```ts\ntype EmbeddedFileProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `EmbeddedSecureProxyUseCaseRequest`\n\n```ts\ntype EmbeddedSecureProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCaseBase`\n\n```ts\ntype UseCaseBase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound" | "outbound" | "file_proxy" | "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `InboundUseCase`\n\n```ts\ntype InboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCase`\n\n```ts\ntype OutboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCase`\n\n```ts\ntype FileProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `SecureProxyUseCase`\n\n```ts\ntype SecureProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCase`\n\n```ts\ntype UseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n // ...\n}\n```\n\n### `CreateUseCaseRequest`\n\n```ts\ntype CreateUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `CreateUseCaseRequestBase`\n\n```ts\ntype CreateUseCaseRequestBase = {\n name: string\n slug?: string\n enabled: boolean\n}\n```\n\n### `CreateInboundUseCaseRequest`\n\n```ts\ntype CreateInboundUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `CreateOutboundUseCaseRequest`\n\n```ts\ntype CreateOutboundUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `CreateFileProxyUseCaseRequest`\n\n```ts\ntype CreateFileProxyUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `CreateSecureProxyUseCaseRequest`\n\n```ts\ntype CreateSecureProxyUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UpdateUseCaseRequest`\n\n```ts\ntype UpdateUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UpdateUseCaseRequestBase`\n\n```ts\ntype UpdateUseCaseRequestBase = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n}\n```\n\n### `UpdateInboundUseCaseRequest`\n\n```ts\ntype UpdateInboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `UpdateOutboundUseCaseRequest`\n\n```ts\ntype UpdateOutboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `UpdateFileProxyUseCaseRequest`\n\n```ts\ntype UpdateFileProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `UpdateSecureProxyUseCaseRequest`\n\n```ts\ntype UpdateSecureProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCaseHistoryEntry`\n\n```ts\ntype UseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n // ...\n}\n```\n\n### `UseCaseHistoryEntryBase`\n\n```ts\ntype UseCaseHistoryEntryBase = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n}\n```\n\n### `InboundUseCaseHistoryEntry`\n\n```ts\ntype InboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCaseHistoryEntry`\n\n```ts\ntype OutboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCaseHistoryEntry`\n\n```ts\ntype FileProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `SecureProxyUseCaseHistoryEntry`\n\n```ts\ntype SecureProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `SecureProxyUseCaseConfiguration`\n\nConfiguration for secure_proxy use cases. Defines how to route requests through a secure VPC.\n\n\n```ts\ntype SecureProxyUseCaseConfiguration = {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n}\n```\n\n### `SecureProxySummary`\n\n```ts\ntype SecureProxySummary = {\n id: string // uuid\n name: string\n slug?: string\n enabled: boolean\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n integration_id: string // uuid\n integration_name: string\n}\n```\n\n### `SecureProxyRequest`\n\n```ts\ntype SecureProxyRequest = {\n integration_id: string // uuid\n use_case_id?: string // uuid\n use_case_slug?: string\n url: string // uri\n method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"\n headers?: Record<string, string>\n body?: unknown\n response_type?: "json" | "binary"\n}\n```\n\n### `SecureProxyResponse`\n\n```ts\ntype SecureProxyResponse = {\n status_code?: number\n headers?: Record<string, string>\n body?: unknown\n}\n```\n\n### `FileProxyUseCaseConfiguration`\n\nConfiguration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.\n\nThe file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.\nThe `orgId` is included \n\n```ts\ntype FileProxyUseCaseConfiguration = {\n secure_proxy?: {\n use_case_slug: string\n }\n auth?: {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n }\n params?: Array<{\n name: string\n required: boolean\n description?: string\n }>\n steps: Array<{\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n }>\n response: {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n }\n}\n```\n\n### `FileProxySecureProxyAttachment`\n\n```ts\ntype FileProxySecureProxyAttachment = {\n use_case_slug: string\n}\n```\n\n### `FileProxyAuth`\n\n```ts\ntype FileProxyAuth = {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n}\n```\n\n### `FileProxyParam`\n\n```ts\ntype FileProxyParam = {\n name: string\n required: boolean\n description?: string\n}\n```\n\n### `FileProxyStep`\n\n```ts\ntype FileProxyStep = {\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n}\n```\n\n### `FileProxyResponseConfig`\n\n```ts\ntype FileProxyResponseConfig = {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n}\n```\n\n### `MappingSimulationRequest`\n\n```ts\ntype MappingSimulationRequest = {\n mapping_configuration: {\n version?: "1.0"\n mapping: {\n objects: { ... }\n }\n } | {\n version: "2.0"\n mapping: {\n events: { ... }\n }\n }\n object_type: string\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationV2Request`\n\nRequest for v2 mapping simulation. Uses the same configuration format stored in integration use case resources,\nmaking it easier to test configurations before saving them.\n\n\n```ts\ntype MappingSimulationV2Request = {\n event_configuration: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationResponse`\n\n```ts\ntype MappingSimulationResponse = {\n entity_updates: Array<{\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n }>\n meter_readings_updates?: Array<{\n meter: {\n $entity_unique_ids: { ... }\n }\n meter_counter?: {\n $entity_unique_ids?: { ... }\n }\n attributes: Record<string, unknown>\n }>\n warnings?: Array<{\n entity_schema: string\n field: string\n message: string\n }>\n}\n```\n\n### `MappingSimulationWarning`\n\n```ts\ntype MappingSimulationWarning = {\n entity_schema: string\n field: string\n message: string\n}\n```\n\n### `EntityUpdate`\n\n```ts\ntype EntityUpdate = {\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n}\n```\n\n### `MeterReadingUpdate`\n\n```ts\ntype MeterReadingUpdate = {\n meter: {\n $entity_unique_ids: Record<string, unknown>\n }\n meter_counter?: {\n $entity_unique_ids?: Record<string, unknown>\n }\n attributes: Record<string, unknown>\n}\n```\n\n### `IntegrationConfigurationV1`\n\n```ts\ntype IntegrationConfigurationV1 = {\n version?: "1.0"\n mapping: {\n objects: Record<string, {\n unique_ids: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `IntegrationObjectV1`\n\n```ts\ntype IntegrationObjectV1 = {\n unique_ids: Record<string, string[] | Record<string, string>>\n fields: Array<{\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n }>\n}\n```\n\n### `IntegrationFieldV1`\n\n```ts\ntype IntegrationFieldV1 = {\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n}\n```\n\n### `IntegrationConfigurationV2`\n\n```ts\ntype IntegrationConfigurationV2 = {\n version: "2.0"\n mapping: {\n events: Record<string, {\n entities?: { ... }\n meter_readings?: { ... }\n }>\n }\n}\n```\n\n### `OutboundMapping`\n\nA mapping that transforms an event and delivers it to a webhook\n\n```ts\ntype OutboundMapping = {\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `DeliveryConfig`\n\nConfiguration for how the transformed event should be delivered\n\n```ts\ntype DeliveryConfig = {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n}\n```\n\n### `OutboundStatusResponse`\n\n```ts\ntype OutboundStatusResponse = {\n useCases: Array<{\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: { ... }\n webhookName?: { ... }\n enabled?: { ... }\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: { ... }\n webhookId?: { ... }\n message: { ... }\n }>\n }>\n}\n```\n\n### `OutboundUseCaseStatus`\n\n```ts\ntype OutboundUseCaseStatus = {\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: string\n webhookName?: string\n enabled?: boolean\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n }>\n}\n```\n\n### `WebhookStatus`\n\n```ts\ntype WebhookStatus = {\n webhookId: string\n webhookName?: string\n enabled?: boolean\n}\n```\n\n### `OutboundConflict`\n\n```ts\ntype OutboundConflict = {\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n}\n```\n\n### `RelationConfig`\n\n```ts\ntype RelationConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationItemConfig`\n\n```ts\ntype RelationItemConfig = {\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `RelationUniqueIdField`\n\n```ts\ntype RelationUniqueIdField = {\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RelationRefsConfig`\n\nConfiguration for relation references ($relation_ref).\nRelation references link to a specific item within a repeatable attribute on a related entity.\nCommon use case: referencing a specific address within a contact\'s address list.\n\n\n```ts\ntype RelationRefsConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n path: string\n value: {\n attribute: { ... }\n operation?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationRefItemConfig`\n\nConfiguration for a single relation reference item\n\n```ts\ntype RelationRefItemConfig = {\n entity_schema: string\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n path: string\n value: {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }\n}\n```\n\n### `RelationRefValueConfig`\n\nConfiguration for the value to set on the related entity\'s attribute\n\n```ts\ntype RelationRefValueConfig = {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RepeatableFieldType`\n\nType hint for repeatable fields that require special search handling.\nThese fields are stored as arrays of objects (e.g., email: [{ email: "value" }]).\n\n\n```ts\ntype RepeatableFieldType = "email" | "phone"\n```\n\n### `ReplayEventsRequest`\n\n```ts\ntype ReplayEventsRequest = {\n event_ids: string[]\n}\n```\n\n### `QueryEventsRequest`\n\n```ts\ntype QueryEventsRequest = {\n event_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE"\n correlation_id?: string\n object_type?: string\n event_name?: string\n limit?: number\n cursor?: {\n event_time?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryInboundMonitoringEventsRequest`\n\n```ts\ntype QueryInboundMonitoringEventsRequest = {\n use_case_id?: string // uuid\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n sync_type?: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status?: "success" | "error" | "skipped" | "warning"\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n correlation_id?: string\n object_type?: string\n event_name?: string\n event_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n completed_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryAccessLogsRequest`\n\n```ts\ntype QueryAccessLogsRequest = {\n token_id?: string\n service?: string\n method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD"\n path?: string\n status?: number\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n timestamp?: string // date-time\n request_id?: string\n }\n}\n```\n\n### `AccessLogEntry`\n\n```ts\ntype AccessLogEntry = {\n timestamp?: string // date-time\n environment?: string\n service?: string\n request_id?: string\n method?: string\n path?: string\n status?: number\n response_latency_ms?: number\n response_length?: number\n token_id?: string\n org_id?: string\n origin?: string\n source_ip?: string\n}\n```\n\n### `GetMonitoringStatsRequest`\n\n```ts\ntype GetMonitoringStatsRequest = {\n from_date?: string // date-time\n to_date?: string // date-time\n inbound_group_by?: "use_case_id" | "sync_type" | "status" | "error_category" | "object_type" | "event_name" | "date"[]\n outbound_group_by?: "event_name" | "status" | "webhook_config_id" | "date"[]\n}\n```\n\n### `GetMonitoringTimeSeriesRequest`\n\n```ts\ntype GetMonitoringTimeSeriesRequest = {\n from_date: string // date-time\n to_date?: string // date-time\n interval: "5m" | "10m" | "30m" | "1h" | "3h" | "1d"\n direction?: "inbound" | "outbound" | "both"\n}\n```\n\n### `TimeSeriesBucket`\n\n```ts\ntype TimeSeriesBucket = {\n timestamp: string // date-time\n inbound?: {\n success_count?: number\n error_count?: number\n warning_count?: number\n skipped_count?: number\n total_count?: number\n }\n outbound?: {\n success_count?: number\n error_count?: number\n pending_count?: number\n total_count?: number\n }\n}\n```\n\n### `QueryOutboundMonitoringEventsRequest`\n\n```ts\ntype QueryOutboundMonitoringEventsRequest = {\n event_name?: string\n status?: "succeeded" | "failed" | "pending"\n webhook_config_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n created_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `OutboundMonitoringEvent`\n\n```ts\ntype OutboundMonitoringEvent = {\n org_id: string\n event_id: string\n event_name: string\n status: "succeeded" | "failed" | "pending"\n url?: string\n http_method?: string\n http_response?: Record<string, unknown>\n webhook_config_id?: string\n metadata?: Record<string, unknown>\n execution_context?: Record<string, unknown>\n payload?: Record<string, unknown>\n created_at: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `MonitoringStats`\n\n```ts\ntype MonitoringStats = {\n inbound: {\n total_events: number\n total_correlations?: number\n success_count: number\n error_count: number\n skipped_count: number\n warning_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n outbound: {\n total_events: number\n success_count: number\n error_count: number\n pending_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n}\n```\n\n### `InboundMonitoringEvent`\n\n```ts\ntype InboundMonitoringEvent = {\n org_id: string\n event_id: string\n correlation_id?: string\n integration_id?: string\n use_case_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n object_type: string\n sync_type: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status: "success" | "error" | "skipped" | "warning"\n error_code?: string\n error_message?: string\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n processing_duration_ms?: number\n received_at: string // date-time\n completed_at: string // date-time\n}\n```\n';
5
+ export {
6
+ erp_integration_default as default
7
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
2
+
3
+ // src/docs/erp-integration.json
4
+ var erp_integration_default = '# ERP Integration API\n\n- **Base URL:** `https://erp-integration-api.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/erp-integration](https://docs.epilot.io/api/erp-integration)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.erpIntegration.acknowledgeTracking(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/erp-integration\'\n\nconst erpIntegrationClient = getClient()\nauthorize(erpIntegrationClient, () => \'<token>\')\nconst { data } = await erpIntegrationClient.acknowledgeTracking(...)\n```\n\n## Operations\n\n**erp**\n- [`acknowledgeTracking`](#acknowledgetracking)\n- [`triggerErp`](#triggererp)\n- [`processErpUpdatesEventsV3`](#processerpupdateseventsv3)\n- [`simulateMappingV2`](#simulatemappingv2)\n- [`simulateMapping`](#simulatemapping)\n\n**integrations**\n- [`listIntegrations`](#listintegrations)\n- [`createIntegration`](#createintegration)\n- [`getIntegration`](#getintegration)\n- [`updateIntegration`](#updateintegration)\n- [`deleteIntegration`](#deleteintegration)\n- [`queryEvents`](#queryevents)\n- [`replayEvents`](#replayevents)\n- [`listUseCases`](#listusecases)\n- [`createUseCase`](#createusecase)\n- [`getUseCase`](#getusecase)\n- [`updateUseCase`](#updateusecase)\n- [`deleteUseCase`](#deleteusecase)\n- [`listUseCaseHistory`](#listusecasehistory)\n- [`listIntegrationsV2`](#listintegrationsv2)\n- [`createIntegrationV2`](#createintegrationv2)\n- [`getIntegrationV2`](#getintegrationv2)\n- [`updateIntegrationV2`](#updateintegrationv2)\n- [`deleteIntegrationV2`](#deleteintegrationv2)\n- [`setIntegrationAppMapping`](#setintegrationappmapping)\n- [`deleteIntegrationAppMapping`](#deleteintegrationappmapping)\n- [`getOutboundStatus`](#getoutboundstatus)\n- [`listSecureProxies`](#listsecureproxies)\n\n**monitoring**\n- [`queryInboundMonitoringEvents`](#queryinboundmonitoringevents)\n- [`getMonitoringStats`](#getmonitoringstats)\n- [`getMonitoringTimeSeries`](#getmonitoringtimeseries)\n- [`queryAccessLogs`](#queryaccesslogs)\n- [`queryOutboundMonitoringEvents`](#queryoutboundmonitoringevents)\n\n**proxy**\n- [`secureProxy`](#secureproxy)\n\n**Schemas**\n- [`ErrorResponseBase`](#errorresponsebase)\n- [`ErpEvent`](#erpevent)\n- [`ErpUpdatesEventsV2Request`](#erpupdateseventsv2request)\n- [`ErpEventV3`](#erpeventv3)\n- [`ErpUpdatesEventsV3Request`](#erpupdateseventsv3request)\n- [`TriggerErpActionRequest`](#triggererpactionrequest)\n- [`TriggerWebhookResp`](#triggerwebhookresp)\n- [`IntegrationEditableFields`](#integrationeditablefields)\n- [`Integration`](#integration)\n- [`CreateIntegrationRequest`](#createintegrationrequest)\n- [`UpdateIntegrationRequest`](#updateintegrationrequest)\n- [`EnvironmentFieldConfig`](#environmentfieldconfig)\n- [`IntegrationSettings`](#integrationsettings)\n- [`AutoRefreshSettings`](#autorefreshsettings)\n- [`SetIntegrationAppMappingRequest`](#setintegrationappmappingrequest)\n- [`DeleteIntegrationAppMappingRequest`](#deleteintegrationappmappingrequest)\n- [`IntegrationAppMapping`](#integrationappmapping)\n- [`IntegrationWithUseCases`](#integrationwithusecases)\n- [`UpsertIntegrationWithUseCasesRequest`](#upsertintegrationwithusecasesrequest)\n- [`InboundIntegrationEventConfiguration`](#inboundintegrationeventconfiguration)\n- [`OutboundIntegrationEventConfiguration`](#outboundintegrationeventconfiguration)\n- [`IntegrationEntity`](#integrationentity)\n- [`IntegrationMeterReading`](#integrationmeterreading)\n- [`PruneScopeConfig`](#prunescopeconfig)\n- [`MeterReadingPruneScopeConfig`](#meterreadingprunescopeconfig)\n- [`MeterUniqueIdsConfig`](#meteruniqueidsconfig)\n- [`IntegrationEntityField`](#integrationentityfield)\n- [`FileProxyUrlParam`](#fileproxyurlparam)\n- [`FileProxyUrlParams`](#fileproxyurlparams)\n- [`FileProxyUrlConfig`](#fileproxyurlconfig)\n- [`EmbeddedUseCaseRequest`](#embeddedusecaserequest)\n- [`EmbeddedUseCaseRequestBase`](#embeddedusecaserequestbase)\n- [`EmbeddedInboundUseCaseRequest`](#embeddedinboundusecaserequest)\n- [`EmbeddedOutboundUseCaseRequest`](#embeddedoutboundusecaserequest)\n- [`EmbeddedFileProxyUseCaseRequest`](#embeddedfileproxyusecaserequest)\n- [`EmbeddedSecureProxyUseCaseRequest`](#embeddedsecureproxyusecaserequest)\n- [`UseCaseBase`](#usecasebase)\n- [`InboundUseCase`](#inboundusecase)\n- [`OutboundUseCase`](#outboundusecase)\n- [`FileProxyUseCase`](#fileproxyusecase)\n- [`SecureProxyUseCase`](#secureproxyusecase)\n- [`UseCase`](#usecase)\n- [`CreateUseCaseRequest`](#createusecaserequest)\n- [`CreateUseCaseRequestBase`](#createusecaserequestbase)\n- [`CreateInboundUseCaseRequest`](#createinboundusecaserequest)\n- [`CreateOutboundUseCaseRequest`](#createoutboundusecaserequest)\n- [`CreateFileProxyUseCaseRequest`](#createfileproxyusecaserequest)\n- [`CreateSecureProxyUseCaseRequest`](#createsecureproxyusecaserequest)\n- [`UpdateUseCaseRequest`](#updateusecaserequest)\n- [`UpdateUseCaseRequestBase`](#updateusecaserequestbase)\n- [`UpdateInboundUseCaseRequest`](#updateinboundusecaserequest)\n- [`UpdateOutboundUseCaseRequest`](#updateoutboundusecaserequest)\n- [`UpdateFileProxyUseCaseRequest`](#updatefileproxyusecaserequest)\n- [`UpdateSecureProxyUseCaseRequest`](#updatesecureproxyusecaserequest)\n- [`UseCaseHistoryEntry`](#usecasehistoryentry)\n- [`UseCaseHistoryEntryBase`](#usecasehistoryentrybase)\n- [`InboundUseCaseHistoryEntry`](#inboundusecasehistoryentry)\n- [`OutboundUseCaseHistoryEntry`](#outboundusecasehistoryentry)\n- [`FileProxyUseCaseHistoryEntry`](#fileproxyusecasehistoryentry)\n- [`SecureProxyUseCaseHistoryEntry`](#secureproxyusecasehistoryentry)\n- [`SecureProxyUseCaseConfiguration`](#secureproxyusecaseconfiguration)\n- [`SecureProxySummary`](#secureproxysummary)\n- [`SecureProxyRequest`](#secureproxyrequest)\n- [`SecureProxyResponse`](#secureproxyresponse)\n- [`FileProxyUseCaseConfiguration`](#fileproxyusecaseconfiguration)\n- [`FileProxySecureProxyAttachment`](#fileproxysecureproxyattachment)\n- [`FileProxyAuth`](#fileproxyauth)\n- [`FileProxyParam`](#fileproxyparam)\n- [`FileProxyStep`](#fileproxystep)\n- [`FileProxyResponseConfig`](#fileproxyresponseconfig)\n- [`MappingSimulationRequest`](#mappingsimulationrequest)\n- [`MappingSimulationV2Request`](#mappingsimulationv2request)\n- [`MappingSimulationResponse`](#mappingsimulationresponse)\n- [`MappingSimulationWarning`](#mappingsimulationwarning)\n- [`EntityUpdate`](#entityupdate)\n- [`MeterReadingUpdate`](#meterreadingupdate)\n- [`IntegrationConfigurationV1`](#integrationconfigurationv1)\n- [`IntegrationObjectV1`](#integrationobjectv1)\n- [`IntegrationFieldV1`](#integrationfieldv1)\n- [`IntegrationConfigurationV2`](#integrationconfigurationv2)\n- [`OutboundMapping`](#outboundmapping)\n- [`DeliveryConfig`](#deliveryconfig)\n- [`OutboundStatusResponse`](#outboundstatusresponse)\n- [`OutboundUseCaseStatus`](#outboundusecasestatus)\n- [`WebhookStatus`](#webhookstatus)\n- [`OutboundConflict`](#outboundconflict)\n- [`RelationConfig`](#relationconfig)\n- [`RelationItemConfig`](#relationitemconfig)\n- [`RelationUniqueIdField`](#relationuniqueidfield)\n- [`RelationRefsConfig`](#relationrefsconfig)\n- [`RelationRefItemConfig`](#relationrefitemconfig)\n- [`RelationRefValueConfig`](#relationrefvalueconfig)\n- [`RepeatableFieldType`](#repeatablefieldtype)\n- [`ReplayEventsRequest`](#replayeventsrequest)\n- [`QueryEventsRequest`](#queryeventsrequest)\n- [`QueryInboundMonitoringEventsRequest`](#queryinboundmonitoringeventsrequest)\n- [`QueryAccessLogsRequest`](#queryaccesslogsrequest)\n- [`AccessLogEntry`](#accesslogentry)\n- [`GetMonitoringStatsRequest`](#getmonitoringstatsrequest)\n- [`GetMonitoringTimeSeriesRequest`](#getmonitoringtimeseriesrequest)\n- [`TimeSeriesBucket`](#timeseriesbucket)\n- [`QueryOutboundMonitoringEventsRequest`](#queryoutboundmonitoringeventsrequest)\n- [`OutboundMonitoringEvent`](#outboundmonitoringevent)\n- [`MonitoringStats`](#monitoringstats)\n- [`InboundMonitoringEvent`](#inboundmonitoringevent)\n\n### `acknowledgeTracking`\n\nAcknowledges an ERP tracking record by removing it from the tracking table, requires public authentication\n\n`POST /v1/erp/tracking/acknowledgement`\n\n```ts\nconst { data } = await client.acknowledgeTracking(\n null,\n {\n ack_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `triggerErp`\n\nTriggers the ERP integration process\n\n`POST /v1/erp/trigger`\n\n```ts\nconst { data } = await client.triggerErp(\n null,\n {\n execution_id: \'string\',\n org_id: \'string\',\n webhook_id: \'string\',\n flow_id: \'string\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n action_id: \'string\',\n flow_action_id: \'string\',\n flow_name: \'string\',\n activity_id: \'string\',\n entity_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": "string",\n "message": "string",\n "body": {},\n "code": "string",\n "status": "succeeded",\n "start_date": "string",\n "end_date": "string",\n "event_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `processErpUpdatesEventsV3`\n\nHandles updates from ERP systems using integration_id directly.\nThis is the v3 version that removes the unused event_type field and renames object_type to event_name\nto align with the integration UI n\n\n`POST /v3/erp/updates/events`\n\n```ts\nconst { data } = await client.processErpUpdatesEventsV3(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n correlation_id: \'string\',\n events: [\n {},\n {}\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_id": "string",\n "status": "success",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMappingV2`\n\nTest v2.0 mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v2/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMappingV2(\n null,\n {\n event_configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n },\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMapping`\n\nTest mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v1/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMapping(\n null,\n {\n mapping_configuration: {\n version: \'1.0\',\n mapping: {\n objects: {}\n }\n },\n object_type: \'string\',\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listIntegrations`\n\nRetrieve all integrations for the authenticated organization\n\n`GET /v1/integrations`\n\n```ts\nconst { data } = await client.listIntegrations()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegration`\n\nCreate a new integration configuration\n\n`POST /v1/integrations`\n\n```ts\nconst { data } = await client.createIntegration(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `getIntegration`\n\nRetrieve a specific integration by its ID\n\n`GET /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `updateIntegration`\n\nUpdate an existing integration configuration\n\n`PUT /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegration(\n {\n integrationId: \'example\',\n },\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegration`\n\nDelete an integration and all its use cases\n\n`DELETE /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryEvents`\n\nQuery events for a specific integration\n\n`POST /v1/integrations/{integrationId}/events`\n\n```ts\nconst { data } = await client.queryEvents(\n {\n integrationId: \'example\',\n },\n {\n event_id: \'string\',\n event_type: \'CREATE\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n limit: 25,\n cursor: {\n event_time: \'2025-10-31T12:34:56Z\',\n event_id: \'evt_1234567890abcdef\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "event_type": "CREATE",\n "object_type": "string",\n "timestamp": "1970-01-01T00:00:00.000Z",\n "format": "json",\n "payload": "string",\n "deduplication_id": "evt-2025-05-01-12345-create-bp"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `replayEvents`\n\nReplay one or more events for a specific integration. Events will be re-processed with their original payloads but with a new correlation ID for traceability.\n\n`POST /v1/integrations/{integrationId}/events/replay`\n\n```ts\nconst { data } = await client.replayEvents(\n {\n integrationId: \'example\',\n },\n {\n event_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_ids": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `listUseCases`\n\nRetrieve all use cases for a specific integration\n\n`GET /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.listUseCases({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createUseCase`\n\nCreate a new use case for an integration\n\n`POST /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.createUseCase(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getUseCase`\n\nRetrieve a specific use case by its ID\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.getUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `updateUseCase`\n\nUpdate an existing use case configuration\n\n`PUT /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.updateUseCase(\n {\n integrationId: \'example\',\n useCaseId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteUseCase`\n\nDelete a use case from an integration\n\n`DELETE /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.deleteUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `listUseCaseHistory`\n\nRetrieve historical versions of a use case\'s configuration.\nHistory entries are returned in reverse chronological order (newest first).\nUse the \'cursor\' parameter for pagination to fetch additional en\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history`\n\n```ts\nconst { data } = await client.listUseCaseHistory({\n integrationId: \'example\',\n useCaseId: \'example\',\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "history_created_at": "1970-01-01T00:00:00.000Z",\n "type": "inbound",\n "configuration": {}\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `listIntegrationsV2`\n\nRetrieve all integrations with embedded use cases for the authenticated organization\n\n`GET /v2/integrations`\n\n```ts\nconst { data } = await client.listIntegrationsV2()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [],\n "settings": {},\n "use_cases": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegrationV2`\n\nCreate a new integration with embedded use cases.\n\n`POST /v2/integrations`\n\n```ts\nconst { data } = await client.createIntegrationV2(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getIntegrationV2`\n\nRetrieve a specific integration with all its embedded use cases\n\n`GET /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `updateIntegrationV2`\n\nUpdate an existing integration with embedded use cases.\nThe integration must already exist.\nUse cases are updated declaratively:\n- Use cases in the request with matching IDs are updated\n- Use cases in\n\n`PUT /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegrationV2(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationV2`\n\nDelete an integration and all its use cases\n\n`DELETE /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `setIntegrationAppMapping`\n\nCreates or updates a mapping from an app/component to an integration.\nThis allows ERP updates sent via app_id and component_id to be associated\nwith a specific integration configuration.\n\n`PUT /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.setIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n overwrite: false\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationAppMapping`\n\nRemoves a mapping from an app/component to an integration.\n\n`DELETE /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.deleteIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryInboundMonitoringEvents`\n\nQuery inbound monitoring events for a specific integration.\nReturns detailed information about inbound sync events from ERP systems,\nincluding success rates, error breakdowns, and processing metrics.\n\n`POST /v1/integrations/{integrationId}/monitoring/inbound-events`\n\n```ts\nconst { data } = await client.queryInboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n event_type: \'CREATE\',\n sync_type: \'entity\',\n status: \'success\',\n error_category: \'validation\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n event_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n completed_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "correlation_id": "string",\n "integration_id": "string",\n "use_case_id": "string",\n "event_type": "CREATE",\n "object_type": "string",\n "sync_type": "entity",\n "status": "success",\n "error_code": "string",\n "error_message": "string",\n "error_category": "validation",\n "processing_duration_ms": 0,\n "received_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "completed_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringStats`\n\nGet aggregated statistics for both inbound and outbound monitoring events for a specific integration.\nReturns summary metrics for inbound (ERP sync) and outbound (webhook delivery) events,\nincluding s\n\n`POST /v1/integrations/{integrationId}/monitoring/stats`\n\n```ts\nconst { data } = await client.getMonitoringStats(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n inbound_group_by: [\'use_case_id\', \'status\'],\n outbound_group_by: [\'event_name\', \'status\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "inbound": {\n "total_events": 0,\n "total_correlations": 0,\n "success_count": 0,\n "error_count": 0,\n "skipped_count": 0,\n "warning_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n },\n "outbound": {\n "total_events": 0,\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringTimeSeries`\n\nGet time-series aggregated event counts for monitoring charts.\nReturns pre-bucketed counts at configurable intervals for both inbound and outbound events.\nMaximum of 200 buckets per request. Returns 4\n\n`POST /v1/integrations/{integrationId}/monitoring/timeseries`\n\n```ts\nconst { data } = await client.getMonitoringTimeSeries(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n interval: \'1h\',\n direction: \'both\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "interval": "5m",\n "from_date": "1970-01-01T00:00:00.000Z",\n "to_date": "1970-01-01T00:00:00.000Z",\n "buckets": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "inbound": {\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "total_count": 0\n },\n "outbound": {\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "total_count": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getOutboundStatus`\n\nGet the status of all outbound use cases for a specific integration.\nReturns conflict information when events or webhooks are disabled but the use case is enabled.\n\n`GET /v1/integrations/{integrationId}/outbound-status`\n\n```ts\nconst { data } = await client.getOutboundStatus({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "useCases": [\n {\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "useCaseEnabled": true,\n "eventCatalogEvent": "contract.created",\n "eventEnabled": true,\n "webhooks": [\n {\n "webhookId": "string",\n "webhookName": "string",\n "enabled": true\n }\n ],\n "status": "ok",\n "conflicts": [\n {\n "type": "event_disabled",\n "webhookId": "string",\n "message": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `queryAccessLogs`\n\nQuery API access logs for a specific integration\'s organization.\nReturns access token usage analytics filtered by user_id (access token).\nSupports infinite scroll pagination with cursor-based navigati\n\n`POST /v1/integrations/{integrationId}/monitoring/access-logs`\n\n```ts\nconst { data } = await client.queryAccessLogs(\n {\n integrationId: \'example\',\n },\n {\n token_id: \'api_5ZugdRXasLfWBypHi93Fk\',\n service: \'entity\',\n method: \'GET\',\n path: \'/v1/entity\',\n status: 200,\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n timestamp: \'1970-01-01T00:00:00.000Z\',\n request_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "environment": "string",\n "service": "string",\n "request_id": "string",\n "method": "string",\n "path": "string",\n "status": 0,\n "response_latency_ms": 0,\n "response_length": 0,\n "token_id": "string",\n "org_id": "string",\n "origin": "string",\n "source_ip": "string"\n }\n ],\n "next_cursor": {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "request_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `queryOutboundMonitoringEvents`\n\nQuery outbound monitoring events for a specific integration.\nReturns detailed information about outbound event deliveries,\nfiltered by event_name (event_catalog_event) linked to the integration\'s outb\n\n`POST /v1/integrations/{integrationId}/monitoring/outbound-events`\n\n```ts\nconst { data } = await client.queryOutboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n event_name: \'automation_flow_target\',\n status: \'succeeded\',\n webhook_config_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n created_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "event_name": "string",\n "status": "succeeded",\n "url": "string",\n "http_method": "string",\n "http_response": {},\n "webhook_config_id": "string",\n "metadata": {},\n "execution_context": {},\n "payload": {},\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "created_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `listSecureProxies`\n\nList all secure proxy use cases\n\n`GET /v1/integrations/secure-proxies`\n\n```ts\nconst { data } = await client.listSecureProxies()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "secure_proxies": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integration_name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `secureProxy`\n\nProxy HTTP request through secure VPC\n\n`POST /v1/secure-proxy`\n\n```ts\nconst { data } = await client.secureProxy(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_slug: \'string\',\n url: \'https://example.com/path\',\n method: \'GET\',\n headers: {},\n body: {},\n response_type: \'json\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": 0,\n "headers": {},\n "body": {}\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ErrorResponseBase`\n\n```ts\ntype ErrorResponseBase = {\n code?: string\n message?: string\n}\n```\n\n### `ErpEvent`\n\n```ts\ntype ErpEvent = {\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n}\n```\n\n### `ErpUpdatesEventsV2Request`\n\n```ts\ntype ErpUpdatesEventsV2Request = {\n integration_id: string // uuid\n correlation_id?: string\n events: Array<{\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n }>\n}\n```\n\n### `ErpEventV3`\n\n```ts\ntype ErpEventV3 = unknown | unknown\n```\n\n### `ErpUpdatesEventsV3Request`\n\n```ts\ntype ErpUpdatesEventsV3Request = {\n integration_id: string // uuid\n correlation_id?: string\n events: unknown | unknown[]\n}\n```\n\n### `TriggerErpActionRequest`\n\n```ts\ntype TriggerErpActionRequest = {\n execution_id: string\n org_id: string\n webhook_id: string\n flow_id: string\n created_at: string // date-time\n action_id: string\n flow_action_id: string\n flow_name: string\n activity_id: string\n entity_id: string\n}\n```\n\n### `TriggerWebhookResp`\n\n```ts\ntype TriggerWebhookResp = {\n status_code?: string\n message?: string\n body?: object\n code?: string\n status?: "succeeded" | "failed"\n start_date?: string\n end_date?: string\n event_id?: string\n}\n```\n\n### `IntegrationEditableFields`\n\n```ts\ntype IntegrationEditableFields = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `Integration`\n\n```ts\ntype Integration = {\n id: string // uuid\n orgId: string\n created_at: string // date-time\n updated_at: string // date-time\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `CreateIntegrationRequest`\n\n```ts\ntype CreateIntegrationRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `UpdateIntegrationRequest`\n\n```ts\ntype UpdateIntegrationRequest = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n}\n```\n\n### `EnvironmentFieldConfig`\n\n```ts\ntype EnvironmentFieldConfig = {\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n}\n```\n\n### `IntegrationSettings`\n\nSettings for the integration\n\n```ts\ntype IntegrationSettings = {\n autoRefresh?: {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n }\n}\n```\n\n### `AutoRefreshSettings`\n\nAuto-refresh settings for keeping integration data fresh\n\n```ts\ntype AutoRefreshSettings = {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n}\n```\n\n### `SetIntegrationAppMappingRequest`\n\n```ts\ntype SetIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n overwrite?: boolean\n}\n```\n\n### `DeleteIntegrationAppMappingRequest`\n\n```ts\ntype DeleteIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n}\n```\n\n### `IntegrationAppMapping`\n\n```ts\ntype IntegrationAppMapping = {\n integration_id: string // uuid\n}\n```\n\n### `IntegrationWithUseCases`\n\n```ts\ntype IntegrationWithUseCases = {\n use_cases: Array<{\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: { ... }\n allowed_domains?: { ... }\n }\n }>\n}\n```\n\n### `UpsertIntegrationWithUseCasesRequest`\n\n```ts\ntype UpsertIntegrationWithUseCasesRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n use_cases?: Array<{\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: { ... }\n allowed_domains?: { ... }\n }\n }>\n}\n```\n\n### `InboundIntegrationEventConfiguration`\n\nConfiguration for inbound use cases (ERP to epilot)\n\n```ts\ntype InboundIntegrationEventConfiguration = {\n entities?: Array<{\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: { ... }\n schema?: { ... }\n unique_ids?: { ... }\n query?: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n }>\n }>\n meter_readings?: Array<{\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: { ... }\n }\n meter: {\n unique_ids: { ... }\n }\n meter_counter?: {\n unique_ids: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n }>\n }>\n}\n```\n\n### `OutboundIntegrationEventConfiguration`\n\nConfiguration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.\n\n```ts\ntype OutboundIntegrationEventConfiguration = {\n event_catalog_event: string\n mappings: Array<{\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: { ... }\n webhook_id: { ... }\n webhook_name?: { ... }\n webhook_url?: { ... }\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n }>\n}\n```\n\n### `IntegrationEntity`\n\n```ts\ntype IntegrationEntity = {\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n query?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n }>\n}\n```\n\n### `IntegrationMeterReading`\n\n```ts\ntype IntegrationMeterReading = {\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: string\n }\n meter: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n meter_counter?: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n }>\n}\n```\n\n### `PruneScopeConfig`\n\nScope configuration for upsert-prune-scope modes.\nDefines how to find entities that should be pruned if not in the upsert payload.\nThe scope is resolved against the original event payload (not individual array items).\n\n\n```ts\ntype PruneScopeConfig = {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n query?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `MeterReadingPruneScopeConfig`\n\nScope configuration for meter reading upsert-prune-scope mode.\nThe scope is all readings for the same meter + counter.\n\n\n```ts\ntype MeterReadingPruneScopeConfig = {\n source?: string\n}\n```\n\n### `MeterUniqueIdsConfig`\n\n```ts\ntype MeterUniqueIdsConfig = {\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `IntegrationEntityField`\n\n```ts\ntype IntegrationEntityField = {\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n _tags?: { ... }\n unique_ids: { ... }\n }>\n jsonataExpression?: string\n }\n relation_refs?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n path: { ... }\n value: { ... }\n }>\n jsonataExpression?: string\n }\n file_proxy_url?: {\n use_case_slug: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n } | {\n use_case_id: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUrlParam`\n\nParameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.\n\n```ts\ntype FileProxyUrlParam = {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}\n```\n\n### `FileProxyUrlParams`\n\nCustom query parameters. Keys become URL param names, values resolved from payload.\n\n```ts\ntype FileProxyUrlParams = Record<string, {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}>\n```\n\n### `FileProxyUrlConfig`\n\nAuto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.\n\n\n```ts\ntype FileProxyUrlConfig = {\n use_case_slug: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n} | {\n use_case_id: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n}\n```\n\n### `EmbeddedUseCaseRequest`\n\n```ts\ntype EmbeddedUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n // ...\n}\n```\n\n### `EmbeddedUseCaseRequestBase`\n\n```ts\ntype EmbeddedUseCaseRequestBase = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n}\n```\n\n### `EmbeddedInboundUseCaseRequest`\n\n```ts\ntype EmbeddedInboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedOutboundUseCaseRequest`\n\n```ts\ntype EmbeddedOutboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedFileProxyUseCaseRequest`\n\n```ts\ntype EmbeddedFileProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `EmbeddedSecureProxyUseCaseRequest`\n\n```ts\ntype EmbeddedSecureProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCaseBase`\n\n```ts\ntype UseCaseBase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound" | "outbound" | "file_proxy" | "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `InboundUseCase`\n\n```ts\ntype InboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCase`\n\n```ts\ntype OutboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCase`\n\n```ts\ntype FileProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `SecureProxyUseCase`\n\n```ts\ntype SecureProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCase`\n\n```ts\ntype UseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n // ...\n}\n```\n\n### `CreateUseCaseRequest`\n\n```ts\ntype CreateUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name: string\n slug?: string\n enabled: boolean\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `CreateUseCaseRequestBase`\n\n```ts\ntype CreateUseCaseRequestBase = {\n name: string\n slug?: string\n enabled: boolean\n}\n```\n\n### `CreateInboundUseCaseRequest`\n\n```ts\ntype CreateInboundUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `CreateOutboundUseCaseRequest`\n\n```ts\ntype CreateOutboundUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `CreateFileProxyUseCaseRequest`\n\n```ts\ntype CreateFileProxyUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `CreateSecureProxyUseCaseRequest`\n\n```ts\ntype CreateSecureProxyUseCaseRequest = {\n name: string\n slug?: string\n enabled: boolean\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UpdateUseCaseRequest`\n\n```ts\ntype UpdateUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UpdateUseCaseRequestBase`\n\n```ts\ntype UpdateUseCaseRequestBase = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n}\n```\n\n### `UpdateInboundUseCaseRequest`\n\n```ts\ntype UpdateInboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `UpdateOutboundUseCaseRequest`\n\n```ts\ntype UpdateOutboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `UpdateFileProxyUseCaseRequest`\n\n```ts\ntype UpdateFileProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `UpdateSecureProxyUseCaseRequest`\n\n```ts\ntype UpdateSecureProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `UseCaseHistoryEntry`\n\n```ts\ntype UseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n // ...\n}\n```\n\n### `UseCaseHistoryEntryBase`\n\n```ts\ntype UseCaseHistoryEntryBase = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n}\n```\n\n### `InboundUseCaseHistoryEntry`\n\n```ts\ntype InboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCaseHistoryEntry`\n\n```ts\ntype OutboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCaseHistoryEntry`\n\n```ts\ntype FileProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `SecureProxyUseCaseHistoryEntry`\n\n```ts\ntype SecureProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n }\n}\n```\n\n### `SecureProxyUseCaseConfiguration`\n\nConfiguration for secure_proxy use cases. Defines how to route requests through a secure VPC.\n\n\n```ts\ntype SecureProxyUseCaseConfiguration = {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n}\n```\n\n### `SecureProxySummary`\n\n```ts\ntype SecureProxySummary = {\n id: string // uuid\n name: string\n slug?: string\n enabled: boolean\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n integration_id: string // uuid\n integration_name: string\n}\n```\n\n### `SecureProxyRequest`\n\n```ts\ntype SecureProxyRequest = {\n integration_id: string // uuid\n use_case_id?: string // uuid\n use_case_slug?: string\n url: string // uri\n method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"\n headers?: Record<string, string>\n body?: unknown\n response_type?: "json" | "binary"\n}\n```\n\n### `SecureProxyResponse`\n\n```ts\ntype SecureProxyResponse = {\n status_code?: number\n headers?: Record<string, string>\n body?: unknown\n}\n```\n\n### `FileProxyUseCaseConfiguration`\n\nConfiguration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.\n\nThe file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.\nThe `orgId` is included \n\n```ts\ntype FileProxyUseCaseConfiguration = {\n secure_proxy?: {\n use_case_slug: string\n }\n auth?: {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n }\n params?: Array<{\n name: string\n required: boolean\n description?: string\n }>\n steps: Array<{\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n }>\n response: {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n }\n}\n```\n\n### `FileProxySecureProxyAttachment`\n\n```ts\ntype FileProxySecureProxyAttachment = {\n use_case_slug: string\n}\n```\n\n### `FileProxyAuth`\n\n```ts\ntype FileProxyAuth = {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n}\n```\n\n### `FileProxyParam`\n\n```ts\ntype FileProxyParam = {\n name: string\n required: boolean\n description?: string\n}\n```\n\n### `FileProxyStep`\n\n```ts\ntype FileProxyStep = {\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n}\n```\n\n### `FileProxyResponseConfig`\n\n```ts\ntype FileProxyResponseConfig = {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n}\n```\n\n### `MappingSimulationRequest`\n\n```ts\ntype MappingSimulationRequest = {\n mapping_configuration: {\n version?: "1.0"\n mapping: {\n objects: { ... }\n }\n } | {\n version: "2.0"\n mapping: {\n events: { ... }\n }\n }\n object_type: string\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationV2Request`\n\nRequest for v2 mapping simulation. Uses the same configuration format stored in integration use case resources,\nmaking it easier to test configurations before saving them.\n\n\n```ts\ntype MappingSimulationV2Request = {\n event_configuration: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationResponse`\n\n```ts\ntype MappingSimulationResponse = {\n entity_updates: Array<{\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n }>\n meter_readings_updates?: Array<{\n meter: {\n $entity_unique_ids: { ... }\n }\n meter_counter?: {\n $entity_unique_ids?: { ... }\n }\n attributes: Record<string, unknown>\n }>\n warnings?: Array<{\n entity_schema: string\n field: string\n message: string\n }>\n}\n```\n\n### `MappingSimulationWarning`\n\n```ts\ntype MappingSimulationWarning = {\n entity_schema: string\n field: string\n message: string\n}\n```\n\n### `EntityUpdate`\n\n```ts\ntype EntityUpdate = {\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n}\n```\n\n### `MeterReadingUpdate`\n\n```ts\ntype MeterReadingUpdate = {\n meter: {\n $entity_unique_ids: Record<string, unknown>\n }\n meter_counter?: {\n $entity_unique_ids?: Record<string, unknown>\n }\n attributes: Record<string, unknown>\n}\n```\n\n### `IntegrationConfigurationV1`\n\n```ts\ntype IntegrationConfigurationV1 = {\n version?: "1.0"\n mapping: {\n objects: Record<string, {\n unique_ids: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `IntegrationObjectV1`\n\n```ts\ntype IntegrationObjectV1 = {\n unique_ids: Record<string, string[] | Record<string, string>>\n fields: Array<{\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n }>\n}\n```\n\n### `IntegrationFieldV1`\n\n```ts\ntype IntegrationFieldV1 = {\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n}\n```\n\n### `IntegrationConfigurationV2`\n\n```ts\ntype IntegrationConfigurationV2 = {\n version: "2.0"\n mapping: {\n events: Record<string, {\n entities?: { ... }\n meter_readings?: { ... }\n }>\n }\n}\n```\n\n### `OutboundMapping`\n\nA mapping that transforms an event and delivers it to a webhook\n\n```ts\ntype OutboundMapping = {\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `DeliveryConfig`\n\nConfiguration for how the transformed event should be delivered\n\n```ts\ntype DeliveryConfig = {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n}\n```\n\n### `OutboundStatusResponse`\n\n```ts\ntype OutboundStatusResponse = {\n useCases: Array<{\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: { ... }\n webhookName?: { ... }\n enabled?: { ... }\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: { ... }\n webhookId?: { ... }\n message: { ... }\n }>\n }>\n}\n```\n\n### `OutboundUseCaseStatus`\n\n```ts\ntype OutboundUseCaseStatus = {\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: string\n webhookName?: string\n enabled?: boolean\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n }>\n}\n```\n\n### `WebhookStatus`\n\n```ts\ntype WebhookStatus = {\n webhookId: string\n webhookName?: string\n enabled?: boolean\n}\n```\n\n### `OutboundConflict`\n\n```ts\ntype OutboundConflict = {\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n}\n```\n\n### `RelationConfig`\n\n```ts\ntype RelationConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationItemConfig`\n\n```ts\ntype RelationItemConfig = {\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `RelationUniqueIdField`\n\n```ts\ntype RelationUniqueIdField = {\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RelationRefsConfig`\n\nConfiguration for relation references ($relation_ref).\nRelation references link to a specific item within a repeatable attribute on a related entity.\nCommon use case: referencing a specific address within a contact\'s address list.\n\n\n```ts\ntype RelationRefsConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n path: string\n value: {\n attribute: { ... }\n operation?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationRefItemConfig`\n\nConfiguration for a single relation reference item\n\n```ts\ntype RelationRefItemConfig = {\n entity_schema: string\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n path: string\n value: {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }\n}\n```\n\n### `RelationRefValueConfig`\n\nConfiguration for the value to set on the related entity\'s attribute\n\n```ts\ntype RelationRefValueConfig = {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RepeatableFieldType`\n\nType hint for repeatable fields that require special search handling.\nThese fields are stored as arrays of objects (e.g., email: [{ email: "value" }]).\n\n\n```ts\ntype RepeatableFieldType = "email" | "phone"\n```\n\n### `ReplayEventsRequest`\n\n```ts\ntype ReplayEventsRequest = {\n event_ids: string[]\n}\n```\n\n### `QueryEventsRequest`\n\n```ts\ntype QueryEventsRequest = {\n event_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE"\n correlation_id?: string\n object_type?: string\n event_name?: string\n limit?: number\n cursor?: {\n event_time?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryInboundMonitoringEventsRequest`\n\n```ts\ntype QueryInboundMonitoringEventsRequest = {\n use_case_id?: string // uuid\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n sync_type?: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status?: "success" | "error" | "skipped" | "warning"\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n correlation_id?: string\n object_type?: string\n event_name?: string\n event_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n completed_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryAccessLogsRequest`\n\n```ts\ntype QueryAccessLogsRequest = {\n token_id?: string\n service?: string\n method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD"\n path?: string\n status?: number\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n timestamp?: string // date-time\n request_id?: string\n }\n}\n```\n\n### `AccessLogEntry`\n\n```ts\ntype AccessLogEntry = {\n timestamp?: string // date-time\n environment?: string\n service?: string\n request_id?: string\n method?: string\n path?: string\n status?: number\n response_latency_ms?: number\n response_length?: number\n token_id?: string\n org_id?: string\n origin?: string\n source_ip?: string\n}\n```\n\n### `GetMonitoringStatsRequest`\n\n```ts\ntype GetMonitoringStatsRequest = {\n from_date?: string // date-time\n to_date?: string // date-time\n inbound_group_by?: "use_case_id" | "sync_type" | "status" | "error_category" | "object_type" | "event_name" | "date"[]\n outbound_group_by?: "event_name" | "status" | "webhook_config_id" | "date"[]\n}\n```\n\n### `GetMonitoringTimeSeriesRequest`\n\n```ts\ntype GetMonitoringTimeSeriesRequest = {\n from_date: string // date-time\n to_date?: string // date-time\n interval: "5m" | "10m" | "30m" | "1h" | "3h" | "1d"\n direction?: "inbound" | "outbound" | "both"\n}\n```\n\n### `TimeSeriesBucket`\n\n```ts\ntype TimeSeriesBucket = {\n timestamp: string // date-time\n inbound?: {\n success_count?: number\n error_count?: number\n warning_count?: number\n skipped_count?: number\n total_count?: number\n }\n outbound?: {\n success_count?: number\n error_count?: number\n pending_count?: number\n total_count?: number\n }\n}\n```\n\n### `QueryOutboundMonitoringEventsRequest`\n\n```ts\ntype QueryOutboundMonitoringEventsRequest = {\n event_name?: string\n status?: "succeeded" | "failed" | "pending"\n webhook_config_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n created_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `OutboundMonitoringEvent`\n\n```ts\ntype OutboundMonitoringEvent = {\n org_id: string\n event_id: string\n event_name: string\n status: "succeeded" | "failed" | "pending"\n url?: string\n http_method?: string\n http_response?: Record<string, unknown>\n webhook_config_id?: string\n metadata?: Record<string, unknown>\n execution_context?: Record<string, unknown>\n payload?: Record<string, unknown>\n created_at: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `MonitoringStats`\n\n```ts\ntype MonitoringStats = {\n inbound: {\n total_events: number\n total_correlations?: number\n success_count: number\n error_count: number\n skipped_count: number\n warning_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n outbound: {\n total_events: number\n success_count: number\n error_count: number\n pending_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n}\n```\n\n### `InboundMonitoringEvent`\n\n```ts\ntype InboundMonitoringEvent = {\n org_id: string\n event_id: string\n correlation_id?: string\n integration_id?: string\n use_case_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n object_type: string\n sync_type: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status: "success" | "error" | "skipped" | "warning"\n error_code?: string\n error_message?: string\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n processing_duration_ms?: number\n received_at: string // date-time\n completed_at: string // date-time\n}\n```\n';
5
+
6
+
7
+ exports.default = erp_integration_default;
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
2
+
3
+ // src/docs/event-catalog.json
4
+ var event_catalog_default = '# Event Catalog API\n\n- **Base URL:** `https://event-catalog.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/event-catalog](https://docs.epilot.io/api/event-catalog)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.eventCatalog.listEvents(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/event-catalog\'\n\nconst eventCatalogClient = getClient()\nauthorize(eventCatalogClient, () => \'<token>\')\nconst { data } = await eventCatalogClient.listEvents(...)\n```\n\n## Operations\n\n**Event Catalog**\n- [`listEvents`](#listevents)\n- [`getEvent`](#getevent)\n- [`patchEvent`](#patchevent)\n- [`getEventJSONSchema`](#geteventjsonschema)\n- [`getEventExample`](#geteventexample)\n- [`searchEventHistory`](#searcheventhistory)\n- [`triggerEvent`](#triggerevent)\n\n**Schemas**\n- [`EventConfigBase`](#eventconfigbase)\n- [`EventConfig`](#eventconfig)\n- [`UpdateEventPayload`](#updateeventpayload)\n- [`PrimitiveField`](#primitivefield)\n- [`ContextEntity`](#contextentity)\n- [`SchemaField`](#schemafield)\n- [`CommonEventMetadata`](#commoneventmetadata)\n- [`EventJsonSchema`](#eventjsonschema)\n- [`Event`](#event)\n- [`GraphDefinition`](#graphdefinition)\n- [`GraphNode`](#graphnode)\n- [`GraphEdge`](#graphedge)\n- [`EntityOperationTrigger`](#entityoperationtrigger)\n- [`SearchOptions`](#searchoptions)\n- [`FieldsParam`](#fieldsparam)\n- [`TriggerEventPayload`](#triggereventpayload)\n- [`TriggerEventResponse`](#triggereventresponse)\n\n### `listEvents`\n\nRetrieve list of available business events\n\n`GET /v1/events`\n\n```ts\nconst { data } = await client.listEvents()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getEvent`\n\nRetrieve the configuration of a specific business event\n\n`GET /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.getEvent({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true\n}\n```\n\n</details>\n\n---\n\n### `patchEvent`\n\nUpdate the configuration of a specific business event for the organization\n\n`PATCH /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.patchEvent(\n {\n event_name: \'example\',\n },\n {\n event_name: \'AddMeterReading\',\n event_title: \'Add Meter Reading\',\n event_description: \'Triggered when a new meter reading is added\',\n event_version: \'1.0.0\',\n event_status: \'active\',\n event_tags: [\'builtin\', \'metering\', \'erp\'],\n schema_fields: {},\n entity_graph: {\n nodes: [\n {\n id: \'contact\',\n schema: \'contact\',\n cardinality: \'one\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n }\n ],\n edges: [\n {\n from: \'contact\',\n to: \'billing_account\'\n }\n ]\n },\n entity_operation: {\n operation: [\'createEntity\', \'updateEntity\'],\n schema: [\'contact\', \'contract\', \'order\'],\n attribute: [\'email\', \'phone\', \'status\'],\n purpose: [\'K\xFCndigung\', \'Umzug/Auszug\']\n },\n enabled: true,\n auto_trigger: true,\n automation_trigger: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true\n}\n```\n\n</details>\n\n---\n\n### `getEventJSONSchema`\n\nRetrieve the JSON Schema of a specific business event\n\n`GET /v1/events/{event_name}/json_schema`\n\n```ts\nconst { data } = await client.getEventJSONSchema({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "object",\n "properties": {\n "_org_id": {\n "type": "string",\n "description": "epilot tenant/organization ID"\n },\n "_event_time": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when event occurred"\n },\n "_event_id": {\n "type": "string",\n "description": "Unique event identifier (ULID)"\n },\n "_event_name": {\n "type": "string",\n "description": "Event name from catalog"\n },\n "_event_version": {\n "type": "string",\n "description": "Event version (semver)"\n },\n "_event_source": {\n "type": "string",\n "description": "Source that triggered the event"\n },\n "reading_value": {\n "type": "number",\n "description": "The meter reading value"\n },\n "reading_date": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when reading was taken"\n },\n "read_by": {\n "type": "string",\n "description": "Name or identifier of who submitted the reading"\n },\n "reason": {\n "type": "string",\n "enum": ["regular", "move-in", "move-out", "supplier-change", "correction", "final"],\n "description": "Reason for the meter reading"\n },\n "direction": {\n "type": "string",\n "enum": ["feed-in", "feed-out"],\n "description": "Direction of energy flow"\n },\n "source": {\n "type": "string",\n "enum": ["portal", "360", "api", "automation"],\n "description": "Source system where reading was submitted"\n },\n "meter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter"\n },\n "counter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter counter"\n },\n "meter_number": {\n "type": "string",\n "description": "Human-readable meter number"\n },\n "obis_number": {\n "type": "string",\n "description": "OBIS code of the counter"\n },\n "unit": {\n "type": "string",\n "description": "Unit of measurement (e.g., kWh, m3)"\n },\n "customer_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the customer"\n },\n "contract_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the contract"\n },\n "user_id": {\n "type": "string",\n "description": "ID of the user who submitted the reading"\n },\n "user_email": {\n "type": "string",\n "format": "email",\n "description": "Email of the user who submitted the reading"\n }\n },\n "required": ["_org_id", "_event_time", "_event_id", "_event_name", "_event_version", "_event_source", "reading_value", "reading_date", "read_by", "reason", "direction", "source", "meter_id", "counter_id", "meter_number", "obis_number", "unit", "customer_id", "contract_id"]\n}\n```\n\n</details>\n\n---\n\n### `getEventExample`\n\nGenerate a sample event payload based on the event\'s JSON Schema\n\n`GET /v1/events/{event_name}/example`\n\n```ts\nconst { data } = await client.getEventExample({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{}\n```\n\n</details>\n\n---\n\n### `searchEventHistory`\n\nPaginated history of events\n\n`POST /v1/events/{event_name}:history`\n\n```ts\nconst { data } = await client.searchEventHistory(\n {\n event_name: \'example\',\n },\n {\n limit: 10,\n cursor: {\n event_time: \'2025-10-31 12:34:56\',\n event_id: \'evt_1234567890abcdef\'\n },\n timestamp: {\n from: \'2025-10-01T00:00:00Z\',\n to: \'2025-10-31T23:59:59Z\'\n },\n event_id: \'evt_1234567890abcdef\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_org_id": "org_123456",\n "_event_time": "2024-01-01T12:00:00Z",\n "_event_id": "01FZ4Z5FZ5FZ5FZ5FZ5FZ5FZ5F",\n "_event_name": "MeterReading",\n "_event_version": "1.0.0",\n "_event_source": "api",\n "_trigger_source_type": "api",\n "_trigger_source": "user_123456",\n "reading_value": 123.45,\n "reading_date": "2024-01-01T11:59:00Z",\n "read_by": "John Doe",\n "reason": "regular",\n "direction": "feed-out",\n "source": "portal",\n "meter_id": "550e8400-e29b-41d4-a716-446655440000",\n "counter_id": "660e8400-e29b-41d4-a716-446655440000",\n "meter_number": "MT123456789",\n "obis_number": "1-0:1.8.0",\n "unit": "kWh",\n "customer_id": "770e8400-e29b-41d4-a716-446655440000",\n "contract_id": "880e8400-e29b-41d4-a716-446655440000"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n }\n}\n```\n\n</details>\n\n---\n\n### `triggerEvent`\n\nExplicitly trigger an event by providing input field values and an optional entity seed\nfor graph hydration. The event must be enabled for the organization.\n\n`POST /v1/events/{event_name}:trigger`\n\n```ts\nconst { data } = await client.triggerEvent(\n {\n event_name: \'example\',\n },\n {\n seed: {\n entity_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n node_id: \'string\'\n },\n fields: {},\n skip_hydration: [\'string\'],\n _trigger_source_type: \'string\',\n _trigger_source: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "event_id": "string",\n "event_bridge_event_id": "string"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `EventConfigBase`\n\nBase properties shared between EventConfig and UpdateEventPayload\n\n```ts\ntype EventConfigBase = {\n event_name?: string\n event_title?: string\n event_description?: string\n event_version?: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields?: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n}\n```\n\n### `EventConfig`\n\nEvent configuration with required fields\n\n```ts\ntype EventConfig = {\n event_name: string\n event_title?: string\n event_description?: string\n event_version: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n}\n```\n\n### `UpdateEventPayload`\n\nPayload for updating an event configuration.\nAccepts the same fields as EventConfig (all optional for PATCH).\nCurrently only `enabled` and `auto_trigger` fields are processed, other fields are ignored.\n\n\n```ts\ntype UpdateEventPayload = {\n event_name?: string\n event_title?: string\n event_description?: string\n event_version?: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields?: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n}\n```\n\n### `PrimitiveField`\n\nA primitive JSON Schema field definition\n\n```ts\ntype PrimitiveField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n}\n```\n\n### `ContextEntity`\n\n```ts\ntype ContextEntity = {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `SchemaField`\n\n```ts\ntype SchemaField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n} | {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `CommonEventMetadata`\n\nCommon metadata fields present in all event payloads\n\n```ts\ntype CommonEventMetadata = object\n```\n\n### `EventJsonSchema`\n\nJSON Schema declaring the event payload structure\n\n```ts\ntype EventJsonSchema = object\n```\n\n### `Event`\n\nAn event instance in the event history\n\n```ts\ntype Event = {\n _org_id: string\n _event_time: string // date-time\n _event_id: string\n _event_name: string\n _event_version: string\n _event_source: string\n _trigger_source_type?: string\n _trigger_source?: string\n _ack_id?: string\n}\n```\n\n### `GraphDefinition`\n\nEntity graph definition for resolving related entities\n\n```ts\ntype GraphDefinition = {\n nodes: Array<{\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n }>\n edges: Array<{\n from: string\n to: string\n }>\n}\n```\n\n### `GraphNode`\n\nA node in the entity graph\n\n```ts\ntype GraphNode = {\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n}\n```\n\n### `GraphEdge`\n\nAn edge connecting two nodes in the graph\n\n```ts\ntype GraphEdge = {\n from: string\n to: string\n}\n```\n\n### `EntityOperationTrigger`\n\nConfiguration for triggering an event based on entity operations.\n\nWhen an entity operation matches the configured criteria, the event will be triggered.\n- On createEntity: the attribute must be present in the entity payload\n- On updateEntity: the attribute must be in diff.added, diff.updated, or di\n\n```ts\ntype EntityOperationTrigger = {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n}\n```\n\n### `SearchOptions`\n\n```ts\ntype SearchOptions = {\n limit?: number\n cursor?: {\n event_time?: string\n event_id?: string\n }\n timestamp?: {\n from?: string // date-time\n to?: string // date-time\n }\n event_id?: string\n}\n```\n\n### `FieldsParam`\n\nList of entity fields to include or exclude in the response\n\nUse ! to exclude fields, e.g. `!_id` to exclude the `_id` field.\n\nGlobbing and globstart (**) is supported for nested fields.\n\n\n```ts\ntype FieldsParam = string[]\n```\n\n### `TriggerEventPayload`\n\nPayload for explicitly triggering an event via API\n\n```ts\ntype TriggerEventPayload = {\n seed?: {\n entity_id: string // uuid\n node_id: string\n }\n fields?: Record<string, unknown>\n skip_hydration?: string[]\n _trigger_source_type?: string\n _trigger_source?: string\n}\n```\n\n### `TriggerEventResponse`\n\nResponse from triggering an event\n\n```ts\ntype TriggerEventResponse = {\n success: boolean\n event_id: string\n event_bridge_event_id?: string\n}\n```\n';
5
+
6
+
7
+ exports.default = event_catalog_default;