@epilot/sdk 2.8.7 → 2.8.9

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 (169) hide show
  1. package/definitions/access-token-runtime.json +1 -1
  2. package/definitions/access-token.json +155 -1
  3. package/definitions/app.json +101 -8
  4. package/definitions/automation.json +120 -0
  5. package/definitions/blueprint-manifest-runtime.json +1 -1
  6. package/definitions/blueprint-manifest.json +1651 -357
  7. package/definitions/configuration-hub-runtime.json +1 -1
  8. package/definitions/configuration-hub.json +623 -0
  9. package/definitions/customer-portal-runtime.json +1 -1
  10. package/definitions/customer-portal.json +383 -78
  11. package/definitions/design-runtime.json +1 -1
  12. package/definitions/design.json +52 -12
  13. package/definitions/event-catalog-runtime.json +1 -1
  14. package/definitions/event-catalog.json +168 -12
  15. package/definitions/file-runtime.json +1 -1
  16. package/definitions/file.json +152 -4
  17. package/definitions/integration-toolkit-runtime.json +1 -1
  18. package/definitions/integration-toolkit.json +782 -13
  19. package/definitions/journey-runtime.json +1 -1
  20. package/definitions/journey.json +38 -1
  21. package/definitions/notes-runtime.json +1 -1
  22. package/definitions/notes.json +123 -1
  23. package/definitions/pricing.json +224 -406
  24. package/definitions/snapshot-runtime.json +1 -0
  25. package/definitions/snapshot.json +973 -0
  26. package/definitions/targeting-runtime.json +1 -1
  27. package/definitions/targeting.json +258 -7
  28. package/definitions/user-runtime.json +1 -1
  29. package/definitions/user.json +441 -0
  30. package/definitions/webhooks.json +31 -0
  31. package/dist/{ai-agents.d-OkXfr2bz.d.cts → ai-agents.d-CC5IjXrs.d.cts} +0 -2
  32. package/dist/{ai-agents.d-OkXfr2bz.d.ts → ai-agents.d-CC5IjXrs.d.ts} +0 -2
  33. package/dist/apis/access-token.cjs +6 -6
  34. package/dist/apis/access-token.js +1 -1
  35. package/dist/apis/address-suggestions.cjs +6 -6
  36. package/dist/apis/address-suggestions.js +1 -1
  37. package/dist/apis/address.cjs +6 -6
  38. package/dist/apis/address.js +1 -1
  39. package/dist/apis/ai-agents.cjs +6 -6
  40. package/dist/apis/ai-agents.d.cts +2 -2
  41. package/dist/apis/ai-agents.d.ts +2 -2
  42. package/dist/apis/ai-agents.js +1 -1
  43. package/dist/apis/app.cjs +6 -6
  44. package/dist/apis/app.js +1 -1
  45. package/dist/apis/audit-logs.cjs +6 -6
  46. package/dist/apis/audit-logs.js +1 -1
  47. package/dist/apis/automation.cjs +6 -6
  48. package/dist/apis/automation.js +1 -1
  49. package/dist/apis/billing.cjs +6 -6
  50. package/dist/apis/billing.js +1 -1
  51. package/dist/apis/blueprint-manifest.cjs +6 -6
  52. package/dist/apis/blueprint-manifest.js +1 -1
  53. package/dist/apis/calendar.cjs +6 -6
  54. package/dist/apis/calendar.js +1 -1
  55. package/dist/apis/configuration-hub.cjs +6 -6
  56. package/dist/apis/configuration-hub.js +1 -1
  57. package/dist/apis/consent.cjs +6 -6
  58. package/dist/apis/consent.js +1 -1
  59. package/dist/apis/customer-portal.cjs +6 -6
  60. package/dist/apis/customer-portal.js +1 -1
  61. package/dist/apis/dashboard.cjs +6 -6
  62. package/dist/apis/dashboard.js +1 -1
  63. package/dist/apis/data-governance.cjs +6 -6
  64. package/dist/apis/data-governance.js +1 -1
  65. package/dist/apis/deduplication.cjs +6 -6
  66. package/dist/apis/deduplication.js +1 -1
  67. package/dist/apis/design.cjs +6 -6
  68. package/dist/apis/design.js +1 -1
  69. package/dist/apis/document.cjs +6 -6
  70. package/dist/apis/document.js +1 -1
  71. package/dist/apis/email-settings.cjs +6 -6
  72. package/dist/apis/email-settings.js +1 -1
  73. package/dist/apis/email-template.cjs +6 -6
  74. package/dist/apis/email-template.js +1 -1
  75. package/dist/apis/entity-mapping.cjs +6 -6
  76. package/dist/apis/entity-mapping.js +1 -1
  77. package/dist/apis/entity.cjs +6 -6
  78. package/dist/apis/entity.js +1 -1
  79. package/dist/apis/environments.cjs +6 -6
  80. package/dist/apis/environments.js +1 -1
  81. package/dist/apis/event-catalog.cjs +6 -6
  82. package/dist/apis/event-catalog.js +1 -1
  83. package/dist/apis/file.cjs +6 -6
  84. package/dist/apis/file.js +1 -1
  85. package/dist/apis/iban.cjs +6 -6
  86. package/dist/apis/iban.js +1 -1
  87. package/dist/apis/integration-toolkit.cjs +6 -6
  88. package/dist/apis/integration-toolkit.js +1 -1
  89. package/dist/apis/journey.cjs +6 -6
  90. package/dist/apis/journey.d.cts +2 -2
  91. package/dist/apis/journey.d.ts +2 -2
  92. package/dist/apis/journey.js +1 -1
  93. package/dist/apis/kanban.cjs +6 -6
  94. package/dist/apis/kanban.js +1 -1
  95. package/dist/apis/message.cjs +6 -6
  96. package/dist/apis/message.js +1 -1
  97. package/dist/apis/metering.cjs +6 -6
  98. package/dist/apis/metering.js +1 -1
  99. package/dist/apis/notes.cjs +6 -6
  100. package/dist/apis/notes.js +1 -1
  101. package/dist/apis/notification.cjs +6 -6
  102. package/dist/apis/notification.js +1 -1
  103. package/dist/apis/organization.cjs +6 -6
  104. package/dist/apis/organization.js +1 -1
  105. package/dist/apis/partner-directory.cjs +6 -6
  106. package/dist/apis/partner-directory.js +1 -1
  107. package/dist/apis/permissions.cjs +6 -6
  108. package/dist/apis/permissions.js +1 -1
  109. package/dist/apis/pricing-tier.cjs +6 -6
  110. package/dist/apis/pricing-tier.js +1 -1
  111. package/dist/apis/pricing.cjs +6 -6
  112. package/dist/apis/pricing.js +1 -1
  113. package/dist/apis/purpose.cjs +6 -6
  114. package/dist/apis/purpose.js +1 -1
  115. package/dist/apis/query.cjs +6 -6
  116. package/dist/apis/query.js +1 -1
  117. package/dist/apis/sandbox.cjs +6 -6
  118. package/dist/apis/sandbox.js +1 -1
  119. package/dist/apis/sharing.cjs +6 -6
  120. package/dist/apis/sharing.js +1 -1
  121. package/dist/apis/snapshot.cjs +8 -8
  122. package/dist/apis/snapshot.d.cts +2 -2
  123. package/dist/apis/snapshot.d.ts +2 -2
  124. package/dist/apis/snapshot.js +2 -2
  125. package/dist/apis/submission.cjs +6 -6
  126. package/dist/apis/submission.js +1 -1
  127. package/dist/apis/target.cjs +6 -6
  128. package/dist/apis/target.js +1 -1
  129. package/dist/apis/targeting.cjs +6 -6
  130. package/dist/apis/targeting.js +1 -1
  131. package/dist/apis/template-variables.cjs +6 -6
  132. package/dist/apis/template-variables.js +1 -1
  133. package/dist/apis/user.cjs +6 -6
  134. package/dist/apis/user.js +1 -1
  135. package/dist/apis/validation-rules.cjs +6 -6
  136. package/dist/apis/validation-rules.js +1 -1
  137. package/dist/apis/webhooks.cjs +6 -6
  138. package/dist/apis/webhooks.js +1 -1
  139. package/dist/apis/workflow-definition.cjs +6 -6
  140. package/dist/apis/workflow-definition.js +1 -1
  141. package/dist/apis/workflow.cjs +6 -6
  142. package/dist/apis/workflow.js +1 -1
  143. package/dist/{chunk-7LIGFCRI.cjs → chunk-4GI6KGKZ.cjs} +3 -3
  144. package/dist/chunk-54QNWEPZ.js +14 -0
  145. package/dist/{chunk-CMANJ4LY.js → chunk-VMKT7UQS.js} +3 -3
  146. package/dist/chunk-YXJ4PBFQ.cjs +14 -0
  147. package/dist/index.cjs +10 -10
  148. package/dist/index.d.cts +3 -3
  149. package/dist/index.d.ts +3 -3
  150. package/dist/index.js +2 -2
  151. package/dist/journey-LHVSSVTG.cjs +7 -0
  152. package/dist/journey-NXL264XW.js +7 -0
  153. package/dist/{journey.d-BenIUWaO.d.cts → journey.d-B1sOeMHw.d.cts} +16 -3
  154. package/dist/{journey.d-BenIUWaO.d.ts → journey.d-B1sOeMHw.d.ts} +16 -3
  155. package/dist/snapshot-6CCO4NYL.js +7 -0
  156. package/dist/snapshot-GWB56VPP.cjs +7 -0
  157. package/dist/{snapshot-runtime-5TT575JS.cjs → snapshot-runtime-6DV42FVY.cjs} +2 -2
  158. package/dist/{snapshot-runtime-KWRGOKF4.js → snapshot-runtime-IW57MINC.js} +1 -1
  159. package/dist/{snapshot.d-C-n4wkIu.d.cts → snapshot.d-D5z6-hzE.d.cts} +30 -22
  160. package/dist/{snapshot.d-C-n4wkIu.d.ts → snapshot.d-D5z6-hzE.d.ts} +30 -22
  161. package/docs/journey.md +28 -8
  162. package/docs/snapshot.md +8 -6
  163. package/package.json +1 -1
  164. package/dist/chunk-4SZCKUY2.js +0 -14
  165. package/dist/chunk-ULKFBO7E.cjs +0 -14
  166. package/dist/journey-4DIIPRU4.js +0 -7
  167. package/dist/journey-ATC3Y5AW.cjs +0 -7
  168. package/dist/snapshot-GDJOEFJQ.js +0 -7
  169. package/dist/snapshot-UKV54UQQ.cjs +0 -7
