@epilot/sdk 2.4.4 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/definitions/app.json +137 -58
  2. package/definitions/customer-portal-runtime.json +1 -1
  3. package/definitions/customer-portal.json +496 -24
  4. package/definitions/entity.json +185 -8
  5. package/definitions/integration-toolkit-runtime.json +1 -1
  6. package/definitions/integration-toolkit.json +480 -4
  7. package/definitions/metering-runtime.json +1 -1
  8. package/definitions/metering.json +728 -64
  9. package/definitions/webhooks-runtime.json +1 -1
  10. package/definitions/webhooks.json +134 -4
  11. package/dist/apis/access-token.cjs +6 -6
  12. package/dist/apis/access-token.js +1 -1
  13. package/dist/apis/address-suggestions.cjs +6 -6
  14. package/dist/apis/address-suggestions.js +1 -1
  15. package/dist/apis/address.cjs +6 -6
  16. package/dist/apis/address.js +1 -1
  17. package/dist/apis/ai-agents.cjs +6 -6
  18. package/dist/apis/ai-agents.js +1 -1
  19. package/dist/apis/app.cjs +8 -8
  20. package/dist/apis/app.d.cts +2 -2
  21. package/dist/apis/app.d.ts +2 -2
  22. package/dist/apis/app.js +2 -2
  23. package/dist/apis/audit-logs.cjs +6 -6
  24. package/dist/apis/audit-logs.js +1 -1
  25. package/dist/apis/automation.cjs +6 -6
  26. package/dist/apis/automation.js +1 -1
  27. package/dist/apis/billing.cjs +6 -6
  28. package/dist/apis/billing.js +1 -1
  29. package/dist/apis/blueprint-manifest.cjs +6 -6
  30. package/dist/apis/blueprint-manifest.js +1 -1
  31. package/dist/apis/calendar.cjs +6 -6
  32. package/dist/apis/calendar.js +1 -1
  33. package/dist/apis/configuration-hub.cjs +6 -6
  34. package/dist/apis/configuration-hub.js +1 -1
  35. package/dist/apis/consent.cjs +6 -6
  36. package/dist/apis/consent.js +1 -1
  37. package/dist/apis/customer-portal.cjs +8 -8
  38. package/dist/apis/customer-portal.d.cts +2 -2
  39. package/dist/apis/customer-portal.d.ts +2 -2
  40. package/dist/apis/customer-portal.js +2 -2
  41. package/dist/apis/dashboard.cjs +6 -6
  42. package/dist/apis/dashboard.js +1 -1
  43. package/dist/apis/data-governance.cjs +6 -6
  44. package/dist/apis/data-governance.js +1 -1
  45. package/dist/apis/deduplication.cjs +6 -6
  46. package/dist/apis/deduplication.js +1 -1
  47. package/dist/apis/design.cjs +6 -6
  48. package/dist/apis/design.js +1 -1
  49. package/dist/apis/document.cjs +6 -6
  50. package/dist/apis/document.js +1 -1
  51. package/dist/apis/email-settings.cjs +6 -6
  52. package/dist/apis/email-settings.js +1 -1
  53. package/dist/apis/email-template.cjs +6 -6
  54. package/dist/apis/email-template.js +1 -1
  55. package/dist/apis/entity-mapping.cjs +6 -6
  56. package/dist/apis/entity-mapping.js +1 -1
  57. package/dist/apis/entity.cjs +6 -6
  58. package/dist/apis/entity.d.cts +2 -2
  59. package/dist/apis/entity.d.ts +2 -2
  60. package/dist/apis/entity.js +1 -1
  61. package/dist/apis/environments.cjs +6 -6
  62. package/dist/apis/environments.js +1 -1
  63. package/dist/apis/event-catalog.cjs +6 -6
  64. package/dist/apis/event-catalog.js +1 -1
  65. package/dist/apis/file.cjs +6 -6
  66. package/dist/apis/file.js +1 -1
  67. package/dist/apis/iban.cjs +6 -6
  68. package/dist/apis/iban.js +1 -1
  69. package/dist/apis/integration-toolkit.cjs +8 -8
  70. package/dist/apis/integration-toolkit.d.cts +2 -2
  71. package/dist/apis/integration-toolkit.d.ts +2 -2
  72. package/dist/apis/integration-toolkit.js +2 -2
  73. package/dist/apis/journey.cjs +6 -6
  74. package/dist/apis/journey.js +1 -1
  75. package/dist/apis/kanban.cjs +6 -6
  76. package/dist/apis/kanban.js +1 -1
  77. package/dist/apis/message.cjs +6 -6
  78. package/dist/apis/message.js +1 -1
  79. package/dist/apis/metering.cjs +8 -8
  80. package/dist/apis/metering.d.cts +2 -2
  81. package/dist/apis/metering.d.ts +2 -2
  82. package/dist/apis/metering.js +2 -2
  83. package/dist/apis/notes.cjs +6 -6
  84. package/dist/apis/notes.d.cts +2 -2
  85. package/dist/apis/notes.d.ts +2 -2
  86. package/dist/apis/notes.js +1 -1
  87. package/dist/apis/notification.cjs +6 -6
  88. package/dist/apis/notification.js +1 -1
  89. package/dist/apis/organization.cjs +6 -6
  90. package/dist/apis/organization.js +1 -1
  91. package/dist/apis/partner-directory.cjs +6 -6
  92. package/dist/apis/partner-directory.js +1 -1
  93. package/dist/apis/permissions.cjs +6 -6
  94. package/dist/apis/permissions.js +1 -1
  95. package/dist/apis/pricing-tier.cjs +6 -6
  96. package/dist/apis/pricing-tier.js +1 -1
  97. package/dist/apis/pricing.cjs +6 -6
  98. package/dist/apis/pricing.js +1 -1
  99. package/dist/apis/purpose.cjs +6 -6
  100. package/dist/apis/purpose.js +1 -1
  101. package/dist/apis/query.cjs +6 -6
  102. package/dist/apis/query.js +1 -1
  103. package/dist/apis/sandbox.cjs +6 -6
  104. package/dist/apis/sandbox.js +1 -1
  105. package/dist/apis/sharing.cjs +6 -6
  106. package/dist/apis/sharing.js +1 -1
  107. package/dist/apis/submission.cjs +6 -6
  108. package/dist/apis/submission.js +1 -1
  109. package/dist/apis/target.cjs +6 -6
  110. package/dist/apis/target.js +1 -1
  111. package/dist/apis/targeting.cjs +6 -6
  112. package/dist/apis/targeting.js +1 -1
  113. package/dist/apis/template-variables.cjs +6 -6
  114. package/dist/apis/template-variables.js +1 -1
  115. package/dist/apis/user.cjs +6 -6
  116. package/dist/apis/user.js +1 -1
  117. package/dist/apis/validation-rules.cjs +6 -6
  118. package/dist/apis/validation-rules.js +1 -1
  119. package/dist/apis/webhooks.cjs +8 -8
  120. package/dist/apis/webhooks.d.cts +2 -2
  121. package/dist/apis/webhooks.d.ts +2 -2
  122. package/dist/apis/webhooks.js +2 -2
  123. package/dist/apis/workflow-definition.cjs +6 -6
  124. package/dist/apis/workflow-definition.js +1 -1
  125. package/dist/apis/workflow.cjs +6 -6
  126. package/dist/apis/workflow.js +1 -1
  127. package/dist/app-34OBBTA4.js +7 -0
  128. package/dist/app-SSF545U7.cjs +7 -0
  129. package/dist/app-runtime-AFNM67YN.cjs +5 -0
  130. package/dist/{app-runtime-U7RGV7KT.js → app-runtime-DBUXZL6E.js} +1 -1
  131. package/dist/{app.d-u7Dq42kU.d.cts → app.d--5n0FQQ4.d.cts} +377 -11
  132. package/dist/{app.d-u7Dq42kU.d.ts → app.d--5n0FQQ4.d.ts} +377 -11
  133. package/dist/bin/cli.js +1 -1
  134. package/dist/{chunk-JTFWOEZF.cjs → chunk-4FFGRWLS.cjs} +1 -1
  135. package/dist/chunk-56MMZJOD.js +14 -0
  136. package/dist/chunk-5OBMZHRL.cjs +14 -0
  137. package/dist/{chunk-L66IX6GX.cjs → chunk-KMVJYNLB.cjs} +1 -1
  138. package/dist/chunk-KYCVV2XE.cjs +14 -0
  139. package/dist/{chunk-TSV242UN.js → chunk-QNUU4TTU.js} +13 -13
  140. package/dist/chunk-RGO3LTAM.js +14 -0
  141. package/dist/{chunk-CD4OX2U6.cjs → chunk-SDIGGISZ.cjs} +13 -13
  142. package/dist/chunk-T6A22LSD.cjs +14 -0
  143. package/dist/chunk-WM74R3BD.js +14 -0
  144. package/dist/{chunk-LLZYRINH.js → chunk-Z4H2FZ2K.js} +1 -1
  145. package/dist/chunk-Z6HGUGXK.js +14 -0
  146. package/dist/customer-portal-5I7ZGQDU.cjs +7 -0
  147. package/dist/customer-portal-YL2YMPZL.js +7 -0
  148. package/dist/{customer-portal-runtime-PSM55KGU.js → customer-portal-runtime-N4NWQ67M.js} +1 -1
  149. package/dist/{customer-portal-runtime-DULJLR7F.cjs → customer-portal-runtime-OEXTSMSE.cjs} +2 -2
  150. package/dist/{customer-portal.d-DyZ2n2dW.d.cts → customer-portal.d-ChSEioI5.d.cts} +394 -9
  151. package/dist/{customer-portal.d-DyZ2n2dW.d.ts → customer-portal.d-ChSEioI5.d.ts} +394 -9
  152. package/dist/entity-SS36LQO6.cjs +7 -0
  153. package/dist/entity-Z4YWKDVG.js +7 -0
  154. package/dist/{entity.d-BHR9dEon.d.cts → entity.d-fospShiN.d.cts} +234 -169
  155. package/dist/{entity.d-BHR9dEon.d.ts → entity.d-fospShiN.d.ts} +234 -169
  156. package/dist/index.cjs +18 -18
  157. package/dist/index.d.cts +7 -7
  158. package/dist/index.d.ts +7 -7
  159. package/dist/index.js +6 -6
  160. package/dist/integration-toolkit-3I3IPVFN.cjs +7 -0
  161. package/dist/integration-toolkit-XAFQXNQY.js +7 -0
  162. package/dist/{integration-toolkit-runtime-5KG3LGXF.cjs → integration-toolkit-runtime-YHTU4X5J.cjs} +2 -2
  163. package/dist/{integration-toolkit-runtime-LYHFVIRW.js → integration-toolkit-runtime-YR4CIMKH.js} +1 -1
  164. package/dist/{integration-toolkit.d-Ry-KC9ow.d.cts → integration-toolkit.d-BstNqiJb.d.cts} +460 -20
  165. package/dist/{integration-toolkit.d-Ry-KC9ow.d.ts → integration-toolkit.d-BstNqiJb.d.ts} +460 -20
  166. package/dist/{js-yaml-UPZKYVRY.js → js-yaml-DLCVPJ7G.js} +17 -15
  167. package/dist/metering-3IUSYAGN.js +7 -0
  168. package/dist/metering-MHBFU7QH.cjs +7 -0
  169. package/dist/{webhooks-runtime-EBM4M3SU.cjs → metering-runtime-IUZJHBVS.cjs} +2 -2
  170. package/dist/{metering-runtime-NJ6NEUMB.js → metering-runtime-KZMJKKUZ.js} +1 -1
  171. package/dist/{metering.d-DvtPv7wk.d.ts → metering.d-CUICZDiL.d.cts} +718 -130
  172. package/dist/{metering.d-DvtPv7wk.d.cts → metering.d-CUICZDiL.d.ts} +718 -130
  173. package/dist/notes-K2IIFCX3.cjs +7 -0
  174. package/dist/notes-Q7JGS7O3.js +7 -0
  175. package/dist/{notes.d-BC-scR42.d.cts → notes.d-BcV_m5fe.d.cts} +33 -11
  176. package/dist/{notes.d-BC-scR42.d.ts → notes.d-BcV_m5fe.d.ts} +33 -11
  177. package/dist/{pricing-XAET4G7T.cjs → pricing-FODHQFCB.cjs} +1 -1
  178. package/dist/{pricing-G67CH3XH.js → pricing-XRIDVZFC.js} +1 -1
  179. package/dist/webhooks-NZ3TM3AY.cjs +7 -0
  180. package/dist/webhooks-XLBUXXCS.js +7 -0
  181. package/dist/{metering-runtime-HAIWXZXJ.cjs → webhooks-runtime-QVAFNBDW.cjs} +2 -2
  182. package/dist/{webhooks-runtime-XCQYIGQK.js → webhooks-runtime-UYTPQQVG.js} +1 -1
  183. package/dist/{webhooks.d-pLHIL_io.d.cts → webhooks.d-D79qib9f.d.cts} +115 -5
  184. package/dist/{webhooks.d-pLHIL_io.d.ts → webhooks.d-D79qib9f.d.ts} +115 -5
  185. package/docs/app.md +244 -9
  186. package/docs/customer-portal.md +340 -113
  187. package/docs/entity.md +65 -0
  188. package/docs/integration-toolkit.md +334 -19
  189. package/docs/metering.md +570 -48
  190. package/docs/notes.md +19 -12
  191. package/docs/pricing.md +3 -1
  192. package/docs/webhooks.md +49 -0
  193. package/package.json +1 -1
  194. package/dist/app-5KSVSKDU.js +0 -7
  195. package/dist/app-PL3IOROO.cjs +0 -7
  196. package/dist/app-runtime-SSNHSBR7.cjs +0 -5
  197. package/dist/chunk-265TE2OV.js +0 -14
  198. package/dist/chunk-2MMSXUOL.cjs +0 -14
  199. package/dist/chunk-4ZMLRFDX.cjs +0 -14
  200. package/dist/chunk-A7AAVJGM.js +0 -14
  201. package/dist/chunk-GVNT76UU.js +0 -14
  202. package/dist/chunk-HHMXS5NC.cjs +0 -14
  203. package/dist/chunk-U4PUHKZC.js +0 -14
  204. package/dist/customer-portal-5LMHNBMD.cjs +0 -7
  205. package/dist/customer-portal-RZACUF4N.js +0 -7
  206. package/dist/entity-H6ESUH3Y.js +0 -7
  207. package/dist/entity-ZVDKWQSF.cjs +0 -7
  208. package/dist/integration-toolkit-FRPFOYT2.js +0 -7
  209. package/dist/integration-toolkit-VNMDI55O.cjs +0 -7
  210. package/dist/metering-DZNZPPY6.cjs +0 -7
  211. package/dist/metering-KOSCPPKB.js +0 -7
  212. package/dist/notes-3AO5GXIT.js +0 -7
  213. package/dist/notes-MPWOQC5J.cjs +0 -7
  214. package/dist/webhooks-H3RT33BF.cjs +0 -7
  215. package/dist/webhooks-RTOU3MS5.js +0 -7
