@epilot/sdk 2.18.16 → 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 (128) hide show
  1. package/definitions/configuration-hub-runtime.json +1 -1
  2. package/definitions/configuration-hub.json +1064 -48
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/calendar.cjs +6 -6
  22. package/dist/apis/calendar.js +1 -1
  23. package/dist/apis/configuration-hub.cjs +8 -8
  24. package/dist/apis/configuration-hub.d.cts +2 -2
  25. package/dist/apis/configuration-hub.d.ts +2 -2
  26. package/dist/apis/configuration-hub.js +2 -2
  27. package/dist/apis/consent.cjs +6 -6
  28. package/dist/apis/consent.js +1 -1
  29. package/dist/apis/customer-portal.cjs +6 -6
  30. package/dist/apis/customer-portal.js +1 -1
  31. package/dist/apis/dashboard.cjs +6 -6
  32. package/dist/apis/dashboard.js +1 -1
  33. package/dist/apis/data-governance.cjs +6 -6
  34. package/dist/apis/data-governance.js +1 -1
  35. package/dist/apis/deduplication.cjs +6 -6
  36. package/dist/apis/deduplication.js +1 -1
  37. package/dist/apis/design.cjs +6 -6
  38. package/dist/apis/design.js +1 -1
  39. package/dist/apis/document.cjs +6 -6
  40. package/dist/apis/document.js +1 -1
  41. package/dist/apis/email-settings.cjs +6 -6
  42. package/dist/apis/email-settings.js +1 -1
  43. package/dist/apis/email-template.cjs +6 -6
  44. package/dist/apis/email-template.js +1 -1
  45. package/dist/apis/entity-mapping.cjs +6 -6
  46. package/dist/apis/entity-mapping.js +1 -1
  47. package/dist/apis/entity.cjs +6 -6
  48. package/dist/apis/entity.js +1 -1
  49. package/dist/apis/environments.cjs +6 -6
  50. package/dist/apis/environments.js +1 -1
  51. package/dist/apis/event-catalog.cjs +6 -6
  52. package/dist/apis/event-catalog.js +1 -1
  53. package/dist/apis/file.cjs +6 -6
  54. package/dist/apis/file.js +1 -1
  55. package/dist/apis/iban.cjs +6 -6
  56. package/dist/apis/iban.js +1 -1
  57. package/dist/apis/integration-toolkit.cjs +6 -6
  58. package/dist/apis/integration-toolkit.js +1 -1
  59. package/dist/apis/journey.cjs +6 -6
  60. package/dist/apis/journey.js +1 -1
  61. package/dist/apis/kanban.cjs +6 -6
  62. package/dist/apis/kanban.js +1 -1
  63. package/dist/apis/message.cjs +6 -6
  64. package/dist/apis/message.js +1 -1
  65. package/dist/apis/metering.cjs +6 -6
  66. package/dist/apis/metering.js +1 -1
  67. package/dist/apis/notes.cjs +6 -6
  68. package/dist/apis/notes.js +1 -1
  69. package/dist/apis/notification.cjs +6 -6
  70. package/dist/apis/notification.js +1 -1
  71. package/dist/apis/organization.cjs +6 -6
  72. package/dist/apis/organization.js +1 -1
  73. package/dist/apis/partner-directory.cjs +6 -6
  74. package/dist/apis/partner-directory.js +1 -1
  75. package/dist/apis/permissions.cjs +6 -6
  76. package/dist/apis/permissions.js +1 -1
  77. package/dist/apis/pricing-tier.cjs +6 -6
  78. package/dist/apis/pricing-tier.js +1 -1
  79. package/dist/apis/pricing.cjs +6 -6
  80. package/dist/apis/pricing.js +1 -1
  81. package/dist/apis/purpose.cjs +6 -6
  82. package/dist/apis/purpose.js +1 -1
  83. package/dist/apis/query.cjs +6 -6
  84. package/dist/apis/query.js +1 -1
  85. package/dist/apis/sandbox.cjs +6 -6
  86. package/dist/apis/sandbox.js +1 -1
  87. package/dist/apis/sharing.cjs +6 -6
  88. package/dist/apis/sharing.js +1 -1
  89. package/dist/apis/snapshot.cjs +6 -6
  90. package/dist/apis/snapshot.js +1 -1
  91. package/dist/apis/submission.cjs +6 -6
  92. package/dist/apis/submission.js +1 -1
  93. package/dist/apis/target.cjs +6 -6
  94. package/dist/apis/target.js +1 -1
  95. package/dist/apis/targeting.cjs +6 -6
  96. package/dist/apis/targeting.js +1 -1
  97. package/dist/apis/template-variables.cjs +6 -6
  98. package/dist/apis/template-variables.js +1 -1
  99. package/dist/apis/user.cjs +6 -6
  100. package/dist/apis/user.js +1 -1
  101. package/dist/apis/validation-rules.cjs +6 -6
  102. package/dist/apis/validation-rules.js +1 -1
  103. package/dist/apis/webhooks.cjs +6 -6
  104. package/dist/apis/webhooks.js +1 -1
  105. package/dist/apis/workflow-definition.cjs +6 -6
  106. package/dist/apis/workflow-definition.js +1 -1
  107. package/dist/apis/workflow.cjs +6 -6
  108. package/dist/apis/workflow.js +1 -1
  109. package/dist/chunk-2674L26S.cjs +14 -0
  110. package/dist/{chunk-WCFT56OJ.cjs → chunk-LPUT63UQ.cjs} +2 -2
  111. package/dist/chunk-TH4IM6Q6.js +14 -0
  112. package/dist/{chunk-S7LXTIGZ.js → chunk-TQCQYO4X.js} +2 -2
  113. package/dist/configuration-hub-6TSL5AGX.cjs +7 -0
  114. package/dist/configuration-hub-ZYOLN7ZX.js +7 -0
  115. package/dist/{configuration-hub-runtime-QVLJKEZD.cjs → configuration-hub-runtime-3RFJBODE.cjs} +2 -2
  116. package/dist/{configuration-hub-runtime-CXME7TCX.js → configuration-hub-runtime-EG2OIBXX.js} +1 -1
  117. package/dist/{configuration-hub.d-CbSJDa7k.d.cts → configuration-hub.d-Dv41yC3b.d.cts} +929 -84
  118. package/dist/{configuration-hub.d-CbSJDa7k.d.ts → configuration-hub.d-Dv41yC3b.d.ts} +929 -84
  119. package/dist/index.cjs +10 -10
  120. package/dist/index.d.cts +1 -1
  121. package/dist/index.d.ts +1 -1
  122. package/dist/index.js +2 -2
  123. package/docs/configuration-hub.md +967 -40
  124. package/package.json +1 -1
  125. package/dist/chunk-MOLFG5L4.cjs +0 -14
  126. package/dist/chunk-WW6DVKJR.js +0 -14
  127. package/dist/configuration-hub-E7S4JB2T.js +0 -7
  128. package/dist/configuration-hub-Q5JBYB52.cjs +0 -7
@@ -6,25 +6,25 @@ var _chunkPM25LLETcjs = require('../chunk-PM25LLET.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkWCFT56OJcjs = require('../chunk-WCFT56OJ.cjs');
9
+ var _chunkLPUT63UQcjs = require('../chunk-LPUT63UQ.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/workflow.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkPM25LLETcjs.require_workflow_runtime.call(void 0, );
15
- return _chunkWCFT56OJcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkLPUT63UQcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkWCFT56OJcjs.createApiClient.call(void 0, { definition: def, apiName: "workflow" });
21
+ _instance = _chunkLPUT63UQcjs.createApiClient.call(void 0, { definition: def, apiName: "workflow" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkWCFT56OJcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkLPUT63UQcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkWCFT56OJcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "workflow" }),
27
+ createClient: () => _chunkLPUT63UQcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "workflow" }),
28
28
  apiName: "workflow"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var workflow = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.authorize = _chunkWCFT56OJcjs.authorize; exports.createClient = createClient; exports.getClient = getClient; exports.workflow = workflow;
