@epilot/sdk 2.14.0 → 2.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/definitions/access-token.json +18 -0
  2. package/definitions/customer-portal-runtime.json +1 -1
  3. package/definitions/customer-portal.json +119 -0
  4. package/definitions/targeting-runtime.json +1 -1
  5. package/definitions/targeting.json +291 -0
  6. package/definitions/workflow-definition-runtime.json +1 -1
  7. package/definitions/workflow-definition.json +6 -2
  8. package/dist/access-token-7Y2MDFZH.cjs +7 -0
  9. package/dist/access-token-NWN7UBUP.js +7 -0
  10. package/dist/{access-token.d-CegaQmrK.d.cts → access-token.d-BhRUc8I-.d.cts} +38 -1
  11. package/dist/{access-token.d-CegaQmrK.d.ts → access-token.d-BhRUc8I-.d.ts} +38 -1
  12. package/dist/apis/access-token.cjs +6 -6
  13. package/dist/apis/access-token.d.cts +2 -2
  14. package/dist/apis/access-token.d.ts +2 -2
  15. package/dist/apis/access-token.js +1 -1
  16. package/dist/apis/address-suggestions.cjs +6 -6
  17. package/dist/apis/address-suggestions.js +1 -1
  18. package/dist/apis/address.cjs +6 -6
  19. package/dist/apis/address.js +1 -1
  20. package/dist/apis/ai-agents.cjs +6 -6
  21. package/dist/apis/ai-agents.js +1 -1
  22. package/dist/apis/app.cjs +6 -6
  23. package/dist/apis/app.js +1 -1
  24. package/dist/apis/audit-logs.cjs +6 -6
  25. package/dist/apis/audit-logs.js +1 -1
  26. package/dist/apis/automation.cjs +6 -6
  27. package/dist/apis/automation.js +1 -1
  28. package/dist/apis/billing.cjs +6 -6
  29. package/dist/apis/billing.js +1 -1
  30. package/dist/apis/blueprint-manifest.cjs +6 -6
  31. package/dist/apis/blueprint-manifest.js +1 -1
  32. package/dist/apis/calendar.cjs +6 -6
  33. package/dist/apis/calendar.js +1 -1
  34. package/dist/apis/configuration-hub.cjs +6 -6
  35. package/dist/apis/configuration-hub.js +1 -1
  36. package/dist/apis/consent.cjs +6 -6
  37. package/dist/apis/consent.js +1 -1
  38. package/dist/apis/customer-portal.cjs +8 -8
  39. package/dist/apis/customer-portal.d.cts +2 -2
  40. package/dist/apis/customer-portal.d.ts +2 -2
  41. package/dist/apis/customer-portal.js +2 -2
  42. package/dist/apis/dashboard.cjs +6 -6
  43. package/dist/apis/dashboard.js +1 -1
  44. package/dist/apis/data-governance.cjs +6 -6
  45. package/dist/apis/data-governance.js +1 -1
  46. package/dist/apis/deduplication.cjs +6 -6
  47. package/dist/apis/deduplication.js +1 -1
  48. package/dist/apis/design.cjs +6 -6
  49. package/dist/apis/design.js +1 -1
  50. package/dist/apis/document.cjs +6 -6
  51. package/dist/apis/document.js +1 -1
  52. package/dist/apis/email-settings.cjs +6 -6
  53. package/dist/apis/email-settings.js +1 -1
  54. package/dist/apis/email-template.cjs +6 -6
  55. package/dist/apis/email-template.js +1 -1
  56. package/dist/apis/entity-mapping.cjs +6 -6
  57. package/dist/apis/entity-mapping.js +1 -1
  58. package/dist/apis/entity.cjs +6 -6
  59. package/dist/apis/entity.js +1 -1
  60. package/dist/apis/environments.cjs +6 -6
  61. package/dist/apis/environments.js +1 -1
  62. package/dist/apis/event-catalog.cjs +6 -6
  63. package/dist/apis/event-catalog.js +1 -1
  64. package/dist/apis/file.cjs +6 -6
  65. package/dist/apis/file.js +1 -1
  66. package/dist/apis/iban.cjs +6 -6
  67. package/dist/apis/iban.js +1 -1
  68. package/dist/apis/integration-toolkit.cjs +6 -6
  69. package/dist/apis/integration-toolkit.js +1 -1
  70. package/dist/apis/journey.cjs +6 -6
  71. package/dist/apis/journey.js +1 -1
  72. package/dist/apis/kanban.cjs +6 -6
  73. package/dist/apis/kanban.js +1 -1
  74. package/dist/apis/message.cjs +6 -6
  75. package/dist/apis/message.js +1 -1
  76. package/dist/apis/metering.cjs +6 -6
  77. package/dist/apis/metering.js +1 -1
  78. package/dist/apis/notes.cjs +6 -6
  79. package/dist/apis/notes.js +1 -1
  80. package/dist/apis/notification.cjs +6 -6
  81. package/dist/apis/notification.js +1 -1
  82. package/dist/apis/organization.cjs +6 -6
  83. package/dist/apis/organization.js +1 -1
  84. package/dist/apis/partner-directory.cjs +6 -6
  85. package/dist/apis/partner-directory.js +1 -1
  86. package/dist/apis/permissions.cjs +6 -6
  87. package/dist/apis/permissions.js +1 -1
  88. package/dist/apis/pricing-tier.cjs +6 -6
  89. package/dist/apis/pricing-tier.js +1 -1
  90. package/dist/apis/pricing.cjs +6 -6
  91. package/dist/apis/pricing.js +1 -1
  92. package/dist/apis/purpose.cjs +6 -6
  93. package/dist/apis/purpose.js +1 -1
  94. package/dist/apis/query.cjs +6 -6
  95. package/dist/apis/query.js +1 -1
  96. package/dist/apis/sandbox.cjs +6 -6
  97. package/dist/apis/sandbox.js +1 -1
  98. package/dist/apis/sharing.cjs +6 -6
  99. package/dist/apis/sharing.js +1 -1
  100. package/dist/apis/snapshot.cjs +6 -6
  101. package/dist/apis/snapshot.js +1 -1
  102. package/dist/apis/submission.cjs +6 -6
  103. package/dist/apis/submission.js +1 -1
  104. package/dist/apis/target.cjs +6 -6
  105. package/dist/apis/target.js +1 -1
  106. package/dist/apis/targeting.cjs +8 -8
  107. package/dist/apis/targeting.d.cts +2 -2
  108. package/dist/apis/targeting.d.ts +2 -2
  109. package/dist/apis/targeting.js +2 -2
  110. package/dist/apis/template-variables.cjs +6 -6
  111. package/dist/apis/template-variables.js +1 -1
  112. package/dist/apis/user.cjs +6 -6
  113. package/dist/apis/user.js +1 -1
  114. package/dist/apis/validation-rules.cjs +6 -6
  115. package/dist/apis/validation-rules.js +1 -1
  116. package/dist/apis/webhooks.cjs +6 -6
  117. package/dist/apis/webhooks.js +1 -1
  118. package/dist/apis/workflow-definition.cjs +8 -8
  119. package/dist/apis/workflow-definition.js +2 -2
  120. package/dist/apis/workflow.cjs +6 -6
  121. package/dist/apis/workflow.js +1 -1
  122. package/dist/{chunk-2FBNQV76.cjs → chunk-A3ILIWGC.cjs} +7 -7
  123. package/dist/chunk-ADX7IYB3.cjs +14 -0
  124. package/dist/{chunk-BFMY2X2J.cjs → chunk-DGLXRPNZ.cjs} +1 -1
  125. package/dist/{chunk-NUUEJRUH.js → chunk-PK76O2WO.js} +7 -7
  126. package/dist/chunk-TTU24M3D.js +14 -0
  127. package/dist/chunk-UH24GU2Z.js +14 -0
  128. package/dist/chunk-W3SPZ6V5.cjs +14 -0
  129. package/dist/{chunk-6HJ2Y7DZ.js → chunk-Y5YIU6PG.js} +1 -1
  130. package/dist/{customer-portal-PTVGKDUH.js → customer-portal-6WYH4LMT.js} +1 -1
  131. package/dist/{customer-portal-6I3G44I4.cjs → customer-portal-JZMXGNRO.cjs} +1 -1
  132. package/dist/{customer-portal-runtime-4ACQGDNY.cjs → customer-portal-runtime-H7XSAQ6G.cjs} +2 -2
  133. package/dist/{customer-portal-runtime-E4RI7NYM.js → customer-portal-runtime-JDDF3NWW.js} +1 -1
  134. package/dist/{customer-portal.d-Bpc-wk9K.d.cts → customer-portal.d-SlKyKhCa.d.cts} +197 -0
  135. package/dist/{customer-portal.d-Bpc-wk9K.d.ts → customer-portal.d-SlKyKhCa.d.ts} +197 -0
  136. package/dist/index.cjs +14 -14
  137. package/dist/index.d.cts +3 -3
  138. package/dist/index.d.ts +3 -3
  139. package/dist/index.js +4 -4
  140. package/dist/js-yaml-DLCVPJ7G.js +0 -0
  141. package/dist/targeting-A2X6X7BF.js +7 -0
  142. package/dist/targeting-CSGKITGV.cjs +7 -0
  143. package/dist/{targeting-runtime-X3DQ527N.cjs → targeting-runtime-HWL6PLJF.cjs} +2 -2
  144. package/dist/{targeting-runtime-QI7322HB.js → targeting-runtime-L5RGDNSH.js} +1 -1
  145. package/dist/{targeting.d-Bq3onSes.d.cts → targeting.d-DaK3kwZg.d.cts} +286 -1
  146. package/dist/{targeting.d-Bq3onSes.d.ts → targeting.d-DaK3kwZg.d.ts} +286 -1
  147. package/dist/workflow-definition-MSO4JDA3.js +7 -0
  148. package/dist/workflow-definition-XTWO4RMY.cjs +7 -0
  149. package/dist/{workflow-definition-runtime-2HQS3RPK.cjs → workflow-definition-runtime-DYKGFYQE.cjs} +2 -2
  150. package/dist/{workflow-definition-runtime-JUPATIKU.js → workflow-definition-runtime-GYDTSAJL.js} +1 -1
  151. package/docs/access-token.md +21 -1
  152. package/docs/customer-portal.md +139 -0
  153. package/docs/targeting.md +192 -0
  154. package/docs/workflow-definition.md +1 -0
  155. package/package.json +11 -12
  156. package/definitions/focus-pocus-runtime.json +0 -1
  157. package/definitions/focus-pocus.json +0 -757
  158. package/dist/access-token-GD6REL4U.js +0 -7
  159. package/dist/access-token-NQ5BLMOW.cjs +0 -7
  160. package/dist/chunk-7ILTRJDQ.cjs +0 -14
  161. package/dist/chunk-H3NMCCSA.js +0 -14
  162. package/dist/chunk-OSPTVXY4.js +0 -14
  163. package/dist/chunk-QNSMYDKG.cjs +0 -14
  164. package/dist/targeting-4YMBBPDW.cjs +0 -7
  165. package/dist/targeting-VCENULF6.js +0 -7
  166. package/dist/workflow-definition-5P3PDJKU.cjs +0 -7
  167. package/dist/workflow-definition-XSSOSEGF.js +0 -7
