@epilot/sdk 2.8.2 → 2.8.4

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 (164) hide show
  1. package/README.md +1 -0
  2. package/definitions/blueprint-manifest-runtime.json +1 -1
  3. package/definitions/blueprint-manifest.json +571 -1
  4. package/definitions/snapshot-runtime.json +1 -0
  5. package/definitions/snapshot.json +786 -0
  6. package/definitions/user-runtime.json +1 -1
  7. package/definitions/user.json +441 -0
  8. package/dist/README-NBWAQWQS.js +7 -0
  9. package/dist/README-XCIDDEAE.cjs +7 -0
  10. package/dist/{_index-DB2VV4PQ.cjs → _index-D5TTZP5F.cjs} +4 -1
  11. package/dist/{_index-5FB6F5YY.js → _index-UY46ZN47.js} +3 -0
  12. package/dist/apis/access-token.cjs +6 -6
  13. package/dist/apis/access-token.js +1 -1
  14. package/dist/apis/address-suggestions.cjs +6 -6
  15. package/dist/apis/address-suggestions.js +1 -1
  16. package/dist/apis/address.cjs +6 -6
  17. package/dist/apis/address.js +1 -1
  18. package/dist/apis/ai-agents.cjs +6 -6
  19. package/dist/apis/ai-agents.js +1 -1
  20. package/dist/apis/app.cjs +6 -6
  21. package/dist/apis/app.js +1 -1
  22. package/dist/apis/audit-logs.cjs +6 -6
  23. package/dist/apis/audit-logs.js +1 -1
  24. package/dist/apis/automation.cjs +6 -6
  25. package/dist/apis/automation.js +1 -1
  26. package/dist/apis/billing.cjs +6 -6
  27. package/dist/apis/billing.js +1 -1
  28. package/dist/apis/blueprint-manifest.cjs +8 -8
  29. package/dist/apis/blueprint-manifest.d.cts +2 -2
  30. package/dist/apis/blueprint-manifest.d.ts +2 -2
  31. package/dist/apis/blueprint-manifest.js +2 -2
  32. package/dist/apis/calendar.cjs +6 -6
  33. package/dist/apis/calendar.js +1 -1
  34. package/dist/apis/configuration-hub.cjs +6 -6
  35. package/dist/apis/configuration-hub.js +1 -1
  36. package/dist/apis/consent.cjs +6 -6
  37. package/dist/apis/consent.js +1 -1
  38. package/dist/apis/customer-portal.cjs +6 -6
  39. package/dist/apis/customer-portal.js +1 -1
  40. package/dist/apis/dashboard.cjs +6 -6
  41. package/dist/apis/dashboard.js +1 -1
  42. package/dist/apis/data-governance.cjs +6 -6
  43. package/dist/apis/data-governance.js +1 -1
  44. package/dist/apis/deduplication.cjs +6 -6
  45. package/dist/apis/deduplication.js +1 -1
  46. package/dist/apis/design.cjs +6 -6
  47. package/dist/apis/design.js +1 -1
  48. package/dist/apis/document.cjs +6 -6
  49. package/dist/apis/document.js +1 -1
  50. package/dist/apis/email-settings.cjs +6 -6
  51. package/dist/apis/email-settings.js +1 -1
  52. package/dist/apis/email-template.cjs +6 -6
  53. package/dist/apis/email-template.js +1 -1
  54. package/dist/apis/entity-mapping.cjs +6 -6
  55. package/dist/apis/entity-mapping.js +1 -1
  56. package/dist/apis/entity.cjs +6 -6
  57. package/dist/apis/entity.js +1 -1
  58. package/dist/apis/environments.cjs +6 -6
  59. package/dist/apis/environments.js +1 -1
  60. package/dist/apis/event-catalog.cjs +6 -6
  61. package/dist/apis/event-catalog.js +1 -1
  62. package/dist/apis/file.cjs +6 -6
  63. package/dist/apis/file.js +1 -1
  64. package/dist/apis/iban.cjs +6 -6
  65. package/dist/apis/iban.js +1 -1
  66. package/dist/apis/integration-toolkit.cjs +6 -6
  67. package/dist/apis/integration-toolkit.js +1 -1
  68. package/dist/apis/journey.cjs +6 -6
  69. package/dist/apis/journey.js +1 -1
  70. package/dist/apis/kanban.cjs +6 -6
  71. package/dist/apis/kanban.js +1 -1
  72. package/dist/apis/message.cjs +6 -6
  73. package/dist/apis/message.js +1 -1
  74. package/dist/apis/metering.cjs +6 -6
  75. package/dist/apis/metering.js +1 -1
  76. package/dist/apis/notes.cjs +6 -6
  77. package/dist/apis/notes.js +1 -1
  78. package/dist/apis/notification.cjs +6 -6
  79. package/dist/apis/notification.js +1 -1
  80. package/dist/apis/organization.cjs +6 -6
  81. package/dist/apis/organization.js +1 -1
  82. package/dist/apis/partner-directory.cjs +6 -6
  83. package/dist/apis/partner-directory.js +1 -1
  84. package/dist/apis/permissions.cjs +6 -6
  85. package/dist/apis/permissions.js +1 -1
  86. package/dist/apis/pricing-tier.cjs +6 -6
  87. package/dist/apis/pricing-tier.js +1 -1
  88. package/dist/apis/pricing.cjs +6 -6
  89. package/dist/apis/pricing.js +1 -1
  90. package/dist/apis/purpose.cjs +6 -6
  91. package/dist/apis/purpose.js +1 -1
  92. package/dist/apis/query.cjs +6 -6
  93. package/dist/apis/query.js +1 -1
  94. package/dist/apis/sandbox.cjs +6 -6
  95. package/dist/apis/sandbox.js +1 -1
  96. package/dist/apis/sharing.cjs +6 -6
  97. package/dist/apis/sharing.js +1 -1
  98. package/dist/apis/snapshot.cjs +38 -0
  99. package/dist/apis/snapshot.d.cts +18 -0
  100. package/dist/apis/snapshot.d.ts +18 -0
  101. package/dist/apis/snapshot.js +38 -0
  102. package/dist/apis/submission.cjs +6 -6
  103. package/dist/apis/submission.js +1 -1
  104. package/dist/apis/target.cjs +6 -6
  105. package/dist/apis/target.js +1 -1
  106. package/dist/apis/targeting.cjs +6 -6
  107. package/dist/apis/targeting.js +1 -1
  108. package/dist/apis/template-variables.cjs +6 -6
  109. package/dist/apis/template-variables.js +1 -1
  110. package/dist/apis/user.cjs +8 -8
  111. package/dist/apis/user.d.cts +2 -2
  112. package/dist/apis/user.d.ts +2 -2
  113. package/dist/apis/user.js +2 -2
  114. package/dist/apis/validation-rules.cjs +6 -6
  115. package/dist/apis/validation-rules.js +1 -1
  116. package/dist/apis/webhooks.cjs +6 -6
  117. package/dist/apis/webhooks.js +1 -1
  118. package/dist/apis/workflow-definition.cjs +6 -6
  119. package/dist/apis/workflow-definition.js +1 -1
  120. package/dist/apis/workflow.cjs +6 -6
  121. package/dist/apis/workflow.js +1 -1
  122. package/dist/blueprint-manifest-WHYSBU66.cjs +7 -0
  123. package/dist/blueprint-manifest-WZVBTKUL.js +7 -0
  124. package/dist/{blueprint-manifest-runtime-FRLU3ZSF.js → blueprint-manifest-runtime-2344IUIE.js} +1 -1
  125. package/dist/{blueprint-manifest-runtime-EIDOROIQ.cjs → blueprint-manifest-runtime-WU5MWPVT.cjs} +2 -2
  126. package/dist/{blueprint-manifest.d-B8yDxagC.d.cts → blueprint-manifest.d-2-TORV8o.d.cts} +926 -4
  127. package/dist/{blueprint-manifest.d-B8yDxagC.d.ts → blueprint-manifest.d-2-TORV8o.d.ts} +926 -4
  128. package/dist/chunk-DFYZ3LS2.cjs +14 -0
  129. package/dist/chunk-GUYARNLI.js +14 -0
  130. package/dist/{chunk-3IOUJMDV.cjs → chunk-M432U2EN.cjs} +8 -6
  131. package/dist/chunk-NFIYEMMM.js +14 -0
  132. package/dist/chunk-OWXEZ56F.cjs +14 -0
  133. package/dist/{chunk-NGHCQ2FA.cjs → chunk-T57MT6J5.cjs} +1 -1
  134. package/dist/{chunk-MVY54TDV.js → chunk-TP3MI5V5.js} +8 -6
  135. package/dist/{chunk-4YBWMDFP.js → chunk-UWGWRGGB.js} +1 -1
  136. package/dist/index.cjs +22 -14
  137. package/dist/index.d.cts +19 -17
  138. package/dist/index.d.ts +19 -17
  139. package/dist/index.js +13 -5
  140. package/dist/snapshot-CTKT2ILE.cjs +7 -0
  141. package/dist/snapshot-XYFMWDVA.js +7 -0
  142. package/dist/snapshot-runtime-EXWPPYJI.js +5 -0
  143. package/dist/snapshot-runtime-XUQIDON7.cjs +5 -0
  144. package/dist/snapshot.d-BX0xhQlH.d.cts +588 -0
  145. package/dist/snapshot.d-BX0xhQlH.d.ts +588 -0
  146. package/dist/user-3SLAEEVD.cjs +7 -0
  147. package/dist/user-PRUYBXQV.js +7 -0
  148. package/dist/{user-runtime-U4HYUWJU.js → user-runtime-6ICV2Y73.js} +1 -1
  149. package/dist/user-runtime-Y3227ETX.cjs +5 -0
  150. package/dist/{user.d-D18fe97W.d.ts → user.d-L-C7_K84.d.cts} +421 -1
  151. package/dist/{user.d-D18fe97W.d.cts → user.d-L-C7_K84.d.ts} +421 -1
  152. package/docs/blueprint-manifest.md +421 -95
  153. package/docs/snapshot.md +561 -0
  154. package/docs/user.md +321 -8
  155. package/package.json +10 -1
  156. package/dist/README-46VYEGGW.js +0 -7
  157. package/dist/README-IVBISSWB.cjs +0 -7
  158. package/dist/blueprint-manifest-6DEYW5MW.js +0 -7
  159. package/dist/blueprint-manifest-GCV7H74X.cjs +0 -7
  160. package/dist/chunk-3XKBB5AE.js +0 -14
  161. package/dist/chunk-Z5TVWG3I.cjs +0 -14
  162. package/dist/user-7ZN2XO7G.cjs +0 -7
  163. package/dist/user-ZK7BK6VY.js +0 -7
  164. package/dist/user-runtime-7O2HLFVQ.cjs +0 -5
