@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
package/README.md CHANGED
@@ -32,20 +32,22 @@ are not JavaScript.
32
32
 
33
33
  ## What ships
34
34
 
35
- | Path | What it is |
36
- | --------------------------------------- | ------------------------------------------------------------------------------------------- |
37
- | `generated/v1/openapi.json` | The public API, as OpenAPI |
38
- | `generated/v1/openapi.mock.json` | The contract mock's surface, labelled separately so it can never be read as the product API |
39
- | `generated/v1/schemas/` | JSON Schema per operation, request and response |
40
- | `generated/v1/snippets/` | curl, JavaScript and MCP examples per operation |
41
- | `generated/v1/first-value-journey.json` | The canonical first-value sequence, as data |
42
- | `generated/v1/policy-matrix.json` | Who may call what, derived from the registry |
43
- | `generated/v1/manifest.json` | The index of everything above, with the contract version |
35
+ | Path | What it is |
36
+ | --------------------------------------- | -------------------------------------------------------- |
37
+ | `generated/v1/openapi.json` | The public API, as OpenAPI |
38
+ | `generated/v1/schemas/` | JSON Schema per operation, request and response |
39
+ | `generated/v1/snippets/` | curl, JavaScript and MCP examples per operation |
40
+ | `generated/v1/first-value-journey.json` | The canonical first-value sequence, as data |
41
+ | `generated/v1/policy-matrix.json` | Who may call what, derived from the registry |
42
+ | `generated/v1/manifest.json` | The index of everything above, with the contract version |
44
43
 
45
44
  All of it is generated from one registry, so a change to an operation changes
46
45
  every artifact at once. Nothing here is hand-maintained beside the code it
47
46
  describes.
48
47
 
48
+ The repository also generates `openapi.mock.json` for contract-mock validation.
49
+ That internal QA surface is deliberately excluded from the published package.
50
+
49
51
  ## The conventions the schemas encode
50
52
 
51
53
  - **Identifiers** are opaque, prefixed and server-assigned. Compare them for
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "./zod.js";
2
2
  import type { ProblemCode } from "./problems.js";
3
3
  /**
4
4
  * Who is asking, and what they may do.
@@ -26,20 +26,20 @@ import type { ProblemCode } from "./problems.js";
26
26
  * third if one is ever added.
27
27
  */
28
28
  export declare const ENVIRONMENT_KINDS_IN_ORDER: readonly ["test", "live"];