@@ -1842,13 +1842,56 @@
1842
1842
  "type": "string",
1843
1843
  "description": "Detailed description of what this configuration option does"
1844
1844
  },
1845
+ "repeatable": {
1846
+ "type": "boolean",
1847
+ "description": "When true, the configured value is an array of entries, each tagged with a stable\nserver-assigned `id`. Combine with any `type` to express \"many of this thing.\"\nDefaults to false.\n"
1848
+ },
1849
+ "fields": {
1850
+ "type": "array",
1851
+ "description": "Field declarations — required when `type: object`. Each entry describes one primitive\nsub-field of the object value. Object types may not nest (no `type: object` inside `fields`).\n",
1852
+ "items": {
1853
+ "$ref": "#/components/schemas/ObjectField"
1854
+ }
1855
+ },
1845
1856
  "value": {
1846
- "type": [
1847
- "string",
1857
+ "description": "The configured value for this option. Shape depends on `type` and `repeatable`:\n- primitive `type` (text/number/boolean/secret), `repeatable` false → primitive\n- primitive `type`, `repeatable` true → array of `{id, value}` entries\n- `type: object`, `repeatable` false → object with declared fields\n- `type: object`, `repeatable` true → array of `{id, ...declared fields}` entries\n\n`id` is server-assigned and stable across edits so consumers can reference entries\nby id rather than by index.\n"
1858
+ },
1859
+ "type": {
1860
+ "type": "string",
1861
+ "enum": [
1862
+ "text",
1863
+ "number",
1848
1864
  "boolean",
1849
- "number"
1865
+ "secret",
1866
+ "object"
1850
1867
  ],
1851
- "description": "The configured value for this option. Is only present when the component is installed."
1868
+ "description": "The type of this option. `object` declares a structured value whose fields are listed\nunder `fields`. Combine with `repeatable: true` to express a list of these objects.\n"
1869
+ }
1870
+ }
1871
+ },
1872
+ "ObjectField": {
1873
+ "type": "object",
1874
+ "description": "One declared field inside a `type: object` option. Fields are primitives — object nesting\nis not supported.\n",
1875
+ "required": [
1876
+ "key",
1877
+ "type"
1878
+ ],
1879
+ "properties": {
1880
+ "key": {
1881
+ "type": "string",
1882
+ "description": "Unique identifier for this field within the parent object."
1883
+ },
1884
+ "label": {
1885
+ "type": "string",
1886
+ "description": "Human-readable label for the field."
1887
+ },
1888
+ "description": {
1889
+ "type": "string",
1890
+ "description": "Detailed description of what this field is for."
1891
+ },
1892
+ "required": {
1893
+ "type": "boolean",
1894
+ "description": "Flag to indicate if this field must be filled."
1852
1895
  },
1853
1896
  "type": {
1854
1897
  "type": "string",
@@ -1857,7 +1900,8 @@
1857
1900
  "number",
1858
1901
  "boolean",
1859
1902
  "secret"
1860
- ]
1903
+ ],
1904
+ "description": "Primitive type of this field."
1861
1905
  }