38
+ exports.authorize = _chunkLPUT63UQcjs.authorize; exports.createClient = createClient; exports.getClient = getClient; exports.workflow = workflow;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-S7LXTIGZ.js";
9
+ } from "../chunk-TQCQYO4X.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/workflow.ts
@@ -0,0 +1,14 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
4
+
5
+ // src/definitions/configuration-hub-runtime.json
6
+ var require_configuration_hub_runtime = _chunkNJK5F5TFcjs.__commonJS.call(void 0, {
7
+ "src/definitions/configuration-hub-runtime.json"(exports, module) {
8
+ module.exports = { s: "https://configuration-hub.sls.epilot.io", o: [["listConfigTypes", "get", "/v1/configs/types"], ["listConfigs", "get", "/v1/configs/{type}", [["ConfigType"], ["CursorParam"], ["SizeParam"], ["q", "q"], ["updated_after", "q"], ["updated_before", "q"], ["purposes", "q"], ["blueprint_ids", "q"], ["sort", "q"], ["active_only", "q"]]], ["getConfigDependencies", "get", "/v1/configs/{type}/{id}/dependencies", [["ConfigType"], ["ConfigId"], ["CursorParam"], ["SizeParam"]]], ["getConfigUsedBy", "get", "/v1/configs/{type}/{id}/used_by", [["ConfigType"], ["ConfigId"]]], ["getIndex", "get", "/v1/configs/index"], ["compareConfigs", "post", "/v1/configs/compare", null, 1], ["suggestMatches", "post", "/v1/configs/compare/suggestions", null, 1], ["confirmLineage", "post", "/v1/configs/lineage", null, 1], ["breakLineage", "delete", "/v1/configs/lineage", [["type", "q", true], ["source_id", "q", true]]], ["createSyncJob", "post", "/v1/configs/sync-jobs", null, 1], ["listSyncJobs", "get", "/v1/configs/sync-jobs", [["CursorParam"], ["SizeParam"], ["status", "q"]]], ["getSyncJob", "get", "/v1/configs/sync-jobs/{id}", [["SyncJobId"]]], ["retrySyncJob", "post", "/v1/configs/sync-jobs/{id}/retry", [["SyncJobId"]], 1], ["cancelSyncJob", "post", "/v1/configs/sync-jobs/{id}/cancel", [["SyncJobId"]]], ["listSyncJobResources", "get", "/v1/configs/sync-jobs/{id}/resources", [["SyncJobId"], ["CursorParam"], ["SizeParam"], ["status", "q"]]], ["createDeleteJob", "post", "/v1/configs/delete-jobs", null, 1], ["listDeleteJobs", "get", "/v1/configs/delete-jobs", [["CursorParam"], ["SizeParam"]]], ["getDeleteJob", "get", "/v1/configs/delete-jobs/{id}", [["DeleteJobId"]]], ["listDeleteJobResources", "get", "/v1/configs/delete-jobs/{id}/resources", [["DeleteJobId"], ["CursorParam"], ["SizeParam"]]], ["rebuildIndex", "post", "/v1/configs/index:rebuild"], ["getConfigInventory", "get", "/v1/configs/inventory", [["include_dependency_only", "q"]]]], v: "3.0.3", cp: { ConfigType: ["type", "p", true], ConfigId: ["id", "p", true], CursorParam: ["cursor", "q"], SizeParam: ["size", "q"], SyncJobId: ["id", "p", true], DeleteJobId: ["id", "p", true] } };
9
+ }
10
+ });
11
+
12
+
13
+
14
+ exports.require_configuration_hub_runtime = require_configuration_hub_runtime;
@@ -39,7 +39,7 @@ var globImport_docs = _chunkNJK5F5TFcjs.__glob.call(void 0, {
39
39
  "./docs/billing.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./billing-C45UEPBV.cjs"))),
40
40
  "./docs/blueprint-manifest.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./blueprint-manifest-4DD7CUPX.cjs"))),
41
41
  "./docs/calendar.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./calendar-EMNHW6ME.cjs"))),
42
- "./docs/configuration-hub.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./configuration-hub-Q5JBYB52.cjs"))),
42
+ "./docs/configuration-hub.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./configuration-hub-6TSL5AGX.cjs"))),
43
43
  "./docs/consent.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./consent-CS2ZBZX4.cjs"))),
44
44
  "./docs/customer-portal.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./customer-portal-JDIXJD6C.cjs"))),
45
45
  "./docs/dashboard.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./dashboard-7QJ46I7N.cjs"))),
@@ -119,7 +119,7 @@ var globImport_definitions_json = _chunkNJK5F5TFcjs.__glob.call(void 0, {
119
119
  "./definitions/blueprint-manifest-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./blueprint-manifest-runtime-N5EXZB2K.cjs"))),
120
120
  "./definitions/blueprint-manifest.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./blueprint-manifest-5TNVSDKC.cjs"))),
121
121
  "./definitions/calendar-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./calendar-runtime-WMR6GL6I.cjs"))),
122
- "./definitions/configuration-hub-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./configuration-hub-runtime-QVLJKEZD.cjs"))),
122
+ "./definitions/configuration-hub-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./configuration-hub-runtime-3RFJBODE.cjs"))),
123
123
  "./definitions/consent-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./consent-runtime-KZ5D4XZU.cjs"))),
124
124
  "./definitions/consent.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./consent-6SIH4NQS.cjs"))),
125
125
  "./definitions/customer-portal-runtime.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./customer-portal-runtime-7WW3YRWJ.cjs"))),
