@openvtc/trust-tasks 0.23.8 → 0.23.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 (298) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/_shared/components.d.ts +2451 -4
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/auth/oob/_shared/0.1/oob.d.ts +16 -0
  5. package/dist/auth/oob/_shared/0.1/oob.d.ts.map +1 -0
  6. package/dist/auth/oob/_shared/0.1/oob.js +6 -0
  7. package/dist/auth/oob/_shared/0.1/oob.js.map +1 -0
  8. package/dist/auth/oob/cancel/0.1/payload.d.ts +262 -0
  9. package/dist/auth/oob/cancel/0.1/payload.d.ts.map +1 -0
  10. package/dist/auth/oob/cancel/0.1/payload.js +153 -0
  11. package/dist/auth/oob/cancel/0.1/payload.js.map +1 -0
  12. package/dist/auth/oob/claim/0.1/payload.d.ts +463 -0
  13. package/dist/auth/oob/claim/0.1/payload.d.ts.map +1 -0
  14. package/dist/auth/oob/claim/0.1/payload.js +264 -0
  15. package/dist/auth/oob/claim/0.1/payload.js.map +1 -0
  16. package/dist/auth/oob/grant/0.1/payload.d.ts +212 -0
  17. package/dist/auth/oob/grant/0.1/payload.d.ts.map +1 -0
  18. package/dist/auth/oob/grant/0.1/payload.js +117 -0
  19. package/dist/auth/oob/grant/0.1/payload.js.map +1 -0
  20. package/dist/auth/oob/identify/0.1/payload.d.ts +145 -0
  21. package/dist/auth/oob/identify/0.1/payload.d.ts.map +1 -0
  22. package/dist/auth/oob/identify/0.1/payload.js +81 -0
  23. package/dist/auth/oob/identify/0.1/payload.js.map +1 -0
  24. package/dist/auth/oob/prove/0.1/payload.d.ts +740 -0
  25. package/dist/auth/oob/prove/0.1/payload.d.ts.map +1 -0
  26. package/dist/auth/oob/prove/0.1/payload.js +422 -0
  27. package/dist/auth/oob/prove/0.1/payload.js.map +1 -0
  28. package/dist/auth/oob/redeem/0.1/payload.d.ts +364 -0
  29. package/dist/auth/oob/redeem/0.1/payload.d.ts.map +1 -0
  30. package/dist/auth/oob/redeem/0.1/payload.js +199 -0
  31. package/dist/auth/oob/redeem/0.1/payload.js.map +1 -0
  32. package/dist/auth/oob/request/0.1/payload.d.ts +330 -0
  33. package/dist/auth/oob/request/0.1/payload.d.ts.map +1 -0
  34. package/dist/auth/oob/request/0.1/payload.js +193 -0
  35. package/dist/auth/oob/request/0.1/payload.js.map +1 -0
  36. package/dist/auth/oob/respond/0.1/payload.d.ts +235 -0
  37. package/dist/auth/oob/respond/0.1/payload.d.ts.map +1 -0
  38. package/dist/auth/oob/respond/0.1/payload.js +140 -0
  39. package/dist/auth/oob/respond/0.1/payload.js.map +1 -0
  40. package/dist/device/list/0.1/payload.d.ts +4 -4
  41. package/dist/device/list/0.1/payload.d.ts.map +1 -1
  42. package/dist/device/list/0.1/payload.js +6 -2
  43. package/dist/device/list/0.1/payload.js.map +1 -1
  44. package/dist/device/list/0.2/payload.d.ts +4 -4
  45. package/dist/device/list/0.2/payload.d.ts.map +1 -1
  46. package/dist/device/list/0.2/payload.js +6 -2
  47. package/dist/device/list/0.2/payload.js.map +1 -1
  48. package/dist/device/register/0.1/payload.d.ts +4 -4
  49. package/dist/device/register/0.1/payload.d.ts.map +1 -1
  50. package/dist/device/register/0.1/payload.js +6 -2
  51. package/dist/device/register/0.1/payload.js.map +1 -1
  52. package/dist/device/register/0.2/payload.d.ts +4 -4
  53. package/dist/device/register/0.2/payload.d.ts.map +1 -1
  54. package/dist/device/register/0.2/payload.js +6 -2
  55. package/dist/device/register/0.2/payload.js.map +1 -1
  56. package/dist/external/_shared/0.1/accounts.d.ts +18 -0
  57. package/dist/external/_shared/0.1/accounts.d.ts.map +1 -0
  58. package/dist/external/_shared/0.1/accounts.js +6 -0
  59. package/dist/external/_shared/0.1/accounts.js.map +1 -0
  60. package/dist/external/accounts/archive/0.1/payload.d.ts +2945 -0
  61. package/dist/external/accounts/archive/0.1/payload.d.ts.map +1 -0
  62. package/dist/external/accounts/archive/0.1/payload.js +1736 -0
  63. package/dist/external/accounts/archive/0.1/payload.js.map +1 -0
  64. package/dist/external/accounts/bindings/grant/0.1/payload.d.ts +2938 -0
  65. package/dist/external/accounts/bindings/grant/0.1/payload.d.ts.map +1 -0
  66. package/dist/external/accounts/bindings/grant/0.1/payload.js +1735 -0
  67. package/dist/external/accounts/bindings/grant/0.1/payload.js.map +1 -0
  68. package/dist/external/accounts/bindings/revoke/0.1/payload.d.ts +2958 -0
  69. package/dist/external/accounts/bindings/revoke/0.1/payload.d.ts.map +1 -0
  70. package/dist/external/accounts/bindings/revoke/0.1/payload.js +1743 -0
  71. package/dist/external/accounts/bindings/revoke/0.1/payload.js.map +1 -0
  72. package/dist/external/accounts/create/0.1/payload.d.ts +2954 -0
  73. package/dist/external/accounts/create/0.1/payload.d.ts.map +1 -0
  74. package/dist/external/accounts/create/0.1/payload.js +1742 -0
  75. package/dist/external/accounts/create/0.1/payload.js.map +1 -0
  76. package/dist/external/accounts/delete/0.1/payload.d.ts +310 -0
  77. package/dist/external/accounts/delete/0.1/payload.d.ts.map +1 -0
  78. package/dist/external/accounts/delete/0.1/payload.js +176 -0
  79. package/dist/external/accounts/delete/0.1/payload.js.map +1 -0
  80. package/dist/external/accounts/get/0.1/payload.d.ts +2931 -0
  81. package/dist/external/accounts/get/0.1/payload.d.ts.map +1 -0
  82. package/dist/external/accounts/get/0.1/payload.js +1731 -0
  83. package/dist/external/accounts/get/0.1/payload.js.map +1 -0
  84. package/dist/external/accounts/keys/rotate/0.1/payload.d.ts +3216 -0
  85. package/dist/external/accounts/keys/rotate/0.1/payload.d.ts.map +1 -0
  86. package/dist/external/accounts/keys/rotate/0.1/payload.js +1912 -0
  87. package/dist/external/accounts/keys/rotate/0.1/payload.js.map +1 -0
  88. package/dist/external/accounts/list/0.1/payload.d.ts +3034 -0
  89. package/dist/external/accounts/list/0.1/payload.d.ts.map +1 -0
  90. package/dist/external/accounts/list/0.1/payload.js +1791 -0
  91. package/dist/external/accounts/list/0.1/payload.js.map +1 -0
  92. package/dist/external/accounts/probe/0.1/payload.d.ts +511 -0
  93. package/dist/external/accounts/probe/0.1/payload.d.ts.map +1 -0
  94. package/dist/external/accounts/probe/0.1/payload.js +307 -0
  95. package/dist/external/accounts/probe/0.1/payload.js.map +1 -0
  96. package/dist/external/accounts/restore/0.1/payload.d.ts +2945 -0
  97. package/dist/external/accounts/restore/0.1/payload.d.ts.map +1 -0
  98. package/dist/external/accounts/restore/0.1/payload.js +1736 -0
  99. package/dist/external/accounts/restore/0.1/payload.js.map +1 -0
  100. package/dist/external/accounts/resume/0.1/payload.d.ts +2945 -0
  101. package/dist/external/accounts/resume/0.1/payload.d.ts.map +1 -0
  102. package/dist/external/accounts/resume/0.1/payload.js +1736 -0
  103. package/dist/external/accounts/resume/0.1/payload.js.map +1 -0
  104. package/dist/external/accounts/secret/set/0.1/payload.d.ts +379 -0
  105. package/dist/external/accounts/secret/set/0.1/payload.d.ts.map +1 -0
  106. package/dist/external/accounts/secret/set/0.1/payload.js +212 -0
  107. package/dist/external/accounts/secret/set/0.1/payload.js.map +1 -0
  108. package/dist/external/accounts/setup/0.1/payload.d.ts +535 -0
  109. package/dist/external/accounts/setup/0.1/payload.d.ts.map +1 -0
  110. package/dist/external/accounts/setup/0.1/payload.js +325 -0
  111. package/dist/external/accounts/setup/0.1/payload.js.map +1 -0
  112. package/dist/external/accounts/suspend/0.1/payload.d.ts +2945 -0
  113. package/dist/external/accounts/suspend/0.1/payload.d.ts.map +1 -0
  114. package/dist/external/accounts/suspend/0.1/payload.js +1736 -0
  115. package/dist/external/accounts/suspend/0.1/payload.js.map +1 -0
  116. package/dist/external/accounts/update/0.1/payload.d.ts +2949 -0
  117. package/dist/external/accounts/update/0.1/payload.d.ts.map +1 -0
  118. package/dist/external/accounts/update/0.1/payload.js +1739 -0
  119. package/dist/external/accounts/update/0.1/payload.js.map +1 -0
  120. package/dist/external/credentials/issue/0.1/payload.d.ts +586 -0
  121. package/dist/external/credentials/issue/0.1/payload.d.ts.map +1 -0
  122. package/dist/external/credentials/issue/0.1/payload.js +322 -0
  123. package/dist/external/credentials/issue/0.1/payload.js.map +1 -0
  124. package/dist/external/sign/0.1/payload.d.ts +348 -0
  125. package/dist/external/sign/0.1/payload.d.ts.map +1 -0
  126. package/dist/external/sign/0.1/payload.js +193 -0
  127. package/dist/external/sign/0.1/payload.js.map +1 -0
  128. package/dist/index.d.ts +53 -0
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +53 -0
  131. package/dist/index.js.map +1 -1
  132. package/dist/rooms/_shared/0.1/blobs.d.ts +16 -0
  133. package/dist/rooms/_shared/0.1/blobs.d.ts.map +1 -0
  134. package/dist/rooms/_shared/0.1/blobs.js +6 -0
  135. package/dist/rooms/_shared/0.1/blobs.js.map +1 -0
  136. package/dist/rooms/_shared/0.1/room.d.ts +1 -1
  137. package/dist/rooms/_shared/0.1/room.d.ts.map +1 -1
  138. package/dist/rooms/blobs/chunk/0.1/payload.d.ts +375 -0
  139. package/dist/rooms/blobs/chunk/0.1/payload.d.ts.map +1 -0
  140. package/dist/rooms/blobs/chunk/0.1/payload.js +213 -0
  141. package/dist/rooms/blobs/chunk/0.1/payload.js.map +1 -0
  142. package/dist/rooms/blobs/get/0.1/payload.d.ts +743 -0
  143. package/dist/rooms/blobs/get/0.1/payload.d.ts.map +1 -0
  144. package/dist/rooms/blobs/get/0.1/payload.js +415 -0
  145. package/dist/rooms/blobs/get/0.1/payload.js.map +1 -0
  146. package/dist/rooms/blobs/upload/abort/0.1/payload.d.ts +263 -0
  147. package/dist/rooms/blobs/upload/abort/0.1/payload.d.ts.map +1 -0
  148. package/dist/rooms/blobs/upload/abort/0.1/payload.js +151 -0
  149. package/dist/rooms/blobs/upload/abort/0.1/payload.js.map +1 -0
  150. package/dist/rooms/blobs/upload/begin/0.1/payload.d.ts +793 -0
  151. package/dist/rooms/blobs/upload/begin/0.1/payload.d.ts.map +1 -0
  152. package/dist/rooms/blobs/upload/begin/0.1/payload.js +437 -0
  153. package/dist/rooms/blobs/upload/begin/0.1/payload.js.map +1 -0
  154. package/dist/rooms/blobs/upload/chunk/0.1/payload.d.ts +459 -0
  155. package/dist/rooms/blobs/upload/chunk/0.1/payload.d.ts.map +1 -0
  156. package/dist/rooms/blobs/upload/chunk/0.1/payload.js +256 -0
  157. package/dist/rooms/blobs/upload/chunk/0.1/payload.js.map +1 -0
  158. package/dist/rooms/blobs/upload/commit/0.1/payload.d.ts +326 -0
  159. package/dist/rooms/blobs/upload/commit/0.1/payload.d.ts.map +1 -0
  160. package/dist/rooms/blobs/upload/commit/0.1/payload.js +185 -0
  161. package/dist/rooms/blobs/upload/commit/0.1/payload.js.map +1 -0
  162. package/dist/rooms/info/0.1/payload.d.ts +897 -0
  163. package/dist/rooms/info/0.1/payload.d.ts.map +1 -0
  164. package/dist/rooms/info/0.1/payload.js +498 -0
  165. package/dist/rooms/info/0.1/payload.js.map +1 -0
  166. package/dist/rooms/keys/file-key/0.1/payload.d.ts +306 -0
  167. package/dist/rooms/keys/file-key/0.1/payload.d.ts.map +1 -0
  168. package/dist/rooms/keys/file-key/0.1/payload.js +167 -0
  169. package/dist/rooms/keys/file-key/0.1/payload.js.map +1 -0
  170. package/dist/rooms/records/get/0.2/payload.d.ts +954 -0
  171. package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -0
  172. package/dist/rooms/records/get/0.2/payload.js +515 -0
  173. package/dist/rooms/records/get/0.2/payload.js.map +1 -0
  174. package/dist/rooms/records/list/0.2/payload.d.ts +854 -0
  175. package/dist/rooms/records/list/0.2/payload.d.ts.map +1 -0
  176. package/dist/rooms/records/list/0.2/payload.js +462 -0
  177. package/dist/rooms/records/list/0.2/payload.js.map +1 -0
  178. package/dist/rooms/records/put/0.2/payload.d.ts +679 -0
  179. package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -0
  180. package/dist/rooms/records/put/0.2/payload.js +357 -0
  181. package/dist/rooms/records/put/0.2/payload.js.map +1 -0
  182. package/dist/rooms/usage/0.1/payload.d.ts +795 -0
  183. package/dist/rooms/usage/0.1/payload.d.ts.map +1 -0
  184. package/dist/rooms/usage/0.1/payload.js +417 -0
  185. package/dist/rooms/usage/0.1/payload.js.map +1 -0
  186. package/dist/vtc/_shared/0.1/room-storage.d.ts +16 -0
  187. package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -0
  188. package/dist/vtc/_shared/0.1/room-storage.js +6 -0
  189. package/dist/vtc/_shared/0.1/room-storage.js.map +1 -0
  190. package/dist/vtc/rooms/get/0.1/payload.d.ts +1813 -0
  191. package/dist/vtc/rooms/get/0.1/payload.d.ts.map +1 -0
  192. package/dist/vtc/rooms/get/0.1/payload.js +892 -0
  193. package/dist/vtc/rooms/get/0.1/payload.js.map +1 -0
  194. package/dist/vtc/rooms/limits/set/0.1/payload.d.ts +873 -0
  195. package/dist/vtc/rooms/limits/set/0.1/payload.d.ts.map +1 -0
  196. package/dist/vtc/rooms/limits/set/0.1/payload.js +489 -0
  197. package/dist/vtc/rooms/limits/set/0.1/payload.js.map +1 -0
  198. package/dist/vtc/rooms/storage/assign/0.1/payload.d.ts +341 -0
  199. package/dist/vtc/rooms/storage/assign/0.1/payload.d.ts.map +1 -0
  200. package/dist/vtc/rooms/storage/assign/0.1/payload.js +191 -0
  201. package/dist/vtc/rooms/storage/assign/0.1/payload.js.map +1 -0
  202. package/dist/vtc/rooms/storage/migrate/0.1/payload.d.ts +452 -0
  203. package/dist/vtc/rooms/storage/migrate/0.1/payload.d.ts.map +1 -0
  204. package/dist/vtc/rooms/storage/migrate/0.1/payload.js +260 -0
  205. package/dist/vtc/rooms/storage/migrate/0.1/payload.js.map +1 -0
  206. package/dist/vtc/rooms/usage/0.1/payload.d.ts +880 -0
  207. package/dist/vtc/rooms/usage/0.1/payload.d.ts.map +1 -0
  208. package/dist/vtc/rooms/usage/0.1/payload.js +457 -0
  209. package/dist/vtc/rooms/usage/0.1/payload.js.map +1 -0
  210. package/dist/vtc/storage/configs/create/0.1/payload.d.ts +1272 -0
  211. package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -0
  212. package/dist/vtc/storage/configs/create/0.1/payload.js +737 -0
  213. package/dist/vtc/storage/configs/create/0.1/payload.js.map +1 -0
  214. package/dist/vtc/storage/configs/get/0.1/payload.d.ts +1750 -0
  215. package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -0
  216. package/dist/vtc/storage/configs/get/0.1/payload.js +1019 -0
  217. package/dist/vtc/storage/configs/get/0.1/payload.js.map +1 -0
  218. package/dist/vtc/storage/configs/list/0.1/payload.d.ts +1851 -0
  219. package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -0
  220. package/dist/vtc/storage/configs/list/0.1/payload.js +1069 -0
  221. package/dist/vtc/storage/configs/list/0.1/payload.js.map +1 -0
  222. package/dist/vtc/storage/configs/probe/0.1/payload.d.ts +459 -0
  223. package/dist/vtc/storage/configs/probe/0.1/payload.d.ts.map +1 -0
  224. package/dist/vtc/storage/configs/probe/0.1/payload.js +267 -0
  225. package/dist/vtc/storage/configs/probe/0.1/payload.js.map +1 -0
  226. package/dist/vtc/storage/configs/retire/0.1/payload.d.ts +294 -0
  227. package/dist/vtc/storage/configs/retire/0.1/payload.d.ts.map +1 -0
  228. package/dist/vtc/storage/configs/retire/0.1/payload.js +176 -0
  229. package/dist/vtc/storage/configs/retire/0.1/payload.js.map +1 -0
  230. package/dist/vtc/storage/configs/update/0.1/payload.d.ts +1274 -0
  231. package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -0
  232. package/dist/vtc/storage/configs/update/0.1/payload.js +736 -0
  233. package/dist/vtc/storage/configs/update/0.1/payload.js.map +1 -0
  234. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +511 -0
  235. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -0
  236. package/dist/vtc/storage/credentials/set/0.1/payload.js +293 -0
  237. package/dist/vtc/storage/credentials/set/0.1/payload.js.map +1 -0
  238. package/package.json +1 -1
  239. package/src/_shared/components.ts +2539 -4
  240. package/src/auth/oob/_shared/0.1/oob.ts +17 -0
  241. package/src/auth/oob/cancel/0.1/payload.ts +188 -0
  242. package/src/auth/oob/claim/0.1/payload.ts +306 -0
  243. package/src/auth/oob/grant/0.1/payload.ts +159 -0
  244. package/src/auth/oob/identify/0.1/payload.ts +110 -0
  245. package/src/auth/oob/prove/0.1/payload.ts +473 -0
  246. package/src/auth/oob/redeem/0.1/payload.ts +248 -0
  247. package/src/auth/oob/request/0.1/payload.ts +230 -0
  248. package/src/auth/oob/respond/0.1/payload.ts +178 -0
  249. package/src/device/list/0.1/payload.ts +6 -2
  250. package/src/device/list/0.2/payload.ts +6 -2
  251. package/src/device/register/0.1/payload.ts +6 -2
  252. package/src/device/register/0.2/payload.ts +6 -2
  253. package/src/external/_shared/0.1/accounts.ts +19 -0
  254. package/src/external/accounts/archive/0.1/payload.ts +1770 -0
  255. package/src/external/accounts/bindings/grant/0.1/payload.ts +1766 -0
  256. package/src/external/accounts/bindings/revoke/0.1/payload.ts +1778 -0
  257. package/src/external/accounts/create/0.1/payload.ts +1777 -0
  258. package/src/external/accounts/delete/0.1/payload.ts +211 -0
  259. package/src/external/accounts/get/0.1/payload.ts +1761 -0
  260. package/src/external/accounts/keys/rotate/0.1/payload.ts +1947 -0
  261. package/src/external/accounts/list/0.1/payload.ts +1834 -0
  262. package/src/external/accounts/probe/0.1/payload.ts +337 -0
  263. package/src/external/accounts/restore/0.1/payload.ts +1770 -0
  264. package/src/external/accounts/resume/0.1/payload.ts +1770 -0
  265. package/src/external/accounts/secret/set/0.1/payload.ts +248 -0
  266. package/src/external/accounts/setup/0.1/payload.ts +355 -0
  267. package/src/external/accounts/suspend/0.1/payload.ts +1770 -0
  268. package/src/external/accounts/update/0.1/payload.ts +1771 -0
  269. package/src/external/credentials/issue/0.1/payload.ts +365 -0
  270. package/src/external/sign/0.1/payload.ts +234 -0
  271. package/src/index.ts +53 -0
  272. package/src/rooms/_shared/0.1/blobs.ts +17 -0
  273. package/src/rooms/_shared/0.1/room.ts +1 -1
  274. package/src/rooms/blobs/chunk/0.1/payload.ts +251 -0
  275. package/src/rooms/blobs/get/0.1/payload.ts +463 -0
  276. package/src/rooms/blobs/upload/abort/0.1/payload.ts +187 -0
  277. package/src/rooms/blobs/upload/begin/0.1/payload.ts +491 -0
  278. package/src/rooms/blobs/upload/chunk/0.1/payload.ts +304 -0
  279. package/src/rooms/blobs/upload/commit/0.1/payload.ts +224 -0
  280. package/src/rooms/info/0.1/payload.ts +572 -0
  281. package/src/rooms/keys/file-key/0.1/payload.ts +224 -0
  282. package/src/rooms/records/get/0.2/payload.ts +614 -0
  283. package/src/rooms/records/list/0.2/payload.ts +533 -0
  284. package/src/rooms/records/put/0.2/payload.ts +441 -0
  285. package/src/rooms/usage/0.1/payload.ts +499 -0
  286. package/src/vtc/_shared/0.1/room-storage.ts +17 -0
  287. package/src/vtc/rooms/get/0.1/payload.ts +1275 -0
  288. package/src/vtc/rooms/limits/set/0.1/payload.ts +555 -0
  289. package/src/vtc/rooms/storage/assign/0.1/payload.ts +237 -0
  290. package/src/vtc/rooms/storage/migrate/0.1/payload.ts +317 -0
  291. package/src/vtc/rooms/usage/0.1/payload.ts +568 -0
  292. package/src/vtc/storage/configs/create/0.1/payload.ts +784 -0
  293. package/src/vtc/storage/configs/get/0.1/payload.ts +1054 -0
  294. package/src/vtc/storage/configs/list/0.1/payload.ts +1121 -0
  295. package/src/vtc/storage/configs/probe/0.1/payload.ts +329 -0
  296. package/src/vtc/storage/configs/retire/0.1/payload.ts +211 -0
  297. package/src/vtc/storage/configs/update/0.1/payload.ts +783 -0
  298. package/src/vtc/storage/credentials/set/0.1/payload.ts +339 -0
