@epilot/sdk 2.0.0-beta.4 → 2.0.3

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 (290) hide show
  1. package/LICENSE +21 -0
  2. package/dist/{access-token.d-BuXO-21p.d.cts → access-token.d-CnmUTOlq.d.cts} +1 -1
  3. package/dist/{access-token.d-BuXO-21p.d.ts → access-token.d-CnmUTOlq.d.ts} +1 -1
  4. package/dist/{address-suggestions.d-Cay0qOfA.d.cts → address-suggestions.d-_YwTOR-9.d.cts} +1 -1
  5. package/dist/{address-suggestions.d-Cay0qOfA.d.ts → address-suggestions.d-_YwTOR-9.d.ts} +1 -1
  6. package/dist/{address.d-D-oZY0rk.d.cts → address.d-CwAPOVxa.d.cts} +1 -1
  7. package/dist/{address.d-D-oZY0rk.d.ts → address.d-CwAPOVxa.d.ts} +1 -1
  8. package/dist/{ai-agents.d-B4_CZTCP.d.cts → ai-agents.d-OkXfr2bz.d.cts} +1 -1
  9. package/dist/{ai-agents.d-B4_CZTCP.d.ts → ai-agents.d-OkXfr2bz.d.ts} +1 -1
  10. package/dist/apis/access-token.d.cts +3 -3
  11. package/dist/apis/access-token.d.ts +3 -3
  12. package/dist/apis/address-suggestions.d.cts +3 -3
  13. package/dist/apis/address-suggestions.d.ts +3 -3
  14. package/dist/apis/address.d.cts +3 -3
  15. package/dist/apis/address.d.ts +3 -3
  16. package/dist/apis/ai-agents.d.cts +3 -3
  17. package/dist/apis/ai-agents.d.ts +3 -3
  18. package/dist/apis/app.d.cts +3 -3
  19. package/dist/apis/app.d.ts +3 -3
  20. package/dist/apis/audit-logs.d.cts +3 -3
  21. package/dist/apis/audit-logs.d.ts +3 -3
  22. package/dist/apis/automation.d.cts +3 -3
  23. package/dist/apis/automation.d.ts +3 -3
  24. package/dist/apis/billing.d.cts +3 -3
  25. package/dist/apis/billing.d.ts +3 -3
  26. package/dist/apis/blueprint-manifest.d.cts +3 -3
  27. package/dist/apis/blueprint-manifest.d.ts +3 -3
  28. package/dist/apis/consent.d.cts +3 -3
  29. package/dist/apis/consent.d.ts +3 -3
  30. package/dist/apis/customer-portal.cjs +1 -1
  31. package/dist/apis/customer-portal.d.cts +3 -3
  32. package/dist/apis/customer-portal.d.ts +3 -3
  33. package/dist/apis/customer-portal.js +1 -1
  34. package/dist/apis/dashboard.d.cts +3 -3
  35. package/dist/apis/dashboard.d.ts +3 -3
  36. package/dist/apis/data-management.d.cts +3 -3
  37. package/dist/apis/data-management.d.ts +3 -3
  38. package/dist/apis/deduplication.d.cts +3 -3
  39. package/dist/apis/deduplication.d.ts +3 -3
  40. package/dist/apis/design.d.cts +3 -3
  41. package/dist/apis/design.d.ts +3 -3
  42. package/dist/apis/document.d.cts +3 -3
  43. package/dist/apis/document.d.ts +3 -3
  44. package/dist/apis/email-settings.d.cts +3 -3
  45. package/dist/apis/email-settings.d.ts +3 -3
  46. package/dist/apis/email-template.d.cts +3 -3
  47. package/dist/apis/email-template.d.ts +3 -3
  48. package/dist/apis/entity-mapping.d.cts +3 -3
  49. package/dist/apis/entity-mapping.d.ts +3 -3
  50. package/dist/apis/entity.d.cts +3 -3
  51. package/dist/apis/entity.d.ts +3 -3
  52. package/dist/apis/environments.d.cts +3 -3
  53. package/dist/apis/environments.d.ts +3 -3
  54. package/dist/apis/erp-integration.cjs +1 -1
  55. package/dist/apis/erp-integration.d.cts +3 -3
  56. package/dist/apis/erp-integration.d.ts +3 -3
  57. package/dist/apis/erp-integration.js +1 -1
  58. package/dist/apis/event-catalog.d.cts +3 -3
  59. package/dist/apis/event-catalog.d.ts +3 -3
  60. package/dist/apis/file.d.cts +3 -3
  61. package/dist/apis/file.d.ts +3 -3
  62. package/dist/apis/iban.d.cts +3 -3
  63. package/dist/apis/iban.d.ts +3 -3
  64. package/dist/apis/journey.d.cts +3 -3
  65. package/dist/apis/journey.d.ts +3 -3
  66. package/dist/apis/kanban.d.cts +3 -3
  67. package/dist/apis/kanban.d.ts +3 -3
  68. package/dist/apis/message.d.cts +3 -3
  69. package/dist/apis/message.d.ts +3 -3
  70. package/dist/apis/metering.d.cts +3 -3
  71. package/dist/apis/metering.d.ts +3 -3
  72. package/dist/apis/notes.d.cts +3 -3
  73. package/dist/apis/notes.d.ts +3 -3
  74. package/dist/apis/notification.d.cts +3 -3
  75. package/dist/apis/notification.d.ts +3 -3
  76. package/dist/apis/organization.cjs +1 -1
  77. package/dist/apis/organization.d.cts +3 -3
  78. package/dist/apis/organization.d.ts +3 -3
  79. package/dist/apis/organization.js +1 -1
  80. package/dist/apis/partner-directory.d.cts +3 -3
  81. package/dist/apis/partner-directory.d.ts +3 -3
  82. package/dist/apis/permissions.d.cts +3 -3
  83. package/dist/apis/permissions.d.ts +3 -3
  84. package/dist/apis/pricing-tier.d.cts +3 -3
  85. package/dist/apis/pricing-tier.d.ts +3 -3
  86. package/dist/apis/pricing.d.cts +3 -3
  87. package/dist/apis/pricing.d.ts +3 -3
  88. package/dist/apis/purpose.d.cts +3 -3
  89. package/dist/apis/purpose.d.ts +3 -3
  90. package/dist/apis/sandbox.d.cts +3 -3
  91. package/dist/apis/sandbox.d.ts +3 -3
  92. package/dist/apis/submission.d.cts +3 -3
  93. package/dist/apis/submission.d.ts +3 -3
  94. package/dist/apis/targeting.d.cts +3 -3
  95. package/dist/apis/targeting.d.ts +3 -3
  96. package/dist/apis/template-variables.d.cts +3 -3
  97. package/dist/apis/template-variables.d.ts +3 -3
  98. package/dist/apis/user.d.cts +3 -3
  99. package/dist/apis/user.d.ts +3 -3
  100. package/dist/apis/validation-rules.d.cts +3 -3
  101. package/dist/apis/validation-rules.d.ts +3 -3
  102. package/dist/apis/webhooks.d.cts +3 -3
  103. package/dist/apis/webhooks.d.ts +3 -3
  104. package/dist/apis/workflow-definition.d.cts +3 -3
  105. package/dist/apis/workflow-definition.d.ts +3 -3
  106. package/dist/apis/workflow.d.cts +3 -3
  107. package/dist/apis/workflow.d.ts +3 -3
  108. package/dist/{app.d-BKyfin-q.d.cts → app.d-Dr03n4J4.d.cts} +1 -1
  109. package/dist/{app.d-BKyfin-q.d.ts → app.d-Dr03n4J4.d.ts} +1 -1
  110. package/dist/{audit-logs.d-19BKb-ur.d.cts → audit-logs.d-BRToFqeX.d.cts} +1 -1
  111. package/dist/{audit-logs.d-19BKb-ur.d.ts → audit-logs.d-BRToFqeX.d.ts} +1 -1
  112. package/dist/{automation.d-DKl2VtnW.d.ts → automation.d-KOiZ6ru5.d.cts} +2 -24
  113. package/dist/{automation.d-DKl2VtnW.d.cts → automation.d-KOiZ6ru5.d.ts} +2 -24
  114. package/dist/{billing.d-58fUMBqj.d.cts → billing.d-Bs8Ku9qE.d.cts} +1 -1
  115. package/dist/{billing.d-58fUMBqj.d.ts → billing.d-Bs8Ku9qE.d.ts} +1 -1
  116. package/dist/{blueprint-manifest.d-Bu1GyXFW.d.cts → blueprint-manifest.d-CEWRdF3i.d.cts} +1 -1
  117. package/dist/{blueprint-manifest.d-Bu1GyXFW.d.ts → blueprint-manifest.d-CEWRdF3i.d.ts} +1 -1
  118. package/dist/{consent.d-CQ88IEj0.d.cts → consent.d-C2PROHhX.d.cts} +1 -1
  119. package/dist/{consent.d-CQ88IEj0.d.ts → consent.d-C2PROHhX.d.ts} +1 -1
  120. package/dist/{customer-portal.d-EyndRWh6.d.ts → customer-portal.d-Bh9NF8cY.d.cts} +598 -99
  121. package/dist/{customer-portal.d-EyndRWh6.d.cts → customer-portal.d-Bh9NF8cY.d.ts} +598 -99
  122. package/dist/{dashboard.d-AE3RQ6zo.d.cts → dashboard.d-CsGcA74I.d.cts} +1 -1
  123. package/dist/{dashboard.d-AE3RQ6zo.d.ts → dashboard.d-CsGcA74I.d.ts} +1 -1
  124. package/dist/{data-management.d-CNExsqJQ.d.cts → data-management.d-pnuiRU2h.d.cts} +1 -1
  125. package/dist/{data-management.d-CNExsqJQ.d.ts → data-management.d-pnuiRU2h.d.ts} +1 -1
  126. package/dist/{deduplication.d-DCeJzdbM.d.ts → deduplication.d-w_2aJD5f.d.cts} +1 -1
  127. package/dist/{deduplication.d-DCeJzdbM.d.cts → deduplication.d-w_2aJD5f.d.ts} +1 -1
  128. package/dist/{design.d-CkwgJ78Z.d.cts → design.d-eA-irKEX.d.cts} +1 -1
  129. package/dist/{design.d-CkwgJ78Z.d.ts → design.d-eA-irKEX.d.ts} +1 -1
  130. package/dist/{document.d-Y8i32qNV.d.cts → document.d-DN37pjdx.d.cts} +1 -1
  131. package/dist/{document.d-Y8i32qNV.d.ts → document.d-DN37pjdx.d.ts} +1 -1
  132. package/dist/{email-settings.d-CPAsRFWN.d.cts → email-settings.d-BXxYjVDr.d.cts} +1 -1
  133. package/dist/{email-settings.d-CPAsRFWN.d.ts → email-settings.d-BXxYjVDr.d.ts} +1 -1
  134. package/dist/{email-template.d-CQqiCN0N.d.cts → email-template.d-BeqkDHtk.d.cts} +1 -1
  135. package/dist/{email-template.d-CQqiCN0N.d.ts → email-template.d-BeqkDHtk.d.ts} +1 -1
  136. package/dist/{entity-mapping.d-DiqXqJWb.d.cts → entity-mapping.d-DKSW3sfy.d.cts} +1 -1
  137. package/dist/{entity-mapping.d-DiqXqJWb.d.ts → entity-mapping.d-DKSW3sfy.d.ts} +1 -1
  138. package/dist/{entity.d-BtT4mdq4.d.ts → entity.d-CrtZaZr8.d.cts} +1 -1
  139. package/dist/{entity.d-BtT4mdq4.d.cts → entity.d-CrtZaZr8.d.ts} +1 -1
  140. package/dist/{environments.d-C1xIs8N2.d.cts → environments.d-H3LK_KuH.d.cts} +1 -1
  141. package/dist/{environments.d-C1xIs8N2.d.ts → environments.d-H3LK_KuH.d.ts} +1 -1
  142. package/dist/{erp-integration.d-CNLzgl4L.d.cts → erp-integration.d-DOhxy4P5.d.cts} +409 -15
  143. package/dist/{erp-integration.d-CNLzgl4L.d.ts → erp-integration.d-DOhxy4P5.d.ts} +409 -15
  144. package/dist/{event-catalog.d-DW1dOyVh.d.cts → event-catalog.d-ENw6HO-w.d.cts} +1 -1
  145. package/dist/{event-catalog.d-DW1dOyVh.d.ts → event-catalog.d-ENw6HO-w.d.ts} +1 -1
  146. package/dist/{file.d-Bpdt2ORN.d.cts → file.d-DcTJxjp7.d.cts} +1 -1
  147. package/dist/{file.d-Bpdt2ORN.d.ts → file.d-DcTJxjp7.d.ts} +1 -1
  148. package/dist/{iban.d-3_7FEsbx.d.ts → iban.d-BwdiGbxi.d.cts} +1 -1
  149. package/dist/{iban.d-3_7FEsbx.d.cts → iban.d-BwdiGbxi.d.ts} +1 -1
  150. package/dist/index.d.cts +46 -46
  151. package/dist/index.d.ts +46 -46
  152. package/dist/{journey.d-C2lgynUF.d.cts → journey.d-C4N4t1Rh.d.cts} +122 -4
  153. package/dist/{journey.d-C2lgynUF.d.ts → journey.d-C4N4t1Rh.d.ts} +122 -4
  154. package/dist/kanban.d-CtSt3uX2.d.cts +745 -0
  155. package/dist/kanban.d-CtSt3uX2.d.ts +745 -0
  156. package/dist/{message.d-TAVDRlDJ.d.cts → message.d-YEv1kmQd.d.cts} +1 -1
  157. package/dist/{message.d-TAVDRlDJ.d.ts → message.d-YEv1kmQd.d.ts} +1 -1
  158. package/dist/{metering.d-qyYaAU-O.d.cts → metering.d-DvtPv7wk.d.cts} +1 -1
  159. package/dist/{metering.d-qyYaAU-O.d.ts → metering.d-DvtPv7wk.d.ts} +1 -1
  160. package/dist/{notes.d-CDyIbegf.d.cts → notes.d-BC-scR42.d.cts} +1 -1
  161. package/dist/{notes.d-CDyIbegf.d.ts → notes.d-BC-scR42.d.ts} +1 -1
  162. package/dist/{notification.d-B7ccbaPr.d.cts → notification.d-BfBL3lga.d.cts} +1 -1
  163. package/dist/{notification.d-B7ccbaPr.d.ts → notification.d-BfBL3lga.d.ts} +1 -1
  164. package/dist/organization.d-Bd2Hmk8v.d.cts +1244 -0
  165. package/dist/organization.d-Bd2Hmk8v.d.ts +1244 -0
  166. package/dist/{partner-directory.d-CzKV3WfP.d.cts → partner-directory.d-CRNkDF8q.d.cts} +1 -1
  167. package/dist/{partner-directory.d-CzKV3WfP.d.ts → partner-directory.d-CRNkDF8q.d.ts} +1 -1
  168. package/dist/{permissions.d-lVoPAfl3.d.cts → permissions.d-BHB1FFS5.d.cts} +1 -1
  169. package/dist/{permissions.d-lVoPAfl3.d.ts → permissions.d-BHB1FFS5.d.ts} +1 -1
  170. package/dist/{pricing-tier.d-BW2cZt1w.d.cts → pricing-tier.d-Cg0jl6n_.d.cts} +1 -1
  171. package/dist/{pricing-tier.d-BW2cZt1w.d.ts → pricing-tier.d-Cg0jl6n_.d.ts} +1 -1
  172. package/dist/{pricing.d-Ehb2JuKY.d.cts → pricing.d-Cv39plGm.d.cts} +1 -1
  173. package/dist/{pricing.d-Ehb2JuKY.d.ts → pricing.d-Cv39plGm.d.ts} +1 -1
  174. package/dist/{purpose.d-BVxst611.d.cts → purpose.d-CbIYfTua.d.cts} +1 -1
  175. package/dist/{purpose.d-BVxst611.d.ts → purpose.d-CbIYfTua.d.ts} +1 -1
  176. package/dist/{sandbox.d-tRO2movo.d.cts → sandbox.d-BdbOFzDu.d.cts} +1 -1
  177. package/dist/{sandbox.d-tRO2movo.d.ts → sandbox.d-BdbOFzDu.d.ts} +1 -1
  178. package/dist/{submission.d-CSll5Km9.d.cts → submission.d-BamwfhXw.d.cts} +1 -1
  179. package/dist/{submission.d-CSll5Km9.d.ts → submission.d-BamwfhXw.d.ts} +1 -1
  180. package/dist/{targeting.d-CDxIsOWy.d.cts → targeting.d-BNmcVsNS.d.cts} +1 -1
  181. package/dist/{targeting.d-CDxIsOWy.d.ts → targeting.d-BNmcVsNS.d.ts} +1 -1
  182. package/dist/{template-variables.d-PwA27Ocv.d.cts → template-variables.d-Ch3H3zYf.d.cts} +1 -1
  183. package/dist/{template-variables.d-PwA27Ocv.d.ts → template-variables.d-Ch3H3zYf.d.ts} +1 -1
  184. package/dist/{user.d-DJBp6aX5.d.cts → user.d-CXqM751M.d.cts} +1 -1
  185. package/dist/{user.d-DJBp6aX5.d.ts → user.d-CXqM751M.d.ts} +1 -1
  186. package/dist/{validation-rules.d-CScjNdxD.d.cts → validation-rules.d-Db5c5zTf.d.cts} +1 -1
  187. package/dist/{validation-rules.d-CScjNdxD.d.ts → validation-rules.d-Db5c5zTf.d.ts} +1 -1
  188. package/dist/{webhooks.d-C_MQSJEB.d.cts → webhooks.d-CUNJrltY.d.cts} +1 -1
  189. package/dist/{webhooks.d-C_MQSJEB.d.ts → webhooks.d-CUNJrltY.d.ts} +1 -1
  190. package/dist/{workflow-definition.d-CFXrp2Hg.d.cts → workflow-definition.d-CE3kk9gl.d.cts} +1 -1
  191. package/dist/{workflow-definition.d-CFXrp2Hg.d.ts → workflow-definition.d-CE3kk9gl.d.ts} +1 -1
  192. package/dist/{workflow.d-BIWtgMyP.d.cts → workflow.d-DvhTpEtU.d.cts} +46 -4
  193. package/dist/{workflow.d-BIWtgMyP.d.ts → workflow.d-DvhTpEtU.d.ts} +46 -4
  194. package/package.json +152 -11
  195. package/definitions/access-token-runtime.json +0 -1
  196. package/definitions/access-token.json +0 -663
  197. package/definitions/address-runtime.json +0 -1
  198. package/definitions/address-suggestions-runtime.json +0 -1
  199. package/definitions/address-suggestions.json +0 -582
  200. package/definitions/address.json +0 -578
  201. package/definitions/ai-agents-runtime.json +0 -1
  202. package/definitions/ai-agents.json +0 -1711
  203. package/definitions/app-runtime.json +0 -1
  204. package/definitions/app.json +0 -4443
  205. package/definitions/audit-logs-runtime.json +0 -1
  206. package/definitions/audit-logs.json +0 -305
  207. package/definitions/automation-runtime.json +0 -1
  208. package/definitions/automation.json +0 -4850
  209. package/definitions/billing-runtime.json +0 -1
  210. package/definitions/billing.json +0 -837
  211. package/definitions/blueprint-manifest-runtime.json +0 -1
  212. package/definitions/blueprint-manifest.json +0 -3376
  213. package/definitions/consent-runtime.json +0 -1
  214. package/definitions/consent.json +0 -344
  215. package/definitions/customer-portal-runtime.json +0 -1
  216. package/definitions/customer-portal.json +0 -15000
  217. package/definitions/dashboard-runtime.json +0 -1
  218. package/definitions/dashboard.json +0 -484
  219. package/definitions/data-management-runtime.json +0 -1
  220. package/definitions/data-management.json +0 -962
  221. package/definitions/deduplication-runtime.json +0 -1
  222. package/definitions/deduplication.json +0 -183
  223. package/definitions/design-runtime.json +0 -1
  224. package/definitions/design.json +0 -1423
  225. package/definitions/document-runtime.json +0 -1
  226. package/definitions/document.json +0 -758
  227. package/definitions/email-settings-runtime.json +0 -1
  228. package/definitions/email-settings.json +0 -2627
  229. package/definitions/email-template-runtime.json +0 -1
  230. package/definitions/email-template.json +0 -1419
  231. package/definitions/entity-mapping-runtime.json +0 -1
  232. package/definitions/entity-mapping.json +0 -1642
  233. package/definitions/entity-runtime.json +0 -1
  234. package/definitions/entity.json +0 -10074
  235. package/definitions/environments-runtime.json +0 -1
  236. package/definitions/environments.json +0 -363
  237. package/definitions/erp-integration-runtime.json +0 -1
  238. package/definitions/erp-integration.json +0 -5845
  239. package/definitions/event-catalog-runtime.json +0 -1
  240. package/definitions/event-catalog.json +0 -1051
  241. package/definitions/file-runtime.json +0 -1
  242. package/definitions/file.json +0 -2842
  243. package/definitions/iban-runtime.json +0 -1
  244. package/definitions/iban.json +0 -132
  245. package/definitions/journey-runtime.json +0 -1
  246. package/definitions/journey.json +0 -2341
  247. package/definitions/kanban-runtime.json +0 -1
  248. package/definitions/kanban.json +0 -929
  249. package/definitions/message-runtime.json +0 -1
  250. package/definitions/message.json +0 -2660
  251. package/definitions/metering-runtime.json +0 -1
  252. package/definitions/metering.json +0 -2321
  253. package/definitions/notes-runtime.json +0 -1
  254. package/definitions/notes.json +0 -1531
  255. package/definitions/notification-runtime.json +0 -1
  256. package/definitions/notification.json +0 -1425
  257. package/definitions/organization-runtime.json +0 -1
  258. package/definitions/organization.json +0 -629
  259. package/definitions/partner-directory-runtime.json +0 -1
  260. package/definitions/partner-directory.json +0 -1718
  261. package/definitions/permissions-runtime.json +0 -1
  262. package/definitions/permissions.json +0 -1480
  263. package/definitions/pricing-runtime.json +0 -1
  264. package/definitions/pricing-tier-runtime.json +0 -1
  265. package/definitions/pricing-tier.json +0 -105
  266. package/definitions/pricing.json +0 -9884
  267. package/definitions/purpose-runtime.json +0 -1
  268. package/definitions/purpose.json +0 -524
  269. package/definitions/sandbox-runtime.json +0 -1
  270. package/definitions/sandbox.json +0 -453
  271. package/definitions/submission-runtime.json +0 -1
  272. package/definitions/submission.json +0 -313
  273. package/definitions/targeting-runtime.json +0 -1
  274. package/definitions/targeting.json +0 -1474
  275. package/definitions/template-variables-runtime.json +0 -1
  276. package/definitions/template-variables.json +0 -1408
  277. package/definitions/user-runtime.json +0 -1
  278. package/definitions/user.json +0 -2408
  279. package/definitions/validation-rules-runtime.json +0 -1
  280. package/definitions/validation-rules.json +0 -1491
  281. package/definitions/webhooks-runtime.json +0 -1
  282. package/definitions/webhooks.json +0 -1525
  283. package/definitions/workflow-definition-runtime.json +0 -1
  284. package/definitions/workflow-definition.json +0 -3417
  285. package/definitions/workflow-runtime.json +0 -1
  286. package/definitions/workflow.json +0 -4106
  287. package/dist/kanban.d-DYVjUQ_S.d.cts +0 -630
  288. package/dist/kanban.d-DYVjUQ_S.d.ts +0 -630
  289. package/dist/organization.d-BxZWnh8L.d.cts +0 -628
  290. package/dist/organization.d-BxZWnh8L.d.ts +0 -628