@@ -597,6 +597,12 @@
597
597
  "description": "When true, the issued token may only perform read-only actions. Any action guarded by permissions that is not read-only (i.e. not a view/export/download action) is denied, regardless of the roles the token carries.",
598
598
  "example": true
599
599
  },
600
+ "Anonymize": {
601
+ "type": "boolean",
602
+ "default": false,
603
+ "description": "Forces PII anonymization on all entity data returned to this token. Cannot be disabled by the token bearer. See entity-api anonymized responses.",
604
+ "example": true
605
+ },
600
606
  "AccessTokenParameters": {
601
607
  "type": "object",
602
608
  "additionalProperties": false,
@@ -618,6 +624,9 @@
618
624
  },
619
625
  "read_only": {
620
626
  "$ref": "#/components/schemas/ReadOnly"
627
+ },
628
+ "anonymize": {
629
+ "$ref": "#/components/schemas/Anonymize"
621
630
  }
622
631
  },
623
632
  "required": [
@@ -692,6 +701,9 @@
692
701
  },
693
702
  "read_only": {
694
703
  "$ref": "#/components/schemas/ReadOnly"
704
+ },
705
+ "anonymize": {
706
+ "$ref": "#/components/schemas/Anonymize"
695
707
  }
696
708
  },
697
709
  "required": [
@@ -719,6 +731,9 @@
719
731
  },
720
732
  "read_only": {
721
733
  "$ref": "#/components/schemas/ReadOnly"
734
+ },
735
+ "anonymize": {
736
+ "$ref": "#/components/schemas/Anonymize"
722
737
  }
723
738
  },
