@epilot/sdk 2.18.15 → 2.18.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/definitions/configuration-hub-runtime.json +1 -1
  2. package/definitions/configuration-hub.json +1064 -48
  3. package/definitions/integration-toolkit-runtime.json +1 -1
  4. package/definitions/integration-toolkit.json +379 -1
  5. package/definitions/message-runtime.json +1 -1
  6. package/definitions/message.json +481 -1
  7. package/dist/apis/access-token.cjs +6 -6
  8. package/dist/apis/access-token.js +1 -1
  9. package/dist/apis/address-suggestions.cjs +6 -6
  10. package/dist/apis/address-suggestions.js +1 -1
  11. package/dist/apis/address.cjs +6 -6
  12. package/dist/apis/address.js +1 -1
  13. package/dist/apis/ai-agents.cjs +6 -6
  14. package/dist/apis/ai-agents.js +1 -1
  15. package/dist/apis/app.cjs +6 -6
  16. package/dist/apis/app.js +1 -1
  17. package/dist/apis/audit-logs.cjs +6 -6
  18. package/dist/apis/audit-logs.js +1 -1
  19. package/dist/apis/automation.cjs +6 -6
  20. package/dist/apis/automation.js +1 -1
  21. package/dist/apis/billing.cjs +6 -6
  22. package/dist/apis/billing.js +1 -1
  23. package/dist/apis/blueprint-manifest.cjs +6 -6
  24. package/dist/apis/blueprint-manifest.js +1 -1
  25. package/dist/apis/calendar.cjs +6 -6
  26. package/dist/apis/calendar.js +1 -1
  27. package/dist/apis/configuration-hub.cjs +8 -8
  28. package/dist/apis/configuration-hub.d.cts +2 -2
  29. package/dist/apis/configuration-hub.d.ts +2 -2
  30. package/dist/apis/configuration-hub.js +2 -2
  31. package/dist/apis/consent.cjs +6 -6
  32. package/dist/apis/consent.js +1 -1
  33. package/dist/apis/customer-portal.cjs +6 -6
  34. package/dist/apis/customer-portal.js +1 -1
  35. package/dist/apis/dashboard.cjs +6 -6
  36. package/dist/apis/dashboard.js +1 -1
  37. package/dist/apis/data-governance.cjs +6 -6
  38. package/dist/apis/data-governance.js +1 -1
  39. package/dist/apis/deduplication.cjs +6 -6
  40. package/dist/apis/deduplication.js +1 -1
  41. package/dist/apis/design.cjs +6 -6
  42. package/dist/apis/design.js +1 -1
  43. package/dist/apis/document.cjs +6 -6
  44. package/dist/apis/document.js +1 -1
  45. package/dist/apis/email-settings.cjs +6 -6
  46. package/dist/apis/email-settings.js +1 -1
  47. package/dist/apis/email-template.cjs +6 -6
  48. package/dist/apis/email-template.js +1 -1
  49. package/dist/apis/entity-mapping.cjs +6 -6
  50. package/dist/apis/entity-mapping.js +1 -1
  51. package/dist/apis/entity.cjs +6 -6
  52. package/dist/apis/entity.js +1 -1
  53. package/dist/apis/environments.cjs +6 -6
  54. package/dist/apis/environments.js +1 -1
  55. package/dist/apis/event-catalog.cjs +6 -6
  56. package/dist/apis/event-catalog.js +1 -1
  57. package/dist/apis/file.cjs +6 -6
  58. package/dist/apis/file.js +1 -1
  59. package/dist/apis/iban.cjs +6 -6
  60. package/dist/apis/iban.js +1 -1
  61. package/dist/apis/integration-toolkit.cjs +8 -8
  62. package/dist/apis/integration-toolkit.d.cts +2 -2
  63. package/dist/apis/integration-toolkit.d.ts +2 -2
  64. package/dist/apis/integration-toolkit.js +2 -2
  65. package/dist/apis/journey.cjs +6 -6
  66. package/dist/apis/journey.js +1 -1
  67. package/dist/apis/kanban.cjs +6 -6
  68. package/dist/apis/kanban.js +1 -1
  69. package/dist/apis/message.cjs +8 -8
  70. package/dist/apis/message.d.cts +2 -2
  71. package/dist/apis/message.d.ts +2 -2
  72. package/dist/apis/message.js +2 -2
  73. package/dist/apis/metering.cjs +6 -6
  74. package/dist/apis/metering.js +1 -1
  75. package/dist/apis/notes.cjs +6 -6
  76. package/dist/apis/notes.js +1 -1
  77. package/dist/apis/notification.cjs +6 -6
  78. package/dist/apis/notification.js +1 -1
  79. package/dist/apis/organization.cjs +6 -6
  80. package/dist/apis/organization.js +1 -1
  81. package/dist/apis/partner-directory.cjs +6 -6
  82. package/dist/apis/partner-directory.js +1 -1
  83. package/dist/apis/permissions.cjs +6 -6
  84. package/dist/apis/permissions.js +1 -1
  85. package/dist/apis/pricing-tier.cjs +6 -6
  86. package/dist/apis/pricing-tier.js +1 -1
  87. package/dist/apis/pricing.cjs +6 -6
  88. package/dist/apis/pricing.js +1 -1
  89. package/dist/apis/purpose.cjs +6 -6
  90. package/dist/apis/purpose.js +1 -1
  91. package/dist/apis/query.cjs +6 -6
  92. package/dist/apis/query.js +1 -1
  93. package/dist/apis/sandbox.cjs +6 -6
  94. package/dist/apis/sandbox.js +1 -1
  95. package/dist/apis/sharing.cjs +6 -6
  96. package/dist/apis/sharing.js +1 -1
  97. package/dist/apis/snapshot.cjs +6 -6
  98. package/dist/apis/snapshot.js +1 -1
  99. package/dist/apis/submission.cjs +6 -6
  100. package/dist/apis/submission.js +1 -1
  101. package/dist/apis/target.cjs +6 -6
  102. package/dist/apis/target.js +1 -1
  103. package/dist/apis/targeting.cjs +6 -6
  104. package/dist/apis/targeting.js +1 -1
  105. package/dist/apis/template-variables.cjs +6 -6
  106. package/dist/apis/template-variables.js +1 -1
  107. package/dist/apis/user.cjs +6 -6
  108. package/dist/apis/user.js +1 -1
  109. package/dist/apis/validation-rules.cjs +6 -6
  110. package/dist/apis/validation-rules.js +1 -1
  111. package/dist/apis/webhooks.cjs +6 -6
  112. package/dist/apis/webhooks.js +1 -1
  113. package/dist/apis/workflow-definition.cjs +6 -6
  114. package/dist/apis/workflow-definition.js +1 -1
  115. package/dist/apis/workflow.cjs +6 -6
  116. package/dist/apis/workflow.js +1 -1
  117. package/dist/chunk-2674L26S.cjs +14 -0
  118. package/dist/chunk-EHLNSFCU.cjs +14 -0
  119. package/dist/chunk-ILRZHW2E.cjs +14 -0
  120. package/dist/{chunk-22LE7Q52.cjs → chunk-LPUT63UQ.cjs} +6 -6
  121. package/dist/chunk-OT6AETWN.js +14 -0
  122. package/dist/chunk-TH4IM6Q6.js +14 -0
  123. package/dist/{chunk-GSQI3C2W.js → chunk-TQCQYO4X.js} +6 -6
  124. package/dist/chunk-VA34RFFR.js +14 -0
  125. package/dist/configuration-hub-6TSL5AGX.cjs +7 -0
  126. package/dist/configuration-hub-ZYOLN7ZX.js +7 -0
  127. package/dist/{configuration-hub-runtime-QVLJKEZD.cjs → configuration-hub-runtime-3RFJBODE.cjs} +2 -2
  128. package/dist/{configuration-hub-runtime-CXME7TCX.js → configuration-hub-runtime-EG2OIBXX.js} +1 -1
  129. package/dist/{configuration-hub.d-CbSJDa7k.d.cts → configuration-hub.d-Dv41yC3b.d.cts} +929 -84
  130. package/dist/{configuration-hub.d-CbSJDa7k.d.ts → configuration-hub.d-Dv41yC3b.d.ts} +929 -84
  131. package/dist/index.cjs +14 -14
  132. package/dist/index.d.cts +3 -3
  133. package/dist/index.d.ts +3 -3
  134. package/dist/index.js +4 -4
  135. package/dist/integration-toolkit-GR4ZQAY5.cjs +7 -0
  136. package/dist/integration-toolkit-XGQNDLIZ.js +7 -0
  137. package/dist/{integration-toolkit-runtime-6J2KUTFL.js → integration-toolkit-runtime-3RZRSZCW.js} +1 -1
  138. package/dist/{integration-toolkit-runtime-REEOXZO6.cjs → integration-toolkit-runtime-ZWS4WRKI.cjs} +2 -2
  139. package/dist/{integration-toolkit.d-pP-3dBPT.d.cts → integration-toolkit.d-CoMi10QU.d.cts} +292 -1
  140. package/dist/{integration-toolkit.d-pP-3dBPT.d.ts → integration-toolkit.d-CoMi10QU.d.ts} +292 -1
  141. package/dist/message-BZN67NTB.js +7 -0
  142. package/dist/message-DBHA4PHI.cjs +7 -0
  143. package/dist/{message-runtime-5Z3POFZV.cjs → message-runtime-4JSNBEVL.cjs} +2 -2
  144. package/dist/{message-runtime-5AUGENW3.js → message-runtime-7UM7U4VL.js} +1 -1
  145. package/dist/{message.d-b-UwZUNb.d.cts → message.d-BHWCGH3q.d.cts} +330 -3
  146. package/dist/{message.d-b-UwZUNb.d.ts → message.d-BHWCGH3q.d.ts} +330 -3
  147. package/docs/configuration-hub.md +967 -40
  148. package/docs/integration-toolkit.md +224 -0
  149. package/docs/message.md +385 -1
  150. package/package.json +1 -1
  151. package/dist/chunk-2ESIGECW.js +0 -14
  152. package/dist/chunk-JM63KEFZ.cjs +0 -14
  153. package/dist/chunk-MOLFG5L4.cjs +0 -14
  154. package/dist/chunk-TIH5X7Q4.cjs +0 -14
  155. package/dist/chunk-WW6DVKJR.js +0 -14
  156. package/dist/chunk-YWZCVCG2.js +0 -14
  157. package/dist/configuration-hub-E7S4JB2T.js +0 -7
  158. package/dist/configuration-hub-Q5JBYB52.cjs +0 -7
  159. package/dist/integration-toolkit-RIBZBI2Y.js +0 -7
  160. package/dist/integration-toolkit-RPWD4MAN.cjs +0 -7
  161. package/dist/message-F4HJQBF5.cjs +0 -7
  162. package/dist/message-TLEET26B.js +0 -7
