@epilot/sdk 2.18.6 → 2.18.8

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 (126) hide show
  1. package/definitions/integration-toolkit-runtime.json +1 -1
  2. package/definitions/integration-toolkit.json +472 -21
  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 +8 -8
  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 +2 -2
  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.js +1 -1
  77. package/dist/apis/pricing-tier.cjs +6 -6
  78. package/dist/apis/pricing-tier.js +1 -1
  79. package/dist/apis/pricing.cjs +6 -6
  80. package/dist/apis/pricing.js +1 -1
  81. package/dist/apis/purpose.cjs +6 -6
  82. package/dist/apis/purpose.js +1 -1
  83. package/dist/apis/query.cjs +6 -6
  84. package/dist/apis/query.js +1 -1
  85. package/dist/apis/sandbox.cjs +6 -6
  86. package/dist/apis/sandbox.js +1 -1
  87. package/dist/apis/sharing.cjs +6 -6
  88. package/dist/apis/sharing.js +1 -1
  89. package/dist/apis/snapshot.cjs +6 -6
  90. package/dist/apis/snapshot.js +1 -1
  91. package/dist/apis/submission.cjs +6 -6
  92. package/dist/apis/submission.js +1 -1
  93. package/dist/apis/target.cjs +6 -6
  94. package/dist/apis/target.js +1 -1
  95. package/dist/apis/targeting.cjs +6 -6
  96. package/dist/apis/targeting.js +1 -1
  97. package/dist/apis/template-variables.cjs +6 -6
  98. package/dist/apis/template-variables.js +1 -1
  99. package/dist/apis/user.cjs +6 -6
  100. package/dist/apis/user.js +1 -1
  101. package/dist/apis/validation-rules.cjs +6 -6
  102. package/dist/apis/validation-rules.js +1 -1
  103. package/dist/apis/webhooks.cjs +6 -6
  104. package/dist/apis/webhooks.js +1 -1
  105. package/dist/apis/workflow-definition.cjs +6 -6
  106. package/dist/apis/workflow-definition.js +1 -1
  107. package/dist/apis/workflow.cjs +6 -6
  108. package/dist/apis/workflow.js +1 -1
  109. package/dist/{chunk-MIKSJIFK.cjs → chunk-JMRPVDMK.cjs} +2 -2
  110. package/dist/{chunk-TAQOJW6T.js → chunk-M44TEEFZ.js} +2 -2
  111. package/dist/{chunk-RXFXAZK3.cjs → chunk-TIH5X7Q4.cjs} +1 -1
  112. package/dist/{chunk-5OOGTDF2.js → chunk-YWZCVCG2.js} +1 -1
  113. package/dist/index.cjs +10 -10
  114. package/dist/index.d.cts +1 -1
  115. package/dist/index.d.ts +1 -1
  116. package/dist/index.js +2 -2
  117. package/dist/integration-toolkit-OSK5M75F.js +7 -0
  118. package/dist/integration-toolkit-W5IENOJW.cjs +7 -0
  119. package/dist/{integration-toolkit-runtime-2MBB4EOE.js → integration-toolkit-runtime-6J2KUTFL.js} +1 -1
  120. package/dist/{integration-toolkit-runtime-VUI4NCRJ.cjs → integration-toolkit-runtime-REEOXZO6.cjs} +2 -2
  121. package/dist/{integration-toolkit.d-E2nrIdIM.d.cts → integration-toolkit.d-D5LjhCQB.d.cts} +685 -46
  122. package/dist/{integration-toolkit.d-E2nrIdIM.d.ts → integration-toolkit.d-D5LjhCQB.d.ts} +685 -46
  123. package/docs/integration-toolkit.md +543 -146
  124. package/package.json +1 -1
  125. package/dist/integration-toolkit-63NIMAHB.js +0 -7
  126. package/dist/integration-toolkit-7NCK7Z5G.cjs +0 -7
@@ -1338,16 +1338,22 @@ declare namespace Components {
1338
1338
  */
1339
1339
  latest_types_package_name?: string;
1340
1340
  }
1341
+ /**
1342
+ * Register an already-uploaded file as an import. The use case is chosen later, via `:validate` — upload and interpretation are separate decisions.
1343
+ */
1341
1344
  export interface CreateErpImportRequest {
1342
1345
  s3_reference: S3Reference;
1343
- integration_id: string;
1344
- use_case_slug?: string;
1346
+ /**
1347
+ * Return a sample of the file's first rows. Informational only — `:validate` is still the authority. `preview` is present iff this is true.
1348
+ */
1349
+ include_preview?: boolean;
1345
1350
  }
1346
1351
  export interface CreateErpImportResponse {
1347
1352
  /**
1348
1353
  * `imp_{ULID}` — time-ordered, also used as the job's correlation_id.
1349
1354
  */
1350
1355
  import_id: string;
1356
+ preview?: /* Sample of the file's first rows, using the same parser as `:validate`. `status` is the outcome of this read, not a verdict on the file. */ ErpImportFilePreview;
1351
1357
  }