@@ -1,4443 +0,0 @@
1
- {
2
- "openapi": "3.1.0",
3
- "info": {
4
- "title": "App API",
5
- "description": "API for managing app publishing and installed app.",
6
- "version": "2.0.0"
7
- },
8
- "tags": [
9
- {
10
- "name": "App Configuration",
11
- "description": "Create and manage app configurations"
12
- },
13
- {
14
- "name": "App Installation",
15
- "description": "Install and uninstall apps"
16
- },
17
- {
18
- "name": "App Analytics",
19
- "description": "Analytics for installed apps"
20
- }
21
- ],
22
- "servers": [
23
- {
24
- "url": "https://app.sls.epilot.io"
25
- }
26
- ],
27
- "security": [
28
- {
29
- "EpilotAuth": []
30
- },
31
- {
32
- "EpilotOrg": []
33
- }
34
- ],
35
- "paths": {
36
- "/v1/public/app/{appId}/components/{componentId}": {
37
- "parameters": [
38
- {
39
- "name": "appId",
40
- "in": "path",
41
- "required": true,
42
- "schema": {
43
- "type": "string"
44
- },
45
- "description": "ID of the app configuration to install"
46
- },
47
- {
48
- "name": "componentId",
49
- "in": "path",
50
- "required": true,
51
- "schema": {
52
- "type": "string"
53
- },
54
- "description": "ID of the component to retrieve"
55
- }
56
- ],
57
- "get": {
58
- "security": [
59
- {
60
- "EpilotAuth": []
61
- }
62
- ],
63
- "summary": "getPublicFacingComponent",
64
- "description": "Retrieve public facing components for an installed app",
65
- "operationId": "getPublicFacingComponent",
66
- "tags": [
67
- "App Installation"
68
- ],
69
- "responses": {
70
- "200": {
71
- "description": "Successful response with public app component details",
72
- "content": {
73
- "application/json": {
74
- "schema": {
75
- "type": "object",
76
- "properties": {
77
- "component": {
78
- "$ref": "#/components/schemas/BaseComponent"
79
- }
80
- }
81
- }
82
- }
83
- }
84
- },
85
- "404": {
86
- "description": "App Installation not found"
87
- }
88
- }
89
- }
90
- },
91
- "/v1/app-configurations": {
92
- "get": {
93
- "summary": "listConfigurations",
94
- "description": "List all app configuration metadata owned by an organization. To get full app configuration details, use the /v1/app-configurations/{appId} endpoint.",
95
- "operationId": "listConfigurations",
96
- "tags": [
97
- "App Configuration"
98
- ],
99
- "parameters": [
100
- {
101
- "name": "page",
102
- "in": "query",
103
- "schema": {
104
- "type": "integer",
105
- "default": 1
106
- },
107
- "description": "Page number for pagination"
108
- },
109
- {
110
- "name": "pageSize",
111
- "in": "query",
112
- "schema": {
113
- "type": "integer",
114
- "default": 20
115
- },
116
- "description": "Number of items per page"
117
- }
118
- ],
119
- "responses": {
120
- "200": {
121
- "description": "List of app configurations",
122
- "content": {
123
- "application/json": {
124
- "schema": {
125
- "type": "object",
126
- "properties": {
127
- "configurations": {
128
- "type": "array",
129
- "items": {
130
- "$ref": "#/components/schemas/ConfigurationMetadata"
131
- }
132
- },
133
- "pagination": {
134
- "type": "object",
135
- "properties": {
136
- "total": {
137
- "type": "integer"
138
- },
139
- "page": {
140
- "type": "integer"
141
- },
142
- "pageSize": {
143
- "type": "integer"
144
- }
145
- }
146
- }
147
- }
148
- }
149
- }
150
- }
151
- }
152
- }
153
- },
154
- "post": {
155
- "summary": "createConfiguration",
156
- "description": "Create a new private app configuration. To make it public a verification process needs to be triggered",
157
- "operationId": "createConfiguration",
158
- "tags": [
159
- "App Configuration"
160
- ],
161
- "requestBody": {
162
- "$ref": "#/components/requestBodies/CreateConfigRequest"
163
- },
164
- "responses": {
165
- "201": {
166
- "description": "App configuration created successfully",
167
- "content": {
168
- "application/json": {
169
- "schema": {
170
- "type": "object",
171
- "required": [
172
- "app_id"
173
- ],
174
- "properties": {
175
- "app_id": {
176
- "type": "string"
177
- }
178
- }
179
- }
180
- }
181
- }
182
- }
183
- }
184
- }
185
- },
186
- "/v1/app-configurations/public": {
187
- "get": {
188
- "summary": "listPublicConfigurations",
189
- "description": "List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one public version.",
190
- "operationId": "listPublicConfigurations",
191
- "tags": [
192
- "App Configuration"
193
- ],
194
- "parameters": [
195
- {
196
- "name": "page",
197
- "in": "query",
198
- "schema": {
199
- "type": "integer",
200
- "default": 1
201
- },
202
- "description": "Page number for pagination"
203
- },
204
- {
205
- "name": "pageSize",
206
- "in": "query",
207
- "schema": {
208
- "type": "integer",
209
- "default": 20
210
- },
211
- "description": "Number of items per page"
212
- }
213
- ],
214
- "responses": {
215
- "200": {
216
- "description": "List of public app configurations",
217
- "content": {
218
- "application/json": {
219
- "schema": {
220
- "type": "object",
221
- "properties": {
222
- "configurations": {
223
- "type": "array",
224
- "items": {
225
- "$ref": "#/components/schemas/ConfigurationMetadata"
226
- }
227
- },
228
- "pagination": {
229
- "type": "object",
230
- "properties": {
231
- "total": {
232
- "type": "integer"
233
- },
234
- "page": {
235
- "type": "integer"
236
- },
237
- "pageSize": {
238
- "type": "integer"
239
- }
240
- }
241
- }
242
- }
243
- }
244
- }
245
- }
246
- }
247
- }
248
- }
249
- },
250
- "/v1/app-configurations/public/{appId}": {
251
- "parameters": [
252
- {
253
- "name": "appId",
254
- "in": "path",
255
- "required": true,
256
- "schema": {
257
- "type": "string"
258
- },
259
- "description": "ID of the app configuration to install"
260
- }
261
- ],
262
- "get": {
263
- "summary": "getPublicConfiguration",
264
- "description": "Retrieve the public configuration of an app to install in your tenant",
265
- "operationId": "getPublicConfiguration",
266
- "tags": [
267
- "App Configuration"
268
- ],
269
- "parameters": [
270
- {
271
- "name": "version",
272
- "in": "query",
273
- "schema": {
274
- "type": "string"
275
- },
276
- "description": "Version of the app configuration to retrieve"
277
- }
278
- ],
279
- "responses": {
280
- "200": {
281
- "description": "Successful response",
282
- "content": {
283
- "application/json": {
284
- "schema": {
285
- "$ref": "#/components/schemas/PublicConfiguration"
286
- }
287
- }
288
- }
289
- },
290
- "404": {
291
- "description": "App configuration not found"
292
- }
293
- }
294
- }
295
- },
296
- "/v1/app-configurations/{appId}": {
297
- "parameters": [
298
- {
299
- "name": "appId",
300
- "in": "path",
301
- "required": true,
302
- "schema": {
303
- "type": "string"
304
- },
305
- "description": "ID of the app configuration"
306
- }
307
- ],
308
- "get": {
309
- "summary": "getConfiguration",
310
- "description": "Retrieve a specific app configuration",
311
- "operationId": "getConfiguration",
312
- "tags": [
313
- "App Configuration"
314
- ],
315
- "parameters": [
316
- {
317
- "name": "version",
318
- "in": "query",
319
- "schema": {
320
- "type": "string"
321
- },
322
- "description": "Version of the app configuration to retrieve"
323
- }
324
- ],
325
- "responses": {
326
- "200": {
327
- "description": "Successful response",
328
- "content": {
329
- "application/json": {
330
- "schema": {
331
- "$ref": "#/components/schemas/Configuration"
332
- }
333
- }
334
- }
335
- },
336
- "404": {
337
- "description": "App configuration not found"
338
- }
339
- }
340
- },
341
- "patch": {
342
- "summary": "patchMetadata",
343
- "description": "Patch non-versioned configuration metadata of a given app configuration.",
344
- "operationId": "patchMetadata",
345
- "tags": [
346
- "App Configuration"
347
- ],
348
- "requestBody": {
349
- "$ref": "#/components/requestBodies/PatchConfigMetadataRequest"
350
- },
351
- "responses": {
352
- "204": {
353
- "description": "Configuration patched successfully"
354
- },
355
- "404": {
356
- "description": "App configuration not found"
357
- }
358
- }
359
- },
360
- "delete": {
361
- "summary": "Delete app configuration",
362
- "description": "Delete an app configuration and all its versions and components.",
363
- "operationId": "deleteConfiguration",
364
- "tags": [
365
- "App Configuration"
366
- ],
367
- "responses": {
368
- "204": {
369
- "description": "App configuration deleted successfully"
370
- },
371
- "404": {
372
- "description": "App configuration not found"
373
- }
374
- }
375
- }
376
- },
377
- "/v1/app-configurations/{appId}/events": {
378
- "post": {
379
- "summary": "queryEvents",
380
- "description": "Query analytics events for a specific app with flexible filtering",
381
- "operationId": "queryEvents",
382
- "tags": [
383
- "App Analytics"
384
- ],
385
- "parameters": [
386
- {
387
- "name": "appId",
388
- "in": "path",
389
- "required": true,
390
- "schema": {
391
- "type": "string"
392
- },
393
- "description": "ID of the app configuration"
394
- }
395
- ],
396
- "requestBody": {
397
- "required": true,
398
- "content": {
399
- "application/json": {
400
- "schema": {
401
- "$ref": "#/components/schemas/EventsQuery"
402
- }
403
- }
404
- }
405
- },
406
- "responses": {
407
- "200": {
408
- "description": "Analytics events",
409
- "content": {
410
- "application/json": {
411
- "schema": {
412
- "$ref": "#/components/schemas/EventsQueryResponse"
413
- }
414
- }
415
- }
416
- },
417
- "400": {
418
- "description": "Invalid query parameters"
419
- },
420
- "404": {
421
- "description": "App configuration not found"
422
- }
423
- }
424
- }
425
- },
426
- "/v1/app-configurations/{appId}/bundle": {
427
- "post": {
428
- "summary": "createBundleUploadUrl",
429
- "description": "Generate a presigned URL for uploading app bundle to /<app-id>/bundle.js path",
430
- "operationId": "createBundleUploadUrl",
431
- "tags": [
432
- "App Configuration"
433
- ],
434
- "parameters": [
435
- {
436
- "name": "appId",
437
- "in": "path",
438
- "required": true,
439
- "schema": {
440
- "type": "string"
441
- },
442
- "description": "ID of the app configuration"
443
- }
444
- ],
445
- "requestBody": {
446
- "$ref": "#/components/requestBodies/CreateBundlePresignedRequest"
447
- },
448
- "responses": {
449
- "200": {
450
- "description": "Upload URL generated successfully",
451
- "content": {
452
- "application/json": {
453
- "schema": {
454
- "type": "object",
455
- "required": [
456
- "upload_url"
457
- ],
458
- "properties": {
459
- "component_id": {
460
- "type": "string",
461
- "description": "ID of the journye block component"
462
- },
463
- "component_url": {
464
- "type": "string",
465
- "description": "URL of the web component object"
466
- },
467
- "upload_url": {
468
- "type": "string",
469
- "description": "Presigned S3 URL for uploading the bundle"
470
- },
471
- "s3ref": {
472
- "$ref": "#/components/schemas/S3Reference"
473
- },
474
- "expires_at": {
475
- "type": "string",
476
- "format": "date-time",
477
- "description": "Timestamp when the upload URL expires"
478
- }
479
- }
480
- }
481
- }
482
- }
483
- },
484
- "404": {
485
- "description": "App configuration not found"
486
- }
487
- }
488
- }
489
- },
490
- "/v1/app-configurations/{appId}/zip": {
491
- "post": {
492
- "summary": "createZipUploadUrl",
493
- "operationId": "createZipUploadUrl",
494
- "description": "Generate a presigned URL to upload a zip file with artifacts that will be unpacked in a new directory under the /<app-id>/ path\n",
495
- "tags": [
496
- "App Configuration"
497
- ],
498
- "parameters": [
499
- {
500
- "name": "appId",
501
- "in": "path",
502
- "required": true,
503
- "schema": {
504
- "type": "string"
505
- },
506
- "description": "ID of the app configuration"
507
- }
508
- ],
509
- "requestBody": {
510
- "content": {
511
- "application/json": {
512
- "schema": {
513
- "type": "object",
514
- "additionalProperties": false,
515
- "properties": {
516
- "version": {
517
- "type": "string",
518
- "description": "Version of the app configuration",
519
- "example": "1.0.0"
520
- },
521
- "component_id": {
522
- "type": "string",
523
- "description": "ID of the journey block component"
524
- },
525
- "filename": {
526
- "type": "string",
527
- "example": "dist.zip"
528
- }
529
- }
530
- }
531
- }
532
- }
533
- },
534
- "responses": {
535
- "200": {
536
- "description": "Upload URL generated successfully",
537
- "content": {
538
- "application/json": {
539
- "schema": {
540
- "type": "object",
541
- "required": [
542
- "upload_url",
543
- "artifact_url"
544
- ],
545
- "properties": {
546
- "component_id": {
547
- "type": "string",
548
- "description": "ID of the journye block component"
549
- },
550
- "upload_url": {
551
- "type": "string",
552
- "description": "Presigned S3 URL for uploading the bundle"
553
- },
554
- "artifact_url": {
555
- "type": "string",
556
- "description": "Public CDN URL for the unpacked artifacts"
557
- },
558
- "s3ref": {
559
- "$ref": "#/components/schemas/S3Reference"
560
- },
561
- "expires_at": {
562
- "type": "string",
563
- "format": "date-time",
564
- "description": "Timestamp when the upload URL expires"
565
- }
566
- }
567
- }
568
- }
569
- }
570
- },
571
- "404": {
572
- "description": "App configuration not found"
573
- }
574
- }
575
- }
576
- },
577
- "/v1/app-configurations/{appId}/logo": {
578
- "parameters": [
579
- {
580
- "name": "appId",
581
- "in": "path",
582
- "required": true,
583
- "schema": {
584
- "type": "string"
585
- },
586
- "description": "ID of the app configuration"
587
- }
588
- ],
589
- "post": {
590
- "summary": "createLogoUploadUrl",
591
- "description": "Generate a presigned URL for uploading app logo to /<app-id>/logo.png path",
592
- "operationId": "createLogoUploadUrl",
593
- "tags": [
594
- "App Configuration"
595
- ],
596
- "requestBody": {
597
- "$ref": "#/components/requestBodies/CreateLogoPresignedRequest"
598
- },
599
- "responses": {
600
- "200": {
601
- "description": "Upload URL generated successfully",
602
- "content": {
603
- "application/json": {
604
- "schema": {
605
- "type": "object",
606
- "required": [
607
- "upload_url"
608
- ],
609
- "properties": {
610
- "upload_url": {
611
- "type": "string",
612
- "description": "Presigned S3 URL for uploading the logo"
613
- },
614
- "s3ref": {
615
- "$ref": "#/components/schemas/S3Reference"
616
- },
617
- "expires_at": {
618
- "type": "string",
619
- "format": "date-time",
620
- "description": "Timestamp when the upload URL expires"
621
- }
622
- }
623
- }
624
- }
625
- }
626
- },
627
- "404": {
628
- "description": "App configuration not found"
629
- }
630
- }
631
- },
632
- "delete": {
633
- "summary": "deleteLogo",
634
- "description": "Delete the app logo from /<app-id>/logo.png path",
635
- "operationId": "deleteLogo",
636
- "tags": [
637
- "App Configuration"
638
- ],
639
- "responses": {
640
- "204": {
641
- "description": "Logo deleted successfully"
642
- },
643
- "404": {
644
- "description": "App configuration not found"
645
- }
646
- }
647
- }
648
- },
649
- "/v1/app-configurations/{appId}/versions": {
650
- "get": {
651
- "summary": "listVersions",
652
- "description": "Retrieve a list of versions for an app configuration",
653
- "operationId": "listVersions",
654
- "tags": [
655
- "App Configuration"
656
- ],
657
- "parameters": [
658
- {
659
- "name": "appId",
660
- "in": "path",
661
- "required": true,
662
- "schema": {
663
- "type": "string"
664
- },
665
- "description": "ID of the app configuration"
666
- },
667
- {
668
- "name": "page",
669
- "in": "query",
670
- "schema": {
671
- "type": "integer",
672
- "default": 1
673
- },
674
- "description": "Page number for pagination"
675
- },
676
- {
677
- "name": "pageSize",
678
- "in": "query",
679
- "schema": {
680
- "type": "integer",
681
- "default": 20
682
- },
683
- "description": "Number of items per page"
684
- }
685
- ],
686
- "responses": {
687
- "200": {
688
- "description": "List of app versions",
689
- "content": {
690
- "application/json": {
691
- "schema": {
692
- "type": "object",
693
- "properties": {
694
- "versions": {
695
- "type": "array",
696
- "items": {
697
- "$ref": "#/components/schemas/ConfigurationVersion"
698
- }
699
- },
700
- "pagination": {
701
- "type": "object",
702
- "properties": {
703
- "total": {
704
- "type": "integer"
705
- },
706
- "page": {
707
- "type": "integer"
708
- },
709
- "pageSize": {
710
- "type": "integer"
711
- }
712
- }
713
- }
714
- }
715
- }
716
- }
717
- }
718
- },
719
- "400": {
720
- "description": "Invalid parameter"
721
- }
722
- }
723
- }
724
- },
725
- "/v1/app-configurations/{appId}/versions/{version}": {
726
- "get": {
727
- "summary": "getVersion",
728
- "description": "Retrieve a specific version of an app configuration",
729
- "operationId": "getVersion",
730
- "tags": [
731
- "App Configuration"
732
- ],
733
- "parameters": [
734
- {
735
- "name": "appId",
736
- "in": "path",
737
- "required": true,
738
- "schema": {
739
- "type": "string"
740
- },
741
- "description": "ID of the app configuration"
742
- },
743
- {
744
- "name": "version",
745
- "in": "path",
746
- "required": true,
747
- "schema": {
748
- "type": "string"
749
- },
750
- "description": "Version of the app configuration to retrieve"
751
- }
752
- ],
753
- "responses": {
754
- "200": {
755
- "description": "App configuration for specific version",
756
- "content": {
757
- "application/json": {
758
- "schema": {
759
- "$ref": "#/components/schemas/Configuration"
760
- }
761
- }
762
- }
763
- },
764
- "404": {
765
- "description": "App configuration or version not found"
766
- }
767
- }
768
- },
769
- "delete": {
770
- "summary": "deleteVersion",
771
- "description": "Delete a specific version of an app configuration",
772
- "operationId": "deleteVersion",
773
- "tags": [
774
- "App Configuration"
775
- ],
776
- "parameters": [
777
- {
778
- "name": "appId",
779
- "in": "path",
780
- "required": true,
781
- "schema": {
782
- "type": "string"
783
- },
784
- "description": "ID of the app configuration"
785
- },
786
- {
787
- "name": "version",
788
- "in": "path",
789
- "required": true,
790
- "schema": {
791
- "type": "string"
792
- },
793
- "description": "Version to delete"
794
- }
795
- ],
796
- "responses": {
797
- "204": {
798
- "description": "Version deleted successfully"
799
- },
800
- "400": {
801
- "description": "Cannot delete the only remaining version"
802
- },
803
- "404": {
804
- "description": "Version not found"
805
- },
806
- "409": {
807
- "description": "Version is in use by installations"
808
- }
809
- }
810
- },
811
- "patch": {
812
- "summary": "patchVersion",
813
- "description": "Patch an existing app version",
814
- "operationId": "patchVersion",
815
- "tags": [
816
- "App Configuration"
817
- ],
818
- "parameters": [
819
- {
820
- "name": "appId",
821
- "in": "path",
822
- "required": true,
823
- "schema": {
824
- "type": "string"
825
- },
826
- "description": "ID of the app configuration"
827
- },
828
- {
829
- "name": "version",
830
- "in": "path",
831
- "required": true,
832
- "schema": {
833
- "type": "string"
834
- },
835
- "description": "Version to update"
836
- }
837
- ],
838
- "requestBody": {
839
- "$ref": "#/components/requestBodies/PatchVersionRequest"
840
- },
841
- "responses": {
842
- "204": {
843
- "description": "Version patched successfully"
844
- },
845
- "400": {
846
- "description": "Invalid version format"
847
- },
848
- "404": {
849
- "description": "Version not found"
850
- }
851
- }
852
- }
853
- },
854
- "/v1/app-configurations/{appId}/versions/{version}/review": {
855
- "get": {
856
- "summary": "getReview",
857
- "description": "Retrieve the review status of a specific app version",
858
- "operationId": "getReview",
859
- "tags": [
860
- "App Configuration"
861
- ],
862
- "parameters": [
863
- {
864
- "name": "appId",
865
- "in": "path",
866
- "required": true,
867
- "schema": {
868
- "type": "string"
869
- },
870
- "description": "ID of the app configuration"
871
- },
872
- {
873
- "name": "version",
874
- "in": "path",
875
- "required": true,
876
- "schema": {
877
- "type": "string"
878
- },
879
- "description": "Version to retrieve the review status for"
880
- }
881
- ],
882
- "responses": {
883
- "200": {
884
- "description": "Review status retrieved successfully",
885
- "content": {
886
- "application/json": {
887
- "schema": {
888
- "type": "object",
889
- "properties": {
890
- "review": {
891
- "$ref": "#/components/schemas/Review"
892
- }
893
- }
894
- }
895
- }
896
- }
897
- },
898
- "404": {
899
- "description": "Version not found or no review exists for this version"
900
- }
901
- }
902
- },
903
- "post": {
904
- "summary": "createReview",
905
- "description": "Submit an app version for review to make it public",
906
- "operationId": "createReview",
907
- "tags": [
908
- "App Configuration"
909
- ],
910
- "parameters": [
911
- {
912
- "name": "appId",
913
- "in": "path",
914
- "required": true,
915
- "schema": {
916
- "type": "string"
917
- },
918
- "description": "ID of the app configuration"
919
- },
920
- {
921
- "name": "version",
922
- "in": "path",
923
- "required": true,
924
- "schema": {
925
- "type": "string"
926
- },
927
- "description": "Version to submit for review"
928
- }
929
- ],
930
- "requestBody": {
931
- "$ref": "#/components/requestBodies/CreateReviewRequest"
932
- },
933
- "responses": {
934
- "200": {
935
- "description": "Version submitted for review successfully",
936
- "content": {
937
- "application/json": {
938
- "schema": {
939
- "type": "object",
940
- "properties": {
941
- "review": {
942
- "$ref": "#/components/schemas/Review"
943
- }
944
- }
945
- }
946
- }
947
- }
948
- },
949
- "400": {
950
- "description": "Invalid version format"
951
- },
952
- "404": {
953
- "description": "Version not found"
954
- }
955
- }
956
- }
957
- },
958
- "/v1/app-configurations/{appId}/versions/{version}/components": {
959
- "post": {
960
- "summary": "createComponent",
961
- "description": "Patch an existing app version to create/add a component",
962
- "operationId": "createComponent",
963
- "tags": [
964
- "App Configuration"
965
- ],
966
- "parameters": [
967
- {
968
- "name": "appId",
969
- "in": "path",
970
- "required": true,
971
- "schema": {
972
- "type": "string"
973
- },
974
- "description": "ID of the app configuration"
975
- },
976
- {
977
- "name": "version",
978
- "in": "path",
979
- "required": true,
980
- "schema": {
981
- "type": "string"
982
- },
983
- "description": "Version to update"
984
- }
985
- ],
986
- "requestBody": {
987
- "$ref": "#/components/requestBodies/UpsertComponentRequest"
988
- },
989
- "responses": {
990
- "200": {
991
- "description": "Component created successfully",
992
- "content": {
993
- "application/json": {
994
- "schema": {
995
- "type": "object",
996
- "properties": {
997
- "component": {
998
- "$ref": "#/components/schemas/BaseComponent"
999
- }
1000
- }
1001
- }
1002
- }
1003
- }
1004
- },
1005
- "400": {
1006
- "description": "Invalid version format"
1007
- },
1008
- "404": {
1009
- "description": "Version not found"
1010
- }
1011
- }
1012
- }
1013
- },
1014
- "/v1/app-configurations/{appId}/versions/{version}/components/{componentId}": {
1015
- "patch": {
1016
- "summary": "patchComponent",
1017
- "description": "Patch an existing app version to update its components",
1018
- "operationId": "patchComponent",
1019
- "tags": [
1020
- "App Configuration"
1021
- ],
1022
- "parameters": [
1023
- {
1024
- "name": "appId",
1025
- "in": "path",
1026
- "required": true,
1027
- "schema": {
1028
- "type": "string"
1029
- },
1030
- "description": "ID of the app configuration"
1031
- },
1032
- {
1033
- "name": "version",
1034
- "in": "path",
1035
- "required": true,
1036
- "schema": {
1037
- "type": "string"
1038
- },
1039
- "description": "Version to update"
1040
- },
1041
- {
1042
- "name": "componentId",
1043
- "in": "path",
1044
- "required": true,
1045
- "schema": {
1046
- "type": "string"
1047
- },
1048
- "description": "ID of the component to update"
1049
- }
1050
- ],
1051
- "requestBody": {
1052
- "$ref": "#/components/requestBodies/UpsertComponentRequest"
1053
- },
1054
- "responses": {
1055
- "204": {
1056
- "description": "Component patched successfully"
1057
- },
1058
- "400": {
1059
- "description": "Invalid version format"
1060
- },
1061
- "404": {
1062
- "description": "Version or component not found"
1063
- }
1064
- }
1065
- },
1066
- "delete": {
1067
- "summary": "deleteComponent",
1068
- "description": "Delete a specific component from an app version",
1069
- "operationId": "deleteComponent",
1070
- "tags": [
1071
- "App Configuration"
1072
- ],
1073
- "parameters": [
1074
- {
1075
- "name": "appId",
1076
- "in": "path",
1077
- "required": true,
1078
- "schema": {
1079
- "type": "string"
1080
- },
1081
- "description": "ID of the app configuration"
1082
- },
1083
- {
1084
- "name": "version",
1085
- "in": "path",
1086
- "required": true,
1087
- "schema": {
1088
- "type": "string"
1089
- },
1090
- "description": "Version to update"
1091
- },
1092
- {
1093
- "name": "componentId",
1094
- "in": "path",
1095
- "required": true,
1096
- "schema": {
1097
- "type": "string"
1098
- },
1099
- "description": "ID of the component to delete"
1100
- }
1101
- ],
1102
- "responses": {
1103
- "204": {
1104
- "description": "Component deleted successfully"
1105
- },
1106
- "404": {
1107
- "description": "Version or component not found"
1108
- }
1109
- }
1110
- }
1111
- },
1112
- "/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}": {
1113
- "post": {
1114
- "summary": "cloneVersion",
1115
- "description": "Clone an existing app version to create a new version",
1116
- "operationId": "cloneVersion",
1117
- "tags": [
1118
- "App Configuration"
1119
- ],
1120
- "parameters": [
1121
- {
1122
- "name": "appId",
1123
- "in": "path",
1124
- "required": true,
1125
- "schema": {
1126
- "type": "string"
1127
- },
1128
- "description": "ID of the app configuration"
1129
- },
1130
- {
1131
- "name": "sourceVersion",
1132
- "in": "path",
1133
- "required": true,
1134
- "schema": {
1135
- "type": "string"
1136
- },
1137
- "description": "Source version to clone from"
1138
- },
1139
- {
1140
- "name": "targetVersion",
1141
- "in": "path",
1142
- "required": true,
1143
- "schema": {
1144
- "type": "string"
1145
- },
1146
- "description": "Target version to create"
1147
- }
1148
- ],
1149
- "responses": {
1150
- "201": {
1151
- "description": "New version created successfully",
1152
- "content": {
1153
- "application/json": {
1154
- "schema": {
1155
- "type": "object",
1156
- "properties": {
1157
- "app_id": {
1158
- "type": "string"
1159
- },
1160
- "version": {
1161
- "type": "string"
1162
- },
1163
- "status": {
1164
- "type": "string",
1165
- "enum": [
1166
- "pending",
1167
- "published"
1168
- ]
1169
- }
1170
- }
1171
- }
1172
- }
1173
- }
1174
- },
1175
- "400": {
1176
- "description": "Invalid version format or target version already exists"
1177
- },
1178
- "404": {
1179
- "description": "Source version not found"
1180
- }
1181
- }
1182
- }
1183
- },
1184
- "/v1/app": {
1185
- "get": {
1186
- "summary": "listInstallations",
1187
- "description": "Retrieve a list of installed apps for the organization.",
1188
- "operationId": "listInstallations",
1189
- "tags": [
1190
- "App Installation"
1191
- ],
1192
- "parameters": [
1193
- {
1194
- "name": "componentType",
1195
- "in": "query",
1196
- "schema": {
1197
- "$ref": "#/components/schemas/ComponentType"
1198
- },
1199
- "description": "Filter apps by specific component type",
1200
- "example": "CUSTOM_JOURNEY_BLOCK"
1201
- },
1202
- {
1203
- "name": "enabled",
1204
- "in": "query",
1205
- "schema": {
1206
- "type": "boolean"
1207
- },
1208
- "description": "Filter apps by enabled status"
1209
- },
1210
- {
1211
- "name": "page",
1212
- "in": "query",
1213
- "schema": {
1214
- "type": "integer",
1215
- "default": 1
1216
- },
1217
- "description": "Page number for pagination"
1218
- },
1219
- {
1220
- "name": "pageSize",
1221
- "in": "query",
1222
- "schema": {
1223
- "type": "integer",
1224
- "default": 20
1225
- },
1226
- "description": "Number of items per page"
1227
- }
1228
- ],
1229
- "responses": {
1230
- "200": {
1231
- "description": "Successful response",
1232
- "content": {
1233
- "application/json": {
1234
- "schema": {
1235
- "type": "object",
1236
- "properties": {
1237
- "apps": {
1238
- "type": "array",
1239
- "items": {
1240
- "$ref": "#/components/schemas/Installation"
1241
- }
1242
- },
1243
- "pagination": {
1244
- "type": "object",
1245
- "properties": {
1246
- "total": {
1247
- "type": "integer"
1248
- },
1249
- "page": {
1250
- "type": "integer"
1251
- },
1252
- "pageSize": {
1253
- "type": "integer"
1254
- }
1255
- }
1256
- }
1257
- }
1258
- }
1259
- }
1260
- }
1261
- }
1262
- }
1263
- }
1264
- },
1265
- "/v1/app/{appId}": {
1266
- "get": {
1267
- "summary": "getInstallation",
1268
- "description": "Retrieve details of an installed app by its ID.",
1269
- "operationId": "getInstallation",
1270
- "tags": [
1271
- "App Installation"
1272
- ],
1273
- "parameters": [
1274
- {
1275
- "name": "appId",
1276
- "in": "path",
1277
- "required": true,
1278
- "schema": {
1279
- "type": "string"
1280
- }
1281
- }
1282
- ],
1283
- "responses": {
1284
- "200": {
1285
- "description": "Details about an app installation.",
1286
- "content": {
1287
- "application/json": {
1288
- "schema": {
1289
- "$ref": "#/components/schemas/Installation"
1290
- }
1291
- }
1292
- }
1293
- },
1294
- "404": {
1295
- "description": "Installation not found."
1296
- }
1297
- }
1298
- },
1299
- "post": {
1300
- "summary": "install",
1301
- "description": "Upsert app installation by its ID.",
1302
- "operationId": "install",
1303
- "tags": [
1304
- "App Installation"
1305
- ],
1306
- "parameters": [
1307
- {
1308
- "name": "appId",
1309
- "in": "path",
1310
- "required": true,
1311
- "schema": {
1312
- "type": "string"
1313
- }
1314
- }
1315
- ],
1316
- "requestBody": {
1317
- "$ref": "#/components/requestBodies/InstallRequest"
1318
- },
1319
- "responses": {
1320
- "201": {
1321
- "description": "App successfully installed.",
1322
- "content": {
1323
- "application/json": {
1324
- "schema": {
1325
- "$ref": "#/components/schemas/Installation"
1326
- }
1327
- }
1328
- }
1329
- },
1330
- "404": {
1331
- "description": "App not found."
1332
- }
1333
- }
1334
- },
1335
- "patch": {
1336
- "summary": "patchInstallation",
1337
- "description": "Patch an installed app by its ID.",
1338
- "operationId": "patchInstallation",
1339
- "tags": [
1340
- "App Installation"
1341
- ],
1342
- "parameters": [
1343
- {
1344
- "name": "appId",
1345
- "in": "path",
1346
- "required": true,
1347
- "schema": {
1348
- "type": "string"
1349
- }
1350
- }
1351
- ],
1352
- "requestBody": {
1353
- "$ref": "#/components/requestBodies/InstallRequest"
1354
- },
1355
- "responses": {
1356
- "204": {
1357
- "description": "App installation patched successfully."
1358
- },
1359
- "404": {
1360
- "description": "App not found."
1361
- }
1362
- }
1363
- },
1364
- "delete": {
1365
- "summary": "uninstall",
1366
- "description": "Uninstall an app by its ID.",
1367
- "operationId": "uninstall",
1368
- "tags": [
1369
- "App Installation"
1370
- ],
1371
- "parameters": [
1372
- {
1373
- "name": "appId",
1374
- "in": "path",
1375
- "required": true,
1376
- "schema": {
1377
- "type": "string"
1378
- }
1379
- }
1380
- ],
1381
- "responses": {
1382
- "204": {
1383
- "description": "App deleted successfully."
1384
- },
1385
- "404": {
1386
- "description": "App not found."
1387
- }
1388
- }
1389
- }
1390
- },
1391
- "/v1/app/{appId}/promote-to/{version}": {
1392
- "post": {
1393
- "summary": "promoteVersion",
1394
- "description": "Update an installed app to a new version",
1395
- "operationId": "promoteVersion",
1396
- "tags": [
1397
- "App Installation"
1398
- ],
1399
- "parameters": [
1400
- {
1401
- "name": "appId",
1402
- "in": "path",
1403
- "required": true,
1404
- "schema": {
1405
- "type": "string"
1406
- }
1407
- },
1408
- {
1409
- "name": "version",
1410
- "in": "path",
1411
- "required": true,
1412
- "schema": {
1413
- "type": "string"
1414
- }
1415
- }
1416
- ],
1417
- "responses": {
1418
- "200": {
1419
- "description": "App successfully promoted to new version",
1420
- "content": {
1421
- "application/json": {
1422
- "schema": {
1423
- "$ref": "#/components/schemas/Installation"
1424
- }
1425
- }
1426
- }
1427
- },
1428
- "400": {
1429
- "description": "Invalid version or version not available"
1430
- },
1431
- "404": {
1432
- "description": "App installation not found"
1433
- }
1434
- }
1435
- }
1436
- },
1437
- "/v1/app-events": {
1438
- "post": {
1439
- "summary": "ingestEvent",
1440
- "operationId": "ingestEvent",
1441
- "description": "Internal endpoint for services to submit app events for analytic purposes",
1442
- "tags": [
1443
- "App Analytics"
1444
- ],
1445
- "requestBody": {
1446
- "required": true,
1447
- "content": {
1448
- "application/json": {
1449
- "schema": {
1450
- "oneOf": [
1451
- {
1452
- "$ref": "#/components/schemas/AppEventData"
1453
- },
1454
- {
1455
- "$ref": "#/components/schemas/BatchEventRequest"
1456
- }
1457
- ]
1458
- }
1459
- }
1460
- }
1461
- },
1462
- "responses": {
1463
- "202": {
1464
- "description": "Events accepted for processing"
1465
- },
1466
- "400": {
1467
- "description": "Invalid event format"
1468
- }
1469
- }
1470
- }
1471
- }
1472
- },
1473
- "components": {
1474
- "requestBodies": {
1475
- "CreateReviewRequest": {
1476
- "required": true,
1477
- "content": {
1478
- "application/json": {
1479
- "schema": {
1480
- "type": "object",
1481
- "required": [
1482
- "technical_contact",
1483
- "marketing_contact"
1484
- ],
1485
- "properties": {
1486
- "technical_contact": {
1487
- "type": "string",
1488
- "description": "Email of the technical contact"
1489
- },
1490
- "marketing_contact": {
1491
- "type": "string",
1492
- "description": "Email of the marketing contact"
1493
- },
1494
- "demo_url": {
1495
- "type": "string",
1496
- "description": "URL to a demo of the app"
1497
- }
1498
- }
1499
- }
1500
- }
1501
- }
1502
- },
1503
- "CreateLogoPresignedRequest": {
1504
- "required": true,
1505
- "content": {
1506
- "application/json": {
1507
- "schema": {
1508
- "type": "object",
1509
- "required": [
1510
- "filename",
1511
- "mime_type"
1512
- ],
1513
- "properties": {
1514
- "filename": {
1515
- "type": "string",
1516
- "description": "Original filename of the logo",
1517
- "example": "company-logo.png"
1518
- },
1519
- "mime_type": {
1520
- "type": "string",
1521
- "description": "MIME type of the logo file",
1522
- "enum": [
1523
- "image/png",
1524
- "image/jpeg",
1525
- "image/jpg"
1526
- ],
1527
- "example": "image/png"
1528
- }
1529
- }
1530
- }
1531
- }
1532
- }
1533
- },
1534
- "CreateBundlePresignedRequest": {
1535
- "required": true,
1536
- "content": {
1537
- "application/json": {
1538
- "schema": {
1539
- "type": "object",
1540
- "required": [
1541
- "version"
1542
- ],
1543
- "properties": {
1544
- "version": {
1545
- "type": "string",
1546
- "description": "Version of the app"
1547
- },
1548
- "component_id": {
1549
- "type": "string",
1550
- "description": "ID of the journey block component"
1551
- }
1552
- }
1553
- }
1554
- }
1555
- }
1556
- },
1557
- "PatchConfigMetadataRequest": {
1558
- "required": true,
1559
- "content": {
1560
- "application/json": {
1561
- "schema": {
1562
- "type": "object",
1563
- "properties": {
1564
- "name": {
1565
- "type": "string",
1566
- "description": "Name of the app"
1567
- },
1568
- "description": {
1569
- "$ref": "#/components/schemas/TranslatedString"
1570
- },
1571
- "category": {
1572
- "type": "string"
1573
- },
1574
- "documentation_url": {
1575
- "type": "string"
1576
- },
1577
- "notifications": {
1578
- "$ref": "#/components/schemas/NotificationConfig"
1579
- },
1580
- "pricing": {
1581
- "$ref": "#/components/schemas/Pricing"
1582
- },
1583
- "logo_url_key": {
1584
- "type": "string",
1585
- "description": "S3 key of the logo file"
1586
- },
1587
- "support_email": {
1588
- "type": "string",
1589
- "description": "Email address for support requests"
1590
- },
1591
- "dev_mode": {
1592
- "type": "boolean",
1593
- "description": "Flag to indicate if the app is in dev mode. If true, the app takes the override properties of components into account."
1594
- }
1595
- }
1596
- }
1597
- }
1598
- }
1599
- },
1600
- "PatchVersionRequest": {
1601
- "required": true,
1602
- "content": {
1603
- "application/json": {
1604
- "schema": {
1605
- "type": "object",
1606
- "properties": {
1607
- "manifest_id": {
1608
- "type": "string",
1609
- "description": "ID of the manifest to use for this version"
1610
- },
1611
- "role_id": {
1612
- "nullable": true,
1613
- "type": "string",
1614
- "description": "Name of the role"
1615
- },
1616
- "grants": {
1617
- "$ref": "#/components/schemas/Grants"
1618
- }
1619
- }
1620
- }
1621
- }
1622
- }
1623
- },
1624
- "UpsertComponentRequest": {
1625
- "required": true,
1626
- "content": {
1627
- "application/json": {
1628
- "schema": {
1629
- "$ref": "#/components/schemas/BaseComponent"
1630
- }
1631
- }
1632
- }
1633
- },
1634
- "CreateConfigRequest": {
1635
- "required": true,
1636
- "content": {
1637
- "application/json": {
1638
- "schema": {
1639
- "type": "object",
1640
- "required": [
1641
- "name",
1642
- "description"
1643
- ],
1644
- "properties": {
1645
- "name": {
1646
- "type": "string",
1647
- "description": "Name of the app"
1648
- },
1649
- "description": {
1650
- "$ref": "#/components/schemas/TranslatedString"
1651
- },
1652
- "category": {
1653
- "type": "string"
1654
- },
1655
- "logo_url_key": {
1656
- "type": "string",
1657
- "description": "S3 key of the logo file"
1658
- }
1659
- }
1660
- }
1661
- }
1662
- }
1663
- },
1664
- "InstallRequest": {
1665
- "content": {
1666
- "application/json": {
1667
- "schema": {
1668
- "type": "object",
1669
- "properties": {
1670
- "version": {
1671
- "type": "string",
1672
- "description": "Version of the app to update to"
1673
- },
1674
- "option_values": {
1675
- "type": "array",
1676
- "items": {
1677
- "$ref": "#/components/schemas/OptionsRef"
1678
- },
1679
- "description": "Configuration values for the app components"
1680
- },
1681
- "_manifest": {
1682
- "type": "array",
1683
- "description": "Manifest ID used to create/update the entity",
1684
- "items": {
1685
- "type": "string",
1686
- "format": "uuid",
1687
- "example": "123e4567-e89b-12d3-a456-426614174000"
1688
- }
1689
- }
1690
- }
1691
- }
1692
- }
1693
- }
1694
- }
1695
- },
1696
- "securitySchemes": {
1697
- "EpilotAuth": {
1698
- "type": "http",
1699
- "scheme": "bearer",
1700
- "description": "Authorization header with epilot OAuth2 bearer token",
1701
- "bearerFormat": "JWT"
1702
- },
1703
- "EpilotOrg": {
1704
- "description": "Overrides the target organization to allow shared tenantaccess",
1705
- "name": "x-epilot-org-id",
1706
- "in": "header",
1707
- "type": "apiKey"
1708
- }
1709
- },
1710
- "schemas": {
1711
- "Role": {
1712
- "type": "object",
1713
- "properties": {
1714
- "id": {
1715
- "type": "string",
1716
- "description": "Name of the role"
1717
- },
1718
- "grants": {
1719
- "$ref": "#/components/schemas/Grants"
1720
- }
1721
- }
1722
- },
1723
- "Options": {
1724
- "type": "object",
1725
- "description": "Options for the component configuration",
1726
- "required": [
1727
- "key",
1728
- "type"
1729
- ],
1730
- "properties": {
1731
- "key": {
1732
- "type": "string",
1733
- "description": "Unique identifier for this configuration option"
1734
- },
1735
- "label": {
1736
- "type": "string",
1737
- "description": "Human-readable label for the configuration option"
1738
- },
1739
- "required": {
1740
- "type": "boolean",
1741
- "description": "Flag to indicate if this option is required"
1742
- },
1743
- "description": {
1744
- "type": "string",
1745
- "description": "Detailed description of what this configuration option does"
1746
- },
1747
- "value": {
1748
- "type": [
1749
- "string",
1750
- "boolean",
1751
- "number"
1752
- ],
1753
- "description": "The configured value for this option. Is only present when the component is installed."
1754
- },
1755
- "type": {
1756
- "type": "string",
1757
- "enum": [
1758
- "text",
1759
- "number",
1760
- "boolean",
1761
- "secret"
1762
- ]
1763
- }
1764
- }
1765
- },
1766
- "Option": {
1767
- "type": "object",
1768
- "required": [
1769
- "key",
1770
- "value"
1771
- ],
1772
- "properties": {
1773
- "key": {
1774
- "type": "string",
1775
- "description": "Key matching a config_option from the component"
1776
- },
1777
- "value": {
1778
- "type": [
1779
- "string",
1780
- "boolean",
1781
- "number"
1782
- ],
1783
- "description": "The configured value for this option"
1784
- }
1785
- }
1786
- },
1787
- "OptionsRef": {
1788
- "type": "object",
1789
- "required": [
1790
- "component_id",
1791
- "options"
1792
- ],
1793
- "properties": {
1794
- "component_id": {
1795
- "type": "string",
1796
- "description": "ID of the component these values are for"
1797
- },
1798
- "options": {
1799
- "type": "array",
1800
- "items": {
1801
- "$ref": "#/components/schemas/Option"
1802
- }
1803
- }
1804
- }
1805
- },
1806
- "S3Reference": {
1807
- "type": "object",
1808
- "properties": {
1809
- "bucket": {
1810
- "type": "string",
1811
- "description": "The name of the S3 bucket where the JSON file for import is stored.",
1812
- "example": "my-bucket"
1813
- },
1814
- "key": {
1815
- "type": "string",
1816
- "description": "The key or path to the JSON file within the S3 bucket.",
1817
- "example": "manifest.json"
1818
- }
1819
- },
1820
- "required": [
1821
- "bucket",
1822
- "key"
1823
- ]
1824
- },
1825
- "ComponentType": {
1826
- "type": "string",
1827
- "enum": [
1828
- "CUSTOM_JOURNEY_BLOCK",
1829
- "CUSTOM_PORTAL_BLOCK",
1830
- "PORTAL_EXTENSION",
1831
- "CUSTOM_FLOW_ACTION",
1832
- "ERP_INFORM_TOOLKIT",
1833
- "CUSTOM_CAPABILITY",
1834
- "EXTERNAL_PRODUCT_CATALOG",
1835
- "CUSTOM_PAGE"
1836
- ],
1837
- "description": "Type of app component"
1838
- },
1839
- "Author": {
1840
- "type": "object",
1841
- "required": [
1842
- "company"
1843
- ],
1844
- "properties": {
1845
- "name": {
1846
- "type": "string",
1847
- "description": "Name of the author",
1848
- "maxLength": 50
1849
- },
1850
- "company": {
1851
- "type": "string",
1852
- "description": "Company of the author",
1853
- "maxLength": 30
1854
- },
1855
- "email": {
1856
- "type": "string",
1857
- "description": "Email of the author",
1858
- "maxLength": 30
1859
- }
1860
- }
1861
- },
1862
- "NotificationConfig": {
1863
- "type": "object",
1864
- "properties": {
1865
- "email": {
1866
- "type": "string",
1867
- "format": "email",
1868
- "description": "Email address to receive notifications",
1869
- "example": "developer@example.com"
1870
- },
1871
- "events": {
1872
- "type": "array",
1873
- "description": "List of events to subscribe to",
1874
- "items": {
1875
- "$ref": "#/components/schemas/NotificationEvent"
1876
- },
1877
- "minItems": 0
1878
- }
1879
- }
1880
- },
1881
- "NotificationEvent": {
1882
- "type": "string",
1883
- "enum": [
1884
- "app.installed",
1885
- "app.uninstalled"
1886
- ]
1887
- },
1888
- "BaseComponentCommon": {
1889
- "type": "object",
1890
- "required": [
1891
- "id"
1892
- ],
1893
- "properties": {
1894
- "id": {
1895
- "type": "string",
1896
- "description": "Unique identifier for the component"
1897
- },
1898
- "name": {
1899
- "allOf": [
1900
- {
1901
- "description": "Name of the component"
1902
- },
1903
- {
1904
- "$ref": "#/components/schemas/TranslatedString"
1905
- }
1906
- ]
1907
- },
1908
- "description": {
1909
- "allOf": [
1910
- {
1911
- "description": "Description of the component"
1912
- },
1913
- {
1914
- "$ref": "#/components/schemas/TranslatedString"
1915
- }
1916
- ]
1917
- },
1918
- "options": {
1919
- "type": "array",
1920
- "items": {
1921
- "$ref": "#/components/schemas/Options"
1922
- },
1923
- "description": "List of options for the app component"
1924
- },
1925
- "surfaces": {
1926
- "type": "object"
1927
- }
1928
- }
1929
- },
1930
- "BaseComponent": {
1931
- "allOf": [
1932
- {
1933
- "$ref": "#/components/schemas/BaseComponentCommon"
1934
- },
1935
- {
1936
- "type": "object",
1937
- "discriminator": {
1938
- "propertyName": "component_type",
1939
- "mapping": {
1940
- "CUSTOM_JOURNEY_BLOCK": "#/components/schemas/JourneyBlockComponent",
1941
- "CUSTOM_PORTAL_BLOCK": "#/components/schemas/PortalBlockComponent",
1942
- "PORTAL_EXTENSION": "#/components/schemas/PortalExtensionComponent",
1943
- "CUSTOM_FLOW_ACTION": "#/components/schemas/CustomFlowActionComponent",
1944
- "ERP_INFORM_TOOLKIT": "#/components/schemas/ErpInformToolkitComponent",
1945
- "CUSTOM_CAPABILITY": "#/components/schemas/CustomCapabilityComponent",
1946
- "EXTERNAL_PRODUCT_CATALOG": "#/components/schemas/ExternalProductCatalogComponent",
1947
- "CUSTOM_PAGE": "#/components/schemas/CustomPageComponent"
1948
- }
1949
- },
1950
- "oneOf": [
1951
- {
1952
- "$ref": "#/components/schemas/JourneyBlockComponent"
1953
- },
1954
- {
1955
- "$ref": "#/components/schemas/PortalBlockComponent"
1956
- },
1957
- {
1958
- "$ref": "#/components/schemas/PortalExtensionComponent"
1959
- },
1960
- {
1961
- "$ref": "#/components/schemas/CustomFlowActionComponent"
1962
- },
1963
- {
1964
- "$ref": "#/components/schemas/ErpInformToolkitComponent"
1965
- },
1966
- {
1967
- "$ref": "#/components/schemas/CustomCapabilityComponent"
1968
- },
1969
- {
1970
- "$ref": "#/components/schemas/ExternalProductCatalogComponent"
1971
- },
1972
- {
1973
- "$ref": "#/components/schemas/CustomPageComponent"
1974
- }
1975
- ]
1976
- }
1977
- ]
1978
- },
1979
- "CustomCapabilityComponent": {
1980
- "type": "object",
1981
- "required": [
1982
- "component_type",
1983
- "configuration"
1984
- ],
1985
- "properties": {
1986
- "component_type": {
1987
- "type": "string",
1988
- "enum": [
1989
- "CUSTOM_CAPABILITY"
1990
- ]
1991
- },
1992
- "configuration": {
1993
- "type": "object",
1994
- "properties": {
1995
- "type": {
1996
- "description": "Define what type of capability this is",
1997
- "type": "string",
1998
- "enum": [
1999
- "tab",
2000
- "group"
2001
- ]
2002
- },
2003
- "allowed_schemas": {
2004
- "description": "Which schemas are supported by the capability. If empty, all schemas are supported.",
2005
- "type": "array",
2006
- "items": {
2007
- "type": "string",
2008
- "description": "Name of the schema",
2009
- "example": "opportunity"
2010
- }
2011
- }
2012
- }
2013
- },
2014
- "surfaces": {
2015
- "type": "object",
2016
- "properties": {
2017
- "capability_config": {
2018
- "$ref": "#/components/schemas/AppBridgeSurfaceConfig"
2019
- }
2020
- }
2021
- }
2022
- }
2023
- },
2024
- "CustomPageComponent": {
2025
- "type": "object",
2026
- "required": [
2027
- "component_type",
2028
- "configuration"
2029
- ],
2030
- "properties": {
2031
- "component_type": {
2032
- "type": "string",
2033
- "enum": [
2034
- "CUSTOM_PAGE"
2035
- ]
2036
- },
2037
- "configuration": {
2038
- "$ref": "#/components/schemas/CustomPageConfig"
2039
- },
2040
- "surfaces": {
2041
- "type": "object",
2042
- "properties": {
2043
- "page": {
2044
- "$ref": "#/components/schemas/AppBridgeSurfaceConfig"
2045
- }
2046
- }
2047
- }
2048
- }
2049
- },
2050
- "CustomPageConfig": {
2051
- "type": "object",
2052
- "required": [
2053
- "slug"
2054
- ],
2055
- "properties": {
2056
- "slug": {
2057
- "type": "string",
2058
- "description": "URL slug for the page route. Must be unique per organization.",
2059
- "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
2060
- "example": "zapier"
2061
- },
2062
- "nav_label": {
2063
- "type": "string",
2064
- "description": "Display label in the navigation sidebar.",
2065
- "example": "Zapier"
2066
- },
2067
- "nav_icon": {
2068
- "type": "string",
2069
- "description": "Icon identifier for the navigation item.",
2070
- "example": "zap"
2071
- },
2072
- "nav_description": {
2073
- "type": "string",
2074
- "description": "Optional tooltip or description for the navigation item."
2075
- }
2076
- }
2077
- },
2078
- "JourneyBlockComponent": {
2079
- "type": "object",
2080
- "required": [
2081
- "component_type",
2082
- "configuration"
2083
- ],
2084
- "properties": {
2085
- "component_type": {
2086
- "type": "string",
2087
- "enum": [
2088
- "CUSTOM_JOURNEY_BLOCK"
2089
- ]
2090
- },
2091
- "configuration": {
2092
- "$ref": "#/components/schemas/JourneyBlockConfig"
2093
- }
2094
- }
2095
- },
2096
- "PortalBlockComponent": {
2097
- "type": "object",
2098
- "required": [
2099
- "component_type",
2100
- "configuration"
2101
- ],
2102
- "properties": {
2103
- "component_type": {
2104
- "type": "string",
2105
- "enum": [
2106
- "CUSTOM_PORTAL_BLOCK"
2107
- ]
2108
- },
2109
- "configuration": {
2110
- "$ref": "#/components/schemas/PortalBlockConfig"
2111
- },
2112
- "surfaces": {
2113
- "type": "object",
2114
- "properties": {
2115
- "portal_block": {
2116
- "$ref": "#/components/schemas/PortalBlockSurfaceConfig"
2117
- }
2118
- }
2119
- }
2120
- }
2121
- },
2122
- "ErpInformToolkitComponent": {
2123
- "type": "object",
2124
- "required": [
2125
- "component_type",
2126
- "configuration"
2127
- ],
2128
- "properties": {
2129
- "component_type": {
2130
- "type": "string",
2131
- "enum": [
2132
- "ERP_INFORM_TOOLKIT"
2133
- ]
2134
- },
2135
- "configuration": {
2136
- "type": "object",
2137
- "required": [
2138
- "type"
2139
- ],
2140
- "properties": {
2141
- "type": {
2142
- "type": "string",
2143
- "enum": [
2144
- "inbound",
2145
- "outbound"
2146
- ]
2147
- }
2148
- }
2149
- }
2150
- }
2151
- },
2152
- "CustomFlowActionComponent": {
2153
- "type": "object",
2154
- "required": [
2155
- "component_type",
2156
- "configuration"
2157
- ],
2158
- "properties": {
2159
- "component_type": {
2160
- "type": "string",
2161
- "enum": [
2162
- "CUSTOM_FLOW_ACTION"
2163
- ]
2164
- },
2165
- "configuration": {
2166
- "$ref": "#/components/schemas/CustomFlowConfig"
2167
- },
2168
- "surfaces": {
2169
- "type": "object",
2170
- "properties": {
2171
- "flow_action_config": {
2172
- "$ref": "#/components/schemas/AppBridgeSurfaceConfig"
2173
- }
2174
- }
2175
- }
2176
- }
2177
- },
2178
- "BaseCustomActionConfig": {
2179
- "type": "object",
2180
- "properties": {
2181
- "name": {
2182
- "type": "string",
2183
- "description": "Name of the custom action"
2184
- },
2185
- "description": {
2186
- "type": "string",
2187
- "description": "Description of the custom action"
2188
- },
2189
- "wait_for_callback": {
2190
- "type": "boolean",
2191
- "description": "Wait for callback_url to be called before completing the action"
2192
- }
2193
- }
2194
- },
2195
- "ExternalIntegrationCustomActionConfig": {
2196
- "allOf": [
2197
- {
2198
- "$ref": "#/components/schemas/BaseCustomActionConfig"
2199
- },
2200
- {
2201
- "type": "object",
2202
- "properties": {
2203
- "type": {
2204
- "type": "string",
2205
- "enum": [
2206
- "external_integration"
2207
- ]
2208
- },
2209
- "external_integration_settings": {
2210
- "type": "object",
2211
- "properties": {
2212
- "url": {
2213
- "type": "string",
2214
- "description": "URL to call"
2215
- },
2216
- "headers": {
2217
- "type": "object",
2218
- "additionalProperties": true
2219
- }
2220
- }
2221
- }
2222
- },
2223
- "required": [
2224
- "type"
2225
- ]
2226
- }
2227
- ]
2228
- },
2229
- "SandboxCustomActionConfig": {
2230
- "allOf": [
2231
- {
2232
- "$ref": "#/components/schemas/BaseCustomActionConfig"
2233
- },
2234
- {
2235
- "type": "object",
2236
- "properties": {
2237
- "type": {
2238
- "type": "string",
2239
- "enum": [
2240
- "sandbox"
2241
- ]
2242
- },
2243
- "sandbox_settings": {
2244
- "type": "object",
2245
- "properties": {
2246
- "code": {
2247
- "type": "string",
2248
- "description": "JavaScript code to execute for the sandbox action. Maximum size: 300KB (hard limit). Code is stored as raw JavaScript and will be syntax-validated on save. Security restrictions: eval() and Function() constructor are not allowed.\n",
2249
- "maxLength": 307200
2250
- }
2251
- }
2252
- }
2253
- },
2254
- "required": [
2255
- "type"
2256
- ]
2257
- }
2258
- ]
2259
- },
2260
- "CustomFlowConfig": {
2261
- "type": "object",
2262
- "oneOf": [
2263
- {
2264
- "$ref": "#/components/schemas/ExternalIntegrationCustomActionConfig"
2265
- },
2266
- {
2267
- "$ref": "#/components/schemas/SandboxCustomActionConfig"
2268
- }
2269
- ],
2270
- "discriminator": {
2271
- "propertyName": "type",
2272
- "mapping": {
2273
- "external_integration": "#/components/schemas/ExternalIntegrationCustomActionConfig",
2274
- "sandbox": "#/components/schemas/SandboxCustomActionConfig"
2275
- }
2276
- }
2277
- },
2278
- "ExternalProductCatalogComponent": {
2279
- "type": "object",
2280
- "required": [
2281
- "component_type",
2282
- "configuration"
2283
- ],
2284
- "properties": {
2285
- "component_type": {
2286
- "type": "string",
2287
- "enum": [
2288
- "EXTERNAL_PRODUCT_CATALOG"
2289
- ]
2290
- },
2291
- "configuration": {
2292
- "$ref": "#/components/schemas/ExternalProductCatalogConfig"
2293
- }
2294
- }
2295
- },
2296
- "ExternalProductCatalogConfig": {
2297
- "type": "object",
2298
- "properties": {
2299
- "hooks": {
2300
- "type": "array",
2301
- "items": {
2302
- "type": "object",
2303
- "discriminator": {
2304
- "propertyName": "type",
2305
- "mapping": {
2306
- "products": "#/components/schemas/ExternalProductCatalogHookProducts",
2307
- "product-recommendations": "#/components/schemas/ExternalProductCatalogHookProductRecommendations"
2308
- }
2309
- },
2310
- "oneOf": [
2311
- {
2312
- "$ref": "#/components/schemas/ExternalProductCatalogHookProducts"
2313
- },
2314
- {
2315
- "$ref": "#/components/schemas/ExternalProductCatalogHookProductRecommendations"
2316
- }
2317
- ]
2318
- }
2319
- }
2320
- },
2321
- "additionalProperties": false
2322
- },
2323
- "ExternalProductCatalogHookProducts": {
2324
- "description": "Hook for getting products from an external catalog. This hook makes a call to retrieve product data from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.\n",
2325
- "type": "object",
2326
- "properties": {
2327
- "id": {
2328
- "type": "string",
2329
- "pattern": "^[a-zA-Z0-9_-]+$",
2330
- "description": "Identifier of the hook. Should not change between updates."
2331
- },
2332
- "name": {
2333
- "$ref": "#/components/schemas/TranslatedString"
2334
- },
2335
- "type": {
2336
- "type": "string",
2337
- "enum": [
2338
- "products"
2339
- ]
2340
- },
2341
- "auth": {
2342
- "$ref": "#/components/schemas/ExternalProductCatalogAuthBlock"
2343
- },
2344
- "call": {
2345
- "type": "object",
2346
- "properties": {
2347
- "method": {
2348
- "type": "string",
2349
- "description": "HTTP method to use for the call",
2350
- "default": "GET"
2351
- },
2352
- "url": {
2353
- "type": "string",
2354
- "description": "URL to call. Supports variable interpolation."
2355
- },
2356
- "params": {
2357
- "type": "object",
2358
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2359
- "additionalProperties": {
2360
- "type": "string"
2361
- },
2362
- "default": {}
2363
- },
2364
- "headers": {
2365
- "type": "object",
2366
- "description": "Headers to use. Supports variable interpolation.",
2367
- "additionalProperties": {
2368
- "type": "string"
2369
- },
2370
- "default": {}
2371
- },
2372
- "body": {
2373
- "type": "object",
2374
- "description": "JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).",
2375
- "additionalProperties": true
2376
- }
2377
- },
2378
- "required": [
2379
- "url"
2380
- ],
2381
- "additionalProperties": false
2382
- }
2383
- },
2384
- "required": [
2385
- "type",
2386
- "call",
2387
- "id"
2388
- ],
2389
- "additionalProperties": false
2390
- },
2391
- "ExternalProductCatalogHookProductRecommendations": {
2392
- "description": "Hook for getting product recommendations from an external catalog. This hook makes a call to retrieve product recommendations from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.\n",
2393
- "type": "object",
2394
- "properties": {
2395
- "id": {
2396
- "type": "string",
2397
- "pattern": "^[a-zA-Z0-9_-]+$",
2398
- "description": "Identifier of the hook. Should not change between updates."
2399
- },
2400
- "name": {
2401
- "$ref": "#/components/schemas/TranslatedString"
2402
- },
2403
- "type": {
2404
- "type": "string",
2405
- "enum": [
2406
- "product-recommendations"
2407
- ]
2408
- },
2409
- "auth": {
2410
- "$ref": "#/components/schemas/ExternalProductCatalogAuthBlock"
2411
- },
2412
- "call": {
2413
- "type": "object",
2414
- "properties": {
2415
- "method": {
2416
- "type": "string",
2417
- "description": "HTTP method to use for the call",
2418
- "default": "GET"
2419
- },
2420
- "url": {
2421
- "type": "string",
2422
- "description": "URL to call. Supports variable interpolation."
2423
- },
2424
- "params": {
2425
- "type": "object",
2426
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2427
- "additionalProperties": {
2428
- "type": "string"
2429
- },
2430
- "default": {}
2431
- },
2432
- "headers": {
2433
- "type": "object",
2434
- "description": "Headers to use. Supports variable interpolation.",
2435
- "additionalProperties": {
2436
- "type": "string"
2437
- },
2438
- "default": {}
2439
- },
2440
- "body": {
2441
- "type": "object",
2442
- "description": "JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).",
2443
- "additionalProperties": true
2444
- }
2445
- },
2446
- "required": [
2447
- "url"
2448
- ],
2449
- "additionalProperties": false
2450
- }
2451
- },
2452
- "required": [
2453
- "type",
2454
- "call",
2455
- "id"
2456
- ],
2457
- "additionalProperties": false
2458
- },
2459
- "PortalExtensionComponent": {
2460
- "type": "object",
2461
- "required": [
2462
- "component_type",
2463
- "configuration"
2464
- ],
2465
- "properties": {
2466
- "component_type": {
2467
- "type": "string",
2468
- "enum": [
2469
- "PORTAL_EXTENSION"
2470
- ]
2471
- },
2472
- "configuration": {
2473
- "$ref": "#/components/schemas/PortalExtensionConfig"
2474
- }
2475
- }
2476
- },
2477
- "PortalExtensionConfig": {
2478
- "type": "object",
2479
- "properties": {
2480
- "hooks": {
2481
- "type": "array",
2482
- "items": {
2483
- "type": "object",
2484
- "discriminator": {
2485
- "propertyName": "type",
2486
- "mapping": {
2487
- "registrationIdentifiersCheck": "#/components/schemas/PortalExtensionHookRegistrationIdentifiersCheck",
2488
- "contractIdentification": "#/components/schemas/PortalExtensionHookContractIdentification",
2489
- "priceDataRetrieval": "#/components/schemas/PortalExtensionHookPriceDataRetrieval",
2490
- "consumptionDataRetrieval": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval",
2491
- "costDataRetrieval": "#/components/schemas/PortalExtensionHookCostDataRetrieval",
2492
- "meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
2493
- }
2494
- },
2495
- "oneOf": [
2496
- {
2497
- "$ref": "#/components/schemas/PortalExtensionHookRegistrationIdentifiersCheck"
2498
- },
2499
- {
2500
- "$ref": "#/components/schemas/PortalExtensionHookContractIdentification"
2501
- },
2502
- {
2503
- "$ref": "#/components/schemas/PortalExtensionHookPriceDataRetrieval"
2504
- },
2505
- {
2506
- "$ref": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval"
2507
- },
2508
- {
2509
- "$ref": "#/components/schemas/PortalExtensionHookCostDataRetrieval"
2510
- },
2511
- {
2512
- "$ref": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
2513
- }
2514
- ]
2515
- }
2516
- },
2517
- "links": {
2518
- "type": "array",
2519
- "items": {
2520
- "allOf": [
2521
- {
2522
- "$ref": "#/components/schemas/PortalExtensionSeamlessLink"
2523
- }
2524
- ]
2525
- }
2526
- }
2527
- },
2528
- "additionalProperties": false
2529
- },
2530
- "PortalExtensionHookRegistrationIdentifiersCheck": {
2531
- "description": "Hook that replaces the built-in registration identifiers check. This hook makes a POST call whenever a user is trying to register to find the corresponding contact. The expected response to the call is:\n - 200 with contact id if exactly one contact is found\n - 404 if no contact is found or more than contact is found\n",
2532
- "type": "object",
2533
- "properties": {
2534
- "id": {
2535
- "type": "string",
2536
- "pattern": "^[a-zA-Z0-9_-]+$",
2537
- "description": "Identifier of the hook. Should not change between updates."
2538
- },
2539
- "name": {
2540
- "$ref": "#/components/schemas/TranslatedString"
2541
- },
2542
- "type": {
2543
- "type": "string",
2544
- "enum": [
2545
- "registrationIdentifiersCheck"
2546
- ]
2547
- },
2548
- "auth": {
2549
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2550
- },
2551
- "call": {
2552
- "type": "object",
2553
- "properties": {
2554
- "method": {
2555
- "type": "string",
2556
- "description": "HTTP method to use for the call",
2557
- "default": "POST"
2558
- },
2559
- "url": {
2560
- "type": "string",
2561
- "description": "URL to call. Supports variable interpolation."
2562
- },
2563
- "params": {
2564
- "type": "object",
2565
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2566
- "additionalProperties": {
2567
- "type": "string"
2568
- },
2569
- "default": {}
2570
- },
2571
- "headers": {
2572
- "type": "object",
2573
- "description": "Headers to use. Supports variable interpolation.",
2574
- "additionalProperties": {
2575
- "type": "string"
2576
- },
2577
- "default": {}
2578
- },
2579
- "body": {
2580
- "type": "object",
2581
- "description": "Optional JSON body to use for the call. Defaults to object with all configured identifiers grouped by entity, e.g. `{\"contract\": {\"contract_name\": \"Name\"}}`. Supports variable interpolation."
2582
- },
2583
- "result": {
2584
- "type": "string",
2585
- "description": "Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation."
2586
- }
2587
- },
2588
- "required": [
2589
- "url",
2590
- "headers",
2591
- "result"
2592
- ],
2593
- "additionalProperties": false
2594
- },
2595
- "use_static_ips": {
2596
- "type": "boolean",
2597
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
2598
- "default": false
2599
- }
2600
- },
2601
- "required": [
2602
- "id",
2603
- "type",
2604
- "call"
2605
- ],
2606
- "additionalProperties": false
2607
- },
2608
- "PortalExtensionHookContractIdentification": {
2609
- "description": "Hook that replaces the built-in Contract identification for self-assignment. This hook involves an HTTP request whenever a user is trying to self-assign Contract(s).\nThe expected response http status code to the call is:\n - 200 if found\n - 404 if not found\n\nThe following assignment modes are supported:\n - `contracts`: We expect the response to contain Contract ids (customizable using `result` property).\n - `contact_to_contracts`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact as a Customer to the Contracts and (optionally) update the Contact attribute specified by `contact_relation_attribute` to add the matched Contact.\n - `contact_to_portal_user`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact to the Portal User. Portal User will be able to see all data including Contracts transitively.\n\nDefaults to `contact_to_contracts` for backwards compatibility. We recommend using `contact_to_portal_user` as it does not influence the data model of business entities.\n",
2610
- "type": "object",
2611
- "properties": {
2612
- "id": {
2613
- "type": "string",
2614
- "pattern": "^[a-zA-Z0-9_-]+$",
2615
- "description": "Identifier of the hook. Should not change between updates."
2616
- },
2617
- "name": {
2618
- "$ref": "#/components/schemas/TranslatedString"
2619
- },
2620
- "type": {
2621
- "type": "string",
2622
- "enum": [
2623
- "contractIdentification"
2624
- ]
2625
- },
2626
- "auth": {
2627
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2628
- },
2629
- "call": {
2630
- "type": "object",
2631
- "properties": {
2632
- "method": {
2633
- "type": "string",
2634
- "description": "HTTP method to use for the call",
2635
- "default": "POST"
2636
- },
2637
- "url": {
2638
- "type": "string",
2639
- "description": "URL to call. Supports variable interpolation."
2640
- },
2641
- "params": {
2642
- "type": "object",
2643
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2644
- "additionalProperties": {
2645
- "type": "string"
2646
- },
2647
- "default": {}
2648
- },
2649
- "headers": {
2650
- "type": "object",
2651
- "description": "Headers to use. Supports variable interpolation.",
2652
- "additionalProperties": {
2653
- "type": "string"
2654
- },
2655
- "default": {}
2656
- },
2657
- "body": {
2658
- "type": "object",
2659
- "description": "Optional JSON body to use for the call. Defaults to object with all configured identifiers grouped by entity, e.g. `{\"contract\": {\"contract_name\": \"Name\"}}`. Supports variable interpolation."
2660
- },
2661
- "result": {
2662
- "type": "string",
2663
- "description": "Contract or Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation."
2664
- }
2665
- },
2666
- "required": [
2667
- "url",
2668
- "headers"
2669
- ],
2670
- "additionalProperties": false
2671
- },
2672
- "assignment_mode": {
2673
- "type": "string",
2674
- "enum": [
2675
- "contracts",
2676
- "contact_to_contracts",
2677
- "contact_to_portal_user"
2678
- ],
2679
- "description": "Mode of contract assignment. See hook description for mode details.",
2680
- "default": "contact_to_contracts"
2681
- },
2682
- "contact_relation_attribute": {
2683
- "type": "string",
2684
- "description": "Name of the Contact attribute to update with the matched Contact ID when using `contact_to_contracts` mode. Must be a Contact relation attribute supporting multiple entities.",
2685
- "example": "represents_contact"
2686
- },
2687
- "explanation": {
2688
- "type": "object",
2689
- "properties": {
2690
- "en": {
2691
- "type": "string",
2692
- "description": "Explanation of the functionality shown to the end user.",
2693
- "example": "This process will give you access to the matching Contracts."
2694
- }
2695
- },
2696
- "additionalProperties": {
2697
- "type": "string",
2698
- "description": "Explanation of the functionality in language denoted by ISO 3166-1 alpha-2 code."
2699
- },
2700
- "required": [
2701
- "en"
2702
- ],
2703
- "description": "Explanation of the hook."
2704
- },
2705
- "use_static_ips": {
2706
- "type": "boolean",
2707
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
2708
- "default": false
2709
- }
2710
- },
2711
- "required": [
2712
- "id",
2713
- "type",
2714
- "call"
2715
- ],
2716
- "additionalProperties": false
2717
- },
2718
- "PortalExtensionHookMeterReadingPlausibilityCheck": {
2719
- "description": "Hook that checks the plausibility of meter readings before they are saved. This hook makes a POST call whenever a user is trying to save a meter reading. The expected response to the call is:\n - 200:\n If meter reading is plausible, the response should contain:\n - valid: true\n If meter reading is not plausible, the response should contain:\n - valid: false\n",
2720
- "type": "object",
2721
- "properties": {
2722
- "id": {
2723
- "type": "string",
2724
- "pattern": "^[a-zA-Z0-9_-]+$",
2725
- "description": "Identifier of the hook. Should not change between updates."
2726
- },
2727
- "name": {
2728
- "$ref": "#/components/schemas/TranslatedString"
2729
- },
2730
- "type": {
2731
- "type": "string",
2732
- "enum": [
2733
- "meterReadingPlausibilityCheck"
2734
- ]
2735
- },
2736
- "plausibility_mode": {
2737
- "type": "string",
2738
- "enum": [
2739
- "check",
2740
- "range"
2741
- ],
2742
- "default": "check",
2743
- "description": "Mode for plausibility check:\n- \"check\": Validates meter reading and returns valid: boolean (used during submission)\n- \"range\": Returns min/max allowed values for each counter for validation before submission\n"
2744
- },
2745
- "auth": {
2746
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2747
- },
2748
- "call": {
2749
- "type": "object",
2750
- "properties": {
2751
- "url": {
2752
- "type": "string",
2753
- "description": "URL to call. Supports variable interpolation."
2754
- },
2755
- "body": {
2756
- "type": "object",
2757
- "description": "JSON body to use for the call. Supports variable interpolation.",
2758
- "additionalProperties": true
2759
- },
2760
- "headers": {
2761
- "type": "object",
2762
- "description": "Headers to use. Supports variable interpolation.",
2763
- "additionalProperties": {
2764
- "type": "string"
2765
- },
2766
- "default": {}
2767
- }
2768
- },
2769
- "required": [
2770
- "url",
2771
- "headers",
2772
- "body"
2773
- ],
2774
- "additionalProperties": false
2775
- },
2776
- "resolved": {
2777
- "type": "object",
2778
- "description": "Response to the call",
2779
- "properties": {
2780
- "dataPath": {
2781
- "type": "string",
2782
- "description": "Optional path to an array in the response. If specified and the path points to an array,\nthe hook will map over each item using 'Item' variable for interpolation.\nRelevant only if plausibility_mode is \"range\".\n",
2783
- "example": "data.results"
2784
- },
2785
- "counter_identifiers": {
2786
- "description": "Counter identifier(s) used to match against the meter's counters.\nCan be a string (counter ID) or an object with counter properties.\nThe backend resolves this to meter_counter_id in the final response.\nRelevant only if plausibility_mode is \"range\".\n",
2787
- "type": "object",
2788
- "additionalProperties": {
2789
- "type": "string"
2790
- },
2791
- "example": {
2792
- "obis_code": "{{Item.obis}}"
2793
- }
2794
- },
2795
- "valid": {
2796
- "type": "string",
2797
- "description": "Indicate whether the meter reading is plausible. Relevant only if plausibility_mode is \"check\".",
2798
- "example": "{{CallResponse.data.valid}}"
2799
- },
2800
- "upper_limit": {
2801
- "type": "string",
2802
- "description": "Upper allowed limit of the meter reading",
2803
- "example": "{{CallResponse.data.upper_limit}}"
2804
- },
2805
- "lower_limit": {
2806
- "type": "string",
2807
- "description": "Lower allowed limit of the meter reading",
2808
- "example": "{{CallResponse.data.lower_limit}}"
2809
- }
2810
- },
2811
- "additionalProperties": false
2812
- },
2813
- "use_static_ips": {
2814
- "type": "boolean",
2815
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
2816
- "default": false
2817
- }
2818
- },
2819
- "required": [
2820
- "id",
2821
- "type",
2822
- "call",
2823
- "resolved"
2824
- ],
2825
- "additionalProperties": false
2826
- },
2827
- "PortalExtensionHookPriceDataRetrieval": {
2828
- "description": "Hook that will allow using the specified source as data for price visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:\n - 200 with the time series data\n",
2829
- "type": "object",
2830
- "properties": {
2831
- "id": {
2832
- "type": "string",
2833
- "pattern": "^[a-zA-Z0-9_-]+$",
2834
- "description": "Identifier of the hook. Should not change between updates."
2835
- },
2836
- "name": {
2837
- "$ref": "#/components/schemas/TranslatedString"
2838
- },
2839
- "type": {
2840
- "type": "string",
2841
- "enum": [
2842
- "priceDataRetrieval"
2843
- ]
2844
- },
2845
- "intervals": {
2846
- "type": "array",
2847
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
2848
- "items": {
2849
- "type": "string",
2850
- "enum": [
2851
- "PT15M",
2852
- "PT1H",
2853
- "P1D",
2854
- "P1M"
2855
- ]
2856
- }
2857
- },
2858
- "auth": {
2859
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2860
- },
2861
- "call": {
2862
- "type": "object",
2863
- "properties": {
2864
- "method": {
2865
- "type": "string",
2866
- "description": "HTTP method to use for the call",
2867
- "default": "GET"
2868
- },
2869
- "url": {
2870
- "type": "string",
2871
- "description": "URL to call. Supports variable interpolation."
2872
- },
2873
- "params": {
2874
- "type": "object",
2875
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2876
- "additionalProperties": {
2877
- "type": "string"
2878
- },
2879
- "default": {}
2880
- },
2881
- "headers": {
2882
- "type": "object",
2883
- "description": "Headers to use. Supports variable interpolation.",
2884
- "additionalProperties": {
2885
- "type": "string"
2886
- },
2887
- "default": {}
2888
- },
2889
- "body": {
2890
- "type": "object",
2891
- "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
2892
- "additionalProperties": true
2893
- }
2894
- },
2895
- "required": [
2896
- "url"
2897
- ],
2898
- "additionalProperties": false
2899
- },
2900
- "resolved": {
2901
- "type": "object",
2902
- "properties": {
2903
- "dataPath": {
2904
- "type": "string",
2905
- "description": "Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level."
2906
- }
2907
- },
2908
- "additionalProperties": false
2909
- },
2910
- "use_static_ips": {
2911
- "type": "boolean",
2912
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
2913
- "default": false
2914
- }
2915
- },
2916
- "required": [
2917
- "id",
2918
- "type",
2919
- "call"
2920
- ],
2921
- "additionalProperties": false
2922
- },
2923
- "PortalExtensionHookConsumptionDataRetrieval": {
2924
- "description": "Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:\n - 200 with the time series data\n",
2925
- "type": "object",
2926
- "properties": {
2927
- "id": {
2928
- "type": "string",
2929
- "pattern": "^[a-zA-Z0-9_-]+$",
2930
- "description": "Identifier of the hook. Should not change between updates."
2931
- },
2932
- "name": {
2933
- "$ref": "#/components/schemas/TranslatedString"
2934
- },
2935
- "type": {
2936
- "type": "string",
2937
- "enum": [
2938
- "consumptionDataRetrieval"
2939
- ]
2940
- },
2941
- "intervals": {
2942
- "type": "array",
2943
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
2944
- "items": {
2945
- "type": "string",
2946
- "enum": [
2947
- "PT15M",
2948
- "PT1H",
2949
- "P1D",
2950
- "P1M"
2951
- ]
2952
- }
2953
- },
2954
- "auth": {
2955
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2956
- },
2957
- "call": {
2958
- "type": "object",
2959
- "properties": {
2960
- "method": {
2961
- "type": "string",
2962
- "description": "HTTP method to use for the call",
2963
- "default": "GET"
2964
- },
2965
- "url": {
2966
- "type": "string",
2967
- "description": "URL to call. Supports variable interpolation."
2968
- },
2969
- "params": {
2970
- "type": "object",
2971
- "description": "Parameters to append to the URL. Supports variable interpolation.",
2972
- "additionalProperties": {
2973
- "type": "string"
2974
- },
2975
- "default": {}
2976
- },
2977
- "headers": {
2978
- "type": "object",
2979
- "description": "Headers to use. Supports variable interpolation.",
2980
- "additionalProperties": {
2981
- "type": "string"
2982
- },
2983
- "default": {}
2984
- },
2985
- "body": {
2986
- "type": "object",
2987
- "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
2988
- "additionalProperties": true
2989
- }
2990
- },
2991
- "required": [
2992
- "url"
2993
- ],
2994
- "additionalProperties": false
2995
- },
2996
- "resolved": {
2997
- "type": "object",
2998
- "properties": {
2999
- "dataPath": {
3000
- "type": "string",
3001
- "description": "Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level."
3002
- }
3003
- },
3004
- "additionalProperties": false
3005
- },
3006
- "use_static_ips": {
3007
- "type": "boolean",
3008
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
3009
- "default": false
3010
- }
3011
- },
3012
- "required": [
3013
- "id",
3014
- "type",
3015
- "call"
3016
- ],
3017
- "additionalProperties": false
3018
- },
3019
- "PortalExtensionHookCostDataRetrieval": {
3020
- "description": "Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:\n - 200 with the time series data\n",
3021
- "type": "object",
3022
- "properties": {
3023
- "id": {
3024
- "type": "string",
3025
- "pattern": "^[a-zA-Z0-9_-]+$",
3026
- "description": "Identifier of the hook. Should not change between updates."
3027
- },
3028
- "name": {
3029
- "$ref": "#/components/schemas/TranslatedString"
3030
- },
3031
- "type": {
3032
- "type": "string",
3033
- "enum": [
3034
- "costDataRetrieval"
3035
- ]
3036
- },
3037
- "intervals": {
3038
- "type": "array",
3039
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
3040
- "items": {
3041
- "type": "string",
3042
- "enum": [
3043
- "PT15M",
3044
- "PT1H",
3045
- "P1D",
3046
- "P1M"
3047
- ]
3048
- }
3049
- },
3050
- "auth": {
3051
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3052
- },
3053
- "call": {
3054
- "type": "object",
3055
- "properties": {
3056
- "method": {
3057
- "type": "string",
3058
- "description": "HTTP method to use for the call",
3059
- "default": "GET"
3060
- },
3061
- "url": {
3062
- "type": "string",
3063
- "description": "URL to call. Supports variable interpolation."
3064
- },
3065
- "params": {
3066
- "type": "object",
3067
- "description": "Parameters to append to the URL. Supports variable interpolation.",
3068
- "additionalProperties": {
3069
- "type": "string"
3070
- },
3071
- "default": {}
3072
- },
3073
- "headers": {
3074
- "type": "object",
3075
- "description": "Headers to use. Supports variable interpolation.",
3076
- "additionalProperties": {
3077
- "type": "string"
3078
- },
3079
- "default": {}
3080
- },
3081
- "body": {
3082
- "type": "object",
3083
- "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
3084
- "additionalProperties": true
3085
- }
3086
- },
3087
- "required": [
3088
- "url"
3089
- ],
3090
- "additionalProperties": false
3091
- },
3092
- "resolved": {
3093
- "type": "object",
3094
- "properties": {
3095
- "dataPath": {
3096
- "type": "string",
3097
- "description": "Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level."
3098
- }
3099
- },
3100
- "additionalProperties": false
3101
- },
3102
- "use_static_ips": {
3103
- "type": "boolean",
3104
- "description": "If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.",
3105
- "default": false
3106
- }
3107
- },
3108
- "required": [
3109
- "id",
3110
- "type",
3111
- "call"
3112
- ],
3113
- "additionalProperties": false
3114
- },
3115
- "PortalExtensionSeamlessLink": {
3116
- "type": "object",
3117
- "properties": {
3118
- "id": {
3119
- "type": "string",
3120
- "pattern": "^[a-zA-Z0-9_-]+$",
3121
- "description": "Identifier of the link. Should not change between updates."
3122
- },
3123
- "name": {
3124
- "$ref": "#/components/schemas/TranslatedString"
3125
- },
3126
- "description": {
3127
- "$ref": "#/components/schemas/TranslatedString"
3128
- },
3129
- "type": {
3130
- "type": "string",
3131
- "enum": [
3132
- "seamless"
3133
- ]
3134
- },
3135
- "condition": {
3136
- "type": "string",
3137
- "description": "Controls whether the link should be shown. Supports variable interpolation.",
3138
- "example": "{{Contact.customer_number | is_not_empty}}"
3139
- },
3140
- "auth": {
3141
- "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3142
- },
3143
- "redirect": {
3144
- "type": "object",
3145
- "properties": {
3146
- "url": {
3147
- "type": "string",
3148
- "description": "URL to redirect to. Supports variable interpolation."
3149
- },
3150
- "params": {
3151
- "type": "object",
3152
- "description": "Parameters to append to the URL. Supports variable interpolation.",
3153
- "additionalProperties": {
3154
- "type": "string"
3155
- },
3156
- "default": {}
3157
- }
3158
- },
3159
- "additionalProperties": false
3160
- }
3161
- },
3162
- "required": [
3163
- "id",
3164
- "name",
3165
- "type",
3166
- "redirect"
3167
- ],
3168
- "additionalProperties": false
3169
- },
3170
- "PortalExtensionAuthBlock": {
3171
- "type": "object",
3172
- "properties": {
3173
- "method": {
3174
- "type": "string",
3175
- "description": "HTTP method to use for authentication",
3176
- "default": "GET"
3177
- },
3178
- "url": {
3179
- "type": "string",
3180
- "description": "URL to use for authentication. Supports variable interpolation."
3181
- },
3182
- "params": {
3183
- "type": "object",
3184
- "description": "Parameters to append to the URL. Supports variable interpolation.",
3185
- "additionalProperties": {
3186
- "type": "string"
3187
- },
3188
- "default": {}
3189
- },
3190
- "headers": {
3191
- "type": "object",
3192
- "description": "Headers to use for authentication. Supports variable interpolation.",
3193
- "additionalProperties": {
3194
- "type": "string"
3195
- },
3196
- "default": {}
3197
- },
3198
- "body": {
3199
- "type": "object",
3200
- "description": "JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.",
3201
- "additionalProperties": true
3202
- },
3203
- "cache": {
3204
- "type": "object",
3205
- "properties": {
3206
- "key": {
3207
- "type": "string",
3208
- "description": "Key to use to identify the auth response. Supports interpolation.",
3209
- "example": "{{Options.api_key}}"
3210
- },
3211
- "ttl": {
3212
- "type": "string",
3213
- "description": "Time to live in seconds for the cache. Supports interpolation.",
3214
- "example": "{{AuthResponse.data.expires_in}}"
3215
- }
3216
- },
3217
- "required": [
3218
- "key",
3219
- "ttl"
3220
- ],
3221
- "additionalProperties": false
3222
- }
3223
- },
3224
- "required": [
3225
- "url"
3226
- ],
3227
- "additionalProperties": false
3228
- },
3229
- "ExternalProductCatalogAuthBlock": {
3230
- "type": "object",
3231
- "properties": {
3232
- "method": {
3233
- "type": "string",
3234
- "description": "HTTP method to use for authentication",
3235
- "default": "GET"
3236
- },
3237
- "url": {
3238
- "type": "string",
3239
- "description": "URL to use for authentication. Supports variable interpolation."
3240
- },
3241
- "params": {
3242
- "type": "object",
3243
- "description": "Parameters to append to the URL. Supports variable interpolation.",
3244
- "additionalProperties": {
3245
- "type": "string"
3246
- },
3247
- "default": {}
3248
- },
3249
- "headers": {
3250
- "type": "object",
3251
- "description": "Headers to use for authentication. Supports variable interpolation.",
3252
- "additionalProperties": {
3253
- "type": "string"
3254
- },
3255
- "default": {}
3256
- },
3257
- "body": {
3258
- "type": "object",
3259
- "description": "JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.",
3260
- "additionalProperties": true
3261
- }
3262
- },
3263
- "required": [
3264
- "url"
3265
- ],
3266
- "additionalProperties": false
3267
- },
3268
- "OverrideDevMode": {
3269
- "type": "object",
3270
- "description": "Override URL when app is in dev mode",
3271
- "properties": {
3272
- "override_url": {
3273
- "type": "string",
3274
- "description": "URL of the web component object in dev mode",
3275
- "example": "http://localhost:3000"
3276
- }
3277
- }
3278
- },
3279
- "JourneyBlockConfig": {
3280
- "type": "object",
3281
- "required": [
3282
- "component_url",
3283
- "component_tag"
3284
- ],
3285
- "properties": {
3286
- "override_dev_mode": {
3287
- "$ref": "#/components/schemas/OverrideDevMode"
3288
- },
3289
- "component_url": {
3290
- "type": "string",
3291
- "description": "URL of the web component object",
3292
- "example": "https://cdn.apps.com/123/v1.0.0/bundle.js",
3293
- "readOnly": true
3294
- },
3295
- "component_tag": {
3296
- "type": "string",
3297
- "description": "Custom element tag for the component"
3298
- },
3299
- "component_args": {
3300
- "type": "array",
3301
- "description": "Arguments to pass to the component",
3302
- "items": {
3303
- "$ref": "#/components/schemas/JourneyBlockComponentArgs"
3304
- }
3305
- },
3306
- "component_size": {
3307
- "type": "number",
3308
- "description": "Size of the bundle in bytes",
3309
- "readOnly": true
3310
- },
3311
- "component_mapping": {
3312
- "description": "Define data which is mapped to entity mapping ui blocks",
3313
- "type": "object",
3314
- "additionalProperties": {
3315
- "type": "string",
3316
- "enum": [
3317
- "string",
3318
- "boolean",
3319
- "date",
3320
- "datetime",
3321
- "link",
3322
- "number"
3323
- ]
3324
- }
3325
- }
3326
- }
3327
- },
3328
- "PortalBlockConfig": {
3329
- "type": "object"
3330
- },
3331
- "AppBridgeSurfaceConfig": {
3332
- "type": "object",
3333
- "properties": {
3334
- "app_url": {
3335
- "type": "string",
3336
- "description": "URL of the uploaded App Bridge App. This is the entrypoint for the app"
3337
- },
3338
- "zip_url": {
3339
- "type": "string",
3340
- "description": "URL of the uploaded zip file containing the app"
3341
- },
3342
- "override_url": {
3343
- "type": "string",
3344
- "description": "URL of the app in dev mode"
3345
- }
3346
- }
3347
- },
3348
- "PortalBlockSurfaceConfig": {
3349
- "allOf": [
3350
- {
3351
- "$ref": "#/components/schemas/AppBridgeSurfaceConfig"
3352
- },
3353
- {
3354
- "type": "object",
3355
- "properties": {
3356
- "section": {
3357
- "description": "Define which section of the portal this block can be placed in",
3358
- "type": "string",
3359
- "enum": [
3360
- "main",
3361
- "footer"
3362
- ]
3363
- }
3364
- }
3365
- }
3366
- ]
3367
- },
3368
- "JourneyBlockComponentArgs": {
3369
- "allOf": [
3370
- {
3371
- "type": "object",
3372
- "required": [
3373
- "key",
3374
- "label",
3375
- "type"
3376
- ],
3377
- "properties": {
3378
- "key": {
3379
- "type": "string",
3380
- "description": "Unique identifier for this component arg"
3381
- },
3382
- "type": {
3383
- "type": "string",
3384
- "enum": [
3385
- "text",
3386
- "boolean",
3387
- "enum"
3388
- ]
3389
- },
3390
- "required": {
3391
- "type": "boolean",
3392
- "description": "Flag to indicate if this option is required",
3393
- "default": false
3394
- },
3395
- "description": {
3396
- "allOf": [
3397
- {
3398
- "description": "Description of what this component arg does"
3399
- },
3400
- {
3401
- "$ref": "#/components/schemas/TranslatedString"
3402
- }
3403
- ]
3404
- },
3405
- "label": {
3406
- "allOf": [
3407
- {
3408
- "description": "Human-readable label for the component arg"
3409
- },
3410
- {
3411
- "$ref": "#/components/schemas/TranslatedString"
3412
- }
3413
- ]
3414
- }
3415
- }
3416
- },
3417
- {
3418
- "type": "object",
3419
- "discriminator": {
3420
- "propertyName": "type",
3421
- "mapping": {
3422
- "text": "#/components/schemas/TextArg",
3423
- "boolean": "#/components/schemas/BooleanArg",
3424
- "enum": "#/components/schemas/EnumArg"
3425
- }
3426
- },
3427
- "oneOf": [
3428
- {
3429
- "$ref": "#/components/schemas/TextArg"
3430
- },
3431
- {
3432
- "$ref": "#/components/schemas/BooleanArg"
3433
- },
3434
- {
3435
- "$ref": "#/components/schemas/EnumArg"
3436
- }
3437
- ]
3438
- }
3439
- ]
3440
- },
3441
- "TextArg": {
3442
- "type": "object",
3443
- "properties": {
3444
- "type": {
3445
- "type": "string",
3446
- "enum": [
3447
- "text"
3448
- ]
3449
- }
3450
- }
3451
- },
3452
- "BooleanArg": {
3453
- "type": "object",
3454
- "properties": {
3455
- "type": {
3456
- "type": "string",
3457
- "enum": [
3458
- "boolean"
3459
- ]
3460
- }
3461
- }
3462
- },
3463
- "EnumArg": {
3464
- "type": "object",
3465
- "required": [
3466
- "options"
3467
- ],
3468
- "properties": {
3469
- "type": {
3470
- "type": "string",
3471
- "enum": [
3472
- "enum"
3473
- ]
3474
- },
3475
- "isMulti": {
3476
- "type": "boolean",
3477
- "description": "If true, allows selection of multiple values",
3478
- "default": false
3479
- },
3480
- "options": {
3481
- "type": "array",
3482
- "description": "List of options for enum type",
3483
- "minItems": 1,
3484
- "items": {
3485
- "type": "object",
3486
- "required": [
3487
- "id",
3488
- "label"
3489
- ],
3490
- "properties": {
3491
- "id": {
3492
- "type": "string",
3493
- "description": "Unique identifier for the option"
3494
- },
3495
- "label": {
3496
- "allOf": [
3497
- {
3498
- "description": "Display label for the option"
3499
- },
3500
- {
3501
- "$ref": "#/components/schemas/TranslatedString"
3502
- }
3503
- ]
3504
- }
3505
- }
3506
- }
3507
- }
3508
- }
3509
- },
3510
- "BillingFrequency": {
3511
- "type": "string",
3512
- "enum": [
3513
- "MONTHLY",
3514
- "QUARTERLY",
3515
- "YEARLY",
3516
- "CUSTOM"
3517
- ],
3518
- "description": "How often the subscription is billed"
3519
- },
3520
- "Pricing": {
3521
- "type": "object",
3522
- "properties": {
3523
- "pricing_type": {
3524
- "type": "string",
3525
- "enum": [
3526
- "FREE",
3527
- "SUBSCRIPTION",
3528
- "USAGE_BASED",
3529
- "ONE_TIME",
3530
- "CUSTOM",
3531
- "UNKNOWN"
3532
- ]
3533
- },
3534
- "billing_frequency": {
3535
- "$ref": "#/components/schemas/BillingFrequency"
3536
- }
3537
- }
3538
- },
3539
- "Audit": {
3540
- "type": "object",
3541
- "properties": {
3542
- "created_at": {
3543
- "type": "string",
3544
- "description": "Timestamp of the creation",
3545
- "readOnly": true
3546
- },
3547
- "created_by": {
3548
- "type": "string",
3549
- "description": "User ID of the creator",
3550
- "readOnly": true
3551
- },
3552
- "updated_at": {
3553
- "type": "string",
3554
- "description": "Timestamp of the last update",
3555
- "readOnly": true
3556
- },
3557
- "updated_by": {
3558
- "type": "string",
3559
- "description": "User ID of the last updater",
3560
- "readOnly": true
3561
- }
3562
- }
3563
- },
3564
- "Review": {
3565
- "type": "object",
3566
- "properties": {
3567
- "version": {
3568
- "type": "string",
3569
- "description": "Version of the app that is under review",
3570
- "readOnly": true
3571
- },
3572
- "review_status": {
3573
- "type": "string",
3574
- "enum": [
3575
- "approved",
3576
- "rejected",
3577
- "pending"
3578
- ],
3579
- "description": "Status of the review"
3580
- },
3581
- "requested_at": {
3582
- "type": "string",
3583
- "description": "Timestamp of the review",
3584
- "readOnly": true
3585
- },
3586
- "requested_by": {
3587
- "type": "string",
3588
- "description": "User ID of the reviewer",
3589
- "readOnly": true
3590
- },
3591
- "technical_contact": {
3592
- "type": "string",
3593
- "description": "Email of the technical contact"
3594
- },
3595
- "marketing_contact": {
3596
- "type": "string",
3597
- "description": "Email of the marketing contact"
3598
- },
3599
- "demo_url": {
3600
- "type": "string",
3601
- "description": "URL of the demo"
3602
- }
3603
- }
3604
- },
3605
- "ConfigurationMetadata": {
3606
- "description": "Basic metadata about your app configuration which does not get versioned",
3607
- "type": "object",
3608
- "required": [
3609
- "name",
3610
- "description",
3611
- "latest_version",
3612
- "owner_org_id",
3613
- "app_id",
3614
- "versions"
3615
- ],
3616
- "properties": {
3617
- "app_id": {
3618
- "type": "string",
3619
- "readOnly": true
3620
- },
3621
- "name": {
3622
- "type": "string",
3623
- "description": "Name of the app"
3624
- },
3625
- "author": {
3626
- "$ref": "#/components/schemas/Author"
3627
- },
3628
- "dev_mode": {
3629
- "type": "boolean",
3630
- "description": "Flag to indicate if the app is in dev mode. If true, the app takes the override_url property of components into account."
3631
- },
3632
- "versions": {
3633
- "type": "array",
3634
- "items": {
3635
- "type": "string"
3636
- },
3637
- "description": "List of available versions of the app",
3638
- "readOnly": true
3639
- },
3640
- "public_versions": {
3641
- "type": "array",
3642
- "items": {
3643
- "type": "string"
3644
- },
3645
- "description": "List of available public versions of the app",
3646
- "readOnly": true
3647
- },
3648
- "support_email": {
3649
- "type": "string",
3650
- "description": "Email address for support requests"
3651
- },
3652
- "latest_version": {
3653
- "type": "string",
3654
- "description": "Latest version of the app",
3655
- "readOnly": true
3656
- },
3657
- "category": {
3658
- "type": "string",
3659
- "description": "Category of the app."
3660
- },
3661
- "icon_url": {
3662
- "type": "string",
3663
- "description": "URL of the app icon."
3664
- },
3665
- "documentation_url": {
3666
- "type": "string",
3667
- "description": "URL of the app documentation."
3668
- },
3669
- "description": {
3670
- "allOf": [
3671
- {
3672
- "description": "Markdown description of the app."
3673
- },
3674
- {
3675
- "$ref": "#/components/schemas/TranslatedString"
3676
- }
3677
- ]
3678
- },
3679
- "notifications": {
3680
- "allOf": [
3681
- {
3682
- "description": "Configuration for developer notifications"
3683
- },
3684
- {
3685
- "$ref": "#/components/schemas/NotificationConfig"
3686
- }
3687
- ]
3688
- },
3689
- "owner_org_id": {
3690
- "type": "string",
3691
- "description": "Organization ID of the app owner, required for private apps or sandbox accounts",
3692
- "readOnly": true
3693
- },
3694
- "internal": {
3695
- "type": "boolean",
3696
- "default": false,
3697
- "description": "Flag to indicate if the app is built by epilot.",
3698
- "readOnly": true
3699
- },
3700
- "pricing": {
3701
- "allOf": [
3702
- {
3703
- "description": "Pricing information for the app"
3704
- },
3705
- {
3706
- "$ref": "#/components/schemas/Pricing"
3707
- }
3708
- ]
3709
- },
3710
- "configuration_audit": {
3711
- "readOnly": true,
3712
- "allOf": [
3713
- {
3714
- "description": "Audit information for the app"
3715
- },
3716
- {
3717
- "$ref": "#/components/schemas/Audit"
3718
- }
3719
- ]
3720
- }
3721
- }
3722
- },
3723
- "ConfigurationVersion": {
3724
- "description": "Configuration data about your app which is versionable",
3725
- "type": "object",
3726
- "required": [
3727
- "version",
3728
- "components",
3729
- "app_id",
3730
- "version_audit",
3731
- "owner_org_id"
3732
- ],
3733
- "properties": {
3734
- "app_id": {
3735
- "type": "string",
3736
- "readOnly": true
3737
- },
3738
- "owner_org_id": {
3739
- "type": "string",
3740
- "description": "Organization ID of the app owner",
3741
- "readOnly": true
3742
- },
3743
- "components": {
3744
- "type": "array",
3745
- "items": {
3746
- "$ref": "#/components/schemas/BaseComponent"
3747
- },
3748
- "minItems": 0
3749
- },
3750
- "visibility": {
3751
- "type": "string",
3752
- "enum": [
3753
- "public",
3754
- "private"
3755
- ],
3756
- "description": "Visibility of the app version",
3757
- "default": "private",
3758
- "readOnly": true
3759
- },
3760
- "public": {
3761
- "type": "boolean",
3762
- "default": false,
3763
- "deprecated": true,
3764
- "description": "Flag to indicate if the app is public.",
3765
- "readOnly": true
3766
- },
3767
- "pending": {
3768
- "type": "boolean",
3769
- "default": false,
3770
- "description": "Flag to indicate if the app is pending for verification",
3771
- "readOnly": true
3772
- },
3773
- "version": {
3774
- "type": "string",
3775
- "description": "Version of the app that is installed",
3776
- "readOnly": true,
3777
- "maxLength": 10
3778
- },
3779
- "is_beta": {
3780
- "type": "boolean",
3781
- "description": "Flag to indicate if the app is in beta.",
3782
- "readOnly": true
3783
- },
3784
- "deprecated_at": {
3785
- "type": "string",
3786
- "description": "Timestamp when the app version is deprecated"
3787
- },
3788
- "changelog": {
3789
- "type": "string",
3790
- "description": "Changelog for the app version",
3791
- "maxLength": 250
3792
- },
3793
- "review_status": {
3794
- "type": "string",
3795
- "enum": [
3796
- "approved",
3797
- "rejected",
3798
- "pending"
3799
- ],
3800
- "description": "Status of the review process"
3801
- },
3802
- "role": {
3803
- "$ref": "#/components/schemas/Role"
3804
- },
3805
- "blueprint_ref": {
3806
- "$ref": "#/components/schemas/BlueprintRef"
3807
- },
3808
- "version_audit": {
3809
- "readOnly": true,
3810
- "allOf": [
3811
- {
3812
- "$ref": "#/components/schemas/Audit"
3813
- },
3814
- {
3815
- "type": "object",
3816
- "properties": {
3817
- "versioned_at": {
3818
- "type": "string",
3819
- "description": "Timestamp of the last version update",
3820
- "readOnly": true
3821
- },
3822
- "versioned_by": {
3823
- "type": "string",
3824
- "description": "User ID of the user who last updated the app",
3825
- "readOnly": true
3826
- }
3827
- }
3828
- }
3829
- ]
3830
- }
3831
- }
3832
- },
3833
- "Grants": {
3834
- "type": "array",
3835
- "description": "Required grants for the app in order to call APIs for the installing tenant",
3836
- "items": {
3837
- "type": "object",
3838
- "required": [
3839
- "action"
3840
- ],
3841
- "properties": {
3842
- "action": {
3843
- "type": "string",
3844
- "description": "The action the app can perform"
3845
- },
3846
- "resource": {
3847
- "type": "string",
3848
- "description": "The resource the app can access"
3849
- }
3850
- }
3851
- }
3852
- },
3853
- "BlueprintRef": {
3854
- "type": "object",
3855
- "properties": {
3856
- "manifest_id": {
3857
- "type": "string",
3858
- "description": "ID of the blueprint"
3859
- },
3860
- "job_id": {
3861
- "type": "string",
3862
- "description": "ID of the job that created the blueprint"
3863
- }
3864
- }
3865
- },
3866
- "Installation": {
3867
- "description": "Information about the installed app. Has configuration data of the installed version",
3868
- "type": "object",
3869
- "required": [
3870
- "app_id",
3871
- "installer_org_id",
3872
- "enabled",
3873
- "name",
3874
- "components",
3875
- "installed_version"
3876
- ],
3877
- "properties": {
3878
- "app_id": {
3879
- "type": "string",
3880
- "description": "ID of the app configuration",
3881
- "readOnly": true
3882
- },
3883
- "installer_org_id": {
3884
- "type": "string",
3885
- "description": "Unique identifier for the organization the app is installed in",
3886
- "readOnly": true
3887
- },
3888
- "owner_org_id": {
3889
- "type": "string",
3890
- "description": "Organization ID of the app creator",
3891
- "readOnly": true
3892
- },
3893
- "enabled": {
3894
- "readOnly": true,
3895
- "type": "boolean",
3896
- "default": true,
3897
- "description": "Flag to indicate if the app is enabled. Enabled is set to true when required option values are set."
3898
- },
3899
- "name": {
3900
- "type": "string",
3901
- "description": "Name of the app",
3902
- "readOnly": true
3903
- },
3904
- "option_values": {
3905
- "type": "array",
3906
- "items": {
3907
- "$ref": "#/components/schemas/OptionsRef"
3908
- },
3909
- "description": "Configuration values for the app components"
3910
- },
3911
- "components": {
3912
- "description": "List of component configurations for the installed version",
3913
- "type": "array",
3914
- "items": {
3915
- "$ref": "#/components/schemas/BaseComponent"
3916
- },
3917
- "minLength": 0,
3918
- "readOnly": true
3919
- },
3920
- "installed_version": {
3921
- "type": "string",
3922
- "description": "Version of the app that is installed",
3923
- "readOnly": true
3924
- },
3925
- "role": {
3926
- "type": "string",
3927
- "description": "The name of the role the app can use to access APIs"
3928
- },
3929
- "blueprint_ref": {
3930
- "$ref": "#/components/schemas/BlueprintRef"
3931
- },
3932
- "installation_audit": {
3933
- "readOnly": true,
3934
- "allOf": [
3935
- {
3936
- "description": "Audit information for the app"
3937
- },
3938
- {
3939
- "$ref": "#/components/schemas/Audit"
3940
- }
3941
- ]
3942
- },
3943
- "_manifest": {
3944
- "type": "array",
3945
- "description": "Manifest ID used to create/update the entity",
3946
- "items": {
3947
- "type": "string",
3948
- "format": "uuid",
3949
- "example": "123e4567-e89b-12d3-a456-426614174000"
3950
- }
3951
- }
3952
- }
3953
- },
3954
- "PublicConfiguration": {
3955
- "description": "Public configuration of the published app",
3956
- "type": "object",
3957
- "required": [
3958
- "version",
3959
- "components",
3960
- "owner_org_id",
3961
- "app_id",
3962
- "name"
3963
- ],
3964
- "properties": {
3965
- "app_id": {
3966
- "type": "string",
3967
- "description": "ID of the app configuration"
3968
- },
3969
- "support_email": {
3970
- "type": "string",
3971
- "description": "Email address for support requests"
3972
- },
3973
- "owner_org_id": {
3974
- "type": "string",
3975
- "description": "Organization ID of the app owner"
3976
- },
3977
- "name": {
3978
- "type": "string",
3979
- "description": "Name of the app"
3980
- },
3981
- "author": {
3982
- "$ref": "#/components/schemas/Author"
3983
- },
3984
- "dev_mode": {
3985
- "type": "boolean",
3986
- "description": "Flag to indicate if the app is in dev mode."
3987
- },
3988
- "category": {
3989
- "type": "string",
3990
- "description": "Category of the app."
3991
- },
3992
- "icon_url": {
3993
- "type": "string",
3994
- "description": "URL of the app icon."
3995
- },
3996
- "documentation_url": {
3997
- "type": "string",
3998
- "description": "URL of the app documentation."
3999
- },
4000
- "description": {
4001
- "allOf": [
4002
- {
4003
- "description": "Markdown description of the app."
4004
- },
4005
- {
4006
- "$ref": "#/components/schemas/TranslatedString"
4007
- }
4008
- ]
4009
- },
4010
- "pricing": {
4011
- "allOf": [
4012
- {
4013
- "description": "Pricing information for the app"
4014
- },
4015
- {
4016
- "$ref": "#/components/schemas/Pricing"
4017
- }
4018
- ]
4019
- },
4020
- "components": {
4021
- "type": "array",
4022
- "items": {
4023
- "$ref": "#/components/schemas/BaseComponent"
4024
- },
4025
- "minItems": 0
4026
- },
4027
- "is_beta": {
4028
- "type": "boolean",
4029
- "description": "Flag to indicate if the app is in beta.",
4030
- "readOnly": true
4031
- },
4032
- "deprecated_at": {
4033
- "type": "string",
4034
- "description": "Timestamp when the app version is deprecated"
4035
- },
4036
- "version": {
4037
- "type": "string",
4038
- "description": "Version of the app that is installed",
4039
- "readOnly": true
4040
- },
4041
- "role": {
4042
- "$ref": "#/components/schemas/Role"
4043
- },
4044
- "blueprint_ref": {
4045
- "$ref": "#/components/schemas/BlueprintRef"
4046
- },
4047
- "latest_version": {
4048
- "type": "string",
4049
- "description": "Latest version of the app",
4050
- "readOnly": true
4051
- },
4052
- "public": {
4053
- "type": "boolean",
4054
- "description": "Flag to indicate if the app is public.",
4055
- "readOnly": true
4056
- },
4057
- "versions": {
4058
- "type": "array",
4059
- "items": {
4060
- "$ref": "#/components/schemas/ConfigurationVersion"
4061
- },
4062
- "description": "List of available versions of the app"
4063
- }
4064
- }
4065
- },
4066
- "Configuration": {
4067
- "description": "Configuration of the published app",
4068
- "allOf": [
4069
- {
4070
- "$ref": "#/components/schemas/ConfigurationMetadata"
4071
- },
4072
- {
4073
- "$ref": "#/components/schemas/ConfigurationVersion"
4074
- }
4075
- ]
4076
- },
4077
- "TranslatedString": {
4078
- "type": "object",
4079
- "required": [
4080
- "de"
4081
- ],
4082
- "properties": {
4083
- "en": {
4084
- "type": "string",
4085
- "nullable": true,
4086
- "description": "English translation"
4087
- },
4088
- "de": {
4089
- "type": "string",
4090
- "description": "German translation"
4091
- }
4092
- }
4093
- },
4094
- "CallerIdentity": {
4095
- "type": "object",
4096
- "properties": {
4097
- "name": {
4098
- "description": "a human readable name of the caller (e.g. user name, token name or email address)",
4099
- "example": "manifest@epilot.cloud"
4100
- },
4101
- "org_id": {
4102
- "description": "epilot organization id",
4103
- "type": "string",
4104
- "example": "911690"
4105
- },
4106
- "user_id": {
4107
- "description": "epilot user id, when called by a user",
4108
- "type": "string",
4109
- "example": "11001045"
4110
- },
4111
- "token_id": {
4112
- "description": "token id, when called by API token",
4113
- "type": "string",
4114
- "example": "api_5ZugdRXasLfWBypHi93Fk"
4115
- }
4116
- },
4117
- "required": [
4118
- "org_id"
4119
- ]
4120
- },
4121
- "BatchEventRequest": {
4122
- "type": "object",
4123
- "required": [
4124
- "events"
4125
- ],
4126
- "properties": {
4127
- "events": {
4128
- "type": "array",
4129
- "items": {
4130
- "$ref": "#/components/schemas/AppEventData"
4131
- },
4132
- "maxItems": 100
4133
- }
4134
- }
4135
- },
4136
- "Actor": {
4137
- "type": "object",
4138
- "readOnly": true,
4139
- "required": [
4140
- "type"
4141
- ],
4142
- "properties": {
4143
- "org_id": {
4144
- "type": "string",
4145
- "description": "Organization ID of the actor"
4146
- },
4147
- "user_id": {
4148
- "type": "string",
4149
- "description": "User ID of the actor"
4150
- },
4151
- "type": {
4152
- "type": "string",
4153
- "description": "Type of the actor (e.g., user, system)",
4154
- "enum": [
4155
- "user",
4156
- "system"
4157
- ]
4158
- }
4159
- }
4160
- },
4161
- "AppEventData": {
4162
- "type": "object",
4163
- "required": [
4164
- "app_id",
4165
- "event_type",
4166
- "component_id",
4167
- "version",
4168
- "source",
4169
- "actor"
4170
- ],
4171
- "properties": {
4172
- "app_id": {
4173
- "type": "string",
4174
- "description": "ID of the app configuration"
4175
- },
4176
- "version": {
4177
- "type": "string",
4178
- "description": "Version of the app configuration"
4179
- },
4180
- "event_id": {
4181
- "type": "string",
4182
- "readOnly": true
4183
- },
4184
- "component_id": {
4185
- "type": "string"
4186
- },
4187
- "timestamp": {
4188
- "type": "string",
4189
- "readOnly": true
4190
- },
4191
- "correlation_id": {
4192
- "type": "string"
4193
- },
4194
- "event_type": {
4195
- "type": "string",
4196
- "enum": [
4197
- "ERROR",
4198
- "WARNING",
4199
- "INFO"
4200
- ]
4201
- },
4202
- "source": {
4203
- "$ref": "#/components/schemas/ComponentType"
4204
- },
4205
- "actor": {
4206
- "$ref": "#/components/schemas/Actor"
4207
- },
4208
- "details": {
4209
- "type": "object",
4210
- "description": "Details about the event",
4211
- "additionalProperties": true
4212
- }
4213
- }
4214
- },
4215
- "EventsQuery": {
4216
- "type": "object",
4217
- "properties": {
4218
- "time_range": {
4219
- "type": "object",
4220
- "properties": {
4221
- "start": {
4222
- "type": "string",
4223
- "format": "date-time",
4224
- "description": "Start time (ISO 8601)"
4225
- },
4226
- "end": {
4227
- "type": "string",
4228
- "format": "date-time",
4229
- "description": "End time (ISO 8601)"
4230
- },
4231
- "preset": {
4232
- "type": "string",
4233
- "enum": [
4234
- "1h",
4235
- "6h",
4236
- "24h",
4237
- "7d",
4238
- "30d"
4239
- ],
4240
- "description": "Predefined time range (alternative to start/end)"
4241
- }
4242
- },
4243
- "description": "Either use preset OR start+end"
4244
- },
4245
- "filters": {
4246
- "type": "object",
4247
- "properties": {
4248
- "source": {
4249
- "type": "array",
4250
- "items": {
4251
- "$ref": "#/components/schemas/ComponentType"
4252
- },
4253
- "description": "Filter by component types"
4254
- },
4255
- "component_id": {
4256
- "type": "array",
4257
- "items": {
4258
- "type": "string"
4259
- },
4260
- "description": "Filter by specific component IDs"
4261
- },
4262
- "event_type": {
4263
- "type": "array",
4264
- "items": {
4265
- "type": "string",
4266
- "enum": [
4267
- "ERROR",
4268
- "WARNING",
4269
- "INFO"
4270
- ]
4271
- },
4272
- "description": "Filter by event types"
4273
- },
4274
- "correlation_id": {
4275
- "type": "string",
4276
- "description": "Filter by correlation ID for tracing"
4277
- }
4278
- }
4279
- },
4280
- "aggregation": {
4281
- "type": "object",
4282
- "properties": {
4283
- "group_by": {
4284
- "type": "array",
4285
- "items": {
4286
- "type": "string",
4287
- "enum": [
4288
- "source",
4289
- "component_id",
4290
- "event_type",
4291
- "hour",
4292
- "day"
4293
- ]
4294
- },
4295
- "description": "Group results by specified fields"
4296
- },
4297
- "metrics": {
4298
- "type": "array",
4299
- "items": {
4300
- "type": "string",
4301
- "enum": [
4302
- "count",
4303
- "error_rate",
4304
- "unique_users"
4305
- ]
4306
- },
4307
- "default": [
4308
- "count"
4309
- ],
4310
- "description": "Metrics to calculate"
4311
- }
4312
- }
4313
- },
4314
- "pagination": {
4315
- "type": "object",
4316
- "properties": {
4317
- "page": {
4318
- "type": "integer",
4319
- "minimum": 1,
4320
- "default": 1
4321
- },
4322
- "page_size": {
4323
- "type": "integer",
4324
- "minimum": 1,
4325
- "maximum": 1000,
4326
- "default": 100
4327
- }
4328
- }
4329
- },
4330
- "sort": {
4331
- "type": "object",
4332
- "properties": {
4333
- "field": {
4334
- "type": "string",
4335
- "enum": [
4336
- "timestamp",
4337
- "event_type",
4338
- "component_id"
4339
- ],
4340
- "default": "timestamp"
4341
- },
4342
- "order": {
4343
- "type": "string",
4344
- "enum": [
4345
- "asc",
4346
- "desc"
4347
- ],
4348
- "default": "desc"
4349
- }
4350
- }
4351
- }
4352
- }
4353
- },
4354
- "EventsQueryResponse": {
4355
- "type": "object",
4356
- "properties": {
4357
- "query": {
4358
- "$ref": "#/components/schemas/EventsQuery"
4359
- },
4360
- "results": {
4361
- "oneOf": [
4362
- {
4363
- "$ref": "#/components/schemas/RawEvents"
4364
- },
4365
- {
4366
- "$ref": "#/components/schemas/AggregatedEvents"
4367
- }
4368
- ]
4369
- },
4370
- "pagination": {
4371
- "type": "object",
4372
- "properties": {
4373
- "page": {
4374
- "type": "integer"
4375
- },
4376
- "page_size": {
4377
- "type": "integer"
4378
- },
4379
- "total_items": {
4380
- "type": "integer"
4381
- },
4382
- "has_next": {
4383
- "type": "boolean"
4384
- }
4385
- }
4386
- }
4387
- }
4388
- },
4389
- "RawEvents": {
4390
- "type": "object",
4391
- "properties": {
4392
- "type": {
4393
- "type": "string",
4394
- "enum": [
4395
- "raw"
4396
- ]
4397
- },
4398
- "events": {
4399
- "type": "array",
4400
- "items": {
4401
- "$ref": "#/components/schemas/AppEventData"
4402
- }
4403
- }
4404
- }
4405
- },
4406
- "AggregatedEvents": {
4407
- "type": "object",
4408
- "properties": {
4409
- "type": {
4410
- "type": "string",
4411
- "enum": [
4412
- "aggregated"
4413
- ]
4414
- },
4415
- "groups": {
4416
- "type": "array",
4417
- "items": {
4418
- "type": "object",
4419
- "properties": {
4420
- "dimensions": {
4421
- "type": "object",
4422
- "description": "The grouped dimensions e.g., \"source\": \"CUSTOM_JOURNEY_BLOCK\", \"event_type\": \"ERROR\"",
4423
- "additionalProperties": true
4424
- },
4425
- "metrics": {
4426
- "type": "object",
4427
- "properties": {
4428
- "count": {
4429
- "type": "integer"
4430
- },
4431
- "error_rate": {
4432
- "type": "number"
4433
- }
4434
- }
4435
- }
4436
- }
4437
- }
4438
- }
4439
- }
4440
- }
4441
- }
4442
- }
4443
- }