724
739
  "required": [
@@ -782,6 +797,9 @@
782
797
  "read_only": {
783
798
  "$ref": "#/components/schemas/ReadOnly"
784
799
  },
800
+ "anonymize": {
801
+ "$ref": "#/components/schemas/Anonymize"
802
+ },
785
803
  "last_used": {
786
804
  "type": "string",
787
805
  "format": "date",
@@ -1 +1 @@
1
- {"s":"https://customer-portal-api.sls.epilot.io","o":[["upsertPortal","post","/v2/portal/portal",[["origin","q",true],["portal_id","q"]],1],["createUser","post","/v2/portal/public/user",[["origin","q",true]],1],["createUserV3","post","/v3/portal/public/user",[["portal_id","q"],["domain","q"]],1],["validateToken","post","/v2/portal/token/validate"],["revokeToken","post","/v2/portal/token/revoke",null,1],["getPortalConfigByDomain","get","/v2/portal/public/config",[["domain","q",true]]],["getPortalConfig","get","/v2/portal/config",[["origin","q"]]],["deletePortal","delete","/v2/portal/config",[["origin","q",true]]],["createExport","post","/v1/portal/exports",null,1],["getExport","get","/v1/portal/exports/{jobId}",[["jobId","p",true]]],["getPortalExtensions","get","/v2/portal/extensions",[["origin","q"]]],["getPublicPortalExtensionDetails","get","/v2/portal/public/extensions",[["org_id","q",true],["origin","q",true]]],["getPortalExtensionsV3","get","/v3/portal/extensions",[["portal_id","q",true]]],["getPublicPortalExtensionDetailsV3","get","/v3/portal/public/extensions",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getConsumption","get","/v2/portal/consumption",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["prepareVisualizationExport","post","/v2/portal/visualization:export",null,1],["getVisualizationMetadata","get","/v2/portal/visualization/metadata",[["app_id","q",true],["extensionId","q",true],["context_entities","q"]]],["getCosts","get","/v2/portal/costs",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getPrices","get","/v2/portal/prices",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getExternalLinks","get","/v2/portal/external-links",[["origin","q"],["contactId","q"]]],["getResolvedExternalLink","get","/v2/portal/resolve:external-link/{id}",[["id","p",true],["origin","q"],["contactId","q"]]],["getExternalLinksV3","get","/v3/portal/external-links",[["portal_id","q"],["contactId","q"]]],["getResolvedExternalLinkV3","get","/v3/portal/resolve:external-link/{id}",[["id","p",true],["portal_id","q"],["contactId","q"]]],["getResolvedSeamlessLink","get","/v2/portal/resolve:seamless-link",[["app_id","q"],["extension_id","q",true],["link_id","q",true],["context_entities","q"]]],["getPublicPortalConfig","get","/v2/portal/public/portal/config",[["org_id","q",true],["origin","q",true]]],["getOrgPortalConfig","get","/v2/portal/org/portal/config",[["origin","q",true]]],["getPublicPortalConfigV3","get","/v3/portal/public/portal/config",[["org_id","q",true],["portal_id","q",true]]],["getOrgPortalConfigV3","get","/v3/portal/org/portal/config",[["portal_id","q",true]]],["getAllPortalConfigs","get","/v2/portal/configs"],["upsertEmailTemplates","post","/v2/portal/email-templates",[["origin","q",true]],1],["getEmailTemplates","get","/v2/portal/email-templates",[["origin","q",true]]],["migrateEmailTemplateReferences","post","/v3/portal/email-templates:migrate-references",null,1],["listEmailTemplateReferences","post","/v3/portal/email-templates:list-references",null,1],["upsertEmailTemplatesByPortalId","post","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]],1],["getEmailTemplatesByPortalId","get","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]]],["getPublicPortalWidgets","get","/v2/portal/public-widgets",[["org_id","q",true],["origin","q",true]]],["getPublicPortalWidgetsV3","get","/v3/portal/public/widgets",[["org_id","q"],["portal_id","q"],["domain","q"]]],["upsertPortalWidget","post","/v2/portal/widgets",[["origin","q",true]],1],["getPortalWidgets","get","/v2/portal/widgets",[["origin","q"],["contract_id","q"]]],["getPortalWidgetsV3","get","/v3/portal/widgets",[["portal_id","q",true],["contract_id","q"]]],["upsertPortalWidgetV3","post","/v3/portal/widgets",[["portal_id","q",true]],1],["savePortalFilesV3","post","/v3/portal/portal/files",[["portal_id","q",true]],1],["replaceECPTemplateVariables","post","/v2/portal/replace-ecp-template-variables",null,1],["getOrganizationSettings","get","/v2/portal/org/settings"],["getSchemas","get","/v2/portal/schemas"],["getSchemasByDomain","get","/v2/portal/public/schemas",[["domain","q",true]]],["getPublicSchemasV3","get","/v3/portal/public/schemas",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getOrganizationSettingsByDomain","get","/v2/portal/public/org/settings",[["domain","q",true]]],["extraPermissionAttributes","get","/v2/portal/extra-permission-attributes"],["validateCaaRecords","post","/v2/portal/validate/caa-records",[["origin","q",true]]],["validateCaaRecordsV3","post","/v3/portal/validate/caa-records",[["portal_id","q",true]]],["getContact","get","/v2/portal/contact"],["updateContact","patch","/v2/portal/contact",null,1],["getECPContact","get","/v2/portal/ecp/contact",[["id","q",true]]],["checkContactExists","post","/v2/portal/public/contact/exists",[["origin","q",true]],1],["checkContactExistsV3","post","/v3/portal/public/contact/exists",[["portal_id","q"],["domain","q"]],1],["checkAccountExists","post","/v3/portal/public/account/exists",[["portal_id","q"],["domain","q"]],1],["getValidSecondaryAttributes","get","/v2/portal/contact/valid/secondary/attributes"],["getPortalUser","get","/v2/portal/user"],["updatePortalUser","patch","/v2/portal/user",null,1],["deletePortalUser","delete","/v2/portal/user"],["updatePortalUserEmail","put","/v2/portal/user/update/email",null,1],["changePortalUserPassword","put","/v2/portal/user/change/password",null,1],["resendConfirmationEmail","post","/v2/portal/user/resend/confirmation-email/{id}",[["id","p",true]]],["fetchPortalUsersByRelatedEntity","get","/v2/portal/users/by-related-entity",[["entity_id","q",true],["slug","q",true]]],["confirmUser","get","/v2/portal/user/confirm",[["confirmation_link_token","q",true],["use_redirect","q"]]],["confirmUserWithUserId","get","/v2/portal/user/confirm/{id}",[["origin","q",true],["id","p",true],["org_id","q",true]]],["userExists","get","/v2/portal/public/user/exists",[["email","q",true],["org_id","q",true],["origin","q"]]],["userExistsV3","get","/v3/portal/public/user/exists",[["email","q",true],["org_id","q"],["portal_id","q"],["domain","q"]]],["getRecipientsToNotifyOnAutomation","post","/v2/portal/recipients-to-notify",null,1],["configureDistribution","get","/v2/portal/configure-distribution",[["origin","q",true]]],["configureDistributionV3","get","/v3/portal/configure-distribution",[["portal_id","q",true]]],["getAllOrders","get","/v2/portal/order",[["from","q"],["size","q"]]],["postOrderAcceptance","post","/v2/portal/order/{id}/acceptance",[["id","p",true]],1],["getOrder","get","/v2/portal/order/{id}",[["id","p",true]]],["updateOrder","patch","/v2/portal/order/{id}",[["id","p",true]],1],["getAllOpportunities","get","/v2/portal/opportunity",[["from","q"],["size","q"]]],["getSearchableAttributesForOpportunities","get","/v2/portal/opportunities/searchable-attributes",[["from","q"],["size","q"]]],["getSearchResultsForOpportunities","post","/v2/portal/opportunities/search",[["from","q"],["size","q"]],1],["getOpportunity","get","/v2/portal/opportunities/{id}",[["id","p",true]]],["updateOpportunity","patch","/v2/portal/opportunities/{id}",[["id","p",true]],1],["getAllRequests","get","/v2/portal/request",[["from","q"],["size","q"]]],["getAllContracts","get","/v2/portal/contract",[["from","q"],["size","q"]]],["getContract","get","/v2/portal/contract/{id}",[["id","p",true]]],["updateContract","patch","/v2/portal/contract/{id}",[["id","p",true]],1],["addContractByIdentifiers","post","/v2/portal/contract/by-identifiers",null,1],["getEntityIdentifiers","get","/v2/portal/entity/identifiers/{slug}",[["slug","p",true]]],["getEntityActivityFeed","get","/v2/portal/entity/{slug}/{id}/activity",[["slug","p",true],["id","p",true],["after","q"],["before","q"],["from","q"],["size","q"],["type","q"],["include_relations","q"]]],["validateCadenceEntityEditRules","get","/v2/portal/{slug}/{id}:validateRule",[["slug","p",true],["id","p",true],["attribute","q"]]],["searchPaymentRelationsInEntities","get","/v2/portal/entities-by-payment/{id}",[["id","p",true]]],["createCustomEntityActivity","put","/v2/portal/entity/activity",[["entities","q",false,"form"]],1],["saveEntityFile","post","/v2/portal/entity/file",null,1],["deleteEntityFile","delete","/v2/portal/entity/file",null,1],["savePortalFiles","post","/v2/portal/portal/files",null,1],["getRegistrationIdentifiers","get","/v2/portal/registration/identifiers"],["getAllFiles","get","/v2/portal/user/files",[["from","q",true],["size","q",true],["entity_ids","q"],["file_types","q"]]],["getFileById","get","/v2/portal/user/file/{id}",[["id","p",true]]],["trackFileDownloaded","post","/v2/portal/user/file/{id}/downloaded",[["id","p",true]]],["getFilesCountByEntity","get","/v2/portal/user/files/count-by-entity"],["getBillingEvents","get","/v2/portal/billing/events",[["from","q"],["size","q"],["entity_id","q"],["event_type","q"],["paid","q"],["date_after","q"],["date_before","q"],["sort","q"]]],["getCustomerBalance","get","/v2/portal/billing/customers/balance"],["getBillingAccount","get","/v2/portal/billing/accounts/{id}"],["loginToPortalAsUser","post","/v2/portal/admin:login-as-user",null,1],["triggerEntityAccessEvent","post","/v2/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["origin","q",true]]],["triggerEntityAccessEventV3","post","/v3/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["portal_id","q"],["domain","q"]]],["getPortalUserEntity","post","/v2/portal/entity:get",null,1],["searchPortalUserEntities","post","/v2/portal/entity:search",null,1],["createPortalUserEntity","post","/v2/portal/entity/{slug}",[["slug","p",true]],1],["patchPortalUserEntity","patch","/v2/portal/entity/{slug}/{id}",[["slug","p",true],["id","p",true]],1],["canTriggerPortalFlow","post","/v2/portal/can-trigger-portal-flow",[["origin","q"],["portal_id","q",true]],1],["getAutomationContext","get","/v2/portal/automation-context",[["activity_id","q",true],["type","q",true]]],["updateWorkflowStepAsDone","put","/v2/portal/workflow/{workflow_id}/{step_id}:markDone",[["workflow_id","p",true],["step_id","p",true]]],["getEntityWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows",[["slug","p",true],["id","p",true]]],["uploadMeterReadingPhoto","post","/v2/portal/metering/reading/photo",null,1],["createMeterReading","post","/v2/portal/metering/reading",[["override_plausibility","q"]],1],["getAllowedMeterReadingRange","get","/v2/portal/metering/reading/allowed-range/{meter_id}",[["meter_id","p",true],["origin","q"],["timestamp","q"],["context_entities","q"]]],["getMeterReadings","post","/v2/portal/metering/readings",null,1],["getSSOProvider","get","/v2/portal/public/sso/providers/{provider_slug}",[["provider_slug","p",true],["org_id","q"],["origin","q"],["portal_id","q"],["domain","q"]]],["ssoLogin","post","/v2/portal/public/sso/login",[["origin","q",true],["org_id","q",true],["contact_id","q"]],1],["ssoLoginV3","post","/v3/portal/public/sso/login",[["portal_id","q"],["org_id","q"],["domain","q"],["contact_id","q"]],1],["ssoRedirect","post","/v2/portal/public/sso/redirect",[["web_uri","q",true]],1],["ssoCallback","post","/v2/portal/public/sso/callback",[["domain","q"]],1],["getPortalPage","get","/v2/portal/pages/{id}"],["updatePortalPage","put","/v2/portal/pages/{id}",null,1],["deletePortalPage","delete","/v2/portal/pages/{id}"],["getPortalPages","get","/v2/portal/pages",[["fields","q"],["filter","q"],["contract_id","q"],["context_entities","q"]]],["createPortalPage","post","/v2/portal/pages",null,1],["getPublicPages","get","/v2/portal/public/pages",[["domain","q",true],["fields","q"],["filter","q"]]],["interpolatePortalPages","post","/v2/portal/pages/interpolate",null,1],["getTriggeredJourney","get","/v2/portal/config/triggered-journeys/{trigger_name}",[["context_entities","q"]]],["getDefaultPages","get","/v2/portal/pages/default"],["createPortalPageBlock","post","/v2/portal/pages/{id}/blocks",null,1],["getPortalPageBlocks","get","/v2/portal/pages/{id}/blocks"],["getPortalPageBlock","get","/v2/portal/pages/{id}/blocks/{block_id}"],["updatePortalPageBlock","put","/v2/portal/pages/{id}/blocks/{block_id}",null,1],["deletePortalPageBlock","delete","/v2/portal/pages/{id}/blocks/{block_id}"],["getUserEntryPoint","get","/v2/portal/public/user/entry-point",[["email","q",true],["domain","q",true]]],["updateCampaignPortalBlockStatus","put","/v2/portal/campaign/{campaign_id}/entity:status",[["campaign_id","p",true]],1],["updateNotificationsStatus","put","/v2/portal/notifications/entity:status",null,1],["deRegisterMLoginUser","delete","/v2/portal/public/m-login/deregister/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]]],["notifyMLoginInterestChange","post","/v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]],1],["createPortalConfig","post","/v3/portal/config",null,1],["getPortalConfigV3","get","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["putPortalConfig","put","/v3/portal/config/{portal_id}",[["portal_id","p",true],["page_upsert_mode","q"]],1],["deletePortalConfig","delete","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["listAllPortalConfigs","get","/v3/portal/configs"],["swapPortalConfig","post","/v3/portal/config/swap",null,1],["clonePortalConfig","post","/v3/portal/config/clone",null,1],["invitePartner","post","/v3/portal/partner/invite",null,1],["listBusinessPartners","get","/v3/portal/partner/list"],["resendPartnerInvitation","post","/v3/portal/partner/{partner_id}/resend-invitation",[["partner_id","p",true]]],["revokePartner","delete","/v3/portal/partner/{partner_id}/revoke",[["partner_id","p",true]]],["disablePartner","post","/v3/portal/partner/{partner_id}/disable",[["partner_id","p",true]]],["enablePartner","post","/v3/portal/partner/{partner_id}/enable",[["partner_id","p",true]]],["verifyDns","post","/v3/portal/verify-dns",[["portal_id","q",true]]],["portalProxyExecute","post","/v2/portal/proxy/execute",null,1],["getMobileConfig","get","/v1/portal/mobile-config",[["portal_id","q",true],["raw","q"]]],["putMobileConfig","put","/v1/portal/mobile-config",[["portal_id","q",true]],1]],"v":"3.0.3","pp":{"/v2/portal/billing/accounts/{id}":[["id","p",true]],"/v2/portal/pages/{id}":[["id","p",true]],"/v2/portal/pages":[["domain","q",true]],"/v2/portal/config/triggered-journeys/{trigger_name}":[["trigger_name","p",true]],"/v2/portal/pages/{id}/blocks":[["id","p",true]],"/v2/portal/pages/{id}/blocks/{block_id}":[["id","p",true],["block_id","p",true]]}}
1
+ {"s":"https://customer-portal-api.sls.epilot.io","o":[["upsertPortal","post","/v2/portal/portal",[["origin","q",true],["portal_id","q"]],1],["createUser","post","/v2/portal/public/user",[["origin","q",true]],1],["createUserV3","post","/v3/portal/public/user",[["portal_id","q"],["domain","q"]],1],["validateToken","post","/v2/portal/token/validate"],["revokeToken","post","/v2/portal/token/revoke",null,1],["getPortalConfigByDomain","get","/v2/portal/public/config",[["domain","q",true]]],["getPortalConfig","get","/v2/portal/config",[["origin","q"]]],["deletePortal","delete","/v2/portal/config",[["origin","q",true]]],["createExport","post","/v1/portal/exports",null,1],["getExport","get","/v1/portal/exports/{jobId}",[["jobId","p",true]]],["getPortalExtensions","get","/v2/portal/extensions",[["origin","q"]]],["getPublicPortalExtensionDetails","get","/v2/portal/public/extensions",[["org_id","q",true],["origin","q",true]]],["getPortalExtensionsV3","get","/v3/portal/extensions",[["portal_id","q",true]]],["getPublicPortalExtensionDetailsV3","get","/v3/portal/public/extensions",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getConsumption","get","/v2/portal/consumption",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["prepareVisualizationExport","post","/v2/portal/visualization:export",null,1],["getVisualizationMetadata","get","/v2/portal/visualization/metadata",[["app_id","q",true],["extensionId","q",true],["context_entities","q"]]],["getCosts","get","/v2/portal/costs",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getPrices","get","/v2/portal/prices",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getExternalLinks","get","/v2/portal/external-links",[["origin","q"],["contactId","q"]]],["getResolvedExternalLink","get","/v2/portal/resolve:external-link/{id}",[["id","p",true],["origin","q"],["contactId","q"]]],["getExternalLinksV3","get","/v3/portal/external-links",[["portal_id","q"],["contactId","q"]]],["getResolvedExternalLinkV3","get","/v3/portal/resolve:external-link/{id}",[["id","p",true],["portal_id","q"],["contactId","q"]]],["getResolvedSeamlessLink","get","/v2/portal/resolve:seamless-link",[["app_id","q"],["extension_id","q",true],["link_id","q",true],["context_entities","q"]]],["getPublicPortalConfig","get","/v2/portal/public/portal/config",[["org_id","q",true],["origin","q",true]]],["getOrgPortalConfig","get","/v2/portal/org/portal/config",[["origin","q",true]]],["getPublicPortalConfigV3","get","/v3/portal/public/portal/config",[["org_id","q",true],["portal_id","q",true]]],["getOrgPortalConfigV3","get","/v3/portal/org/portal/config",[["portal_id","q",true]]],["getAllPortalConfigs","get","/v2/portal/configs"],["upsertEmailTemplates","post","/v2/portal/email-templates",[["origin","q",true]],1],["getEmailTemplates","get","/v2/portal/email-templates",[["origin","q",true]]],["migrateEmailTemplateReferences","post","/v3/portal/email-templates:migrate-references",null,1],["listEmailTemplateReferences","post","/v3/portal/email-templates:list-references",null,1],["upsertEmailTemplatesByPortalId","post","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]],1],["getEmailTemplatesByPortalId","get","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]]],["getPublicPortalWidgets","get","/v2/portal/public-widgets",[["org_id","q",true],["origin","q",true]]],["getPublicPortalWidgetsV3","get","/v3/portal/public/widgets",[["org_id","q"],["portal_id","q"],["domain","q"]]],["upsertPortalWidget","post","/v2/portal/widgets",[["origin","q",true]],1],["getPortalWidgets","get","/v2/portal/widgets",[["origin","q"],["contract_id","q"]]],["getPortalWidgetsV3","get","/v3/portal/widgets",[["portal_id","q",true],["contract_id","q"]]],["upsertPortalWidgetV3","post","/v3/portal/widgets",[["portal_id","q",true]],1],["savePortalFilesV3","post","/v3/portal/portal/files",[["portal_id","q",true]],1],["replaceECPTemplateVariables","post","/v2/portal/replace-ecp-template-variables",null,1],["getOrganizationSettings","get","/v2/portal/org/settings"],["getSchemas","get","/v2/portal/schemas"],["getSchemasByDomain","get","/v2/portal/public/schemas",[["domain","q",true]]],["getPublicSchemasV3","get","/v3/portal/public/schemas",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getOrganizationSettingsByDomain","get","/v2/portal/public/org/settings",[["domain","q",true]]],["extraPermissionAttributes","get","/v2/portal/extra-permission-attributes"],["validateCaaRecords","post","/v2/portal/validate/caa-records",[["origin","q",true]]],["validateCaaRecordsV3","post","/v3/portal/validate/caa-records",[["portal_id","q",true]]],["getContact","get","/v2/portal/contact"],["updateContact","patch","/v2/portal/contact",null,1],["getECPContact","get","/v2/portal/ecp/contact",[["id","q",true]]],["checkContactExists","post","/v2/portal/public/contact/exists",[["origin","q",true]],1],["checkContactExistsV3","post","/v3/portal/public/contact/exists",[["portal_id","q"],["domain","q"]],1],["checkAccountExists","post","/v3/portal/public/account/exists",[["portal_id","q"],["domain","q"]],1],["getValidSecondaryAttributes","get","/v2/portal/contact/valid/secondary/attributes"],["getPortalUser","get","/v2/portal/user"],["updatePortalUser","patch","/v2/portal/user",null,1],["deletePortalUser","delete","/v2/portal/user"],["updatePortalUserEmail","put","/v2/portal/user/update/email",null,1],["changePortalUserPassword","put","/v2/portal/user/change/password",null,1],["resendConfirmationEmail","post","/v2/portal/user/resend/confirmation-email/{id}",[["id","p",true]]],["fetchPortalUsersByRelatedEntity","get","/v2/portal/users/by-related-entity",[["entity_id","q",true],["slug","q",true]]],["confirmUser","get","/v2/portal/user/confirm",[["confirmation_link_token","q",true],["use_redirect","q"]]],["confirmUserWithUserId","get","/v2/portal/user/confirm/{id}",[["origin","q",true],["id","p",true],["org_id","q",true]]],["userExists","get","/v2/portal/public/user/exists",[["email","q",true],["org_id","q",true],["origin","q"]]],["userExistsV3","get","/v3/portal/public/user/exists",[["email","q",true],["org_id","q"],["portal_id","q"],["domain","q"]]],["getRecipientsToNotifyOnAutomation","post","/v2/portal/recipients-to-notify",null,1],["configureDistribution","get","/v2/portal/configure-distribution",[["origin","q",true]]],["configureDistributionV3","get","/v3/portal/configure-distribution",[["portal_id","q",true]]],["getAllOrders","get","/v2/portal/order",[["from","q"],["size","q"]]],["postOrderAcceptance","post","/v2/portal/order/{id}/acceptance",[["id","p",true]],1],["getOrder","get","/v2/portal/order/{id}",[["id","p",true]]],["updateOrder","patch","/v2/portal/order/{id}",[["id","p",true]],1],["getAllOpportunities","get","/v2/portal/opportunity",[["from","q"],["size","q"]]],["getSearchableAttributesForOpportunities","get","/v2/portal/opportunities/searchable-attributes",[["from","q"],["size","q"]]],["getSearchResultsForOpportunities","post","/v2/portal/opportunities/search",[["from","q"],["size","q"]],1],["getOpportunity","get","/v2/portal/opportunities/{id}",[["id","p",true]]],["updateOpportunity","patch","/v2/portal/opportunities/{id}",[["id","p",true]],1],["getAllRequests","get","/v2/portal/request",[["from","q"],["size","q"]]],["getAllContracts","get","/v2/portal/contract",[["from","q"],["size","q"]]],["getContract","get","/v2/portal/contract/{id}",[["id","p",true]]],["getContractWithTemplates","post","/v2/portal/contract/{id}",[["id","p",true]],1],["updateContract","patch","/v2/portal/contract/{id}",[["id","p",true]],1],["addContractByIdentifiers","post","/v2/portal/contract/by-identifiers",null,1],["getEntityIdentifiers","get","/v2/portal/entity/identifiers/{slug}",[["slug","p",true]]],["getEntityActivityFeed","get","/v2/portal/entity/{slug}/{id}/activity",[["slug","p",true],["id","p",true],["after","q"],["before","q"],["from","q"],["size","q"],["type","q"],["include_relations","q"]]],["validateCadenceEntityEditRules","get","/v2/portal/{slug}/{id}:validateRule",[["slug","p",true],["id","p",true],["attribute","q"]]],["searchPaymentRelationsInEntities","get","/v2/portal/entities-by-payment/{id}",[["id","p",true]]],["createCustomEntityActivity","put","/v2/portal/entity/activity",[["entities","q",false,"form"]],1],["saveEntityFile","post","/v2/portal/entity/file",null,1],["deleteEntityFile","delete","/v2/portal/entity/file",null,1],["savePortalFiles","post","/v2/portal/portal/files",null,1],["getRegistrationIdentifiers","get","/v2/portal/registration/identifiers"],["getAllFiles","get","/v2/portal/user/files",[["from","q",true],["size","q",true],["entity_ids","q"],["file_types","q"]]],["getFileById","get","/v2/portal/user/file/{id}",[["id","p",true]]],["trackFileDownloaded","post","/v2/portal/user/file/{id}/downloaded",[["id","p",true]]],["getFilesCountByEntity","get","/v2/portal/user/files/count-by-entity"],["getBillingEvents","get","/v2/portal/billing/events",[["from","q"],["size","q"],["entity_id","q"],["event_type","q"],["paid","q"],["date_after","q"],["date_before","q"],["sort","q"]]],["getCustomerBalance","get","/v2/portal/billing/customers/balance"],["getBillingAccount","get","/v2/portal/billing/accounts/{id}"],["loginToPortalAsUser","post","/v2/portal/admin:login-as-user",null,1],["triggerEntityAccessEvent","post","/v2/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["origin","q",true]]],["triggerEntityAccessEventV3","post","/v3/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["portal_id","q"],["domain","q"]]],["getPortalUserEntity","post","/v2/portal/entity:get",null,1],["searchPortalUserEntities","post","/v2/portal/entity:search",null,1],["createPortalUserEntity","post","/v2/portal/entity/{slug}",[["slug","p",true]],1],["patchPortalUserEntity","patch","/v2/portal/entity/{slug}/{id}",[["slug","p",true],["id","p",true]],1],["canTriggerPortalFlow","post","/v2/portal/can-trigger-portal-flow",[["origin","q"],["portal_id","q",true]],1],["getAutomationContext","get","/v2/portal/automation-context",[["activity_id","q",true],["type","q",true]]],["updateWorkflowStepAsDone","put","/v2/portal/workflow/{workflow_id}/{step_id}:markDone",[["workflow_id","p",true],["step_id","p",true]]],["getEntityWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows",[["slug","p",true],["id","p",true]]],["uploadMeterReadingPhoto","post","/v2/portal/metering/reading/photo",null,1],["createMeterReading","post","/v2/portal/metering/reading",[["override_plausibility","q"]],1],["getAllowedMeterReadingRange","get","/v2/portal/metering/reading/allowed-range/{meter_id}",[["meter_id","p",true],["origin","q"],["timestamp","q"],["context_entities","q"]]],["getMeterReadings","post","/v2/portal/metering/readings",null,1],["getSSOProvider","get","/v2/portal/public/sso/providers/{provider_slug}",[["provider_slug","p",true],["org_id","q"],["origin","q"],["portal_id","q"],["domain","q"]]],["ssoLogin","post","/v2/portal/public/sso/login",[["origin","q",true],["org_id","q",true],["contact_id","q"]],1],["ssoLoginV3","post","/v3/portal/public/sso/login",[["portal_id","q"],["org_id","q"],["domain","q"],["contact_id","q"]],1],["ssoRedirect","post","/v2/portal/public/sso/redirect",[["web_uri","q",true]],1],["ssoCallback","post","/v2/portal/public/sso/callback",[["domain","q"]],1],["getPortalPage","get","/v2/portal/pages/{id}"],["updatePortalPage","put","/v2/portal/pages/{id}",null,1],["deletePortalPage","delete","/v2/portal/pages/{id}"],["getPortalPages","get","/v2/portal/pages",[["fields","q"],["filter","q"],["contract_id","q"],["context_entities","q"]]],["createPortalPage","post","/v2/portal/pages",null,1],["getPublicPages","get","/v2/portal/public/pages",[["domain","q",true],["fields","q"],["filter","q"]]],["interpolatePortalPages","post","/v2/portal/pages/interpolate",null,1],["getTriggeredJourney","get","/v2/portal/config/triggered-journeys/{trigger_name}",[["context_entities","q"]]],["getDefaultPages","get","/v2/portal/pages/default"],["createPortalPageBlock","post","/v2/portal/pages/{id}/blocks",null,1],["getPortalPageBlocks","get","/v2/portal/pages/{id}/blocks"],["getPortalPageBlock","get","/v2/portal/pages/{id}/blocks/{block_id}"],["updatePortalPageBlock","put","/v2/portal/pages/{id}/blocks/{block_id}",null,1],["deletePortalPageBlock","delete","/v2/portal/pages/{id}/blocks/{block_id}"],["getUserEntryPoint","get","/v2/portal/public/user/entry-point",[["email","q",true],["domain","q",true]]],["updateCampaignPortalBlockStatus","put","/v2/portal/campaign/{campaign_id}/entity:status",[["campaign_id","p",true]],1],["updateNotificationsStatus","put","/v2/portal/notifications/entity:status",null,1],["deRegisterMLoginUser","delete","/v2/portal/public/m-login/deregister/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]]],["notifyMLoginInterestChange","post","/v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]],1],["createPortalConfig","post","/v3/portal/config",null,1],["getPortalConfigV3","get","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["putPortalConfig","put","/v3/portal/config/{portal_id}",[["portal_id","p",true],["page_upsert_mode","q"]],1],["deletePortalConfig","delete","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["listAllPortalConfigs","get","/v3/portal/configs"],["swapPortalConfig","post","/v3/portal/config/swap",null,1],["clonePortalConfig","post","/v3/portal/config/clone",null,1],["invitePartner","post","/v3/portal/partner/invite",null,1],["listBusinessPartners","get","/v3/portal/partner/list"],["resendPartnerInvitation","post","/v3/portal/partner/{partner_id}/resend-invitation",[["partner_id","p",true]]],["revokePartner","delete","/v3/portal/partner/{partner_id}/revoke",[["partner_id","p",true]]],["disablePartner","post","/v3/portal/partner/{partner_id}/disable",[["partner_id","p",true]]],["enablePartner","post","/v3/portal/partner/{partner_id}/enable",[["partner_id","p",true]]],["verifyDns","post","/v3/portal/verify-dns",[["portal_id","q",true]]],["portalProxyExecute","post","/v2/portal/proxy/execute",null,1],["getMobileConfig","get","/v1/portal/mobile-config",[["portal_id","q",true],["raw","q"]]],["putMobileConfig","put","/v1/portal/mobile-config",[["portal_id","q",true]],1]],"v":"3.0.3","pp":{"/v2/portal/billing/accounts/{id}":[["id","p",true]],"/v2/portal/pages/{id}":[["id","p",true]],"/v2/portal/pages":[["domain","q",true]],"/v2/portal/config/triggered-journeys/{trigger_name}":[["trigger_name","p",true]],"/v2/portal/pages/{id}/blocks":[["id","p",true]],"/v2/portal/pages/{id}/blocks/{block_id}":[["id","p",true],["block_id","p",true]]}}
@@ -5929,6 +5929,125 @@
5929
5929
  }