29
- export declare const environmentKindSchema: z.ZodEnum<{
29
+ export declare const environmentKindSchema: import("zod").ZodEnum<{
30
30
  test: "test";
31
31
  live: "live";
32
32
  }>;
33
33
  export type EnvironmentKind = z.infer<typeof environmentKindSchema>;
34
- export declare const authoritySchema: z.ZodObject<{
35
- environment: z.ZodString;
36
- environmentKind: z.ZodEnum<{
34
+ export declare const authoritySchema: import("zod").ZodObject<{
35
+ environment: import("zod").ZodString;
36
+ environmentKind: import("zod").ZodEnum<{
37
37
  test: "test";
38
38
  live: "live";
39
39
  }>;
40
- organization: z.ZodString;
41
- project: z.ZodString;
42
- }, z.core.$strip>;
40
+ organization: import("zod").ZodString;
41
+ project: import("zod").ZodString;
42
+ }, import("zod/v4/core").$strip>;
43
43
  export type Authority = z.infer<typeof authoritySchema>;
44
44
  /**
45
45
  * The initial scope vocabulary. Scopes are `resource:action`, lower case, and
@@ -50,9 +50,10 @@ export type Authority = z.infer<typeof authoritySchema>;
50
50
  * client is permitted, and what the granting member's current role allows.
51
51
  * Nothing here can exceed a human's own access.
52
52
  */
53
- export declare const SCOPES: readonly ["credentials:administer", "credentials:read", "credentials:write", "endpoints:read", "endpoints:write", "forecast:read", "grants:read", "grants:write", "occurrences:read", "occurrences:redeliver", "projects:read", "projects:write", "schedules:read", "schedules:write", "usage:read"];
54
- export declare const scopeSchema: z.ZodEnum<{
53
+ export declare const SCOPES: readonly ["credentials:administer", "billing:write", "credentials:read", "credentials:write", "endpoints:read", "endpoints:write", "forecast:read", "grants:read", "grants:write", "occurrences:read", "occurrences:redeliver", "projects:administer", "projects:read", "projects:write", "schedules:read", "schedules:write", "usage:read"];
54
+ export declare const scopeSchema: import("zod").ZodEnum<{
55
55
  "credentials:administer": "credentials:administer";
56
+ "billing:write": "billing:write";
56
57
  "credentials:read": "credentials:read";
57
58
  "credentials:write": "credentials:write";
58
59
  "endpoints:read": "endpoints:read";
@@ -62,6 +63,7 @@ export declare const scopeSchema: z.ZodEnum<{
62
63
  "grants:write": "grants:write";
63
64
  "occurrences:read": "occurrences:read";
64
65
  "occurrences:redeliver": "occurrences:redeliver";
66
+ "projects:administer": "projects:administer";
65
67
  "projects:read": "projects:read";
66
68
  "projects:write": "projects:write";
67
69
  "schedules:read": "schedules:read";
@@ -95,24 +97,25 @@ export declare function effectiveScopes(granted: readonly Scope[]): Set<Scope>;
95
97
  * gives for one that does not exist.
96
98
  */
97
99
  export declare const PRINCIPAL_KINDS: readonly ["api-credential", "oauth", "session"];
98
- export declare const principalKindSchema: z.ZodEnum<{
100
+ export declare const principalKindSchema: import("zod").ZodEnum<{
99
101
  "api-credential": "api-credential";
100
102
  oauth: "oauth";
101
103
  session: "session";
102
104
  }>;
103
105
  export type PrincipalKind = z.infer<typeof principalKindSchema>;
104
- export declare const principalSchema: z.ZodObject<{
105
- authority: z.ZodObject<{
106
- environment: z.ZodString;
107
- environmentKind: z.ZodEnum<{
106
+ export declare const principalSchema: import("zod").ZodObject<{
107
+ authority: import("zod").ZodObject<{
108
+ environment: import("zod").ZodString;
109
+ environmentKind: import("zod").ZodEnum<{
108
110
  test: "test";
109
111
  live: "live";
110
112
  }>;
111
- organization: z.ZodString;
112
- project: z.ZodString;
113
- }, z.core.$strip>;
114
- scopes: z.ZodArray<z.ZodEnum<{
113
+ organization: import("zod").ZodString;
114
+ project: import("zod").ZodString;
115
+ }, import("zod/v4/core").$strip>;
116
+ scopes: import("zod").ZodArray<import("zod").ZodEnum<{
115
117
  "credentials:administer": "credentials:administer";
118
+ "billing:write": "billing:write";
116
119
  "credentials:read": "credentials:read";
117
120
  "credentials:write": "credentials:write";
118
121
  "endpoints:read": "endpoints:read";
@@ -122,18 +125,19 @@ export declare const principalSchema: z.ZodObject<{
122
125
  "grants:write": "grants:write";
123
126
  "occurrences:read": "occurrences:read";
124
127
  "occurrences:redeliver": "occurrences:redeliver";
128
+ "projects:administer": "projects:administer";
125
129
  "projects:read": "projects:read";
126
130
  "projects:write": "projects:write";
127
131
  "schedules:read": "schedules:read";
128
132
  "schedules:write": "schedules:write";
129
133
  "usage:read": "usage:read";
130
134
  }>>;
131
- via: z.ZodEnum<{
135
+ via: import("zod").ZodEnum<{
132
136
  "api-credential": "api-credential";
133
137
  oauth: "oauth";
134
138
  session: "session";
135
139
  }>;
136
- }, z.core.$strip>;
140
+ }, import("zod/v4/core").$strip>;
137
141
  export type Principal = z.infer<typeof principalSchema>;
138
142
  export interface AccessRequest {
139
143
  readonly principal: Principal;
@@ -243,18 +247,19 @@ export declare const SESSION_AUTHORITY_HEADERS: {
243
247
  * know whether a scope is implied can apply the same published expansion the
244
248
  * service does.
245
249
  */
246
- export declare const credentialContextSchema: z.ZodObject<{
247
- environmentKind: z.ZodEnum<{
250
+ export declare const credentialContextSchema: import("zod").ZodObject<{
251
+ environmentKind: import("zod").ZodEnum<{
248
252
  test: "test";
249
253
  live: "live";
250
254
  }>;
251
- principal: z.ZodEnum<{
255
+ principal: import("zod").ZodEnum<{
252
256
  "api-credential": "api-credential";
253
257
  oauth: "oauth";
254
258
  }>;
255
- project: z.ZodString;
256
- scopes: z.ZodArray<z.ZodEnum<{
259
+ project: import("zod").ZodString;
260
+ scopes: import("zod").ZodArray<import("zod").ZodEnum<{
257
261
  "credentials:administer": "credentials:administer";
262
+ "billing:write": "billing:write";
258
263
  "credentials:read": "credentials:read";
259
264
  "credentials:write": "credentials:write";
260
265
  "endpoints:read": "endpoints:read";
@@ -264,11 +269,12 @@ export declare const credentialContextSchema: z.ZodObject<{
264
269
  "grants:write": "grants:write";
265
270
  "occurrences:read": "occurrences:read";
266
271
  "occurrences:redeliver": "occurrences:redeliver";
272
+ "projects:administer": "projects:administer";
267
273
  "projects:read": "projects:read";
268
274
  "projects:write": "projects:write";
269
275
  "schedules:read": "schedules:read";
270
276
  "schedules:write": "schedules:write";
271
277
  "usage:read": "usage:read";
272
278
  }>>;
273
- }, z.core.$strip>;
279
+ }, import("zod/v4/core").$strip>;
274
280
  export type CredentialContext = z.infer<typeof credentialContextSchema>;
package/dist/authority.js CHANGED
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "./zod.js";
2
2
  import { environmentIdSchema, organizationIdSchema, projectIdSchema, } from "./identifiers.js";
3
3
  /**
4
4
  * Who is asking, and what they may do.
@@ -60,6 +60,8 @@ export const SCOPES = [
60
60
  * the row rather than of the route.
61
61
  */
62
62
  "credentials:administer",
63
+ /** Change desired billing policy and advance an approved policy revision. */
64
+ "billing:write",
63
65
  "credentials:read",
64
66
  "credentials:write",
65
67
  "endpoints:read",
@@ -83,6 +85,14 @@ export const SCOPES = [
83
85
  "grants:write",
84
86
  "occurrences:read",
85
87
  "occurrences:redeliver",
88
+ /**
89
+ * Stop, restore, or permanently destroy a whole project.
90
+ *
91
+ * Kept separate from `projects:write`: renaming is ordinary reversible work,
92
+ * while these operations affect every member and every schedule in the
93
+ * project. Organization administrators hold this scope; members do not.
94
+ */
95
+ "projects:administer",
86
96
  "projects:read",
87
97
  /**
88
98
  * Create a project, with its `test` and `live` environments.
@@ -104,7 +114,7 @@ export const SCOPES = [
104
114
  "schedules:read",
105
115
  "schedules:write",
106
116
  /**
107
- * See what this project was charged for.
117
+ * See terminal occurrence volume and the organization's exact attempt ledger.
108
118
  *
109
119
  * A scope of its own rather than a corner of `schedules:read`, because the
110
120
  * two answer to different people: a service account that lists schedules to