@epilot/sdk 2.8.9 → 2.8.10

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 (121) hide show
  1. package/definitions/snapshot.json +9 -16
  2. package/dist/apis/access-token.cjs +6 -6
  3. package/dist/apis/access-token.js +1 -1
  4. package/dist/apis/address-suggestions.cjs +6 -6
  5. package/dist/apis/address-suggestions.js +1 -1
  6. package/dist/apis/address.cjs +6 -6
  7. package/dist/apis/address.js +1 -1
  8. package/dist/apis/ai-agents.cjs +6 -6
  9. package/dist/apis/ai-agents.js +1 -1
  10. package/dist/apis/app.cjs +6 -6
  11. package/dist/apis/app.js +1 -1
  12. package/dist/apis/audit-logs.cjs +6 -6
  13. package/dist/apis/audit-logs.js +1 -1
  14. package/dist/apis/automation.cjs +6 -6
  15. package/dist/apis/automation.js +1 -1
  16. package/dist/apis/billing.cjs +6 -6
  17. package/dist/apis/billing.js +1 -1
  18. package/dist/apis/blueprint-manifest.cjs +6 -6
  19. package/dist/apis/blueprint-manifest.js +1 -1
  20. package/dist/apis/calendar.cjs +6 -6
  21. package/dist/apis/calendar.js +1 -1
  22. package/dist/apis/configuration-hub.cjs +6 -6
  23. package/dist/apis/configuration-hub.js +1 -1
  24. package/dist/apis/consent.cjs +6 -6
  25. package/dist/apis/consent.js +1 -1
  26. package/dist/apis/customer-portal.cjs +6 -6
  27. package/dist/apis/customer-portal.js +1 -1
  28. package/dist/apis/dashboard.cjs +6 -6
  29. package/dist/apis/dashboard.js +1 -1
  30. package/dist/apis/data-governance.cjs +6 -6
  31. package/dist/apis/data-governance.js +1 -1
  32. package/dist/apis/deduplication.cjs +6 -6
  33. package/dist/apis/deduplication.js +1 -1
  34. package/dist/apis/design.cjs +6 -6
  35. package/dist/apis/design.js +1 -1
  36. package/dist/apis/document.cjs +6 -6
  37. package/dist/apis/document.js +1 -1
  38. package/dist/apis/email-settings.cjs +6 -6
  39. package/dist/apis/email-settings.js +1 -1
  40. package/dist/apis/email-template.cjs +6 -6
  41. package/dist/apis/email-template.js +1 -1
  42. package/dist/apis/entity-mapping.cjs +6 -6
  43. package/dist/apis/entity-mapping.js +1 -1
  44. package/dist/apis/entity.cjs +6 -6
  45. package/dist/apis/entity.js +1 -1
  46. package/dist/apis/environments.cjs +6 -6
  47. package/dist/apis/environments.js +1 -1
  48. package/dist/apis/event-catalog.cjs +6 -6
  49. package/dist/apis/event-catalog.js +1 -1
  50. package/dist/apis/file.cjs +6 -6
  51. package/dist/apis/file.js +1 -1
  52. package/dist/apis/iban.cjs +6 -6
  53. package/dist/apis/iban.js +1 -1
  54. package/dist/apis/integration-toolkit.cjs +6 -6
  55. package/dist/apis/integration-toolkit.js +1 -1
  56. package/dist/apis/journey.cjs +6 -6
  57. package/dist/apis/journey.js +1 -1
  58. package/dist/apis/kanban.cjs +6 -6
  59. package/dist/apis/kanban.js +1 -1
  60. package/dist/apis/message.cjs +6 -6
  61. package/dist/apis/message.js +1 -1
  62. package/dist/apis/metering.cjs +6 -6
  63. package/dist/apis/metering.js +1 -1
  64. package/dist/apis/notes.cjs +6 -6
  65. package/dist/apis/notes.js +1 -1
  66. package/dist/apis/notification.cjs +6 -6
  67. package/dist/apis/notification.js +1 -1
  68. package/dist/apis/organization.cjs +6 -6
  69. package/dist/apis/organization.js +1 -1
  70. package/dist/apis/partner-directory.cjs +6 -6
  71. package/dist/apis/partner-directory.js +1 -1
  72. package/dist/apis/permissions.cjs +6 -6
  73. package/dist/apis/permissions.js +1 -1
  74. package/dist/apis/pricing-tier.cjs +6 -6
  75. package/dist/apis/pricing-tier.js +1 -1
  76. package/dist/apis/pricing.cjs +6 -6
  77. package/dist/apis/pricing.js +1 -1
  78. package/dist/apis/purpose.cjs +6 -6
  79. package/dist/apis/purpose.js +1 -1
  80. package/dist/apis/query.cjs +6 -6
  81. package/dist/apis/query.js +1 -1
  82. package/dist/apis/sandbox.cjs +6 -6
  83. package/dist/apis/sandbox.js +1 -1
  84. package/dist/apis/sharing.cjs +6 -6
  85. package/dist/apis/sharing.js +1 -1
  86. package/dist/apis/snapshot.cjs +6 -6
  87. package/dist/apis/snapshot.d.cts +2 -2
  88. package/dist/apis/snapshot.d.ts +2 -2
  89. package/dist/apis/snapshot.js +1 -1
  90. package/dist/apis/submission.cjs +6 -6
  91. package/dist/apis/submission.js +1 -1
  92. package/dist/apis/target.cjs +6 -6
  93. package/dist/apis/target.js +1 -1
  94. package/dist/apis/targeting.cjs +6 -6
  95. package/dist/apis/targeting.js +1 -1
  96. package/dist/apis/template-variables.cjs +6 -6
  97. package/dist/apis/template-variables.js +1 -1
  98. package/dist/apis/user.cjs +6 -6
  99. package/dist/apis/user.js +1 -1
  100. package/dist/apis/validation-rules.cjs +6 -6
  101. package/dist/apis/validation-rules.js +1 -1
  102. package/dist/apis/webhooks.cjs +6 -6
  103. package/dist/apis/webhooks.js +1 -1
  104. package/dist/apis/workflow-definition.cjs +6 -6
  105. package/dist/apis/workflow-definition.js +1 -1
  106. package/dist/apis/workflow.cjs +6 -6
  107. package/dist/apis/workflow.js +1 -1
  108. package/dist/{chunk-VMKT7UQS.js → chunk-H5BH4GQQ.js} +1 -1
  109. package/dist/{chunk-4GI6KGKZ.cjs → chunk-OMZ2LWNR.cjs} +1 -1
  110. package/dist/index.cjs +8 -8
  111. package/dist/index.d.cts +1 -1
  112. package/dist/index.d.ts +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/snapshot-HFVQTHYF.cjs +7 -0
  115. package/dist/snapshot-Y6A7QUYS.js +7 -0
  116. package/dist/{snapshot.d-D5z6-hzE.d.cts → snapshot.d-CPTXg4xN.d.cts} +24 -34
  117. package/dist/{snapshot.d-D5z6-hzE.d.ts → snapshot.d-CPTXg4xN.d.ts} +24 -34
  118. package/docs/snapshot.md +13 -15
  119. package/package.json +1 -1
  120. package/dist/snapshot-6CCO4NYL.js +0 -7
  121. package/dist/snapshot-GWB56VPP.cjs +0 -7
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-VMKT7UQS.js";
9
+ } from "../chunk-H5BH4GQQ.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/workflow-definition.ts
@@ -6,25 +6,25 @@ var _chunkQNZPOA54cjs = require('../chunk-QNZPOA54.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4GI6KGKZcjs = require('../chunk-4GI6KGKZ.cjs');
9
+ var _chunkOMZ2LWNRcjs = require('../chunk-OMZ2LWNR.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/workflow.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkQNZPOA54cjs.require_workflow_runtime.call(void 0, );
15
- return _chunk4GI6KGKZcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkOMZ2LWNRcjs.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 = _chunk4GI6KGKZcjs.createApiClient.call(void 0, { definition: def, apiName: "workflow" });
21
+ _instance = _chunkOMZ2LWNRcjs.createApiClient.call(void 0, { definition: def, apiName: "workflow" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunk4GI6KGKZcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkOMZ2LWNRcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunk4GI6KGKZcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "workflow" }),
27
+ createClient: () => _chunkOMZ2LWNRcjs.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 = _chunk4GI6KGKZcjs.authorize; exports.createClient = createClient; exports.getClient = getClient; exports.workflow = workflow;
38
+ exports.authorize = _chunkOMZ2LWNRcjs.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-VMKT7UQS.js";
9
+ } from "../chunk-H5BH4GQQ.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/workflow.ts
@@ -72,7 +72,7 @@ var globImport_docs = __glob({
72
72
  "./docs/query.json": () => import("./query-RJ4M25PA.js"),
73
73
  "./docs/sandbox.json": () => import("./sandbox-L2SOOGGR.js"),
74
74
  "./docs/sharing.json": () => import("./sharing-MNDABPL7.js"),
75
- "./docs/snapshot.json": () => import("./snapshot-6CCO4NYL.js"),
75
+ "./docs/snapshot.json": () => import("./snapshot-Y6A7QUYS.js"),
76
76
  "./docs/submission.json": () => import("./submission-7BISSPO6.js"),
77
77
  "./docs/target.json": () => import("./target-5MKRXCHX.js"),
78
78
  "./docs/targeting.json": () => import("./targeting-X4Y2ODBT.js"),
@@ -72,7 +72,7 @@ var globImport_docs = _chunkNJK5F5TFcjs.__glob.call(void 0, {
72
72
  "./docs/query.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./query-JSDB2F2U.cjs"))),
73
73
  "./docs/sandbox.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./sandbox-2KN4X66E.cjs"))),
