@epilot/sdk 2.18.27 → 2.18.29

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 (131) hide show
  1. package/definitions/integration-toolkit.json +27 -103
  2. package/definitions/permissions.json +85 -2
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/calendar.cjs +6 -6
  22. package/dist/apis/calendar.js +1 -1
  23. package/dist/apis/configuration-hub.cjs +6 -6
  24. package/dist/apis/configuration-hub.js +1 -1
  25. package/dist/apis/consent.cjs +6 -6
  26. package/dist/apis/consent.js +1 -1
  27. package/dist/apis/customer-portal.cjs +6 -6
  28. package/dist/apis/customer-portal.js +1 -1
  29. package/dist/apis/dashboard.cjs +6 -6
  30. package/dist/apis/dashboard.js +1 -1
  31. package/dist/apis/data-governance.cjs +6 -6
  32. package/dist/apis/data-governance.js +1 -1
  33. package/dist/apis/deduplication.cjs +6 -6
  34. package/dist/apis/deduplication.js +1 -1
  35. package/dist/apis/design.cjs +6 -6
  36. package/dist/apis/design.js +1 -1
  37. package/dist/apis/document.cjs +6 -6
  38. package/dist/apis/document.js +1 -1
  39. package/dist/apis/email-settings.cjs +6 -6
  40. package/dist/apis/email-settings.js +1 -1
  41. package/dist/apis/email-template.cjs +6 -6
  42. package/dist/apis/email-template.js +1 -1
  43. package/dist/apis/entity-mapping.cjs +6 -6
  44. package/dist/apis/entity-mapping.js +1 -1
  45. package/dist/apis/entity.cjs +6 -6
  46. package/dist/apis/entity.js +1 -1
  47. package/dist/apis/environments.cjs +6 -6
  48. package/dist/apis/environments.js +1 -1
  49. package/dist/apis/event-catalog.cjs +6 -6
  50. package/dist/apis/event-catalog.js +1 -1
  51. package/dist/apis/file.cjs +6 -6
  52. package/dist/apis/file.js +1 -1
  53. package/dist/apis/iban.cjs +6 -6
  54. package/dist/apis/iban.js +1 -1
  55. package/dist/apis/integration-toolkit.cjs +6 -6
  56. package/dist/apis/integration-toolkit.d.cts +2 -2
  57. package/dist/apis/integration-toolkit.d.ts +2 -2
  58. package/dist/apis/integration-toolkit.js +1 -1
  59. package/dist/apis/journey.cjs +6 -6
  60. package/dist/apis/journey.js +1 -1
  61. package/dist/apis/kanban.cjs +6 -6
  62. package/dist/apis/kanban.js +1 -1
  63. package/dist/apis/message.cjs +6 -6
  64. package/dist/apis/message.js +1 -1
  65. package/dist/apis/metering.cjs +6 -6
  66. package/dist/apis/metering.js +1 -1
  67. package/dist/apis/notes.cjs +6 -6
  68. package/dist/apis/notes.js +1 -1
  69. package/dist/apis/notification.cjs +6 -6
  70. package/dist/apis/notification.js +1 -1
  71. package/dist/apis/organization.cjs +6 -6
  72. package/dist/apis/organization.js +1 -1
  73. package/dist/apis/partner-directory.cjs +6 -6
  74. package/dist/apis/partner-directory.js +1 -1
  75. package/dist/apis/permissions.cjs +6 -6
  76. package/dist/apis/permissions.d.cts +2 -2
  77. package/dist/apis/permissions.d.ts +2 -2
  78. package/dist/apis/permissions.js +1 -1
  79. package/dist/apis/pricing-tier.cjs +6 -6
  80. package/dist/apis/pricing-tier.js +1 -1
  81. package/dist/apis/pricing.cjs +6 -6
  82. package/dist/apis/pricing.js +1 -1
  83. package/dist/apis/purpose.cjs +6 -6
  84. package/dist/apis/purpose.js +1 -1
  85. package/dist/apis/query.cjs +6 -6
  86. package/dist/apis/query.js +1 -1
  87. package/dist/apis/sandbox.cjs +6 -6
  88. package/dist/apis/sandbox.js +1 -1
  89. package/dist/apis/sharing.cjs +6 -6
  90. package/dist/apis/sharing.js +1 -1
  91. package/dist/apis/snapshot.cjs +6 -6
  92. package/dist/apis/snapshot.js +1 -1
  93. package/dist/apis/submission.cjs +6 -6
  94. package/dist/apis/submission.js +1 -1
  95. package/dist/apis/target.cjs +6 -6
  96. package/dist/apis/target.js +1 -1
  97. package/dist/apis/targeting.cjs +6 -6
  98. package/dist/apis/targeting.js +1 -1
  99. package/dist/apis/template-variables.cjs +6 -6
  100. package/dist/apis/template-variables.js +1 -1
  101. package/dist/apis/user.cjs +6 -6
  102. package/dist/apis/user.js +1 -1
  103. package/dist/apis/validation-rules.cjs +6 -6
  104. package/dist/apis/validation-rules.js +1 -1
  105. package/dist/apis/webhooks.cjs +6 -6
  106. package/dist/apis/webhooks.js +1 -1
  107. package/dist/apis/workflow-definition.cjs +6 -6
  108. package/dist/apis/workflow-definition.js +1 -1
  109. package/dist/apis/workflow.cjs +6 -6
  110. package/dist/apis/workflow.js +1 -1
  111. package/dist/{chunk-Q6DT64Q2.js → chunk-AUPMKSFK.js} +2 -2
  112. package/dist/{chunk-6ZJM4MNX.cjs → chunk-DZ6B3JHX.cjs} +2 -2
  113. package/dist/index.cjs +8 -8
  114. package/dist/index.d.cts +2 -2
  115. package/dist/index.d.ts +2 -2
  116. package/dist/index.js +1 -1
  117. package/dist/integration-toolkit-2WF2P4OX.cjs +7 -0
  118. package/dist/integration-toolkit-RDFELVKR.js +7 -0
  119. package/dist/{integration-toolkit.d-Dj-tULW0.d.cts → integration-toolkit.d-D8kNGpJq.d.cts} +282 -211
  120. package/dist/{integration-toolkit.d-Dj-tULW0.d.ts → integration-toolkit.d-D8kNGpJq.d.ts} +282 -211
  121. package/dist/permissions-I2ERCKW4.cjs +7 -0
  122. package/dist/permissions-K4CL2K2A.js +7 -0
  123. package/dist/{permissions.d-l6AT8SYP.d.cts → permissions.d-BKoyMhU7.d.cts} +62 -4
  124. package/dist/{permissions.d-l6AT8SYP.d.ts → permissions.d-BKoyMhU7.d.ts} +62 -4
  125. package/docs/integration-toolkit.md +100 -180
  126. package/docs/permissions.md +29 -1
  127. package/package.json +1 -1
  128. package/dist/integration-toolkit-LMRJVLJA.js +0 -7
  129. package/dist/integration-toolkit-YMVNGSQ5.cjs +0 -7
  130. package/dist/permissions-X3SJVSPC.js +0 -7
  131. package/dist/permissions-ZJHUIBWY.cjs +0 -7