5930
5930
  }
5931
5931
  },
5932
+ "post": {
5933
+ "operationId": "getContractWithTemplates",
5934
+ "summary": "getContractWithTemplates",
5935
+ "description": "Get a contract by id, resolving the provided Handlebars templates against each related meter into templates_output. POST variant of getContract that accepts a request body; the GET remains as a fallback.",
5936
+ "tags": [
5937
+ "ECP"
5938
+ ],
5939
+ "security": [
5940
+ {
5941
+ "PortalAuth": []
5942
+ }
5943
+ ],
5944
+ "parameters": [
5945
+ {
5946
+ "in": "path",
5947
+ "name": "id",
5948
+ "schema": {
5949
+ "$ref": "#/components/schemas/EntityId"
5950
+ },
5951
+ "required": true,
5952
+ "description": "The ID of the contract"
5953
+ }
5954
+ ],
5955
+ "requestBody": {
5956
+ "required": false,
5957
+ "content": {
5958
+ "application/json": {
5959
+ "schema": {
5960
+ "type": "object",
5961
+ "properties": {
5962
+ "templates": {
5963
+ "type": "object",
5964
+ "additionalProperties": {
5965
+ "type": "string"
5966
+ },
5967
+ "description": "Map of content field name to Handlebars template string. Each template is resolved per related meter and returned as templates_output on the meter."
5968
+ }
5969
+ }
5970
+ }
5971
+ }
5972
+ }
5973
+ },
5974
+ "responses": {
5975
+ "200": {
5976
+ "description": "The requested contract returned successfully.",
5977
+ "content": {
5978
+ "application/json": {
5979
+ "schema": {
5980
+ "type": "object",
5981
+ "properties": {
5982
+ "entity": {
5983
+ "$ref": "#/components/schemas/Contract"
5984
+ },
5985
+ "orders": {
5986
+ "type": "array",
5987
+ "description": "The related orders of the requested contract",
5988
+ "items": {
5989
+ "$ref": "#/components/schemas/Order"
5990
+ }
5991
+ },
5992
+ "meters": {
5993
+ "type": "array",
5994
+ "description": "The related meters of the requested contract",
5995
+ "items": {
5996
+ "allOf": [
5997
+ {
5998
+ "$ref": "#/components/schemas/Meter"
5999
+ },
6000
+ {
6001
+ "$ref": "#/components/schemas/EntityTemplates"
6002
+ }
6003
+ ]
6004
+ }
6005
+ },
6006
+ "files": {
6007
+ "type": "array",
6008
+ "description": "The related files of the requested contract",
6009
+ "items": {
6010
+ "$ref": "#/components/schemas/File"
6011
+ }
6012
+ },
6013
+ "relations": {
6014
+ "type": "array",
6015
+ "description": "The related entities of the requested contract",
6016
+ "items": {
6017
+ "$ref": "#/components/schemas/EntityItem"
6018
+ }
6019
+ },
6020
+ "workflow": {
6021
+ "type": "array",
6022
+ "items": {
6023
+ "$ref": "#/components/schemas/WorkflowExecution"
6024
+ }
6025
+ },
6026
+ "journey_actions": {
6027
+ "type": "array",
6028
+ "items": {
6029
+ "$ref": "#/components/schemas/JourneyActions"
6030
+ }
6031
+ }
6032
+ }
6033
+ }
6034
+ }
6035
+ }
6036
+ },
6037
+ "401": {
6038
+ "$ref": "#/components/responses/Unauthorized"
6039
+ },
6040
+ "403": {
6041
+ "$ref": "#/components/responses/Forbidden"
6042
+ },
6043
+ "404": {
6044
+ "$ref": "#/components/responses/NotFound"
6045
+ },
6046
+ "500": {
6047
+ "$ref": "#/components/responses/InternalServerError"
6048
+ }
6049
+ }
6050
+ },
5932
6051
  "patch": {
5933
6052
  "operationId": "updateContract",
5934
6053
  "summary": "updateContract",
@@ -1 +1 @@
1
- {"s":"https://targeting.sls.epilot.io","o":[["changeCampaignStatus","post","/v1/campaign/{campaign_id}/status",[["CampaignIdPathParam"]]],["getCampaignJobStatus","get","/v1/campaign/{campaign_id}/job",[["CampaignIdPathParam"]]],["getCampaignPortals","get","/v1/campaign/{campaign_id}/portals",[["CampaignIdPathParam"]]],["retriggerCampaignAutomations","post","/v1/campaign/{campaign_id}/automations:retrigger",[["CampaignIdPathParam"]],1],["setupCampaign","post","/v1/campaign:setup",null,1],["matchCampaigns","post","/v1/campaign:match",null,1],["matchTargets","post","/v1/target:match",null,1],["getTargetQueries","post","/v1/target/queries",null,1],["createRecipient","post","/v1/campaign/{campaign_id}/recipient",[["CampaignIdPathParam"]],1],["updateRecipient","patch","/v1/campaign/{campaign_id}/recipient/{recipient_id}",[["CampaignIdPathParam"],["RecipientIdPathParam"]],1],["updateRecipientPortalStatus","patch","/v1/campaign/{campaign_id}/recipient/{recipient_id}/portal:status",[["CampaignIdPathParam"],["RecipientIdPathParam"]],1],["getRecipients","get","/v1/campaign/{campaign_id}/recipients",[["CampaignIdPathParam"],["limit","q"],["next","q"],["q","q"],["automation_status","q",false,"form",true],["portal_status","q"]]]],"v":"3.0.3","cp":{"CampaignIdPathParam":["campaign_id","p",true],"RecipientIdPathParam":["recipient_id","p",true]}}
1
+ {"s":"https://targeting.sls.epilot.io","o":[["changeCampaignStatus","post","/v1/campaign/{campaign_id}/status",[["CampaignIdPathParam"]]],["getCampaignJobStatus","get","/v1/campaign/{campaign_id}/job",[["CampaignIdPathParam"]]],["getCampaignPortals","get","/v1/campaign/{campaign_id}/portals",[["CampaignIdPathParam"]]],["retriggerCampaignAutomations","post","/v1/campaign/{campaign_id}/automations:retrigger",[["CampaignIdPathParam"]],1],["setupCampaign","post","/v1/campaign:setup",null,1],["matchCampaigns","post","/v1/campaign:match",null,1],["discoverCampaigns","post","/v1/campaign:discover",null,1],["matchTargets","post","/v1/target:match",null,1],["getTargetQueries","post","/v1/target/queries",null,1],["createRecipient","post","/v1/campaign/{campaign_id}/recipient",[["CampaignIdPathParam"]],1],["updateRecipient","patch","/v1/campaign/{campaign_id}/recipient/{recipient_id}",[["CampaignIdPathParam"],["RecipientIdPathParam"]],1],["updateRecipientPortalStatus","patch","/v1/campaign/{campaign_id}/recipient/{recipient_id}/portal:status",[["CampaignIdPathParam"],["RecipientIdPathParam"]],1],["updateRecipientEntityUiStatus","patch","/v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:status",[["CampaignIdPathParam"],["RecipientIdPathParam"]],1],["getRecipients","get","/v1/campaign/{campaign_id}/recipients",[["CampaignIdPathParam"],["limit","q"],["next","q"],["q","q"],["automation_status","q",false,"form",true],["portal_status","q"]]]],"v":"3.0.3","cp":{"CampaignIdPathParam":["campaign_id","p",true],"RecipientIdPathParam":["recipient_id","p",true]}}
@@ -243,6 +243,42 @@
243
243
  }