1862
1906
  }
1863
1907
  },
@@ -1873,12 +1917,7 @@
1873
1917
  "description": "Key matching a config_option from the component"
1874
1918
  },
1875
1919
  "value": {
1876
- "type": [
1877
- "string",
1878
- "boolean",
1879
- "number"
1880
- ],
1881
- "description": "The configured value for this option"
1920
+ "description": "The configured value for this option. Shape depends on the matching component option's\n`type` and `repeatable` (see `Options.value`).\n"
1882
1921
  }
1883
1922
  }
1884
1923
  },
@@ -2611,7 +2650,8 @@
2611
2650
  "consumptionDataRetrieval": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval",
2612
2651
  "dataExport": "#/components/schemas/PortalExtensionHookDataExport",
2613
2652
  "costDataRetrieval": "#/components/schemas/PortalExtensionHookCostDataRetrieval",
2614
- "meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
2653
+ "meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck",
2654
+ "visualizationMetadata": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
2615
2655
  }
2616
2656
  },
2617
2657
  "oneOf": [
@@ -2635,6 +2675,9 @@
2635
2675
  },
2636
2676
  {
2637
2677
  "$ref": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
2678
+ },
2679
+ {
2680
+ "$ref": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
2638
2681
  }
2639
2682
  ]
2640
2683
  }
