@greatwait/contracts 0.1.0-alpha.3 → 0.1.0-alpha.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 (299) hide show
  1. package/README.md +11 -9
  2. package/dist/authority.d.ts +33 -27
  3. package/dist/authority.js +12 -2
  4. package/dist/billing.d.ts +1001 -0
  5. package/dist/billing.js +684 -0
  6. package/dist/callback-safety.d.ts +2 -2
  7. package/dist/callback-safety.js +2 -2
  8. package/dist/compatibility.d.ts +3 -3
  9. package/dist/compatibility.js +1 -1
  10. package/dist/data-export.d.ts +67 -0
  11. package/dist/data-export.js +182 -0
  12. package/dist/endpoints.d.ts +181 -240
  13. package/dist/endpoints.js +77 -81
  14. package/dist/events.d.ts +17 -17
  15. package/dist/events.js +1 -1
  16. package/dist/first-value-journey.d.ts +49 -55
  17. package/dist/first-value-journey.js +6 -13
  18. package/dist/forecast.d.ts +71 -71
  19. package/dist/forecast.js +1 -1
  20. package/dist/identifiers.d.ts +20 -20
  21. package/dist/identifiers.js +1 -1
  22. package/dist/identity.d.ts +41 -37
  23. package/dist/identity.js +5 -4
  24. package/dist/index.d.ts +10 -5
  25. package/dist/index.js +10 -5
  26. package/dist/mcp.d.ts +21 -19
  27. package/dist/mcp.js +1 -1
  28. package/dist/naming.d.ts +45 -0
  29. package/dist/naming.js +159 -0
  30. package/dist/oauth.d.ts +186 -172
  31. package/dist/oauth.js +1 -1
  32. package/dist/operation-definitions.d.ts +9 -0
  33. package/dist/operation-definitions.js +7 -0
  34. package/dist/operations.d.ts +4162 -2171
  35. package/dist/operations.js +2679 -908
  36. package/dist/organization-lifecycle.d.ts +34 -0
  37. package/dist/organization-lifecycle.js +122 -0
  38. package/dist/partition.d.ts +26 -0
  39. package/dist/policy.d.ts +4 -4
  40. package/dist/policy.js +9 -5
  41. package/dist/problems.d.ts +32 -26
  42. package/dist/problems.js +6 -2
  43. package/dist/protocol.d.ts +204 -75
  44. package/dist/protocol.js +108 -36
  45. package/dist/scheduling-records.d.ts +343 -285
  46. package/dist/scheduling-records.js +1 -1
  47. package/dist/scheduling.d.ts +670 -360
  48. package/dist/scheduling.js +382 -56
  49. package/dist/secrets.d.ts +119 -105
  50. package/dist/secrets.js +1 -1
  51. package/dist/signatures.d.ts +74 -74
  52. package/dist/signatures.js +1 -1
  53. package/dist/tenancy.d.ts +142 -68
  54. package/dist/tenancy.js +70 -17
  55. package/dist/test-sink.d.ts +127 -127
  56. package/dist/test-sink.js +1 -1
  57. package/dist/time.d.ts +4 -4
  58. package/dist/time.js +1 -1
  59. package/dist/timing.d.ts +65 -0
  60. package/dist/timing.js +82 -0
  61. package/dist/usage.d.ts +103 -47
  62. package/dist/usage.js +197 -31
  63. package/dist/workspace.d.ts +34 -34
  64. package/dist/workspace.js +1 -1
  65. package/dist/zod-values.d.ts +3 -0
  66. package/dist/zod-values.js +2 -0
  67. package/dist/zod.d.ts +2 -0
  68. package/dist/zod.js +2 -0
  69. package/generated/v1/examples/attempts.list.response.json +4 -0
  70. package/generated/v1/examples/attempts.read.response.json +4 -0
  71. package/generated/v1/examples/billing.autotopup.request.json +5 -0
  72. package/generated/v1/examples/billing.autotopup.response.json +120 -0
  73. package/generated/v1/examples/billing.autotopuppreview.request.json +19 -0
  74. package/generated/v1/examples/billing.autotopuppreview.response.json +45 -0
  75. package/generated/v1/examples/billing.budgets.request.json +13 -0
  76. package/generated/v1/examples/billing.budgets.response.json +22 -0
  77. package/generated/v1/examples/billing.ceiling.request.json +8 -0
  78. package/generated/v1/examples/billing.ceiling.response.json +120 -0
  79. package/generated/v1/examples/billing.change.request.json +5 -0
  80. package/generated/v1/examples/billing.change.response.json +12 -0
  81. package/generated/v1/examples/billing.funding.response.json +120 -0
  82. package/generated/v1/examples/billing.fundingquote.request.json +7 -0
  83. package/generated/v1/examples/billing.fundingquote.response.json +13 -0
  84. package/generated/v1/examples/billing.ledger.response.json +23 -0
  85. package/generated/v1/examples/billing.notices.response.json +41 -0
  86. package/generated/v1/examples/billing.notificationsettings.response.json +17 -0
  87. package/generated/v1/examples/billing.notificationsettingsupdate.request.json +9 -0
  88. package/generated/v1/examples/billing.notificationsettingsupdate.response.json +17 -0
  89. package/generated/v1/examples/billing.portal.response.json +3 -0
  90. package/generated/v1/examples/billing.projects.response.json +12 -0
  91. package/generated/v1/examples/billing.purchase.request.json +5 -0
  92. package/generated/v1/examples/billing.purchase.response.json +120 -0
  93. package/generated/v1/examples/billing.quote.request.json +4 -0
  94. package/generated/v1/examples/billing.quote.response.json +19 -0
  95. package/generated/v1/examples/billing.reconcile.response.json +73 -0
  96. package/generated/v1/examples/billing.refundrequest.request.json +10 -0
  97. package/generated/v1/examples/billing.refundrequest.response.json +11 -0
  98. package/generated/v1/examples/billing.refundresolution.request.json +4 -0
  99. package/generated/v1/examples/billing.refundresolution.response.json +120 -0
  100. package/generated/v1/examples/billing.summary.response.json +73 -0
  101. package/generated/v1/examples/endpoints.acknowledgeSigningKeyRotation.response.json +18 -0
  102. package/generated/v1/examples/endpoints.create.response.json +1 -1
  103. package/generated/v1/examples/endpoints.disable.response.json +0 -1
  104. package/generated/v1/examples/{endpoints.verify.response.json → endpoints.enable.response.json} +4 -5
  105. package/generated/v1/examples/endpoints.list.response.json +1 -2
  106. package/generated/v1/examples/endpoints.read.response.json +2 -2
  107. package/generated/v1/examples/endpoints.revealSigningSecret.response.json +7 -0
  108. package/generated/v1/examples/endpoints.rotateSigningKey.response.json +1 -2
  109. package/generated/v1/examples/endpoints.update.response.json +1 -1
  110. package/generated/v1/examples/executions.list.response.json +20 -0
  111. package/generated/v1/examples/exports.cancel.response.json +11 -0
  112. package/generated/v1/examples/exports.create.request.json +1 -0
  113. package/generated/v1/examples/exports.create.response.json +8 -0
  114. package/generated/v1/examples/exports.part.response.json +5 -0
  115. package/generated/v1/examples/exports.read.response.json +8 -0
  116. package/generated/v1/examples/occurrences.read.response.json +4 -0
  117. package/generated/v1/examples/organizations.close.request.json +5 -0
  118. package/generated/v1/examples/organizations.close.response.json +10 -0
  119. package/generated/v1/examples/organizations.lifecycle.response.json +10 -0
  120. package/generated/v1/examples/organizations.restore.request.json +3 -0
  121. package/generated/v1/examples/organizations.restore.response.json +10 -0
  122. package/generated/v1/examples/projects.archive.request.json +3 -0
  123. package/generated/v1/examples/projects.archive.response.json +14 -0
  124. package/generated/v1/examples/projects.create.response.json +10 -1
  125. package/generated/v1/examples/projects.delete.response.json +9 -0
  126. package/generated/v1/examples/projects.list.response.json +12 -2
  127. package/generated/v1/examples/projects.rename.request.json +3 -0
  128. package/generated/v1/examples/projects.rename.response.json +14 -0
  129. package/generated/v1/examples/schedules.archive.response.json +3 -0
  130. package/generated/v1/examples/schedules.cancel.response.json +3 -0
  131. package/generated/v1/examples/schedules.create.request.json +4 -0
  132. package/generated/v1/examples/schedules.create.response.json +3 -0
  133. package/generated/v1/examples/schedules.list.response.json +3 -0
  134. package/generated/v1/examples/schedules.pause.response.json +3 -0
  135. package/generated/v1/examples/schedules.read.response.json +6 -0
  136. package/generated/v1/examples/schedules.replace.request.json +4 -0
  137. package/generated/v1/examples/schedules.replace.response.json +3 -0
  138. package/generated/v1/examples/schedules.resume.response.json +3 -0
  139. package/generated/v1/examples/timing.summary.response.json +35 -0
  140. package/generated/v1/examples/usage.read.response.json +1 -0
  141. package/generated/v1/first-value-journey.json +19 -10
  142. package/generated/v1/manifest.json +936 -23
  143. package/generated/v1/openapi.json +29983 -5784
  144. package/generated/v1/policy-matrix.json +278 -47
  145. package/generated/v1/schemas/attempts.list.response.json +24 -1
  146. package/generated/v1/schemas/attempts.read.response.json +24 -1
  147. package/generated/v1/schemas/billing.autotopup.request-headers.json +13 -0
  148. package/generated/v1/schemas/billing.autotopup.request.json +22 -0
  149. package/generated/v1/schemas/billing.autotopup.response-headers.json +10 -0
  150. package/generated/v1/schemas/billing.autotopup.response.json +552 -0
  151. package/generated/v1/schemas/billing.autotopuppreview.request.json +77 -0
  152. package/generated/v1/schemas/billing.autotopuppreview.response.json +277 -0
  153. package/generated/v1/schemas/billing.budgets.request-headers.json +13 -0
  154. package/generated/v1/schemas/billing.budgets.request.json +66 -0
  155. package/generated/v1/schemas/billing.budgets.response-headers.json +10 -0
  156. package/generated/v1/schemas/billing.budgets.response.json +92 -0
  157. package/generated/v1/schemas/billing.ceiling.request-headers.json +13 -0
  158. package/generated/v1/schemas/billing.ceiling.request.json +40 -0
  159. package/generated/v1/schemas/billing.ceiling.response-headers.json +10 -0
  160. package/generated/v1/schemas/billing.ceiling.response.json +552 -0
  161. package/generated/v1/schemas/billing.change.request-headers.json +13 -0
  162. package/generated/v1/schemas/billing.change.request.json +22 -0
  163. package/generated/v1/schemas/billing.change.response.json +119 -0
  164. package/generated/v1/schemas/billing.funding.response.json +552 -0
  165. package/generated/v1/schemas/billing.fundingquote.request.json +28 -0
  166. package/generated/v1/schemas/billing.fundingquote.response.json +61 -0
  167. package/generated/v1/schemas/billing.ledger.query.json +16 -0
  168. package/generated/v1/schemas/billing.ledger.response.json +125 -0
  169. package/generated/v1/schemas/billing.notices.query.json +16 -0
  170. package/generated/v1/schemas/billing.notices.response.json +278 -0
  171. package/generated/v1/schemas/billing.notificationsettings.response.json +70 -0
  172. package/generated/v1/schemas/billing.notificationsettingsupdate.request-headers.json +13 -0
  173. package/generated/v1/schemas/billing.notificationsettingsupdate.request.json +36 -0
  174. package/generated/v1/schemas/billing.notificationsettingsupdate.response-headers.json +10 -0
  175. package/generated/v1/schemas/billing.notificationsettingsupdate.response.json +70 -0
  176. package/generated/v1/schemas/billing.portal.response.json +11 -0
  177. package/generated/v1/schemas/billing.projects.response.json +119 -0
  178. package/generated/v1/schemas/billing.purchase.request-headers.json +13 -0
  179. package/generated/v1/schemas/billing.purchase.request.json +22 -0
  180. package/generated/v1/schemas/billing.purchase.response-headers.json +10 -0
  181. package/generated/v1/schemas/billing.purchase.response.json +552 -0
  182. package/generated/v1/schemas/billing.quote.request.json +20 -0
  183. package/generated/v1/schemas/billing.quote.response.json +86 -0
  184. package/generated/v1/schemas/billing.reconcile.response.json +468 -0
  185. package/generated/v1/schemas/billing.refundrequest.request-headers.json +13 -0
  186. package/generated/v1/schemas/billing.refundrequest.request.json +42 -0
  187. package/generated/v1/schemas/billing.refundrequest.response-headers.json +10 -0
  188. package/generated/v1/schemas/billing.refundrequest.response.json +45 -0
  189. package/generated/v1/schemas/billing.refundresolution.request-headers.json +13 -0
  190. package/generated/v1/schemas/billing.refundresolution.request.json +61 -0
  191. package/generated/v1/schemas/billing.refundresolution.response-headers.json +10 -0
  192. package/generated/v1/schemas/billing.refundresolution.response.json +552 -0
  193. package/generated/v1/schemas/billing.summary.response.json +468 -0
  194. package/generated/v1/schemas/context.read.response.json +2 -0
  195. package/generated/v1/schemas/credentials.connection.response.json +2 -0
  196. package/generated/v1/schemas/credentials.create.request.json +2 -0
  197. package/generated/v1/schemas/credentials.create.response.json +2 -0
  198. package/generated/v1/schemas/credentials.list.response.json +2 -0
  199. package/generated/v1/schemas/credentials.revoke.response.json +2 -0
  200. package/generated/v1/schemas/credentials.rotate.response.json +4 -0
  201. package/generated/v1/schemas/{endpoints.verify.request-headers.json → endpoints.acknowledgeSigningKeyRotation.request-headers.json} +2 -1
  202. package/generated/v1/schemas/{endpoints.verify.response.json → endpoints.acknowledgeSigningKeyRotation.response.json} +8 -21
  203. package/generated/v1/schemas/endpoints.create.request.json +5 -0
  204. package/generated/v1/schemas/endpoints.create.response.json +8 -21
  205. package/generated/v1/schemas/endpoints.disable.response.json +8 -21
  206. package/generated/v1/schemas/endpoints.enable.response-headers.json +11 -0
  207. package/generated/v1/schemas/endpoints.enable.response.json +87 -0
  208. package/generated/v1/schemas/endpoints.list.response.json +8 -21
  209. package/generated/v1/schemas/endpoints.read.response.json +8 -21
  210. package/generated/v1/schemas/endpoints.revealSigningSecret.response.json +43 -0
  211. package/generated/v1/schemas/endpoints.rotateSigningKey.response.json +8 -21
  212. package/generated/v1/schemas/endpoints.update.request.json +5 -0
  213. package/generated/v1/schemas/endpoints.update.response.json +8 -21
  214. package/generated/v1/schemas/executions.list.query.json +46 -0
  215. package/generated/v1/schemas/executions.list.response.json +116 -0
  216. package/generated/v1/schemas/exports.cancel.response.json +48 -0
  217. package/generated/v1/schemas/exports.create.request.json +6 -0
  218. package/generated/v1/schemas/exports.create.response.json +38 -0
  219. package/generated/v1/schemas/exports.part.query.json +11 -0
  220. package/generated/v1/schemas/exports.part.response.json +22 -0
  221. package/generated/v1/schemas/exports.read.response.json +38 -0
  222. package/generated/v1/schemas/grants.list.response.json +2 -0
  223. package/generated/v1/schemas/grants.revoke.response.json +2 -0
  224. package/generated/v1/schemas/occurrences.list.query.json +5 -0
  225. package/generated/v1/schemas/occurrences.list.response.json +23 -0
  226. package/generated/v1/schemas/occurrences.read.response.json +23 -0
  227. package/generated/v1/schemas/occurrences.redeliver.response.json +24 -1
  228. package/generated/v1/schemas/organizations.close.request.json +20 -0
  229. package/generated/v1/schemas/organizations.close.response.json +68 -0
  230. package/generated/v1/schemas/organizations.lifecycle.response.json +68 -0
  231. package/generated/v1/schemas/organizations.restore.request.json +13 -0
  232. package/generated/v1/schemas/organizations.restore.response.json +68 -0
  233. package/generated/v1/schemas/projects.archive.request-headers.json +11 -0
  234. package/generated/v1/schemas/projects.archive.request.json +10 -0
  235. package/generated/v1/schemas/projects.archive.response-headers.json +11 -0
  236. package/generated/v1/schemas/projects.archive.response.json +79 -0
  237. package/generated/v1/schemas/projects.create.response.json +55 -1
  238. package/generated/v1/schemas/projects.delete.request-headers.json +11 -0
  239. package/generated/v1/schemas/projects.delete.response.json +37 -0
  240. package/generated/v1/schemas/projects.list.response.json +61 -2
  241. package/generated/v1/schemas/projects.rename.request-headers.json +11 -0
  242. package/generated/v1/schemas/projects.rename.request.json +12 -0
  243. package/generated/v1/schemas/projects.rename.response-headers.json +11 -0
  244. package/generated/v1/schemas/projects.rename.response.json +79 -0
  245. package/generated/v1/schemas/schedules.archive.response.json +90 -2
  246. package/generated/v1/schemas/schedules.cancel.response.json +90 -2
  247. package/generated/v1/schemas/schedules.create.request.json +24 -3
  248. package/generated/v1/schemas/schedules.create.response.json +90 -2
  249. package/generated/v1/schemas/schedules.list.query.json +13 -0
  250. package/generated/v1/schemas/schedules.list.response.json +67 -2
  251. package/generated/v1/schemas/schedules.pause.response.json +90 -2
  252. package/generated/v1/schemas/schedules.read.response.json +90 -2
  253. package/generated/v1/schemas/schedules.replace.request.json +24 -3
  254. package/generated/v1/schemas/schedules.replace.response.json +90 -2
  255. package/generated/v1/schemas/schedules.resume.response.json +90 -2
  256. package/generated/v1/schemas/timing.summary.response.json +191 -0
  257. package/generated/v1/schemas/usage.read.query.json +7 -0
  258. package/generated/v1/schemas/usage.read.response.json +36 -1
  259. package/generated/v1/snippets/billing.autotopup.json +6 -0
  260. package/generated/v1/snippets/billing.autotopuppreview.json +6 -0
  261. package/generated/v1/snippets/billing.budgets.json +6 -0
  262. package/generated/v1/snippets/billing.ceiling.json +6 -0
  263. package/generated/v1/snippets/billing.change.json +6 -0
  264. package/generated/v1/snippets/billing.funding.json +6 -0
  265. package/generated/v1/snippets/billing.fundingquote.json +6 -0
  266. package/generated/v1/snippets/billing.ledger.json +6 -0
  267. package/generated/v1/snippets/billing.notices.json +6 -0
  268. package/generated/v1/snippets/billing.notificationsettings.json +6 -0
  269. package/generated/v1/snippets/billing.notificationsettingsupdate.json +6 -0
  270. package/generated/v1/snippets/billing.portal.json +6 -0
  271. package/generated/v1/snippets/billing.projects.json +6 -0
  272. package/generated/v1/snippets/billing.purchase.json +6 -0
  273. package/generated/v1/snippets/billing.quote.json +6 -0
  274. package/generated/v1/snippets/billing.reconcile.json +6 -0
  275. package/generated/v1/snippets/billing.refundrequest.json +6 -0
  276. package/generated/v1/snippets/billing.refundresolution.json +6 -0
  277. package/generated/v1/snippets/billing.summary.json +6 -0
  278. package/generated/v1/snippets/endpoints.acknowledgeSigningKeyRotation.json +6 -0
  279. package/generated/v1/snippets/{endpoints.verify.json → endpoints.enable.json} +3 -3
  280. package/generated/v1/snippets/endpoints.revealSigningSecret.json +6 -0
  281. package/generated/v1/snippets/executions.list.json +6 -0
  282. package/generated/v1/snippets/exports.cancel.json +6 -0
  283. package/generated/v1/snippets/exports.create.json +6 -0
  284. package/generated/v1/snippets/exports.part.json +6 -0
  285. package/generated/v1/snippets/exports.read.json +6 -0
  286. package/generated/v1/snippets/organizations.close.json +6 -0
  287. package/generated/v1/snippets/organizations.lifecycle.json +6 -0
  288. package/generated/v1/snippets/organizations.restore.json +6 -0
  289. package/generated/v1/snippets/projects.archive.json +6 -0
  290. package/generated/v1/snippets/projects.delete.json +6 -0
  291. package/generated/v1/snippets/projects.rename.json +6 -0
  292. package/generated/v1/snippets/schedules.create.json +3 -3
  293. package/generated/v1/snippets/schedules.replace.json +3 -3
  294. package/generated/v1/snippets/timing.summary.json +6 -0
  295. package/package.json +1 -6
  296. package/dist/callback-ownership.d.ts +0 -58
  297. package/dist/callback-ownership.js +0 -71
  298. package/generated/v1/callback-endpoint-verification.json +0 -59
  299. /package/generated/v1/schemas/{endpoints.verify.response-headers.json → endpoints.acknowledgeSigningKeyRotation.response-headers.json} +0 -0