244
244
  }
245
245
  },
246
+ "/v1/campaign:discover": {
247
+ "post": {
248
+ "operationId": "discoverCampaigns",
249
+ "summary": "Discover Entity-UI Next Best Actions for an entity",
250
+ "description": "Given an entity, returns the Next Best Actions it should see on the Entity-UI channel.\n\nEnumerates the organization's **active** campaigns that carry a valid Entity-UI Next Best\nAction, live-matches each against the entity using the existing match engine, and returns\nthe matching NBAs priority-sorted (one per campaign).\n\nThis is a pure read: it writes nothing. An entity that matches no campaigns returns an\nempty list, not an error.\n",
251
+ "tags": [
252
+ "Campaign"
253
+ ],
254
+ "security": [
255
+ {
256
+ "EpilotAuth": []
257
+ }
258
+ ],
259
+ "requestBody": {
260
+ "required": true,
261
+ "content": {
262
+ "application/json": {
263
+ "schema": {
264
+ "$ref": "#/components/schemas/DiscoverCampaignsParams"
265
+ }
266
+ }
267
+ }
268
+ },
269
+ "responses": {
270
+ "200": {
271
+ "$ref": "#/components/responses/DiscoverCampaignsResponse"
272
+ },
273
+ "400": {
274
+ "$ref": "#/components/responses/ClientErrorResponse"
275
+ },
276
+ "500": {
277
+ "$ref": "#/components/responses/ServerErrorResponse"
278
+ }
279
+ }
280
+ }
281
+ },
246
282
  "/v1/target:match": {
247
283
  "post": {
248
284
  "operationId": "matchTargets",
@@ -450,6 +486,56 @@
450
486
  }
451
487
  }