@@ -2981,7 +3024,8 @@
2981
3024
  },
2982
3025
  "intervals": {
2983
3026
  "type": "array",
2984
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
3027
+ "deprecated": true,
3028
+ "description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
2985
3029
  "items": {
2986
3030
  "type": "string",
2987
3031
  "enum": [
@@ -3081,7 +3125,8 @@
3081
3125
  },
3082
3126
  "intervals": {
3083
3127
  "type": "array",
3084
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
3128
+ "deprecated": true,
3129
+ "description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
3085
3130
  "items": {
3086
3131
  "type": "string",
3087
3132
  "enum": [
@@ -3092,20 +3137,6 @@
3092
3137
  ]
3093
3138
  }
3094
3139
  },
3095
- "type_options": {
3096
- "type": "array",
3097
- "description": "Consumption types advertised by the hook (e.g. `ht`/`nt`, `feed-in`/`feed-out`). The `id` has to match the `type` field returned in the consumption response.\n",
3098
- "items": {
3099
- "$ref": "#/components/schemas/PortalExtensionHookConsumptionOption"
3100
- }
3101
- },
3102
- "aggregation_method_options": {
3103
- "type": "array",
3104
- "description": "Aggregation methods advertised by the hook (e.g. `sum`, `average`, `min`, `max`). The `id` has to match the `aggregation_method` field returned in the consumption response.\n",
3105
- "items": {
3106
- "$ref": "#/components/schemas/PortalExtensionHookConsumptionAggregationMethodOption"
3107
- }
3108
- },
3109
3140
  "auth": {
3110
3141
  "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3111
3142
  },
@@ -3193,6 +3224,13 @@
3193
3224
  "dataExport"
3194
3225
  ]
3195
3226
  },