74
74
  "./docs/sharing.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./sharing-MR7ANOST.cjs"))),
75
- "./docs/snapshot.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./snapshot-GWB56VPP.cjs"))),
75
+ "./docs/snapshot.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./snapshot-HFVQTHYF.cjs"))),
76
76
  "./docs/submission.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./submission-Q24BU4GS.cjs"))),
77
77
  "./docs/target.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./target-3RS5BN2B.cjs"))),
78
78
  "./docs/targeting.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./targeting-WC62BBZN.cjs"))),
package/dist/index.cjs CHANGED
@@ -158,7 +158,7 @@ var _chunkDVM27A7Ecjs = require('./chunk-DVM27A7E.cjs');
158
158
 
159
159
 
160
160
 
161
- var _chunk4GI6KGKZcjs = require('./chunk-4GI6KGKZ.cjs');
161
+ var _chunkOMZ2LWNRcjs = require('./chunk-OMZ2LWNR.cjs');
162
162
 
163
163
 
164
164
  var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
@@ -225,7 +225,7 @@ var resolveClient = (params) => {
225
225
  }
226
226
  if (!entry.instance) {
227
227
  const definition = entry.loader();
228
- entry.instance = _chunk4GI6KGKZcjs.createApiClient.call(void 0, {
228
+ entry.instance = _chunkOMZ2LWNRcjs.createApiClient.call(void 0, {
229
229
  definition,
230
230
  token: state.token,
231
231
  headers: state.globalHeaders,
@@ -258,7 +258,7 @@ var resetAllClients = (registry) => {
258
258
  };
259
259
 
260
260
  // src/apis/_registry.ts
261
- var expandDef = (mod) => _chunk4GI6KGKZcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
261
+ var expandDef = (mod) => _chunkOMZ2LWNRcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
262
262
  var registerBuiltinApis = (registry) => {
263
263
  registerApi({
264
264
  registry,
@@ -601,9 +601,9 @@ var createSDK = () => {
601
601
  const available = [...registry.keys()].join(", ");
602
602
  throw new Error(`Unknown API: "${name}". Available: ${available}`);
603
603
  }
604
- return _chunk4GI6KGKZcjs.createApiHandle.call(void 0, {
604
+ return _chunkOMZ2LWNRcjs.createApiHandle.call(void 0, {
605
605
  resolveClient: () => resolveClient({ registry, name, state }),
606
- createClient: () => _chunk4GI6KGKZcjs.createApiClient.call(void 0, { definition: entry.loader(), apiName: name }),
606
+ createClient: () => _chunkOMZ2LWNRcjs.createApiClient.call(void 0, { definition: entry.loader(), apiName: name }),
607
607
  apiName: name
608
608
  });
609
609
  };
@@ -651,9 +651,9 @@ var createSDK = () => {
651
651
  return interceptorUse;
652
652
  }
653
653
  case "help":
654
- return (apiName) => _chunk4GI6KGKZcjs.help.call(void 0, apiName);
654
+ return (apiName) => _chunkOMZ2LWNRcjs.help.call(void 0, apiName);
655
655
  case "openapi":
656
- return (apiName) => _chunk4GI6KGKZcjs.openapi.call(void 0, apiName);
656
+ return (apiName) => _chunkOMZ2LWNRcjs.openapi.call(void 0, apiName);
657
657
  case "then":
658
658
  case "catch":
659
659
  case "finally":
@@ -683,4 +683,4 @@ var epilot = createSDK();
683
683
 
684
684
 
685
685
 
686
- exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize = _chunk4GI6KGKZcjs.authorize; exports.createSDK = createSDK; exports.epilot = epilot; exports.help = _chunk4GI6KGKZcjs.help; exports.openapi = _chunk4GI6KGKZcjs.openapi;
686
+ exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize = _chunkOMZ2LWNRcjs.authorize; exports.createSDK = createSDK; exports.epilot = epilot; exports.help = _chunkOMZ2LWNRcjs.help; exports.openapi = _chunkOMZ2LWNRcjs.openapi;
package/dist/index.d.cts CHANGED
@@ -45,7 +45,7 @@ import { C as Client$C } from './purpose.d-CbIYfTua.cjs';
45
45
  import { C as Client$D } from './query.d-Cmp78IhZ.cjs';
46
46
  import { C as Client$E } from './sandbox.d-BdbOFzDu.cjs';
47
47
  import { C as Client$F } from './sharing.d-sOXq-gtz.cjs';
48
- import { C as Client$G } from './snapshot.d-D5z6-hzE.cjs';
48
+ import { C as Client$G } from './snapshot.d-CPTXg4xN.cjs';
49
49
  import { C as Client$H } from './submission.d-BamwfhXw.cjs';
50
50
  import { C as Client$I } from './targeting.d-0rNF7ErD.cjs';
51
51
  import { C as Client$J } from './template-variables.d-Ble9TSBa.cjs';
package/dist/index.d.ts CHANGED
@@ -45,7 +45,7 @@ import { C as Client$C } from './purpose.d-CbIYfTua.js';
45
45
  import { C as Client$D } from './query.d-Cmp78IhZ.js';
46
46
  import { C as Client$E } from './sandbox.d-BdbOFzDu.js';
47
47
  import { C as Client$F } from './sharing.d-sOXq-gtz.js';
48
- import { C as Client$G } from './snapshot.d-D5z6-hzE.js';
48
+ import { C as Client$G } from './snapshot.d-CPTXg4xN.js';
49
49
  import { C as Client$H } from './submission.d-BamwfhXw.js';
50
50
  import { C as Client$I } from './targeting.d-0rNF7ErD.js';
51
51
  import { C as Client$J } from './template-variables.d-Ble9TSBa.js';
package/dist/index.js CHANGED
@@ -158,7 +158,7 @@ import {
158
158
  expand,
159
159
  help,
160
160
  openapi
161
- } from "./chunk-VMKT7UQS.js";
161
+ } from "./chunk-H5BH4GQQ.js";
162
162
  import {
163
163
  __require
164
164
  } from "./chunk-YPSWSI3M.js";
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
2
+
3
+ // src/docs/snapshot.json
4
+ var snapshot_default = '# Snapshot API\n\n- **Base URL:** `https://snapshot.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/snapshot](https://docs.epilot.io/api/snapshot)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.snapshot.createSnapshot(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/snapshot\'\n\nconst snapshotClient = getClient()\nauthorize(snapshotClient, () => \'<token>\')\nconst { data } = await snapshotClient.createSnapshot(...)\n```\n\n## Operations\n\n**Snapshots**\n- [`createSnapshot`](#createsnapshot)\n- [`listSnapshots`](#listsnapshots)\n- [`captureOrgSnapshot`](#captureorgsnapshot)\n- [`getSnapshot`](#getsnapshot)\n- [`deleteSnapshot`](#deletesnapshot)\n- [`restoreSnapshot`](#restoresnapshot)\n- [`listSnapshotResources`](#listsnapshotresources)\n- [`getSnapshotResource`](#getsnapshotresource)\n- [`listDependencies`](#listdependencies)\n\n**Schemas**\n- [`Error`](#error)\n- [`EmptyInventoryError`](#emptyinventoryerror)\n- [`ResourceRef`](#resourceref)\n- [`SnapshotResourceSummary`](#snapshotresourcesummary)\n- [`SnapshotResourceList`](#snapshotresourcelist)\n- [`SnapshotResourceDetail`](#snapshotresourcedetail)\n- [`CreateSnapshotRequest`](#createsnapshotrequest)\n- [`CreateOrgSnapshotRequest`](#createorgsnapshotrequest)\n- [`CreateSnapshotResponse`](#createsnapshotresponse)\n- [`RestoreSnapshotRequest`](#restoresnapshotrequest)\n- [`RestoreSnapshotResponse`](#restoresnapshotresponse)\n- [`Snapshot`](#snapshot)\n- [`Operation`](#operation)\n- [`SkippedResource`](#skippedresource)\n- [`CallerIdentity`](#calleridentity)\n\n### `createSnapshot`\n\nCreate a new snapshot of the given resources. Async \u2014 returns immediately\nwith a snapshot ID; client polls `getSnapshot` until `create.status`\nmoves from `in_progress` to `completed` or `failed`.\n\n`POST /v1/snapshots`\n\n```ts\nconst { data } = await client.createSnapshot(\n null,\n {\n name: \'string\',\n description: \'string\',\n trigger: \'manual\',\n blueprint_instance_id: \'string\',\n resources: [\n {\n type: \'string\',\n id: \'string\'\n }\n ]\n },\n)\n```\n\n---\n\n### `listSnapshots`\n\nList snapshots for the caller\'s organization, newest first.\n\n`GET /v1/snapshots`\n\n```ts\nconst { data } = await client.listSnapshots({\n cursor: \'example\',\n size: 1,\n resource: [\'...\'],\n trigger: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "page_size": 0,\n "cursor": "string",\n "results": [\n {\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `captureOrgSnapshot`\n\nSnapshot the caller\'s whole organization now. Fetches a fresh inventory\nof the org\'s configuration resources from configuration-hub-api, persists\nit as an inventory artifact, and starts a `scope: "org\n\n`POST /v1/snapshots:capture-org`\n\n```ts\nconst { data } = await client.captureOrgSnapshot(\n null,\n {\n name: \'string\',\n retention: {\n value: 1,\n unit: \'days\'\n },\n excluded_types: [\'string\']\n },\n)\n```\n\n---\n\n### `getSnapshot`\n\nFetch a snapshot\'s metadata. Poll this endpoint to track create/restore progress.\n\n`GET /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.getSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteSnapshot`\n\nDelete a snapshot\'s metadata and S3 manifest.\n\n`DELETE /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.deleteSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `restoreSnapshot`\n\nRestore a snapshot to the org. Async \u2014 returns immediately; client polls\n`getSnapshot` until the latest entry in `restores` moves from\n`in_progress` to one of `completed | partial | failed`.\n\n`POST /v1/snapshots/{id}:restore`\n\n```ts\nconst { data } = await client.restoreSnapshot(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n preserve_modified: false,\n exclude_target_ids: [\'string\']\n },\n)\n```\n\n---\n\n### `listSnapshotResources`\n\nList the resources captured in this snapshot. Returns lightweight\nidentity fields per resource \u2014 payloads are fetched via the\nsingle-resource endpoint when needed.\n\n`GET /v1/snapshots/{id}/resources`\n\n```ts\nconst { data } = await client.listSnapshotResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "resources": [\n {\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getSnapshotResource`\n\nFetch one captured resource with its full payload. For UI views\nthat diff the captured state against the current destination.\n\n`GET /v1/snapshots/{id}/resources/{lineage_id}`\n\n```ts\nconst { data } = await client.getSnapshotResource({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n lineage_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string",\n "captured": {}\n}\n```\n\n</details>\n\n---\n\n### `listDependencies`\n\nWalk the dependency tree for a set of resources and return the full\ntransitive closure, topologically sorted.\n\n`POST /v1/snapshots:list-dependencies`\n\n```ts\nconst { data } = await client.listDependencies(\n null,\n {\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 "dependencies": [\n {\n "type": "string",\n "id": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\n```ts\ntype Error = {\n status: number\n error: string\n}\n```\n\n### `EmptyInventoryError`\n\nReturned (422) when the org inventory contains no capturable resources\nafter filtering out sensitive, unsupported, and excluded types. The\n`skipped_types` array explains why every type was dropped.\n\n\n```ts\ntype EmptyInventoryError = {\n message: string\n skipped_types: Array<{\n type: string\n reason: string\n }>\n}\n```\n\n### `ResourceRef`\n\n```ts\ntype ResourceRef = {\n type: string\n id: string\n}\n```\n\n### `SnapshotResourceSummary`\n\nLightweight identity for a captured resource. Returned by\n`listSnapshotResources`; the full payload is fetched separately via\n`getSnapshotResource` when needed.\n\n\n```ts\ntype SnapshotResourceSummary = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n}\n```\n\n### `SnapshotResourceList`\n\n```ts\ntype SnapshotResourceList = {\n resources: Array<{\n lineage_id: string\n target_id: string\n type: string\n name?: string\n }>\n}\n```\n\n### `SnapshotResourceDetail`\n\nA single captured resource with its full payload. The identity fields\nmatch `SnapshotResourceSummary`; the `captured` payload is the\npre-install state at snapshot time.\n\n\n```ts\ntype SnapshotResourceDetail = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n captured: Record<string, unknown>\n}\n```\n\n### `CreateSnapshotRequest`\n\n```ts\ntype CreateSnapshotRequest = {\n name: string\n description?: string\n trigger?: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resources: Array<{\n type: string\n id: string\n }>\n}\n```\n\n### `CreateOrgSnapshotRequest`\n\nRequest body for `captureOrgSnapshot`. All fields optional \u2014 an empty body\nsnapshots the whole org with a default name and the 90-day default TTL.\n\n\n```ts\ntype CreateOrgSnapshotRequest = {\n name?: string\n retention?: {\n value: number\n unit: "days" | "weeks" | "months"\n }\n excluded_types?: string[]\n}\n```\n\n### `CreateSnapshotResponse`\n\n```ts\ntype CreateSnapshotResponse = {\n id: string\n name: string\n status: "creating"\n created_at: string // date-time\n}\n```\n\n### `RestoreSnapshotRequest`\n\nApply a captured snapshot to its source org. All filters default to the\nopen setting (apply everything), which keeps Config Hub\'s manual-restore\nsemantics unchanged.\n\n\n```ts\ntype RestoreSnapshotRequest = {\n preserve_modified?: boolean\n exclude_target_ids?: string[]\n}\n```\n\n### `RestoreSnapshotResponse`\n\n```ts\ntype RestoreSnapshotResponse = {\n id: string\n status: "restoring"\n}\n```\n\n### `Snapshot`\n\n```ts\ntype Snapshot = {\n id: string\n org_id: string\n name: string\n description?: string\n trigger: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resource_counts: Record<string, number>\n create: {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n target_id: { ... }\n reason: { ... }\n }>\n }\n restores: Array<{\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n target_id: { ... }\n reason: { ... }\n }>\n }>\n matched_count?: number\n scope?: "selection" | "org"\n expires_at?: string // date-time\n capture_summary?: {\n total: number\n captured: number\n skipped: number\n failed: number\n }\n}\n```\n\n### `Operation`\n\n```ts\ntype Operation = {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: string\n user_id?: string\n token_id?: string\n }\n skipped?: Array<{\n target_id: string\n reason: "modified"\n }>\n}\n```\n\n### `SkippedResource`\n\n```ts\ntype SkippedResource = {\n target_id: string\n reason: "modified"\n}\n```\n\n### `CallerIdentity`\n\n```ts\ntype CallerIdentity = {\n name: string\n user_id?: string\n token_id?: string\n}\n```\n';
5
+
6
+
7
+ exports.default = snapshot_default;
@@ -0,0 +1,7 @@
1
+ import "./chunk-YPSWSI3M.js";
2
+
3
+ // src/docs/snapshot.json
4
+ var snapshot_default = '# Snapshot API\n\n- **Base URL:** `https://snapshot.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/snapshot](https://docs.epilot.io/api/snapshot)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.snapshot.createSnapshot(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/snapshot\'\n\nconst snapshotClient = getClient()\nauthorize(snapshotClient, () => \'<token>\')\nconst { data } = await snapshotClient.createSnapshot(...)\n```\n\n## Operations\n\n**Snapshots**\n- [`createSnapshot`](#createsnapshot)\n- [`listSnapshots`](#listsnapshots)\n- [`captureOrgSnapshot`](#captureorgsnapshot)\n- [`getSnapshot`](#getsnapshot)\n- [`deleteSnapshot`](#deletesnapshot)\n- [`restoreSnapshot`](#restoresnapshot)\n- [`listSnapshotResources`](#listsnapshotresources)\n- [`getSnapshotResource`](#getsnapshotresource)\n- [`listDependencies`](#listdependencies)\n\n**Schemas**\n- [`Error`](#error)\n- [`EmptyInventoryError`](#emptyinventoryerror)\n- [`ResourceRef`](#resourceref)\n- [`SnapshotResourceSummary`](#snapshotresourcesummary)\n- [`SnapshotResourceList`](#snapshotresourcelist)\n- [`SnapshotResourceDetail`](#snapshotresourcedetail)\n- [`CreateSnapshotRequest`](#createsnapshotrequest)\n- [`CreateOrgSnapshotRequest`](#createorgsnapshotrequest)\n- [`CreateSnapshotResponse`](#createsnapshotresponse)\n- [`RestoreSnapshotRequest`](#restoresnapshotrequest)\n- [`RestoreSnapshotResponse`](#restoresnapshotresponse)\n- [`Snapshot`](#snapshot)\n- [`Operation`](#operation)\n- [`SkippedResource`](#skippedresource)\n- [`CallerIdentity`](#calleridentity)\n\n### `createSnapshot`\n\nCreate a new snapshot of the given resources. Async \u2014 returns immediately\nwith a snapshot ID; client polls `getSnapshot` until `create.status`\nmoves from `in_progress` to `completed` or `failed`.\n\n`POST /v1/snapshots`\n\n```ts\nconst { data } = await client.createSnapshot(\n null,\n {\n name: \'string\',\n description: \'string\',\n trigger: \'manual\',\n blueprint_instance_id: \'string\',\n resources: [\n {\n type: \'string\',\n id: \'string\'\n }\n ]\n },\n)\n```\n\n---\n\n### `listSnapshots`\n\nList snapshots for the caller\'s organization, newest first.\n\n`GET /v1/snapshots`\n\n```ts\nconst { data } = await client.listSnapshots({\n cursor: \'example\',\n size: 1,\n resource: [\'...\'],\n trigger: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "page_size": 0,\n "cursor": "string",\n "results": [\n {\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `captureOrgSnapshot`\n\nSnapshot the caller\'s whole organization now. Fetches a fresh inventory\nof the org\'s configuration resources from configuration-hub-api, persists\nit as an inventory artifact, and starts a `scope: "org\n\n`POST /v1/snapshots:capture-org`\n\n```ts\nconst { data } = await client.captureOrgSnapshot(\n null,\n {\n name: \'string\',\n retention: {\n value: 1,\n unit: \'days\'\n },\n excluded_types: [\'string\']\n },\n)\n```\n\n---\n\n### `getSnapshot`\n\nFetch a snapshot\'s metadata. Poll this endpoint to track create/restore progress.\n\n`GET /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.getSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "target_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteSnapshot`\n\nDelete a snapshot\'s metadata and S3 manifest.\n\n`DELETE /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.deleteSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `restoreSnapshot`\n\nRestore a snapshot to the org. Async \u2014 returns immediately; client polls\n`getSnapshot` until the latest entry in `restores` moves from\n`in_progress` to one of `completed | partial | failed`.\n\n`POST /v1/snapshots/{id}:restore`\n\n```ts\nconst { data } = await client.restoreSnapshot(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n preserve_modified: false,\n exclude_target_ids: [\'string\']\n },\n)\n```\n\n---\n\n### `listSnapshotResources`\n\nList the resources captured in this snapshot. Returns lightweight\nidentity fields per resource \u2014 payloads are fetched via the\nsingle-resource endpoint when needed.\n\n`GET /v1/snapshots/{id}/resources`\n\n```ts\nconst { data } = await client.listSnapshotResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "resources": [\n {\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getSnapshotResource`\n\nFetch one captured resource with its full payload. For UI views\nthat diff the captured state against the current destination.\n\n`GET /v1/snapshots/{id}/resources/{lineage_id}`\n\n```ts\nconst { data } = await client.getSnapshotResource({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n lineage_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string",\n "captured": {}\n}\n```\n\n</details>\n\n---\n\n### `listDependencies`\n\nWalk the dependency tree for a set of resources and return the full\ntransitive closure, topologically sorted.\n\n`POST /v1/snapshots:list-dependencies`\n\n```ts\nconst { data } = await client.listDependencies(\n null,\n {\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 "dependencies": [\n {\n "type": "string",\n "id": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\n```ts\ntype Error = {\n status: number\n error: string\n}\n```\n\n### `EmptyInventoryError`\n\nReturned (422) when the org inventory contains no capturable resources\nafter filtering out sensitive, unsupported, and excluded types. The\n`skipped_types` array explains why every type was dropped.\n\n\n```ts\ntype EmptyInventoryError = {\n message: string\n skipped_types: Array<{\n type: string\n reason: string\n }>\n}\n```\n\n### `ResourceRef`\n\n```ts\ntype ResourceRef = {\n type: string\n id: string\n}\n```\n\n### `SnapshotResourceSummary`\n\nLightweight identity for a captured resource. Returned by\n`listSnapshotResources`; the full payload is fetched separately via\n`getSnapshotResource` when needed.\n\n\n```ts\ntype SnapshotResourceSummary = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n}\n```\n\n### `SnapshotResourceList`\n\n```ts\ntype SnapshotResourceList = {\n resources: Array<{\n lineage_id: string\n target_id: string\n type: string\n name?: string\n }>\n}\n```\n\n### `SnapshotResourceDetail`\n\nA single captured resource with its full payload. The identity fields\nmatch `SnapshotResourceSummary`; the `captured` payload is the\npre-install state at snapshot time.\n\n\n```ts\ntype SnapshotResourceDetail = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n captured: Record<string, unknown>\n}\n```\n\n### `CreateSnapshotRequest`\n\n```ts\ntype CreateSnapshotRequest = {\n name: string\n description?: string\n trigger?: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resources: Array<{\n type: string\n id: string\n }>\n}\n```\n\n### `CreateOrgSnapshotRequest`\n\nRequest body for `captureOrgSnapshot`. All fields optional \u2014 an empty body\nsnapshots the whole org with a default name and the 90-day default TTL.\n\n\n```ts\ntype CreateOrgSnapshotRequest = {\n name?: string\n retention?: {\n value: number\n unit: "days" | "weeks" | "months"\n }\n excluded_types?: string[]\n}\n```\n\n### `CreateSnapshotResponse`\n\n```ts\ntype CreateSnapshotResponse = {\n id: string\n name: string\n status: "creating"\n created_at: string // date-time\n}\n```\n\n### `RestoreSnapshotRequest`\n\nApply a captured snapshot to its source org. All filters default to the\nopen setting (apply everything), which keeps Config Hub\'s manual-restore\nsemantics unchanged.\n\n\n```ts\ntype RestoreSnapshotRequest = {\n preserve_modified?: boolean\n exclude_target_ids?: string[]\n}\n```\n\n### `RestoreSnapshotResponse`\n\n```ts\ntype RestoreSnapshotResponse = {\n id: string\n status: "restoring"\n}\n```\n\n### `Snapshot`\n\n```ts\ntype Snapshot = {\n id: string\n org_id: string\n name: string\n description?: string\n trigger: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resource_counts: Record<string, number>\n create: {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n target_id: { ... }\n reason: { ... }\n }>\n }\n restores: Array<{\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n target_id: { ... }\n reason: { ... }\n }>\n }>\n matched_count?: number\n scope?: "selection" | "org"\n expires_at?: string // date-time\n capture_summary?: {\n total: number\n captured: number\n skipped: number\n failed: number\n }\n}\n```\n\n### `Operation`\n\n```ts\ntype Operation = {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: string\n user_id?: string\n token_id?: string\n }\n skipped?: Array<{\n target_id: string\n reason: "modified"\n }>\n}\n```\n\n### `SkippedResource`\n\n```ts\ntype SkippedResource = {\n target_id: string\n reason: "modified"\n}\n```\n\n### `CallerIdentity`\n\n```ts\ntype CallerIdentity = {\n name: string\n user_id?: string\n token_id?: string\n}\n```\n';
5
+ export {
6
+ snapshot_default as default
7
+ };
@@ -109,18 +109,19 @@ declare namespace Components {
109
109
  started_at: string; // date-time
110
110
  completed_at?: string; // date-time
111
111
  /**
112
- * `partial` indicates the operation completed but skipped at least
113
- * one resource see `skipped`. Only populated by restores triggered
114
- * with `mode: 'preserve_edits'`.
112
+ * `partial` indicates the operation completed but snapshot-api
113
+ * skipped at least one captured resource via its own drift check
114
+ * (see `skipped`).
115
115
  *
116
116
  */
117
117
  status: "in_progress" | "completed" | "partial" | "failed";
118
118
  error?: string;
119
119
  triggered_by: CallerIdentity;
120
120
  /**
121
- * Per-resource skips, populated only for restores triggered with
122
- * `mode: 'preserve_edits'`. Empty / absent for Config Hub's
123
- * default overwrite-mode restores.
121
+ * Captured resources snapshot-api elected to skip currently
122
+ * only drift detections (`preserve_modified: true`). Caller-
123
+ * supplied `exclude_target_ids` skips are NOT echoed here; the
124
+ * caller built the list, the caller knows.
124
125
  *
125
126
  */
126
127
  skipped?: SkippedResource[];
@@ -133,37 +134,27 @@ declare namespace Components {
133
134
  id: string;
134
135
  }
135
136
  /**
136
- * Skipped resources surface under `Operation.skipped`. All filters default
137
- * to the open setting (apply everything), which keeps Config Hub's manual-
138
- * restore semantics unchanged.
137
+ * Apply a captured snapshot to its source org. All filters default to the
138
+ * open setting (apply everything), which keeps Config Hub's manual-restore
139
+ * semantics unchanged.
139
140
  *
140
141
  */
141
142
  export interface RestoreSnapshotRequest {
142
143
  /**
143
144
  * When `true`, skip captured resources whose live payload's content
144
145
  * fingerprint diverges from the capture-time fingerprint stored on
145
- * the manifest entry. Self-contained: snapshot-api fetches and hashes
146
- * the live payload itself; no cross-service lookup. Surfaces under
146
+ * the manifest entry. snapshot-api fetches the live payload and
147
+ * hashes it itself; no cross-service lookup. Surfaces under
147
148
  * `Operation.skipped` with `reason: 'modified'`. Legacy snapshots
148
149
  * captured before fingerprints were stored fail open (applied).
149
150
  *
150
151
  */
151
152
  preserve_modified?: boolean;
152
- /**
153
- * Deprecated. Accepted for back-compat but treated as a no-op.
154
- * Co-ownership is now expressed via `exclude_target_ids` — the caller
155
- * (typically blueprint-manifest-api) computes which targets to skip
156
- * from its own data and passes the list. snapshot-api no longer
157
- * reaches into BMA's lineage table.
158
- *
159
- */
160
- preserve_co_owned?: boolean;
161
153
  /**
162
154
  * Target ids the caller has decided not to restore. snapshot-api
163
- * applies the manifest minus these ids and reports them under
164
- * `Operation.skipped` with `reason: 'co_owned'` (the only current
165
- * producer of exclude lists is BMA's revert flow, which uses this to
166
- * honor multi-blueprint ownership).
155
+ * applies the manifest minus these ids. Drops are silent — not
156
+ * echoed in `Operation.skipped` because the caller supplied the
157
+ * list and already knows.
167
158
  *
168
159
  */
169
160
  exclude_target_ids?: string[];
@@ -173,16 +164,15 @@ declare namespace Components {
173
164
  status: "restoring";
174
165
  }
175
166
  export interface SkippedResource {
176
- lineage_id: string;
167
+ target_id: string;
177
168
  /**
178
- * - `modified` — current destination payload's fingerprint differs
179
- * from the install-time fingerprint on the lineage row.
180
- * - `co_owned` lineage row has ≥2 distinct
181
- * `blueprint_instance_ids`; restoring would unilaterally affect
182
- * another blueprint instance's contribution.
169
+ * - `modified` — live destination payload's content fingerprint
170
+ * differs from the capture-time fingerprint stored on the
171
+ * manifest entry. Only set when the restore was requested with
172
+ * `preserve_modified: true`.
183
173
  *
184
174
  */
185
- reason: "modified" | "co_owned";
175
+ reason: "modified";
186
176
  }
187
177
  export interface Snapshot {
188
178
  id: string;
@@ -410,9 +400,9 @@ declare namespace Paths {
410
400
  }
411
401
  namespace RestoreSnapshot {
412
402
  export type RequestBody = /**
413
- * Skipped resources surface under `Operation.skipped`. All filters default
414
- * to the open setting (apply everything), which keeps Config Hub's manual-
415
- * restore semantics unchanged.
403
+ * Apply a captured snapshot to its source org. All filters default to the
404
+ * open setting (apply everything), which keeps Config Hub's manual-restore
405
+ * semantics unchanged.
416
406
  *
417
407
  */
418
408
  Components.Schemas.RestoreSnapshotRequest;
@@ -109,18 +109,19 @@ declare namespace Components {
109
109
  started_at: string; // date-time
110
110
  completed_at?: string; // date-time
111
111
  /**
112
- * `partial` indicates the operation completed but skipped at least
113
- * one resource see `skipped`. Only populated by restores triggered
114
- * with `mode: 'preserve_edits'`.
112
+ * `partial` indicates the operation completed but snapshot-api
113
+ * skipped at least one captured resource via its own drift check
114
+ * (see `skipped`).
115
115
  *
116
116
  */
117
117
  status: "in_progress" | "completed" | "partial" | "failed";
118
118
  error?: string;
119
119
  triggered_by: CallerIdentity;
120
120
  /**
121
- * Per-resource skips, populated only for restores triggered with
122
- * `mode: 'preserve_edits'`. Empty / absent for Config Hub's
123
- * default overwrite-mode restores.
121
+ * Captured resources snapshot-api elected to skip currently
122
+ * only drift detections (`preserve_modified: true`). Caller-
123
+ * supplied `exclude_target_ids` skips are NOT echoed here; the
124
+ * caller built the list, the caller knows.
124
125
  *
125
126
  */
126
127
  skipped?: SkippedResource[];
@@ -133,37 +134,27 @@ declare namespace Components {
133
134
  id: string;
134
135
  }
135
136
  /**
136
- * Skipped resources surface under `Operation.skipped`. All filters default
137
- * to the open setting (apply everything), which keeps Config Hub's manual-
138
- * restore semantics unchanged.
137
+ * Apply a captured snapshot to its source org. All filters default to the
138
+ * open setting (apply everything), which keeps Config Hub's manual-restore
139
+ * semantics unchanged.
139
140
  *
140
141
  */
141
142
  export interface RestoreSnapshotRequest {
142
143
  /**
143
144
  * When `true`, skip captured resources whose live payload's content
144
145
  * fingerprint diverges from the capture-time fingerprint stored on
145
- * the manifest entry. Self-contained: snapshot-api fetches and hashes
146
- * the live payload itself; no cross-service lookup. Surfaces under
146
+ * the manifest entry. snapshot-api fetches the live payload and
147
+ * hashes it itself; no cross-service lookup. Surfaces under
147
148
  * `Operation.skipped` with `reason: 'modified'`. Legacy snapshots
148
149
  * captured before fingerprints were stored fail open (applied).
149
150
  *
150
151
  */
151
152
  preserve_modified?: boolean;
152
- /**
153
- * Deprecated. Accepted for back-compat but treated as a no-op.
154
- * Co-ownership is now expressed via `exclude_target_ids` — the caller
155
- * (typically blueprint-manifest-api) computes which targets to skip
156
- * from its own data and passes the list. snapshot-api no longer
157
- * reaches into BMA's lineage table.
158
- *
159
- */
160
- preserve_co_owned?: boolean;
161
153
  /**
162
154
  * Target ids the caller has decided not to restore. snapshot-api
163
- * applies the manifest minus these ids and reports them under
164
- * `Operation.skipped` with `reason: 'co_owned'` (the only current
165
- * producer of exclude lists is BMA's revert flow, which uses this to
166
- * honor multi-blueprint ownership).
155
+ * applies the manifest minus these ids. Drops are silent — not
156
+ * echoed in `Operation.skipped` because the caller supplied the
157
+ * list and already knows.
167
158
  *
168
159
  */
169
160
  exclude_target_ids?: string[];
@@ -173,16 +164,15 @@ declare namespace Components {
173
164
  status: "restoring";
174
165
  }
175
166
  export interface SkippedResource {
176
- lineage_id: string;
167
+ target_id: string;
177
168
  /**
178
- * - `modified` — current destination payload's fingerprint differs
179
- * from the install-time fingerprint on the lineage row.
180
- * - `co_owned` lineage row has ≥2 distinct
181
- * `blueprint_instance_ids`; restoring would unilaterally affect
182
- * another blueprint instance's contribution.
169
+ * - `modified` — live destination payload's content fingerprint
170
+ * differs from the capture-time fingerprint stored on the
171
+ * manifest entry. Only set when the restore was requested with
172
+ * `preserve_modified: true`.
183
173
  *
184
174
  */
185
- reason: "modified" | "co_owned";
175
+ reason: "modified";
186
176
  }
187
177
  export interface Snapshot {
188
178
  id: string;
@@ -410,9 +400,9 @@ declare namespace Paths {
410
400
  }
411
401
  namespace RestoreSnapshot {
412
402
  export type RequestBody = /**
413
- * Skipped resources surface under `Operation.skipped`. All filters default
414
- * to the open setting (apply everything), which keeps Config Hub's manual-
415
- * restore semantics unchanged.
403
+ * Apply a captured snapshot to its source org. All filters default to the
404
+ * open setting (apply everything), which keeps Config Hub's manual-restore
405
+ * semantics unchanged.
416
406
  *
417
407
  */
418
408
  Components.Schemas.RestoreSnapshotRequest;
package/docs/snapshot.md CHANGED
@@ -124,7 +124,7 @@ const { data } = await client.listSnapshots({
124
124
  },
125
125
  "skipped": [
126
126
  {
127
- "lineage_id": "string",
127
+ "target_id": "string",
128
128
  "reason": "modified"
129
129
  }
130
130
  ]
@@ -143,7 +143,7 @@ const { data } = await client.listSnapshots({
143
143
  },
144
144
  "skipped": [
145
145
  {
146
- "lineage_id": "string",
146
+ "target_id": "string",
147
147
  "reason": "modified"
148
148
  }
149
149
  ]
@@ -228,7 +228,7 @@ const { data } = await client.getSnapshot({
228
228
  },
229
229
  "skipped": [
230
230
  {
231
- "lineage_id": "string",
231
+ "target_id": "string",
232
232
  "reason": "modified"
233
233
  }
234
234
  ]
@@ -247,7 +247,7 @@ const { data } = await client.getSnapshot({
247
247
  },
248
248
  "skipped": [
249
249
  {
250
- "lineage_id": "string",
250
+ "target_id": "string",
251
251
  "reason": "modified"
252
252
  }
253
253
  ]
@@ -298,7 +298,6 @@ const { data } = await client.restoreSnapshot(
298
298
  },
299
299
  {
300
300
  preserve_modified: false,
301
- preserve_co_owned: false,
302
301
  exclude_target_ids: ['string']
303
302
  },
304
303
  )
@@ -538,15 +537,14 @@ type CreateSnapshotResponse = {
538
537
 
539
538
  ### `RestoreSnapshotRequest`
540
539
 
541
- Skipped resources surface under `Operation.skipped`. All filters default
542
- to the open setting (apply everything), which keeps Config Hub's manual-
543
- restore semantics unchanged.
540
+ Apply a captured snapshot to its source org. All filters default to the
541
+ open setting (apply everything), which keeps Config Hub's manual-restore
542
+ semantics unchanged.
544
543
 
545
544
 
546
545
  ```ts
547
546
  type RestoreSnapshotRequest = {
548
547
  preserve_modified?: boolean
549
- preserve_co_owned?: boolean
550
548
  exclude_target_ids?: string[]
551
549
  }
552
550
  ```
@@ -583,7 +581,7 @@ type Snapshot = {
583
581
  token_id?: { ... }
584
582
  }
585
583
  skipped?: Array<{
586
- lineage_id: { ... }
584
+ target_id: { ... }
587
585
  reason: { ... }
588
586
  }>
589
587
  }
@@ -599,7 +597,7 @@ type Snapshot = {
599
597
  token_id?: { ... }
600
598
  }
601
599
  skipped?: Array<{
602
- lineage_id: { ... }
600
+ target_id: { ... }
603
601
  reason: { ... }
604
602
  }>
605
603
  }>
@@ -630,8 +628,8 @@ type Operation = {
630
628
  token_id?: string
631
629
  }
632
630
  skipped?: Array<{
633
- lineage_id: string
634
- reason: "modified" | "co_owned"
631
+ target_id: string
632
+ reason: "modified"
635
633
  }>
636
634
  }
637
635
  ```
@@ -640,8 +638,8 @@ type Operation = {
640
638
 
641
639
  ```ts
642
640
  type SkippedResource = {
643
- lineage_id: string
644
- reason: "modified" | "co_owned"
641
+ target_id: string
642
+ reason: "modified"
645
643
  }
646
644
  ```
647
645
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/sdk",
3
- "version": "2.8.9",
3
+ "version": "2.8.10",
4
4
  "description": "JavaScript/TypeScript SDK for epilot APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1,7 +0,0 @@
1
- import "./chunk-YPSWSI3M.js";
2
-
3
- // src/docs/snapshot.json
4
- var snapshot_default = '# Snapshot API\n\n- **Base URL:** `https://snapshot.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/snapshot](https://docs.epilot.io/api/snapshot)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.snapshot.createSnapshot(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/snapshot\'\n\nconst snapshotClient = getClient()\nauthorize(snapshotClient, () => \'<token>\')\nconst { data } = await snapshotClient.createSnapshot(...)\n```\n\n## Operations\n\n**Snapshots**\n- [`createSnapshot`](#createsnapshot)\n- [`listSnapshots`](#listsnapshots)\n- [`captureOrgSnapshot`](#captureorgsnapshot)\n- [`getSnapshot`](#getsnapshot)\n- [`deleteSnapshot`](#deletesnapshot)\n- [`restoreSnapshot`](#restoresnapshot)\n- [`listSnapshotResources`](#listsnapshotresources)\n- [`getSnapshotResource`](#getsnapshotresource)\n- [`listDependencies`](#listdependencies)\n\n**Schemas**\n- [`Error`](#error)\n- [`EmptyInventoryError`](#emptyinventoryerror)\n- [`ResourceRef`](#resourceref)\n- [`SnapshotResourceSummary`](#snapshotresourcesummary)\n- [`SnapshotResourceList`](#snapshotresourcelist)\n- [`SnapshotResourceDetail`](#snapshotresourcedetail)\n- [`CreateSnapshotRequest`](#createsnapshotrequest)\n- [`CreateOrgSnapshotRequest`](#createorgsnapshotrequest)\n- [`CreateSnapshotResponse`](#createsnapshotresponse)\n- [`RestoreSnapshotRequest`](#restoresnapshotrequest)\n- [`RestoreSnapshotResponse`](#restoresnapshotresponse)\n- [`Snapshot`](#snapshot)\n- [`Operation`](#operation)\n- [`SkippedResource`](#skippedresource)\n- [`CallerIdentity`](#calleridentity)\n\n### `createSnapshot`\n\nCreate a new snapshot of the given resources. Async \u2014 returns immediately\nwith a snapshot ID; client polls `getSnapshot` until `create.status`\nmoves from `in_progress` to `completed` or `failed`.\n\n`POST /v1/snapshots`\n\n```ts\nconst { data } = await client.createSnapshot(\n null,\n {\n name: \'string\',\n description: \'string\',\n trigger: \'manual\',\n blueprint_instance_id: \'string\',\n resources: [\n {\n type: \'string\',\n id: \'string\'\n }\n ]\n },\n)\n```\n\n---\n\n### `listSnapshots`\n\nList snapshots for the caller\'s organization, newest first.\n\n`GET /v1/snapshots`\n\n```ts\nconst { data } = await client.listSnapshots({\n cursor: \'example\',\n size: 1,\n resource: [\'...\'],\n trigger: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "page_size": 0,\n "cursor": "string",\n "results": [\n {\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "lineage_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "lineage_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `captureOrgSnapshot`\n\nSnapshot the caller\'s whole organization now. Fetches a fresh inventory\nof the org\'s configuration resources from configuration-hub-api, persists\nit as an inventory artifact, and starts a `scope: "org\n\n`POST /v1/snapshots:capture-org`\n\n```ts\nconst { data } = await client.captureOrgSnapshot(\n null,\n {\n name: \'string\',\n retention: {\n value: 1,\n unit: \'days\'\n },\n excluded_types: [\'string\']\n },\n)\n```\n\n---\n\n### `getSnapshot`\n\nFetch a snapshot\'s metadata. Poll this endpoint to track create/restore progress.\n\n`GET /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.getSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": "manual",\n "blueprint_instance_id": "string",\n "resource_counts": {},\n "create": {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "lineage_id": "string",\n "reason": "modified"\n }\n ]\n },\n "restores": [\n {\n "type": "create",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "status": "in_progress",\n "error": "string",\n "triggered_by": {\n "name": "string",\n "user_id": "string",\n "token_id": "string"\n },\n "skipped": [\n {\n "lineage_id": "string",\n "reason": "modified"\n }\n ]\n }\n ],\n "matched_count": 0,\n "scope": "selection",\n "expires_at": "1970-01-01T00:00:00.000Z",\n "capture_summary": {\n "total": 0,\n "captured": 0,\n "skipped": 0,\n "failed": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteSnapshot`\n\nDelete a snapshot\'s metadata and S3 manifest.\n\n`DELETE /v1/snapshots/{id}`\n\n```ts\nconst { data } = await client.deleteSnapshot({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `restoreSnapshot`\n\nRestore a snapshot to the org. Async \u2014 returns immediately; client polls\n`getSnapshot` until the latest entry in `restores` moves from\n`in_progress` to one of `completed | partial | failed`.\n\n`POST /v1/snapshots/{id}:restore`\n\n```ts\nconst { data } = await client.restoreSnapshot(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n preserve_modified: false,\n preserve_co_owned: false,\n exclude_target_ids: [\'string\']\n },\n)\n```\n\n---\n\n### `listSnapshotResources`\n\nList the resources captured in this snapshot. Returns lightweight\nidentity fields per resource \u2014 payloads are fetched via the\nsingle-resource endpoint when needed.\n\n`GET /v1/snapshots/{id}/resources`\n\n```ts\nconst { data } = await client.listSnapshotResources({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "resources": [\n {\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getSnapshotResource`\n\nFetch one captured resource with its full payload. For UI views\nthat diff the captured state against the current destination.\n\n`GET /v1/snapshots/{id}/resources/{lineage_id}`\n\n```ts\nconst { data } = await client.getSnapshotResource({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n lineage_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "lineage_id": "string",\n "target_id": "string",\n "type": "string",\n "name": "string",\n "captured": {}\n}\n```\n\n</details>\n\n---\n\n### `listDependencies`\n\nWalk the dependency tree for a set of resources and return the full\ntransitive closure, topologically sorted.\n\n`POST /v1/snapshots:list-dependencies`\n\n```ts\nconst { data } = await client.listDependencies(\n null,\n {\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 "dependencies": [\n {\n "type": "string",\n "id": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\n```ts\ntype Error = {\n status: number\n error: string\n}\n```\n\n### `EmptyInventoryError`\n\nReturned (422) when the org inventory contains no capturable resources\nafter filtering out sensitive, unsupported, and excluded types. The\n`skipped_types` array explains why every type was dropped.\n\n\n```ts\ntype EmptyInventoryError = {\n message: string\n skipped_types: Array<{\n type: string\n reason: string\n }>\n}\n```\n\n### `ResourceRef`\n\n```ts\ntype ResourceRef = {\n type: string\n id: string\n}\n```\n\n### `SnapshotResourceSummary`\n\nLightweight identity for a captured resource. Returned by\n`listSnapshotResources`; the full payload is fetched separately via\n`getSnapshotResource` when needed.\n\n\n```ts\ntype SnapshotResourceSummary = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n}\n```\n\n### `SnapshotResourceList`\n\n```ts\ntype SnapshotResourceList = {\n resources: Array<{\n lineage_id: string\n target_id: string\n type: string\n name?: string\n }>\n}\n```\n\n### `SnapshotResourceDetail`\n\nA single captured resource with its full payload. The identity fields\nmatch `SnapshotResourceSummary`; the `captured` payload is the\npre-install state at snapshot time.\n\n\n```ts\ntype SnapshotResourceDetail = {\n lineage_id: string\n target_id: string\n type: string\n name?: string\n captured: Record<string, unknown>\n}\n```\n\n### `CreateSnapshotRequest`\n\n```ts\ntype CreateSnapshotRequest = {\n name: string\n description?: string\n trigger?: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resources: Array<{\n type: string\n id: string\n }>\n}\n```\n\n### `CreateOrgSnapshotRequest`\n\nRequest body for `captureOrgSnapshot`. All fields optional \u2014 an empty body\nsnapshots the whole org with a default name and the 90-day default TTL.\n\n\n```ts\ntype CreateOrgSnapshotRequest = {\n name?: string\n retention?: {\n value: number\n unit: "days" | "weeks" | "months"\n }\n excluded_types?: string[]\n}\n```\n\n### `CreateSnapshotResponse`\n\n```ts\ntype CreateSnapshotResponse = {\n id: string\n name: string\n status: "creating"\n created_at: string // date-time\n}\n```\n\n### `RestoreSnapshotRequest`\n\nSkipped resources surface under `Operation.skipped`. All filters default\nto the open setting (apply everything), which keeps Config Hub\'s manual-\nrestore semantics unchanged.\n\n\n```ts\ntype RestoreSnapshotRequest = {\n preserve_modified?: boolean\n preserve_co_owned?: boolean\n exclude_target_ids?: string[]\n}\n```\n\n### `RestoreSnapshotResponse`\n\n```ts\ntype RestoreSnapshotResponse = {\n id: string\n status: "restoring"\n}\n```\n\n### `Snapshot`\n\n```ts\ntype Snapshot = {\n id: string\n org_id: string\n name: string\n description?: string\n trigger: "manual" | "sync" | "blueprint_install" | "scheduled"\n blueprint_instance_id?: string\n resource_counts: Record<string, number>\n create: {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n lineage_id: { ... }\n reason: { ... }\n }>\n }\n restores: Array<{\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: { ... }\n user_id?: { ... }\n token_id?: { ... }\n }\n skipped?: Array<{\n lineage_id: { ... }\n reason: { ... }\n }>\n }>\n matched_count?: number\n scope?: "selection" | "org"\n expires_at?: string // date-time\n capture_summary?: {\n total: number\n captured: number\n skipped: number\n failed: number\n }\n}\n```\n\n### `Operation`\n\n```ts\ntype Operation = {\n type: "create" | "restore"\n started_at: string // date-time\n completed_at?: string // date-time\n status: "in_progress" | "completed" | "partial" | "failed"\n error?: string\n triggered_by: {\n name: string\n user_id?: string\n token_id?: string\n }\n skipped?: Array<{\n lineage_id: string\n reason: "modified" | "co_owned"\n }>\n}\n```\n\n### `SkippedResource`\n\n```ts\ntype SkippedResource = {\n lineage_id: string\n reason: "modified" | "co_owned"\n}\n```\n\n### `CallerIdentity`\n\n```ts\ntype CallerIdentity = {\n name: string\n user_id?: string\n token_id?: string\n}\n```\n';
5
- export {
6
- snapshot_default as default
7
- };