452
488
  },
489
+ "/v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:status": {
490
+ "patch": {
491
+ "operationId": "updateRecipientEntityUiStatus",
492
+ "summary": "Update Entity-UI (Next Best Action) status for a campaign recipient",
493
+ "description": "Records a Next Best Action interaction for a recipient on the Entity-UI channel.\n\nUnlike the portal channel, an NBA recipient is created lazily: the first `seen` creates\nthe recipient record (and requires `entity_schema`). `seen` is idempotent — re-viewing an\nNBA that is already seen/clicked/dismissed is a no-op success and never regresses the status.\n\nStatus transition rules:\n- `seen`: lazily creates the recipient; a no-op success if a status already exists\n- From `seen`: can change to `clicked` or `dismissed`\n- From `clicked`: can change to `dismissed`\n- From `dismissed`: cannot be changed (final state)\n\n`dismissed` and `clicked` require an existing recipient (404 otherwise, since an NBA is\nborn at `seen`) and reject invalid transitions (409).\n\nThe entity_ui_status_updated_at timestamp is automatically set when the status changes.\n",
494
+ "tags": [
495
+ "Campaign Recipient"
496
+ ],
497
+ "security": [
498
+ {
499
+ "EpilotAuth": []
500
+ }
501
+ ],
502
+ "parameters": [
503
+ {
504
+ "$ref": "#/components/parameters/CampaignIdPathParam"
505
+ },
506
+ {
507
+ "$ref": "#/components/parameters/RecipientIdPathParam"
508
+ }
509
+ ],
510
+ "requestBody": {
511
+ "required": true,
512
+ "content": {
513
+ "application/json": {
514
+ "schema": {
515
+ "$ref": "#/components/schemas/UpdateEntityUiStatusRequest"
516
+ }
517
+ }
518
+ }
519
+ },
520
+ "responses": {
521
+ "200": {
522
+ "$ref": "#/components/responses/RecipientResponse"
523
+ },
524
+ "400": {
525
+ "$ref": "#/components/responses/ClientErrorResponse"
526
+ },
527
+ "404": {
528
+ "$ref": "#/components/responses/ClientErrorResponse"
529
+ },
530
+ "409": {
531
+ "$ref": "#/components/responses/ClientErrorResponse"
532
+ },
533
+ "500": {
534
+ "$ref": "#/components/responses/ServerErrorResponse"
535
+ }
536
+ }
537
+ }
538
+ },
453
539
  "/v1/campaign/{campaign_id}/recipients": {
454
540
  "get": {
455
541
  "operationId": "getRecipients",
@@ -918,6 +1004,122 @@
918
1004
  ],
919
1005
  "additionalProperties": false
920
1006
  },