@@ -1390,9 +1390,32 @@ declare namespace Components {
1390
1390
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
1391
1391
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
1392
1392
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
1393
- * how many deliveries one event produces, `params_mapping` builds the values, and the
1394
- * `steps` place those values into requests via `{{ params.* }}`.
1395
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
1393
+ * how many deliveries one event produces, and every step builds its own request body with
1394
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
1395
+ * `upload` is REQUIRED and `response` MUST be omitted.
1396
+ *
1397
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
1398
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
1399
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
1400
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
1401
+ * guard — it is simply absent from the serialized body.
1402
+ *
1403
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
1404
+ * `file_data`, `steps` and `auth_token`. Writing
1405
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
1406
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
1407
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
1408
+ *
1409
+ * Two guards run on every rendered upload template, because single-pass rendering fails
1410
+ * quietly by default. Both are terminal, and each names what to fix:
1411
+ *
1412
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
1413
+ * Rewrite it without the backslash.
1414
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
1415
+ * parsed, because an empty value in host position turns
1416
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
1417
+ * then parses as `document`. Provision the environment variable. A key that exists and
1418
+ * is legitimately empty is fine; only absence fails.
1396
1419
  *
1397
1420
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
1398
1421
  * server-side validator, which returns an explicit message naming the offending field.
@@ -1555,8 +1578,8 @@ declare namespace Components {
1555
1578
  *
1556
1579
  * A pure pointer, deliberately. The outbound use case decides WHEN to deliver — its event
1557
1580
  * name plus `event_filter` — and the referenced `file_proxy` use case decides WHAT and HOW:
1558
- * which items to fan out over (`fan_out`), what values to build (`params_mapping`,
1559
- * `lookups`, `constants`), and the steps that send them. Keeping every file concern on the
1581
+ * which items to fan out over (`fan_out`), what values to build (each
1582
+ * step's `body_jsonata`), and the steps that send them. Keeping every file concern on the
1560
1583
  * file_proxy side is what lets one upload recipe be shared by several event subscriptions
1561
1584
  * without duplicating any of it.
1562
1585
  *
@@ -1678,9 +1701,32 @@ declare namespace Components {
1678
1701
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
1679
1702
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
1680
1703
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
1681
- * how many deliveries one event produces, `params_mapping` builds the values, and the
1682
- * `steps` place those values into requests via `{{ params.* }}`.
1683
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
1704
+ * how many deliveries one event produces, and every step builds its own request body with
1705
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
1706
+ * `upload` is REQUIRED and `response` MUST be omitted.
1707
+ *
1708
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
1709
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
1710
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
1711
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
1712
+ * guard — it is simply absent from the serialized body.
1713
+ *
1714
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
1715
+ * `file_data`, `steps` and `auth_token`. Writing
1716
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
1717
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
1718
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
1719
+ *
1720
+ * Two guards run on every rendered upload template, because single-pass rendering fails
1721
+ * quietly by default. Both are terminal, and each names what to fix:
1722
+ *
1723
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
1724
+ * Rewrite it without the backslash.
1725
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
1726
+ * parsed, because an empty value in host position turns
1727
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
1728
+ * then parses as `document`. Provision the environment variable. A key that exists and
1729
+ * is legitimately empty is fine; only absence fails.
1684
1730
  *
1685
1731
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
1686
1732
  * server-side validator, which returns an explicit message naming the offending field.
@@ -2182,7 +2228,7 @@ declare namespace Components {
2182
2228
  * Enum of possible issue codes.
2183
2229
  *
2184
2230
  */
2185
- code: "UNIQUE_ID_COLUMN_MISSING" | "MAPPED_COLUMN_MISSING" | "MALFORMED_ROW" | "INVALID_ENCODING" | "EMPTY_FILE" | "TOO_MANY_ROWS";
2231
+ code: "UNIQUE_ID_COLUMN_MISSING" | "MAPPED_COLUMN_MISSING" | "MALFORMED_ROW" | "INVALID_ENCODING" | "EMPTY_FILE" | "TOO_MANY_ROWS" | "BLANK_ROWS_SKIPPED";
2186
2232
  severity: "warning" | "blocking";
2187
2233
  /**
2188
2234
  * The columns this issue is about, at most one entry per column per entity.
@@ -2290,7 +2336,7 @@ declare namespace Components {
2290
2336
  */
2291
2337
  export interface ErpImportValidation {
2292
2338
  /**
2293
- * Data rows read from the file.
2339
+ * Data rows the import will act on. Rows with no value in any column are dropped before they are counted, and reported as BLANK_ROWS_SKIPPED — so this can be lower than the line count of the file.
2294
2340
  */
2295
2341
  total_rows: number;
2296
2342
  /**
@@ -2483,8 +2529,8 @@ declare namespace Components {
2483
2529
  *
2484
2530
  * A pure pointer, deliberately. The outbound use case decides WHEN to deliver — its event
2485
2531
  * name plus `event_filter` — and the referenced `file_proxy` use case decides WHAT and HOW:
2486
- * which items to fan out over (`fan_out`), what values to build (`params_mapping`,
2487
- * `lookups`, `constants`), and the steps that send them. Keeping every file concern on the
2532
+ * which items to fan out over (`fan_out`), what values to build (each
2533
+ * step's `body_jsonata`), and the steps that send them. Keeping every file concern on the
2488
2534
  * file_proxy side is what lets one upload recipe be shared by several event subscriptions
2489
2535
  * without duplicating any of it.
2490
2536
  *
@@ -2509,78 +2555,33 @@ declare namespace Components {
2509
2555
  use_case_slug: string;
2510
2556
  }
2511
2557
  /**
2512
- * Splits one event into several independent deliveries.
2513
- *
2514
- * Mirrors the inbound mapping idiom, where an entity's JSONata expression returning an array
2515
- * produces one entity update per element. Made explicit with a toggle here because an upload
2516
- * is also legitimately used without splitting, and because auto-detecting "array means
2517
- * split" would make a single-element result ambiguous.
2558
+ * Whether one event produces one delivery per file, or a single delivery carrying all of
2559
+ * them. The split is always over the event's `event_attachments` — there is no expression
2560
+ * to write, because an upload only ever runs on events that declare that field.
2518
2561
  *
2519
2562
  * Each resulting delivery is fully independent: its own idempotency record, its own retry
2520
- * schedule, its own monitoring events. A four-item event can therefore end up three-of-four
2563
+ * schedule, its own monitoring events. A four-file event can therefore end up three-of-four
2521
2564
  * delivered, which is the honest state to report.
2522
2565
  *
2523
2566
  * The split is evaluated ONCE, when the event is enqueued, so item indices — and therefore
2524
2567
  * idempotency keys — stay stable across retries.
2525
2568
  *
2569
+ * Either way, expressions read the same `$file_data` binding, so no expression needs to
2570
+ * know which mode it runs in. An event carrying no attachments is recorded as `skipped`.
2571
+ *
2526
2572
  */
2527
2573
  export interface FileProxyFanOutConfig {
2528
2574
  /**
2529
- * When false (or absent), the event produces exactly one delivery and `$item` is not
2530
- * bound in `params_mapping`.
2575
+ * When true, one delivery per attachment, and `$file_data` holds exactly that one
2576
+ * file. When false (or absent), the event produces exactly one delivery and
2577
+ * `$file_data` holds every attachment on the event.
2531
2578
  *
2532
- */
2533
- enabled: boolean;
2534
- /**
2535
- * JSONata over the event that MUST return an array; one delivery is created per element,
2536
- * bound as `$item` in `params_mapping`. Required when `enabled` is true.
2537
- *
2538
- * Keep this a plain projection — scoping which events are handled at all belongs in the
2539
- * outbound use case's `event_filter`, not here. A non-array result fails the event with
2540
- * `FAN_OUT_INVALID_RESULT`; an empty array produces no deliveries and one info-level
2579
+ * An empty `event_attachments` produces no deliveries and one info-level
2541
2580
  * `FAN_OUT_EMPTY`, which is the normal outcome for a catch-all subscription seeing an
2542
2581
  * event with nothing to send.
2543
2582
  *
2544
- * example:
2545
- * event_attachments
2546
- */
2547
- split_expression?: string;
2548
- }
2549
- /**
2550
- * A named translation from a value in the event to a value the external system expects.
2551
- *
2552
- */
2553
- export interface FileProxyLookup {
2554
- /**
2555
- * JSONata expression over the event producing the lookup key
2556
- * example:
2557
- * ticket._purpose_name[0]
2558
- */
2559
- source: string;
2560
- /**
2561
- * Key-to-value translation table
2562
- * example:
2563
- * {
2564
- * "Zählerstandsmeldung": "Zählerstand",
2565
- * "Kündigung": "Kündigung"
2566
- * }
2567
- */
2568
- entries: {
2569
- [name: string]: string;
2570
- };
2571
- /**
2572
- * Value used when the key is absent from `entries`
2573
- */
2574
- default?: string;
2575
- /**
2576
- * What happens when the key is not in `entries`.
2577
- * `default` substitutes `default` silently; `warn` substitutes it and emits a
2578
- * `LOOKUP_UNMAPPED` warning so the gap is visible without stopping delivery;
2579
- * `fail` aborts the delivery terminally.
2580
- * Defaults to `default` when a `default` is set, and to `warn` when it is not.
2581
- *
2582
2583
  */
2583
- on_miss?: "default" | "warn" | "fail";
2584
+ enabled: boolean;
2584
2585
  }
2585
2586
  export interface FileProxyParam {
2586
2587
  /**
@@ -2641,20 +2642,88 @@ declare namespace Components {
2641
2642
  [name: string]: string;
2642
2643
  };
2643
2644
  /**
2644
- * Handlebars template for the request body (write methods only). On an `upload` use
2645
- * case this is where the payload is assembled, reading `{{ params.* }}` built by
2646
- * `params_mapping`, plus `{{ env.* }}` and `{{ steps.N.body }}`.
2645
+ * Upload-only. JSONata producing the request body as DATA; the result is serialized to
2646
+ * JSON and sent. Use this for every JSON body it cannot emit malformed JSON, and it
2647
+ * omits a key whose value is undefined instead of sending it empty, which is what makes
2648
+ * optional fields work without a conditional guard.
2649
+ *
2650
+ * The evaluation root is the hydrated event, so `contact.customer_pin` and
2651
+ * `ticket._purpose` are reachable directly, unprefixed. **Everything else is a
2652
+ * `$`-prefixed binding**: `$file_data` (the files this delivery carries — see
2653
+ * `FileProxyFanOutConfig` for what it holds in each mode), `$ack_id`, `$env`,
2654
+ * `$steps` (results of the steps already executed, each
2655
+ * `{statusCode, headers, body}`), `$germanDate(iso)` and `$now()`.
2656
+ * Writing `file_data[0].filename` instead of `$file_data[0].filename` yields
2657
+ * nothing — it reads a field named `file_data` on the event, which does not exist.
2658
+ *
2659
+ * Leave this empty to send the delivery's files exactly as they are: the single
2660
+ * attachment object when fanning out, the whole array when not. No mapping is
2661
+ * needed for the common case.
2662
+ *
2663
+ * Must evaluate to an object or an array. Anything else fails the delivery terminally
2664
+ * with `MAPPING_EXPRESSION_FAILED`, naming the step.
2665
+ *
2666
+ * **Only `undefined` omits a key.** `null`, `""`, `false` and `0` are values and are
2667
+ * all sent. Two traps follow from that, and one idiom avoids both:
2668
+ *
2669
+ * - `x ? $string(x)` omits the key when `x` is `0` or `""`, because JSONata reads both
2670
+ * as false. A meter number of `"0"` would silently vanish.
2671
+ * - `: undefined` is not a literal — JSONata has no `undefined` keyword, so it is a
2672
+ * path lookup that happens to find nothing. Against an event that really does carry
2673
+ * a field named `undefined`, it returns that field's value.
2647
2674
  *
2648
- * **Route every user-controlled value through the `json` helper**: the template engine
2649
- * does not escape, so `"name":"{{ params.fileName }}"` produces invalid JSON the moment
2650
- * a filename contains a quote. Write `"name": {{json params.fileName}}` instead — the
2651
- * helper emits the surrounding quotes itself and renders absent values as `null`. Use
2652
- * `{{jsonEscape v}}` if you prefer to keep your own quotes. Upload configurations whose
2653
- * body would break on such input are rejected at save time.
2675
+ * Write the **two-arm ternary with no else branch**, which omits the key when the test
2676
+ * is false: `{ "pin": $exists(contact.pin) ? $string(contact.pin) }`.
2654
2677
  *
2655
- * Handlebars block helpers work, so optional fields can be omitted rather than sent
2656
- * empty: `{{#if params.pin}},"pin": {{json params.pin}}{{/if}}`. Note that `{{/if}}}`
2657
- * fails to parse — leave a space before a closing brace: `{{/if}} }`.
2678
+ * Every `$` binding is checked at save time against the known set, so a mistyped
2679
+ * binding (`$lookup.documentType` for `$file_data[0].filename`) is rejected rather
2680
+ * than silently producing a missing key.
2681
+ *
2682
+ * Not accepted together with `body`, which the upload direction rejects outright.
2683
+ *
2684
+ * example:
2685
+ * { "documentType": "Zählerstand", "fileName": $file_data[0].filename, "fileData": $file_data[0].base64, "pin": $exists(contact.customer_pin) ? $string(contact.customer_pin) }
2686
+ */
2687
+ body_jsonata?: string;
2688
+ /**
2689
+ * Upload-only, OPTIONAL. JSONata returning a boolean, deciding whether this step
2690
+ * runs at all. Absent means it runs.
2691
+ *
2692
+ * A false result is a BREAK: this step is skipped and so is every step after it,
2693
+ * and the delivery is recorded as `skipped` rather than delivered or failed. It is
2694
+ * acknowledged and never retried, and a `STEP_DISABLED` monitoring event is emitted
2695
+ * at level `info` — a disabled step is the configuration working, not a fault.
2696
+ *
2697
+ * Reads the same bindings a body does, `$steps` included, so it can branch on what
2698
+ * an earlier step returned. This is how a delivery is filtered out: with one
2699
+ * delivery per attachment, a false result on the first step drops that file.
2700
+ *
2701
+ * An expression that throws, or returns a non-boolean, is a terminal
2702
+ * `MAPPING_EXPRESSION_FAILED` instead — a broken predicate must not read as a
2703
+ * deliberate skip.
2704
+ *
2705
+ * example:
2706
+ * $file_data[0].mime_type = "application/pdf"
2707
+ */
2708
+ enabled?: string;
2709
+ /**
2710
+ * Handlebars template for the request body (write methods only), for bodies that are
2711
+ * NOT JSON — form-encoded, XML, plain text. For a JSON body use `body_jsonata`
2712
+ * instead; it cannot produce malformed JSON.
2713
+ *
2714
+ * **Download-only.** The upload direction rejects it: use `body_jsonata`, or leave
2715
+ * that empty to send the files unchanged.
2716
+ *
2717
+ * Rendered once, against the context described on `FileProxyUseCaseConfiguration`:
2718
+ * `{{ params.* }}`, `{{ env.* }}`, `{{ steps.N.body }}`, `{{ auth_token }}`.
2719
+ *
2720
+ * If a JSON body is written here anyway, **route every user-controlled value through
2721
+ * the `json` helper**: the template engine does not escape, so
2722
+ * `"name":"{{ params.documentName }}"` produces invalid JSON the moment a value
2723
+ * contains a quote. Write `"name": {{json params.documentName}}` instead — the helper
2724
+ * emits the surrounding quotes itself and renders absent values as `null`.
2725
+ *
2726
+ * Mutually exclusive with `body_jsonata`, which is upload-only.
2658
2727
  *
2659
2728
  */
2660
2729
  body?: string;
@@ -2666,12 +2735,25 @@ declare namespace Components {
2666
2735
  /**
2667
2736
  * Upload-side settings for a file_proxy use case with `direction: upload`.
2668
2737
  * The surrounding file_proxy configuration owns WHAT and HOW to send: `fan_out`,
2669
- * `file_source`, `params_mapping`, lookups, constants, auth, and steps. This nested object
2670
- * governs upload-specific limits and how the final external response is judged. The
2738
+ * auth, and the steps with their `body_jsonata`. This nested object governs
2739
+ * upload-specific limits and how the final external response is judged. The
2671
2740
  * outbound mapping remains a pure pointer to the recipe (see `FileProxyDeliveryConfig`).
2672
2741
  *
2673
2742
  */
2674
2743
  export interface FileProxyUploadConfig {
2744
+ /**
2745
+ * Ceiling for ALL of a delivery's files together, in bytes. Capped by the platform
2746
+ * limit, which it may lower but never raise.
2747
+ *
2748
+ * Only reachable with `fan_out.enabled: false`, where one delivery carries every
2749
+ * attachment and the worker holds them all resident at once. base64 inflates each
2750
+ * by about a third, so the combined figure is what matters rather than any single
2751
+ * file's size.
2752
+ *
2753
+ * example:
2754
+ * 26214400
2755
+ */
2756
+ max_total_bytes?: number;
2675
2757
  /**
2676
2758
  * Per-file ceiling for this use case, in bytes. Files above it fail terminally with
2677
2759
  * `FILE_TOO_LARGE` before any bytes are fetched. Defaults to — and is clamped by — the
@@ -2691,26 +2773,6 @@ declare namespace Components {
2691
2773
  *
2692
2774
  */
2693
2775
  max_delivery_attempts?: number;
2694
- /**
2695
- * Optional JSONata predicate evaluated against the final step result
2696
- * (`{ statusCode, headers, body }`) to decide whether the external system really
2697
- * accepted the file. When omitted, any 2xx counts as delivered. Use this for systems
2698
- * that return 200 with an error envelope.
2699
- *
2700
- * example:
2701
- * body.status = 'OK'
2702
- */
2703
- success_when?: string;
2704
- /**
2705
- * Optional JSONata expression over the step results yielding the external system's
2706
- * identifier for the stored document. Recorded on the delivery record and on the
2707
- * `FILE_PROXY_UPLOADED` monitoring event so an operator can find the document in the
2708
- * target system.
2709
- *
2710
- * example:
2711
- * steps[-1].body.documentId
2712
- */
2713
- external_id?: string;
2714
2776
  }
2715
2777
  /**
2716
2778
  * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.
@@ -2815,9 +2877,32 @@ declare namespace Components {
2815
2877
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
2816
2878
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
2817
2879
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
2818
- * how many deliveries one event produces, `params_mapping` builds the values, and the
2819
- * `steps` place those values into requests via `{{ params.* }}`.
2820
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
2880
+ * how many deliveries one event produces, and every step builds its own request body with
2881
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
2882
+ * `upload` is REQUIRED and `response` MUST be omitted.
2883
+ *
2884
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
2885
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
2886
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
2887
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
2888
+ * guard — it is simply absent from the serialized body.
2889
+ *
2890
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
2891
+ * `file_data`, `steps` and `auth_token`. Writing
2892
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
2893
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
2894
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
2895
+ *
2896
+ * Two guards run on every rendered upload template, because single-pass rendering fails
2897
+ * quietly by default. Both are terminal, and each names what to fix:
2898
+ *
2899
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
2900
+ * Rewrite it without the backslash.
2901
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
2902
+ * parsed, because an empty value in host position turns
2903
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
2904
+ * then parses as `document`. Provision the environment variable. A key that exists and
2905
+ * is legitimately empty is fine; only absence fails.
2821
2906
  *
2822
2907
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
2823
2908
  * server-side validator, which returns an explicit message naming the offending field.
@@ -2839,9 +2924,32 @@ declare namespace Components {
2839
2924
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
2840
2925
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
2841
2926
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
2842
- * how many deliveries one event produces, `params_mapping` builds the values, and the
2843
- * `steps` place those values into requests via `{{ params.* }}`.
2844
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
2927
+ * how many deliveries one event produces, and every step builds its own request body with
2928
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
2929
+ * `upload` is REQUIRED and `response` MUST be omitted.
2930
+ *
2931
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
2932
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
2933
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
2934
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
2935
+ * guard — it is simply absent from the serialized body.
2936
+ *
2937
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
2938
+ * `file_data`, `steps` and `auth_token`. Writing
2939
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
2940
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
2941
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
2942
+ *
2943
+ * Two guards run on every rendered upload template, because single-pass rendering fails
2944
+ * quietly by default. Both are terminal, and each names what to fix:
2945
+ *
2946
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
2947
+ * Rewrite it without the backslash.
2948
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
2949
+ * parsed, because an empty value in host position turns
2950
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
2951
+ * then parses as `document`. Provision the environment variable. A key that exists and
2952
+ * is legitimately empty is fine; only absence fails.
2845
2953
  *
2846
2954
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
2847
2955
  * server-side validator, which returns an explicit message naming the offending field.
@@ -2861,111 +2969,29 @@ declare namespace Components {
2861
2969
  upload?: /**
2862
2970
  * Upload-side settings for a file_proxy use case with `direction: upload`.
2863
2971
  * The surrounding file_proxy configuration owns WHAT and HOW to send: `fan_out`,
2864
- * `file_source`, `params_mapping`, lookups, constants, auth, and steps. This nested object
2865
- * governs upload-specific limits and how the final external response is judged. The
2972
+ * auth, and the steps with their `body_jsonata`. This nested object governs
2973
+ * upload-specific limits and how the final external response is judged. The
2866
2974
  * outbound mapping remains a pure pointer to the recipe (see `FileProxyDeliveryConfig`).
2867
2975
  *
2868
2976
  */
2869
2977
  FileProxyUploadConfig;
2870
2978
  fan_out?: /**
2871
- * Splits one event into several independent deliveries.
2872
- *
2873
- * Mirrors the inbound mapping idiom, where an entity's JSONata expression returning an array
2874
- * produces one entity update per element. Made explicit with a toggle here because an upload
2875
- * is also legitimately used without splitting, and because auto-detecting "array means
2876
- * split" would make a single-element result ambiguous.
2979
+ * Whether one event produces one delivery per file, or a single delivery carrying all of
2980
+ * them. The split is always over the event's `event_attachments` — there is no expression
2981
+ * to write, because an upload only ever runs on events that declare that field.
2877
2982
  *
2878
2983
  * Each resulting delivery is fully independent: its own idempotency record, its own retry
2879
- * schedule, its own monitoring events. A four-item event can therefore end up three-of-four
2984
+ * schedule, its own monitoring events. A four-file event can therefore end up three-of-four
2880
2985
  * delivered, which is the honest state to report.
2881
2986
  *
2882
2987
  * The split is evaluated ONCE, when the event is enqueued, so item indices — and therefore
2883
2988
  * idempotency keys — stay stable across retries.
2884
2989
  *
2885
- */
2886
- FileProxyFanOutConfig;
2887
- /**
2888
- * Upload-only, REQUIRED when `direction` is `upload`. JSONata expression evaluated once
2889
- * per fan-out item, producing the `params` object that step templates read as
2890
- * `{{ params.* }}`.
2891
- *
2892
- * The evaluation root is the hydrated event, so `contact.customer_pin` and
2893
- * `ticket._purpose` are reachable directly, unprefixed.
2894
- *
2895
- * **Everything per-item is a `$`-prefixed JSONata binding**: `$item` (the fan-out
2896
- * element, absent when `fan_out` is disabled), `$file_base64` and `$file`
2897
- * (`{filename, mime_type, size_bytes}`) for the resolved file, plus `$constants`,
2898
- * `$lookups`, `$ack_id`, `$germanDate(iso)` and `$now()`. Writing `item.filename`
2899
- * instead of `$item.filename` yields nothing — it reads a field named `item` on the
2900
- * event, which does not exist.
2990
+ * Either way, expressions read the same `$file_data` binding, so no expression needs to
2991
+ * know which mode it runs in. An event carrying no attachments is recorded as `skipped`.
2901
2992
  *
2902
- * Must evaluate to an object. `constants` are shallow-merged underneath the result, so
2903
- * the expression wins on any key collision.
2904
- *
2905
- * example:
2906
- * { "documentType": $lookups.documentType, "fileName": $item.filename, "fileData": $file_base64, "pin": contact.customer_pin }
2907
2993
  */
2908
- params_mapping?: string;
2909
- /**
2910
- * Upload-only. Named translation tables resolved BEFORE `params_mapping` runs and bound
2911
- * as `$lookups`, so an expression reads `$lookups.documentType` rather than carrying a
2912
- * conditional chain. Deliberately generic: the next ERP calls the same concept
2913
- * `Belegart`.
2914
- *
2915
- */
2916
- lookups?: {
2917
- [name: string]: /**
2918
- * A named translation from a value in the event to a value the external system expects.
2919
- *
2920
- */
2921
- FileProxyLookup;
2922
- };
2923
- /**
2924
- * Upload-only. Fixed values shallow-merged UNDERNEATH the `params_mapping` result — the
2925
- * expression wins on key collisions, constants only add. Use for the unchanging strings
2926
- * (tenant, sender, channel) that would otherwise be repeated in every expression.
2927
- *
2928
- * example:
2929
- * {
2930
- * "mandant": "EPILOT_WNG",
2931
- * "sender": "KSSP"
2932
- * }
2933
- */
2934
- constants?: {
2935
- [name: string]: any;
2936
- };
2937
- /**
2938
- * Upload-only. JSONata returning the attachment-shaped object (`entity_id`, optionally
2939
- * `s3ref`) whose bytes should be fetched for this delivery. The evaluation root is the
2940
- * event; the fan-out element is the `$item` binding, same as in `params_mapping`.
2941
- *
2942
- * Usually unnecessary: when the fan-out item is itself attachment-shaped it is used
2943
- * directly. Supply this only when splitting over something that is not the attachment
2944
- * — for example one delivery per meter reading, each carrying a file referenced from
2945
- * elsewhere in the event. When nothing resolves, no file is fetched and `file_base64`
2946
- * is undefined, which is valid for a fan-out that sends metadata only.
2947
- *
2948
- * example:
2949
- * event_attachments[entity_id = $item.file_id][0]
2950
- */
2951
- file_source?: string;
2952
- /**
2953
- * Upload-only. Params that MUST be present after `params_mapping` runs. Any listed name
2954
- * resolving to null or undefined fails the delivery terminally with
2955
- * `REQUIRED_PARAM_MISSING` before a single step executes.
2956
- *
2957
- * This is the generic net behind a lookup's `on_miss: fail`: it catches a required field
2958
- * going missing for any reason, so the external system never receives a body that is
2959
- * silently short a field its API requires.
2960
- *
2961
- * example:
2962
- * [
2963
- * "documentType",
2964
- * "fileName",
2965
- * "fileData"
2966
- * ]
2967
- */
2968
- required_params?: string[];
2994
+ FileProxyFanOutConfig;
2969
2995
  /**
2970
2996
  * Optional secure proxy attachment for routing all outbound file proxy requests.
2971
2997
  * Only `use_case_slug` is supported and the referenced secure_proxy use case
@@ -2995,8 +3021,8 @@ declare namespace Components {
2995
3021
  allowed_origins?: string /* uri ^https?:// */[];
2996
3022
  /**
2997
3023
  * Ordered list of HTTP steps to execute. For `download` these retrieve the file; for
2998
- * `upload` they deliver it, each assembling its own request body from `{{ params.* }}`
2999
- * built by `params_mapping`.
3024
+ * `upload` they deliver it, each assembling its own request body `body_jsonata` for
3025
+ * JSON, `body` for anything else.
3000
3026
  *
3001
3027
  */
3002
3028
  steps: [
@@ -3084,9 +3110,32 @@ declare namespace Components {
3084
3110
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
3085
3111
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
3086
3112
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
3087
- * how many deliveries one event produces, `params_mapping` builds the values, and the
3088
- * `steps` place those values into requests via `{{ params.* }}`.
3089
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
3113
+ * how many deliveries one event produces, and every step builds its own request body with
3114
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
3115
+ * `upload` is REQUIRED and `response` MUST be omitted.
3116
+ *
3117
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
3118
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
3119
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
3120
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
3121
+ * guard — it is simply absent from the serialized body.
3122
+ *
3123
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
3124
+ * `file_data`, `steps` and `auth_token`. Writing
3125
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
3126
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
3127
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
3128
+ *
3129
+ * Two guards run on every rendered upload template, because single-pass rendering fails
3130
+ * quietly by default. Both are terminal, and each names what to fix:
3131
+ *
3132
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
3133
+ * Rewrite it without the backslash.
3134
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
3135
+ * parsed, because an empty value in host position turns
3136
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
3137
+ * then parses as `document`. Provision the environment variable. A key that exists and
3138
+ * is legitimately empty is fine; only absence fails.
3090
3139
  *
3091
3140
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
3092
3141
  * server-side validator, which returns an explicit message naming the offending field.
@@ -5363,7 +5412,7 @@ declare namespace Components {
5363
5412
  */
5364
5413
  name: string;
5365
5414
  /**
5366
- * JSONata expression to transform the event payload. Required for webhook delivery, ignored for poll delivery, and rejected for file_proxy delivery — a file_proxy payload is built by the referenced use case's `params_mapping`, so accepting an expression here would silently do nothing.
5415
+ * JSONata expression to transform the event payload. Required for webhook delivery, ignored for poll delivery, and rejected for file_proxy delivery — a file_proxy payload is built by the referenced use case's steps, so accepting an expression here would silently do nothing.
5367
5416
  * example:
5368
5417
  * { "id": entity._id, "customer": entity.customer_name }
5369
5418
  */
@@ -7076,9 +7125,32 @@ declare namespace Components {
7076
7125
  * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
7077
7126
  * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
7078
7127
  * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
7079
- * how many deliveries one event produces, `params_mapping` builds the values, and the
7080
- * `steps` place those values into requests via `{{ params.* }}`.
7081
- * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
7128
+ * how many deliveries one event produces, and every step builds its own request body with
7129
+ * `body_jsonata` or leaves it empty to send the delivery's files unchanged.
7130
+ * `upload` is REQUIRED and `response` MUST be omitted.
7131
+ *
7132
+ * Two expression languages, split by what they produce. **Handlebars composes strings**:
7133
+ * `url` and `headers` on upload, plus a form-encoded, XML or plain-text `body` on
7134
+ * download. **JSONata produces data**: `body_jsonata` and the per-step `enabled`.
7135
+ * JSONata omits keys whose value is undefined, so an optional field needs no conditional
7136
+ * guard — it is simply absent from the serialized body.
7137
+ *
7138
+ * Handlebars templates are rendered EXACTLY ONCE, against a single context holding `env`,
7139
+ * `file_data`, `steps` and `auth_token`. Writing
7140
+ * `{{ env.some_var }}` resolves it. The legacy `\{{ env.some_var }}` escape belongs to the
7141
+ * two-pass renderer and is NOT rewritten here — it renders as the literal text
7142
+ * `{{ env.some_var }}`, which is rejected (see below) rather than shipped.
7143
+ *
7144
+ * Two guards run on every rendered upload template, because single-pass rendering fails
7145
+ * quietly by default. Both are terminal, and each names what to fix:
7146
+ *
7147
+ * - **residual `{{` after rendering** — a configuration still carrying the `\{{` escape.
7148
+ * Rewrite it without the backslash.
7149
+ * - **a referenced `env` key absent from the environment** — checked BEFORE the URL is
7150
+ * parsed, because an empty value in host position turns
7151
+ * `https://{{env.host}}/document/import` into `https:///document/import`, whose host
7152
+ * then parses as `document`. Provision the environment variable. A key that exists and
7153
+ * is legitimately empty is fine; only absence fails.
7082
7154
  *
7083
7155
  * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
7084
7156
  * server-side validator, which returns an explicit message naming the offending field.
@@ -10471,7 +10543,6 @@ type ExternalMonitoringSpan = Components.Schemas.ExternalMonitoringSpan;
10471
10543
  type FileProxyAuth = Components.Schemas.FileProxyAuth;
10472
10544
  type FileProxyDeliveryConfig = Components.Schemas.FileProxyDeliveryConfig;
10473
10545
  type FileProxyFanOutConfig = Components.Schemas.FileProxyFanOutConfig;
10474
- type FileProxyLookup = Components.Schemas.FileProxyLookup;
10475
10546
  type FileProxyParam = Components.Schemas.FileProxyParam;
10476
10547
  type FileProxyResponseConfig = Components.Schemas.FileProxyResponseConfig;
10477
10548
  type FileProxySecureProxyAttachment = Components.Schemas.FileProxySecureProxyAttachment;
@@ -10617,4 +10688,4 @@ type ValidateErpImportRequest = Components.Schemas.ValidateErpImportRequest;
10617
10688
  type WebhookDeliveryConfig = Components.Schemas.WebhookDeliveryConfig;
10618
10689
  type WebhookStatus = Components.Schemas.WebhookStatus;
10619
10690
 
10620
- export { type FileProxyAuth as $, type AccessLogEntry as A, type EmbeddedUseCaseRequest as B, type Client as C, type DeleteIntegrationAppMappingRequest as D, type EmbeddedFileProxyUseCaseRequest as E, type EmbeddedUseCaseRequestBase as F, type EntityPruneScopeUpdate as G, type EntityUpdate as H, type EnvVarRefConfig as I, type EnvironmentFieldConfig as J, type ErpEvent as K, type ErpEventV3 as L, type ErpImportError as M, type ErpImportFilePreview as N, type OperationMethods as O, Paths as P, type ErpImportIssue as Q, type ErpImportJob as R, type ErpImportList as S, type ErpImportProgress as T, type ErpImportUseCaseSuggestion as U, type ErpImportValidation as V, type ErpUpdatesEventsV2Request as W, type ErpUpdatesEventsV3Request as X, type ErrorResponseBase as Y, type ExecuteErpImportRequest as Z, type ExternalMonitoringSpan as _, Components as a, type NotificationHistoryResponse as a$, type FileProxyDeliveryConfig as a0, type FileProxyFanOutConfig as a1, type FileProxyLookup as a2, type FileProxyParam as a3, type FileProxyResponseConfig as a4, type FileProxySecureProxyAttachment as a5, type FileProxyStep as a6, type FileProxyUploadConfig as a7, type FileProxyUrlConfig as a8, type FileProxyUrlParam as a9, type IntegrationNotificationConfig as aA, type IntegrationObjectV1 as aB, type IntegrationSettings as aC, type IntegrationWithUseCases as aD, type ManagedCallAuth as aE, type ManagedCallErrorResponse as aF, type ManagedCallExecuteRequest as aG, type ManagedCallExecuteResponse as aH, type ManagedCallOperation as aI, type ManagedCallOperationConfig as aJ, type ManagedCallUseCase as aK, type ManagedCallUseCaseHistoryEntry as aL, type MappingSimulationRequest as aM, type MappingSimulationResponse as aN, type MappingSimulationV2Request as aO, type MappingSimulationWarning as aP, type MeterReadingPruneScopeConfig as aQ, type MeterReadingPruneScopeUpdate as aR, type MeterReadingUpdate as aS, type MeterUniqueIdsConfig as aT, type MonitoringEventV2 as aU, type MonitoringStats as aV, type MonitoringStatsV2 as aW, type MonitoringTraceResponse as aX, type NotificationChannelSet as aY, type NotificationDigestConfig as aZ, type NotificationHistoryItem as a_, type FileProxyUrlParams as aa, type FileProxyUseCase as ab, type FileProxyUseCaseConfiguration as ac, type FileProxyUseCaseHistoryEntry as ad, type GenerateTypesPreviewResponse as ae, type GenerateTypesRequest as af, type GenerateTypesResponse as ag, type GetMonitoringStatsRequest as ah, type GetMonitoringStatsV2Request as ai, type GetMonitoringTimeSeriesRequest as aj, type GetMonitoringTimeSeriesV2Request as ak, type InboundIntegrationEventConfiguration as al, type InboundMonitoringEvent as am, type InboundUseCase as an, type InboundUseCaseHistoryEntry as ao, type IngestExternalMonitoringEventsRequest as ap, type IngestExternalMonitoringEventsResponse as aq, type Integration as ar, type IntegrationAppMapping as as, type IntegrationConfigurationV1 as at, type IntegrationConfigurationV2 as au, type IntegrationEditableFields as av, type IntegrationEntity as aw, type IntegrationEntityField as ax, type IntegrationFieldV1 as ay, type IntegrationMeterReading as az, type PathsDictionary as b, type UnblockOutboundStreamRequest as b$, type NotificationRecipient as b0, type NotificationRule as b1, type NotificationRuleStatus as b2, type NotificationStatusResponse as b3, type OutboundConflict as b4, type OutboundDlqListResponse as b5, type OutboundDlqMessage as b6, type OutboundFileProxyTargetStatus as b7, type OutboundIntegrationEventConfiguration as b8, type OutboundMapping as b9, type RelationRefsConfig as bA, type RelationUniqueIdField as bB, type RepeatableFieldType as bC, type ReplayEventsRequest as bD, type RuleBaselineBucket as bE, type RuleBaselineStatus as bF, type S3Reference as bG, type SecureProxyRequest as bH, type SecureProxyResponse as bI, type SecureProxySummary as bJ, type SecureProxyUpstreamError as bK, type SecureProxyUseCase as bL, type SecureProxyUseCaseConfiguration as bM, type SecureProxyUseCaseHistoryEntry as bN, type SecureProxyWhitelist as bO, type SecureProxyWhitelistUpdate as bP, type SetIntegrationAppMappingRequest as bQ, type SuggestErpImportUseCasesResponse as bR, type TestNotificationRequest as bS, type TestNotificationResponse as bT, type TimeSeriesBreakdownItemV2 as bU, type TimeSeriesBucket as bV, type TimeSeriesBucketV2 as bW, type TriggerErpActionRequest as bX, type TriggerWebhookResp as bY, type TypeAnnotations as bZ, type TypeDescriptor as b_, type OutboundMessage as ba, type OutboundMonitoringEvent as bb, type OutboundPollStatus as bc, type OutboundStatusResponse as bd, type OutboundUseCase as be, type OutboundUseCaseHistoryEntry as bf, type OutboundUseCaseStatus as bg, type PollDeliveryConfig as bh, type PollOutboundMessagesRequest as bi, type PollOutboundMessagesResponse as bj, type PortalOrigin as bk, type PortalRefConfig as bl, type PortalRefFilter as bm, type PruneScopeConfig as bn, type QueryAccessLogsRequest as bo, type QueryEventsRequest as bp, type QueryInboundMonitoringEventsRequest as bq, type QueryMonitoringEventsV2Request as br, type QueryOutboundMonitoringEventsRequest as bs, type RedriveOutboundDlqRequest as bt, type RedriveOutboundDlqResponse as bu, type RedriveOutboundDlqResult as bv, type RelationConfig as bw, type RelationItemConfig as bx, type RelationRefItemConfig as by, type RelationRefValueConfig as bz, type AckOutboundMessagesRequest as c, type UnblockOutboundStreamResponse as c0, type UpdateFileProxyUseCaseRequest as c1, type UpdateInboundUseCaseRequest as c2, type UpdateIntegrationRequest as c3, type UpdateManagedCallUseCaseRequest as c4, type UpdateOutboundUseCaseRequest as c5, type UpdateSecureProxyUseCaseRequest as c6, type UpdateUseCaseRequest as c7, type UpdateUseCaseRequestBase as c8, type UpsertDocumentationPageRequest as c9, type UpsertIntegrationWithUseCasesRequest as ca, type UseCase as cb, type UseCaseBase as cc, type UseCaseHistoryEntry as cd, type UseCaseHistoryEntryBase as ce, type UseCaseTypePreview as cf, type ValidateErpImportRequest as cg, type WebhookDeliveryConfig as ch, type WebhookStatus as ci, type AckOutboundMessagesResponse as d, type AckResult as e, type AutoRefreshSettings as f, type CommitTypesRequest as g, type CommitTypesResponse as h, type ConnectorConfig as i, type CreateErpImportRequest as j, type CreateErpImportResponse as k, type CreateFileProxyUseCaseRequest as l, type CreateInboundUseCaseRequest as m, type CreateIntegrationRequest as n, type CreateManagedCallUseCaseRequest as o, type CreateOutboundUseCaseRequest as p, type CreateSecureProxyUseCaseRequest as q, type CreateUseCaseRequest as r, type CreateUseCaseRequestBase as s, type DeliveryConfig as t, type DocumentationPage as u, type DocumentationPageSummary as v, type EmbeddedInboundUseCaseRequest as w, type EmbeddedManagedCallUseCaseRequest as x, type EmbeddedOutboundUseCaseRequest as y, type EmbeddedSecureProxyUseCaseRequest as z };
10691
+ export { type FileProxyAuth as $, type AccessLogEntry as A, type EmbeddedUseCaseRequest as B, type Client as C, type DeleteIntegrationAppMappingRequest as D, type EmbeddedFileProxyUseCaseRequest as E, type EmbeddedUseCaseRequestBase as F, type EntityPruneScopeUpdate as G, type EntityUpdate as H, type EnvVarRefConfig as I, type EnvironmentFieldConfig as J, type ErpEvent as K, type ErpEventV3 as L, type ErpImportError as M, type ErpImportFilePreview as N, type OperationMethods as O, Paths as P, type ErpImportIssue as Q, type ErpImportJob as R, type ErpImportList as S, type ErpImportProgress as T, type ErpImportUseCaseSuggestion as U, type ErpImportValidation as V, type ErpUpdatesEventsV2Request as W, type ErpUpdatesEventsV3Request as X, type ErrorResponseBase as Y, type ExecuteErpImportRequest as Z, type ExternalMonitoringSpan as _, Components as a, type NotificationRecipient as a$, type FileProxyDeliveryConfig as a0, type FileProxyFanOutConfig as a1, type FileProxyParam as a2, type FileProxyResponseConfig as a3, type FileProxySecureProxyAttachment as a4, type FileProxyStep as a5, type FileProxyUploadConfig as a6, type FileProxyUrlConfig as a7, type FileProxyUrlParam as a8, type FileProxyUrlParams as a9, type IntegrationObjectV1 as aA, type IntegrationSettings as aB, type IntegrationWithUseCases as aC, type ManagedCallAuth as aD, type ManagedCallErrorResponse as aE, type ManagedCallExecuteRequest as aF, type ManagedCallExecuteResponse as aG, type ManagedCallOperation as aH, type ManagedCallOperationConfig as aI, type ManagedCallUseCase as aJ, type ManagedCallUseCaseHistoryEntry as aK, type MappingSimulationRequest as aL, type MappingSimulationResponse as aM, type MappingSimulationV2Request as aN, type MappingSimulationWarning as aO, type MeterReadingPruneScopeConfig as aP, type MeterReadingPruneScopeUpdate as aQ, type MeterReadingUpdate as aR, type MeterUniqueIdsConfig as aS, type MonitoringEventV2 as aT, type MonitoringStats as aU, type MonitoringStatsV2 as aV, type MonitoringTraceResponse as aW, type NotificationChannelSet as aX, type NotificationDigestConfig as aY, type NotificationHistoryItem as aZ, type NotificationHistoryResponse as a_, type FileProxyUseCase as aa, type FileProxyUseCaseConfiguration as ab, type FileProxyUseCaseHistoryEntry as ac, type GenerateTypesPreviewResponse as ad, type GenerateTypesRequest as ae, type GenerateTypesResponse as af, type GetMonitoringStatsRequest as ag, type GetMonitoringStatsV2Request as ah, type GetMonitoringTimeSeriesRequest as ai, type GetMonitoringTimeSeriesV2Request as aj, type InboundIntegrationEventConfiguration as ak, type InboundMonitoringEvent as al, type InboundUseCase as am, type InboundUseCaseHistoryEntry as an, type IngestExternalMonitoringEventsRequest as ao, type IngestExternalMonitoringEventsResponse as ap, type Integration as aq, type IntegrationAppMapping as ar, type IntegrationConfigurationV1 as as, type IntegrationConfigurationV2 as at, type IntegrationEditableFields as au, type IntegrationEntity as av, type IntegrationEntityField as aw, type IntegrationFieldV1 as ax, type IntegrationMeterReading as ay, type IntegrationNotificationConfig as az, type PathsDictionary as b, type UnblockOutboundStreamResponse as b$, type NotificationRule as b0, type NotificationRuleStatus as b1, type NotificationStatusResponse as b2, type OutboundConflict as b3, type OutboundDlqListResponse as b4, type OutboundDlqMessage as b5, type OutboundFileProxyTargetStatus as b6, type OutboundIntegrationEventConfiguration as b7, type OutboundMapping as b8, type OutboundMessage as b9, type RelationUniqueIdField as bA, type RepeatableFieldType as bB, type ReplayEventsRequest as bC, type RuleBaselineBucket as bD, type RuleBaselineStatus as bE, type S3Reference as bF, type SecureProxyRequest as bG, type SecureProxyResponse as bH, type SecureProxySummary as bI, type SecureProxyUpstreamError as bJ, type SecureProxyUseCase as bK, type SecureProxyUseCaseConfiguration as bL, type SecureProxyUseCaseHistoryEntry as bM, type SecureProxyWhitelist as bN, type SecureProxyWhitelistUpdate as bO, type SetIntegrationAppMappingRequest as bP, type SuggestErpImportUseCasesResponse as bQ, type TestNotificationRequest as bR, type TestNotificationResponse as bS, type TimeSeriesBreakdownItemV2 as bT, type TimeSeriesBucket as bU, type TimeSeriesBucketV2 as bV, type TriggerErpActionRequest as bW, type TriggerWebhookResp as bX, type TypeAnnotations as bY, type TypeDescriptor as bZ, type UnblockOutboundStreamRequest as b_, type OutboundMonitoringEvent as ba, type OutboundPollStatus as bb, type OutboundStatusResponse as bc, type OutboundUseCase as bd, type OutboundUseCaseHistoryEntry as be, type OutboundUseCaseStatus as bf, type PollDeliveryConfig as bg, type PollOutboundMessagesRequest as bh, type PollOutboundMessagesResponse as bi, type PortalOrigin as bj, type PortalRefConfig as bk, type PortalRefFilter as bl, type PruneScopeConfig as bm, type QueryAccessLogsRequest as bn, type QueryEventsRequest as bo, type QueryInboundMonitoringEventsRequest as bp, type QueryMonitoringEventsV2Request as bq, type QueryOutboundMonitoringEventsRequest as br, type RedriveOutboundDlqRequest as bs, type RedriveOutboundDlqResponse as bt, type RedriveOutboundDlqResult as bu, type RelationConfig as bv, type RelationItemConfig as bw, type RelationRefItemConfig as bx, type RelationRefValueConfig as by, type RelationRefsConfig as bz, type AckOutboundMessagesRequest as c, type UpdateFileProxyUseCaseRequest as c0, type UpdateInboundUseCaseRequest as c1, type UpdateIntegrationRequest as c2, type UpdateManagedCallUseCaseRequest as c3, type UpdateOutboundUseCaseRequest as c4, type UpdateSecureProxyUseCaseRequest as c5, type UpdateUseCaseRequest as c6, type UpdateUseCaseRequestBase as c7, type UpsertDocumentationPageRequest as c8, type UpsertIntegrationWithUseCasesRequest as c9, type UseCase as ca, type UseCaseBase as cb, type UseCaseHistoryEntry as cc, type UseCaseHistoryEntryBase as cd, type UseCaseTypePreview as ce, type ValidateErpImportRequest as cf, type WebhookDeliveryConfig as cg, type WebhookStatus as ch, type AckOutboundMessagesResponse as d, type AckResult as e, type AutoRefreshSettings as f, type CommitTypesRequest as g, type CommitTypesResponse as h, type ConnectorConfig as i, type CreateErpImportRequest as j, type CreateErpImportResponse as k, type CreateFileProxyUseCaseRequest as l, type CreateInboundUseCaseRequest as m, type CreateIntegrationRequest as n, type CreateManagedCallUseCaseRequest as o, type CreateOutboundUseCaseRequest as p, type CreateSecureProxyUseCaseRequest as q, type CreateUseCaseRequest as r, type CreateUseCaseRequestBase as s, type DeliveryConfig as t, type DocumentationPage as u, type DocumentationPageSummary as v, type EmbeddedInboundUseCaseRequest as w, type EmbeddedManagedCallUseCaseRequest as x, type EmbeddedOutboundUseCaseRequest as y, type EmbeddedSecureProxyUseCaseRequest as z };