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