@@ -4,8 +4,8 @@
4
4
  * DNS is deliberately not represented here: names are resolved and every
5
5
  * returned address is passed through `isPublicCallbackAddress` by the caller.
6
6
  *
7
- * **That caller is endpoint creation and verification, and since 2026-08-11 it
8
- * is nowhere else.** This comment used to end "and immediately before a send",
7
+ * **That caller is endpoint creation and update, and since 2026-08-11 it is
8
+ * nowhere else.** This comment used to end "and immediately before a send",
9
9
  * which FXO-1566 made false when it removed the send-time re-resolution. What
10
10
  * runs at send time is `evaluateCallbackUrl` alone — a string check, which
11
11
  * cannot see where a hostname points now. FXO-1575 measured what the platform
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "./zod.js";
2
2
  /**
3
3
  * What may change, and what that costs.
4
4
  *
@@ -7,7 +7,7 @@ import { z } from "zod";
7
7
  * day, and a contract change must be visible even when no code deployed.
8
8
  */
9
9
  export declare const CONTRACT_VERSION: "2026-08-22";
10
- export declare const contractVersionSchema: z.ZodLiteral<"2026-08-22">;
10
+ export declare const contractVersionSchema: import("zod").ZodLiteral<"2026-08-22">;
11
11
  /**
12
12
  * Three kinds of change, and only the first is free.
13
13
  *
@@ -29,7 +29,7 @@ export declare const contractVersionSchema: z.ZodLiteral<"2026-08-22">;
29
29
  * exercised by fixtures, so "we thought it was additive" is a testable claim.
30
30
  */
