@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.
- package/definitions/integration-toolkit-runtime.json +1 -1
- package/definitions/integration-toolkit.json +472 -21
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +8 -8
- package/dist/apis/integration-toolkit.d.cts +2 -2
- package/dist/apis/integration-toolkit.d.ts +2 -2
- package/dist/apis/integration-toolkit.js +2 -2
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-MIKSJIFK.cjs → chunk-JMRPVDMK.cjs} +2 -2
- package/dist/{chunk-TAQOJW6T.js → chunk-M44TEEFZ.js} +2 -2
- package/dist/{chunk-RXFXAZK3.cjs → chunk-TIH5X7Q4.cjs} +1 -1
- package/dist/{chunk-5OOGTDF2.js → chunk-YWZCVCG2.js} +1 -1
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/integration-toolkit-OSK5M75F.js +7 -0
- package/dist/integration-toolkit-W5IENOJW.cjs +7 -0
- package/dist/{integration-toolkit-runtime-2MBB4EOE.js → integration-toolkit-runtime-6J2KUTFL.js} +1 -1
- package/dist/{integration-toolkit-runtime-VUI4NCRJ.cjs → integration-toolkit-runtime-REEOXZO6.cjs} +2 -2
- package/dist/{integration-toolkit.d-E2nrIdIM.d.cts → integration-toolkit.d-D5LjhCQB.d.cts} +685 -46
- package/dist/{integration-toolkit.d-E2nrIdIM.d.ts → integration-toolkit.d-D5LjhCQB.d.ts} +685 -46
- package/docs/integration-toolkit.md +543 -146
- package/package.json +1 -1
- package/dist/integration-toolkit-63NIMAHB.js +0 -7
- 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
|
-
|
|
1344
|
-
|
|
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
|
|
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
|
-
*
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
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
|
|
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
|
-
*
|
|
1565
|
-
*
|
|
1566
|
-
*
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
-
*
|
|
2460
|
-
*
|
|
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
|
|
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
|
-
*
|
|
2470
|
-
*
|
|
2471
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
2568
|
-
*
|
|
2569
|
-
*
|
|
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 —
|
|
4749
|
-
.../* A mapping that delivers an event to an external system —
|
|
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 —
|
|
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
|
|
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
|
|
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
|
-
*
|
|
6449
|
-
*
|
|
6450
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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 };
|