@@ -0,0 +1,873 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/rooms/limits/set/0.1/payload.schema.json
4
+ */
5
+ import type { EffectiveLimits, Ext, LimitSource, LimitTarget, RoomLimits, ScopeLimits, Usage } from "../../../../../_shared/components.js";
6
+ /**
7
+ * Override, or clear an override of, the limits one hosted room is enforced against: for the room, its members by default, or one member. The outer document members are owned by the framework — SPEC §6.3.
8
+ */
9
+ export interface VTCRoomsLimitsSetPayload {
10
+ /**
11
+ * The room's identifier, as its owner minted it.
12
+ */
13
+ roomId: string;
14
+ target: LimitTarget;
15
+ /**
16
+ * The override, replacing any previous one at this target wholesale.
17
+ */
18
+ limits?: ScopeLimits;
19
+ /**
20
+ * `true` removes the target's override, so the policy's or the community's default applies again. Exclusive with `limits`.
21
+ */
22
+ clear?: boolean;
23
+ /**
24
+ * With a `room` target only: `false` refuses every new upload to the room; reads continue.
25
+ */
26
+ filesEnabled?: boolean;
27
+ /**
28
+ * Why the administrator is making this change. Recorded with the change in the audit trail and shown to approvers. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.
29
+ */
30
+ reason: string;
31
+ ext?: Ext;
32
+ }
33
+ export interface VTCRoomsLimitsSetResponsePayload {
34
+ /**
35
+ * The room's identifier, as its owner minted it.
36
+ */
37
+ roomId: string;
38
+ target: LimitTarget;
39
+ limits: EffectiveLimits;
40
+ /**
41
+ * With a `member` target: that member's effective limits after the change, override or not.
42
+ */
43
+ targetLimits?: ScopeLimits;
44
+ /**
45
+ * Current usage at the target scope: the room's for `room`, the named member's for `member`. For `memberDefault`, the room's.
46
+ */
47
+ usage: Usage;
48
+ /**
49
+ * True when `usage` already exceeds the new limits. New uploads at this scope are refused until it does not; nothing is deleted.
50
+ */
51
+ overLimit: boolean;
52
+ ext?: Ext;
53
+ }
54
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
55
+ export type { EffectiveLimits, Ext, LimitSource, LimitTarget, RoomLimits, ScopeLimits, Usage };
56
+ /** Trust Task type URI. */
57
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1";
58
+ /** Stable alias for this specification's request payload shape. */
59
+ export type Payload = VTCRoomsLimitsSetPayload;
60
+ /** Trust Task response type URI (request type URI + "#response"). */
61
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1#response";
62
+ /** Stable alias for this specification's success-response payload shape. */
63
+ export type Response = VTCRoomsLimitsSetResponsePayload;
64
+ /**
65
+ * This specification's payload schema, as a value.
66
+ *
67
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
68
+ * rather than only as a `.json` file because TypeScript types are erased
69
+ * at runtime: without a schema a consumer has nothing to validate, and
70
+ * every REQUIRED payload member is optional in practice. Cross-file
71
+ * `$ref`s are already inlined, so it needs no resolver.
72
+ */
73
+ export declare const PAYLOAD_SCHEMA: {
74
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
75
+ readonly $id: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1";
76
+ readonly title: "VTC Rooms — Limits — Set — payload";
77
+ readonly description: "Override, or clear an override of, the limits one hosted room is enforced against: for the room, its members by default, or one member. The outer document members are owned by the framework — SPEC §6.3.";
78
+ readonly type: "object";
79
+ readonly additionalProperties: false;
80
+ readonly required: readonly ["roomId", "target", "reason"];
81
+ readonly properties: {
82
+ readonly roomId: {
83
+ readonly type: "string";
84
+ readonly minLength: 1;
85
+ readonly maxLength: 512;
86
+ readonly description: "The room's identifier, as its owner minted it.";
87
+ };
88
+ readonly target: {
89
+ readonly $ref: "#/$defs/LimitTarget";
90
+ };
91
+ readonly limits: {
92
+ readonly $ref: "#/$defs/ScopeLimits";
93
+ readonly description: "The override, replacing any previous one at this target wholesale.";
94
+ };
95
+ readonly clear: {
96
+ readonly type: "boolean";
97
+ readonly description: "`true` removes the target's override, so the policy's or the community's default applies again. Exclusive with `limits`.";
98
+ };
99
+ readonly filesEnabled: {
100
+ readonly type: "boolean";
101
+ readonly description: "With a `room` target only: `false` refuses every new upload to the room; reads continue.";
102
+ };
103
+ readonly reason: {
104
+ readonly type: "string";
105
+ readonly minLength: 1;
106
+ readonly maxLength: 500;
107
+ readonly description: "Why the administrator is making this change. Recorded with the change in the audit trail and shown to approvers. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.";
108
+ };
109
+ readonly ext: {
110
+ readonly $ref: "#/$defs/Ext";
111
+ };
112
+ };
113
+ readonly $defs: {
114
+ readonly Response: {
115
+ readonly $anchor: "response";
116
+ readonly title: "VTC Rooms — Limits — Set — response payload";
117
+ readonly type: "object";
118
+ readonly additionalProperties: false;
119
+ readonly required: readonly ["roomId", "target", "limits", "usage", "overLimit"];
120
+ readonly properties: {
121
+ readonly roomId: {
122
+ readonly type: "string";
123
+ readonly minLength: 1;
124
+ readonly maxLength: 512;
125
+ readonly description: "The room's identifier, as its owner minted it.";
126
+ };
127
+ readonly target: {
128
+ readonly $ref: "#/$defs/LimitTarget";
129
+ };
130
+ readonly limits: {
131
+ readonly $ref: "#/$defs/EffectiveLimits";
132
+ };
133
+ readonly targetLimits: {
134
+ readonly $ref: "#/$defs/ScopeLimits";
135
+ readonly description: "With a `member` target: that member's effective limits after the change, override or not.";
136
+ };
137
+ readonly usage: {
138
+ readonly $ref: "#/$defs/Usage";
139
+ readonly description: "Current usage at the target scope: the room's for `room`, the named member's for `member`. For `memberDefault`, the room's.";
140
+ };
141
+ readonly overLimit: {
142
+ readonly type: "boolean";
143
+ readonly description: "True when `usage` already exceeds the new limits. New uploads at this scope are refused until it does not; nothing is deleted.";
144
+ };
145
+ readonly ext: {
146
+ readonly $ref: "#/$defs/Ext";
147
+ };
148
+ };
149
+ };
150
+ readonly Ext: {
151
+ readonly title: "Ext";
152
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
153
+ readonly type: "object";
154
+ readonly minProperties: 1;
155
+ readonly additionalProperties: true;
156
+ readonly propertyNames: {
157
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
158
+ };
159
+ };
160
+ readonly Usage: {
161
+ readonly title: "Usage";
162
+ readonly type: "object";
163
+ readonly additionalProperties: false;
164
+ readonly required: readonly ["files", "bytes", "reservedBytes"];
165
+ readonly description: "What one scope holds now. Ciphertext bytes throughout.";
166
+ readonly properties: {
167
+ readonly files: {
168
+ readonly type: "integer";
169
+ readonly minimum: 0;
170
+ readonly description: "Committed blobs that are not orphaned.";
171
+ };
172
+ readonly bytes: {
173
+ readonly type: "integer";
174
+ readonly minimum: 0;
175
+ readonly description: "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once.";
176
+ };
177
+ readonly reservedBytes: {
178
+ readonly type: "integer";
179
+ readonly minimum: 0;
180
+ readonly description: "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits.";
181
+ };
182
+ readonly reservedFiles: {
183
+ readonly type: "integer";
184
+ readonly minimum: 0;
185
+ readonly description: "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`.";
186
+ };
187
+ };
188
+ };
189
+ readonly ScopeLimits: {
190
+ readonly title: "ScopeLimits";
191
+ readonly type: "object";
192
+ readonly additionalProperties: false;
193
+ readonly description: "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.";
194
+ readonly properties: {
195
+ readonly maxFiles: {
196
+ readonly type: "integer";
197
+ readonly minimum: 0;
198
+ readonly description: "The number of committed blobs the scope may hold. 0 refuses every upload at this scope.";
199
+ };
200
+ readonly maxFileBytes: {
201
+ readonly type: "integer";
202
+ readonly minimum: 0;
203
+ readonly maximum: 1073741824;
204
+ readonly description: "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest).";
205
+ };
206
+ readonly maxBytes: {
207
+ readonly type: "integer";
208
+ readonly minimum: 0;
209
+ readonly description: "The total size of the committed and reserved blobs the scope may hold.";
210
+ };
211
+ };
212
+ };
213
+ readonly EffectiveLimits: {
214
+ readonly title: "EffectiveLimits";
215
+ readonly type: "object";
216
+ readonly additionalProperties: false;
217
+ readonly required: readonly ["limits", "roomSource", "memberSource"];
218
+ readonly description: "The limits a room is enforced against now, with where each scope's came from.";
219
+ readonly properties: {
220
+ readonly limits: {
221
+ readonly $ref: "#/$defs/RoomLimits";
222
+ };
223
+ readonly roomSource: {
224
+ readonly $ref: "#/$defs/LimitSource";
225
+ };
226
+ readonly memberSource: {
227
+ readonly $ref: "#/$defs/LimitSource";
228
+ };
229
+ readonly hostCeilingBytes: {
230
+ readonly type: "integer";
231
+ readonly minimum: 0;
232
+ readonly maximum: 1073741824;
233
+ readonly description: "The host-wide largest-file ceiling, which no room or member limit can exceed.";
234
+ };
235
+ };
236
+ };
237
+ readonly LimitSource: {
238
+ readonly title: "LimitSource";
239
+ readonly type: "string";
240
+ readonly enum: readonly ["policy", "override", "default"];
241
+ readonly description: "Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.";
242
+ };
243
+ readonly RoomLimits: {
244
+ readonly title: "RoomLimits";
245
+ readonly type: "object";
246
+ readonly additionalProperties: false;
247
+ readonly required: readonly ["filesEnabled"];
248
+ readonly description: "How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.";
249
+ readonly properties: {
250
+ readonly filesEnabled: {
251
+ readonly type: "boolean";
252
+ readonly description: "False refuses every rooms/blobs/* upload for the room. Reads of blobs already stored continue.";
253
+ };
254
+ readonly room: {
255
+ readonly $ref: "#/$defs/ScopeLimits";
256
+ readonly description: "Limits on the room as a whole.";
257
+ };
258
+ readonly member: {
259
+ readonly $ref: "#/$defs/ScopeLimits";
260
+ readonly description: "Limits on each member's own uploads in this room, unless that member has an override. A member is the subject at the root of the authority chain they present, never the key that signed, so an agent acting on an attenuated chain spends its member's allowance. Not applied on a `private` room, where the host cannot tell members apart; the room and object limits still hold there.";
261
+ };
262
+ };
263
+ };
264
+ readonly LimitTarget: {
265
+ readonly title: "LimitTarget";
266
+ readonly type: "object";
267
+ readonly additionalProperties: false;
268
+ readonly required: readonly ["kind"];
269
+ readonly description: "Which limits an override applies to. `room`: the room as a whole. `memberDefault`: every member of the room who has no override of their own. `member`: one named member — `member` is REQUIRED with this kind and forbidden with the others, a rule this schema does not express; a community refuses a violation with `malformedRequest`.";
270
+ readonly properties: {
271
+ readonly kind: {
272
+ readonly type: "string";
273
+ readonly enum: readonly ["room", "memberDefault", "member"];
274
+ };
275
+ readonly member: {
276
+ readonly type: "string";
277
+ readonly pattern: "^did:";
278
+ readonly maxLength: 2048;
279
+ readonly description: "The member's DID: the subject at the root of the authority chains they present, which is what their uploads are charged to.";
280
+ };
281
+ };
282
+ };
283
+ };
284
+ };
285
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
286
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
287
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
288
+ readonly $ref: "#/$defs/Response";
289
+ readonly $defs: {
290
+ readonly Response: {
291
+ readonly $anchor: "response";
292
+ readonly title: "VTC Rooms — Limits — Set — response payload";
293
+ readonly type: "object";
294
+ readonly additionalProperties: false;
295
+ readonly required: readonly ["roomId", "target", "limits", "usage", "overLimit"];
296
+ readonly properties: {
297
+ readonly roomId: {
298
+ readonly type: "string";
299
+ readonly minLength: 1;
300
+ readonly maxLength: 512;
301
+ readonly description: "The room's identifier, as its owner minted it.";
302
+ };
303
+ readonly target: {
304
+ readonly $ref: "#/$defs/LimitTarget";
305
+ };
306
+ readonly limits: {
307
+ readonly $ref: "#/$defs/EffectiveLimits";
308
+ };
309
+ readonly targetLimits: {
310
+ readonly $ref: "#/$defs/ScopeLimits";
311
+ readonly description: "With a `member` target: that member's effective limits after the change, override or not.";
312
+ };
313
+ readonly usage: {
314
+ readonly $ref: "#/$defs/Usage";
315
+ readonly description: "Current usage at the target scope: the room's for `room`, the named member's for `member`. For `memberDefault`, the room's.";
316
+ };
317
+ readonly overLimit: {
318
+ readonly type: "boolean";
319
+ readonly description: "True when `usage` already exceeds the new limits. New uploads at this scope are refused until it does not; nothing is deleted.";
320
+ };
321
+ readonly ext: {
322
+ readonly $ref: "#/$defs/Ext";
323
+ };
324
+ };
325
+ };
326
+ readonly Ext: {
327
+ readonly title: "Ext";
328
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
329
+ readonly type: "object";
330
+ readonly minProperties: 1;
331
+ readonly additionalProperties: true;
332
+ readonly propertyNames: {
333
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
334
+ };
335
+ };
336
+ readonly Usage: {
337
+ readonly title: "Usage";
338
+ readonly type: "object";
339
+ readonly additionalProperties: false;
340
+ readonly required: readonly ["files", "bytes", "reservedBytes"];
341
+ readonly description: "What one scope holds now. Ciphertext bytes throughout.";
342
+ readonly properties: {
343
+ readonly files: {
344
+ readonly type: "integer";
345
+ readonly minimum: 0;
346
+ readonly description: "Committed blobs that are not orphaned.";
347
+ };
348
+ readonly bytes: {
349
+ readonly type: "integer";
350
+ readonly minimum: 0;
351
+ readonly description: "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once.";
352
+ };
353
+ readonly reservedBytes: {
354
+ readonly type: "integer";
355
+ readonly minimum: 0;
356
+ readonly description: "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits.";
357
+ };
358
+ readonly reservedFiles: {
359
+ readonly type: "integer";
360
+ readonly minimum: 0;
361
+ readonly description: "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`.";
362
+ };
363
+ };
364
+ };
365
+ readonly ScopeLimits: {
366
+ readonly title: "ScopeLimits";
367
+ readonly type: "object";
368
+ readonly additionalProperties: false;
369
+ readonly description: "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.";
370
+ readonly properties: {
371
+ readonly maxFiles: {
372
+ readonly type: "integer";
373
+ readonly minimum: 0;
374
+ readonly description: "The number of committed blobs the scope may hold. 0 refuses every upload at this scope.";
375
+ };
376
+ readonly maxFileBytes: {
377
+ readonly type: "integer";
378
+ readonly minimum: 0;
379
+ readonly maximum: 1073741824;
380
+ readonly description: "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest).";
381
+ };
382
+ readonly maxBytes: {
383
+ readonly type: "integer";
384
+ readonly minimum: 0;
385
+ readonly description: "The total size of the committed and reserved blobs the scope may hold.";
386
+ };
387
+ };
388
+ };
389
+ readonly EffectiveLimits: {
390
+ readonly title: "EffectiveLimits";
391
+ readonly type: "object";
392
+ readonly additionalProperties: false;
393
+ readonly required: readonly ["limits", "roomSource", "memberSource"];
394
+ readonly description: "The limits a room is enforced against now, with where each scope's came from.";
395
+ readonly properties: {
396
+ readonly limits: {
397
+ readonly $ref: "#/$defs/RoomLimits";
398
+ };
399
+ readonly roomSource: {
400
+ readonly $ref: "#/$defs/LimitSource";
401
+ };
402
+ readonly memberSource: {
403
+ readonly $ref: "#/$defs/LimitSource";
404
+ };
405
+ readonly hostCeilingBytes: {
406
+ readonly type: "integer";
407
+ readonly minimum: 0;
408
+ readonly maximum: 1073741824;
409
+ readonly description: "The host-wide largest-file ceiling, which no room or member limit can exceed.";
410
+ };
411
+ };
412
+ };
413
+ readonly LimitSource: {
414
+ readonly title: "LimitSource";
415
+ readonly type: "string";
416
+ readonly enum: readonly ["policy", "override", "default"];
417
+ readonly description: "Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.";
418
+ };
419
+ readonly RoomLimits: {
420
+ readonly title: "RoomLimits";
421
+ readonly type: "object";
422
+ readonly additionalProperties: false;
423
+ readonly required: readonly ["filesEnabled"];
424
+ readonly description: "How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.";
425
+ readonly properties: {
426
+ readonly filesEnabled: {
427
+ readonly type: "boolean";
428
+ readonly description: "False refuses every rooms/blobs/* upload for the room. Reads of blobs already stored continue.";
429
+ };
430
+ readonly room: {
431
+ readonly $ref: "#/$defs/ScopeLimits";
432
+ readonly description: "Limits on the room as a whole.";
433
+ };
434
+ readonly member: {
435
+ readonly $ref: "#/$defs/ScopeLimits";
436
+ readonly description: "Limits on each member's own uploads in this room, unless that member has an override. A member is the subject at the root of the authority chain they present, never the key that signed, so an agent acting on an attenuated chain spends its member's allowance. Not applied on a `private` room, where the host cannot tell members apart; the room and object limits still hold there.";
437
+ };
438
+ };
439
+ };
440
+ readonly LimitTarget: {
441
+ readonly title: "LimitTarget";
442
+ readonly type: "object";
443
+ readonly additionalProperties: false;
444
+ readonly required: readonly ["kind"];
445
+ readonly description: "Which limits an override applies to. `room`: the room as a whole. `memberDefault`: every member of the room who has no override of their own. `member`: one named member — `member` is REQUIRED with this kind and forbidden with the others, a rule this schema does not express; a community refuses a violation with `malformedRequest`.";
446
+ readonly properties: {
447
+ readonly kind: {
448
+ readonly type: "string";
449
+ readonly enum: readonly ["room", "memberDefault", "member"];
450
+ };
451
+ readonly member: {
452
+ readonly type: "string";
453
+ readonly pattern: "^did:";
454
+ readonly maxLength: 2048;
455
+ readonly description: "The member's DID: the subject at the root of the authority chains they present, which is what their uploads are charged to.";
456
+ };
457
+ };
458
+ };
459
+ };
460
+ };
461
+ /**
462
+ * SPEC.md §7.2 policy for the request variant, from this specification's
463
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
464
+ * per-specification and cannot be derived from the document alone, and
465
+ * item 2 needs the schema this carries.
466
+ */
467
+ export declare const SPEC: {
468
+ readonly typeUri: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1";
469
+ readonly isBearer: false;
470
+ readonly isProofRequired: true;
471
+ readonly isRecipientRequired: true;
472
+ readonly isIssuedAtRequired: true;
473
+ readonly payloadSchema: {
474
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
475
+ readonly $id: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1";
476
+ readonly title: "VTC Rooms — Limits — Set — payload";
477
+ readonly description: "Override, or clear an override of, the limits one hosted room is enforced against: for the room, its members by default, or one member. The outer document members are owned by the framework — SPEC §6.3.";
478
+ readonly type: "object";
479
+ readonly additionalProperties: false;
480
+ readonly required: readonly ["roomId", "target", "reason"];
481
+ readonly properties: {
482
+ readonly roomId: {
483
+ readonly type: "string";
484
+ readonly minLength: 1;
485
+ readonly maxLength: 512;
486
+ readonly description: "The room's identifier, as its owner minted it.";
487
+ };
488
+ readonly target: {
489
+ readonly $ref: "#/$defs/LimitTarget";
490
+ };
491
+ readonly limits: {
492
+ readonly $ref: "#/$defs/ScopeLimits";
493
+ readonly description: "The override, replacing any previous one at this target wholesale.";
494
+ };
495
+ readonly clear: {
496
+ readonly type: "boolean";
497
+ readonly description: "`true` removes the target's override, so the policy's or the community's default applies again. Exclusive with `limits`.";
498
+ };
499
+ readonly filesEnabled: {
500
+ readonly type: "boolean";
501
+ readonly description: "With a `room` target only: `false` refuses every new upload to the room; reads continue.";
502
+ };
503
+ readonly reason: {
504
+ readonly type: "string";
505
+ readonly minLength: 1;
506
+ readonly maxLength: 500;
507
+ readonly description: "Why the administrator is making this change. Recorded with the change in the audit trail and shown to approvers. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.";
508
+ };
509
+ readonly ext: {
510
+ readonly $ref: "#/$defs/Ext";
511
+ };
512
+ };
513
+ readonly $defs: {
514
+ readonly Response: {
515
+ readonly $anchor: "response";
516
+ readonly title: "VTC Rooms — Limits — Set — response payload";
517
+ readonly type: "object";
518
+ readonly additionalProperties: false;
519
+ readonly required: readonly ["roomId", "target", "limits", "usage", "overLimit"];
520
+ readonly properties: {
521
+ readonly roomId: {
522
+ readonly type: "string";
523
+ readonly minLength: 1;
524
+ readonly maxLength: 512;
525
+ readonly description: "The room's identifier, as its owner minted it.";
526
+ };
527
+ readonly target: {
528
+ readonly $ref: "#/$defs/LimitTarget";
529
+ };
530
+ readonly limits: {
531
+ readonly $ref: "#/$defs/EffectiveLimits";
532
+ };
533
+ readonly targetLimits: {
534
+ readonly $ref: "#/$defs/ScopeLimits";
535
+ readonly description: "With a `member` target: that member's effective limits after the change, override or not.";
536
+ };
537
+ readonly usage: {
538
+ readonly $ref: "#/$defs/Usage";
539
+ readonly description: "Current usage at the target scope: the room's for `room`, the named member's for `member`. For `memberDefault`, the room's.";
540
+ };
541
+ readonly overLimit: {
542
+ readonly type: "boolean";
543
+ readonly description: "True when `usage` already exceeds the new limits. New uploads at this scope are refused until it does not; nothing is deleted.";
544
+ };
545
+ readonly ext: {
546
+ readonly $ref: "#/$defs/Ext";
547
+ };
548
+ };
549
+ };
550
+ readonly Ext: {
551
+ readonly title: "Ext";
552
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
553
+ readonly type: "object";
554
+ readonly minProperties: 1;
555
+ readonly additionalProperties: true;
556
+ readonly propertyNames: {
557
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
558
+ };
559
+ };
560
+ readonly Usage: {
561
+ readonly title: "Usage";
562
+ readonly type: "object";
563
+ readonly additionalProperties: false;
564
+ readonly required: readonly ["files", "bytes", "reservedBytes"];
565
+ readonly description: "What one scope holds now. Ciphertext bytes throughout.";
566
+ readonly properties: {
567
+ readonly files: {
568
+ readonly type: "integer";
569
+ readonly minimum: 0;
570
+ readonly description: "Committed blobs that are not orphaned.";
571
+ };
572
+ readonly bytes: {
573
+ readonly type: "integer";
574
+ readonly minimum: 0;
575
+ readonly description: "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once.";
576
+ };
577
+ readonly reservedBytes: {
578
+ readonly type: "integer";
579
+ readonly minimum: 0;
580
+ readonly description: "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits.";
581
+ };
582
+ readonly reservedFiles: {
583
+ readonly type: "integer";
584
+ readonly minimum: 0;
585
+ readonly description: "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`.";
586
+ };
587
+ };
588
+ };
589
+ readonly ScopeLimits: {
590
+ readonly title: "ScopeLimits";
591
+ readonly type: "object";
592
+ readonly additionalProperties: false;
593
+ readonly description: "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.";
594
+ readonly properties: {
595
+ readonly maxFiles: {
596
+ readonly type: "integer";
597
+ readonly minimum: 0;
598
+ readonly description: "The number of committed blobs the scope may hold. 0 refuses every upload at this scope.";
599
+ };
600
+ readonly maxFileBytes: {
601
+ readonly type: "integer";
602
+ readonly minimum: 0;
603
+ readonly maximum: 1073741824;
604
+ readonly description: "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest).";
605
+ };
606
+ readonly maxBytes: {
607
+ readonly type: "integer";
608
+ readonly minimum: 0;
609
+ readonly description: "The total size of the committed and reserved blobs the scope may hold.";
610
+ };
611
+ };
612
+ };
613
+ readonly EffectiveLimits: {
614
+ readonly title: "EffectiveLimits";
615
+ readonly type: "object";
616
+ readonly additionalProperties: false;
617
+ readonly required: readonly ["limits", "roomSource", "memberSource"];
618
+ readonly description: "The limits a room is enforced against now, with where each scope's came from.";
619
+ readonly properties: {
620
+ readonly limits: {
621
+ readonly $ref: "#/$defs/RoomLimits";
622
+ };
623
+ readonly roomSource: {
624
+ readonly $ref: "#/$defs/LimitSource";
625
+ };
626
+ readonly memberSource: {
627
+ readonly $ref: "#/$defs/LimitSource";
628
+ };
629
+ readonly hostCeilingBytes: {
630
+ readonly type: "integer";
631
+ readonly minimum: 0;
632
+ readonly maximum: 1073741824;
633
+ readonly description: "The host-wide largest-file ceiling, which no room or member limit can exceed.";
634
+ };
635
+ };
636
+ };
637
+ readonly LimitSource: {
638
+ readonly title: "LimitSource";
639
+ readonly type: "string";
640
+ readonly enum: readonly ["policy", "override", "default"];
641
+ readonly description: "Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.";
642
+ };
643
+ readonly RoomLimits: {
644
+ readonly title: "RoomLimits";
645
+ readonly type: "object";
646
+ readonly additionalProperties: false;
647
+ readonly required: readonly ["filesEnabled"];
648
+ readonly description: "How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.";
649
+ readonly properties: {
650
+ readonly filesEnabled: {
651
+ readonly type: "boolean";
652
+ readonly description: "False refuses every rooms/blobs/* upload for the room. Reads of blobs already stored continue.";
653
+ };
654
+ readonly room: {
655
+ readonly $ref: "#/$defs/ScopeLimits";
656
+ readonly description: "Limits on the room as a whole.";
657
+ };
658
+ readonly member: {
659
+ readonly $ref: "#/$defs/ScopeLimits";
660
+ readonly description: "Limits on each member's own uploads in this room, unless that member has an override. A member is the subject at the root of the authority chain they present, never the key that signed, so an agent acting on an attenuated chain spends its member's allowance. Not applied on a `private` room, where the host cannot tell members apart; the room and object limits still hold there.";
661
+ };
662
+ };
663
+ };
664
+ readonly LimitTarget: {
665
+ readonly title: "LimitTarget";
666
+ readonly type: "object";
667
+ readonly additionalProperties: false;
668
+ readonly required: readonly ["kind"];
669
+ readonly description: "Which limits an override applies to. `room`: the room as a whole. `memberDefault`: every member of the room who has no override of their own. `member`: one named member — `member` is REQUIRED with this kind and forbidden with the others, a rule this schema does not express; a community refuses a violation with `malformedRequest`.";
670
+ readonly properties: {
671
+ readonly kind: {
672
+ readonly type: "string";
673
+ readonly enum: readonly ["room", "memberDefault", "member"];
674
+ };
675
+ readonly member: {
676
+ readonly type: "string";
677
+ readonly pattern: "^did:";
678
+ readonly maxLength: 2048;
679
+ readonly description: "The member's DID: the subject at the root of the authority chains they present, which is what their uploads are charged to.";
680
+ };
681
+ };
682
+ };
683
+ };
684
+ };
685
+ };
686
+ /**
687
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
688
+ * tracks the *issuer* party's requirement because a response swaps the
689
+ * parties (§7.3 item 5).
690
+ */
691
+ export declare const RESPONSE_SPEC: {
692
+ readonly typeUri: "https://trusttasks.org/spec/vtc/rooms/limits/set/0.1#response";
693
+ readonly isBearer: false;
694
+ readonly isProofRequired: true;
695
+ readonly isRecipientRequired: true;
696
+ readonly isIssuedAtRequired: true;
697
+ readonly payloadSchema: {
698
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
699
+ readonly $ref: "#/$defs/Response";
700
+ readonly $defs: {
701
+ readonly Response: {
702
+ readonly $anchor: "response";
703
+ readonly title: "VTC Rooms — Limits — Set — response payload";
704
+ readonly type: "object";
705
+ readonly additionalProperties: false;
706
+ readonly required: readonly ["roomId", "target", "limits", "usage", "overLimit"];
707
+ readonly properties: {
708
+ readonly roomId: {
709
+ readonly type: "string";
710
+ readonly minLength: 1;
711
+ readonly maxLength: 512;
712
+ readonly description: "The room's identifier, as its owner minted it.";
713
+ };
714
+ readonly target: {
715
+ readonly $ref: "#/$defs/LimitTarget";
716
+ };
717
+ readonly limits: {
718
+ readonly $ref: "#/$defs/EffectiveLimits";
719
+ };
720
+ readonly targetLimits: {
721
+ readonly $ref: "#/$defs/ScopeLimits";
722
+ readonly description: "With a `member` target: that member's effective limits after the change, override or not.";
723
+ };
724
+ readonly usage: {
725
+ readonly $ref: "#/$defs/Usage";
726
+ readonly description: "Current usage at the target scope: the room's for `room`, the named member's for `member`. For `memberDefault`, the room's.";
727
+ };
728
+ readonly overLimit: {
729
+ readonly type: "boolean";
730
+ readonly description: "True when `usage` already exceeds the new limits. New uploads at this scope are refused until it does not; nothing is deleted.";
731
+ };
732
+ readonly ext: {
733
+ readonly $ref: "#/$defs/Ext";
734
+ };
735
+ };
736
+ };
737
+ readonly Ext: {
738
+ readonly title: "Ext";
739
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
740
+ readonly type: "object";
741
+ readonly minProperties: 1;
742
+ readonly additionalProperties: true;
743
+ readonly propertyNames: {
744
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
745
+ };
746
+ };
747
+ readonly Usage: {
748
+ readonly title: "Usage";
749
+ readonly type: "object";
750
+ readonly additionalProperties: false;
751
+ readonly required: readonly ["files", "bytes", "reservedBytes"];
752
+ readonly description: "What one scope holds now. Ciphertext bytes throughout.";
753
+ readonly properties: {
754
+ readonly files: {
755
+ readonly type: "integer";
756
+ readonly minimum: 0;
757
+ readonly description: "Committed blobs that are not orphaned.";
758
+ };
759
+ readonly bytes: {
760
+ readonly type: "integer";
761
+ readonly minimum: 0;
762
+ readonly description: "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once.";
763
+ };
764
+ readonly reservedBytes: {
765
+ readonly type: "integer";
766
+ readonly minimum: 0;
767
+ readonly description: "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits.";
768
+ };
769
+ readonly reservedFiles: {
770
+ readonly type: "integer";
771
+ readonly minimum: 0;
772
+ readonly description: "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`.";
773
+ };
774
+ };
775
+ };
776
+ readonly ScopeLimits: {
777
+ readonly title: "ScopeLimits";
778
+ readonly type: "object";
779
+ readonly additionalProperties: false;
780
+ readonly description: "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.";
781
+ readonly properties: {
782
+ readonly maxFiles: {
783
+ readonly type: "integer";
784
+ readonly minimum: 0;
785
+ readonly description: "The number of committed blobs the scope may hold. 0 refuses every upload at this scope.";
786
+ };
787
+ readonly maxFileBytes: {
788
+ readonly type: "integer";
789
+ readonly minimum: 0;
790
+ readonly maximum: 1073741824;
791
+ readonly description: "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest).";
792
+ };
793
+ readonly maxBytes: {
794
+ readonly type: "integer";
795
+ readonly minimum: 0;
796
+ readonly description: "The total size of the committed and reserved blobs the scope may hold.";
797
+ };
798
+ };
799
+ };
800
+ readonly EffectiveLimits: {
801
+ readonly title: "EffectiveLimits";
802
+ readonly type: "object";
803
+ readonly additionalProperties: false;
804
+ readonly required: readonly ["limits", "roomSource", "memberSource"];
805
+ readonly description: "The limits a room is enforced against now, with where each scope's came from.";
806
+ readonly properties: {
807
+ readonly limits: {
808
+ readonly $ref: "#/$defs/RoomLimits";
809
+ };
810
+ readonly roomSource: {
811
+ readonly $ref: "#/$defs/LimitSource";
812
+ };
813
+ readonly memberSource: {
814
+ readonly $ref: "#/$defs/LimitSource";
815
+ };
816
+ readonly hostCeilingBytes: {
817
+ readonly type: "integer";
818
+ readonly minimum: 0;
819
+ readonly maximum: 1073741824;
820
+ readonly description: "The host-wide largest-file ceiling, which no room or member limit can exceed.";
821
+ };
822
+ };
823
+ };
824
+ readonly LimitSource: {
825
+ readonly title: "LimitSource";
826
+ readonly type: "string";
827
+ readonly enum: readonly ["policy", "override", "default"];
828
+ readonly description: "Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.";
829
+ };
830
+ readonly RoomLimits: {
831
+ readonly title: "RoomLimits";
832
+ readonly type: "object";
833
+ readonly additionalProperties: false;
834
+ readonly required: readonly ["filesEnabled"];
835
+ readonly description: "How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.";
836
+ readonly properties: {
837
+ readonly filesEnabled: {
838
+ readonly type: "boolean";
839
+ readonly description: "False refuses every rooms/blobs/* upload for the room. Reads of blobs already stored continue.";
840
+ };
841
+ readonly room: {
842
+ readonly $ref: "#/$defs/ScopeLimits";
843
+ readonly description: "Limits on the room as a whole.";
844
+ };
845
+ readonly member: {
846
+ readonly $ref: "#/$defs/ScopeLimits";
847
+ readonly description: "Limits on each member's own uploads in this room, unless that member has an override. A member is the subject at the root of the authority chain they present, never the key that signed, so an agent acting on an attenuated chain spends its member's allowance. Not applied on a `private` room, where the host cannot tell members apart; the room and object limits still hold there.";
848
+ };
849
+ };
850
+ };
851
+ readonly LimitTarget: {
852
+ readonly title: "LimitTarget";
853
+ readonly type: "object";
854
+ readonly additionalProperties: false;
855
+ readonly required: readonly ["kind"];
856
+ readonly description: "Which limits an override applies to. `room`: the room as a whole. `memberDefault`: every member of the room who has no override of their own. `member`: one named member — `member` is REQUIRED with this kind and forbidden with the others, a rule this schema does not express; a community refuses a violation with `malformedRequest`.";
857
+ readonly properties: {
858
+ readonly kind: {
859
+ readonly type: "string";
860
+ readonly enum: readonly ["room", "memberDefault", "member"];
861
+ };
862
+ readonly member: {
863
+ readonly type: "string";
864
+ readonly pattern: "^did:";
865
+ readonly maxLength: 2048;
866
+ readonly description: "The member's DID: the subject at the root of the authority chains they present, which is what their uploads are charged to.";
867
+ };
868
+ };
869
+ };
870
+ };
871
+ };
872
+ };
873
+ //# sourceMappingURL=payload.d.ts.map