1352
1358
  export interface CreateFileProxyUseCaseRequest {
1353
1359
  /**
@@ -1368,11 +1374,25 @@ declare namespace Components {
1368
1374
  */
1369
1375
  type: "file_proxy";
1370
1376
  configuration?: /**
1371
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
1377
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
1378
+ * between epilot and an external document system, in either direction (see `direction`).
1379
+ *
1380
+ * **Download** (`direction: download`, the default) fetches a file from the external system
1381
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
1382
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
1383
+ * The `orgId` is included in the signed URL to establish organization context without
1384
+ * requiring authentication. Additional use-case-specific parameters are declared in the
1385
+ * `params` array. `response` is REQUIRED for download use cases.
1372
1386
  *
1373
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
1374
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
1375
- * Additional use-case-specific parameters are declared in the `params` array.
1387
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
1388
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
1389
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
1390
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
1391
+ * `steps` place those values into requests via `{{ params.* }}`.
1392
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
1393
+ *
1394
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
1395
+ * server-side validator, which returns an explicit message naming the offending field.
1376
1396
  *
1377
1397
  */
1378
1398
  FileProxyUseCaseConfiguration;
@@ -1525,9 +1545,26 @@ declare namespace Components {
1525
1545
  component_id: string; // uuid
1526
1546
  }
1527
1547
  /**
1528
- * Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload)
1548
+ * Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload); file_proxy = one push per event attachment to an external document system, through a file_proxy use case (JSONata-transformed payload carrying the file bytes)
1529
1549
  */
1530
- export type DeliveryConfig = /* Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload) */ /* Push delivery of the transformed event to a webhook via svc-webhooks */ WebhookDeliveryConfig | /* Pull-based queue delivery. Items carry the raw standardized event-catalog payload; no JSONata mapping is applied in poll mode. Consumers fetch and acknowledge items via the poll API. */ PollDeliveryConfig;
1550
+ export type DeliveryConfig = /* Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload); file_proxy = one push per event attachment to an external document system, through a file_proxy use case (JSONata-transformed payload carrying the file bytes) */ /* Push delivery of the transformed event to a webhook via svc-webhooks */ WebhookDeliveryConfig | /* Pull-based queue delivery. Items carry the raw standardized event-catalog payload; no JSONata mapping is applied in poll mode. Consumers fetch and acknowledge items via the poll API. */ PollDeliveryConfig | /**
1551
+ * Push delivery to an external document system through a `file_proxy` use case.
1552
+ *
1553
+ * A pure pointer, deliberately. The outbound use case decides WHEN to deliver — its event
1554
+ * name plus `event_filter` — and the referenced `file_proxy` use case decides WHAT and HOW:
1555
+ * which items to fan out over (`fan_out`), what values to build (`params_mapping`,
1556
+ * `lookups`, `constants`), and the steps that send them. Keeping every file concern on the
1557
+ * file_proxy side is what lets one upload recipe be shared by several event subscriptions
1558
+ * without duplicating any of it.
1559
+ *
1560
+ * `jsonata_expression` on the mapping is NOT used for this delivery type and is rejected.
1561
+ *
1562
+ * The slug is resolved at delivery time, not at save time, so use cases can be saved in any
1563
+ * order; a dangling reference surfaces as a `USE_CASE_NOT_FOUND` monitoring event naming
1564
+ * the referencing mapping.
1565
+ *
1566
+ */
1567
+ FileProxyDeliveryConfig;
1531
1568
  export interface EmbeddedFileProxyUseCaseRequest {
1532
1569
  /**
1533
1570
  * Optional use case ID for update matching.
@@ -1559,11 +1596,25 @@ declare namespace Components {
1559
1596
  */
1560
1597
  type: "file_proxy";
1561
1598
  configuration?: /**
1562
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
1599
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
1600
+ * between epilot and an external document system, in either direction (see `direction`).
1563
1601
  *
1564
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
1565
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
1566
- * Additional use-case-specific parameters are declared in the `params` array.
1602
+ * **Download** (`direction: download`, the default) fetches a file from the external system
1603
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
1604
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
1605
+ * The `orgId` is included in the signed URL to establish organization context without
1606
+ * requiring authentication. Additional use-case-specific parameters are declared in the
1607
+ * `params` array. `response` is REQUIRED for download use cases.
1608
+ *
1609
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
1610
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
1611
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
1612
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
1613
+ * `steps` place those values into requests via `{{ params.* }}`.
1614
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
1615
+ *
1616
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
1617
+ * server-side validator, which returns an explicit message naming the offending field.
1567
1618
  *
1568
1619
  */
1569
1620
  FileProxyUseCaseConfiguration;
@@ -2040,6 +2091,23 @@ declare namespace Components {
2040
2091
  */
2041
2092
  message: string;
2042
2093
  }
2094
+ /**
2095
+ * Sample of the file's first rows, using the same parser as `:validate`. `status` is the outcome of this read, not a verdict on the file.
2096
+ */
2097
+ export interface ErpImportFilePreview {
2098
+ /**
2099
+ * Treat an unrecognized value as "no preview available". Values may be added. UNREADABLE covers empty, header-only, malformed, or gone — there is no breakdown; `:validate` reports the reason.
2100
+ */
2101
+ status: "AVAILABLE" | "FORMAT_UNSUPPORTED" | "UNREADABLE";
2102
+ /**
2103
+ * Effective column names (trimmed, duplicates collapsed). Set iff `status` is AVAILABLE.
2104
+ */
2105
+ columns?: string[];
2106
+ /**
2107
+ * Up to the first 5 data rows, aligned to `columns`.
2108
+ */
2109
+ rows?: string[][];
2110
+ }
2043
2111
  /**
2044
2112
  * A problem found during validation, scoped to the file as a whole rather than to individual rows. See `code` for the kinds reported.
2045
2113
  */
@@ -2066,14 +2134,17 @@ declare namespace Components {
2066
2134
  import_id: string;
2067
2135
  org_id: string;
2068
2136
  created_by?: string;
2069
- integration_id: string;
2070
2137
  /**
2071
- * The inbound use case whose mapping drives both phases.
2138
+ * The integration owning the chosen use case. Absent until the first `:validate`.
2139
+ */
2140
+ integration_id?: string;
2141
+ /**
2142
+ * The inbound use case whose mapping drives both phases. Absent until the first `:validate`, and MUTABLE — re-validating with a different use case replaces it.
2072
2143
  */
2073
2144
  use_case_slug?: string;
2074
2145
  format: "csv" | "xlsx";
2075
2146
  /**
2076
- * PENDING → VALIDATING → READY → PROCESSING → IMPORTED, with FAILED reachable from any working status, and CANCELLING → CANCELLED reachable from VALIDATING or PROCESSING via :abort. IMPORTED, FAILED and CANCELLED are terminal and final.
2147
+ * PENDING → VALIDATING → READY → PROCESSING → IMPORTED, with FAILED reachable from any working status, and CANCELLING → CANCELLED reachable from VALIDATING or PROCESSING via :abort. Only IMPORTED and CANCELLED are terminal. READY and FAILED both accept a further `:validate`, which is how a wrong use case is corrected without re-uploading the file.
2077
2148
  * IMPORTED means every row was handed to the platform, not that the platform finished — per-row outcomes live in monitoring, filtered by correlation_id. A file that fails validation is FAILED with error.code = VALIDATION_BLOCKED.
2078
2149
  * READY is legitimately idle for as long as the user takes to confirm, so it carries no running work and never goes stale.
2079
2150
  * CANCELLING is transient and cooperative: the abort has been recorded but the worker only notices at its next batch boundary. Rows already published stay published — a stop is not a rollback.
@@ -2116,6 +2187,24 @@ declare namespace Components {
2116
2187
  */
2117
2188
  total_rows?: number;
2118
2189
  }
2190
+ export interface ErpImportUseCaseSuggestion {
2191
+ integration_id: string;
2192
+ integration_name: string;
2193
+ use_case_slug: string;
2194
+ use_case_name: string;
2195
+ /**
2196
+ * How many distinct entity schemas this mapping uses.
2197
+ */
2198
+ entity_types: number;
2199
+ /**
2200
+ * How many of the FILE's columns this use case reads, by exact trimmed name.
2201
+ */
2202
+ matched_columns: number;
2203
+ /**
2204
+ * Columns in the file. Identical across entries; repeated per entry so each row renders standalone as "matches N of your M columns".
2205
+ */
2206
+ file_columns: number;
2207
+ }
2119
2208
  /**
2120
2209
  * Validate-phase summary: what the file will create, and whether it may be confirmed. Absent until the validate phase completes. No per-row detail is kept — a rejected file is corrected and imported again.
2121
2210
  */
@@ -2302,6 +2391,110 @@ declare namespace Components {
2302
2391
  [name: string]: string;
2303
2392
  };
2304
2393
  }
2394
+ /**
2395
+ * Push delivery to an external document system through a `file_proxy` use case.
2396
+ *
2397
+ * A pure pointer, deliberately. The outbound use case decides WHEN to deliver — its event
2398
+ * name plus `event_filter` — and the referenced `file_proxy` use case decides WHAT and HOW:
2399
+ * which items to fan out over (`fan_out`), what values to build (`params_mapping`,
2400
+ * `lookups`, `constants`), and the steps that send them. Keeping every file concern on the
2401
+ * file_proxy side is what lets one upload recipe be shared by several event subscriptions
2402
+ * without duplicating any of it.
2403
+ *
2404
+ * `jsonata_expression` on the mapping is NOT used for this delivery type and is rejected.
2405
+ *
2406
+ * The slug is resolved at delivery time, not at save time, so use cases can be saved in any
2407
+ * order; a dangling reference surfaces as a `USE_CASE_NOT_FOUND` monitoring event naming
2408
+ * the referencing mapping.
2409
+ *
2410
+ */
2411
+ export interface FileProxyDeliveryConfig {
2412
+ /**
2413
+ * Delivery mechanism type
2414
+ */
2415
+ type: "file_proxy";
2416
+ /**
2417
+ * Slug of a `file_proxy` use case with `direction: upload` in the SAME integration.
2418
+ *
2419
+ * example:
2420
+ * wemag_d3_document_upload
2421
+ */
2422
+ use_case_slug: string;
2423
+ }
2424
+ /**
2425
+ * Splits one event into several independent deliveries.
2426
+ *
2427
+ * Mirrors the inbound mapping idiom, where an entity's JSONata expression returning an array
2428
+ * produces one entity update per element. Made explicit with a toggle here because an upload
2429
+ * is also legitimately used without splitting, and because auto-detecting "array means
2430
+ * split" would make a single-element result ambiguous.
2431
+ *
2432
+ * Each resulting delivery is fully independent: its own idempotency record, its own retry
2433
+ * schedule, its own monitoring events. A four-item event can therefore end up three-of-four
2434
+ * delivered, which is the honest state to report.
2435
+ *
2436
+ * The split is evaluated ONCE, when the event is enqueued, so item indices — and therefore
2437
+ * idempotency keys — stay stable across retries.
2438
+ *
2439
+ */
2440
+ export interface FileProxyFanOutConfig {
2441
+ /**
2442
+ * When false (or absent), the event produces exactly one delivery and `$item` is not
2443
+ * bound in `params_mapping`.
2444
+ *
2445
+ */
2446
+ enabled: boolean;
2447
+ /**
2448
+ * JSONata over the event that MUST return an array; one delivery is created per element,
2449
+ * bound as `$item` in `params_mapping`. Required when `enabled` is true.
2450
+ *
2451
+ * Keep this a plain projection — scoping which events are handled at all belongs in the
2452
+ * outbound use case's `event_filter`, not here. A non-array result fails the event with
2453
+ * `FAN_OUT_INVALID_RESULT`; an empty array produces no deliveries and one info-level
2454
+ * `FAN_OUT_EMPTY`, which is the normal outcome for a catch-all subscription seeing an
2455
+ * event with nothing to send.
2456
+ *
2457
+ * example:
2458
+ * event_attachments
2459
+ */
2460
+ split_expression?: string;
2461
+ }
2462
+ /**
2463
+ * A named translation from a value in the event to a value the external system expects.
2464
+ *
2465
+ */
2466
+ export interface FileProxyLookup {
2467
+ /**
2468
+ * JSONata expression over the event producing the lookup key
2469
+ * example:
2470
+ * ticket._purpose_name[0]
2471
+ */
2472
+ source: string;
2473
+ /**
2474
+ * Key-to-value translation table
2475
+ * example:
2476
+ * {
2477
+ * "Zählerstandsmeldung": "Zählerstand",
2478
+ * "Kündigung": "Kündigung"
2479
+ * }
2480
+ */
2481
+ entries: {
2482
+ [name: string]: string;
2483
+ };
2484
+ /**
2485
+ * Value used when the key is absent from `entries`
2486
+ */
2487
+ default?: string;
2488
+ /**
2489
+ * What happens when the key is not in `entries`.
2490
+ * `default` substitutes `default` silently; `warn` substitutes it and emits a
2491
+ * `LOOKUP_UNMAPPED` warning so the gap is visible without stopping delivery;
2492
+ * `fail` aborts the delivery terminally.
2493
+ * Defaults to `default` when a `default` is set, and to `warn` when it is not.
2494
+ *
2495
+ */
2496
+ on_miss?: "default" | "warn" | "fail";
2497
+ }
2305
2498
  export interface FileProxyParam {
2306
2499
  /**
2307
2500
  * Parameter name as it appears in the query string
@@ -2316,6 +2509,11 @@ declare namespace Components {
2316
2509
  */
2317
2510
  description?: string;
2318
2511
  }
2512
+ /**
2513
+ * How to extract the file from the step results. REQUIRED when `direction` is `download`;
2514
+ * rejected when `direction` is `upload` (an upload has no file to extract).
2515
+ *
2516
+ */
2319
2517
  export interface FileProxyResponseConfig {
2320
2518
  /**
2321
2519
  * JSONata expression to extract file content from step results
@@ -2348,7 +2546,7 @@ declare namespace Components {
2348
2546
  /**
2349
2547
  * HTTP method
2350
2548
  */
2351
- method: "GET" | "POST";
2549
+ method: "GET" | "POST" | "PUT" | "PATCH";
2352
2550
  /**
2353
2551
  * Handlebars templates for request headers
2354
2552
  */
@@ -2356,7 +2554,21 @@ declare namespace Components {
2356
2554
  [name: string]: string;
2357
2555
  };
2358
2556
  /**
2359
- * Handlebars template for the request body (POST only)
2557
+ * Handlebars template for the request body (write methods only). On an `upload` use
2558
+ * case this is where the payload is assembled, reading `{{ params.* }}` built by
2559
+ * `params_mapping`, plus `{{ env.* }}` and `{{ steps.N.body }}`.
2560
+ *
2561
+ * **Route every user-controlled value through the `json` helper**: the template engine
2562
+ * does not escape, so `"name":"{{ params.fileName }}"` produces invalid JSON the moment
2563
+ * a filename contains a quote. Write `"name": {{json params.fileName}}` instead — the
2564
+ * helper emits the surrounding quotes itself and renders absent values as `null`. Use
2565
+ * `{{jsonEscape v}}` if you prefer to keep your own quotes. Upload configurations whose
2566
+ * body would break on such input are rejected at save time.
2567
+ *
2568
+ * Handlebars block helpers work, so optional fields can be omitted rather than sent
2569
+ * empty: `{{#if params.pin}},"pin": {{json params.pin}}{{/if}}`. Note that `{{/if}}}`
2570
+ * fails to parse — leave a space before a closing brace: `{{/if}} }`.
2571
+ *
2360
2572
  */
2361
2573
  body?: string;
2362
2574
  /**
@@ -2364,6 +2576,54 @@ declare namespace Components {
2364
2576
  */
2365
2577
  response_type: "json" | "binary";
2366
2578
  }
2579
+ /**
2580
+ * Upload-side settings for a file_proxy use case with `direction: upload`.
2581
+ * Everything about WHAT is sent lives on the outbound mapping
2582
+ * (see `FileProxyDeliveryConfig`); this object only governs HOW the transfer is bounded
2583
+ * and judged.
2584
+ *
2585
+ */
2586
+ export interface FileProxyUploadConfig {
2587
+ /**
2588
+ * Per-file ceiling for this use case, in bytes. Files above it fail terminally with
2589
+ * `FILE_TOO_LARGE` before any bytes are fetched. Defaults to — and is clamped by — the
2590
+ * platform ceiling of 100 MiB (104857600).
2591
+ *
2592
+ */
2593
+ max_file_bytes?: number;
2594
+ /**
2595
+ * Maximum delivery attempts per item before the delivery is marked failed and the
2596
+ * message is dead-lettered. Attempts are spaced by an exponential, jittered backoff
2597
+ * spanning roughly 16 hours over the default 8 attempts, so an ERP maintenance window
2598
+ * does not exhaust them.
2599
+ *
2600
+ * Lives here rather than on the outbound delivery because how hard to retry is a
2601
+ * property of the transport — the same judgement as `max_file_bytes` — and the outbound
2602
+ * delivery is a pure pointer.
2603
+ *
2604
+ */
2605
+ max_delivery_attempts?: number;
2606
+ /**
2607
+ * Optional JSONata predicate evaluated against the final step result
2608
+ * (`{ statusCode, headers, body }`) to decide whether the external system really
2609
+ * accepted the file. When omitted, any 2xx counts as delivered. Use this for systems
2610
+ * that return 200 with an error envelope.
2611
+ *
2612
+ * example:
2613
+ * body.status = 'OK'
2614
+ */
2615
+ success_when?: string;
2616
+ /**
2617
+ * Optional JSONata expression over the step results yielding the external system's
2618
+ * identifier for the stored document. Recorded on the delivery record and on the
2619
+ * `FILE_PROXY_UPLOADED` monitoring event so an operator can find the document in the
2620
+ * target system.
2621
+ *
2622
+ * example:
2623
+ * steps[-1].body.documentId
2624
+ */
2625
+ external_id?: string;
2626
+ }
2367
2627
  /**
2368
2628
  * 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.
2369
2629
  *
@@ -2454,24 +2714,169 @@ declare namespace Components {
2454
2714
  */
2455
2715
  updated_at: string; // date-time
2456
2716
  configuration?: /**
2457
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
2717
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
2718
+ * between epilot and an external document system, in either direction (see `direction`).
2719
+ *
2720
+ * **Download** (`direction: download`, the default) fetches a file from the external system
2721
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
2722
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2723
+ * The `orgId` is included in the signed URL to establish organization context without
2724
+ * requiring authentication. Additional use-case-specific parameters are declared in the
2725
+ * `params` array. `response` is REQUIRED for download use cases.
2726
+ *
2727
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
2728
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
2729
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
2730
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
2731
+ * `steps` place those values into requests via `{{ params.* }}`.
2732
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
2458
2733
  *
2459
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2460
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
2461
- * Additional use-case-specific parameters are declared in the `params` array.
2734
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
2735
+ * server-side validator, which returns an explicit message naming the offending field.
2462
2736
  *
2463
2737
  */
2464
2738
  FileProxyUseCaseConfiguration;
2465
2739
  }