@@ -0,0 +1,561 @@
1
+ # Snapshot API
2
+
3
+ - **Base URL:** `https://snapshot.sls.epilot.io`
4
+ - **Full API Docs:** [https://docs.epilot.io/api/snapshot](https://docs.epilot.io/api/snapshot)
5
+
6
+ ## Usage
7
+
8
+ ```ts
9
+ import { epilot } from '@epilot/sdk'
10
+
11
+ epilot.authorize(() => '<token>')
12
+ const { data } = await epilot.snapshot.createSnapshot(...)
13
+ ```
14
+
15
+ ### Tree-shakeable import
16
+
17
+ ```ts
18
+ import { getClient, authorize } from '@epilot/sdk/snapshot'
19
+
20
+ const snapshotClient = getClient()
21
+ authorize(snapshotClient, () => '<token>')
22
+ const { data } = await snapshotClient.createSnapshot(...)
23
+ ```
24
+
25
+ ## Operations
26
+
27
+ **Snapshots**
28
+ - [`createSnapshot`](#createsnapshot)
29
+ - [`listSnapshots`](#listsnapshots)
30
+ - [`getSnapshot`](#getsnapshot)
31
+ - [`deleteSnapshot`](#deletesnapshot)
32
+ - [`restoreSnapshot`](#restoresnapshot)
33
+ - [`listSnapshotResources`](#listsnapshotresources)
34
+ - [`getSnapshotResource`](#getsnapshotresource)
35
+ - [`listDependencies`](#listdependencies)
36
+
37
+ **Schemas**
38
+ - [`Error`](#error)
39
+ - [`ResourceRef`](#resourceref)
40
+ - [`SnapshotResourceSummary`](#snapshotresourcesummary)
41
+ - [`SnapshotResourceList`](#snapshotresourcelist)
42
+ - [`SnapshotResourceDetail`](#snapshotresourcedetail)
43
+ - [`CreateSnapshotRequest`](#createsnapshotrequest)
44
+ - [`CreateSnapshotResponse`](#createsnapshotresponse)
45
+ - [`RestoreSnapshotRequest`](#restoresnapshotrequest)
46
+ - [`RestoreSnapshotResponse`](#restoresnapshotresponse)
47
+ - [`Snapshot`](#snapshot)
48
+ - [`Operation`](#operation)
49
+ - [`SkippedResource`](#skippedresource)
50
+ - [`CallerIdentity`](#calleridentity)
51
+
52
+ ### `createSnapshot`
53
+
54
+ Create a new snapshot of the given resources. Async — returns immediately
55
+ with a snapshot ID; client polls `getSnapshot` until `create.status`
56
+ moves from `in_progress` to `completed` or `failed`.
57
+
58
+ `POST /v1/snapshots`
59
+
60
+ ```ts
61
+ const { data } = await client.createSnapshot(
62
+ null,
63
+ {
64
+ name: 'string',
65
+ description: 'string',
66
+ trigger: 'manual',
67
+ blueprint_instance_id: 'string',
68
+ resources: [
69
+ {
70
+ type: 'string',
71
+ id: 'string'
72
+ }
73
+ ]
74
+ },
75
+ )
76
+ ```
77
+
78
+ ---
79
+
80
+ ### `listSnapshots`
81
+
82
+ List snapshots for the caller's organization, newest first.
83
+
84
+ `GET /v1/snapshots`
85
+
86
+ ```ts
87
+ const { data } = await client.listSnapshots({
88
+ cursor: 'example',
89
+ size: 1,
90
+ resource: ['...'],
91
+ })
92
+ ```
93
+
94
+ <details>
95
+ <summary>Response</summary>
96
+
97
+ ```json
98
+ {
99
+ "page_size": 0,
100
+ "cursor": "string",
101
+ "results": [
102
+ {
103
+ "id": "string",
104
+ "org_id": "string",
105
+ "name": "string",
106
+ "description": "string",
107
+ "trigger": "manual",
108
+ "blueprint_instance_id": "string",
109
+ "resource_counts": {},
110
+ "create": {
111
+ "type": "create",
112
+ "started_at": "1970-01-01T00:00:00.000Z",
113
+ "completed_at": "1970-01-01T00:00:00.000Z",
114
+ "status": "in_progress",
115
+ "error": "string",
116
+ "triggered_by": {
117
+ "name": "string",
118
+ "user_id": "string",
119
+ "token_id": "string"
120
+ },
121
+ "skipped": [
122
+ {
123
+ "lineage_id": "string",
124
+ "reason": "modified"
125
+ }
126
+ ]
127
+ },
128
+ "restores": [
129
+ {
130
+ "type": "create",
131
+ "started_at": "1970-01-01T00:00:00.000Z",
132
+ "completed_at": "1970-01-01T00:00:00.000Z",
133
+ "status": "in_progress",
134
+ "error": "string",
135
+ "triggered_by": {
136
+ "name": "string",
137
+ "user_id": "string",
138
+ "token_id": "string"
139
+ },
140
+ "skipped": [
141
+ {
142
+ "lineage_id": "string",
143
+ "reason": "modified"
144
+ }
145
+ ]
146
+ }
147
+ ],
148
+ "matched_count": 0
149
+ }
150
+ ]
151
+ }
152
+ ```
153
+
154
+ </details>
155
+
156
+ ---
157
+
158
+ ### `getSnapshot`
159
+
160
+ Fetch a snapshot's metadata. Poll this endpoint to track create/restore progress.
161
+
162
+ `GET /v1/snapshots/{id}`
163
+
164
+ ```ts
165
+ const { data } = await client.getSnapshot({
166
+ id: '123e4567-e89b-12d3-a456-426614174000',
167
+ })
168
+ ```
169
+
170
+ <details>
171
+ <summary>Response</summary>
172
+
173
+ ```json
174
+ {
175
+ "id": "string",
176
+ "org_id": "string",
177
+ "name": "string",
178
+ "description": "string",
179
+ "trigger": "manual",
180
+ "blueprint_instance_id": "string",
181
+ "resource_counts": {},
182
+ "create": {
183
+ "type": "create",
184
+ "started_at": "1970-01-01T00:00:00.000Z",
185
+ "completed_at": "1970-01-01T00:00:00.000Z",
186
+ "status": "in_progress",
187
+ "error": "string",
188
+ "triggered_by": {
189
+ "name": "string",
190
+ "user_id": "string",
191
+ "token_id": "string"
192
+ },
193
+ "skipped": [
194
+ {
195
+ "lineage_id": "string",
196
+ "reason": "modified"
197
+ }
198
+ ]
199
+ },
200
+ "restores": [
201
+ {
202
+ "type": "create",
203
+ "started_at": "1970-01-01T00:00:00.000Z",
204
+ "completed_at": "1970-01-01T00:00:00.000Z",
205
+ "status": "in_progress",
206
+ "error": "string",
207
+ "triggered_by": {
208
+ "name": "string",
209
+ "user_id": "string",
210
+ "token_id": "string"
211
+ },
212
+ "skipped": [
213
+ {
214
+ "lineage_id": "string",
215
+ "reason": "modified"
216
+ }
217
+ ]
218
+ }
219
+ ],
220
+ "matched_count": 0
221
+ }
222
+ ```
223
+
224
+ </details>
225
+
226
+ ---
227
+
228
+ ### `deleteSnapshot`
229
+
230
+ Delete a snapshot's metadata and S3 manifest.
231
+
232
+ `DELETE /v1/snapshots/{id}`
233
+
234
+ ```ts
235
+ const { data } = await client.deleteSnapshot({
236
+ id: '123e4567-e89b-12d3-a456-426614174000',
237
+ })
238
+ ```
239
+
240
+ ---
241
+
242
+ ### `restoreSnapshot`
243
+
244
+ Restore a snapshot to the org. Async — returns immediately; client polls
245
+ `getSnapshot` until the latest entry in `restores` moves from
246
+ `in_progress` to one of `completed | partial | failed`.
247
+
248
+ `POST /v1/snapshots/{id}:restore`
249
+
250
+ ```ts
251
+ const { data } = await client.restoreSnapshot(
252
+ {
253
+ id: '123e4567-e89b-12d3-a456-426614174000',
254
+ },
255
+ {
256
+ mode: 'overwrite'
257
+ },
258
+ )
259
+ ```
260
+
261
+ ---
262
+
263
+ ### `listSnapshotResources`
264
+
265
+ List the resources captured in this snapshot. Returns lightweight
266
+ identity fields per resource — payloads are fetched via the
267
+ single-resource endpoint when needed.
268
+
269
+ `GET /v1/snapshots/{id}/resources`
270
+
271
+ ```ts
272
+ const { data } = await client.listSnapshotResources({
273
+ id: '123e4567-e89b-12d3-a456-426614174000',
274
+ })
275
+ ```
276
+
277
+ <details>
278
+ <summary>Response</summary>
279
+
280
+ ```json
281
+ {
282
+ "resources": [
283
+ {
284
+ "lineage_id": "string",
285
+ "target_id": "string",
286
+ "type": "string",
287
+ "name": "string"
288
+ }
289
+ ]
290
+ }
291
+ ```
292
+
293
+ </details>
294
+
295
+ ---
296
+
297
+ ### `getSnapshotResource`
298
+
299
+ Fetch one captured resource with its full payload. For UI views
300
+ that diff the captured state against the current destination.
301
+
302
+ `GET /v1/snapshots/{id}/resources/{lineage_id}`
303
+
304
+ ```ts
305
+ const { data } = await client.getSnapshotResource({
306
+ id: '123e4567-e89b-12d3-a456-426614174000',
307
+ lineage_id: 'example',
308
+ })
309
+ ```
310
+
311
+ <details>
312
+ <summary>Response</summary>
313
+
314
+ ```json
315
+ {
316
+ "lineage_id": "string",
317
+ "target_id": "string",
318
+ "type": "string",
319
+ "name": "string",
320
+ "captured": {}
321
+ }
322
+ ```
323
+
324
+ </details>
325
+
326
+ ---
327
+
328
+ ### `listDependencies`
329
+
330
+ Walk the dependency tree for a set of resources and return the full
331
+ transitive closure, topologically sorted.
332
+
333
+ `POST /v1/snapshots:list-dependencies`
334
+
335
+ ```ts
336
+ const { data } = await client.listDependencies(
337
+ null,
338
+ {
339
+ resources: [
340
+ {
341
+ type: 'string',
342
+ id: 'string'
343
+ }
344
+ ]
345
+ },
346
+ )
347
+ ```
348
+
349
+ <details>
350
+ <summary>Response</summary>
351
+
352
+ ```json
353
+ {
354
+ "dependencies": [
355
+ {
356
+ "type": "string",
357
+ "id": "string"
358
+ }
359
+ ]
360
+ }
361
+ ```
362
+
363
+ </details>
364
+
365
+ ---
366
+
367
+ ## Schemas
368
+
369
+ ### `Error`
370
+
371
+ ```ts
372
+ type Error = {
373
+ status: number
374
+ error: string
375
+ }
376
+ ```
377
+
378
+ ### `ResourceRef`
379
+
380
+ ```ts
381
+ type ResourceRef = {
382
+ type: string
383
+ id: string
384
+ }
385
+ ```
386
+
387
+ ### `SnapshotResourceSummary`
388
+
389
+ Lightweight identity for a captured resource. Returned by
390
+ `listSnapshotResources`; the full payload is fetched separately via
391
+ `getSnapshotResource` when needed.
392
+
393
+
394
+ ```ts
395
+ type SnapshotResourceSummary = {
396
+ lineage_id: string
397
+ target_id: string
398
+ type: string
399
+ name?: string
400
+ }
401
+ ```
402
+
403
+ ### `SnapshotResourceList`
404
+
405
+ ```ts
406
+ type SnapshotResourceList = {
407
+ resources: Array<{
408
+ lineage_id: string
409
+ target_id: string
410
+ type: string
411
+ name?: string
412
+ }>
413
+ }
414
+ ```
415
+
416
+ ### `SnapshotResourceDetail`
417
+
418
+ A single captured resource with its full payload. The identity fields
419
+ match `SnapshotResourceSummary`; the `captured` payload is the
420
+ pre-install state at snapshot time.
421
+
422
+
423
+ ```ts
424
+ type SnapshotResourceDetail = {
425
+ lineage_id: string
426
+ target_id: string
427
+ type: string
428
+ name?: string
429
+ captured: Record<string, unknown>
430
+ }
431
+ ```
432
+
433
+ ### `CreateSnapshotRequest`
434
+
435
+ ```ts
436
+ type CreateSnapshotRequest = {
437
+ name: string
438
+ description?: string
439
+ trigger?: "manual" | "sync" | "blueprint_install"
440
+ blueprint_instance_id?: string
441
+ resources: Array<{
442
+ type: string
443
+ id: string
444
+ }>
445
+ }
446
+ ```
447
+
448
+ ### `CreateSnapshotResponse`
449
+
450
+ ```ts
451
+ type CreateSnapshotResponse = {
452
+ id: string
453
+ name: string
454
+ status: "creating"
455
+ created_at: string // date-time
456
+ }
457
+ ```
458
+
459
+ ### `RestoreSnapshotRequest`
460
+
461
+ ```ts
462
+ type RestoreSnapshotRequest = {
463
+ mode?: "overwrite" | "preserve_edits"
464
+ }
465
+ ```
466
+
467
+ ### `RestoreSnapshotResponse`
468
+
469
+ ```ts
470
+ type RestoreSnapshotResponse = {
471
+ id: string
472
+ status: "restoring"
473
+ }
474
+ ```
475
+
476
+ ### `Snapshot`
477
+
478
+ ```ts
479
+ type Snapshot = {
480
+ id: string
481
+ org_id: string
482
+ name: string
483
+ description?: string
484
+ trigger: "manual" | "sync" | "blueprint_install"
485
+ blueprint_instance_id?: string
486
+ resource_counts: Record<string, number>
487
+ create: {
488
+ type: "create" | "restore"
489
+ started_at: string // date-time
490
+ completed_at?: string // date-time
491
+ status: "in_progress" | "completed" | "partial" | "failed"
492
+ error?: string
493
+ triggered_by: {
494
+ name: { ... }
495
+ user_id?: { ... }
496
+ token_id?: { ... }
497
+ }
498
+ skipped?: Array<{
499
+ lineage_id: { ... }
500
+ reason: { ... }
501
+ }>
502
+ }
503
+ restores: Array<{
504
+ type: "create" | "restore"
505
+ started_at: string // date-time
506
+ completed_at?: string // date-time
507
+ status: "in_progress" | "completed" | "partial" | "failed"
508
+ error?: string
509
+ triggered_by: {
510
+ name: { ... }
511
+ user_id?: { ... }
512
+ token_id?: { ... }
513
+ }
514
+ skipped?: Array<{
515
+ lineage_id: { ... }
516
+ reason: { ... }
517
+ }>
518
+ }>
519
+ matched_count?: number
520
+ }
521
+ ```
522
+
523
+ ### `Operation`
524
+
525
+ ```ts
526
+ type Operation = {
527
+ type: "create" | "restore"
528
+ started_at: string // date-time
529
+ completed_at?: string // date-time
530
+ status: "in_progress" | "completed" | "partial" | "failed"
531
+ error?: string
532
+ triggered_by: {
533
+ name: string
534
+ user_id?: string
535
+ token_id?: string
536
+ }
537
+ skipped?: Array<{
538
+ lineage_id: string
539
+ reason: "modified" | "co_owned"
540
+ }>
541
+ }
542
+ ```
543
+
544
+ ### `SkippedResource`
545
+
546
+ ```ts
547
+ type SkippedResource = {
548
+ lineage_id: string
549
+ reason: "modified" | "co_owned"
550
+ }
551
+ ```
552
+
553
+ ### `CallerIdentity`
554
+
555
+ ```ts
556
+ type CallerIdentity = {
557
+ name: string
558
+ user_id?: string
559
+ token_id?: string
560
+ }
561
+ ```