1007
+ "NextBestAction": {
1008
+ "type": "object",
1009
+ "description": "A Next Best Action configured on a campaign's Entity-UI channel.\nThis is the canonical NBA contract shared by discovery (this API), authoring, and rendering.\nNBA content is single-language in v1; text fields may contain `{{placeholders}}` resolved at render time.\n",
1010
+ "properties": {
1011
+ "category": {
1012
+ "type": "string",
1013
+ "description": "Light category label shown above the title. Free-form text."
1014
+ },
1015
+ "icon": {
1016
+ "type": "object",
1017
+ "description": "Curated icon for the NBA.",
1018
+ "properties": {
1019
+ "name": {
1020
+ "type": "string",
1021
+ "description": "Icon name from \"@epilot360/icons\"."
1022
+ },
1023
+ "color": {
1024
+ "type": "string",
1025
+ "description": "Optional icon color."
1026
+ }
1027
+ },
1028
+ "required": [
1029
+ "name"
1030
+ ]
1031
+ },
1032
+ "title": {
1033
+ "type": "string",
1034
+ "description": "Bold action title. Required. Supports `{{placeholders}}`."
1035
+ },
1036
+ "body": {
1037
+ "type": "string",
1038
+ "description": "Optional description. Supports `{{placeholders}}` (incl. relative dates)."
1039
+ },
1040
+ "priority": {
1041
+ "type": "string",
1042
+ "enum": [
1043
+ "low",
1044
+ "medium",
1045
+ "high"
1046
+ ],
1047
+ "default": "medium",
1048
+ "description": "Display priority. NBAs are shown highest-priority first."
1049
+ },
1050
+ "is_dismissable": {
1051
+ "type": "boolean",
1052
+ "default": true,
1053
+ "description": "Whether the agent can dismiss the NBA."
1054
+ },
1055
+ "cta": {
1056
+ "type": "object",
1057
+ "description": "The NBA's single call-to-action.",
1058
+ "properties": {
1059
+ "type": {
1060
+ "type": "string",
1061
+ "enum": [
1062
+ "journey",
1063
+ "workflow",
1064
+ "url"
1065
+ ]
1066
+ },
1067
+ "target": {
1068
+ "type": "string",
1069
+ "description": "Journey id, workflow definition id, or URL, depending on `type`."
1070
+ },
1071
+ "label": {
1072
+ "type": "string",
1073
+ "description": "Optional CTA button label."
1074
+ },
1075
+ "context_params": {
1076
+ "type": "array",
1077
+ "description": "Journey context parameters (journey CTA only). Maps the journey's declared\ncontext parameters so the journey knows which entity it is about. Discovery\nreturns them verbatim; they are passed to the journey when it launches.\n",
1078
+ "items": {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "key": {
1082
+ "type": "string"
1083
+ },
1084
+ "value": {
1085
+ "type": "string"
1086
+ }
1087
+ },
1088
+ "required": [
1089
+ "key",
1090
+ "value"
1091
+ ]
1092
+ }
1093
+ }
1094
+ },
1095
+ "required": [
1096
+ "type",
1097
+ "target"
1098
+ ]
1099
+ }
1100
+ },
1101
+ "required": [
1102
+ "title",
1103
+ "cta"
1104
+ ]
1105
+ },
1106
+ "DiscoverCampaignsParams": {
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "entity_id": {
1110
+ "$ref": "#/components/schemas/BaseUUID"
1111
+ },
1112
+ "entity_schema": {
1113
+ "type": "string",
1114
+ "description": "The schema slug of the entity (e.g. \"contact\" or \"account\")."
1115
+ }
1116
+ },
1117
+ "required": [
1118
+ "entity_id",
1119
+ "entity_schema"
1120
+ ],
1121
+ "additionalProperties": false
1122
+ },
921
1123
  "MatchTargetParams": {
922
1124
  "type": "object",
923
1125
  "properties": {
@@ -1022,6 +1224,22 @@
1022
1224
  "clicked"
1023
1225
  ]
1024
1226
  },