3227
+ "block_types": {
3228
+ "type": "array",
3229
+ "description": "Optional list of portal block types this hook supports. If omitted,\nthe hook is usable on any export-capable block. Allowed values match\nthe block type identifiers used by the portal builder\n(e.g. `consumption_visualization`, `dynamic_tariff`).\n",
3230
+ "items": {
3231
+ "type": "string"
3232
+ }
3233
+ },
3196
3234
  "auth": {
3197
3235
  "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3198
3236
  },
@@ -3252,50 +3290,90 @@
3252
3290
  ],
3253
3291
  "additionalProperties": false
3254
3292
  },
3255
- "PortalExtensionHookConsumptionOption": {
3293
+ "PortalExtensionHookVisualizationMetadata": {
3294
+ "description": "Hook that returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). It is invoked by the portal before fetching data, with the same context the data hook would receive, so that the discovery shape can vary per meter/contract. The expected response to the call is:\n - 200 with a JSON body of shape:\n {\n \"type_options\": [\n { \"id\": \"ht\", \"label\": { \"en\": \"High tariff\" }, \"aggregation_group\": \"consumption\", \"statistical_method\": \"sum\", \"unit\": \"kWh\" },\n ...\n ],\n \"intervals\": [\"PT15M\", \"PT1H\", \"P1D\", \"P1M\"],\n \"data_range\": { \"from\": \"2024-01-01T00:00:00Z\", \"to\": \"2026-05-01T00:00:00Z\" }\n }\n Each type option carries its own `statistical_method`, which describes the method already applied to that type's data and dictates the chart shape: `sum` is rendered as a bar chart; `min`, `average`, and `max` are rendered as a line chart. A single visualization can therefore mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.\n `aggregation_group` controls how types within a group are visually combined (depends on the per-type `statistical_method`):\n - bar chart (`sum`): same-group types are stacked into a single bar (e.g. ht/nt summed into total consumption); different-group types render side-by-side.\n - line chart (`min` / `average` / `max`): same-group types are rendered as an area chart; different-group types render as separate lines.\n All fields are optional; the consumer falls back to its defaults for whatever the hook does not return.\nThe portal looks up this hook implicitly per extension (one `visualizationMetadata` hook per extension) — there is no need for a data-retrieval hook to reference it explicitly.\n",
3256
3295
  "type": "object",
3257
- "description": "A consumption type advertised by a consumption data retrieval hook.",
3258
3296
  "properties": {
3259
3297
  "id": {
3260
3298
  "type": "string",
3261
- "description": "Identifier of the option. Matches the `type` value returned by the hook (e.g. `ht`, `nt`, `feed-in`)."
3299
+ "pattern": "^[a-zA-Z0-9_-]+$",
3300
+ "description": "Identifier of the hook. Should not change between updates."
3262
3301
  },
3263
- "label": {
3302
+ "name": {
3264
3303
  "$ref": "#/components/schemas/TranslatedString"
3265
3304
  },
3266
- "aggregation_group": {
3267
- "type": "string",
3268
- "description": "Optional grouping key. Types sharing the same aggregation_group are interpreted as values that can be aggregated (e.g. ht/nt shown as a stacked bar chart - summed into total consumption per interval). Types in different groups — or types without a group — are not (e.g. feed-in vs feed-out shown as separate bars).\n",
3269
- "example": "consumption"
3270
- }
3271
- },
3272
- "required": [
3273
- "id",
3274
- "label"
3275
- ],
3276
- "additionalProperties": false
3277
- },
3278
- "PortalExtensionHookConsumptionAggregationMethodOption": {
3279
- "type": "object",
3280
- "description": "An aggregation method advertised by a consumption data retrieval hook.",
3281
- "properties": {
3282
- "id": {
3305
+ "type": {
3283
3306
  "type": "string",
3284
3307
  "enum": [
3285
- "sum",
3286
- "average",
3287
- "min",
3288
- "max"
3308
+ "visualizationMetadata"
3309
+ ]
3310
+ },
3311
+ "auth": {
3312
+ "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3313
+ },
3314
+ "call": {
3315
+ "type": "object",
3316
+ "properties": {
3317
+ "method": {
3318
+ "type": "string",
3319
+ "description": "HTTP method to use for the call",
3320
+ "default": "GET"
3321
+ },
3322
+ "url": {
3323
+ "type": "string",
3324
+ "description": "URL to call. Supports variable interpolation."
3325
+ },
3326
+ "params": {
3327
+ "type": "object",
3328
+ "description": "Parameters to append to the URL. Supports variable interpolation.",
3329
+ "additionalProperties": {
3330
+ "type": "string"
3331
+ },
3332
+ "default": {}
3333
+ },
3334
+ "headers": {
3335
+ "type": "object",
3336
+ "description": "Headers to use. Supports variable interpolation.",
3337
+ "additionalProperties": {
3338
+ "type": "string"
3339
+ },
3340
+ "default": {}
3341
+ },
3342
+ "body": {
3343
+ "type": "object",
3344
+ "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
3345
+ "additionalProperties": true
3346
+ }
3347
+ },
3348
+ "required": [
3349
+ "url"
3289
3350
  ],
3290
- "description": "Identifier of the option. Matches the `aggregation_method` value returned by the hook."
3351
+ "additionalProperties": false
3291
3352
  },
3292
- "label": {
3293
- "$ref": "#/components/schemas/TranslatedString"
3353
+ "resolved": {
3354
+ "type": "object",
3355
+ "properties": {
3356
+ "dataPath": {
3357
+ "type": "string",
3358
+ "description": "Optional path to the metadata object in the response. If omitted, the metadata is assumed to be on the top level."
3359
+ }
3360
+ },
3361
+ "additionalProperties": false
3362
+ },
3363
+ "use_static_ips": {
3364
+ "type": "boolean",
3365
+ "deprecated": true,
3366
+ "description": "Deprecated. Prefer `secure_proxy` instead.\nIf 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.\n",
3367
+ "default": false
3368
+ },
3369
+ "secure_proxy": {
3370
+ "$ref": "#/components/schemas/PortalExtensionSecureProxy"
3294
3371
  }
3295
3372
  },
3296
3373
  "required": [
3297
3374
  "id",
3298
- "label"
3375
+ "type",
3376
+ "call"
3299
3377
  ],
3300
3378
  "additionalProperties": false
3301
3379
  },
@@ -3319,7 +3397,8 @@
3319
3397
  },
3320
3398
  "intervals": {
3321
3399
  "type": "array",
3322
- "description": "Intervals supported by the API. If omitted, it is assumed that all intervals are supported.",
3400
+ "deprecated": true,
3401
+ "description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
3323
3402
  "items": {
3324
3403
  "type": "string",
3325
3404
  "enum": [
@@ -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]]],["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",true],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getCosts","get","/v2/portal/costs",[["app_id","q"],["extensionId","q",true],["hookId","q",true],["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",true],["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]]],["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],["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],["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],["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],["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],["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]],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]]]],"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/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]]],["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]]],["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],["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],["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],["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],["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],["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]],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]]]],"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/pages/{id}/blocks":[["id","p",true]],"/v2/portal/pages/{id}/blocks/{block_id}":[["id","p",true],["block_id","p",true]]}}