@epilot/sdk 2.18.30 → 2.18.32
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 +942 -45
- package/definitions/pricing-runtime.json +1 -1
- package/definitions/pricing.json +1733 -59
- 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.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 +8 -8
- package/dist/apis/pricing.d.cts +2 -2
- package/dist/apis/pricing.d.ts +2 -2
- package/dist/apis/pricing.js +2 -2
- 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-2WGN6U22.cjs +14 -0
- package/dist/{chunk-SH4WTF3U.cjs → chunk-5A6KKQEZ.cjs} +4 -4
- package/dist/chunk-ECZ337CC.js +14 -0
- package/dist/{chunk-63BFJKWV.js → chunk-OHYTCUUB.js} +1 -1
- package/dist/{chunk-KP7H52BF.cjs → chunk-UKHR33EL.cjs} +1 -1
- package/dist/{chunk-VFIPZC47.js → chunk-Z3EVGVBQ.js} +4 -4
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/integration-toolkit-RVVT6BCK.cjs +7 -0
- package/dist/integration-toolkit-X64BK3WX.js +7 -0
- package/dist/{integration-toolkit-runtime-ZWS4WRKI.cjs → integration-toolkit-runtime-AL7GHT6B.cjs} +2 -2
- package/dist/{integration-toolkit-runtime-3RZRSZCW.js → integration-toolkit-runtime-M3GLLRLF.js} +1 -1
- package/dist/pricing-HQ75T2TF.js +7 -0
- package/dist/pricing-HTU5XPZE.cjs +7 -0
- package/dist/{pricing-runtime-2YKEJJMZ.js → pricing-runtime-AT27C3BP.js} +1 -1
- package/dist/{pricing-runtime-XDCOKL47.cjs → pricing-runtime-PFVTRERK.cjs} +2 -2
- package/dist/{pricing.d-C95oaAtN.d.cts → pricing.d-D6HCZpbI.d.cts} +2218 -83
- package/dist/{pricing.d-C95oaAtN.d.ts → pricing.d-D6HCZpbI.d.ts} +2218 -83
- package/docs/integration-toolkit.md +545 -19
- package/docs/pricing.md +1050 -22
- package/package.json +1 -1
- package/dist/chunk-ILRZHW2E.cjs +0 -14
- package/dist/chunk-VA34RFFR.js +0 -14
- package/dist/integration-toolkit-2WF2P4OX.cjs +0 -7
- package/dist/integration-toolkit-RDFELVKR.js +0 -7
- package/dist/pricing-5GBNQOLX.cjs +0 -7
- package/dist/pricing-YJHJTRJS.js +0 -7
|
@@ -29,6 +29,7 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
29
29
|
- [`triggerErp`](#triggererp)
|
|
30
30
|
- [`processErpUpdatesEventsV3`](#processerpupdateseventsv3)
|
|
31
31
|
- [`simulateMappingV2`](#simulatemappingv2)
|
|
32
|
+
- [`simulateDirect`](#simulatedirect)
|
|
32
33
|
- [`simulateMapping`](#simulatemapping)
|
|
33
34
|
|
|
34
35
|
**integrations**
|
|
@@ -63,6 +64,7 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
63
64
|
- [`setIntegrationAppMapping`](#setintegrationappmapping)
|
|
64
65
|
- [`deleteIntegrationAppMapping`](#deleteintegrationappmapping)
|
|
65
66
|
- [`getOutboundStatus`](#getoutboundstatus)
|
|
67
|
+
- [`getEntitySyncStatus`](#getentitysyncstatus)
|
|
66
68
|
- [`pollOutboundMessages`](#polloutboundmessages)
|
|
67
69
|
- [`ackOutboundMessages`](#ackoutboundmessages)
|
|
68
70
|
- [`listOutboundDlqMessages`](#listoutbounddlqmessages)
|
|
@@ -233,6 +235,16 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
233
235
|
- [`MappingSimulationV2Request`](#mappingsimulationv2request)
|
|
234
236
|
- [`MappingSimulationResponse`](#mappingsimulationresponse)
|
|
235
237
|
- [`MappingSimulationWarning`](#mappingsimulationwarning)
|
|
238
|
+
- [`DirectPayload`](#directpayload)
|
|
239
|
+
- [`DirectEntityOperation`](#directentityoperation)
|
|
240
|
+
- [`DirectMeterReadingOperation`](#directmeterreadingoperation)
|
|
241
|
+
- [`DirectRelationValue`](#directrelationvalue)
|
|
242
|
+
- [`DirectRelationItem`](#directrelationitem)
|
|
243
|
+
- [`DirectRelationRefValue`](#directrelationrefvalue)
|
|
244
|
+
- [`DirectRelationRefItem`](#directrelationrefitem)
|
|
245
|
+
- [`DirectSimulationRequest`](#directsimulationrequest)
|
|
246
|
+
- [`DirectSimulationResponse`](#directsimulationresponse)
|
|
247
|
+
- [`DirectSimulationError`](#directsimulationerror)
|
|
236
248
|
- [`EntityUpdate`](#entityupdate)
|
|
237
249
|
- [`MeterReadingUpdate`](#meterreadingupdate)
|
|
238
250
|
- [`EntityPruneScopeUpdate`](#entityprunescopeupdate)
|
|
@@ -246,6 +258,8 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
246
258
|
- [`WebhookDeliveryConfig`](#webhookdeliveryconfig)
|
|
247
259
|
- [`PollDeliveryConfig`](#polldeliveryconfig)
|
|
248
260
|
- [`FileProxyDeliveryConfig`](#fileproxydeliveryconfig)
|
|
261
|
+
- [`EntitySyncStatusResponse`](#entitysyncstatusresponse)
|
|
262
|
+
- [`EntitySyncState`](#entitysyncstate)
|
|
249
263
|
- [`OutboundStatusResponse`](#outboundstatusresponse)
|
|
250
264
|
- [`OutboundUseCaseStatus`](#outboundusecasestatus)
|
|
251
265
|
- [`OutboundFileProxyTargetStatus`](#outboundfileproxytargetstatus)
|
|
@@ -424,6 +438,7 @@ const { data } = await client.simulateMappingV2(
|
|
|
424
438
|
null,
|
|
425
439
|
{
|
|
426
440
|
event_configuration: {
|
|
441
|
+
direct: true,
|
|
427
442
|
entities: [
|
|
428
443
|
{ /* ... */ }
|
|
429
444
|
],
|
|
@@ -509,6 +524,89 @@ const { data } = await client.simulateMappingV2(
|
|
|
509
524
|
|
|
510
525
|
---
|
|
511
526
|
|
|
527
|
+
### `simulateDirect`
|
|
528
|
+
|
|
529
|
+
Dry run for direct-mode payloads: validates a `DirectPayload` against a `direct: true`
|
|
530
|
+
use case configuration and previews the internal entity and meter reading updates the
|
|
531
|
+
pipeline would apply — with
|
|
532
|
+
|
|
533
|
+
`POST /v1/erp/updates/direct_simulation`
|
|
534
|
+
|
|
535
|
+
```ts
|
|
536
|
+
const { data } = await client.simulateDirect(
|
|
537
|
+
null,
|
|
538
|
+
{
|
|
539
|
+
event_configuration: {
|
|
540
|
+
direct: true,
|
|
541
|
+
entities: [
|
|
542
|
+
{ /* ... */ }
|
|
543
|
+
],
|
|
544
|
+
meter_readings: [
|
|
545
|
+
{ /* ... */ }
|
|
546
|
+
]
|
|
547
|
+
},
|
|
548
|
+
payload: 'string'
|
|
549
|
+
},
|
|
550
|
+
)
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
<details>
|
|
554
|
+
<summary>Response</summary>
|
|
555
|
+
|
|
556
|
+
```json
|
|
557
|
+
{
|
|
558
|
+
"valid": true,
|
|
559
|
+
"errors": [
|
|
560
|
+
{
|
|
561
|
+
"code": "DIRECT_PAYLOAD_INVALID",
|
|
562
|
+
"message": "string",
|
|
563
|
+
"operation_index": 0
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
"warnings": [
|
|
567
|
+
{
|
|
568
|
+
"entity_schema": "string",
|
|
569
|
+
"field": "string",
|
|
570
|
+
"message": "string"
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
"entity_updates": [
|
|
574
|
+
{
|
|
575
|
+
"entity_slug": "string",
|
|
576
|
+
"unique_identifiers": {},
|
|
577
|
+
"attributes": {},
|
|
578
|
+
"pricing": {
|
|
579
|
+
"config": {},
|
|
580
|
+
"data": [
|
|
581
|
+
{}
|
|
582
|
+
]
|
|
583
|
+
},
|
|
584
|
+
"mode": "upsert",
|
|
585
|
+
"unique_identifiers_metadata": {}
|
|
586
|
+
}
|
|
587
|
+
],
|
|
588
|
+
"meter_reading_updates": [
|
|
589
|
+
{
|
|
590
|
+
"meter": {
|
|
591
|
+
"$entity_unique_ids": {}
|
|
592
|
+
},
|
|
593
|
+
"meter_counter": {
|
|
594
|
+
"$entity_unique_ids": {}
|
|
595
|
+
},
|
|
596
|
+
"attributes": {},
|
|
597
|
+
"mode": "upsert",
|
|
598
|
+
"_config": {
|
|
599
|
+
"reading_matching": "external_id"
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
]
|
|
603
|
+
}
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
</details>
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
512
610
|
### `simulateMapping`
|
|
513
611
|
|
|
514
612
|
Test mapping configuration by transforming a payload using the provided mapping rules without persisting data.
|
|
@@ -1133,6 +1231,7 @@ const { data } = await client.createUseCase(
|
|
|
1133
1231
|
enabled: true,
|
|
1134
1232
|
type: 'inbound',
|
|
1135
1233
|
configuration: {
|
|
1234
|
+
direct: true,
|
|
1136
1235
|
entities: [
|
|
1137
1236
|
{ /* ... */ }
|
|
1138
1237
|
],
|
|
@@ -1160,6 +1259,7 @@ const { data } = await client.createUseCase(
|
|
|
1160
1259
|
"created_at": "1970-01-01T00:00:00.000Z",
|
|
1161
1260
|
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
1162
1261
|
"configuration": {
|
|
1262
|
+
"direct": true,
|
|
1163
1263
|
"entities": [
|
|
1164
1264
|
{}
|
|
1165
1265
|
],
|
|
@@ -1203,6 +1303,7 @@ const { data } = await client.getUseCase({
|
|
|
1203
1303
|
"created_at": "1970-01-01T00:00:00.000Z",
|
|
1204
1304
|
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
1205
1305
|
"configuration": {
|
|
1306
|
+
"direct": true,
|
|
1206
1307
|
"entities": [
|
|
1207
1308
|
{}
|
|
1208
1309
|
],
|
|
@@ -1236,6 +1337,7 @@ const { data } = await client.updateUseCase(
|
|
|
1236
1337
|
change_description: 'string',
|
|
1237
1338
|
type: 'inbound',
|
|
1238
1339
|
configuration: {
|
|
1340
|
+
direct: true,
|
|
1239
1341
|
entities: [
|
|
1240
1342
|
{ /* ... */ }
|
|
1241
1343
|
],
|
|
@@ -1263,6 +1365,7 @@ const { data } = await client.updateUseCase(
|
|
|
1263
1365
|
"created_at": "1970-01-01T00:00:00.000Z",
|
|
1264
1366
|
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
1265
1367
|
"configuration": {
|
|
1368
|
+
"direct": true,
|
|
1266
1369
|
"entities": [
|
|
1267
1370
|
{}
|
|
1268
1371
|
],
|
|
@@ -2551,6 +2654,46 @@ const { data } = await client.getOutboundStatus({
|
|
|
2551
2654
|
|
|
2552
2655
|
---
|
|
2553
2656
|
|
|
2657
|
+
### `getEntitySyncStatus`
|
|
2658
|
+
|
|
2659
|
+
Get the inbound ERP sync status of an entity: when each integration last
|
|
2660
|
+
synchronized (checked) the entity against the ERP, and when it last
|
|
2661
|
+
actually changed it. `last_synced_at` also advances on no-o
|
|
2662
|
+
|
|
2663
|
+
`GET /v1/entities/{entityId}/sync-status`
|
|
2664
|
+
|
|
2665
|
+
```ts
|
|
2666
|
+
const { data } = await client.getEntitySyncStatus({
|
|
2667
|
+
entityId: 'example',
|
|
2668
|
+
integration_id: 'example',
|
|
2669
|
+
})
|
|
2670
|
+
```
|
|
2671
|
+
|
|
2672
|
+
<details>
|
|
2673
|
+
<summary>Response</summary>
|
|
2674
|
+
|
|
2675
|
+
```json
|
|
2676
|
+
{
|
|
2677
|
+
"entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
2678
|
+
"sync_states": [
|
|
2679
|
+
{
|
|
2680
|
+
"entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
2681
|
+
"integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
2682
|
+
"entity_slug": "contract",
|
|
2683
|
+
"use_case_id": "string",
|
|
2684
|
+
"last_synced_at": "1970-01-01T00:00:00.000Z",
|
|
2685
|
+
"last_changed_at": "1970-01-01T00:00:00.000Z",
|
|
2686
|
+
"last_operation": "create",
|
|
2687
|
+
"last_event_id": "string"
|
|
2688
|
+
}
|
|
2689
|
+
]
|
|
2690
|
+
}
|
|
2691
|
+
```
|
|
2692
|
+
|
|
2693
|
+
</details>
|
|
2694
|
+
|
|
2695
|
+
---
|
|
2696
|
+
|
|
2554
2697
|
### `pollOutboundMessages`
|
|
2555
2698
|
|
|
2556
2699
|
Poll outbound messages for an integration's poll-mode use cases.
|
|
@@ -4753,6 +4896,7 @@ type IntegrationWithUseCases = {
|
|
|
4753
4896
|
created_at: string // date-time
|
|
4754
4897
|
updated_at: string // date-time
|
|
4755
4898
|
configuration?: {
|
|
4899
|
+
direct?: { ... }
|
|
4756
4900
|
entities?: { ... }
|
|
4757
4901
|
meter_readings?: { ... }
|
|
4758
4902
|
}
|
|
@@ -4908,6 +5052,7 @@ type UpsertIntegrationWithUseCasesRequest = {
|
|
|
4908
5052
|
change_description?: string
|
|
4909
5053
|
type: "inbound"
|
|
4910
5054
|
configuration?: {
|
|
5055
|
+
direct?: { ... }
|
|
4911
5056
|
entities?: { ... }
|
|
4912
5057
|
meter_readings?: { ... }
|
|
4913
5058
|
}
|
|
@@ -4940,7 +5085,6 @@ type UpsertIntegrationWithUseCasesRequest = {
|
|
|
4940
5085
|
params?: { ... }
|
|
4941
5086
|
allowed_origins?: { ... }
|
|
4942
5087
|
steps: { ... }
|
|
4943
|
-
response?: { ... }
|
|
4944
5088
|
// ...
|
|
4945
5089
|
}
|
|
4946
5090
|
```
|
|
@@ -4951,6 +5095,7 @@ Configuration for inbound use cases (ERP to epilot)
|
|
|
4951
5095
|
|
|
4952
5096
|
```ts
|
|
4953
5097
|
type InboundIntegrationEventConfiguration = {
|
|
5098
|
+
direct?: boolean
|
|
4954
5099
|
entities?: Array<{
|
|
4955
5100
|
entity_schema: string
|
|
4956
5101
|
unique_ids: string[]
|
|
@@ -4963,7 +5108,7 @@ type InboundIntegrationEventConfiguration = {
|
|
|
4963
5108
|
unique_ids?: { ... }
|
|
4964
5109
|
query?: { ... }
|
|
4965
5110
|
}
|
|
4966
|
-
fields
|
|
5111
|
+
fields?: Array<{
|
|
4967
5112
|
attribute: { ... }
|
|
4968
5113
|
field?: { ... }
|
|
4969
5114
|
jsonataExpression?: { ... }
|
|
@@ -5068,7 +5213,7 @@ type IntegrationEntity = {
|
|
|
5068
5213
|
constant?: { ... }
|
|
5069
5214
|
}>
|
|
5070
5215
|
}
|
|
5071
|
-
fields
|
|
5216
|
+
fields?: Array<{
|
|
5072
5217
|
attribute: string
|
|
5073
5218
|
field?: string
|
|
5074
5219
|
jsonataExpression?: string
|
|
@@ -5469,6 +5614,7 @@ type EmbeddedUseCaseRequest = {
|
|
|
5469
5614
|
change_description?: string
|
|
5470
5615
|
type: "inbound"
|
|
5471
5616
|
configuration?: {
|
|
5617
|
+
direct?: boolean
|
|
5472
5618
|
entities?: Array<{
|
|
5473
5619
|
entity_schema: { ... }
|
|
5474
5620
|
unique_ids: { ... }
|
|
@@ -5476,7 +5622,7 @@ type EmbeddedUseCaseRequest = {
|
|
|
5476
5622
|
enabled?: { ... }
|
|
5477
5623
|
mode?: { ... }
|
|
5478
5624
|
scope?: { ... }
|
|
5479
|
-
fields
|
|
5625
|
+
fields?: { ... }
|
|
5480
5626
|
}>
|
|
5481
5627
|
meter_readings?: Array<{
|
|
5482
5628
|
jsonataExpression?: { ... }
|
|
@@ -5560,7 +5706,6 @@ type EmbeddedUseCaseRequest = {
|
|
|
5560
5706
|
}>
|
|
5561
5707
|
response?: {
|
|
5562
5708
|
body: { ... }
|
|
5563
|
-
encoding: { ... }
|
|
5564
5709
|
// ...
|
|
5565
5710
|
}
|
|
5566
5711
|
```
|
|
@@ -5588,6 +5733,7 @@ type EmbeddedInboundUseCaseRequest = {
|
|
|
5588
5733
|
change_description?: string
|
|
5589
5734
|
type: "inbound"
|
|
5590
5735
|
configuration?: {
|
|
5736
|
+
direct?: boolean
|
|
5591
5737
|
entities?: Array<{
|
|
5592
5738
|
entity_schema: { ... }
|
|
5593
5739
|
unique_ids: { ... }
|
|
@@ -5595,7 +5741,7 @@ type EmbeddedInboundUseCaseRequest = {
|
|
|
5595
5741
|
enabled?: { ... }
|
|
5596
5742
|
mode?: { ... }
|
|
5597
5743
|
scope?: { ... }
|
|
5598
|
-
fields
|
|
5744
|
+
fields?: { ... }
|
|
5599
5745
|
}>
|
|
5600
5746
|
meter_readings?: Array<{
|
|
5601
5747
|
jsonataExpression?: { ... }
|
|
@@ -5774,6 +5920,7 @@ type InboundUseCase = {
|
|
|
5774
5920
|
created_at: string // date-time
|
|
5775
5921
|
updated_at: string // date-time
|
|
5776
5922
|
configuration?: {
|
|
5923
|
+
direct?: boolean
|
|
5777
5924
|
entities?: Array<{
|
|
5778
5925
|
entity_schema: { ... }
|
|
5779
5926
|
unique_ids: { ... }
|
|
@@ -5781,7 +5928,7 @@ type InboundUseCase = {
|
|
|
5781
5928
|
enabled?: { ... }
|
|
5782
5929
|
mode?: { ... }
|
|
5783
5930
|
scope?: { ... }
|
|
5784
|
-
fields
|
|
5931
|
+
fields?: { ... }
|
|
5785
5932
|
}>
|
|
5786
5933
|
meter_readings?: Array<{
|
|
5787
5934
|
jsonataExpression?: { ... }
|
|
@@ -5964,6 +6111,7 @@ type UseCase = {
|
|
|
5964
6111
|
created_at: string // date-time
|
|
5965
6112
|
updated_at: string // date-time
|
|
5966
6113
|
configuration?: {
|
|
6114
|
+
direct?: boolean
|
|
5967
6115
|
entities?: Array<{
|
|
5968
6116
|
entity_schema: { ... }
|
|
5969
6117
|
unique_ids: { ... }
|
|
@@ -5971,7 +6119,7 @@ type UseCase = {
|
|
|
5971
6119
|
enabled?: { ... }
|
|
5972
6120
|
mode?: { ... }
|
|
5973
6121
|
scope?: { ... }
|
|
5974
|
-
fields
|
|
6122
|
+
fields?: { ... }
|
|
5975
6123
|
}>
|
|
5976
6124
|
meter_readings?: Array<{
|
|
5977
6125
|
jsonataExpression?: { ... }
|
|
@@ -6051,7 +6199,6 @@ type UseCase = {
|
|
|
6051
6199
|
required: { ... }
|
|
6052
6200
|
description?: { ... }
|
|
6053
6201
|
}>
|
|
6054
|
-
allowed_origins?: string // uri[]
|
|
6055
6202
|
// ...
|
|
6056
6203
|
}
|
|
6057
6204
|
```
|
|
@@ -6065,6 +6212,7 @@ type CreateUseCaseRequest = {
|
|
|
6065
6212
|
enabled: boolean
|
|
6066
6213
|
type: "inbound"
|
|
6067
6214
|
configuration?: {
|
|
6215
|
+
direct?: boolean
|
|
6068
6216
|
entities?: Array<{
|
|
6069
6217
|
entity_schema: { ... }
|
|
6070
6218
|
unique_ids: { ... }
|
|
@@ -6072,7 +6220,7 @@ type CreateUseCaseRequest = {
|
|
|
6072
6220
|
enabled?: { ... }
|
|
6073
6221
|
mode?: { ... }
|
|
6074
6222
|
scope?: { ... }
|
|
6075
|
-
fields
|
|
6223
|
+
fields?: { ... }
|
|
6076
6224
|
}>
|
|
6077
6225
|
meter_readings?: Array<{
|
|
6078
6226
|
jsonataExpression?: { ... }
|
|
@@ -6158,7 +6306,6 @@ type CreateUseCaseRequest = {
|
|
|
6158
6306
|
}
|
|
6159
6307
|
prevent_indirect_serving?: boolean
|
|
6160
6308
|
}
|
|
6161
|
-
} | {
|
|
6162
6309
|
// ...
|
|
6163
6310
|
}
|
|
6164
6311
|
```
|
|
@@ -6182,6 +6329,7 @@ type CreateInboundUseCaseRequest = {
|
|
|
6182
6329
|
enabled: boolean
|
|
6183
6330
|
type: "inbound"
|
|
6184
6331
|
configuration?: {
|
|
6332
|
+
direct?: boolean
|
|
6185
6333
|
entities?: Array<{
|
|
6186
6334
|
entity_schema: { ... }
|
|
6187
6335
|
unique_ids: { ... }
|
|
@@ -6189,7 +6337,7 @@ type CreateInboundUseCaseRequest = {
|
|
|
6189
6337
|
enabled?: { ... }
|
|
6190
6338
|
mode?: { ... }
|
|
6191
6339
|
scope?: { ... }
|
|
6192
|
-
fields
|
|
6340
|
+
fields?: { ... }
|
|
6193
6341
|
}>
|
|
6194
6342
|
meter_readings?: Array<{
|
|
6195
6343
|
jsonataExpression?: { ... }
|
|
@@ -6338,6 +6486,7 @@ type UpdateUseCaseRequest = {
|
|
|
6338
6486
|
change_description?: string
|
|
6339
6487
|
type?: "inbound"
|
|
6340
6488
|
configuration?: {
|
|
6489
|
+
direct?: boolean
|
|
6341
6490
|
entities?: Array<{
|
|
6342
6491
|
entity_schema: { ... }
|
|
6343
6492
|
unique_ids: { ... }
|
|
@@ -6345,7 +6494,7 @@ type UpdateUseCaseRequest = {
|
|
|
6345
6494
|
enabled?: { ... }
|
|
6346
6495
|
mode?: { ... }
|
|
6347
6496
|
scope?: { ... }
|
|
6348
|
-
fields
|
|
6497
|
+
fields?: { ... }
|
|
6349
6498
|
}>
|
|
6350
6499
|
meter_readings?: Array<{
|
|
6351
6500
|
jsonataExpression?: { ... }
|
|
@@ -6430,7 +6579,6 @@ type UpdateUseCaseRequest = {
|
|
|
6430
6579
|
encoding: { ... }
|
|
6431
6580
|
filename?: { ... }
|
|
6432
6581
|
content_type?: { ... }
|
|
6433
|
-
}
|
|
6434
6582
|
// ...
|
|
6435
6583
|
}
|
|
6436
6584
|
```
|
|
@@ -6456,6 +6604,7 @@ type UpdateInboundUseCaseRequest = {
|
|
|
6456
6604
|
change_description?: string
|
|
6457
6605
|
type?: "inbound"
|
|
6458
6606
|
configuration?: {
|
|
6607
|
+
direct?: boolean
|
|
6459
6608
|
entities?: Array<{
|
|
6460
6609
|
entity_schema: { ... }
|
|
6461
6610
|
unique_ids: { ... }
|
|
@@ -6463,7 +6612,7 @@ type UpdateInboundUseCaseRequest = {
|
|
|
6463
6612
|
enabled?: { ... }
|
|
6464
6613
|
mode?: { ... }
|
|
6465
6614
|
scope?: { ... }
|
|
6466
|
-
fields
|
|
6615
|
+
fields?: { ... }
|
|
6467
6616
|
}>
|
|
6468
6617
|
meter_readings?: Array<{
|
|
6469
6618
|
jsonataExpression?: { ... }
|
|
@@ -6627,6 +6776,7 @@ type UseCaseHistoryEntry = {
|
|
|
6627
6776
|
history_created_at: string // date-time
|
|
6628
6777
|
type: "inbound"
|
|
6629
6778
|
configuration?: {
|
|
6779
|
+
direct?: boolean
|
|
6630
6780
|
entities?: Array<{
|
|
6631
6781
|
entity_schema: { ... }
|
|
6632
6782
|
unique_ids: { ... }
|
|
@@ -6634,7 +6784,7 @@ type UseCaseHistoryEntry = {
|
|
|
6634
6784
|
enabled?: { ... }
|
|
6635
6785
|
mode?: { ... }
|
|
6636
6786
|
scope?: { ... }
|
|
6637
|
-
fields
|
|
6787
|
+
fields?: { ... }
|
|
6638
6788
|
}>
|
|
6639
6789
|
meter_readings?: Array<{
|
|
6640
6790
|
jsonataExpression?: { ... }
|
|
@@ -6712,7 +6862,6 @@ type UseCaseHistoryEntry = {
|
|
|
6712
6862
|
body_params?: { ... }
|
|
6713
6863
|
headers?: { ... }
|
|
6714
6864
|
query_params?: { ... }
|
|
6715
|
-
}
|
|
6716
6865
|
// ...
|
|
6717
6866
|
}
|
|
6718
6867
|
```
|
|
@@ -6752,6 +6901,7 @@ type InboundUseCaseHistoryEntry = {
|
|
|
6752
6901
|
history_created_at: string // date-time
|
|
6753
6902
|
type: "inbound"
|
|
6754
6903
|
configuration?: {
|
|
6904
|
+
direct?: boolean
|
|
6755
6905
|
entities?: Array<{
|
|
6756
6906
|
entity_schema: { ... }
|
|
6757
6907
|
unique_ids: { ... }
|
|
@@ -6759,7 +6909,7 @@ type InboundUseCaseHistoryEntry = {
|
|
|
6759
6909
|
enabled?: { ... }
|
|
6760
6910
|
mode?: { ... }
|
|
6761
6911
|
scope?: { ... }
|
|
6762
|
-
fields
|
|
6912
|
+
fields?: { ... }
|
|
6763
6913
|
}>
|
|
6764
6914
|
meter_readings?: Array<{
|
|
6765
6915
|
jsonataExpression?: { ... }
|
|
@@ -7534,6 +7684,7 @@ making it easier to test configurations before saving them.
|
|
|
7534
7684
|
```ts
|
|
7535
7685
|
type MappingSimulationV2Request = {
|
|
7536
7686
|
event_configuration: {
|
|
7687
|
+
direct?: boolean
|
|
7537
7688
|
entities?: Array<{
|
|
7538
7689
|
entity_schema: { ... }
|
|
7539
7690
|
unique_ids: { ... }
|
|
@@ -7541,7 +7692,7 @@ type MappingSimulationV2Request = {
|
|
|
7541
7692
|
enabled?: { ... }
|
|
7542
7693
|
mode?: { ... }
|
|
7543
7694
|
scope?: { ... }
|
|
7544
|
-
fields
|
|
7695
|
+
fields?: { ... }
|
|
7545
7696
|
}>
|
|
7546
7697
|
meter_readings?: Array<{
|
|
7547
7698
|
jsonataExpression?: { ... }
|
|
@@ -7621,6 +7772,347 @@ type MappingSimulationWarning = {
|
|
|
7621
7772
|
}
|
|
7622
7773
|
```
|
|
7623
7774
|
|
|
7775
|
+
### `DirectPayload`
|
|
7776
|
+
|
|
7777
|
+
The payload of an ERP event routed to a `direct: true` use case: a versioned envelope of
|
|
7778
|
+
pre-mapped operations that skip the mapping engine. Sent as the `payload` of an
|
|
7779
|
+
`ErpEventV3` - either as a JSON object or as a JSON string (`format` must be `json`;
|
|
7780
|
+
XML is rejected for direct use cases).
|
|
7781
|
+
|
|
7782
|
+
The sc
|
|
7783
|
+
|
|
7784
|
+
```ts
|
|
7785
|
+
type DirectPayload = {
|
|
7786
|
+
version: "1"
|
|
7787
|
+
operations: Array<{
|
|
7788
|
+
type?: "entity"
|
|
7789
|
+
entity_slug: string
|
|
7790
|
+
unique_ids: Record<string, string | number>
|
|
7791
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7792
|
+
mode?: "upsert" | "delete" | "purge"
|
|
7793
|
+
attributes?: Record<string, {
|
|
7794
|
+
$relation: { ... }
|
|
7795
|
+
} | {
|
|
7796
|
+
$relation_ref: { ... }
|
|
7797
|
+
} | unknown>
|
|
7798
|
+
} | {
|
|
7799
|
+
type: "meter_reading"
|
|
7800
|
+
meter: {
|
|
7801
|
+
unique_ids: { ... }
|
|
7802
|
+
}
|
|
7803
|
+
counter?: {
|
|
7804
|
+
unique_ids: { ... }
|
|
7805
|
+
}
|
|
7806
|
+
mode?: "upsert" | "delete"
|
|
7807
|
+
reading_matching?: "external_id" | "strict-date"
|
|
7808
|
+
attributes: {
|
|
7809
|
+
external_id: { ... }
|
|
7810
|
+
timestamp: { ... }
|
|
7811
|
+
source: { ... }
|
|
7812
|
+
value: { ... }
|
|
7813
|
+
}
|
|
7814
|
+
}>
|
|
7815
|
+
}
|
|
7816
|
+
```
|
|
7817
|
+
|
|
7818
|
+
### `DirectEntityOperation`
|
|
7819
|
+
|
|
7820
|
+
A single pre-mapped entity operation: upserts, soft-deletes, or purges one entity,
|
|
7821
|
+
identified by its unique ids. Produces the same internal update as a mapped-mode entity
|
|
7822
|
+
configuration, so create-vs-update resolution, relation resolution, ordering, and
|
|
7823
|
+
monitoring behave identically.
|
|
7824
|
+
|
|
7825
|
+
|
|
7826
|
+
```ts
|
|
7827
|
+
type DirectEntityOperation = {
|
|
7828
|
+
type?: "entity"
|
|
7829
|
+
entity_slug: string
|
|
7830
|
+
unique_ids: Record<string, string | number>
|
|
7831
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7832
|
+
mode?: "upsert" | "delete" | "purge"
|
|
7833
|
+
attributes?: Record<string, {
|
|
7834
|
+
$relation: Array<{
|
|
7835
|
+
entity_id?: { ... }
|
|
7836
|
+
schema?: { ... }
|
|
7837
|
+
unique_ids?: { ... }
|
|
7838
|
+
unique_id_types?: { ... }
|
|
7839
|
+
tags?: { ... }
|
|
7840
|
+
}> | {
|
|
7841
|
+
_set?: { ... }
|
|
7842
|
+
_append?: { ... }
|
|
7843
|
+
_append_all?: { ... }
|
|
7844
|
+
}
|
|
7845
|
+
} | {
|
|
7846
|
+
$relation_ref: Array<{
|
|
7847
|
+
schema: { ... }
|
|
7848
|
+
unique_ids: { ... }
|
|
7849
|
+
unique_id_types?: { ... }
|
|
7850
|
+
path: { ... }
|
|
7851
|
+
value: { ... }
|
|
7852
|
+
}> | {
|
|
7853
|
+
_set?: { ... }
|
|
7854
|
+
_append?: { ... }
|
|
7855
|
+
_append_all?: { ... }
|
|
7856
|
+
}
|
|
7857
|
+
} | unknown>
|
|
7858
|
+
}
|
|
7859
|
+
```
|
|
7860
|
+
|
|
7861
|
+
### `DirectMeterReadingOperation`
|
|
7862
|
+
|
|
7863
|
+
A single pre-mapped meter reading operation: upserts or deletes one reading on a meter
|
|
7864
|
+
(and optionally a specific counter), identified by their unique ids. Produces the same
|
|
7865
|
+
internal update as a mapped-mode meter reading configuration.
|
|
7866
|
+
|
|
7867
|
+
|
|
7868
|
+
```ts
|
|
7869
|
+
type DirectMeterReadingOperation = {
|
|
7870
|
+
type: "meter_reading"
|
|
7871
|
+
meter: {
|
|
7872
|
+
unique_ids: Record<string, string | number>
|
|
7873
|
+
}
|
|
7874
|
+
counter?: {
|
|
7875
|
+
unique_ids: Record<string, string | number>
|
|
7876
|
+
}
|
|
7877
|
+
mode?: "upsert" | "delete"
|
|
7878
|
+
reading_matching?: "external_id" | "strict-date"
|
|
7879
|
+
attributes: {
|
|
7880
|
+
external_id: string | number
|
|
7881
|
+
timestamp: string
|
|
7882
|
+
source: "ECP" | "ERP" | "360" | "journey-submission"
|
|
7883
|
+
value: number | string
|
|
7884
|
+
}
|
|
7885
|
+
}
|
|
7886
|
+
```
|
|
7887
|
+
|
|
7888
|
+
### `DirectRelationValue`
|
|
7889
|
+
|
|
7890
|
+
An entity attribute value that establishes relations to other entities. Written on any
|
|
7891
|
+
attribute inside a direct entity operation's `attributes`.
|
|
7892
|
+
|
|
7893
|
+
Two forms are accepted: a bare array of items (shorthand for `_set`, i.e. replace), or
|
|
7894
|
+
an object with EXACTLY ONE of the operations `_set` (replace), `_a
|
|
7895
|
+
|
|
7896
|
+
```ts
|
|
7897
|
+
type DirectRelationValue = {
|
|
7898
|
+
$relation: Array<{
|
|
7899
|
+
entity_id?: string
|
|
7900
|
+
schema?: string
|
|
7901
|
+
unique_ids?: Record<string, string | number>
|
|
7902
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7903
|
+
tags?: string[]
|
|
7904
|
+
}> | {
|
|
7905
|
+
_set?: Array<{
|
|
7906
|
+
entity_id?: { ... }
|
|
7907
|
+
schema?: { ... }
|
|
7908
|
+
unique_ids?: { ... }
|
|
7909
|
+
unique_id_types?: { ... }
|
|
7910
|
+
tags?: { ... }
|
|
7911
|
+
}>
|
|
7912
|
+
_append?: Array<{
|
|
7913
|
+
entity_id?: { ... }
|
|
7914
|
+
schema?: { ... }
|
|
7915
|
+
unique_ids?: { ... }
|
|
7916
|
+
unique_id_types?: { ... }
|
|
7917
|
+
tags?: { ... }
|
|
7918
|
+
}>
|
|
7919
|
+
_append_all?: Array<{
|
|
7920
|
+
entity_id?: { ... }
|
|
7921
|
+
schema?: { ... }
|
|
7922
|
+
unique_ids?: { ... }
|
|
7923
|
+
unique_id_types?: { ... }
|
|
7924
|
+
tags?: { ... }
|
|
7925
|
+
}>
|
|
7926
|
+
}
|
|
7927
|
+
}
|
|
7928
|
+
```
|
|
7929
|
+
|
|
7930
|
+
### `DirectRelationItem`
|
|
7931
|
+
|
|
7932
|
+
One relation target: either an already-resolved reference (`entity_id`), or a lookup by
|
|
7933
|
+
unique ids (`schema` + `unique_ids`, resolved by the pipeline like any other unique-id
|
|
7934
|
+
lookup, including stub creation and retry when the target does not exist yet). The two
|
|
7935
|
+
forms are mutually exclusive. Use `_id
|
|
7936
|
+
|
|
7937
|
+
```ts
|
|
7938
|
+
type DirectRelationItem = {
|
|
7939
|
+
entity_id?: string
|
|
7940
|
+
schema?: string
|
|
7941
|
+
unique_ids?: Record<string, string | number>
|
|
7942
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7943
|
+
tags?: string[]
|
|
7944
|
+
}
|
|
7945
|
+
```
|
|
7946
|
+
|
|
7947
|
+
### `DirectRelationRefValue`
|
|
7948
|
+
|
|
7949
|
+
An entity attribute value that references an ITEM INSIDE a repeatable attribute of
|
|
7950
|
+
another entity - for example one address out of a contact's `address` list. The target
|
|
7951
|
+
entity is looked up by unique ids, then the item at `path` matching `value` is
|
|
7952
|
+
referenced (creating it when missing).
|
|
7953
|
+
|
|
7954
|
+
The same op
|
|
7955
|
+
|
|
7956
|
+
```ts
|
|
7957
|
+
type DirectRelationRefValue = {
|
|
7958
|
+
$relation_ref: Array<{
|
|
7959
|
+
schema: string
|
|
7960
|
+
unique_ids: Record<string, string | number>
|
|
7961
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7962
|
+
path: string
|
|
7963
|
+
value: unknown
|
|
7964
|
+
}> | {
|
|
7965
|
+
_set?: Array<{
|
|
7966
|
+
schema: { ... }
|
|
7967
|
+
unique_ids: { ... }
|
|
7968
|
+
unique_id_types?: { ... }
|
|
7969
|
+
path: { ... }
|
|
7970
|
+
value: { ... }
|
|
7971
|
+
}>
|
|
7972
|
+
_append?: Array<{
|
|
7973
|
+
schema: { ... }
|
|
7974
|
+
unique_ids: { ... }
|
|
7975
|
+
unique_id_types?: { ... }
|
|
7976
|
+
path: { ... }
|
|
7977
|
+
value: { ... }
|
|
7978
|
+
}>
|
|
7979
|
+
_append_all?: Array<{
|
|
7980
|
+
schema: { ... }
|
|
7981
|
+
unique_ids: { ... }
|
|
7982
|
+
unique_id_types?: { ... }
|
|
7983
|
+
path: { ... }
|
|
7984
|
+
value: { ... }
|
|
7985
|
+
}>
|
|
7986
|
+
}
|
|
7987
|
+
}
|
|
7988
|
+
```
|
|
7989
|
+
|
|
7990
|
+
### `DirectRelationRefItem`
|
|
7991
|
+
|
|
7992
|
+
One relation-ref target - the entity to look up, and the repeatable item to reference on it.
|
|
7993
|
+
|
|
7994
|
+
```ts
|
|
7995
|
+
type DirectRelationRefItem = {
|
|
7996
|
+
schema: string
|
|
7997
|
+
unique_ids: Record<string, string | number>
|
|
7998
|
+
unique_id_types?: Record<string, "email" | "phone">
|
|
7999
|
+
path: string
|
|
8000
|
+
value: unknown
|
|
8001
|
+
}
|
|
8002
|
+
```
|
|
8003
|
+
|
|
8004
|
+
### `DirectSimulationRequest`
|
|
8005
|
+
|
|
8006
|
+
Request for a direct-mode dry run: the `direct: true` use case configuration to test
|
|
8007
|
+
against, and the payload to validate and translate.
|
|
8008
|
+
|
|
8009
|
+
|
|
8010
|
+
```ts
|
|
8011
|
+
type DirectSimulationRequest = {
|
|
8012
|
+
event_configuration: {
|
|
8013
|
+
direct?: boolean
|
|
8014
|
+
entities?: Array<{
|
|
8015
|
+
entity_schema: { ... }
|
|
8016
|
+
unique_ids: { ... }
|
|
8017
|
+
jsonataExpression?: { ... }
|
|
8018
|
+
enabled?: { ... }
|
|
8019
|
+
mode?: { ... }
|
|
8020
|
+
scope?: { ... }
|
|
8021
|
+
fields?: { ... }
|
|
8022
|
+
}>
|
|
8023
|
+
meter_readings?: Array<{
|
|
8024
|
+
jsonataExpression?: { ... }
|
|
8025
|
+
reading_matching?: { ... }
|
|
8026
|
+
mode?: { ... }
|
|
8027
|
+
scope?: { ... }
|
|
8028
|
+
meter: { ... }
|
|
8029
|
+
meter_counter?: { ... }
|
|
8030
|
+
fields: { ... }
|
|
8031
|
+
}>
|
|
8032
|
+
}
|
|
8033
|
+
payload: string | {
|
|
8034
|
+
version: "1"
|
|
8035
|
+
operations: Array<{
|
|
8036
|
+
type?: { ... }
|
|
8037
|
+
entity_slug: { ... }
|
|
8038
|
+
unique_ids: { ... }
|
|
8039
|
+
unique_id_types?: { ... }
|
|
8040
|
+
mode?: { ... }
|
|
8041
|
+
attributes?: { ... }
|
|
8042
|
+
} | {
|
|
8043
|
+
type: { ... }
|
|
8044
|
+
meter: { ... }
|
|
8045
|
+
counter?: { ... }
|
|
8046
|
+
mode?: { ... }
|
|
8047
|
+
reading_matching?: { ... }
|
|
8048
|
+
attributes: { ... }
|
|
8049
|
+
}>
|
|
8050
|
+
}
|
|
8051
|
+
}
|
|
8052
|
+
```
|
|
8053
|
+
|
|
8054
|
+
### `DirectSimulationResponse`
|
|
8055
|
+
|
|
8056
|
+
Result of a direct-mode dry run. `valid: false` responses list EVERY violation found
|
|
8057
|
+
across all operations in `errors`. `valid: true` responses preview the internal updates
|
|
8058
|
+
the pipeline would apply, plus non-blocking `warnings`.
|
|
8059
|
+
|
|
8060
|
+
|
|
8061
|
+
```ts
|
|
8062
|
+
type DirectSimulationResponse = {
|
|
8063
|
+
valid: boolean
|
|
8064
|
+
errors: Array<{
|
|
8065
|
+
code: "DIRECT_PAYLOAD_INVALID" | "DIRECT_VERSION_UNSUPPORTED" | "DIRECT_ENTITY_NOT_ALLOWED"
|
|
8066
|
+
message: string
|
|
8067
|
+
operation_index?: number
|
|
8068
|
+
}>
|
|
8069
|
+
warnings?: Array<{
|
|
8070
|
+
entity_schema: string
|
|
8071
|
+
field: string
|
|
8072
|
+
message: string
|
|
8073
|
+
}>
|
|
8074
|
+
entity_updates?: Array<{
|
|
8075
|
+
entity_slug: string
|
|
8076
|
+
unique_identifiers: Record<string, unknown>
|
|
8077
|
+
attributes: Record<string, unknown>
|
|
8078
|
+
pricing?: {
|
|
8079
|
+
config: { ... }
|
|
8080
|
+
data: { ... }
|
|
8081
|
+
}
|
|
8082
|
+
mode: "upsert" | "delete" | "purge"
|
|
8083
|
+
unique_identifiers_metadata?: Record<string, {
|
|
8084
|
+
fieldType?: { ... }
|
|
8085
|
+
index?: { ... }
|
|
8086
|
+
}>
|
|
8087
|
+
}>
|
|
8088
|
+
meter_reading_updates?: Array<{
|
|
8089
|
+
meter: {
|
|
8090
|
+
$entity_unique_ids: { ... }
|
|
8091
|
+
}
|
|
8092
|
+
meter_counter?: {
|
|
8093
|
+
$entity_unique_ids?: { ... }
|
|
8094
|
+
}
|
|
8095
|
+
attributes: Record<string, unknown>
|
|
8096
|
+
mode: "upsert" | "delete"
|
|
8097
|
+
_config?: {
|
|
8098
|
+
reading_matching?: { ... }
|
|
8099
|
+
}
|
|
8100
|
+
}>
|
|
8101
|
+
}
|
|
8102
|
+
```
|
|
8103
|
+
|
|
8104
|
+
### `DirectSimulationError`
|
|
8105
|
+
|
|
8106
|
+
One validation error found during a direct-mode dry run.
|
|
8107
|
+
|
|
8108
|
+
```ts
|
|
8109
|
+
type DirectSimulationError = {
|
|
8110
|
+
code: "DIRECT_PAYLOAD_INVALID" | "DIRECT_VERSION_UNSUPPORTED" | "DIRECT_ENTITY_NOT_ALLOWED"
|
|
8111
|
+
message: string
|
|
8112
|
+
operation_index?: number
|
|
8113
|
+
}
|
|
8114
|
+
```
|
|
8115
|
+
|
|
7624
8116
|
### `EntityUpdate`
|
|
7625
8117
|
|
|
7626
8118
|
```ts
|
|
@@ -7732,6 +8224,7 @@ type IntegrationConfigurationV2 = {
|
|
|
7732
8224
|
version: "2.0"
|
|
7733
8225
|
mapping: {
|
|
7734
8226
|
events: Record<string, {
|
|
8227
|
+
direct?: { ... }
|
|
7735
8228
|
entities?: { ... }
|
|
7736
8229
|
meter_readings?: { ... }
|
|
7737
8230
|
}>
|
|
@@ -7830,6 +8323,39 @@ type FileProxyDeliveryConfig = {
|
|
|
7830
8323
|
}
|
|
7831
8324
|
```
|
|
7832
8325
|
|
|
8326
|
+
### `EntitySyncStatusResponse`
|
|
8327
|
+
|
|
8328
|
+
```ts
|
|
8329
|
+
type EntitySyncStatusResponse = {
|
|
8330
|
+
entity_id: string // uuid
|
|
8331
|
+
sync_states: Array<{
|
|
8332
|
+
entity_id: string // uuid
|
|
8333
|
+
integration_id: string // uuid
|
|
8334
|
+
entity_slug: string
|
|
8335
|
+
use_case_id?: string
|
|
8336
|
+
last_synced_at: string // date-time
|
|
8337
|
+
last_changed_at?: string // date-time
|
|
8338
|
+
last_operation: "create" | "patch" | "delete" | "no-op"
|
|
8339
|
+
last_event_id?: string
|
|
8340
|
+
}>
|
|
8341
|
+
}
|
|
8342
|
+
```
|
|
8343
|
+
|
|
8344
|
+
### `EntitySyncState`
|
|
8345
|
+
|
|
8346
|
+
```ts
|
|
8347
|
+
type EntitySyncState = {
|
|
8348
|
+
entity_id: string // uuid
|
|
8349
|
+
integration_id: string // uuid
|
|
8350
|
+
entity_slug: string
|
|
8351
|
+
use_case_id?: string
|
|
8352
|
+
last_synced_at: string // date-time
|
|
8353
|
+
last_changed_at?: string // date-time
|
|
8354
|
+
last_operation: "create" | "patch" | "delete" | "no-op"
|
|
8355
|
+
last_event_id?: string
|
|
8356
|
+
}
|
|
8357
|
+
```
|
|
8358
|
+
|
|
7833
8359
|
### `OutboundStatusResponse`
|
|
7834
8360
|
|
|
7835
8361
|
```ts
|