@@ -0,0 +1,14 @@
1
+ import {
2
+ __commonJS
3
+ } from "./chunk-YPSWSI3M.js";
4
+
5
+ // src/definitions/configuration-hub-runtime.json
6
+ var require_configuration_hub_runtime = __commonJS({
7
+ "src/definitions/configuration-hub-runtime.json"(exports, module) {
8
+ module.exports = { s: "https://configuration-hub.sls.epilot.io", o: [["listConfigTypes", "get", "/v1/configs/types"], ["listConfigs", "get", "/v1/configs/{type}", [["ConfigType"], ["CursorParam"], ["SizeParam"], ["q", "q"], ["updated_after", "q"], ["updated_before", "q"], ["purposes", "q"], ["blueprint_ids", "q"], ["sort", "q"], ["active_only", "q"]]], ["getConfigDependencies", "get", "/v1/configs/{type}/{id}/dependencies", [["ConfigType"], ["ConfigId"], ["CursorParam"], ["SizeParam"]]], ["getConfigUsedBy", "get", "/v1/configs/{type}/{id}/used_by", [["ConfigType"], ["ConfigId"]]], ["getIndex", "get", "/v1/configs/index"], ["compareConfigs", "post", "/v1/configs/compare", null, 1], ["suggestMatches", "post", "/v1/configs/compare/suggestions", null, 1], ["confirmLineage", "post", "/v1/configs/lineage", null, 1], ["breakLineage", "delete", "/v1/configs/lineage", [["type", "q", true], ["source_id", "q", true]]], ["createSyncJob", "post", "/v1/configs/sync-jobs", null, 1], ["listSyncJobs", "get", "/v1/configs/sync-jobs", [["CursorParam"], ["SizeParam"], ["status", "q"]]], ["getSyncJob", "get", "/v1/configs/sync-jobs/{id}", [["SyncJobId"]]], ["retrySyncJob", "post", "/v1/configs/sync-jobs/{id}/retry", [["SyncJobId"]], 1], ["cancelSyncJob", "post", "/v1/configs/sync-jobs/{id}/cancel", [["SyncJobId"]]], ["listSyncJobResources", "get", "/v1/configs/sync-jobs/{id}/resources", [["SyncJobId"], ["CursorParam"], ["SizeParam"], ["status", "q"]]], ["createDeleteJob", "post", "/v1/configs/delete-jobs", null, 1], ["listDeleteJobs", "get", "/v1/configs/delete-jobs", [["CursorParam"], ["SizeParam"]]], ["getDeleteJob", "get", "/v1/configs/delete-jobs/{id}", [["DeleteJobId"]]], ["listDeleteJobResources", "get", "/v1/configs/delete-jobs/{id}/resources", [["DeleteJobId"], ["CursorParam"], ["SizeParam"]]], ["rebuildIndex", "post", "/v1/configs/index:rebuild"], ["getConfigInventory", "get", "/v1/configs/inventory", [["include_dependency_only", "q"]]]], v: "3.0.3", cp: { ConfigType: ["type", "p", true], ConfigId: ["id", "p", true], CursorParam: ["cursor", "q"], SizeParam: ["size", "q"], SyncJobId: ["id", "p", true], DeleteJobId: ["id", "p", true] } };
9
+ }
10
+ });
11
+
12
+ export {
13
+ require_configuration_hub_runtime
14
+ };
@@ -39,7 +39,7 @@ var globImport_docs = __glob({
39
39
  "./docs/billing.json": () => import("./billing-IV5ABNW4.js"),
40
40
  "./docs/blueprint-manifest.json": () => import("./blueprint-manifest-IP2AU3F3.js"),
41
41
  "./docs/calendar.json": () => import("./calendar-PZFEAXYE.js"),
42
- "./docs/configuration-hub.json": () => import("./configuration-hub-E7S4JB2T.js"),
42
+ "./docs/configuration-hub.json": () => import("./configuration-hub-ZYOLN7ZX.js"),
43
43
  "./docs/consent.json": () => import("./consent-NNYHF2N4.js"),
44
44
  "./docs/customer-portal.json": () => import("./customer-portal-WIRQ7UCN.js"),
45
45
  "./docs/dashboard.json": () => import("./dashboard-ILXUFFF2.js"),
@@ -119,7 +119,7 @@ var globImport_definitions_json = __glob({
119
119
  "./definitions/blueprint-manifest-runtime.json": () => import("./blueprint-manifest-runtime-W526ROPG.js"),
120
120
  "./definitions/blueprint-manifest.json": () => import("./blueprint-manifest-UGGYWGRZ.js"),
121
121
  "./definitions/calendar-runtime.json": () => import("./calendar-runtime-KZPDEYT7.js"),
122
- "./definitions/configuration-hub-runtime.json": () => import("./configuration-hub-runtime-CXME7TCX.js"),
122
+ "./definitions/configuration-hub-runtime.json": () => import("./configuration-hub-runtime-EG2OIBXX.js"),
123
123
  "./definitions/consent-runtime.json": () => import("./consent-runtime-OAPXBJH2.js"),
124
124
  "./definitions/consent.json": () => import("./consent-7MNRAINV.js"),
125
125
  "./definitions/customer-portal-runtime.json": () => import("./customer-portal-runtime-FZQLCEJQ.js"),
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
2
+
3
+ // src/docs/configuration-hub.json
4
+ var configuration_hub_default = '# Configuration Hub API\n\n- **Base URL:** `https://configuration-hub.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/configuration-hub](https://docs.epilot.io/api/configuration-hub)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.configurationHub.listConfigTypes(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/configuration-hub\'\n\nconst configurationHubClient = getClient()\nauthorize(configurationHubClient, () => \'<token>\')\nconst { data } = await configurationHubClient.listConfigTypes(...)\n```\n\n## Operations\n\n**Configs**\n- [`listConfigTypes`](#listconfigtypes)\n- [`listConfigs`](#listconfigs)\n- [`getConfigDependencies`](#getconfigdependencies)\n- [`getConfigUsedBy`](#getconfigusedby)\n- [`getIndex`](#getindex)\n- [`rebuildIndex`](#rebuildindex)\n- [`getConfigInventory`](#getconfiginventory)\n\n**Compare**\n- [`compareConfigs`](#compareconfigs)\n- [`suggestMatches`](#suggestmatches)\n- [`confirmLineage`](#confirmlineage)\n- [`breakLineage`](#breaklineage)\n\n**Sync**\n- [`createSyncJob`](#createsyncjob)\n- [`listSyncJobs`](#listsyncjobs)\n- [`getSyncJob`](#getsyncjob)\n- [`retrySyncJob`](#retrysyncjob)\n- [`cancelSyncJob`](#cancelsyncjob)\n- [`listSyncJobResources`](#listsyncjobresources)\n\n**Delete**\n- [`createDeleteJob`](#createdeletejob)\n- [`listDeleteJobs`](#listdeletejobs)\n- [`getDeleteJob`](#getdeletejob)\n- [`listDeleteJobResources`](#listdeletejobresources)\n\n**Schemas**\n- [`ResourceType`](#resourcetype)\n- [`ConfigTypeInfo`](#configtypeinfo)\n- [`ConfigNode`](#confignode)\n- [`ConfigListResponse`](#configlistresponse)\n- [`ConfigDependenciesResponse`](#configdependenciesresponse)\n- [`IndexRebuildResponse`](#indexrebuildresponse)\n- [`IndexStatusResponse`](#indexstatusresponse)\n- [`CompareRequest`](#comparerequest)\n- [`CompareLineage`](#comparelineage)\n- [`CompareRow`](#comparerow)\n- [`CompareCounts`](#comparecounts)\n- [`CompareResponse`](#compareresponse)\n- [`SuggestMatchesRequest`](#suggestmatchesrequest)\n- [`MatchSuggestion`](#matchsuggestion)\n- [`SuggestMatchesResponse`](#suggestmatchesresponse)\n- [`ConfirmLineageRequest`](#confirmlineagerequest)\n- [`LineageEntryResponse`](#lineageentryresponse)\n- [`BreakLineageResponse`](#breaklineageresponse)\n- [`ErrorResponse`](#errorresponse)\n- [`SyncJobStatus`](#syncjobstatus)\n- [`SyncDirection`](#syncdirection)\n- [`SyncPhase`](#syncphase)\n- [`SyncJobResourceStatus`](#syncjobresourcestatus)\n- [`SyncJobRequest`](#syncjobrequest)\n- [`SyncJobRetryRequest`](#syncjobretryrequest)\n- [`SyncJobCounts`](#syncjobcounts)\n- [`SyncJobEvent`](#syncjobevent)\n- [`SyncJobBatch`](#syncjobbatch)\n- [`SyncJob`](#syncjob)\n- [`SyncJobListResponse`](#syncjoblistresponse)\n- [`SyncJobResource`](#syncjobresource)\n- [`SyncJobResourceListResponse`](#syncjobresourcelistresponse)\n- [`DeleteJobStatus`](#deletejobstatus)\n- [`DeleteJobResourceStatus`](#deletejobresourcestatus)\n- [`DeleteJobCounts`](#deletejobcounts)\n- [`DeleteJobRequest`](#deletejobrequest)\n- [`DeleteJob`](#deletejob)\n- [`DeleteJobListResponse`](#deletejoblistresponse)\n- [`DeleteJobResource`](#deletejobresource)\n- [`DeleteJobResourceListResponse`](#deletejobresourcelistresponse)\n- [`SnapshotInventoryItem`](#snapshotinventoryitem)\n- [`SnapshotInventorySkippedType`](#snapshotinventoryskippedtype)\n- [`ConfigInventoryResponse`](#configinventoryresponse)\n\n### `listConfigTypes`\n\nReturns the static list of available configuration types with display metadata.\nThis is a cheap call \u2014 no fan-out to downstream APIs. Returns all known types\nwith labels and icons. The frontend should\n\n`GET /v1/configs/types`\n\n```ts\nconst { data } = await client.listConfigTypes()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "type": "journey",\n "label": "Journeys",\n "icon": "Route",\n "source_api": "https://journey.sls.epilot.io",\n "sdk_client": "@epilot/sdk/journey",\n "deletable": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listConfigs`\n\nList configs of a given type with pagination. Returns summary metadata only\n(not full payloads). The frontend calls this per type folder when expanding.\n\n`GET /v1/configs/{type}`\n\n```ts\nconst { data } = await client.listConfigs({\n type: \'example\',\n cursor: \'example\',\n size: 1,\n q: \'example\',\n updated_after: \'example\',\n updated_before: \'example\',\n purposes: \'example\',\n blueprint_ids: \'example\',\n sort: \'example\',\n active_only: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "label": "string",\n "icon": "string",\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getConfigDependencies`\n\nGet configs that are referenced by the given config.\nUsed to render children when expanding a config node in the tree.\n\n`GET /v1/configs/{type}/{id}/dependencies`\n\n```ts\nconst { data } = await client.getConfigDependencies({\n type: \'example\',\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getConfigUsedBy`\n\nGet configs that reference the given config (reverse dependencies).\nScans the indexed config items for references to this config\'s ID or aliases.\n\n`GET /v1/configs/{type}/{id}/used_by`\n\n```ts\nconst { data } = await client.getConfigUsedBy({\n type: \'example\',\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getIndex`\n\nReturn the current index build state for the caller\'s organization.\nClients poll this to decide whether to show a "building" indicator\nand when to refetch data.\n\n`GET /v1/configs/index`\n\n```ts\nconst { data } = await client.getIndex()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "missing",\n "org_id": "string",\n "last_built_at": "1970-01-01T00:00:00.000Z",\n "total_items": 0,\n "build_duration_ms": 0\n}\n```\n\n</details>\n\n---\n\n### `compareConfigs`\n\nCompare the caller org\'s configs of a single type against another\n(source) org, side by side. Rows are paired via the lineage registry in\nboth sync directions (caller imported from source, or source i\n\n`POST /v1/configs/compare`\n\n```ts\nconst { data } = await client.compareConfigs(\n null,\n {\n source_org_id: \'string\',\n source_auth_token: \'string\',\n type: \'journey\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "label": "string",\n "icon": "string",\n "rows": [\n {\n "match_status": "matched",\n "current": {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n },\n "source": {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n },\n "lineage": {\n "direction": "pull",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "last_sync_job_id": "string",\n "origin": "string"\n }\n }\n ],\n "counts": {\n "matched": 0,\n "only_current": 0,\n "only_source": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `suggestMatches`\n\nRun the sync-grade heuristic match (`lookupByHeuristic` \u2014 name / slug /\nunique key) for a batch of source-org configs that have no lineage\nentry, and return candidate counterparts in the caller\'s org.\n\n`POST /v1/configs/compare/suggestions`\n\n```ts\nconst { data } = await client.suggestMatches(\n null,\n {\n source_org_id: \'string\',\n source_auth_token: \'string\',\n type: \'journey\',\n source_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "suggestions": [\n {\n "source_id": "string",\n "candidate": {\n "id": "string",\n "title": "string"\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `confirmLineage`\n\nPersist a lineage entry pairing a source-org config with a config in\nthe caller\'s org \u2014 used to confirm a heuristic suggestion from the\nCompare view. Writes to the caller org\'s lineage partition (call\n\n`POST /v1/configs/lineage`\n\n```ts\nconst { data } = await client.confirmLineage(\n null,\n {\n type: \'journey\',\n source_org_id: \'string\',\n source_id: \'string\',\n target_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "target_org_id": "string",\n "source_org_id": "string",\n "source_id": "string",\n "target_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "origin": "string"\n}\n```\n\n</details>\n\n---\n\n### `breakLineage`\n\nDelete a lineage entry from the caller org\'s partition (caller as sync\ntarget), identified by `type` + `source_id`. Used to break a wrong or\nstale match from the Compare view. Note: a future sync can \n\n`DELETE /v1/configs/lineage`\n\n```ts\nconst { data } = await client.breakLineage({\n type: \'example\',\n source_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "deleted": true\n}\n```\n\n</details>\n\n---\n\n### `createSyncJob`\n\nCreate a new cross-org sync job. The job is enqueued for asynchronous execution\nby the worker Lambda; the response returns the persisted job header with status\n`pending`.\n\n`POST /v1/configs/sync-jobs`\n\n```ts\nconst { data } = await client.createSyncJob(\n null,\n {\n source_org_id: \'string\',\n target_org_id: \'string\',\n target_auth_token: \'string\',\n name: \'string\',\n dry_run: false,\n include_dependencies: true,\n resources: [\n {\n type: \'string\',\n id: \'string\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listSyncJobs`\n\nList sync jobs scoped to the caller\'s organization, paginated with an opaque\ncursor. Defaults to most-recent first.\n\n`GET /v1/configs/sync-jobs`\n\n```ts\nconst { data } = await client.listSyncJobs({\n cursor: \'example\',\n size: 1,\n status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getSyncJob`\n\nFetch a single sync job by ID. Returns the job header, counts summary,\ncurrent phase pointer, and the latest activity events. Frontend polls this\nendpoint with a ramping interval.\n\n`GET /v1/configs/sync-jobs/{id}`\n\n```ts\nconst { data } = await client.getSyncJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `retrySyncJob`\n\nRetry the unresolved resources from a prior sync job: `failed` rows, plus\nrows the original run left at `pending`/`in_progress` because it stopped\nearly. Creates a new job whose scope is that `(type, \n\n`POST /v1/configs/sync-jobs/{id}/retry`\n\n```ts\nconst { data } = await client.retrySyncJob(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n payload_overrides: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `cancelSyncJob`\n\nCancel a running sync job. Marks the job `cancelled` with a `finished_at`\nso it stops being reported as in-flight, and the worker stops at its next\nbatch boundary \u2014 phases re-read the job status and a\n\n`POST /v1/configs/sync-jobs/{id}/cancel`\n\n```ts\nconst { data } = await client.cancelSyncJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listSyncJobResources`\n\nList the per-resource rows for a sync job. Supports filtering by status\n(e.g. `failed`) and cursor pagination. Used by the failures table and the\ndry-run plan view in the frontend.\n\n`GET /v1/configs/sync-jobs/{id}/resources`\n\n```ts\nconst { data } = await client.listSyncJobResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "title": "string",\n "status": "pending",\n "phase": "phase_0",\n "attempt": 0,\n "error": "string",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createDeleteJob`\n\nCreate a bulk-delete job for the caller\'s organization. The selected\nresources are deleted asynchronously by a worker Lambda; the response\nreturns the persisted job header with status `pending`.\n\n`POST /v1/configs/delete-jobs`\n\n```ts\nconst { data } = await client.createDeleteJob(\n null,\n {\n name: \'string\',\n resources: [\n {\n type: \'string\',\n id: \'string\',\n title: \'string\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n}\n```\n\n</details>\n\n---\n\n### `listDeleteJobs`\n\nList bulk-delete jobs scoped to the caller\'s organization, paginated\nwith an opaque cursor. Most-recent first.\n\n`GET /v1/configs/delete-jobs`\n\n```ts\nconst { data } = await client.listDeleteJobs({\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getDeleteJob`\n\nFetch a single bulk-delete job by ID. Returns the job header and counts\nsummary. Frontend polls this endpoint while the job runs.\n\n`GET /v1/configs/delete-jobs/{id}`\n\n```ts\nconst { data } = await client.getDeleteJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n}\n```\n\n</details>\n\n---\n\n### `listDeleteJobResources`\n\nList the per-resource rows for a delete job, cursor-paginated. Used by\nthe failures view in the frontend.\n\n`GET /v1/configs/delete-jobs/{id}/resources`\n\n```ts\nconst { data } = await client.listDeleteJobResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "type": "string",\n "id": "string",\n "title": "string",\n "status": "pending",\n "attempt": 0,\n "error": "string",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `rebuildIndex`\n\nRebuild the configuration index for the caller\'s organization.\nFire-and-forget: invokes the async worker and returns immediately.\nA new rebuild will cancel any in-flight build (see `build_token`).\n\n`POST /v1/configs/index:rebuild`\n\n```ts\nconst { data } = await client.rebuildIndex()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "ready",\n "last_built_at": "1970-01-01T00:00:00.000Z",\n "total_items": 0,\n "build_duration_ms": 0,\n "failed_types": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `getConfigInventory`\n\nReturns a fresh inventory of an org\'s configuration resources \u2014 `{ type, id }` identities only,\nno full payloads. Calls every adapter\'s `list()` live (bypasses the 7-day DynamoDB index).\nIntended for \n\n`GET /v1/configs/inventory`\n\n```ts\nconst { data } = await client.getConfigInventory({\n include_dependency_only: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "inventory_id": "string",\n "org_id": "string",\n "indexed_at": "1970-01-01T00:00:00.000Z",\n "resources_count": 0,\n "resources": [\n {\n "type": "journey",\n "id": "string"\n }\n ],\n "skipped_types": [\n {\n "type": "string",\n "reason": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ResourceType`\n\nConfiguration resource type identifier.\nMatches blueprint-manifest-api V3 naming conventions.\n\n\n```ts\ntype 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"\n```\n\n### `ConfigTypeInfo`\n\nStatic metadata for a config type folder in the tree.\nNo downstream API calls \u2014 just type + label + icon + source API info.\n\n\n```ts\ntype ConfigTypeInfo = {\n 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"\n label: string\n icon: string\n source_api: string\n sdk_client: string\n deletable: boolean\n}\n```\n\n### `ConfigNode`\n\nSummary metadata for a single configuration item in the tree\n\n```ts\ntype ConfigNode = {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: string\n title: string\n }>\n metadata?: Record<string, unknown>\n}\n```\n\n### `ConfigListResponse`\n\nCursor-paginated list of configs for a specific type\n\n```ts\ntype ConfigListResponse = {\n 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"\n label: string\n icon: string\n total?: number\n next_cursor?: string\n results: Array<{\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }>\n}\n```\n\n### `ConfigDependenciesResponse`\n\nCursor-paginated list of configs referenced by a given config\n\n```ts\ntype ConfigDependenciesResponse = {\n total?: number\n next_cursor?: string\n results: Array<{\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }>\n}\n```\n\n### `IndexRebuildResponse`\n\nResult of an index rebuild operation\n\n```ts\ntype IndexRebuildResponse = {\n status: "ready" | "building" | "failed" | "already_building"\n last_built_at?: string // date-time\n total_items?: number\n build_duration_ms?: number\n failed_types?: string[]\n}\n```\n\n### `IndexStatusResponse`\n\nCurrent index build state\n\n```ts\ntype IndexStatusResponse = {\n status: "missing" | "building" | "ready" | "failed"\n org_id?: string\n last_built_at?: string // date-time\n total_items?: number\n build_duration_ms?: number\n}\n```\n\n### `CompareRequest`\n\nRequest body for a per-type cross-org comparison\n\n```ts\ntype CompareRequest = {\n source_org_id: string\n source_auth_token: string\n 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"\n}\n```\n\n### `CompareLineage`\n\nProvenance of a lineage-backed match\n\n```ts\ntype CompareLineage = {\n direction: "pull" | "push"\n last_synced_at?: string // date-time\n last_sync_job_id?: string\n origin?: string\n}\n```\n\n### `CompareRow`\n\nOne row of the side-by-side comparison. `matched` rows carry both\nconfigs plus lineage provenance; one-sided rows carry only the side\nthe config exists on.\n\n\n```ts\ntype CompareRow = {\n match_status: "matched" | "only_current" | "only_source"\n current?: {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }\n source?: {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }\n lineage?: {\n direction: "pull" | "push"\n last_synced_at?: string // date-time\n last_sync_job_id?: string\n origin?: string\n }\n}\n```\n\n### `CompareCounts`\n\nRow counts per match status\n\n```ts\ntype CompareCounts = {\n matched: number\n only_current: number\n only_source: number\n}\n```\n\n### `CompareResponse`\n\nSide-by-side comparison of one config type across two orgs\n\n```ts\ntype CompareResponse = {\n 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"\n label: string\n icon: string\n rows: Array<{\n match_status: "matched" | "only_current" | "only_source"\n current?: {\n type: { ... }\n id: { ... }\n title: { ... }\n updated_at?: { ... }\n updated_by?: { ... }\n tags?: { ... }\n aliases?: { ... }\n purposes?: { ... }\n link?: { ... }\n active?: { ... }\n blueprints?: { ... }\n metadata?: { ... }\n }\n source?: {\n type: { ... }\n id: { ... }\n title: { ... }\n updated_at?: { ... }\n updated_by?: { ... }\n tags?: { ... }\n aliases?: { ... }\n purposes?: { ... }\n link?: { ... }\n active?: { ... }\n blueprints?: { ... }\n metadata?: { ... }\n }\n lineage?: {\n direction: { ... }\n last_synced_at?: { ... }\n last_sync_job_id?: { ... }\n origin?: { ... }\n }\n }>\n counts: {\n matched: number\n only_current: number\n only_source: number\n }\n}\n```\n\n### `SuggestMatchesRequest`\n\nRequest body for batched heuristic match suggestions\n\n```ts\ntype SuggestMatchesRequest = {\n source_org_id: string\n source_auth_token: string\n 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"\n source_ids: string[]\n}\n```\n\n### `MatchSuggestion`\n\nHeuristic candidate for one source config (null candidate = no match)\n\n```ts\ntype MatchSuggestion = {\n source_id: string\n candidate?: {\n id: string\n title?: string\n }\n}\n```\n\n### `SuggestMatchesResponse`\n\n```ts\ntype SuggestMatchesResponse = {\n 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"\n suggestions: Array<{\n source_id: string\n candidate?: {\n id: { ... }\n title?: { ... }\n }\n }>\n}\n```\n\n### `ConfirmLineageRequest`\n\nPersist a source\u2192target lineage pairing (caller org as target)\n\n```ts\ntype ConfirmLineageRequest = {\n 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"\n source_org_id: string\n source_id: string\n target_id: string\n}\n```\n\n### `LineageEntryResponse`\n\nA persisted lineage entry\n\n```ts\ntype LineageEntryResponse = {\n 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"\n target_org_id: string\n source_org_id: string\n source_id: string\n target_id: string\n last_synced_at?: string // date-time\n origin?: string\n}\n```\n\n### `BreakLineageResponse`\n\n```ts\ntype BreakLineageResponse = {\n deleted: boolean\n}\n```\n\n### `ErrorResponse`\n\n```ts\ntype ErrorResponse = {\n status: number\n error: string\n}\n```\n\n### `SyncJobStatus`\n\nLifecycle status of a sync job. See `docs/sync/INTERFACES.md` for state\ntransitions.\n\n\n```ts\ntype SyncJobStatus = "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n```\n\n### `SyncDirection`\n\nDirection of the sync, derived from the source/target pane selection in the\nconfiguration hub UI.\n\n\n```ts\ntype SyncDirection = "push" | "pull"\n```\n\n### `SyncPhase`\n\nThree-phase orchestrator phase. `phase_0` fetches source payloads,\n`phase_a` creates/matches with topological batches, `phase_a5` resolves\nderived references, `phase_b` patches with the full ID map, `finalize`\nruns cycle-breaking finalizers.\n\n\n```ts\ntype SyncPhase = "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n```\n\n### `SyncJobResourceStatus`\n\nPer-resource status. `would_*` values are produced by dry-run jobs.\n\n\n```ts\ntype SyncJobResourceStatus = "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n```\n\n### `SyncJobRequest`\n\nRequest body for `createSyncJob`. `target_auth_token` is the destination\norg\'s auth token and MUST NOT be persisted or logged \u2014 it is `writeOnly`.\n\n\n```ts\ntype SyncJobRequest = {\n source_org_id: string\n target_org_id: string\n target_auth_token: string\n name?: string\n dry_run?: boolean\n include_dependencies?: boolean\n resources: Array<{\n type: string\n id: string\n }>\n}\n```\n\n### `SyncJobRetryRequest`\n\nOptional body for `retrySyncJob`. Defaults to retrying every unresolved\nresource of the original job (failed, pending or in_progress).\n\n\n```ts\ntype SyncJobRetryRequest = {\n payload_overrides?: Record<string, unknown>\n}\n```\n\n### `SyncJobCounts`\n\nAggregate counters by resource status.\n\n```ts\ntype SyncJobCounts = {\n total: number\n pending: number\n in_progress: number\n succeeded: number\n failed: number\n skipped_unchanged: number\n}\n```\n\n### `SyncJobEvent`\n\nActivity-log entry surfaced to the frontend. Backed by the op-log rows in\nthe index table (`SYNC#`<jobId>`#OP#`<seq>``).\n\n\n```ts\ntype SyncJobEvent = {\n seq: number\n ts: string // date-time\n phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n type?: string\n source_id?: string\n target_id?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n message?: string\n error?: string\n}\n```\n\n### `SyncJobBatch`\n\nPosition within the current topological batch for the active phase.\n\n```ts\ntype SyncJobBatch = {\n index: number\n of: number\n level: number\n}\n```\n\n### `SyncJob`\n\nSync job header as surfaced by `getSyncJob` and the create response. The\ncanonical persistence shape is described in `docs/sync/INTERFACES.md`.\n\n\n```ts\ntype SyncJob = {\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n direction: "push" | "pull"\n source_org_id: string\n target_org_id: string\n dry_run: boolean\n counts: {\n total: number\n pending: number\n in_progress: number\n succeeded: number\n failed: number\n skipped_unchanged: number\n }\n current_phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n current_batch?: {\n index: number\n of: number\n level: number\n }\n started_at: string // date-time\n finished_at?: string // date-time\n events?: Array<{\n seq: number\n ts: string // date-time\n phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n type?: string\n source_id?: string\n target_id?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n message?: string\n error?: string\n }>\n errors_sample?: Array<{\n type: string\n source_id: string\n error: string\n }>\n}\n```\n\n### `SyncJobListResponse`\n\nCursor-paginated list of sync jobs.\n\n```ts\ntype SyncJobListResponse = {\n next_cursor?: string\n results: Array<{\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n direction: "push" | "pull"\n source_org_id: string\n target_org_id: string\n dry_run: boolean\n counts: {\n total: { ... }\n pending: { ... }\n in_progress: { ... }\n succeeded: { ... }\n failed: { ... }\n skipped_unchanged: { ... }\n }\n current_phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n current_batch?: {\n index: { ... }\n of: { ... }\n level: { ... }\n }\n started_at: string // date-time\n finished_at?: string // date-time\n events?: Array<{\n seq: { ... }\n ts: { ... }\n phase?: { ... }\n type?: { ... }\n source_id?: { ... }\n target_id?: { ... }\n status: { ... }\n message?: { ... }\n error?: { ... }\n }>\n errors_sample?: Array<{\n type: { ... }\n source_id: { ... }\n error: { ... }\n }>\n }>\n}\n```\n\n### `SyncJobResource`\n\nPer-resource row backed by `SyncResourcesTable`. See\n`docs/sync/INTERFACES.md` for the DDB shape.\n\n\n```ts\ntype SyncJobResource = {\n type: string\n source_id: string\n target_id?: string\n title?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n attempt: number\n error?: string\n updated_at: string // date-time\n}\n```\n\n### `SyncJobResourceListResponse`\n\nCursor-paginated list of sync job resources.\n\n```ts\ntype SyncJobResourceListResponse = {\n next_cursor?: string\n results: Array<{\n type: string\n source_id: string\n target_id?: string\n title?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n attempt: number\n error?: string\n updated_at: string // date-time\n }>\n}\n```\n\n### `DeleteJobStatus`\n\nLifecycle status of a bulk-delete job.\n\n```ts\ntype DeleteJobStatus = "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n```\n\n### `DeleteJobResourceStatus`\n\nPer-resource delete status. `skipped` is used for protected resources\nthat are intentionally not deleted (e.g. built-in schemas).\n\n\n```ts\ntype DeleteJobResourceStatus = "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n```\n\n### `DeleteJobCounts`\n\nAggregate counters by resource delete status.\n\n```ts\ntype DeleteJobCounts = {\n total: number\n pending: number\n in_progress: number\n deleted: number\n skipped: number\n failed: number\n}\n```\n\n### `DeleteJobRequest`\n\nRequest body for `createDeleteJob`.\n\n```ts\ntype DeleteJobRequest = {\n name?: string\n resources: Array<{\n type: string\n id: string\n title?: string\n }>\n}\n```\n\n### `DeleteJob`\n\nBulk-delete job header surfaced by `createDeleteJob`/`getDeleteJob`.\n\n```ts\ntype DeleteJob = {\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n org_id: string\n counts: {\n total: number\n pending: number\n in_progress: number\n deleted: number\n skipped: number\n failed: number\n }\n started_at: string // date-time\n finished_at?: string // date-time\n rebuild_triggered?: boolean\n}\n```\n\n### `DeleteJobListResponse`\n\nCursor-paginated list of delete jobs.\n\n```ts\ntype DeleteJobListResponse = {\n next_cursor?: string\n results: Array<{\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n org_id: string\n counts: {\n total: { ... }\n pending: { ... }\n in_progress: { ... }\n deleted: { ... }\n skipped: { ... }\n failed: { ... }\n }\n started_at: string // date-time\n finished_at?: string // date-time\n rebuild_triggered?: boolean\n }>\n}\n```\n\n### `DeleteJobResource`\n\nPer-resource row for a delete job.\n\n```ts\ntype DeleteJobResource = {\n type: string\n id: string\n title?: string\n status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n attempt: number\n error?: string\n updated_at: string // date-time\n}\n```\n\n### `DeleteJobResourceListResponse`\n\nCursor-paginated list of delete job resources.\n\n```ts\ntype DeleteJobResourceListResponse = {\n next_cursor?: string\n results: Array<{\n type: string\n id: string\n title?: string\n status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n attempt: number\n error?: string\n updated_at: string // date-time\n }>\n}\n```\n\n### `SnapshotInventoryItem`\n\nMinimal identity of a single configuration resource.\n\n```ts\ntype SnapshotInventoryItem = {\n 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"\n id: string\n}\n```\n\n### `SnapshotInventorySkippedType`\n\nA type that could not be listed during inventory collection.\n\n```ts\ntype SnapshotInventorySkippedType = {\n type: string\n reason: string\n}\n```\n\n### `ConfigInventoryResponse`\n\nFresh inventory of all configuration resources for an org.\n\n```ts\ntype ConfigInventoryResponse = {\n inventory_id: string\n org_id: string\n indexed_at: string // date-time\n resources_count: number\n resources: Array<{\n 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"\n id: string\n }>\n skipped_types: Array<{\n type: string\n reason: string\n }>\n}\n```\n';
5
+
6
+
7
+ exports.default = configuration_hub_default;
@@ -0,0 +1,7 @@
1
+ import "./chunk-YPSWSI3M.js";
2
+
3
+ // src/docs/configuration-hub.json
4
+ var configuration_hub_default = '# Configuration Hub API\n\n- **Base URL:** `https://configuration-hub.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/configuration-hub](https://docs.epilot.io/api/configuration-hub)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.configurationHub.listConfigTypes(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/configuration-hub\'\n\nconst configurationHubClient = getClient()\nauthorize(configurationHubClient, () => \'<token>\')\nconst { data } = await configurationHubClient.listConfigTypes(...)\n```\n\n## Operations\n\n**Configs**\n- [`listConfigTypes`](#listconfigtypes)\n- [`listConfigs`](#listconfigs)\n- [`getConfigDependencies`](#getconfigdependencies)\n- [`getConfigUsedBy`](#getconfigusedby)\n- [`getIndex`](#getindex)\n- [`rebuildIndex`](#rebuildindex)\n- [`getConfigInventory`](#getconfiginventory)\n\n**Compare**\n- [`compareConfigs`](#compareconfigs)\n- [`suggestMatches`](#suggestmatches)\n- [`confirmLineage`](#confirmlineage)\n- [`breakLineage`](#breaklineage)\n\n**Sync**\n- [`createSyncJob`](#createsyncjob)\n- [`listSyncJobs`](#listsyncjobs)\n- [`getSyncJob`](#getsyncjob)\n- [`retrySyncJob`](#retrysyncjob)\n- [`cancelSyncJob`](#cancelsyncjob)\n- [`listSyncJobResources`](#listsyncjobresources)\n\n**Delete**\n- [`createDeleteJob`](#createdeletejob)\n- [`listDeleteJobs`](#listdeletejobs)\n- [`getDeleteJob`](#getdeletejob)\n- [`listDeleteJobResources`](#listdeletejobresources)\n\n**Schemas**\n- [`ResourceType`](#resourcetype)\n- [`ConfigTypeInfo`](#configtypeinfo)\n- [`ConfigNode`](#confignode)\n- [`ConfigListResponse`](#configlistresponse)\n- [`ConfigDependenciesResponse`](#configdependenciesresponse)\n- [`IndexRebuildResponse`](#indexrebuildresponse)\n- [`IndexStatusResponse`](#indexstatusresponse)\n- [`CompareRequest`](#comparerequest)\n- [`CompareLineage`](#comparelineage)\n- [`CompareRow`](#comparerow)\n- [`CompareCounts`](#comparecounts)\n- [`CompareResponse`](#compareresponse)\n- [`SuggestMatchesRequest`](#suggestmatchesrequest)\n- [`MatchSuggestion`](#matchsuggestion)\n- [`SuggestMatchesResponse`](#suggestmatchesresponse)\n- [`ConfirmLineageRequest`](#confirmlineagerequest)\n- [`LineageEntryResponse`](#lineageentryresponse)\n- [`BreakLineageResponse`](#breaklineageresponse)\n- [`ErrorResponse`](#errorresponse)\n- [`SyncJobStatus`](#syncjobstatus)\n- [`SyncDirection`](#syncdirection)\n- [`SyncPhase`](#syncphase)\n- [`SyncJobResourceStatus`](#syncjobresourcestatus)\n- [`SyncJobRequest`](#syncjobrequest)\n- [`SyncJobRetryRequest`](#syncjobretryrequest)\n- [`SyncJobCounts`](#syncjobcounts)\n- [`SyncJobEvent`](#syncjobevent)\n- [`SyncJobBatch`](#syncjobbatch)\n- [`SyncJob`](#syncjob)\n- [`SyncJobListResponse`](#syncjoblistresponse)\n- [`SyncJobResource`](#syncjobresource)\n- [`SyncJobResourceListResponse`](#syncjobresourcelistresponse)\n- [`DeleteJobStatus`](#deletejobstatus)\n- [`DeleteJobResourceStatus`](#deletejobresourcestatus)\n- [`DeleteJobCounts`](#deletejobcounts)\n- [`DeleteJobRequest`](#deletejobrequest)\n- [`DeleteJob`](#deletejob)\n- [`DeleteJobListResponse`](#deletejoblistresponse)\n- [`DeleteJobResource`](#deletejobresource)\n- [`DeleteJobResourceListResponse`](#deletejobresourcelistresponse)\n- [`SnapshotInventoryItem`](#snapshotinventoryitem)\n- [`SnapshotInventorySkippedType`](#snapshotinventoryskippedtype)\n- [`ConfigInventoryResponse`](#configinventoryresponse)\n\n### `listConfigTypes`\n\nReturns the static list of available configuration types with display metadata.\nThis is a cheap call \u2014 no fan-out to downstream APIs. Returns all known types\nwith labels and icons. The frontend should\n\n`GET /v1/configs/types`\n\n```ts\nconst { data } = await client.listConfigTypes()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "type": "journey",\n "label": "Journeys",\n "icon": "Route",\n "source_api": "https://journey.sls.epilot.io",\n "sdk_client": "@epilot/sdk/journey",\n "deletable": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listConfigs`\n\nList configs of a given type with pagination. Returns summary metadata only\n(not full payloads). The frontend calls this per type folder when expanding.\n\n`GET /v1/configs/{type}`\n\n```ts\nconst { data } = await client.listConfigs({\n type: \'example\',\n cursor: \'example\',\n size: 1,\n q: \'example\',\n updated_after: \'example\',\n updated_before: \'example\',\n purposes: \'example\',\n blueprint_ids: \'example\',\n sort: \'example\',\n active_only: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "label": "string",\n "icon": "string",\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getConfigDependencies`\n\nGet configs that are referenced by the given config.\nUsed to render children when expanding a config node in the tree.\n\n`GET /v1/configs/{type}/{id}/dependencies`\n\n```ts\nconst { data } = await client.getConfigDependencies({\n type: \'example\',\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getConfigUsedBy`\n\nGet configs that reference the given config (reverse dependencies).\nScans the indexed config items for references to this config\'s ID or aliases.\n\n`GET /v1/configs/{type}/{id}/used_by`\n\n```ts\nconst { data } = await client.getConfigUsedBy({\n type: \'example\',\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "next_cursor": "string",\n "results": [\n {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getIndex`\n\nReturn the current index build state for the caller\'s organization.\nClients poll this to decide whether to show a "building" indicator\nand when to refetch data.\n\n`GET /v1/configs/index`\n\n```ts\nconst { data } = await client.getIndex()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "missing",\n "org_id": "string",\n "last_built_at": "1970-01-01T00:00:00.000Z",\n "total_items": 0,\n "build_duration_ms": 0\n}\n```\n\n</details>\n\n---\n\n### `compareConfigs`\n\nCompare the caller org\'s configs of a single type against another\n(source) org, side by side. Rows are paired via the lineage registry in\nboth sync directions (caller imported from source, or source i\n\n`POST /v1/configs/compare`\n\n```ts\nconst { data } = await client.compareConfigs(\n null,\n {\n source_org_id: \'string\',\n source_auth_token: \'string\',\n type: \'journey\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "label": "string",\n "icon": "string",\n "rows": [\n {\n "match_status": "matched",\n "current": {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n },\n "source": {\n "type": "journey",\n "id": "string",\n "title": "string",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "updated_by": "string",\n "tags": ["string"],\n "aliases": ["string"],\n "purposes": ["string"],\n "link": "https://example.com/path",\n "active": true,\n "blueprints": [\n {\n "id": "string",\n "title": "string"\n }\n ],\n "metadata": {}\n },\n "lineage": {\n "direction": "pull",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "last_sync_job_id": "string",\n "origin": "string"\n }\n }\n ],\n "counts": {\n "matched": 0,\n "only_current": 0,\n "only_source": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `suggestMatches`\n\nRun the sync-grade heuristic match (`lookupByHeuristic` \u2014 name / slug /\nunique key) for a batch of source-org configs that have no lineage\nentry, and return candidate counterparts in the caller\'s org.\n\n`POST /v1/configs/compare/suggestions`\n\n```ts\nconst { data } = await client.suggestMatches(\n null,\n {\n source_org_id: \'string\',\n source_auth_token: \'string\',\n type: \'journey\',\n source_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "suggestions": [\n {\n "source_id": "string",\n "candidate": {\n "id": "string",\n "title": "string"\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `confirmLineage`\n\nPersist a lineage entry pairing a source-org config with a config in\nthe caller\'s org \u2014 used to confirm a heuristic suggestion from the\nCompare view. Writes to the caller org\'s lineage partition (call\n\n`POST /v1/configs/lineage`\n\n```ts\nconst { data } = await client.confirmLineage(\n null,\n {\n type: \'journey\',\n source_org_id: \'string\',\n source_id: \'string\',\n target_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "journey",\n "target_org_id": "string",\n "source_org_id": "string",\n "source_id": "string",\n "target_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "origin": "string"\n}\n```\n\n</details>\n\n---\n\n### `breakLineage`\n\nDelete a lineage entry from the caller org\'s partition (caller as sync\ntarget), identified by `type` + `source_id`. Used to break a wrong or\nstale match from the Compare view. Note: a future sync can \n\n`DELETE /v1/configs/lineage`\n\n```ts\nconst { data } = await client.breakLineage({\n type: \'example\',\n source_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "deleted": true\n}\n```\n\n</details>\n\n---\n\n### `createSyncJob`\n\nCreate a new cross-org sync job. The job is enqueued for asynchronous execution\nby the worker Lambda; the response returns the persisted job header with status\n`pending`.\n\n`POST /v1/configs/sync-jobs`\n\n```ts\nconst { data } = await client.createSyncJob(\n null,\n {\n source_org_id: \'string\',\n target_org_id: \'string\',\n target_auth_token: \'string\',\n name: \'string\',\n dry_run: false,\n include_dependencies: true,\n resources: [\n {\n type: \'string\',\n id: \'string\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listSyncJobs`\n\nList sync jobs scoped to the caller\'s organization, paginated with an opaque\ncursor. Defaults to most-recent first.\n\n`GET /v1/configs/sync-jobs`\n\n```ts\nconst { data } = await client.listSyncJobs({\n cursor: \'example\',\n size: 1,\n status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getSyncJob`\n\nFetch a single sync job by ID. Returns the job header, counts summary,\ncurrent phase pointer, and the latest activity events. Frontend polls this\nendpoint with a ramping interval.\n\n`GET /v1/configs/sync-jobs/{id}`\n\n```ts\nconst { data } = await client.getSyncJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `retrySyncJob`\n\nRetry the unresolved resources from a prior sync job: `failed` rows, plus\nrows the original run left at `pending`/`in_progress` because it stopped\nearly. Creates a new job whose scope is that `(type, \n\n`POST /v1/configs/sync-jobs/{id}/retry`\n\n```ts\nconst { data } = await client.retrySyncJob(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n payload_overrides: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `cancelSyncJob`\n\nCancel a running sync job. Marks the job `cancelled` with a `finished_at`\nso it stops being reported as in-flight, and the worker stops at its next\nbatch boundary \u2014 phases re-read the job status and a\n\n`POST /v1/configs/sync-jobs/{id}/cancel`\n\n```ts\nconst { data } = await client.cancelSyncJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "direction": "push",\n "source_org_id": "string",\n "target_org_id": "string",\n "dry_run": true,\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "succeeded": 0,\n "failed": 0,\n "skipped_unchanged": 0\n },\n "current_phase": "phase_0",\n "current_batch": {\n "index": 0,\n "of": 0,\n "level": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "events": [\n {\n "seq": 0,\n "ts": "1970-01-01T00:00:00.000Z",\n "phase": "phase_0",\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "status": "pending",\n "message": "string",\n "error": "string"\n }\n ],\n "errors_sample": [\n {\n "type": "string",\n "source_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listSyncJobResources`\n\nList the per-resource rows for a sync job. Supports filtering by status\n(e.g. `failed`) and cursor pagination. Used by the failures table and the\ndry-run plan view in the frontend.\n\n`GET /v1/configs/sync-jobs/{id}/resources`\n\n```ts\nconst { data } = await client.listSyncJobResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "type": "string",\n "source_id": "string",\n "target_id": "string",\n "title": "string",\n "status": "pending",\n "phase": "phase_0",\n "attempt": 0,\n "error": "string",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createDeleteJob`\n\nCreate a bulk-delete job for the caller\'s organization. The selected\nresources are deleted asynchronously by a worker Lambda; the response\nreturns the persisted job header with status `pending`.\n\n`POST /v1/configs/delete-jobs`\n\n```ts\nconst { data } = await client.createDeleteJob(\n null,\n {\n name: \'string\',\n resources: [\n {\n type: \'string\',\n id: \'string\',\n title: \'string\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n}\n```\n\n</details>\n\n---\n\n### `listDeleteJobs`\n\nList bulk-delete jobs scoped to the caller\'s organization, paginated\nwith an opaque cursor. Most-recent first.\n\n`GET /v1/configs/delete-jobs`\n\n```ts\nconst { data } = await client.listDeleteJobs({\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getDeleteJob`\n\nFetch a single bulk-delete job by ID. Returns the job header and counts\nsummary. Frontend polls this endpoint while the job runs.\n\n`GET /v1/configs/delete-jobs/{id}`\n\n```ts\nconst { data } = await client.getDeleteJob({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "status": "pending",\n "org_id": "string",\n "counts": {\n "total": 0,\n "pending": 0,\n "in_progress": 0,\n "deleted": 0,\n "skipped": 0,\n "failed": 0\n },\n "started_at": "1970-01-01T00:00:00.000Z",\n "finished_at": "1970-01-01T00:00:00.000Z",\n "rebuild_triggered": true\n}\n```\n\n</details>\n\n---\n\n### `listDeleteJobResources`\n\nList the per-resource rows for a delete job, cursor-paginated. Used by\nthe failures view in the frontend.\n\n`GET /v1/configs/delete-jobs/{id}/resources`\n\n```ts\nconst { data } = await client.listDeleteJobResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n cursor: \'example\',\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "next_cursor": "string",\n "results": [\n {\n "type": "string",\n "id": "string",\n "title": "string",\n "status": "pending",\n "attempt": 0,\n "error": "string",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `rebuildIndex`\n\nRebuild the configuration index for the caller\'s organization.\nFire-and-forget: invokes the async worker and returns immediately.\nA new rebuild will cancel any in-flight build (see `build_token`).\n\n`POST /v1/configs/index:rebuild`\n\n```ts\nconst { data } = await client.rebuildIndex()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "ready",\n "last_built_at": "1970-01-01T00:00:00.000Z",\n "total_items": 0,\n "build_duration_ms": 0,\n "failed_types": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `getConfigInventory`\n\nReturns a fresh inventory of an org\'s configuration resources \u2014 `{ type, id }` identities only,\nno full payloads. Calls every adapter\'s `list()` live (bypasses the 7-day DynamoDB index).\nIntended for \n\n`GET /v1/configs/inventory`\n\n```ts\nconst { data } = await client.getConfigInventory({\n include_dependency_only: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "inventory_id": "string",\n "org_id": "string",\n "indexed_at": "1970-01-01T00:00:00.000Z",\n "resources_count": 0,\n "resources": [\n {\n "type": "journey",\n "id": "string"\n }\n ],\n "skipped_types": [\n {\n "type": "string",\n "reason": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ResourceType`\n\nConfiguration resource type identifier.\nMatches blueprint-manifest-api V3 naming conventions.\n\n\n```ts\ntype 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"\n```\n\n### `ConfigTypeInfo`\n\nStatic metadata for a config type folder in the tree.\nNo downstream API calls \u2014 just type + label + icon + source API info.\n\n\n```ts\ntype ConfigTypeInfo = {\n 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"\n label: string\n icon: string\n source_api: string\n sdk_client: string\n deletable: boolean\n}\n```\n\n### `ConfigNode`\n\nSummary metadata for a single configuration item in the tree\n\n```ts\ntype ConfigNode = {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: string\n title: string\n }>\n metadata?: Record<string, unknown>\n}\n```\n\n### `ConfigListResponse`\n\nCursor-paginated list of configs for a specific type\n\n```ts\ntype ConfigListResponse = {\n 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"\n label: string\n icon: string\n total?: number\n next_cursor?: string\n results: Array<{\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }>\n}\n```\n\n### `ConfigDependenciesResponse`\n\nCursor-paginated list of configs referenced by a given config\n\n```ts\ntype ConfigDependenciesResponse = {\n total?: number\n next_cursor?: string\n results: Array<{\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }>\n}\n```\n\n### `IndexRebuildResponse`\n\nResult of an index rebuild operation\n\n```ts\ntype IndexRebuildResponse = {\n status: "ready" | "building" | "failed" | "already_building"\n last_built_at?: string // date-time\n total_items?: number\n build_duration_ms?: number\n failed_types?: string[]\n}\n```\n\n### `IndexStatusResponse`\n\nCurrent index build state\n\n```ts\ntype IndexStatusResponse = {\n status: "missing" | "building" | "ready" | "failed"\n org_id?: string\n last_built_at?: string // date-time\n total_items?: number\n build_duration_ms?: number\n}\n```\n\n### `CompareRequest`\n\nRequest body for a per-type cross-org comparison\n\n```ts\ntype CompareRequest = {\n source_org_id: string\n source_auth_token: string\n 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"\n}\n```\n\n### `CompareLineage`\n\nProvenance of a lineage-backed match\n\n```ts\ntype CompareLineage = {\n direction: "pull" | "push"\n last_synced_at?: string // date-time\n last_sync_job_id?: string\n origin?: string\n}\n```\n\n### `CompareRow`\n\nOne row of the side-by-side comparison. `matched` rows carry both\nconfigs plus lineage provenance; one-sided rows carry only the side\nthe config exists on.\n\n\n```ts\ntype CompareRow = {\n match_status: "matched" | "only_current" | "only_source"\n current?: {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }\n source?: {\n 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"\n id: string\n title: string\n updated_at?: string // date-time\n updated_by?: string\n tags?: string[]\n aliases?: string[]\n purposes?: string[]\n link?: string // uri\n active?: boolean\n blueprints?: Array<{\n id: { ... }\n title: { ... }\n }>\n metadata?: Record<string, unknown>\n }\n lineage?: {\n direction: "pull" | "push"\n last_synced_at?: string // date-time\n last_sync_job_id?: string\n origin?: string\n }\n}\n```\n\n### `CompareCounts`\n\nRow counts per match status\n\n```ts\ntype CompareCounts = {\n matched: number\n only_current: number\n only_source: number\n}\n```\n\n### `CompareResponse`\n\nSide-by-side comparison of one config type across two orgs\n\n```ts\ntype CompareResponse = {\n 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"\n label: string\n icon: string\n rows: Array<{\n match_status: "matched" | "only_current" | "only_source"\n current?: {\n type: { ... }\n id: { ... }\n title: { ... }\n updated_at?: { ... }\n updated_by?: { ... }\n tags?: { ... }\n aliases?: { ... }\n purposes?: { ... }\n link?: { ... }\n active?: { ... }\n blueprints?: { ... }\n metadata?: { ... }\n }\n source?: {\n type: { ... }\n id: { ... }\n title: { ... }\n updated_at?: { ... }\n updated_by?: { ... }\n tags?: { ... }\n aliases?: { ... }\n purposes?: { ... }\n link?: { ... }\n active?: { ... }\n blueprints?: { ... }\n metadata?: { ... }\n }\n lineage?: {\n direction: { ... }\n last_synced_at?: { ... }\n last_sync_job_id?: { ... }\n origin?: { ... }\n }\n }>\n counts: {\n matched: number\n only_current: number\n only_source: number\n }\n}\n```\n\n### `SuggestMatchesRequest`\n\nRequest body for batched heuristic match suggestions\n\n```ts\ntype SuggestMatchesRequest = {\n source_org_id: string\n source_auth_token: string\n 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"\n source_ids: string[]\n}\n```\n\n### `MatchSuggestion`\n\nHeuristic candidate for one source config (null candidate = no match)\n\n```ts\ntype MatchSuggestion = {\n source_id: string\n candidate?: {\n id: string\n title?: string\n }\n}\n```\n\n### `SuggestMatchesResponse`\n\n```ts\ntype SuggestMatchesResponse = {\n 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"\n suggestions: Array<{\n source_id: string\n candidate?: {\n id: { ... }\n title?: { ... }\n }\n }>\n}\n```\n\n### `ConfirmLineageRequest`\n\nPersist a source\u2192target lineage pairing (caller org as target)\n\n```ts\ntype ConfirmLineageRequest = {\n 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"\n source_org_id: string\n source_id: string\n target_id: string\n}\n```\n\n### `LineageEntryResponse`\n\nA persisted lineage entry\n\n```ts\ntype LineageEntryResponse = {\n 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"\n target_org_id: string\n source_org_id: string\n source_id: string\n target_id: string\n last_synced_at?: string // date-time\n origin?: string\n}\n```\n\n### `BreakLineageResponse`\n\n```ts\ntype BreakLineageResponse = {\n deleted: boolean\n}\n```\n\n### `ErrorResponse`\n\n```ts\ntype ErrorResponse = {\n status: number\n error: string\n}\n```\n\n### `SyncJobStatus`\n\nLifecycle status of a sync job. See `docs/sync/INTERFACES.md` for state\ntransitions.\n\n\n```ts\ntype SyncJobStatus = "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n```\n\n### `SyncDirection`\n\nDirection of the sync, derived from the source/target pane selection in the\nconfiguration hub UI.\n\n\n```ts\ntype SyncDirection = "push" | "pull"\n```\n\n### `SyncPhase`\n\nThree-phase orchestrator phase. `phase_0` fetches source payloads,\n`phase_a` creates/matches with topological batches, `phase_a5` resolves\nderived references, `phase_b` patches with the full ID map, `finalize`\nruns cycle-breaking finalizers.\n\n\n```ts\ntype SyncPhase = "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n```\n\n### `SyncJobResourceStatus`\n\nPer-resource status. `would_*` values are produced by dry-run jobs.\n\n\n```ts\ntype SyncJobResourceStatus = "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n```\n\n### `SyncJobRequest`\n\nRequest body for `createSyncJob`. `target_auth_token` is the destination\norg\'s auth token and MUST NOT be persisted or logged \u2014 it is `writeOnly`.\n\n\n```ts\ntype SyncJobRequest = {\n source_org_id: string\n target_org_id: string\n target_auth_token: string\n name?: string\n dry_run?: boolean\n include_dependencies?: boolean\n resources: Array<{\n type: string\n id: string\n }>\n}\n```\n\n### `SyncJobRetryRequest`\n\nOptional body for `retrySyncJob`. Defaults to retrying every unresolved\nresource of the original job (failed, pending or in_progress).\n\n\n```ts\ntype SyncJobRetryRequest = {\n payload_overrides?: Record<string, unknown>\n}\n```\n\n### `SyncJobCounts`\n\nAggregate counters by resource status.\n\n```ts\ntype SyncJobCounts = {\n total: number\n pending: number\n in_progress: number\n succeeded: number\n failed: number\n skipped_unchanged: number\n}\n```\n\n### `SyncJobEvent`\n\nActivity-log entry surfaced to the frontend. Backed by the op-log rows in\nthe index table (`SYNC#`<jobId>`#OP#`<seq>``).\n\n\n```ts\ntype SyncJobEvent = {\n seq: number\n ts: string // date-time\n phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n type?: string\n source_id?: string\n target_id?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n message?: string\n error?: string\n}\n```\n\n### `SyncJobBatch`\n\nPosition within the current topological batch for the active phase.\n\n```ts\ntype SyncJobBatch = {\n index: number\n of: number\n level: number\n}\n```\n\n### `SyncJob`\n\nSync job header as surfaced by `getSyncJob` and the create response. The\ncanonical persistence shape is described in `docs/sync/INTERFACES.md`.\n\n\n```ts\ntype SyncJob = {\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n direction: "push" | "pull"\n source_org_id: string\n target_org_id: string\n dry_run: boolean\n counts: {\n total: number\n pending: number\n in_progress: number\n succeeded: number\n failed: number\n skipped_unchanged: number\n }\n current_phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n current_batch?: {\n index: number\n of: number\n level: number\n }\n started_at: string // date-time\n finished_at?: string // date-time\n events?: Array<{\n seq: number\n ts: string // date-time\n phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n type?: string\n source_id?: string\n target_id?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n message?: string\n error?: string\n }>\n errors_sample?: Array<{\n type: string\n source_id: string\n error: string\n }>\n}\n```\n\n### `SyncJobListResponse`\n\nCursor-paginated list of sync jobs.\n\n```ts\ntype SyncJobListResponse = {\n next_cursor?: string\n results: Array<{\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n direction: "push" | "pull"\n source_org_id: string\n target_org_id: string\n dry_run: boolean\n counts: {\n total: { ... }\n pending: { ... }\n in_progress: { ... }\n succeeded: { ... }\n failed: { ... }\n skipped_unchanged: { ... }\n }\n current_phase?: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n current_batch?: {\n index: { ... }\n of: { ... }\n level: { ... }\n }\n started_at: string // date-time\n finished_at?: string // date-time\n events?: Array<{\n seq: { ... }\n ts: { ... }\n phase?: { ... }\n type?: { ... }\n source_id?: { ... }\n target_id?: { ... }\n status: { ... }\n message?: { ... }\n error?: { ... }\n }>\n errors_sample?: Array<{\n type: { ... }\n source_id: { ... }\n error: { ... }\n }>\n }>\n}\n```\n\n### `SyncJobResource`\n\nPer-resource row backed by `SyncResourcesTable`. See\n`docs/sync/INTERFACES.md` for the DDB shape.\n\n\n```ts\ntype SyncJobResource = {\n type: string\n source_id: string\n target_id?: string\n title?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n attempt: number\n error?: string\n updated_at: string // date-time\n}\n```\n\n### `SyncJobResourceListResponse`\n\nCursor-paginated list of sync job resources.\n\n```ts\ntype SyncJobResourceListResponse = {\n next_cursor?: string\n results: Array<{\n type: string\n source_id: string\n target_id?: string\n title?: string\n status: "pending" | "in_progress" | "created" | "patched" | "skipped" | "would_create" | "would_patch" | "would_skip_unchanged" | "would_match_heuristic" | "failed"\n phase: "phase_0" | "phase_a" | "phase_a5" | "phase_b" | "finalize"\n attempt: number\n error?: string\n updated_at: string // date-time\n }>\n}\n```\n\n### `DeleteJobStatus`\n\nLifecycle status of a bulk-delete job.\n\n```ts\ntype DeleteJobStatus = "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n```\n\n### `DeleteJobResourceStatus`\n\nPer-resource delete status. `skipped` is used for protected resources\nthat are intentionally not deleted (e.g. built-in schemas).\n\n\n```ts\ntype DeleteJobResourceStatus = "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n```\n\n### `DeleteJobCounts`\n\nAggregate counters by resource delete status.\n\n```ts\ntype DeleteJobCounts = {\n total: number\n pending: number\n in_progress: number\n deleted: number\n skipped: number\n failed: number\n}\n```\n\n### `DeleteJobRequest`\n\nRequest body for `createDeleteJob`.\n\n```ts\ntype DeleteJobRequest = {\n name?: string\n resources: Array<{\n type: string\n id: string\n title?: string\n }>\n}\n```\n\n### `DeleteJob`\n\nBulk-delete job header surfaced by `createDeleteJob`/`getDeleteJob`.\n\n```ts\ntype DeleteJob = {\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n org_id: string\n counts: {\n total: number\n pending: number\n in_progress: number\n deleted: number\n skipped: number\n failed: number\n }\n started_at: string // date-time\n finished_at?: string // date-time\n rebuild_triggered?: boolean\n}\n```\n\n### `DeleteJobListResponse`\n\nCursor-paginated list of delete jobs.\n\n```ts\ntype DeleteJobListResponse = {\n next_cursor?: string\n results: Array<{\n id: string\n name?: string\n status: "pending" | "in_progress" | "succeeded" | "partial" | "failed" | "cancelled"\n org_id: string\n counts: {\n total: { ... }\n pending: { ... }\n in_progress: { ... }\n deleted: { ... }\n skipped: { ... }\n failed: { ... }\n }\n started_at: string // date-time\n finished_at?: string // date-time\n rebuild_triggered?: boolean\n }>\n}\n```\n\n### `DeleteJobResource`\n\nPer-resource row for a delete job.\n\n```ts\ntype DeleteJobResource = {\n type: string\n id: string\n title?: string\n status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n attempt: number\n error?: string\n updated_at: string // date-time\n}\n```\n\n### `DeleteJobResourceListResponse`\n\nCursor-paginated list of delete job resources.\n\n```ts\ntype DeleteJobResourceListResponse = {\n next_cursor?: string\n results: Array<{\n type: string\n id: string\n title?: string\n status: "pending" | "in_progress" | "deleted" | "skipped" | "failed"\n attempt: number\n error?: string\n updated_at: string // date-time\n }>\n}\n```\n\n### `SnapshotInventoryItem`\n\nMinimal identity of a single configuration resource.\n\n```ts\ntype SnapshotInventoryItem = {\n 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"\n id: string\n}\n```\n\n### `SnapshotInventorySkippedType`\n\nA type that could not be listed during inventory collection.\n\n```ts\ntype SnapshotInventorySkippedType = {\n type: string\n reason: string\n}\n```\n\n### `ConfigInventoryResponse`\n\nFresh inventory of all configuration resources for an org.\n\n```ts\ntype ConfigInventoryResponse = {\n inventory_id: string\n org_id: string\n indexed_at: string // date-time\n resources_count: number\n resources: Array<{\n 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"\n id: string\n }>\n skipped_types: Array<{\n type: string\n reason: string\n }>\n}\n```\n';
5
+ export {
6
+ configuration_hub_default as default
7
+ };
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkMOLFG5L4cjs = require('./chunk-MOLFG5L4.cjs');
3
+ var _chunk2674L26Scjs = require('./chunk-2674L26S.cjs');
4
4
  require('./chunk-NJK5F5TF.cjs');
5
- exports. default = _chunkMOLFG5L4cjs.require_configuration_hub_runtime.call(void 0, );
5
+ exports. default = _chunk2674L26Scjs.require_configuration_hub_runtime.call(void 0, );
@@ -1,5 +1,5 @@
1
1
  import {
2
2
  require_configuration_hub_runtime
3
- } from "./chunk-WW6DVKJR.js";
3
+ } from "./chunk-TH4IM6Q6.js";
4
4
  import "./chunk-YPSWSI3M.js";
5
5
  export default require_configuration_hub_runtime();