@@ -270,6 +270,10 @@ declare namespace Components {
270
270
  * If true, journey is displayed in read-only mode
271
271
  */
272
272
  protected?: boolean;
273
+ /**
274
+ * Whitelist of paths that remain editable when the journey is protected. Supports wildcard patterns (e.g. steps/*​/blocks/**).
275
+ */
276
+ protectedEditable?: string[];
273
277
  settings?: {
274
278
  embedOptions?: {
275
279
  mode?: "full-screen" | "inline";
@@ -522,6 +526,10 @@ declare namespace Components {
522
526
  * If true, journey is displayed in read-only mode
523
527
  */
524
528
  protected?: boolean;
529
+ /**
530
+ * Whitelist of paths that remain editable when the journey is protected. Supports wildcard patterns (e.g. steps/*​/blocks/**).
531
+ */
532
+ protectedEditable?: string[];
525
533
  settings?: {
526
534
  embedOptions?: {
527
535
  mode?: "full-screen" | "inline";
@@ -757,6 +765,10 @@ declare namespace Components {
757
765
  * If true, journey is displayed in read-only mode
758
766
  */
759
767
  protected?: boolean;
768
+ /**
769
+ * Whitelist of paths that remain editable when the journey is protected. Supports wildcard patterns (e.g. steps/*​/blocks/**).
770
+ */
771
+ protectedEditable?: string[];
760
772
  settings?: {
761
773
  embedOptions?: {
762
774
  mode?: "full-screen" | "inline";
@@ -814,6 +826,7 @@ declare namespace Components {
814
826
  * If true, the journey shows an icon to toggle dark mode
815
827
  */
816
828
  enableDarkMode?: boolean;
829
+ isActive?: boolean;
817
830
  };
818
831
  validationRules?: /**
819
832
  * References to validation rules organized by blocks and fields.
@@ -1675,13 +1688,13 @@ interface OperationMethods {
1675
1688
  ): OperationResponse<Paths.PatchUpdateJourneyV2.Responses.$200>
1676
1689
  /**
1677
1690
  * getJourneyV2 - getJourneyV2
1678
- *
1691
+ *
1679
1692
  * Get journey by id
1680
1693
  */
1681
1694
  'getJourneyV2'(
1682
1695
  parameters?: Parameters<Paths.GetJourneyV2.QueryParameters & Paths.GetJourneyV2.PathParameters> | null,
1683
1696
  data?: any,
1684
- config?: AxiosRequestConfig
1697
+ config?: AxiosRequestConfig
1685
1698
  ): OperationResponse<Paths.GetJourneyV2.Responses.$200>
1686
1699
  /**
1687
1700
  * removeJourneyV2 - removeJourneyV2
@@ -1868,7 +1881,7 @@ interface PathsDictionary {
1868
1881
  * Get journey by id
1869
1882
  */
1870
1883
  'get'(
1871
- parameters?: Parameters<Paths.GetJourneyV2.PathParameters> | null,
1884
+ parameters?: Parameters<Paths.GetJourneyV2.QueryParameters & Paths.GetJourneyV2.PathParameters> | null,
1872
1885
  data?: any,
1873
1886
  config?: AxiosRequestConfig
1874
1887
  ): OperationResponse<Paths.GetJourneyV2.Responses.$200>
@@ -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 "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
+ };
@@ -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 "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
+
6
+
7
+ exports.default = snapshot_default;
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkULKFBO7Ecjs = require('./chunk-ULKFBO7E.cjs');
3
+ var _chunkYXJ4PBFQcjs = require('./chunk-YXJ4PBFQ.cjs');
4
4
  require('./chunk-NJK5F5TF.cjs');
5
- exports. default = _chunkULKFBO7Ecjs.require_snapshot_runtime.call(void 0, );
5
+ exports. default = _chunkYXJ4PBFQcjs.require_snapshot_runtime.call(void 0, );
@@ -1,5 +1,5 @@
1
1
  import {
2
2
  require_snapshot_runtime
3
- } from "./chunk-4SZCKUY2.js";
3
+ } from "./chunk-54QNWEPZ.js";
4
4
  import "./chunk-YPSWSI3M.js";
5
5
  export default require_snapshot_runtime();
@@ -133,29 +133,40 @@ declare namespace Components {
133
133
  id: string;
134
134
  }
135
135
  /**
136
- * Both flags default to `false`, which restores every captured resource —
137
- * Config Hub's manual-restore semantics. blueprint-manifest-api sets
138
- * both `true` when reverting a blueprint install so user edits and
139
- * cross-blueprint contributions survive. Each flag is independent so a
140
- * caller can preserve edits without preserving co-ownership (or vice
141
- * versa). Skipped resources surface under `Operation.skipped`.
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.
142
139
  *
143
140
  */
144
141
  export interface RestoreSnapshotRequest {
145
142
  /**
146
- * When `true`, skip captured resources whose live destination payload
147
- * has diverged from the install-time fingerprint stored on lineage.
148
- * Surfaces under `Operation.skipped` with `reason: 'modified'`.
143
+ * When `true`, skip captured resources whose live payload's content
144
+ * 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
147
+ * `Operation.skipped` with `reason: 'modified'`. Legacy snapshots
148
+ * captured before fingerprints were stored fail open (applied).
149
149
  *
150
150
  */
151
151
  preserve_modified?: boolean;
152
152
  /**
153
- * When `true`, skip captured resources whose lineage row carries
154
- * another blueprint instance's id (co-ownership ≥2). Surfaces under
155
- * `Operation.skipped` with `reason: 'co_owned'`.
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.
156
158
  *
157
159
  */
158
160
  preserve_co_owned?: boolean;
161
+ /**
162
+ * 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).
167
+ *
168
+ */
169
+ exclude_target_ids?: string[];
159
170
  }
160
171
  export interface RestoreSnapshotResponse {
161
172
  id: string;
@@ -280,10 +291,8 @@ declare namespace Components {
280
291
  */
281
292
  export interface SnapshotResourceSummary {
282
293
  /**
283
- * Cross-service correlation key matches the lineage row id in
284
- * blueprint-manifest-api's lineage table for `blueprint_install`
285
- * snapshots. Same as `target_id` for snapshots whose capture
286
- * doesn't distinguish source vs destination identifiers.
294
+ * Deprecated alias of `target_id`. Always equals `target_id` (the
295
+ * implementation never distinguished them). Use `target_id`.
287
296
  *
288
297
  */
289
298
  lineage_id: string;
@@ -376,11 +385,13 @@ declare namespace Paths {
376
385
  export type Cursor = string;
377
386
  export type Resource = string /* ^[^:]+:.+$ */[];
378
387
  export type Size = number;
388
+ export type Trigger = "manual" | "sync" | "blueprint_install" | "scheduled";
379
389
  }
380
390
  export interface QueryParameters {
381
391
  cursor?: Parameters.Cursor;
382
392
  size?: Parameters.Size;
383
393
  resource?: Parameters.Resource;
394
+ trigger?: Parameters.Trigger;
384
395
  }
385
396
  namespace Responses {
386
397
  export interface $200 {
@@ -399,12 +410,9 @@ declare namespace Paths {
399
410
  }
400
411
  namespace RestoreSnapshot {
401
412
  export type RequestBody = /**
402
- * Both flags default to `false`, which restores every captured resource —
403
- * Config Hub's manual-restore semantics. blueprint-manifest-api sets
404
- * both `true` when reverting a blueprint install so user edits and
405
- * cross-blueprint contributions survive. Each flag is independent so a
406
- * caller can preserve edits without preserving co-ownership (or vice
407
- * versa). Skipped resources surface under `Operation.skipped`.
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.
408
416
  *
409
417
  */
410
418
  Components.Schemas.RestoreSnapshotRequest;
@@ -133,29 +133,40 @@ declare namespace Components {
133
133
  id: string;
134
134
  }
135
135
  /**
136
- * Both flags default to `false`, which restores every captured resource —
137
- * Config Hub's manual-restore semantics. blueprint-manifest-api sets
138
- * both `true` when reverting a blueprint install so user edits and
139
- * cross-blueprint contributions survive. Each flag is independent so a
140
- * caller can preserve edits without preserving co-ownership (or vice
141
- * versa). Skipped resources surface under `Operation.skipped`.
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.
142
139
  *
143
140
  */
144
141
  export interface RestoreSnapshotRequest {
145
142
  /**
146
- * When `true`, skip captured resources whose live destination payload
147
- * has diverged from the install-time fingerprint stored on lineage.
148
- * Surfaces under `Operation.skipped` with `reason: 'modified'`.
143
+ * When `true`, skip captured resources whose live payload's content
144
+ * 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
147
+ * `Operation.skipped` with `reason: 'modified'`. Legacy snapshots
148
+ * captured before fingerprints were stored fail open (applied).
149
149
  *
150
150
  */
151
151
  preserve_modified?: boolean;
152
152
  /**
153
- * When `true`, skip captured resources whose lineage row carries
154
- * another blueprint instance's id (co-ownership ≥2). Surfaces under
155
- * `Operation.skipped` with `reason: 'co_owned'`.
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.
156
158
  *
157
159
  */
158
160
  preserve_co_owned?: boolean;
161
+ /**
162
+ * 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).
167
+ *
168
+ */
169
+ exclude_target_ids?: string[];
159
170
  }
160
171
  export interface RestoreSnapshotResponse {
161
172
  id: string;
@@ -280,10 +291,8 @@ declare namespace Components {
280
291
  */
281
292
  export interface SnapshotResourceSummary {
282
293
  /**
283
- * Cross-service correlation key matches the lineage row id in
284
- * blueprint-manifest-api's lineage table for `blueprint_install`
285
- * snapshots. Same as `target_id` for snapshots whose capture
286
- * doesn't distinguish source vs destination identifiers.
294
+ * Deprecated alias of `target_id`. Always equals `target_id` (the
295
+ * implementation never distinguished them). Use `target_id`.
287
296
  *
288
297
  */
289
298
  lineage_id: string;
@@ -376,11 +385,13 @@ declare namespace Paths {
376
385
  export type Cursor = string;
377
386
  export type Resource = string /* ^[^:]+:.+$ */[];
378
387
  export type Size = number;
388
+ export type Trigger = "manual" | "sync" | "blueprint_install" | "scheduled";
379
389
  }
380
390
  export interface QueryParameters {
381
391
  cursor?: Parameters.Cursor;
382
392
  size?: Parameters.Size;
383
393
  resource?: Parameters.Resource;
394
+ trigger?: Parameters.Trigger;
384
395
  }
385
396
  namespace Responses {
386
397
  export interface $200 {
@@ -399,12 +410,9 @@ declare namespace Paths {
399
410
  }
400
411
  namespace RestoreSnapshot {
401
412
  export type RequestBody = /**
402
- * Both flags default to `false`, which restores every captured resource —
403
- * Config Hub's manual-restore semantics. blueprint-manifest-api sets
404
- * both `true` when reverting a blueprint install so user edits and
405
- * cross-blueprint contributions survive. Each flag is independent so a
406
- * caller can preserve edits without preserving co-ownership (or vice
407
- * versa). Skipped resources surface under `Operation.skipped`.
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.
408
416
  *
409
417
  */
410
418
  Components.Schemas.RestoreSnapshotRequest;
package/docs/journey.md CHANGED
@@ -163,6 +163,7 @@ const { data } = await client.getJourney({
163
163
  ],
164
164
  "journey_type": "Sales template (Premium)",
165
165
  "protected": true,
166
+ "protectedEditable": ["string"],
166
167
  "settings": {
167
168
  "embedOptions": {
168
169
  "mode": "full-screen",
@@ -356,6 +357,7 @@ const { data } = await client.createJourney(
356
357
  ],
357
358
  journey_type: 'Sales template (Premium)',
358
359
  protected: true,
360
+ protectedEditable: ['string'],
359
361
  settings: {
360
362
  embedOptions: {
361
363
  mode: 'full-screen',
@@ -469,6 +471,7 @@ const { data } = await client.createJourney(
469
471
  ],
470
472
  "journey_type": "Sales template (Premium)",
471
473
  "protected": true,
474
+ "protectedEditable": ["string"],
472
475
  "settings": {
473
476
  "embedOptions": {
474
477
  "mode": "full-screen",
@@ -596,6 +599,7 @@ const { data } = await client.updateJourney(
596
599
  ],
597
600
  journey_type: 'Sales template (Premium)',
598
601
  protected: true,
602
+ protectedEditable: ['string'],
599
603
  settings: {
600
604
  embedOptions: {
601
605
  mode: 'full-screen',
@@ -700,6 +704,7 @@ const { data } = await client.patchUpdateJourney(
700
704
  ],
701
705
  "journey_type": "Sales template (Premium)",
702
706
  "protected": true,
707
+ "protectedEditable": ["string"],
703
708
  "settings": {
704
709
  "embedOptions": {},
705
710
  "safeModeAutomation": true,
@@ -940,6 +945,7 @@ const { data } = await client.createJourneyV2(
940
945
  ],
941
946
  journey_type: 'Sales template (Premium)',
942
947
  protected: true,
948
+ protectedEditable: ['string'],
943
949
  settings: {
944
950
  embedOptions: {
945
951
  mode: 'full-screen',
@@ -972,7 +978,8 @@ const { data } = await client.createJourneyV2(
972
978
  useNewDesign: true,
973
979
  thirdPartyCookies: true,
974
980
  accessMode: 'PUBLIC',
975
- enableDarkMode: true
981
+ enableDarkMode: true,
982
+ isActive: true
976
983
  },
977
984
  validationRules: {
978
985
  block1: 'rule123',
@@ -1042,6 +1049,7 @@ const { data } = await client.createJourneyV2(
1042
1049
  ],
1043
1050
  "journey_type": "Sales template (Premium)",
1044
1051
  "protected": true,
1052
+ "protectedEditable": ["string"],
1045
1053
  "settings": {
1046
1054
  "embedOptions": {
1047
1055
  "mode": "full-screen",
@@ -1074,7 +1082,8 @@ const { data } = await client.createJourneyV2(
1074
1082
  "useNewDesign": true,
1075
1083
  "thirdPartyCookies": true,
1076
1084
  "accessMode": "PUBLIC",
1077
- "enableDarkMode": true
1085
+ "enableDarkMode": true,
1086
+ "isActive": true
1078
1087
  },
1079
1088
  "validationRules": {
1080
1089
  "block1": "rule123",
@@ -1152,6 +1161,7 @@ const { data } = await client.updateJourneyV2(
1152
1161
  ],
1153
1162
  journey_type: 'Sales template (Premium)',
1154
1163
  protected: true,
1164
+ protectedEditable: ['string'],
1155
1165
  settings: {
1156
1166
  embedOptions: {
1157
1167
  mode: 'full-screen',
@@ -1184,7 +1194,8 @@ const { data } = await client.updateJourneyV2(
1184
1194
  useNewDesign: true,
1185
1195
  thirdPartyCookies: true,
1186
1196
  accessMode: 'PUBLIC',
1187
- enableDarkMode: true
1197
+ enableDarkMode: true,
1198
+ isActive: true
1188
1199
  },
1189
1200
  validationRules: {
1190
1201
  block1: 'rule123',
@@ -1254,6 +1265,7 @@ const { data } = await client.updateJourneyV2(
1254
1265
  ],
1255
1266
  "journey_type": "Sales template (Premium)",
1256
1267
  "protected": true,
1268
+ "protectedEditable": ["string"],
1257
1269
  "settings": {
1258
1270
  "embedOptions": {
1259
1271
  "mode": "full-screen",
@@ -1286,7 +1298,8 @@ const { data } = await client.updateJourneyV2(
1286
1298
  "useNewDesign": true,
1287
1299
  "thirdPartyCookies": true,
1288
1300
  "accessMode": "PUBLIC",
1289
- "enableDarkMode": true
1301
+ "enableDarkMode": true,
1302
+ "isActive": true
1290
1303
  },
1291
1304
  "validationRules": {
1292
1305
  "block1": "rule123",
@@ -1375,6 +1388,7 @@ const { data } = await client.patchUpdateJourneyV2(
1375
1388
  ],
1376
1389
  "journey_type": "Sales template (Premium)",
1377
1390
  "protected": true,
1391
+ "protectedEditable": ["string"],
1378
1392
  "settings": {
1379
1393
  "embedOptions": {
1380
1394
  "mode": "full-screen",
@@ -1407,7 +1421,8 @@ const { data } = await client.patchUpdateJourneyV2(
1407
1421
  "useNewDesign": true,
1408
1422
  "thirdPartyCookies": true,
1409
1423
  "accessMode": "PUBLIC",
1410
- "enableDarkMode": true
1424
+ "enableDarkMode": true,
1425
+ "isActive": true
1411
1426
  },
1412
1427
  "validationRules": {
1413
1428
  "block1": "rule123",
@@ -1493,6 +1508,7 @@ const { data } = await client.getJourneyV2({
1493
1508
  ],
1494
1509
  "journey_type": "Sales template (Premium)",
1495
1510
  "protected": true,
1511
+ "protectedEditable": ["string"],
1496
1512
  "settings": {
1497
1513
  "embedOptions": {
1498
1514
  "mode": "full-screen",
@@ -1525,7 +1541,8 @@ const { data } = await client.getJourneyV2({
1525
1541
  "useNewDesign": true,
1526
1542
  "thirdPartyCookies": true,
1527
1543
  "accessMode": "PUBLIC",
1528
- "enableDarkMode": true
1544
+ "enableDarkMode": true,
1545
+ "isActive": true
1529
1546
  },
1530
1547
  "validationRules": {
1531
1548
  "block1": "rule123",
@@ -1675,6 +1692,7 @@ type JourneyResponse = {
1675
1692
  }>
1676
1693
  journey_type?: string
1677
1694
  protected?: boolean
1695
+ protectedEditable?: string[]
1678
1696
  settings?: {
1679
1697
  embedOptions?: { ... }
1680
1698
  safeModeAutomation?: { ... }
@@ -1814,6 +1832,7 @@ type JourneyCreationRequest = {
1814
1832
  }>
1815
1833
  journey_type?: string
1816
1834
  protected?: boolean
1835
+ protectedEditable?: string[]
1817
1836
  settings?: {
1818
1837
  embedOptions?: {
1819
1838
  mode?: { ... }
@@ -1855,7 +1874,6 @@ type JourneyCreationRequest = {
1855
1874
  }
1856
1875
  thirdPartyCookies?: boolean
1857
1876
  }
1858
- validationRules?: Record<string, string | Record<string, string>>
1859
1877
  // ...
1860
1878
  }
1861
1879
  ```
@@ -1920,6 +1938,7 @@ type JourneyCreationRequestV2 = {
1920
1938
  }>
1921
1939
  journey_type?: string
1922
1940
  protected?: boolean
1941
+ protectedEditable?: string[]
1923
1942
  settings?: {
1924
1943
  embedOptions?: {
1925
1944
  mode?: { ... }
@@ -1950,6 +1969,7 @@ type JourneyCreationRequestV2 = {
1950
1969
  thirdPartyCookies?: boolean
1951
1970
  accessMode?: "PUBLIC" | "PRIVATE"
1952
1971
  enableDarkMode?: boolean
1972
+ isActive?: boolean
1953
1973
  }
1954
1974
  validationRules?: Record<string, string | Record<string, string>>
1955
1975
  _manifest?: string // uuid[]
@@ -2054,6 +2074,7 @@ type Journey = {
2054
2074
  }>
2055
2075
  journey_type?: string
2056
2076
  protected?: boolean
2077
+ protectedEditable?: string[]
2057
2078
  settings?: {
2058
2079
  embedOptions?: {
2059
2080
  mode?: { ... }
@@ -2095,7 +2116,6 @@ type Journey = {
2095
2116
  }
2096
2117
  thirdPartyCookies?: boolean
2097
2118
  }
2098
- validationRules?: Record<string, string | Record<string, string>>
2099
2119
  // ...
2100
2120
  }
2101
2121
  ```
package/docs/snapshot.md CHANGED
@@ -91,6 +91,7 @@ const { data } = await client.listSnapshots({
91
91
  cursor: 'example',
92
92
  size: 1,
93
93
  resource: ['...'],
94
+ trigger: 'example',
94
95
  })
95
96
  ```
96
97
 
@@ -297,7 +298,8 @@ const { data } = await client.restoreSnapshot(
297
298
  },
298
299
  {
299
300
  preserve_modified: false,
300
- preserve_co_owned: false
301
+ preserve_co_owned: false,
302
+ exclude_target_ids: ['string']
301
303
  },
302
304
  )
303
305
  ```
@@ -536,16 +538,16 @@ type CreateSnapshotResponse = {
536
538
 
537
539
  ### `RestoreSnapshotRequest`
538
540
 
539
- Both flags default to `false`, which restores every captured resource —
540
- Config Hub's manual-restore semantics. blueprint-manifest-api sets
541
- both `true` when reverting a blueprint install so user edits and
542
- cross-blueprint contributions survive. Each flag is independent so a
543
- caller can preserve edits w
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.
544
+
544
545
 
545
546
  ```ts
546
547
  type RestoreSnapshotRequest = {
547
548
  preserve_modified?: boolean
548
549
  preserve_co_owned?: boolean
550
+ exclude_target_ids?: string[]
549
551
  }
550
552
  ```
551
553
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/sdk",
3
- "version": "2.8.7",
3
+ "version": "2.8.9",
4
4
  "description": "JavaScript/TypeScript SDK for epilot APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1,14 +0,0 @@
1
- import {
2
- __commonJS
3
- } from "./chunk-YPSWSI3M.js";
4
-
5
- // src/definitions/snapshot-runtime.json
6
- var require_snapshot_runtime = __commonJS({
7
- "src/definitions/snapshot-runtime.json"(exports, module) {
8
- module.exports = { s: "https://snapshot.sls.epilot.io", o: [["createSnapshot", "post", "/v1/snapshots", null, 1], ["listSnapshots", "get", "/v1/snapshots", [["cursor", "q"], ["size", "q"], ["resource", "q"]]], ["captureOrgSnapshot", "post", "/v1/snapshots:capture-org", null, 1], ["getSnapshot", "get", "/v1/snapshots/{id}"], ["deleteSnapshot", "delete", "/v1/snapshots/{id}"], ["restoreSnapshot", "post", "/v1/snapshots/{id}:restore", null, 1], ["listSnapshotResources", "get", "/v1/snapshots/{id}/resources"], ["getSnapshotResource", "get", "/v1/snapshots/{id}/resources/{lineage_id}"], ["listDependencies", "post", "/v1/snapshots:list-dependencies", null, 1]], v: "3.0.3", pp: { "/v1/snapshots/{id}": [["id", "p", true]], "/v1/snapshots/{id}:restore": [["id", "p", true]], "/v1/snapshots/{id}/resources": [["id", "p", true]], "/v1/snapshots/{id}/resources/{lineage_id}": [["id", "p", true], ["lineage_id", "p", true]] } };
9
- }
10
- });
11
-
12
- export {
13
- require_snapshot_runtime
14
- };
@@ -1,14 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
4
-
5
- // src/definitions/snapshot-runtime.json
6
- var require_snapshot_runtime = _chunkNJK5F5TFcjs.__commonJS.call(void 0, {
7
- "src/definitions/snapshot-runtime.json"(exports, module) {
8
- module.exports = { s: "https://snapshot.sls.epilot.io", o: [["createSnapshot", "post", "/v1/snapshots", null, 1], ["listSnapshots", "get", "/v1/snapshots", [["cursor", "q"], ["size", "q"], ["resource", "q"]]], ["captureOrgSnapshot", "post", "/v1/snapshots:capture-org", null, 1], ["getSnapshot", "get", "/v1/snapshots/{id}"], ["deleteSnapshot", "delete", "/v1/snapshots/{id}"], ["restoreSnapshot", "post", "/v1/snapshots/{id}:restore", null, 1], ["listSnapshotResources", "get", "/v1/snapshots/{id}/resources"], ["getSnapshotResource", "get", "/v1/snapshots/{id}/resources/{lineage_id}"], ["listDependencies", "post", "/v1/snapshots:list-dependencies", null, 1]], v: "3.0.3", pp: { "/v1/snapshots/{id}": [["id", "p", true]], "/v1/snapshots/{id}:restore": [["id", "p", true]], "/v1/snapshots/{id}/resources": [["id", "p", true]], "/v1/snapshots/{id}/resources/{lineage_id}": [["id", "p", true], ["lineage_id", "p", true]] } };
9
- }
10
- });
11
-
12
-
13
-
14
- exports.require_snapshot_runtime = require_snapshot_runtime;