1227
+ "EntityUiStatus": {
1228
+ "type": "string",
1229
+ "description": "Lifecycle status of a Next Best Action on the Entity-UI channel. Unlike the portal\nchannel there is no `sent` state: an NBA recipient is born at `seen`, the moment the\naction is first rendered to an agent.\n",
1230
+ "enum": [
1231
+ "seen",
1232
+ "dismissed",
1233
+ "clicked"
1234
+ ]
1235
+ },
1236
+ "Resolution": {
1237
+ "type": "string",
1238
+ "description": "Cross-channel resolution of a campaign for a recipient. Unlike the per-channel `*_status`\nfields (where `dismissed` is channel-local), a resolution suppresses the campaign on EVERY\nchannel — the 360 Entity-UI card and the portal teaser alike. Server-managed and read-only:\nnever sent by a client. Absence means unresolved.\n",
1239
+ "enum": [
1240
+ "accepted"
1241
+ ]
1242
+ },
1025
1243
  "Recipient": {
1026
1244
  "type": "object",
1027
1245
  "properties": {
@@ -1051,6 +1269,16 @@
1051
1269
  "type": "object",
1052
1270
  "additionalProperties": true
1053
1271
  },
1272
+ "entity_ui_status": {
1273
+ "$ref": "#/components/schemas/EntityUiStatus"
1274
+ },
1275
+ "entity_ui_status_updated_at": {
1276
+ "type": "string",
1277
+ "format": "date-time"
1278
+ },
1279
+ "resolution": {
1280
+ "$ref": "#/components/schemas/Resolution"
1281
+ },
1054
1282
  "updated_at": {
1055
1283
  "type": "string",
1056
1284
  "format": "date-time"
@@ -1216,6 +1444,22 @@
1216
1444
  "status"
1217
1445
  ]
1218
1446
  },
1447
+ "UpdateEntityUiStatusRequest": {
1448
+ "type": "object",
1449
+ "properties": {
1450
+ "status": {
1451
+ "$ref": "#/components/schemas/EntityUiStatus"
1452
+ },
1453
+ "entity_schema": {
1454
+ "type": "string",
1455
+ "description": "Schema slug of the recipient entity (e.g. \"contact\"). Required when recording the\nfirst `seen`, which lazily creates the recipient record; ignored on later transitions.\n"
1456
+ }
1457
+ },
1458
+ "required": [
1459
+ "status"
1460
+ ],
1461
+ "additionalProperties": false
1462
+ },
1219
1463
  "SetupCampaignRequest": {
1220
1464
  "description": "Discriminated by `type`. Each campaign variant has its own request shape;\nnew variants are added by introducing a new schema and extending the `oneOf` list.\n",
1221
1465
  "oneOf": [
@@ -1561,6 +1805,53 @@
1561
1805
  }
1562
1806
  }
1563
1807
  },
1808
+ "DiscoverCampaignsResponse": {
1809
+ "description": "The Next Best Actions the entity should see on the Entity-UI channel, priority-sorted.",
1810
+ "content": {
1811
+ "application/json": {
1812
+ "schema": {
1813
+ "type": "object",
1814
+ "properties": {
1815
+ "hits": {
1816
+ "type": "number",
1817
+ "description": "Number of matching NBAs."
1818
+ },
1819
+ "results": {
1820
+ "type": "array",
1821
+ "description": "Matching NBAs, sorted by priority (desc); one entry per campaign.",
1822
+ "items": {
1823
+ "type": "object",
1824
+ "properties": {
1825
+ "campaign_id": {
1826
+ "$ref": "#/components/schemas/BaseUUID"
1827
+ },
1828
+ "nba": {
1829
+ "$ref": "#/components/schemas/NextBestAction"
1830
+ },
1831
+ "status": {
1832
+ "allOf": [
1833
+ {
1834
+ "$ref": "#/components/schemas/EntityUiStatus"
1835
+ }
1836
+ ],
1837
+ "description": "The recipient's current Entity-UI status for this campaign, present only\nwhen a recipient record already exists (i.e. the entity has previously seen\nor clicked this NBA). Absent when the entity has not yet interacted with it.\nDismissed NBAs are filtered out server-side, so this is only ever `seen` or\n`clicked`. Lets the client skip a redundant `seen` call for NBAs already seen.\n"
1838
+ }
1839
+ },
1840
+ "required": [
1841
+ "campaign_id",
1842
+ "nba"
1843
+ ]
1844
+ }
1845
+ }
1846
+ },
1847
+ "required": [
1848
+ "hits",
1849
+ "results"
1850
+ ]
1851
+ }
1852
+ }
1853
+ }
1854
+ },
1564
1855
  "MatchTargetsResponse": {
1565
1856
  "description": "List of targets where the given entities are found.",
1566
1857
  "content": {