2466
2740
  /**
2467
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
2741
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
2742
+ * between epilot and an external document system, in either direction (see `direction`).
2468
2743
  *
2469
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2470
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
2471
- * Additional use-case-specific parameters are declared in the `params` array.
2744
+ * **Download** (`direction: download`, the default) fetches a file from the external system
2745
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
2746
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2747
+ * The `orgId` is included in the signed URL to establish organization context without
2748
+ * requiring authentication. Additional use-case-specific parameters are declared in the
2749
+ * `params` array. `response` is REQUIRED for download use cases.
2750
+ *
2751
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
2752
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
2753
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
2754
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
2755
+ * `steps` place those values into requests via `{{ params.* }}`.
2756
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
2757
+ *
2758
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
2759
+ * server-side validator, which returns an explicit message naming the offending field.
2472
2760
  *
2473
2761
  */
2474
2762
  export interface FileProxyUseCaseConfiguration {
2763
+ /**
2764
+ * Direction of file travel. `download` (default) pulls a file from the external system
2765
+ * into epilot; `upload` pushes an epilot file out to the external system. Omitted means
2766
+ * `download`, so every pre-existing configuration keeps its exact meaning.
2767
+ *
2768
+ * Note this is the direction of the FILE, not the epilot use-case type — an `upload`
2769
+ * file_proxy use case is still a `file_proxy` use case, never an `outbound` one.
2770
+ *
2771
+ */
2772
+ direction?: "download" | "upload";
2773
+ upload?: /**
2774
+ * Upload-side settings for a file_proxy use case with `direction: upload`.
2775
+ * Everything about WHAT is sent lives on the outbound mapping
2776
+ * (see `FileProxyDeliveryConfig`); this object only governs HOW the transfer is bounded
2777
+ * and judged.
2778
+ *
2779
+ */
2780
+ FileProxyUploadConfig;
2781
+ fan_out?: /**
2782
+ * Splits one event into several independent deliveries.
2783
+ *
2784
+ * Mirrors the inbound mapping idiom, where an entity's JSONata expression returning an array
2785
+ * produces one entity update per element. Made explicit with a toggle here because an upload
2786
+ * is also legitimately used without splitting, and because auto-detecting "array means
2787
+ * split" would make a single-element result ambiguous.
2788
+ *
2789
+ * Each resulting delivery is fully independent: its own idempotency record, its own retry
2790
+ * schedule, its own monitoring events. A four-item event can therefore end up three-of-four
2791
+ * delivered, which is the honest state to report.
2792
+ *
2793
+ * The split is evaluated ONCE, when the event is enqueued, so item indices — and therefore
2794
+ * idempotency keys — stay stable across retries.
2795
+ *
2796
+ */
2797
+ FileProxyFanOutConfig;
2798
+ /**
2799
+ * Upload-only, REQUIRED when `direction` is `upload`. JSONata expression evaluated once
2800
+ * per fan-out item, producing the `params` object that step templates read as
2801
+ * `{{ params.* }}`.
2802
+ *
2803
+ * The evaluation root is the hydrated event, so `contact.customer_pin` and
2804
+ * `ticket._purpose` are reachable directly, unprefixed.
2805
+ *
2806
+ * **Everything per-item is a `$`-prefixed JSONata binding**: `$item` (the fan-out
2807
+ * element, absent when `fan_out` is disabled), `$file_base64` and `$file`
2808
+ * (`{filename, mime_type, size_bytes}`) for the resolved file, plus `$constants`,
2809
+ * `$lookups`, `$ack_id`, `$germanDate(iso)` and `$now()`. Writing `item.filename`
2810
+ * instead of `$item.filename` yields nothing — it reads a field named `item` on the
2811
+ * event, which does not exist.
2812
+ *
2813
+ * Must evaluate to an object. `constants` are shallow-merged underneath the result, so
2814
+ * the expression wins on any key collision.
2815
+ *
2816
+ * example:
2817
+ * { "documentType": $lookups.documentType, "fileName": $item.filename, "fileData": $file_base64, "pin": contact.customer_pin }
2818
+ */
2819
+ params_mapping?: string;
2820
+ /**
2821
+ * Upload-only. Named translation tables resolved BEFORE `params_mapping` runs and bound
2822
+ * as `$lookups`, so an expression reads `$lookups.documentType` rather than carrying a
2823
+ * conditional chain. Deliberately generic: the next ERP calls the same concept
2824
+ * `Belegart`.
2825
+ *
2826
+ */
2827
+ lookups?: {
2828
+ [name: string]: /**
2829
+ * A named translation from a value in the event to a value the external system expects.
2830
+ *
2831
+ */
2832
+ FileProxyLookup;
2833
+ };
2834
+ /**
2835
+ * Upload-only. Fixed values shallow-merged UNDERNEATH the `params_mapping` result — the
2836
+ * expression wins on key collisions, constants only add. Use for the unchanging strings
2837
+ * (tenant, sender, channel) that would otherwise be repeated in every expression.
2838
+ *
2839
+ * example:
2840
+ * {
2841
+ * "mandant": "EPILOT_WNG",
2842
+ * "sender": "KSSP"
2843
+ * }
2844
+ */
2845
+ constants?: {
2846
+ [name: string]: any;
2847
+ };
2848
+ /**
2849
+ * Upload-only. JSONata returning the attachment-shaped object (`entity_id`, optionally
2850
+ * `s3ref`) whose bytes should be fetched for this delivery. The evaluation root is the
2851
+ * event; the fan-out element is the `$item` binding, same as in `params_mapping`.
2852
+ *
2853
+ * Usually unnecessary: when the fan-out item is itself attachment-shaped it is used
2854
+ * directly. Supply this only when splitting over something that is not the attachment
2855
+ * — for example one delivery per meter reading, each carrying a file referenced from
2856
+ * elsewhere in the event. When nothing resolves, no file is fetched and `file_base64`
2857
+ * is undefined, which is valid for a fan-out that sends metadata only.
2858
+ *
2859
+ * example:
2860
+ * event_attachments[entity_id = $item.file_id][0]
2861
+ */
2862
+ file_source?: string;
2863
+ /**
2864
+ * Upload-only. Params that MUST be present after `params_mapping` runs. Any listed name
2865
+ * resolving to null or undefined fails the delivery terminally with
2866
+ * `REQUIRED_PARAM_MISSING` before a single step executes.
2867
+ *
2868
+ * This is the generic net behind a lookup's `on_miss: fail`: it catches a required field
2869
+ * going missing for any reason, so the external system never receives a body that is
2870
+ * silently short a field its API requires.
2871
+ *
2872
+ * example:
2873
+ * [
2874
+ * "documentType",
2875
+ * "fileName",
2876
+ * "fileData"
2877
+ * ]
2878
+ */
2879
+ required_params?: string[];
2475
2880
  /**
2476
2881
  * Optional secure proxy attachment for routing all outbound file proxy requests.
2477
2882
  * Only `use_case_slug` is supported and the referenced secure_proxy use case
@@ -2486,22 +2891,37 @@ declare namespace Components {
2486
2891
  };
2487
2892
  auth?: FileProxyAuth;
2488
2893
  /**
2489
- * Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, and useCaseSlug or useCaseId)
2894
+ * Download-only. Additional use-case-specific parameters expected in the download URL
2895
+ * query string (beyond the required orgId, integrationId, and useCaseSlug or useCaseId).
2896
+ * Rejected when `direction` is `upload`.
2897
+ *
2490
2898
  */
2491
2899
  params?: FileProxyParam[];
2492
2900
  /**
2493
- * Additional origins permitted to call /download for this use case (CORS, exact match). Portal origins are always allowed.
2901
+ * Download-only. Additional origins permitted to call /download for this use case
2902
+ * (CORS, exact match). Portal origins are always allowed. Rejected when `direction`
2903
+ * is `upload`.
2904
+ *
2494
2905
  */
2495
2906
  allowed_origins?: string /* uri ^https?:// */[];
2496
2907
  /**
2497
- * Ordered list of HTTP steps to execute to retrieve the file
2908
+ * Ordered list of HTTP steps to execute. For `download` these retrieve the file; for
2909
+ * `upload` they deliver it, each assembling its own request body from `{{ params.* }}`
2910
+ * built by `params_mapping`.
2911
+ *
2498
2912
  */
2499
2913
  steps: [
2500
2914
  FileProxyStep,
2501
2915
  ...FileProxyStep[]
2502
2916
  ];
2503
- response: FileProxyResponseConfig;
2917
+ response?: /**
2918
+ * How to extract the file from the step results. REQUIRED when `direction` is `download`;
2919
+ * rejected when `direction` is `upload` (an upload has no file to extract).
2920
+ *
2921
+ */
2922
+ FileProxyResponseConfig;
2504
2923
  /**
2924
+ * Download-only; rejected when `direction` is `upload`.
2505
2925
  * When `true`, this use case is served via the streaming endpoint: mapped file URLs
2506
2926
  * are built as `/stream/download`, files of any size are streamed inline over HTTP
2507
2927
  * response streaming, and buffered `/download` requests for oversize files are
@@ -2562,11 +2982,25 @@ declare namespace Components {
2562
2982
  */
2563
2983
  type: "file_proxy";
2564
2984
  configuration?: /**
2565
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
2985
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
2986
+ * between epilot and an external document system, in either direction (see `direction`).
2566
2987
  *
2567
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2568
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
2569
- * Additional use-case-specific parameters are declared in the `params` array.
2988
+ * **Download** (`direction: download`, the default) fetches a file from the external system
2989
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
2990
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2991
+ * The `orgId` is included in the signed URL to establish organization context without
2992
+ * requiring authentication. Additional use-case-specific parameters are declared in the
2993
+ * `params` array. `response` is REQUIRED for download use cases.
2994
+ *
2995
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
2996
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
2997
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
2998
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
2999
+ * `steps` place those values into requests via `{{ params.* }}`.
3000
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
3001
+ *
3002
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
3003
+ * server-side validator, which returns an explicit message naming the offending field.
2570
3004
  *
2571
3005
  */
2572
3006
  FileProxyUseCaseConfiguration;
@@ -4731,6 +5165,49 @@ declare namespace Components {
4731
5165
  */
4732
5166
  expires_at?: string; // date-time
4733
5167
  }
5168
+ /**
5169
+ * Resolution state of one file_proxy mapping's referenced upload use case.
5170
+ *
5171
+ * Because the transport lives on a separate use case, edits to the endpoint or credentials
5172
+ * do not appear in THIS use case's history. `target_updated_at` is the hook that lets an
5173
+ * operator notice a target changed underneath a delivery that started failing.
5174
+ *
5175
+ */
5176
+ export interface OutboundFileProxyTargetStatus {
5177
+ /**
5178
+ * The mapping holding this file_proxy delivery
5179
+ */
5180
+ mapping_id: string;
5181
+ /**
5182
+ * Slug of the referenced file_proxy use case
5183
+ */
5184
+ use_case_slug: string;
5185
+ /**
5186
+ * Whether the slug currently resolves to an enabled `file_proxy` use case with
5187
+ * `direction: upload` in this integration. References are resolved at delivery time,
5188
+ * so `false` is a live warning rather than a save-time error.
5189
+ *
5190
+ */
5191
+ resolved: boolean;
5192
+ /**
5193
+ * Id of the referenced use case — absent when unresolved
5194
+ */
5195
+ target_use_case_id?: string; // uuid
5196
+ /**
5197
+ * Whether the referenced use case is enabled — absent when unresolved
5198
+ */
5199
+ target_enabled?: boolean;
5200
+ /**
5201
+ * When the referenced use case was last modified — absent when unresolved. Surfaced
5202
+ * because a change here is invisible in this use case's own history diff.
5203
+ *
5204
+ */
5205
+ target_updated_at?: string; // date-time
5206
+ /**
5207
+ * Why the reference did not resolve — absent when `resolved` is true
5208
+ */
5209
+ unresolved_reason?: "not_found" | "wrong_type" | "wrong_direction" | "disabled";
5210
+ }
4734
5211
  /**
4735
5212
  * Configuration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.
4736
5213
  */
@@ -4741,16 +5218,49 @@ declare namespace Components {
4741
5218
  * contract.created
4742
5219
  */
4743
5220
  event_catalog_event: string;
5221
+ /**
5222
+ * JSONata boolean predicate over the hydrated event payload. The use case handles the
5223
+ * event only when this evaluates truthy; when absent it handles every event of its name,
5224
+ * which is the behaviour of every pre-existing configuration.
5225
+ *
5226
+ * This is where event scoping belongs — narrowing to certain ticket purposes, contract
5227
+ * types or channels. Evaluation input is the full hydrated event, so relation nodes such
5228
+ * as `ticket` and `contact` are populated. An expression that throws is treated as no
5229
+ * match and logged, so one malformed filter cannot block the other use cases subscribed
5230
+ * to the same event.
5231
+ *
5232
+ * example:
5233
+ * $count(ticket._purpose[$ in ['bae4b4d1-d728-49ef-92ff-54486dd301b4']]) > 0
5234
+ */
5235
+ event_filter?: string;
4744
5236
  /**
4745
5237
  * List of mappings that transform and deliver the event
4746
5238
  */
4747
5239
  mappings: [
4748
- /* A mapping that delivers an event to an external system — either pushed to a webhook (with a JSONata payload transformation) or made available on the pull-based poll queue (raw event payload, no transformation) */ OutboundMapping,
4749
- .../* A mapping that delivers an event to an external system — either pushed to a webhook (with a JSONata payload transformation) or made available on the pull-based poll queue (raw event payload, no transformation) */ OutboundMapping[]
5240
+ /* A mapping that delivers an event to an external system by one of three mechanisms — pushed to a webhook (with a JSONata payload transformation), made available on the pull-based poll queue (raw event payload, no transformation), or handed to a file_proxy use case that uploads files to an external document system (a pointer only; the referenced use case owns the payload and the fan-out) */ OutboundMapping,
5241
+ .../* A mapping that delivers an event to an external system by one of three mechanisms — pushed to a webhook (with a JSONata payload transformation), made available on the pull-based poll queue (raw event payload, no transformation), or handed to a file_proxy use case that uploads files to an external document system (a pointer only; the referenced use case owns the payload and the fan-out) */ OutboundMapping[]
4750
5242
  ];
5243
+ /**
5244
+ * Whether this use case participates in the acknowledgement protocol.
5245
+ *
5246
+ * `on` (the default, and the behaviour of every pre-existing use case) records an
5247
+ * ACK_PENDING on each event and expects the consumer to confirm receipt via
5248
+ * `POST /v1/erp/tracking/acknowledgement`; unconfirmed events raise ACK_TIMEOUT after
5249
+ * the timeout window.
5250
+ *
5251
+ * `off` opts the use case out entirely: no tracking row, no ACK_PENDING, no
5252
+ * ACK_TIMEOUT. Set it for consumers that never acknowledge — otherwise every event
5253
+ * produces a guaranteed timeout warning — and for deliveries that already keep their
5254
+ * own durable per-item record, such as `file_proxy`.
5255
+ *
5256
+ * The tracking row is per-event, not per-use-case, so it is suppressed only when EVERY
5257
+ * enabled use case matching the event has opted out.
5258
+ *
5259
+ */
5260
+ ack_tracking?: "on" | "off";
4751
5261
  }
4752
5262
  /**
4753
- * A mapping that delivers an event to an external system — either pushed to a webhook (with a JSONata payload transformation) or made available on the pull-based poll queue (raw event payload, no transformation)
5263
+ * A mapping that delivers an event to an external system by one of three mechanisms — pushed to a webhook (with a JSONata payload transformation), made available on the pull-based poll queue (raw event payload, no transformation), or handed to a file_proxy use case that uploads files to an external document system (a pointer only; the referenced use case owns the payload and the fan-out)
4754
5264
  */
4755
5265
  export interface OutboundMapping {
4756
5266
  /**
@@ -4764,7 +5274,7 @@ declare namespace Components {
4764
5274
  */
4765
5275
  name: string;
4766
5276
  /**
4767
- * JSONata expression to transform the event payload. Required for webhook delivery; ignored for poll delivery.
5277
+ * 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.
4768
5278
  * example:
4769
5279
  * { "id": entity._id, "customer": entity.customer_name }
4770
5280
  */
@@ -4773,7 +5283,7 @@ declare namespace Components {
4773
5283
  * Whether this mapping is active
4774
5284
  */
4775
5285
  enabled: boolean;
4776
- delivery: /* Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload) */ DeliveryConfig;
5286
+ delivery: /* Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload); file_proxy = one push per event attachment to an external document system, through a file_proxy use case (JSONata-transformed payload carrying the file bytes) */ DeliveryConfig;
4777
5287
  /**
4778
5288
  * Timestamp when the mapping was created
4779
5289
  */
@@ -5059,6 +5569,20 @@ declare namespace Components {
5059
5569
  *
5060
5570
  */
5061
5571
  OutboundPollStatus;
5572
+ /**
5573
+ * One entry per file_proxy mapping on this use case. Present only on use cases with a
5574
+ * file_proxy delivery mapping.
5575
+ *
5576
+ */
5577
+ file_proxy?: /**
5578
+ * Resolution state of one file_proxy mapping's referenced upload use case.
5579
+ *
5580
+ * Because the transport lives on a separate use case, edits to the endpoint or credentials
5581
+ * do not appear in THIS use case's history. `target_updated_at` is the hook that lets an
5582
+ * operator notice a target changed underneath a delivery that started failing.
5583
+ *
5584
+ */
5585
+ OutboundFileProxyTargetStatus[];
5062
5586
  }
5063
5587
  /**
5064
5588
  * Pull-based queue delivery. Items carry the raw standardized event-catalog payload; no JSONata mapping is applied in poll mode. Consumers fetch and acknowledge items via the poll API.
@@ -6172,6 +6696,9 @@ declare namespace Components {
6172
6696
  */
6173
6697
  overwrite?: boolean;
6174
6698
  }
6699
+ export interface SuggestErpImportUseCasesResponse {
6700
+ suggestions: ErpImportUseCaseSuggestion[];
6701
+ }
6175
6702
  export interface TestNotificationRequest {
6176
6703
  /**
6177
6704
  * The kind of notification to render and send.
@@ -6443,11 +6970,25 @@ declare namespace Components {
6443
6970
  */
6444
6971
  type?: "file_proxy";
6445
6972
  configuration?: /**
6446
- * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
6973
+ * Configuration for file_proxy use cases. Defines how to authenticate and move files
6974
+ * between epilot and an external document system, in either direction (see `direction`).
6447
6975
  *
6448
- * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
6449
- * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
6450
- * Additional use-case-specific parameters are declared in the `params` array.
6976
+ * **Download** (`direction: download`, the default) fetches a file from the external system
6977
+ * and serves it to a browser. The download URL always requires `orgId`, `integrationId`, and
6978
+ * either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
6979
+ * The `orgId` is included in the signed URL to establish organization context without
6980
+ * requiring authentication. Additional use-case-specific parameters are declared in the
6981
+ * `params` array. `response` is REQUIRED for download use cases.
6982
+ *
6983
+ * **Upload** (`direction: upload`) pushes epilot files to the external system. It is not
6984
+ * reachable over the download endpoint; an outbound use case points at it via a `file_proxy`
6985
+ * delivery, and this configuration owns everything about what gets sent: `fan_out` decides
6986
+ * how many deliveries one event produces, `params_mapping` builds the values, and the
6987
+ * `steps` place those values into requests via `{{ params.* }}`.
6988
+ * `upload` and `params_mapping` are REQUIRED and `response` MUST be omitted.
6989
+ *
6990
+ * OpenAPI 3.0 cannot express this conditional requiredness, so it is enforced by the
6991
+ * server-side validator, which returns an explicit message naming the offending field.
6451
6992
  *
6452
6993
  */
6453
6994
  FileProxyUseCaseConfiguration;
@@ -6724,6 +7265,13 @@ declare namespace Components {
6724
7265
  response_shape: /* Describes the inferred type shape of a JSONata expression */ TypeDescriptor;
6725
7266
  existing_annotations?: /* Developer-provided type annotations for a use case's request and response fields */ TypeAnnotations;
6726
7267
  }
7268
+ export interface ValidateErpImportRequest {
7269
+ integration_id: string;
7270
+ /**
7271
+ * An inbound use case's slug, unique within its integration.
7272
+ */
7273
+ use_case_slug: string;
7274
+ }
6727
7275
  /**
6728
7276
  * Push delivery of the transformed event to a webhook via svc-webhooks
6729
7277
  */
@@ -6832,7 +7380,7 @@ declare namespace Paths {
6832
7380
  }
6833
7381
  }
6834
7382
  namespace CreateErpImport {
6835
- export type RequestBody = Components.Schemas.CreateErpImportRequest;
7383
+ export type RequestBody = /* Register an already-uploaded file as an import. The use case is chosen later, via `:validate` — upload and interpretation are separate decisions. */ Components.Schemas.CreateErpImportRequest;
6836
7384
  namespace Responses {
6837
7385
  export type $202 = Components.Schemas.CreateErpImportResponse;
6838
7386
  export type $400 = Components.Responses.BadRequest;
@@ -7660,6 +8208,21 @@ declare namespace Paths {
7660
8208
  export type $500 = Components.Responses.InternalServerError;
7661
8209
  }
7662
8210
  }
8211
+ namespace SuggestErpImportUseCases {
8212
+ namespace Parameters {
8213
+ export type ImportId = string;
8214
+ }
8215
+ export interface PathParameters {
8216
+ importId: Parameters.ImportId;
8217
+ }
8218
+ namespace Responses {
8219
+ export type $200 = Components.Schemas.SuggestErpImportUseCasesResponse;
8220
+ export type $400 = Components.Responses.BadRequest;
8221
+ export type $403 = Components.Responses.Forbidden;
8222
+ export type $404 = Components.Responses.NotFound;
8223
+ export type $500 = Components.Responses.InternalServerError;
8224
+ }
8225
+ }
7663
8226
  namespace TestSendNotification {
7664
8227
  namespace Parameters {
7665
8228
  export type IntegrationId = string; // uuid
@@ -7800,6 +8363,23 @@ declare namespace Paths {
7800
8363
  export type $500 = Components.Responses.InternalServerError;
7801
8364
  }
7802
8365
  }
8366
+ namespace ValidateErpImport {
8367
+ namespace Parameters {
8368
+ export type ImportId = string;
8369
+ }
8370
+ export interface PathParameters {
8371
+ importId: Parameters.ImportId;
8372
+ }
8373
+ export type RequestBody = Components.Schemas.ValidateErpImportRequest;
8374
+ namespace Responses {
8375
+ export type $202 = Components.Schemas.ErpImportJob;
8376
+ export type $403 = Components.Responses.Forbidden;
8377
+ export type $404 = Components.Responses.NotFound;
8378
+ export type $409 = Components.Responses.Conflict;
8379
+ export type $422 = Components.Schemas.ErrorResponseBase;
8380
+ export type $500 = Components.Responses.InternalServerError;
8381
+ }
8382
+ }
7803
8383
  }
7804
8384
 
7805
8385
 
@@ -8549,7 +9129,7 @@ interface OperationMethods {
8549
9129
  /**
8550
9130
  * createErpImport - createErpImport
8551
9131
  *
8552
- * Create a pricing-file import job from an already-uploaded file (S3 ref). Returns a job id and starts the validate phase asynchronously poll GET /v2/erp/imports/{importId}.
9132
+ * Register an already-uploaded file (S3 ref) as a pricing-file import job and return its id. Nothing runs yet: no use case is chosen and no validation starts here. Rank the candidates with POST /v2/erp/imports/{importId}:suggest-use-cases, then start the validate phase with POST /v2/erp/imports/{importId}:validate.
8553
9133
  */
8554
9134
  'createErpImport'(
8555
9135
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -8566,6 +9146,29 @@ interface OperationMethods {
8566
9146
  data?: any,
8567
9147
  config?: AxiosRequestConfig
8568
9148
  ): OperationResponse<Paths.GetErpImport.Responses.$200>
9149
+ /**
9150
+ * validateErpImport - validateErpImport
9151
+ *
9152
+ * Choose the use case to read this file with, and start the validate phase.
9153
+ * Callable from PENDING, READY and FAILED — so a wrong choice is corrected by calling this again with a different use case, rather than re-uploading. Each call replaces any previous verdict. Any other status returns 409.
9154
+ */
9155
+ 'validateErpImport'(
9156
+ parameters?: Parameters<Paths.ValidateErpImport.PathParameters> | null,
9157
+ data?: Paths.ValidateErpImport.RequestBody,
9158
+ config?: AxiosRequestConfig
9159
+ ): OperationResponse<Paths.ValidateErpImport.Responses.$202>
9160
+ /**
9161
+ * suggestErpImportUseCases - suggestErpImportUseCases
9162
+ *
9163
+ * Rank the org's inbound use cases against this file's columns — the input to the ranked picker ("matches 6 of your 7 columns"). Reads only the file's first row, not its data.
9164
+ * Every eligible use case is returned, including ones matching nothing: the "nothing fits, pick anyway" view needs the full list. Highest match first.
9165
+ * CSV only — an xlsx import fails with 400 rather than silently returning zero matches, which would look identical to "we checked and nothing matches".
9166
+ */
9167
+ 'suggestErpImportUseCases'(
9168
+ parameters?: Parameters<Paths.SuggestErpImportUseCases.PathParameters> | null,
9169
+ data?: any,
9170
+ config?: AxiosRequestConfig
9171
+ ): OperationResponse<Paths.SuggestErpImportUseCases.Responses.$200>
8569
9172
  /**
8570
9173
  * executeErpImport - executeErpImport
8571
9174
  *
@@ -9412,7 +10015,7 @@ interface PathsDictionary {
9412
10015
  /**
9413
10016
  * createErpImport - createErpImport
9414
10017
  *
9415
- * Create a pricing-file import job from an already-uploaded file (S3 ref). Returns a job id and starts the validate phase asynchronously poll GET /v2/erp/imports/{importId}.
10018
+ * Register an already-uploaded file (S3 ref) as a pricing-file import job and return its id. Nothing runs yet: no use case is chosen and no validation starts here. Rank the candidates with POST /v2/erp/imports/{importId}:suggest-use-cases, then start the validate phase with POST /v2/erp/imports/{importId}:validate.
9416
10019
  */
9417
10020
  'post'(
9418
10021
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -9447,6 +10050,33 @@ interface PathsDictionary {
9447
10050
  config?: AxiosRequestConfig
9448
10051
  ): OperationResponse<Paths.GetErpImport.Responses.$200>
9449
10052
  }
10053
+ ['/v2/erp/imports/{importId}:validate']: {
10054
+ /**
10055
+ * validateErpImport - validateErpImport
10056
+ *
10057
+ * Choose the use case to read this file with, and start the validate phase.
10058
+ * Callable from PENDING, READY and FAILED — so a wrong choice is corrected by calling this again with a different use case, rather than re-uploading. Each call replaces any previous verdict. Any other status returns 409.
10059
+ */
10060
+ 'post'(
10061
+ parameters?: Parameters<Paths.ValidateErpImport.PathParameters> | null,
10062
+ data?: Paths.ValidateErpImport.RequestBody,
10063
+ config?: AxiosRequestConfig
10064
+ ): OperationResponse<Paths.ValidateErpImport.Responses.$202>
10065
+ }
10066
+ ['/v2/erp/imports/{importId}:suggest-use-cases']: {
10067
+ /**
10068
+ * suggestErpImportUseCases - suggestErpImportUseCases
10069
+ *
10070
+ * Rank the org's inbound use cases against this file's columns — the input to the ranked picker ("matches 6 of your 7 columns"). Reads only the file's first row, not its data.
10071
+ * Every eligible use case is returned, including ones matching nothing: the "nothing fits, pick anyway" view needs the full list. Highest match first.
10072
+ * CSV only — an xlsx import fails with 400 rather than silently returning zero matches, which would look identical to "we checked and nothing matches".
10073
+ */
10074
+ 'post'(
10075
+ parameters?: Parameters<Paths.SuggestErpImportUseCases.PathParameters> | null,
10076
+ data?: any,
10077
+ config?: AxiosRequestConfig
10078
+ ): OperationResponse<Paths.SuggestErpImportUseCases.Responses.$200>
10079
+ }
9450
10080
  ['/v2/erp/imports/{importId}:execute']: {
9451
10081
  /**
9452
10082
  * executeErpImport - executeErpImport
@@ -9512,10 +10142,12 @@ type EnvironmentFieldConfig = Components.Schemas.EnvironmentFieldConfig;
9512
10142
  type ErpEvent = Components.Schemas.ErpEvent;
9513
10143
  type ErpEventV3 = Components.Schemas.ErpEventV3;
9514
10144
  type ErpImportError = Components.Schemas.ErpImportError;
10145
+ type ErpImportFilePreview = Components.Schemas.ErpImportFilePreview;
9515
10146
  type ErpImportIssue = Components.Schemas.ErpImportIssue;
9516
10147
  type ErpImportJob = Components.Schemas.ErpImportJob;
9517
10148
  type ErpImportList = Components.Schemas.ErpImportList;
9518
10149
  type ErpImportProgress = Components.Schemas.ErpImportProgress;
10150
+ type ErpImportUseCaseSuggestion = Components.Schemas.ErpImportUseCaseSuggestion;
9519
10151
  type ErpImportValidation = Components.Schemas.ErpImportValidation;
9520
10152
  type ErpUpdatesEventsV2Request = Components.Schemas.ErpUpdatesEventsV2Request;
9521
10153
  type ErpUpdatesEventsV3Request = Components.Schemas.ErpUpdatesEventsV3Request;
@@ -9523,10 +10155,14 @@ type ErrorResponseBase = Components.Schemas.ErrorResponseBase;
9523
10155
  type ExecuteErpImportRequest = Components.Schemas.ExecuteErpImportRequest;
9524
10156
  type ExternalMonitoringSpan = Components.Schemas.ExternalMonitoringSpan;
9525
10157
  type FileProxyAuth = Components.Schemas.FileProxyAuth;
10158
+ type FileProxyDeliveryConfig = Components.Schemas.FileProxyDeliveryConfig;
10159
+ type FileProxyFanOutConfig = Components.Schemas.FileProxyFanOutConfig;
10160
+ type FileProxyLookup = Components.Schemas.FileProxyLookup;
9526
10161
  type FileProxyParam = Components.Schemas.FileProxyParam;
9527
10162
  type FileProxyResponseConfig = Components.Schemas.FileProxyResponseConfig;
9528
10163
  type FileProxySecureProxyAttachment = Components.Schemas.FileProxySecureProxyAttachment;
9529
10164
  type FileProxyStep = Components.Schemas.FileProxyStep;
10165
+ type FileProxyUploadConfig = Components.Schemas.FileProxyUploadConfig;
9530
10166
  type FileProxyUrlConfig = Components.Schemas.FileProxyUrlConfig;
9531
10167
  type FileProxyUrlParam = Components.Schemas.FileProxyUrlParam;
9532
10168
  type FileProxyUrlParams = Components.Schemas.FileProxyUrlParams;
@@ -9590,6 +10226,7 @@ type NotificationStatusResponse = Components.Schemas.NotificationStatusResponse;
9590
10226
  type OutboundConflict = Components.Schemas.OutboundConflict;
9591
10227
  type OutboundDlqListResponse = Components.Schemas.OutboundDlqListResponse;
9592
10228
  type OutboundDlqMessage = Components.Schemas.OutboundDlqMessage;
10229
+ type OutboundFileProxyTargetStatus = Components.Schemas.OutboundFileProxyTargetStatus;
9593
10230
  type OutboundIntegrationEventConfiguration = Components.Schemas.OutboundIntegrationEventConfiguration;
9594
10231
  type OutboundMapping = Components.Schemas.OutboundMapping;
9595
10232
  type OutboundMessage = Components.Schemas.OutboundMessage;
@@ -9635,6 +10272,7 @@ type SecureProxyUseCaseHistoryEntry = Components.Schemas.SecureProxyUseCaseHisto
9635
10272
  type SecureProxyWhitelist = Components.Schemas.SecureProxyWhitelist;
9636
10273
  type SecureProxyWhitelistUpdate = Components.Schemas.SecureProxyWhitelistUpdate;
9637
10274
  type SetIntegrationAppMappingRequest = Components.Schemas.SetIntegrationAppMappingRequest;
10275
+ type SuggestErpImportUseCasesResponse = Components.Schemas.SuggestErpImportUseCasesResponse;
9638
10276
  type TestNotificationRequest = Components.Schemas.TestNotificationRequest;
9639
10277
  type TestNotificationResponse = Components.Schemas.TestNotificationResponse;
9640
10278
  type TimeSeriesBreakdownItemV2 = Components.Schemas.TimeSeriesBreakdownItemV2;
@@ -9660,7 +10298,8 @@ type UseCaseBase = Components.Schemas.UseCaseBase;
9660
10298
  type UseCaseHistoryEntry = Components.Schemas.UseCaseHistoryEntry;
9661
10299
  type UseCaseHistoryEntryBase = Components.Schemas.UseCaseHistoryEntryBase;
9662
10300
  type UseCaseTypePreview = Components.Schemas.UseCaseTypePreview;
10301
+ type ValidateErpImportRequest = Components.Schemas.ValidateErpImportRequest;
9663
10302
  type WebhookDeliveryConfig = Components.Schemas.WebhookDeliveryConfig;
9664
10303
  type WebhookStatus = Components.Schemas.WebhookStatus;
9665
10304
 
9666
- export { type FileProxyStep as $, type AccessLogEntry as A, type EntityPruneScopeUpdate as B, type Client as C, type DeleteIntegrationAppMappingRequest as D, type EmbeddedFileProxyUseCaseRequest as E, type EntityUpdate as F, type EnvVarRefConfig as G, type EnvironmentFieldConfig as H, type ErpEvent as I, type ErpEventV3 as J, type ErpImportError as K, type ErpImportIssue as L, type ErpImportJob as M, type ErpImportList as N, type OperationMethods as O, Paths as P, type ErpImportProgress as Q, type ErpImportValidation as R, type ErpUpdatesEventsV2Request as S, type ErpUpdatesEventsV3Request as T, type ErrorResponseBase as U, type ExecuteErpImportRequest as V, type ExternalMonitoringSpan as W, type FileProxyAuth as X, type FileProxyParam as Y, type FileProxyResponseConfig as Z, type FileProxySecureProxyAttachment as _, Components as a, type OutboundIntegrationEventConfiguration as a$, type FileProxyUrlConfig as a0, type FileProxyUrlParam as a1, type FileProxyUrlParams as a2, type FileProxyUseCase as a3, type FileProxyUseCaseConfiguration as a4, type FileProxyUseCaseHistoryEntry as a5, type GenerateTypesPreviewResponse as a6, type GenerateTypesRequest as a7, type GenerateTypesResponse as a8, type GetMonitoringStatsRequest as a9, type ManagedCallOperation as aA, type ManagedCallOperationConfig as aB, type ManagedCallUseCase as aC, type ManagedCallUseCaseHistoryEntry as aD, type MappingSimulationRequest as aE, type MappingSimulationResponse as aF, type MappingSimulationV2Request as aG, type MappingSimulationWarning as aH, type MeterReadingPruneScopeConfig as aI, type MeterReadingPruneScopeUpdate as aJ, type MeterReadingUpdate as aK, type MeterUniqueIdsConfig as aL, type MonitoringEventV2 as aM, type MonitoringStats as aN, type MonitoringStatsV2 as aO, type MonitoringTraceResponse as aP, type NotificationChannelSet as aQ, type NotificationDigestConfig as aR, type NotificationHistoryItem as aS, type NotificationHistoryResponse as aT, type NotificationRecipient as aU, type NotificationRule as aV, type NotificationRuleStatus as aW, type NotificationStatusResponse as aX, type OutboundConflict as aY, type OutboundDlqListResponse as aZ, type OutboundDlqMessage as a_, type GetMonitoringStatsV2Request as aa, type GetMonitoringTimeSeriesRequest as ab, type GetMonitoringTimeSeriesV2Request as ac, type InboundIntegrationEventConfiguration as ad, type InboundMonitoringEvent as ae, type InboundUseCase as af, type InboundUseCaseHistoryEntry as ag, type IngestExternalMonitoringEventsRequest as ah, type IngestExternalMonitoringEventsResponse as ai, type Integration as aj, type IntegrationAppMapping as ak, type IntegrationConfigurationV1 as al, type IntegrationConfigurationV2 as am, type IntegrationEditableFields as an, type IntegrationEntity as ao, type IntegrationEntityField as ap, type IntegrationFieldV1 as aq, type IntegrationMeterReading as ar, type IntegrationNotificationConfig as as, type IntegrationObjectV1 as at, type IntegrationSettings as au, type IntegrationWithUseCases as av, type ManagedCallAuth as aw, type ManagedCallErrorResponse as ax, type ManagedCallExecuteRequest as ay, type ManagedCallExecuteResponse as az, type PathsDictionary as b, type UpsertIntegrationWithUseCasesRequest as b$, type OutboundMapping as b0, type OutboundMessage as b1, type OutboundMonitoringEvent as b2, type OutboundPollStatus as b3, type OutboundStatusResponse as b4, type OutboundUseCase as b5, type OutboundUseCaseHistoryEntry as b6, type OutboundUseCaseStatus as b7, type PollDeliveryConfig as b8, type PollOutboundMessagesRequest as b9, type SecureProxySummary as bA, type SecureProxyUpstreamError as bB, type SecureProxyUseCase as bC, type SecureProxyUseCaseConfiguration as bD, type SecureProxyUseCaseHistoryEntry as bE, type SecureProxyWhitelist as bF, type SecureProxyWhitelistUpdate as bG, type SetIntegrationAppMappingRequest as bH, type TestNotificationRequest as bI, type TestNotificationResponse as bJ, type TimeSeriesBreakdownItemV2 as bK, type TimeSeriesBucket as bL, type TimeSeriesBucketV2 as bM, type TriggerErpActionRequest as bN, type TriggerWebhookResp as bO, type TypeAnnotations as bP, type TypeDescriptor as bQ, type UnblockOutboundStreamRequest as bR, type UnblockOutboundStreamResponse as bS, type UpdateFileProxyUseCaseRequest as bT, type UpdateInboundUseCaseRequest as bU, type UpdateIntegrationRequest as bV, type UpdateManagedCallUseCaseRequest as bW, type UpdateOutboundUseCaseRequest as bX, type UpdateSecureProxyUseCaseRequest as bY, type UpdateUseCaseRequest as bZ, type UpdateUseCaseRequestBase as b_, type PollOutboundMessagesResponse as ba, type PortalOrigin as bb, type PortalRefConfig as bc, type PortalRefFilter as bd, type PruneScopeConfig as be, type QueryAccessLogsRequest as bf, type QueryEventsRequest as bg, type QueryInboundMonitoringEventsRequest as bh, type QueryMonitoringEventsV2Request as bi, type QueryOutboundMonitoringEventsRequest as bj, type RedriveOutboundDlqRequest as bk, type RedriveOutboundDlqResponse as bl, type RedriveOutboundDlqResult as bm, type RelationConfig as bn, type RelationItemConfig as bo, type RelationRefItemConfig as bp, type RelationRefValueConfig as bq, type RelationRefsConfig as br, type RelationUniqueIdField as bs, type RepeatableFieldType as bt, type ReplayEventsRequest as bu, type RuleBaselineBucket as bv, type RuleBaselineStatus as bw, type S3Reference as bx, type SecureProxyRequest as by, type SecureProxyResponse as bz, type AckOutboundMessagesRequest as c, type UseCase as c0, type UseCaseBase as c1, type UseCaseHistoryEntry as c2, type UseCaseHistoryEntryBase as c3, type UseCaseTypePreview as c4, type WebhookDeliveryConfig as c5, type WebhookStatus as c6, 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 EmbeddedInboundUseCaseRequest as u, type EmbeddedManagedCallUseCaseRequest as v, type EmbeddedOutboundUseCaseRequest as w, type EmbeddedSecureProxyUseCaseRequest as x, type EmbeddedUseCaseRequest as y, type EmbeddedUseCaseRequestBase as z };
10305
+ export { type FileProxyFanOutConfig as $, type AccessLogEntry as A, type EntityPruneScopeUpdate as B, type Client as C, type DeleteIntegrationAppMappingRequest as D, type EmbeddedFileProxyUseCaseRequest as E, type EntityUpdate as F, type EnvVarRefConfig as G, type EnvironmentFieldConfig as H, type ErpEvent as I, type ErpEventV3 as J, type ErpImportError as K, type ErpImportFilePreview as L, type ErpImportIssue as M, type ErpImportJob as N, type OperationMethods as O, Paths as P, type ErpImportList as Q, type ErpImportProgress as R, type ErpImportUseCaseSuggestion as S, type ErpImportValidation as T, type ErpUpdatesEventsV2Request as U, type ErpUpdatesEventsV3Request as V, type ErrorResponseBase as W, type ExecuteErpImportRequest as X, type ExternalMonitoringSpan as Y, type FileProxyAuth as Z, type FileProxyDeliveryConfig as _, Components as a, type NotificationRule as a$, type FileProxyLookup as a0, type FileProxyParam as a1, type FileProxyResponseConfig as a2, type FileProxySecureProxyAttachment as a3, type FileProxyStep as a4, type FileProxyUploadConfig as a5, type FileProxyUrlConfig as a6, type FileProxyUrlParam as a7, type FileProxyUrlParams as a8, type FileProxyUseCase as a9, type IntegrationSettings as aA, type IntegrationWithUseCases as aB, type ManagedCallAuth as aC, type ManagedCallErrorResponse as aD, type ManagedCallExecuteRequest as aE, type ManagedCallExecuteResponse as aF, type ManagedCallOperation as aG, type ManagedCallOperationConfig as aH, type ManagedCallUseCase as aI, type ManagedCallUseCaseHistoryEntry as aJ, type MappingSimulationRequest as aK, type MappingSimulationResponse as aL, type MappingSimulationV2Request as aM, type MappingSimulationWarning as aN, type MeterReadingPruneScopeConfig as aO, type MeterReadingPruneScopeUpdate as aP, type MeterReadingUpdate as aQ, type MeterUniqueIdsConfig as aR, type MonitoringEventV2 as aS, type MonitoringStats as aT, type MonitoringStatsV2 as aU, type MonitoringTraceResponse as aV, type NotificationChannelSet as aW, type NotificationDigestConfig as aX, type NotificationHistoryItem as aY, type NotificationHistoryResponse as aZ, type NotificationRecipient as a_, type FileProxyUseCaseConfiguration as aa, type FileProxyUseCaseHistoryEntry as ab, type GenerateTypesPreviewResponse as ac, type GenerateTypesRequest as ad, type GenerateTypesResponse as ae, type GetMonitoringStatsRequest as af, type GetMonitoringStatsV2Request as ag, type GetMonitoringTimeSeriesRequest as ah, type GetMonitoringTimeSeriesV2Request as ai, type InboundIntegrationEventConfiguration as aj, type InboundMonitoringEvent as ak, type InboundUseCase as al, type InboundUseCaseHistoryEntry as am, type IngestExternalMonitoringEventsRequest as an, type IngestExternalMonitoringEventsResponse as ao, type Integration as ap, type IntegrationAppMapping as aq, type IntegrationConfigurationV1 as ar, type IntegrationConfigurationV2 as as, type IntegrationEditableFields as at, type IntegrationEntity as au, type IntegrationEntityField as av, type IntegrationFieldV1 as aw, type IntegrationMeterReading as ax, type IntegrationNotificationConfig as ay, type IntegrationObjectV1 as az, type PathsDictionary as b, type UpdateFileProxyUseCaseRequest as b$, type NotificationRuleStatus as b0, type NotificationStatusResponse as b1, type OutboundConflict as b2, type OutboundDlqListResponse as b3, type OutboundDlqMessage as b4, type OutboundFileProxyTargetStatus as b5, type OutboundIntegrationEventConfiguration as b6, type OutboundMapping as b7, type OutboundMessage as b8, type OutboundMonitoringEvent as b9, type RepeatableFieldType as bA, type ReplayEventsRequest as bB, type RuleBaselineBucket as bC, type RuleBaselineStatus as bD, type S3Reference as bE, type SecureProxyRequest as bF, type SecureProxyResponse as bG, type SecureProxySummary as bH, type SecureProxyUpstreamError as bI, type SecureProxyUseCase as bJ, type SecureProxyUseCaseConfiguration as bK, type SecureProxyUseCaseHistoryEntry as bL, type SecureProxyWhitelist as bM, type SecureProxyWhitelistUpdate as bN, type SetIntegrationAppMappingRequest as bO, type SuggestErpImportUseCasesResponse as bP, type TestNotificationRequest as bQ, type TestNotificationResponse as bR, type TimeSeriesBreakdownItemV2 as bS, type TimeSeriesBucket as bT, type TimeSeriesBucketV2 as bU, type TriggerErpActionRequest as bV, type TriggerWebhookResp as bW, type TypeAnnotations as bX, type TypeDescriptor as bY, type UnblockOutboundStreamRequest as bZ, type UnblockOutboundStreamResponse as b_, type OutboundPollStatus as ba, type OutboundStatusResponse as bb, type OutboundUseCase as bc, type OutboundUseCaseHistoryEntry as bd, type OutboundUseCaseStatus as be, type PollDeliveryConfig as bf, type PollOutboundMessagesRequest as bg, type PollOutboundMessagesResponse as bh, type PortalOrigin as bi, type PortalRefConfig as bj, type PortalRefFilter as bk, type PruneScopeConfig as bl, type QueryAccessLogsRequest as bm, type QueryEventsRequest as bn, type QueryInboundMonitoringEventsRequest as bo, type QueryMonitoringEventsV2Request as bp, type QueryOutboundMonitoringEventsRequest as bq, type RedriveOutboundDlqRequest as br, type RedriveOutboundDlqResponse as bs, type RedriveOutboundDlqResult as bt, type RelationConfig as bu, type RelationItemConfig as bv, type RelationRefItemConfig as bw, type RelationRefValueConfig as bx, type RelationRefsConfig as by, type RelationUniqueIdField as bz, type AckOutboundMessagesRequest as c, type UpdateInboundUseCaseRequest as c0, type UpdateIntegrationRequest as c1, type UpdateManagedCallUseCaseRequest as c2, type UpdateOutboundUseCaseRequest as c3, type UpdateSecureProxyUseCaseRequest as c4, type UpdateUseCaseRequest as c5, type UpdateUseCaseRequestBase as c6, type UpsertIntegrationWithUseCasesRequest as c7, type UseCase as c8, type UseCaseBase as c9, type UseCaseHistoryEntry as ca, type UseCaseHistoryEntryBase as cb, type UseCaseTypePreview as cc, type ValidateErpImportRequest as cd, type WebhookDeliveryConfig as ce, type WebhookStatus as cf, 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 EmbeddedInboundUseCaseRequest as u, type EmbeddedManagedCallUseCaseRequest as v, type EmbeddedOutboundUseCaseRequest as w, type EmbeddedSecureProxyUseCaseRequest as x, type EmbeddedUseCaseRequest as y, type EmbeddedUseCaseRequestBase as z };