31
31
  export declare const CHANGE_KINDS: readonly ["additive", "breaking", "deployment-only"];
32
- export declare const changeKindSchema: z.ZodEnum<{
32
+ export declare const changeKindSchema: import("zod").ZodEnum<{
33
33
  additive: "additive";
34
34
  breaking: "breaking";
35
35
  "deployment-only": "deployment-only";
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "./zod.js";
2
2
  /**
3
3
  * What may change, and what that costs.
4
4
  *
@@ -0,0 +1,67 @@
1
+ import { z } from "./zod.js";
2
+ import { type RandomBytes } from "./identifiers.js";
3
+ /** A server-assigned export identifier. */
4
+ export declare const dataExportIdSchema: import("zod").ZodString;
5
+ /** Mints the export id without extending the shared identifier vocabulary. */
6
+ export declare function newDataExportId(randomBytes?: RandomBytes): string;
7
+ export declare const DATA_EXPORT_STATES: readonly ["active", "complete", "cancelled"];
8
+ export declare const dataExportStateSchema: import("zod").ZodEnum<{
9
+ active: "active";
10
+ cancelled: "cancelled";
11
+ complete: "complete";
12
+ }>;
13
+ /** Creating an export takes no authority from the body. */
14
+ export declare const dataExportCreateRequestSchema: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
15
+ export declare const dataExportSchema: import("zod").ZodObject<{
16
+ createdAt: import("zod").ZodString;
17
+ consistency: import("zod").ZodLiteral<"creation-cutoff-current-values">;
18
+ cutoffAt: import("zod").ZodString;
19
+ id: import("zod").ZodString;
20
+ state: import("zod").ZodEnum<{
21
+ active: "active";
22
+ cancelled: "cancelled";
23
+ complete: "complete";
24
+ }>;
25
+ updatedAt: import("zod").ZodString;
26
+ }, import("zod/v4/core").$strip>;
27
+ export declare const dataExportPartRequestSchema: import("zod").ZodObject<{
28
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
29
+ }, import("zod/v4/core").$strict>;
30
+ /**
31
+ * One bounded file transported inside the ordinary JSON response envelope.
32
+ * `content` is NDJSON so callers can save it without interpreting customer
33
+ * payload fields, while the response itself stays compatible with the SDK.
34
+ */
35
+ export declare const dataExportPartSchema: import("zod").ZodObject<{
36
+ content: import("zod").ZodString;
37
+ fileName: import("zod").ZodString;
38
+ mediaType: import("zod").ZodLiteral<"application/x-ndjson">;
39
+ nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
40
+ }, import("zod/v4/core").$strip>;
41
+ export declare const dataExportCancelledSchema: import("zod").ZodObject<{
42
+ cancelled: import("zod").ZodLiteral<true>;
43
+ export: import("zod").ZodObject<{
44
+ createdAt: import("zod").ZodString;
45
+ consistency: import("zod").ZodLiteral<"creation-cutoff-current-values">;
46
+ cutoffAt: import("zod").ZodString;
47
+ id: import("zod").ZodString;
48
+ state: import("zod").ZodEnum<{
49
+ active: "active";
50
+ cancelled: "cancelled";
51
+ complete: "complete";
52
+ }>;
53
+ updatedAt: import("zod").ZodString;
54
+ }, import("zod/v4/core").$strip>;
55
+ }, import("zod/v4/core").$strip>;
56
+ export type DataExport = z.infer<typeof dataExportSchema>;
57
+ export type DataExportPart = z.infer<typeof dataExportPartSchema>;
58
+ /** Additive operation declarations, merged into the canonical registry by the API wiring. */
59
+ export declare const DATA_EXPORT_OPERATIONS: readonly [import("./operations.js").OperationDefinition & {
60
+ readonly id: "exports.create";
61
+ }, import("./operations.js").OperationDefinition & {
62
+ readonly id: "exports.read";
63
+ }, import("./operations.js").OperationDefinition & {
64
+ readonly id: "exports.part";
65
+ }, import("./operations.js").OperationDefinition & {
66
+ readonly id: "exports.cancel";
67
+ }];
@@ -0,0 +1,182 @@
1
+ import { z } from "./zod.js";
2
+ import { API_UNUSED_RESPONSE_SCHEMA, defineOperations, } from "./operation-definitions.js";
3
+ import { newId } from "./identifiers.js";
4
+ import { timestampSchema } from "./time.js";
5
+ /** A server-assigned export identifier. */
6
+ export const dataExportIdSchema = z
7
+ .string()
8
+ .regex(/^exp_[0-9abcdefghjkmnpqrstvwxyz]{26}$/u);
9
+ /** Mints the export id without extending the shared identifier vocabulary. */
10
+ export function newDataExportId(randomBytes) {
11
+ return newId("schedule", randomBytes).replace("sch", "exp");
12
+ }
13
+ export const DATA_EXPORT_STATES = ["active", "complete", "cancelled"];
14
+ export const dataExportStateSchema = /* @__PURE__ */ z.enum(DATA_EXPORT_STATES);
15
+ /** Creating an export takes no authority from the body. */
16
+ export const dataExportCreateRequestSchema = z.object({}).strict();
17
+ export const dataExportSchema = /* @__PURE__ */ (() => z.object({
18
+ createdAt: timestampSchema,
19
+ consistency: z.literal("creation-cutoff-current-values"),
20
+ cutoffAt: timestampSchema,
21
+ id: dataExportIdSchema,
22
+ state: dataExportStateSchema,
23
+ updatedAt: timestampSchema,
24
+ }))();
25
+ export const dataExportPartRequestSchema = z
26
+ .object({ cursor: z.string().min(1).optional() })
27
+ .strict();
28
+ /**
29
+ * One bounded file transported inside the ordinary JSON response envelope.
30
+ * `content` is NDJSON so callers can save it without interpreting customer
31
+ * payload fields, while the response itself stays compatible with the SDK.
32
+ */
33
+ export const dataExportPartSchema = /* @__PURE__ */ (() => z.object({
34
+ content: z.string(),
35
+ fileName: z
36
+ .string()
37
+ .regex(/^greatwait-export-exp_[0-9abcdefghjkmnpqrstvwxyz]{26}\.ndjson$/u),
38
+ mediaType: z.literal("application/x-ndjson"),
39
+ nextCursor: z.string().min(1).optional(),
40
+ }))();
41
+ export const dataExportCancelledSchema = /* @__PURE__ */ (() => z.object({
42
+ cancelled: z.literal(true),
43
+ export: dataExportSchema,
44
+ }))();
45
+ const EXAMPLE = {
46
+ createdAt: "2035-03-04T12:00:00.000Z",
47
+ consistency: "creation-cutoff-current-values",
48
+ cutoffAt: "2035-03-04T12:00:00.000Z",
49
+ id: "exp_0123456789abcdefghjkmnpqrs",
50
+ state: "active",
51
+ updatedAt: "2035-03-04T12:00:00.000Z",
52
+ };
53
+ /** Additive operation declarations, merged into the canonical registry by the API wiring. */
54
+ export const DATA_EXPORT_OPERATIONS = defineOperations([
55
+ {
56
+ creates: true,
57
+ description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
58
+ ? ""
59
+ : "Starts an export for the authenticated project and environment. Records created or planned after cutoffAt are excluded; mutable fields have their current value when each part is read. Authority comes from the verified principal; no scope fields are accepted in the body.",
60
+ example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
61
+ ? {}
62
+ : EXAMPLE,
63
+ id: "exports.create",
64
+ idempotent: false,
65
+ mcp: { destructive: false, kind: "tool", openWorld: false },
66
+ method: "POST",
67
+ mutates: true,
68
+ path: "/v1/exports",
69
+ principals: ["api-credential", "oauth", "session"],
70
+ problems: [
71
+ "invalid_request",
72
+ "plan_limit_reached",
73
+ "service_unavailable",
74
+ "state_conflict",
75
+ ],
76
+ request: dataExportCreateRequestSchema,
77
+ requestExample: globalThis
78
+ .GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
79
+ ? {}
80
+ : {},
81
+ response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
82
+ ? API_UNUSED_RESPONSE_SCHEMA
83
+ : dataExportSchema,
84
+ scopes: ["schedules:read", "endpoints:read"],
85
+ sessionAuthority: "headers",
86
+ summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
87
+ ? ""
88
+ : "Create a data export",
89
+ surfaces: ["api", "mock"],
90
+ },
91
+ {
92
+ creates: false,
93
+ description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
94
+ ? ""
95
+ : "Reads export progress inside the authenticated authority tuple.",
96
+ example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
97
+ ? {}
98
+ : EXAMPLE,
99
+ id: "exports.read",
100
+ idempotent: true,
101
+ mcp: { destructive: false, kind: "tool", openWorld: false },
102
+ method: "GET",
103
+ mutates: false,
104
+ path: "/v1/exports/{exportId}",
105
+ principals: ["api-credential", "oauth", "session"],
106
+ problems: ["not_found", "service_unavailable", "state_conflict"],
107
+ response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
108
+ ? API_UNUSED_RESPONSE_SCHEMA
109
+ : dataExportSchema,
110
+ scopes: ["schedules:read", "endpoints:read"],
111
+ sessionAuthority: "headers",
112
+ summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
113
+ ? ""
114
+ : "Read a data export",
115
+ surfaces: ["api", "mock"],
116
+ },
117
+ {
118
+ creates: false,
119
+ description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
120
+ ? ""
121
+ : "Returns one bounded NDJSON file part. Cursors are opaque, authenticated, and bound to this export job.",
122
+ example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
123
+ ? {}
124
+ : {
125
+ content: '{"kind":"schedule","value":{"id":"sch_0123456789abcdefghjkmnpq"}}\n',
126
+ fileName: "greatwait-export-exp_0123456789abcdefghjkmnpqrs.ndjson",
127
+ mediaType: "application/x-ndjson",
128
+ },
129
+ id: "exports.part",
130
+ idempotent: true,
131
+ mcp: {
132
+ kind: "unavailable",
133
+ reason: "A file part may contain customer payload plaintext; MCP exposes export metadata but never raw export content.",
134
+ },
135
+ method: "GET",
136
+ mutates: false,
137
+ path: "/v1/exports/{exportId}/parts",
138
+ principals: ["api-credential", "oauth", "session"],
139
+ problems: [
140
+ "invalid_request",
141
+ "not_found",
142
+ "service_unavailable",
143
+ "state_conflict",
144
+ ],
145
+ query: dataExportPartRequestSchema,
146
+ response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
147
+ ? API_UNUSED_RESPONSE_SCHEMA
148
+ : dataExportPartSchema,
149
+ scopes: ["schedules:read", "endpoints:read"],
150
+ sessionAuthority: "headers",
151
+ summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
152
+ ? ""
153
+ : "Download a data export part",
154
+ surfaces: ["api", "mock"],
155
+ },
156
+ {
157
+ creates: false,
158
+ description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
159
+ ? ""
160
+ : "Permanently cancels an export job. Repeating cancellation is safe and cancelled jobs cannot serve file parts.",
161
+ example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
162
+ ? {}
163
+ : { cancelled: true, export: { ...EXAMPLE, state: "cancelled" } },
164
+ id: "exports.cancel",
165
+ idempotent: true,
166
+ mcp: { destructive: true, kind: "tool", openWorld: false },
167
+ method: "POST",
168
+ mutates: true,
169
+ path: "/v1/exports/{exportId}/cancel",
170
+ principals: ["api-credential", "oauth", "session"],
171
+ problems: ["not_found", "service_unavailable", "state_conflict"],
172
+ response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
173
+ ? API_UNUSED_RESPONSE_SCHEMA
174
+ : dataExportCancelledSchema,
175
+ scopes: ["schedules:read", "endpoints:read"],
176
+ sessionAuthority: "headers",
177
+ summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
178
+ ? ""
179
+ : "Cancel a data export",
180
+ surfaces: ["api", "mock"],
181
+ },
182
+ ]);