@@ -31,14 +31,28 @@ const { data } = await configurationHubClient.listConfigTypes(...)
31
31
  - [`getConfigUsedBy`](#getconfigusedby)
32
32
  - [`getIndex`](#getindex)
33
33
  - [`rebuildIndex`](#rebuildindex)
34
+ - [`getConfigInventory`](#getconfiginventory)
35
+
36
+ **Compare**
37
+ - [`compareConfigs`](#compareconfigs)
38
+ - [`suggestMatches`](#suggestmatches)
39
+ - [`confirmLineage`](#confirmlineage)
40
+ - [`breakLineage`](#breaklineage)
34
41
 
35
42
  **Sync**
36
43
  - [`createSyncJob`](#createsyncjob)
37
44
  - [`listSyncJobs`](#listsyncjobs)
38
45
  - [`getSyncJob`](#getsyncjob)
39
46
  - [`retrySyncJob`](#retrysyncjob)
47
+ - [`cancelSyncJob`](#cancelsyncjob)
40
48
  - [`listSyncJobResources`](#listsyncjobresources)
41
49
 
50
+ **Delete**
51
+ - [`createDeleteJob`](#createdeletejob)
52
+ - [`listDeleteJobs`](#listdeletejobs)
53
+ - [`getDeleteJob`](#getdeletejob)
54
+ - [`listDeleteJobResources`](#listdeletejobresources)
55
+
42
56
  **Schemas**
43
57
  - [`ResourceType`](#resourcetype)
44
58
  - [`ConfigTypeInfo`](#configtypeinfo)
@@ -47,6 +61,17 @@ const { data } = await configurationHubClient.listConfigTypes(...)
47
61
  - [`ConfigDependenciesResponse`](#configdependenciesresponse)
48
62
  - [`IndexRebuildResponse`](#indexrebuildresponse)
49
63
  - [`IndexStatusResponse`](#indexstatusresponse)
64
+ - [`CompareRequest`](#comparerequest)
65
+ - [`CompareLineage`](#comparelineage)
66
+ - [`CompareRow`](#comparerow)
67
+ - [`CompareCounts`](#comparecounts)
68
+ - [`CompareResponse`](#compareresponse)
69
+ - [`SuggestMatchesRequest`](#suggestmatchesrequest)
70
+ - [`MatchSuggestion`](#matchsuggestion)
71
+ - [`SuggestMatchesResponse`](#suggestmatchesresponse)
72
+ - [`ConfirmLineageRequest`](#confirmlineagerequest)
73
+ - [`LineageEntryResponse`](#lineageentryresponse)
74
+ - [`BreakLineageResponse`](#breaklineageresponse)
50
75
  - [`ErrorResponse`](#errorresponse)
51
76
  - [`SyncJobStatus`](#syncjobstatus)
52
77
  - [`SyncDirection`](#syncdirection)
@@ -61,6 +86,17 @@ const { data } = await configurationHubClient.listConfigTypes(...)
61
86
  - [`SyncJobListResponse`](#syncjoblistresponse)
62
87
  - [`SyncJobResource`](#syncjobresource)
63
88
  - [`SyncJobResourceListResponse`](#syncjobresourcelistresponse)
89
+ - [`DeleteJobStatus`](#deletejobstatus)
90
+ - [`DeleteJobResourceStatus`](#deletejobresourcestatus)
91
+ - [`DeleteJobCounts`](#deletejobcounts)
92
+ - [`DeleteJobRequest`](#deletejobrequest)
93
+ - [`DeleteJob`](#deletejob)
94
+ - [`DeleteJobListResponse`](#deletejoblistresponse)
95
+ - [`DeleteJobResource`](#deletejobresource)
96
+ - [`DeleteJobResourceListResponse`](#deletejobresourcelistresponse)
97
+ - [`SnapshotInventoryItem`](#snapshotinventoryitem)
98
+ - [`SnapshotInventorySkippedType`](#snapshotinventoryskippedtype)
99
+ - [`ConfigInventoryResponse`](#configinventoryresponse)
64
100
 
65
101
  ### `listConfigTypes`
66
102
 
@@ -85,7 +121,8 @@ const { data } = await client.listConfigTypes()
85
121
  "label": "Journeys",
86
122
  "icon": "Route",
87
123
  "source_api": "https://journey.sls.epilot.io",
88
- "sdk_client": "@epilot/sdk/journey"
124
+ "sdk_client": "@epilot/sdk/journey",
125
+ "deletable": true
89
126
  }
90
127
  ]
91
128
  }
@@ -273,6 +310,7 @@ const { data } = await client.getIndex()
273
310
  ```json
274
311
  {
275
312
  "status": "missing",
313
+ "org_id": "string",
276
314
  "last_built_at": "1970-01-01T00:00:00.000Z",
277
315
  "total_items": 0,
278
316
  "build_duration_ms": 0
@@ -283,6 +321,203 @@ const { data } = await client.getIndex()
283
321
 
284
322
  ---
285
323
 
324
+ ### `compareConfigs`
325
+
326
+ Compare the caller org's configs of a single type against another
327
+ (source) org, side by side. Rows are paired via the lineage registry in
328
+ both sync directions (caller imported from source, or source i
329
+
330
+ `POST /v1/configs/compare`
331
+
332
+ ```ts
333
+ const { data } = await client.compareConfigs(
334
+ null,
335
+ {
336
+ source_org_id: 'string',
337
+ source_auth_token: 'string',
338
+ type: 'journey'
339
+ },
340
+ )
341
+ ```
342
+
343
+ <details>
344
+ <summary>Response</summary>
345
+
346
+ ```json
347
+ {
348
+ "type": "journey",
349
+ "label": "string",
350
+ "icon": "string",
351
+ "rows": [
352
+ {
353
+ "match_status": "matched",
354
+ "current": {
355
+ "type": "journey",
356
+ "id": "string",
357
+ "title": "string",
358
+ "updated_at": "1970-01-01T00:00:00.000Z",
359
+ "updated_by": "string",
360
+ "tags": ["string"],
361
+ "aliases": ["string"],
362
+ "purposes": ["string"],
363
+ "link": "https://example.com/path",
364
+ "active": true,
365
+ "blueprints": [
366
+ {
367
+ "id": "string",
368
+ "title": "string"
369
+ }
370
+ ],
371
+ "metadata": {}
372
+ },
373
+ "source": {
374
+ "type": "journey",
375
+ "id": "string",
376
+ "title": "string",
377
+ "updated_at": "1970-01-01T00:00:00.000Z",
378
+ "updated_by": "string",
379
+ "tags": ["string"],
380
+ "aliases": ["string"],
381
+ "purposes": ["string"],
382
+ "link": "https://example.com/path",
383
+ "active": true,
384
+ "blueprints": [
385
+ {
386
+ "id": "string",
387
+ "title": "string"
388
+ }
389
+ ],
390
+ "metadata": {}
391
+ },
392
+ "lineage": {
393
+ "direction": "pull",
394
+ "last_synced_at": "1970-01-01T00:00:00.000Z",
395
+ "last_sync_job_id": "string",
396
+ "origin": "string"
397
+ }
398
+ }
399
+ ],
400
+ "counts": {
401
+ "matched": 0,
402
+ "only_current": 0,
403
+ "only_source": 0
404
+ }
405
+ }
406
+ ```
407
+
408
+ </details>
409
+
410
+ ---
411
+
412
+ ### `suggestMatches`
413
+
414
+ Run the sync-grade heuristic match (`lookupByHeuristic` — name / slug /
415
+ unique key) for a batch of source-org configs that have no lineage
416
+ entry, and return candidate counterparts in the caller's org.
417
+
418
+ `POST /v1/configs/compare/suggestions`
419
+
420
+ ```ts
421
+ const { data } = await client.suggestMatches(
422
+ null,
423
+ {
424
+ source_org_id: 'string',
425
+ source_auth_token: 'string',
426
+ type: 'journey',
427
+ source_ids: ['string']
428
+ },
429
+ )
430
+ ```
431
+
432
+ <details>
433
+ <summary>Response</summary>
434
+
435
+ ```json
436
+ {
437
+ "type": "journey",
438
+ "suggestions": [
439
+ {
440
+ "source_id": "string",
441
+ "candidate": {
442
+ "id": "string",
443
+ "title": "string"
444
+ }
445
+ }
446
+ ]
447
+ }
448
+ ```
449
+
450
+ </details>
451
+
452
+ ---
453
+
454
+ ### `confirmLineage`
455
+
456
+ Persist a lineage entry pairing a source-org config with a config in
457
+ the caller's org — used to confirm a heuristic suggestion from the
458
+ Compare view. Writes to the caller org's lineage partition (call
459
+
460
+ `POST /v1/configs/lineage`
461
+
462
+ ```ts
463
+ const { data } = await client.confirmLineage(
464
+ null,
465
+ {
466
+ type: 'journey',
467
+ source_org_id: 'string',
468
+ source_id: 'string',
469
+ target_id: 'string'
470
+ },
471
+ )
472
+ ```
473
+
474
+ <details>
475
+ <summary>Response</summary>
476
+
477
+ ```json
478
+ {
479
+ "type": "journey",
480
+ "target_org_id": "string",
481
+ "source_org_id": "string",
482
+ "source_id": "string",
483
+ "target_id": "string",
484
+ "last_synced_at": "1970-01-01T00:00:00.000Z",
485
+ "origin": "string"
486
+ }
487
+ ```
488
+
489
+ </details>
490
+
491
+ ---
492
+
493
+ ### `breakLineage`
494
+
495
+ Delete a lineage entry from the caller org's partition (caller as sync
496
+ target), identified by `type` + `source_id`. Used to break a wrong or
497
+ stale match from the Compare view. Note: a future sync can
498
+
499
+ `DELETE /v1/configs/lineage`
500
+
501
+ ```ts
502
+ const { data } = await client.breakLineage({
503
+ type: 'example',
504
+ source_id: 'example',
505
+ })
506
+ ```
507
+
508
+ <details>
509
+ <summary>Response</summary>
510
+
511
+ ```json
512
+ {
513
+ "deleted": true
514
+ }
515
+ ```
516
+
517
+ </details>
518
+
519
+ ---
520
+
286
521
  ### `createSyncJob`
287
522
 
288
523
  Create a new cross-org sync job. The job is enqueued for asynchronous execution
@@ -512,9 +747,9 @@ const { data } = await client.getSyncJob({
512
747
 
513
748
  ### `retrySyncJob`
514
749
 
515
- Retry the failed resources from a prior sync job. Creates a new job whose
516
- scope is the failed `(type, source_id)` set of the original job and enqueues
517
- it for execution. Optionally accepts inline paylo
750
+ Retry the unresolved resources from a prior sync job: `failed` rows, plus
751
+ rows the original run left at `pending`/`in_progress` because it stopped
752
+ early. Creates a new job whose scope is that `(type,
518
753
 
519
754
  `POST /v1/configs/sync-jobs/{id}/retry`
520
755
 
@@ -584,6 +819,75 @@ const { data } = await client.retrySyncJob(
584
819
 
585
820
  ---
586
821
 
822
+ ### `cancelSyncJob`
823
+
824
+ Cancel a running sync job. Marks the job `cancelled` with a `finished_at`
825
+ so it stops being reported as in-flight, and the worker stops at its next
826
+ batch boundary — phases re-read the job status and a
827
+
828
+ `POST /v1/configs/sync-jobs/{id}/cancel`
829
+
830
+ ```ts
831
+ const { data } = await client.cancelSyncJob({
832
+ id: '123e4567-e89b-12d3-a456-426614174000',
833
+ })
834
+ ```
835
+
836
+ <details>
837
+ <summary>Response</summary>
838
+
839
+ ```json
840
+ {
841
+ "id": "string",
842
+ "name": "string",
843
+ "status": "pending",
844
+ "direction": "push",
845
+ "source_org_id": "string",
846
+ "target_org_id": "string",
847
+ "dry_run": true,
848
+ "counts": {
849
+ "total": 0,
850
+ "pending": 0,
851
+ "in_progress": 0,
852
+ "succeeded": 0,
853
+ "failed": 0,
854
+ "skipped_unchanged": 0
855
+ },
856
+ "current_phase": "phase_0",
857
+ "current_batch": {
858
+ "index": 0,
859
+ "of": 0,
860
+ "level": 0
861
+ },
862
+ "started_at": "1970-01-01T00:00:00.000Z",
863
+ "finished_at": "1970-01-01T00:00:00.000Z",
864
+ "events": [
865
+ {
866
+ "seq": 0,
867
+ "ts": "1970-01-01T00:00:00.000Z",
868
+ "phase": "phase_0",
869
+ "type": "string",
870
+ "source_id": "string",
871
+ "target_id": "string",
872
+ "status": "pending",
873
+ "message": "string",
874
+ "error": "string"
875
+ }
876
+ ],
877
+ "errors_sample": [
878
+ {
879
+ "type": "string",
880
+ "source_id": "string",
881
+ "error": "string"
882
+ }
883
+ ]
884
+ }
885
+ ```
886
+
887
+ </details>
888
+
889
+ ---
890
+
587
891
  ### `listSyncJobResources`
588
892
 
589
893
  List the per-resource rows for a sync job. Supports filtering by status
@@ -612,6 +916,7 @@ const { data } = await client.listSyncJobResources({
612
916
  "type": "string",
613
917
  "source_id": "string",
614
918
  "target_id": "string",
919
+ "title": "string",
615
920
  "status": "pending",
616
921
  "phase": "phase_0",
617
922
  "attempt": 0,
@@ -626,16 +931,28 @@ const { data } = await client.listSyncJobResources({
626
931
 
627
932
  ---
628
933
 
629
- ### `rebuildIndex`
934
+ ### `createDeleteJob`
630
935
 
631
- Rebuild the configuration index for the caller's organization.
632
- Fire-and-forget: invokes the async worker and returns immediately.
633
- A new rebuild will cancel any in-flight build (see `build_token`).
936
+ Create a bulk-delete job for the caller's organization. The selected
937
+ resources are deleted asynchronously by a worker Lambda; the response
938
+ returns the persisted job header with status `pending`.
634
939
 
635
- `POST /v1/configs/index:rebuild`
940
+ `POST /v1/configs/delete-jobs`
636
941
 
637
942
  ```ts
638
- const { data } = await client.rebuildIndex()
943
+ const { data } = await client.createDeleteJob(
944
+ null,
945
+ {
946
+ name: 'string',
947
+ resources: [
948
+ {
949
+ type: 'string',
950
+ id: 'string',
951
+ title: 'string'
952
+ }
953
+ ]
954
+ },
955
+ )
639
956
  ```
640
957
 
641
958
  <details>
@@ -643,11 +960,21 @@ const { data } = await client.rebuildIndex()
643
960
 
644
961
  ```json
645
962
  {
646
- "status": "ready",
647
- "last_built_at": "1970-01-01T00:00:00.000Z",
648
- "total_items": 0,
649
- "build_duration_ms": 0,
650
- "failed_types": ["string"]
963
+ "id": "string",
964
+ "name": "string",
965
+ "status": "pending",
966
+ "org_id": "string",
967
+ "counts": {
968
+ "total": 0,
969
+ "pending": 0,
970
+ "in_progress": 0,
971
+ "deleted": 0,
972
+ "skipped": 0,
973
+ "failed": 0
974
+ },
975
+ "started_at": "1970-01-01T00:00:00.000Z",
976
+ "finished_at": "1970-01-01T00:00:00.000Z",
977
+ "rebuild_triggered": true
651
978
  }
652
979
  ```
653
980
 
@@ -655,42 +982,239 @@ const { data } = await client.rebuildIndex()
655
982
 
656
983
  ---
657
984
 
658
- ## Schemas
659
-
660
- ### `ResourceType`
985
+ ### `listDeleteJobs`
661
986
 
662
- Configuration resource type identifier.
663
- Matches blueprint-manifest-api V3 naming conventions.
987
+ List bulk-delete jobs scoped to the caller's organization, paginated
988
+ with an opaque cursor. Most-recent first.
664
989
 
990
+ `GET /v1/configs/delete-jobs`
665
991
 
666
992
  ```ts
667
- type ResourceType = "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
993
+ const { data } = await client.listDeleteJobs({
994
+ cursor: 'example',
995
+ size: 1,
996
+ })
668
997
  ```
669
998
 
670
- ### `ConfigTypeInfo`
671
-
672
- Static metadata for a config type folder in the tree.
673
- No downstream API calls — just type + label + icon + source API info.
674
-
999
+ <details>
1000
+ <summary>Response</summary>
675
1001
 
676
- ```ts
677
- type ConfigTypeInfo = {
678
- type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
679
- label: string
680
- icon: string
681
- source_api: string
682
- sdk_client: string
1002
+ ```json
1003
+ {
1004
+ "next_cursor": "string",
1005
+ "results": [
1006
+ {
1007
+ "id": "string",
1008
+ "name": "string",
1009
+ "status": "pending",
1010
+ "org_id": "string",
1011
+ "counts": {
1012
+ "total": 0,
1013
+ "pending": 0,
1014
+ "in_progress": 0,
1015
+ "deleted": 0,
1016
+ "skipped": 0,
1017
+ "failed": 0
1018
+ },
1019
+ "started_at": "1970-01-01T00:00:00.000Z",
1020
+ "finished_at": "1970-01-01T00:00:00.000Z",
1021
+ "rebuild_triggered": true
1022
+ }
1023
+ ]
683
1024
  }
684
1025
  ```
685
1026
 
686
- ### `ConfigNode`
1027
+ </details>
687
1028
 
688
- Summary metadata for a single configuration item in the tree
1029
+ ---
1030
+
1031
+ ### `getDeleteJob`
1032
+
1033
+ Fetch a single bulk-delete job by ID. Returns the job header and counts
1034
+ summary. Frontend polls this endpoint while the job runs.
1035
+
1036
+ `GET /v1/configs/delete-jobs/{id}`
689
1037
 
690
1038
  ```ts
691
- type ConfigNode = {
692
- type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
693
- id: string
1039
+ const { data } = await client.getDeleteJob({
1040
+ id: '123e4567-e89b-12d3-a456-426614174000',
1041
+ })
1042
+ ```
1043
+
1044
+ <details>
1045
+ <summary>Response</summary>
1046
+
1047
+ ```json
1048
+ {
1049
+ "id": "string",
1050
+ "name": "string",
1051
+ "status": "pending",
1052
+ "org_id": "string",
1053
+ "counts": {
1054
+ "total": 0,
1055
+ "pending": 0,
1056
+ "in_progress": 0,
1057
+ "deleted": 0,
1058
+ "skipped": 0,
1059
+ "failed": 0
1060
+ },
1061
+ "started_at": "1970-01-01T00:00:00.000Z",
1062
+ "finished_at": "1970-01-01T00:00:00.000Z",
1063
+ "rebuild_triggered": true
1064
+ }
1065
+ ```
1066
+
1067
+ </details>
1068
+
1069
+ ---
1070
+
1071
+ ### `listDeleteJobResources`
1072
+
1073
+ List the per-resource rows for a delete job, cursor-paginated. Used by
1074
+ the failures view in the frontend.
1075
+
1076
+ `GET /v1/configs/delete-jobs/{id}/resources`
1077
+
1078
+ ```ts
1079
+ const { data } = await client.listDeleteJobResources({
1080
+ id: '123e4567-e89b-12d3-a456-426614174000',
1081
+ cursor: 'example',
1082
+ size: 1,
1083
+ })
1084
+ ```
1085
+
1086
+ <details>
1087
+ <summary>Response</summary>
1088
+
1089
+ ```json
1090
+ {
1091
+ "next_cursor": "string",
1092
+ "results": [
1093
+ {
1094
+ "type": "string",
1095
+ "id": "string",
1096
+ "title": "string",
1097
+ "status": "pending",
1098
+ "attempt": 0,
1099
+ "error": "string",
1100
+ "updated_at": "1970-01-01T00:00:00.000Z"
1101
+ }
1102
+ ]
1103
+ }
1104
+ ```
1105
+
1106
+ </details>
1107
+
1108
+ ---
1109
+
1110
+ ### `rebuildIndex`
1111
+
1112
+ Rebuild the configuration index for the caller's organization.
1113
+ Fire-and-forget: invokes the async worker and returns immediately.
1114
+ A new rebuild will cancel any in-flight build (see `build_token`).
1115
+
1116
+ `POST /v1/configs/index:rebuild`
1117
+
1118
+ ```ts
1119
+ const { data } = await client.rebuildIndex()
1120
+ ```
1121
+
1122
+ <details>
1123
+ <summary>Response</summary>
1124
+
1125
+ ```json
1126
+ {
1127
+ "status": "ready",
1128
+ "last_built_at": "1970-01-01T00:00:00.000Z",
1129
+ "total_items": 0,
1130
+ "build_duration_ms": 0,
1131
+ "failed_types": ["string"]
1132
+ }
1133
+ ```
1134
+
1135
+ </details>
1136
+
1137
+ ---
1138
+
1139
+ ### `getConfigInventory`
1140
+
1141
+ Returns a fresh inventory of an org's configuration resources — `{ type, id }` identities only,
1142
+ no full payloads. Calls every adapter's `list()` live (bypasses the 7-day DynamoDB index).
1143
+ Intended for
1144
+
1145
+ `GET /v1/configs/inventory`
1146
+
1147
+ ```ts
1148
+ const { data } = await client.getConfigInventory({
1149
+ include_dependency_only: true,
1150
+ })
1151
+ ```
1152
+
1153
+ <details>
1154
+ <summary>Response</summary>
1155
+
1156
+ ```json
1157
+ {
1158
+ "inventory_id": "string",
1159
+ "org_id": "string",
1160
+ "indexed_at": "1970-01-01T00:00:00.000Z",
1161
+ "resources_count": 0,
1162
+ "resources": [
1163
+ {
1164
+ "type": "journey",
1165
+ "id": "string"
1166
+ }
1167
+ ],
1168
+ "skipped_types": [
1169
+ {
1170
+ "type": "string",
1171
+ "reason": "string"
1172
+ }
1173
+ ]
1174
+ }
1175
+ ```
1176
+
1177
+ </details>
1178
+
1179
+ ---
1180
+
1181
+ ## Schemas
1182
+
1183
+ ### `ResourceType`
1184
+
1185
+ Configuration resource type identifier.
1186
+ Matches blueprint-manifest-api V3 naming conventions.
1187
+
1188
+
1189
+ ```ts
1190
+ type ResourceType = "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1191
+ ```
1192
+
1193
+ ### `ConfigTypeInfo`
1194
+
1195
+ Static metadata for a config type folder in the tree.
1196
+ No downstream API calls — just type + label + icon + source API info.
1197
+
1198
+
1199
+ ```ts
1200
+ type ConfigTypeInfo = {
1201
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1202
+ label: string
1203
+ icon: string
1204
+ source_api: string
1205
+ sdk_client: string
1206
+ deletable: boolean
1207
+ }
1208
+ ```
1209
+
1210
+ ### `ConfigNode`
1211
+
1212
+ Summary metadata for a single configuration item in the tree
1213
+
1214
+ ```ts
1215
+ type ConfigNode = {
1216
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1217
+ id: string
694
1218
  title: string
695
1219
  updated_at?: string // date-time
696
1220
  updated_by?: string
@@ -787,12 +1311,236 @@ Current index build state
787
1311
  ```ts
788
1312
  type IndexStatusResponse = {
789
1313
  status: "missing" | "building" | "ready" | "failed"
1314
+ org_id?: string
790
1315
  last_built_at?: string // date-time
791
1316
  total_items?: number
792
1317
  build_duration_ms?: number
793
1318
  }
794
1319
  ```
795
1320
 
1321
+ ### `CompareRequest`
1322
+
1323
+ Request body for a per-type cross-org comparison
1324
+
1325
+ ```ts
1326
+ type CompareRequest = {
1327
+ source_org_id: string
1328
+ source_auth_token: string
1329
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1330
+ }
1331
+ ```
1332
+
1333
+ ### `CompareLineage`
1334
+
1335
+ Provenance of a lineage-backed match
1336
+
1337
+ ```ts
1338
+ type CompareLineage = {
1339
+ direction: "pull" | "push"
1340
+ last_synced_at?: string // date-time
1341
+ last_sync_job_id?: string
1342
+ origin?: string
1343
+ }
1344
+ ```
1345
+
1346
+ ### `CompareRow`
1347
+
1348
+ One row of the side-by-side comparison. `matched` rows carry both
1349
+ configs plus lineage provenance; one-sided rows carry only the side
1350
+ the config exists on.
1351
+
1352
+
1353
+ ```ts
1354
+ type CompareRow = {
1355
+ match_status: "matched" | "only_current" | "only_source"
1356
+ current?: {
1357
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1358
+ id: string
1359
+ title: string
1360
+ updated_at?: string // date-time
1361
+ updated_by?: string
1362
+ tags?: string[]
1363
+ aliases?: string[]
1364
+ purposes?: string[]
1365
+ link?: string // uri
1366
+ active?: boolean
1367
+ blueprints?: Array<{
1368
+ id: { ... }
1369
+ title: { ... }
1370
+ }>
1371
+ metadata?: Record<string, unknown>
1372
+ }
1373
+ source?: {
1374
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1375
+ id: string
1376
+ title: string
1377
+ updated_at?: string // date-time
1378
+ updated_by?: string
1379
+ tags?: string[]
1380
+ aliases?: string[]
1381
+ purposes?: string[]
1382
+ link?: string // uri
1383
+ active?: boolean
1384
+ blueprints?: Array<{
1385
+ id: { ... }
1386
+ title: { ... }
1387
+ }>
1388
+ metadata?: Record<string, unknown>
1389
+ }
1390
+ lineage?: {
1391
+ direction: "pull" | "push"
1392
+ last_synced_at?: string // date-time
1393
+ last_sync_job_id?: string
1394
+ origin?: string
1395
+ }
1396
+ }
1397
+ ```
1398
+
1399
+ ### `CompareCounts`
1400
+
1401
+ Row counts per match status
1402
+
1403
+ ```ts
1404
+ type CompareCounts = {
1405
+ matched: number
1406
+ only_current: number
1407
+ only_source: number
1408
+ }
1409
+ ```
1410
+
1411
+ ### `CompareResponse`
1412
+
1413
+ Side-by-side comparison of one config type across two orgs
1414
+
1415
+ ```ts
1416
+ type CompareResponse = {
1417
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1418
+ label: string
1419
+ icon: string
1420
+ rows: Array<{
1421
+ match_status: "matched" | "only_current" | "only_source"
1422
+ current?: {
1423
+ type: { ... }
1424
+ id: { ... }
1425
+ title: { ... }
1426
+ updated_at?: { ... }
1427
+ updated_by?: { ... }
1428
+ tags?: { ... }
1429
+ aliases?: { ... }
1430
+ purposes?: { ... }
1431
+ link?: { ... }
1432
+ active?: { ... }
1433
+ blueprints?: { ... }
1434
+ metadata?: { ... }
1435
+ }
1436
+ source?: {
1437
+ type: { ... }
1438
+ id: { ... }
1439
+ title: { ... }
1440
+ updated_at?: { ... }
1441
+ updated_by?: { ... }
1442
+ tags?: { ... }
1443
+ aliases?: { ... }
1444
+ purposes?: { ... }
1445
+ link?: { ... }
1446
+ active?: { ... }
1447
+ blueprints?: { ... }
1448
+ metadata?: { ... }
1449
+ }
1450
+ lineage?: {
1451
+ direction: { ... }
1452
+ last_synced_at?: { ... }
1453
+ last_sync_job_id?: { ... }
1454
+ origin?: { ... }
1455
+ }
1456
+ }>
1457
+ counts: {
1458
+ matched: number
1459
+ only_current: number
1460
+ only_source: number
1461
+ }
1462
+ }
1463
+ ```
1464
+
1465
+ ### `SuggestMatchesRequest`
1466
+
1467
+ Request body for batched heuristic match suggestions
1468
+
1469
+ ```ts
1470
+ type SuggestMatchesRequest = {
1471
+ source_org_id: string
1472
+ source_auth_token: string
1473
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1474
+ source_ids: string[]
1475
+ }
1476
+ ```
1477
+
1478
+ ### `MatchSuggestion`
1479
+
1480
+ Heuristic candidate for one source config (null candidate = no match)
1481
+
1482
+ ```ts
1483
+ type MatchSuggestion = {
1484
+ source_id: string
1485
+ candidate?: {
1486
+ id: string
1487
+ title?: string
1488
+ }
1489
+ }
1490
+ ```
1491
+
1492
+ ### `SuggestMatchesResponse`
1493
+
1494
+ ```ts
1495
+ type SuggestMatchesResponse = {
1496
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1497
+ suggestions: Array<{
1498
+ source_id: string
1499
+ candidate?: {
1500
+ id: { ... }
1501
+ title?: { ... }
1502
+ }
1503
+ }>
1504
+ }
1505
+ ```
1506
+
1507
+ ### `ConfirmLineageRequest`
1508
+
1509
+ Persist a source→target lineage pairing (caller org as target)
1510
+
1511
+ ```ts
1512
+ type ConfirmLineageRequest = {
1513
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1514
+ source_org_id: string
1515
+ source_id: string
1516
+ target_id: string
1517
+ }
1518
+ ```
1519
+
1520
+ ### `LineageEntryResponse`
1521
+
1522
+ A persisted lineage entry
1523
+
1524
+ ```ts
1525
+ type LineageEntryResponse = {
1526
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1527
+ target_org_id: string
1528
+ source_org_id: string
1529
+ source_id: string
1530
+ target_id: string
1531
+ last_synced_at?: string // date-time
1532
+ origin?: string
1533
+ }
1534
+ ```
1535
+
1536
+ ### `BreakLineageResponse`
1537
+
1538
+ ```ts
1539
+ type BreakLineageResponse = {
1540
+ deleted: boolean
1541
+ }
1542
+ ```
1543
+
796
1544
  ### `ErrorResponse`
797
1545
 
798
1546
  ```ts
@@ -866,8 +1614,8 @@ type SyncJobRequest = {
866
1614
 
867
1615
  ### `SyncJobRetryRequest`
868
1616
 
869
- Optional body for `retrySyncJob`. Defaults to retrying every failed
870
- resource of the original job.
1617
+ Optional body for `retrySyncJob`. Defaults to retrying every unresolved
1618
+ resource of the original job (failed, pending or in_progress).
871
1619
 
872
1620
 
873
1621
  ```ts
@@ -1035,6 +1783,7 @@ type SyncJobResource = {
1035
1783
  type: string
1036
1784
  source_id: string
1037
1785
  target_id?: string
1786
+ title?: string
1038
1787
  status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"
1039
1788
  phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"
1040
1789
  attempt: number
@@ -1054,6 +1803,7 @@ type SyncJobResourceListResponse = {
1054
1803
  type: string
1055
1804
  source_id: string
1056
1805
  target_id?: string
1806
+ title?: string
1057
1807
  status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"
1058
1808
  phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"
1059
1809
  attempt: number
@@ -1062,3 +1812,180 @@ type SyncJobResourceListResponse = {
1062
1812
  }>
1063
1813
  }
1064
1814
  ```
1815
+
1816
+ ### `DeleteJobStatus`
1817
+
1818
+ Lifecycle status of a bulk-delete job.
1819
+
1820
+ ```ts
1821
+ type DeleteJobStatus = "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"
1822
+ ```
1823
+
1824
+ ### `DeleteJobResourceStatus`
1825
+
1826
+ Per-resource delete status. `skipped` is used for protected resources
1827
+ that are intentionally not deleted (e.g. built-in schemas).
1828
+
1829
+
1830
+ ```ts
1831
+ type DeleteJobResourceStatus = "pending" | "in_progress" | "deleted" | "skipped" | "failed"
1832
+ ```
1833
+
1834
+ ### `DeleteJobCounts`
1835
+
1836
+ Aggregate counters by resource delete status.
1837
+
1838
+ ```ts
1839
+ type DeleteJobCounts = {
1840
+ total: number
1841
+ pending: number
1842
+ in_progress: number
1843
+ deleted: number
1844
+ skipped: number
1845
+ failed: number
1846
+ }
1847
+ ```
1848
+
1849
+ ### `DeleteJobRequest`
1850
+
1851
+ Request body for `createDeleteJob`.
1852
+
1853
+ ```ts
1854
+ type DeleteJobRequest = {
1855
+ name?: string
1856
+ resources: Array<{
1857
+ type: string
1858
+ id: string
1859
+ title?: string
1860
+ }>
1861
+ }
1862
+ ```
1863
+
1864
+ ### `DeleteJob`
1865
+
1866
+ Bulk-delete job header surfaced by `createDeleteJob`/`getDeleteJob`.
1867
+
1868
+ ```ts
1869
+ type DeleteJob = {
1870
+ id: string
1871
+ name?: string
1872
+ status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"
1873
+ org_id: string
1874
+ counts: {
1875
+ total: number
1876
+ pending: number
1877
+ in_progress: number
1878
+ deleted: number
1879
+ skipped: number
1880
+ failed: number
1881
+ }
1882
+ started_at: string // date-time
1883
+ finished_at?: string // date-time
1884
+ rebuild_triggered?: boolean
1885
+ }
1886
+ ```
1887
+
1888
+ ### `DeleteJobListResponse`
1889
+
1890
+ Cursor-paginated list of delete jobs.
1891
+
1892
+ ```ts
1893
+ type DeleteJobListResponse = {
1894
+ next_cursor?: string
1895
+ results: Array<{
1896
+ id: string
1897
+ name?: string
1898
+ status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"
1899
+ org_id: string
1900
+ counts: {
1901
+ total: { ... }
1902
+ pending: { ... }
1903
+ in_progress: { ... }
1904
+ deleted: { ... }
1905
+ skipped: { ... }
1906
+ failed: { ... }
1907
+ }
1908
+ started_at: string // date-time
1909
+ finished_at?: string // date-time
1910
+ rebuild_triggered?: boolean
1911
+ }>
1912
+ }
1913
+ ```
1914
+
1915
+ ### `DeleteJobResource`
1916
+
1917
+ Per-resource row for a delete job.
1918
+
1919
+ ```ts
1920
+ type DeleteJobResource = {
1921
+ type: string
1922
+ id: string
1923
+ title?: string
1924
+ status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"
1925
+ attempt: number
1926
+ error?: string
1927
+ updated_at: string // date-time
1928
+ }
1929
+ ```
1930
+
1931
+ ### `DeleteJobResourceListResponse`
1932
+
1933
+ Cursor-paginated list of delete job resources.
1934
+
1935
+ ```ts
1936
+ type DeleteJobResourceListResponse = {
1937
+ next_cursor?: string
1938
+ results: Array<{
1939
+ type: string
1940
+ id: string
1941
+ title?: string
1942
+ status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"
1943
+ attempt: number
1944
+ error?: string
1945
+ updated_at: string // date-time
1946
+ }>
1947
+ }
1948
+ ```
1949
+
1950
+ ### `SnapshotInventoryItem`
1951
+
1952
+ Minimal identity of a single configuration resource.
1953
+
1954
+ ```ts
1955
+ type SnapshotInventoryItem = {
1956
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1957
+ id: string
1958
+ }
1959
+ ```
1960
+
1961
+ ### `SnapshotInventorySkippedType`
1962
+
1963
+ A type that could not be listed during inventory collection.
1964
+
1965
+ ```ts
1966
+ type SnapshotInventorySkippedType = {
1967
+ type: string
1968
+ reason: string
1969
+ }
1970
+ ```
1971
+
1972
+ ### `ConfigInventoryResponse`
1973
+
1974
+ Fresh inventory of all configuration resources for an org.
1975
+
1976
+ ```ts
1977
+ type ConfigInventoryResponse = {
1978
+ inventory_id: string
1979
+ org_id: string
1980
+ indexed_at: string // date-time
1981
+ resources_count: number
1982
+ resources: Array<{
1983
+ type: "journey" | "automation_flow" | "workflow_definition" | "closing_reason" | "flow_template" | "schema" | "emailtemplate" | "product" | "price" | "tax" | "coupon" | "file" | "document_template" | "webhook" | "saved_view" | "dashboard" | "kanban" | "role" | "usergroup" | "validation_rule" | "integration" | "app" | "designbuilder" | "notification_template" | "custom_variable" | "environment_variable" | "taxonomy" | "taxonomy_classification" | "entity_mapping" | "portal_config" | "target" | "product_recommendation" | "access_token"
1984
+ id: string
1985
+ }>
1986
+ skipped_types: Array<{
1987
+ type: string
1988
+ reason: string
1989
+ }>
1990
+ }
1991
+ ```