@giveitsmaller/contracts 0.67.0 → 0.68.0

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 (520) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +17 -3
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/availability/availability.json +91 -10
  5. package/code-builder/code-builder-metadata.json +120 -11
  6. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  8. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  21. package/dist/openapi/models/AuthErrorType.js +1 -1
  22. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  23. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  24. package/dist/openapi/models/AuthenticatedIdentity.d.ts +89 -0
  25. package/dist/openapi/models/AuthenticatedIdentity.js +66 -0
  26. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  27. package/dist/openapi/models/AvailabilityValue.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  30. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  32. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  33. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  34. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  35. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  36. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  37. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  38. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  39. package/dist/openapi/models/CallbackEventType.js +1 -1
  40. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +1 -1
  41. package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
  42. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
  43. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
  44. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityCondition.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  56. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  58. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  60. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  62. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  64. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProduces.js +1 -1
  66. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  68. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  69. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  70. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  71. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  72. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  73. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  74. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSource.js +1 -1
  76. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  78. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  79. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  80. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  81. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  82. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  83. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  84. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  85. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  86. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  87. package/dist/openapi/models/CompositionPlan.js +1 -1
  88. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  89. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  90. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  91. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  92. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  93. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  94. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  95. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  96. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  97. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  98. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  99. package/dist/openapi/models/ConnectionSource.js +1 -1
  100. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  101. package/dist/openapi/models/ContactRequest.js +1 -1
  102. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  103. package/dist/openapi/models/ContactSubject.js +1 -1
  104. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  105. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  106. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  107. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  108. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  109. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  110. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  111. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  112. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  113. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  114. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  116. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  117. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  118. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  119. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  120. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  121. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  122. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  123. package/dist/openapi/models/CreditTransaction.js +1 -1
  124. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  125. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  126. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  127. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  128. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  129. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  130. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  131. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  132. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  133. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  134. package/dist/openapi/models/Delivery.d.ts +1 -1
  135. package/dist/openapi/models/Delivery.js +1 -1
  136. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  138. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  139. package/dist/openapi/models/DeliveryPlan.js +1 -1
  140. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  141. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  142. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  143. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  144. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  145. package/dist/openapi/models/DeliverySelection.js +1 -1
  146. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  147. package/dist/openapi/models/DownloadBundle.js +1 -1
  148. package/dist/openapi/models/DroppedOption.d.ts +1 -1
  149. package/dist/openapi/models/DroppedOption.js +1 -1
  150. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  151. package/dist/openapi/models/EmailNotify.js +1 -1
  152. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  153. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  154. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  155. package/dist/openapi/models/EndpointProjection.js +1 -1
  156. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
  157. package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
  158. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  159. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  160. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  161. package/dist/openapi/models/EstimateQuality.js +1 -1
  162. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  163. package/dist/openapi/models/EstimateRange.js +1 -1
  164. package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
  165. package/dist/openapi/models/ExportAccountData200Response.js +1 -1
  166. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
  167. package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
  168. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  169. package/dist/openapi/models/ExternalDestination.js +1 -1
  170. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  171. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  172. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  173. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  174. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  175. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  176. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  177. package/dist/openapi/models/ExternalImportToken.js +1 -1
  178. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  179. package/dist/openapi/models/ExternalSource.js +1 -1
  180. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  181. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  182. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  183. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  184. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  185. package/dist/openapi/models/FeatureViolation.js +1 -1
  186. package/dist/openapi/models/GetProfile200Response.d.ts +46 -0
  187. package/dist/openapi/models/GetProfile200Response.js +54 -0
  188. package/dist/openapi/models/GetProfile200ResponseData.d.ts +33 -0
  189. package/dist/openapi/models/GetProfile200ResponseData.js +44 -0
  190. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  191. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  192. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  193. package/dist/openapi/models/JobDefinition.js +1 -1
  194. package/dist/openapi/models/JobDownload.d.ts +1 -1
  195. package/dist/openapi/models/JobDownload.js +1 -1
  196. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  197. package/dist/openapi/models/JobInputV2.js +1 -1
  198. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  199. package/dist/openapi/models/JobMediaClass.js +1 -1
  200. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  201. package/dist/openapi/models/JobOutputSource.js +1 -1
  202. package/dist/openapi/models/JobResponse.d.ts +1 -1
  203. package/dist/openapi/models/JobResponse.js +1 -1
  204. package/dist/openapi/models/JobStatus.d.ts +1 -1
  205. package/dist/openapi/models/JobStatus.js +1 -1
  206. package/dist/openapi/models/JobType.d.ts +1 -1
  207. package/dist/openapi/models/JobType.js +1 -1
  208. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  209. package/dist/openapi/models/LivenessResponse.js +1 -1
  210. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  211. package/dist/openapi/models/LoginUser200Response.js +1 -1
  212. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  213. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  214. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  215. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  216. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  217. package/dist/openapi/models/LoginUser401Response.js +1 -1
  218. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  219. package/dist/openapi/models/LoginUserRequest.js +1 -1
  220. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  221. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  222. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  223. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  224. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  225. package/dist/openapi/models/MetadataResponse.js +1 -1
  226. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  227. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  228. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  229. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  230. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  231. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  232. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  233. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  234. package/dist/openapi/models/MimeGroupSchema.d.ts +17 -8
  235. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  236. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  237. package/dist/openapi/models/MultiInputSource.js +1 -1
  238. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  239. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  240. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  241. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  242. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  243. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  244. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  245. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  246. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  247. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  248. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  249. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  250. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  251. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  252. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  253. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  254. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  255. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  256. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  257. package/dist/openapi/models/MultipartPartListing.js +1 -1
  258. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  259. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  260. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  261. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  262. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  263. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  264. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  265. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  266. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  267. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  268. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  269. package/dist/openapi/models/NotifyConfig.js +1 -1
  270. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  271. package/dist/openapi/models/OperationCapability.js +1 -1
  272. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  273. package/dist/openapi/models/OperationDefinition.js +1 -1
  274. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  275. package/dist/openapi/models/OperationDownload.js +1 -1
  276. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  277. package/dist/openapi/models/OperationInputModel.js +1 -1
  278. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  279. package/dist/openapi/models/OperationResponse.js +1 -1
  280. package/dist/openapi/models/OperationResult.d.ts +1 -1
  281. package/dist/openapi/models/OperationResult.js +1 -1
  282. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  283. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  284. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  285. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  286. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  287. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  288. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  289. package/dist/openapi/models/OperationStatus.js +1 -1
  290. package/dist/openapi/models/OperationType.d.ts +1 -1
  291. package/dist/openapi/models/OperationType.js +1 -1
  292. package/dist/openapi/models/OperationsSchemaResponse.d.ts +7 -1
  293. package/dist/openapi/models/OperationsSchemaResponse.js +3 -1
  294. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  295. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  296. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  297. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  298. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  299. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  300. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  301. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  302. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  303. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  304. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  305. package/dist/openapi/models/OptionSchema.js +1 -1
  306. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  307. package/dist/openapi/models/OutputProperties.js +1 -1
  308. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  309. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  310. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
  311. package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
  312. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  313. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  314. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  315. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  316. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  317. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  318. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  319. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  320. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  321. package/dist/openapi/models/ProcessingClass.js +1 -1
  322. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  323. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  324. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  325. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  326. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  327. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  328. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  329. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  330. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  331. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  332. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  333. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  334. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  335. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  336. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  337. package/dist/openapi/models/ProcessingPlan.js +1 -1
  338. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  339. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  340. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  341. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  342. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  343. package/dist/openapi/models/ReadinessResponse.js +1 -1
  344. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  345. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  346. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  347. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  348. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
  349. package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
  350. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
  351. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
  352. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
  353. package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
  354. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  355. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  356. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  357. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  358. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  359. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  360. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  361. package/dist/openapi/models/RetryResponse.js +1 -1
  362. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  363. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  364. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  365. package/dist/openapi/models/SseCompletionBase.js +1 -1
  366. package/dist/openapi/models/SseEventType.d.ts +1 -1
  367. package/dist/openapi/models/SseEventType.js +1 -1
  368. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  369. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  370. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  371. package/dist/openapi/models/SseJobFailedData.js +1 -1
  372. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  373. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  374. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  375. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  376. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  377. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  378. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  379. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  380. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  381. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  382. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  383. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  384. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  385. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  386. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  387. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  388. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  389. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  390. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  391. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  392. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  393. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  394. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  395. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  396. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  397. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  398. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  399. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  400. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  401. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  402. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  403. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  404. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  405. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  406. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  407. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  408. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  409. package/dist/openapi/models/UploadFile403Response.js +1 -1
  410. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  411. package/dist/openapi/models/UploadFile422Response.js +1 -1
  412. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  413. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  414. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  415. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  416. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  417. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  418. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  419. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  420. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  421. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  422. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  423. package/dist/openapi/models/UploadResponse.js +1 -1
  424. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  425. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  426. package/dist/openapi/models/UploadSource.d.ts +1 -1
  427. package/dist/openapi/models/UploadSource.js +1 -1
  428. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  431. package/dist/openapi/models/UploadThresholds.js +1 -1
  432. package/dist/openapi/models/UserTier.d.ts +18 -58
  433. package/dist/openapi/models/UserTier.js +18 -58
  434. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  435. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  436. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  437. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  438. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  439. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  440. package/dist/openapi/models/WarningType.d.ts +1 -1
  441. package/dist/openapi/models/WarningType.js +1 -1
  442. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  443. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  444. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  445. package/dist/openapi/models/WebhookPayload.js +1 -1
  446. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  448. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  450. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  452. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  454. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  456. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  458. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  459. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  460. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  461. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  462. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  464. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  466. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  467. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  468. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  469. package/dist/openapi/models/WorkflowEdge.js +1 -1
  470. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  471. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  472. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  473. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  474. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  475. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  476. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  477. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  478. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  479. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  480. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  481. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  482. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  483. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  484. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  485. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  486. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  487. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  488. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  489. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  490. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  491. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  492. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  493. package/dist/openapi/models/WorkflowSource.js +1 -1
  494. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  495. package/dist/openapi/models/WorkflowStatus.js +1 -1
  496. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  497. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  498. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  499. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  500. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  501. package/dist/openapi/models/WorkflowSummary.js +1 -1
  502. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  503. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  504. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  505. package/dist/openapi/models/WorkflowWarning.js +1 -1
  506. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  507. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  508. package/dist/openapi/models/index.d.ts +3 -0
  509. package/dist/openapi/models/index.js +3 -0
  510. package/dist/openapi/runtime.d.ts +1 -1
  511. package/dist/openapi/runtime.js +1 -1
  512. package/dist/operations/thumbnail.d.ts +30 -7
  513. package/dist/operations/thumbnail.js +34 -17
  514. package/dist/operations/thumbnail.metadata.js +29 -1
  515. package/openapi/README.md +1 -1
  516. package/openapi/api.yaml +410 -71
  517. package/operation-capabilities/operation-capabilities.json +1 -1
  518. package/operations/schemas/compress.yaml +67 -10
  519. package/operations/schemas/thumbnail.yaml +100 -1
  520. package/package.json +3 -3
package/openapi/api.yaml CHANGED
@@ -89,7 +89,7 @@ info:
89
89
  of truth instead of hardcoding magic numbers. A runtime
90
90
  `GET /api/uploads/limits` endpoint for dynamic discovery
91
91
  (per-tier / per-environment overrides) is a deferred follow-up.
92
- version: 2.196.0
92
+ version: 2.198.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -2851,6 +2851,161 @@ paths:
2851
2851
  Server-Sent Events stream. Each event has an `event` field (type)
2852
2852
  and a `data` field (JSON payload). See endpoint description for
2853
2853
  event types and payload shapes.
2854
+ '429':
2855
+ description: |
2856
+ **The CALLER's own concurrent-stream allowance is exhausted.**
2857
+
2858
+ Consistent with `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED`, which this
2859
+ contract already returns `429` for and describes as *"the caller's
2860
+ tier concurrency allowance is exhausted"*. **Same semantics, same
2861
+ code** — this caller is holding too many streams open.
2862
+
2863
+ ⚠️ **NOT for a global-capacity refusal.** `429` tells a caller they
2864
+ went too fast; a caller who has opened nothing and is refused
2865
+ because the pool is full has not, and sending them to a slow-down
2866
+ remedy is a lie. That case is `503`.
2867
+ headers:
2868
+ Retry-After:
2869
+ description: Seconds to wait. Delta-seconds, not an HTTP-date.
2870
+ schema:
2871
+ type: integer
2872
+ content:
2873
+ application/json:
2874
+ schema:
2875
+ $ref: '#/components/schemas/ErrorEnvelope'
2876
+ example:
2877
+ success: false
2878
+ error: SSE_CONNECTION_LIMIT_EXCEEDED
2879
+ message: Too many open event streams for this caller.
2880
+ '503':
2881
+ description: |
2882
+ **Global stream capacity is exhausted — nothing about this caller.**
2883
+
2884
+ 🔴 **The cap this exists for is not a rate.** `events_stream` limits
2885
+ how fast streams START, not how many are OPEN, and a stream holds
2886
+ one PHP-FPM worker for its entire life. At 10 starts/min against a
2887
+ 570s deadline a single caller sustains roughly 95 concurrent streams
2888
+ on a 50-worker pool **without exceeding any documented limit** —
2889
+ uploads, `/status`, auth and the health probes queue behind it.
2890
+ ⇒ **An ordinary client can exhaust the pool using a documented
2891
+ feature within its documented limits.** No malice required.
2892
+
2893
+ 🔴 **RECONNECT BEHAVIOUR DEPENDS ON THE CLIENT KIND, AND SAYING
2894
+ SO IS THE WHOLE POINT OF THIS BLOCK.** A `text/event-stream`
2895
+ endpoint is not necessarily consumed by an `EventSource`. The
2896
+ WHATWG rules below are **user-agent behaviour of `EventSource`**
2897
+ and hold for **nothing else** — a `fetch`-based reader supplies its
2898
+ own policy, and the two behave oppositely under refusal.
2899
+
2900
+ **(a) A NATIVE `EventSource`.** From the WHATWG HTML spec,
2901
+ Server-sent events (read 2026-08-22, api searched it and this repo
2902
+ verified it independently rather than relaying):
2903
+
2904
+ - *"if res's status is not 200, or if res's `Content-Type` is not
2905
+ `text/event-stream`, then fail the connection."*
2906
+ - *"Once the user agent has failed the connection, it does not
2907
+ attempt to reconnect."*
2908
+ - *"…if res is not a network error, then reestablish the
2909
+ connection."* — this is `processEventSourceEndOfBody`, i.e. a
2910
+ **clean EOF on an already-established 200 stream.**
2911
+
2912
+ ⇒ For this client kind, refusing with a status does not storm, and
2913
+ **accept-then-close-with-an-in-band-error IS the reconnect path** —
2914
+ a clean EOF on an established stream is precisely what the spec
2915
+ reestablishes. ⭐ **The shape that reads as the gentler option is
2916
+ the one that amplifies**, and the intuition is backwards.
2917
+
2918
+ ⚠️ Its cost, which must not be sold as graceful degradation: a
2919
+ refused stream **dead-ends**, permanently, with no retry of its
2920
+ own. ⇒ **Such a UI must treat refusal as TERMINAL and offer an
2921
+ explicit user-visible retry — never a spinner**, which would wait
2922
+ forever on a connection that is never coming back. It also **cannot
2923
+ read this status** (`EventSource` does not expose it to page
2924
+ script), so it cannot tell `503` from `500`.
2925
+
2926
+ **(b) A `fetch`-BASED READER — WHICH IS WHAT OUR FRONTEND IS.**
2927
+ Measured at `compression_frontend` `origin/main` on 2026-08-25 by
2928
+ two independent parties: **zero `EventSource` references** across
2929
+ its source tree (positive control on the same enumeration: several
2930
+ files reference this endpoint), a plain `fetch()` whose own comment
2931
+ says *"a direct fetch, not an SDK call"*. It reads
2932
+ `response.status` fine.
2933
+
2934
+ Its refusal behaviour, **as a SHAPE — the counts and intervals are
2935
+ configurable defaults in that repo and are deliberately not
2936
+ restated here, because a number copied across a repo boundary rots
2937
+ silently**: a non-200 is raised as a *transport error*, retried a
2938
+ bounded number of times on a delay, and then falls through to
2939
+ `/status` polling with **adaptive backoff** — the interval GROWS
2940
+ while the server reports no movement.
2941
+
2942
+ ⚠️ **And the `/status` poll is NOT started by the fallback.** It
2943
+ runs **in parallel from the outset**, as resilience against a
2944
+ gateway that cannot proxy SSE, and **self-cancels on the stream's
2945
+ first event.** A refused stream never delivers one — so **refusal
2946
+ does not start a poll, it prevents an already-running poll from
2947
+ being cancelled.**
2948
+
2949
+ 🔴 **SO REFUSAL TRADES CONTINUOUS WORKER OCCUPANCY FOR A HIGHER
2950
+ REQUEST RATE.** Both halves matter: a held stream pins one PHP-FPM
2951
+ worker for its whole life and refusal genuinely sheds that — a
2952
+ short poll is not a held connection — while that client's
2953
+ connection attempts and polls go **up**.
2954
+ ⚠️ **Do not read either half alone.** "Refusal sheds load" invites
2955
+ a cap whose success metric moves the wrong way; "refusal increases
2956
+ load" argues against having a cap at all, and the occupancy it
2957
+ sheds is the resource this limit exists for.
2958
+
2959
+ ⚠️ **THAT IS PER-CLIENT AND MEASURED. THE AGGREGATE IS NEITHER.**
2960
+ Whether refusing many clients at once produces a synchronised burst
2961
+ is **UNMEASURED** — the retry delay is a fixed configured interval
2962
+ with no jitter, so refusals issued together are retried together,
2963
+ and nothing here has observed what that does in aggregate. **Do not
2964
+ read "not a storm" out of this section; it says the per-client cost
2965
+ is bounded and says nothing about the fleet.**
2966
+
2967
+ 📌 **WHAT A REFUSED `fetch` CLIENT SHOULD DO INSTEAD IS NOT YET
2968
+ SPECIFIED** — including whether `Retry-After` governs a fallback
2969
+ poll interval and not only a reconnect. Falling back to polling
2970
+ is also load, merely cheaper. Open on
2971
+ [`rLCBjojv`](https://trello.com/c/rLCBjojv); **this block states the
2972
+ measured behaviour and deliberately does not invent the
2973
+ obligation.**
2974
+
2975
+ 📌 **THE POPULATIONS SPLIT BY READER KIND, NOT BY
2976
+ BROWSER-VERSUS-NOT.** The WHATWG rule covers **native
2977
+ `EventSource` consumers** and nothing else. **A custom reader is
2978
+ safe only by its own code, inside a browser or outside one** — and
2979
+ a retry loop treating `429`/`503` as retryable on a fixed interval
2980
+ is where a storm is reachable. ⚠️ **Our own frontend is in that
2981
+ population, not exempt from it.**
2982
+
2983
+ ✅ **For OUR SDKs that is measured, not assumed** (sdks,
2984
+ 2026-08-22, driven through the BUILT client with a stubbed
2985
+ transport and a positive control): `429`, `503` and a `429` with no
2986
+ `Retry-After` each produce **exactly one request**; the control
2987
+ `200` also produces one, proving the stub was reached.
2988
+ `GislClient.request()` has no retry layer, `streamEvents` reaches
2989
+ none of the upload/probe retry predicates, and there is no
2990
+ Last-Event-ID reconnection in either language.
2991
+ ⚠️ **That is a property of the current SDK, not of the contract** —
2992
+ it can be undone by an ordinary change to a retry policy, and this
2993
+ endpoint would not notice.
2994
+ headers:
2995
+ Retry-After:
2996
+ description: |
2997
+ Seconds to wait before retrying. Delta-seconds, not an
2998
+ HTTP-date. **Also unreadable by `EventSource`** — see above.
2999
+ schema:
3000
+ type: integer
3001
+ content:
3002
+ application/json:
3003
+ schema:
3004
+ $ref: '#/components/schemas/ErrorEnvelope'
3005
+ example:
3006
+ success: false
3007
+ error: SSE_CAPACITY_EXHAUSTED
3008
+ message: Event stream capacity is temporarily exhausted.
2854
3009
  '404':
2855
3010
  description: Workflow not found
2856
3011
  content:
@@ -5189,6 +5344,70 @@ paths:
5189
5344
  $ref: '#/components/schemas/ErrorEnvelope'
5190
5345
 
5191
5346
  /api/auth/profile:
5347
+ get:
5348
+ summary: Get the authenticated identity (whoami)
5349
+ description: |
5350
+ Returns the caller's own identity. **This endpoint SHIPS and was
5351
+ undocumented until 2026-08-22** — the contract described only `PATCH`
5352
+ on this path, and three sessions independently concluded that no
5353
+ whoami capability existed because they read the contract rather than
5354
+ the API. **A contract that omits a shipped endpoint is exactly as
5355
+ dangerous as one that documents a missing one.**
5356
+
5357
+ ⚠️ **Documented from the producer, not from a test.** The response
5358
+ shape below is taken from `ProfileController::profile()` in
5359
+ `compression_api`. An e2e test asserts only `data.user.id` and
5360
+ `data.user.email`; writing the schema from it would have documented
5361
+ two of eight fields and called the rest absent.
5362
+
5363
+ 🔴 **`tier` is emitted through `UserTier::canonicalValue()`**, which
5364
+ returns the WIRE spelling of the base tier — see `UserTier` for the
5365
+ `basic`/`free` transition and why the two spellings are one tier.
5366
+ operationId: getProfile
5367
+ security:
5368
+ - bearerAuth: []
5369
+ - sessionAuth: []
5370
+ x-identity-scoped: true
5371
+ tags:
5372
+ - Auth
5373
+ responses:
5374
+ '200':
5375
+ description: The authenticated identity.
5376
+ content:
5377
+ application/json:
5378
+ schema:
5379
+ type: object
5380
+ required: [success, data]
5381
+ properties:
5382
+ success:
5383
+ type: boolean
5384
+ enum: [true]
5385
+ data:
5386
+ type: object
5387
+ required: [user]
5388
+ properties:
5389
+ user:
5390
+ $ref: '#/components/schemas/AuthenticatedIdentity'
5391
+ '401':
5392
+ description: No authenticated principal.
5393
+ content:
5394
+ application/json:
5395
+ schema:
5396
+ $ref: '#/components/schemas/ErrorEnvelope'
5397
+ '404':
5398
+ description: |
5399
+ The authenticated principal no longer resolves to a stored user
5400
+ (`error: USER_NOT_FOUND`).
5401
+ content:
5402
+ application/json:
5403
+ schema:
5404
+ $ref: '#/components/schemas/ErrorEnvelope'
5405
+ '500':
5406
+ description: Internal server error.
5407
+ content:
5408
+ application/json:
5409
+ schema:
5410
+ $ref: '#/components/schemas/ErrorEnvelope'
5192
5411
  patch:
5193
5412
  summary: Update the authenticated user's profile
5194
5413
  description: |
@@ -8490,52 +8709,72 @@ components:
8490
8709
  # USER TIER + TIER RESTRICTION ENVELOPES
8491
8710
  # ============================================
8492
8711
 
8712
+ AuthenticatedIdentity:
8713
+ type: object
8714
+ description: |
8715
+ The caller's own identity, as returned by `GET /api/auth/profile`.
8716
+
8717
+ **Documented from `ProfileController::profile()` in `compression_api`,
8718
+ 2026-08-22, after the endpoint was found to ship undocumented.**
8719
+ Nullability is taken from `UserRecord`'s constructor promotion, not
8720
+ inferred from a sample response — a field that happens to be populated
8721
+ in one response says nothing about whether it can be null.
8722
+ required:
8723
+ - id
8724
+ - email
8725
+ - tier
8726
+ - email_verified
8727
+ - created_at
8728
+ properties:
8729
+ id:
8730
+ type: string
8731
+ description: Stable identifier for the user.
8732
+ email:
8733
+ type: string
8734
+ format: email
8735
+ name:
8736
+ type: string
8737
+ nullable: true
8738
+ description: Display name. Nullable — `UserRecord::$name` defaults to null.
8739
+ tier:
8740
+ allOf:
8741
+ - $ref: '#/components/schemas/UserTier'
8742
+ description: |
8743
+ 🔴 **Emitted through `UserTier::canonicalValue()`**, which returns the
8744
+ WIRE spelling of the base tier. See `UserTier` for why `basic` and
8745
+ `free` are one tier under two names and must rank identically.
8746
+ email_verified:
8747
+ type: boolean
8748
+ description: |
8749
+ Derived — true iff `UserRecord::$emailVerifiedAt` is set. The
8750
+ timestamp itself is NOT exposed on this endpoint.
8751
+ pending_email:
8752
+ type: string
8753
+ format: email
8754
+ nullable: true
8755
+ description: A requested email change awaiting confirmation, if any.
8756
+ created_at:
8757
+ type: string
8758
+ format: date-time
8759
+ delete_requested_at:
8760
+ type: string
8761
+ format: date-time
8762
+ nullable: true
8763
+ description: |
8764
+ Set when the user has requested account deletion and not cancelled
8765
+ it. Nullable in the normal case.
8493
8766
  UserTier:
8494
8767
  type: string
8495
8768
  description: |
8496
8769
  Subscription tier. Mirrors the API-side
8497
8770
  `App\Identity\Domain\Enums\UserTier` PHP enum.
8498
8771
 
8499
- 🔴 **`basic` IS THE BASE TIER. `free` IS DEPRECATED IN PLACE AND
8500
- WILL BE REMOVED** (ticket [`nD8fCPDy`](https://trello.com/c/nD8fCPDy)).
8501
- Owner decision 2026-08-19: **you can buy credits into the base tier, so
8502
- calling it "free" is false.** Both values are accepted through the
8503
- transition and **occupy the same ordinal position** — they are one tier
8504
- under two names, never two tiers.
8505
-
8506
- ⚠️ **A CONSUMER MUST TREAT THEM AS EQUAL.** Anything that compares,
8507
- sorts or gates on tier must accept either and rank them identically;
8508
- a `match`/`switch` that handles `free` and not `basic` will silently
8509
- take a different branch the day the producer switches.
8510
-
8511
- 🔴 **PRODUCERS: DO NOT EMIT `basic` YET. THE FIRST WRITE IS AN
8512
- OUTAGE, NOT A COMPILE ERROR.** This change makes the value *legal*, not
8513
- *live*. **Schema-additive and safe-to-send are different claims**, and
8514
- the gap between them is measured rather than theoretical:
8515
-
8516
- - **api (2026-08-20, from its own mapping):** `UserRecord` declares the
8517
- column `enumType: UserTier::class`. Doctrine hydrates such a column
8518
- through `EnumPropertyAccessor::setValue()`, which calls
8519
- `$enumType::from($value)` — **and that THROWS on a value it does not
8520
- know**, with no extension point. **A row persisted as `basic` makes
8521
- every running api task 500 while hydrating that user.**
8522
- - **And the rollout overlaps by design:** ECS runs
8523
- `minimumHealthyPercent: 100` / `maximumPercent: 200`, so the NEW task
8524
- starts before the OLD one drains. **The moment a new task writes a
8525
- value the old one has never heard of, the old task 500s on that row
8526
- for the rest of the rollout.**
8527
- - **SDKs fail earlier and more kindly:** a generated Rust or PHP enum
8528
- gains a variant and an exhaustive match stops compiling.
8529
-
8530
- ⭐ **AN ADDED ENUM VALUE IS A CONTRACT CHANGE WEARING A SCHEMA CHANGE'S
8531
- CLOTHES.** A new COLUMN is invisible to old code's `SELECT` list; a new
8532
- enum VALUE is **not** invisible to old code's hydration. *That asymmetry
8533
- is why expand → migrate → contract fails to get applied to enums — the
8534
- trigger does not look like the category.* (api's own note, written
8535
- during an earlier enum sweep and reached independently of this one.)
8536
- Emission is gated on the tolerance evidence table
8537
- ([`tkRA9Bim`](https://trello.com/c/tkRA9Bim)), which requires an
8538
- artefact from each of api, both SDK packages, frontend and e2e.
8772
+ `basic` is the base tier. **`free` is DEPRECATED and will be removed**
8773
+ ([`nD8fCPDy`](https://trello.com/c/nD8fCPDy)) — the two are one tier
8774
+ under two names, never two tiers, and a consumer must rank them
8775
+ identically. The dated record of the rename and of the rollout that
8776
+ carried it is
8777
+ [ADR-0028](../docs/decisions/0028-base-tier-rename-free-to-basic.md).
8539
8778
 
8540
8779
  🔴 **`guest` IS NOT AND MUST NOT BECOME A MEMBER OF THIS ENUM.** It is
8541
8780
  the *absence* of a subscription, not a tier. Putting it here places a
@@ -8545,7 +8784,7 @@ components:
8545
8784
  the audience axis, which is NOT a `UserTier` value. Asserted by a
8546
8785
  test, not left to prose.
8547
8786
 
8548
- Ordering is `basic`/`free` < `pro` < `max` < `enterprise` (the
8787
+ Ordering is `basic` < `pro` < `max` < `enterprise` (the
8549
8788
  upgrade-resolver / `isHigherThan` ordinal in `UserTier.php`).
8550
8789
  **The ordering is the part this contract owns** — it is what
8551
8790
  `TierRestrictionResponse.current_tier` / `.required_tier` and
@@ -8556,28 +8795,22 @@ components:
8556
8795
  summary — upload caps, permitted MIME families, monthly credits,
8557
8796
  overdraft, rate-limit multiples, concurrent long-form jobs. **That was a
8558
8797
  restated SNAPSHOT of another repository's code, and it drifted, twice:**
8559
-
8560
- - it asserted *"`free`: image MIMEs only … video/audio are MIME-gated
8561
- away from Free"* — a per-tier media restriction this contract does not
8562
- own and cannot keep true;
8563
- - and the parallel table on `AccountLimits` listed tier byte defaults
8564
- for `free` / `pro` / `enterprise` and **silently omitted `max`**, a
8565
- tier this very enum declares. **That one was already wrong before any
8566
- of it was reviewed.**
8798
+ once asserting a per-tier media restriction this contract does not own
8799
+ and cannot keep true, and once listing tier byte defaults while
8800
+ **silently omitting `max`**, a tier this very enum declares.
8567
8801
 
8568
8802
  **A description ships to every SDK consumer as generated documentation**,
8569
8803
  so a stale sentence here is not an internal note — it is an assertion
8570
8804
  delivered to callers, and it outlives the code it describes. *Point at
8571
8805
  the gate, not at a snapshot of it.*
8572
8806
 
8573
- ⚠️ **No claim is made HERE about which media categories a tier permits —
8574
- not the old restriction, and not its replacement.** That is a scoping
8575
- statement about this description, **not a claim that the contract is
8576
- silent on the subject**: hub decision 25 made audio universal, so
8577
- there is no tier boundary at which the category axis changes. The
8578
- category axis as DATA, once, uniform across audiences. **Prose that
8579
- restates another repository's enforcement is the defect; a single
8580
- generated declaration is the fix**, and the two must not both exist.
8807
+ ⚠️ **No claim is made HERE about which media categories a tier permits.**
8808
+ That is a scoping statement about this description, **not a claim that
8809
+ the contract is silent on the subject**: hub decision 25 made audio
8810
+ universal, so there is no tier boundary at which the category axis
8811
+ changes. **Prose that restates another repository's enforcement is the
8812
+ defect; a single generated declaration is the fix**, and the two must
8813
+ not both exist.
8581
8814
 
8582
8815
  **Where the answers actually live — and they are DIFFERENT SURFACES,
8583
8816
  which is why naming just one was wrong:**
@@ -8627,7 +8860,14 @@ components:
8627
8860
  # ⚠️ NOT A DATE. Removal is gated on every consumer having stopped
8628
8861
  # EMITTING and REQUIRING the value, which is evidence rather than a
8629
8862
  # calendar. A date here would be overtaken and then cited.
8630
- removal_gate: "consumer evidence table on nD8fCPDy"
8863
+ # ⚠️ NOT A DATE, and now TWO conditions. `compression_api` measured
8864
+ # production on 2026-08-27: `users.tier` `column_default` is still
8865
+ # `'free'::character varying`. The persisted-value constant governs
8866
+ # what the application WRITES; the default is SCHEMA, baked into a
8867
+ # migration, so moving the constant never touched it. ⇒ "there are no
8868
+ # `free` rows" is a fact about today's CONTENTS, not a property of the
8869
+ # system — an INSERT omitting the column still manufactures one.
8870
+ removal_gate: "consumer evidence table on nD8fCPDy AND the users.tier column default migrated and drained"
8631
8871
 
8632
8872
  TierRestrictionKind:
8633
8873
  type: string
@@ -13874,14 +14114,104 @@ components:
13874
14114
  example: "c4d80fb"
13875
14115
  environment:
13876
14116
  description: |
13877
- Deployment environment identifier (`baseline` for the
13878
- committed sidecar; `staging` / `production` etc. when
13879
- substituted at deploy time per per-environment overlays —
13880
- future ticket).
14117
+ 🔴 **THIS FIELD IDENTIFIES NEITHER ENVIRONMENT TODAY, AND MUST NOT
14118
+ BE USED TO DETERMINE WHICH HOST YOU REACHED.**
14119
+
14120
+ Measured by `compression_e2e` on 2026-08-22, both read in the same
14121
+ moment, anonymously: **prod and staging BOTH return `baseline`.**
14122
+ The per-environment overlay that would substitute a real value is
14123
+ an unshipped ticket ([`befVmKN2`](https://trello.com/c/befVmKN2)),
14124
+ so every host serves the committed sidecar's literal.
14125
+
14126
+ ⚠️ **A VALUE THAT IS CONSTANT ACROSS ENVIRONMENTS LOOKS EXACTLY
14127
+ LIKE A VALUE THAT CONFIRMS ONE.** This field previously carried
14128
+ `example: production` — an example of a value it has never
14129
+ returned — which taught precisely the misreading it invites.
14130
+
14131
+ 🔑 **`fetch` follows redirects by default and does not report where
14132
+ it ended up**, so a production host redirecting to staging returns
14133
+ staging's schema and **nothing in this body reveals it**. The
14134
+ catastrophic outcome is not a failure; it is a green measured
14135
+ against staging and reported as prod. ⇒ **Assert the FINAL HOST at
14136
+ the transport layer** (`redirect: 'error'` plus an origin check).
14137
+ **A payload cannot corroborate which origin you reached.**
14138
+
14139
+ 🔑 **AND IT CANNOT BE FIXED IN PLACE, WHICH IS WHY IT IS BEING
14140
+ RENAMED RATHER THAN CORRECTED.** api traced the value:
14141
+ `OperationSchemaController` reads it from
14142
+ `CapabilitiesSidecar`, which reads
14143
+ `vendor/antoniocs/compression-contracts/availability/availability.json`
14144
+ — **a file in a VENDORED PACKAGE.** The same package is vendored
14145
+ everywhere, so the field is **constant BY CONSTRUCTION, not
14146
+ because somebody forgot to set it per environment.**
14147
+
14148
+ ⚠️ **That also corrects an earlier reading of `befVmKN2` — mine.**
14149
+ "Substituted at deploy time" describes a mechanism that does not
14150
+ exist for this source: a per-environment value would require
14151
+ shipping a DIFFERENT PACKAGE per environment, which is a far
14152
+ larger thing than an overlay. ⭐ **A label that is an INPUT to the
14153
+ build can never be evidence about the build's runtime behaviour**
14154
+ (frontend's line, one layer up).
14155
+
14156
+ ⇒ **Superseded by `capabilities_profile`**, which names what the
14157
+ value actually is. `environment` is **DEPRECATED and retained for
14158
+ the transition**; both carry the same value. A server-supplied
14159
+ ORIGIN field does not exist and is not what this becomes — if one
14160
+ is ever added it must come from the deployment (task metadata or an
14161
+ env var), never from a vendored file.
14162
+ oneOf:
14163
+ - type: string
14164
+ - type: 'null'
14165
+ # ⚠️ `baseline`, NOT `production`. An example is documentation, and an
14166
+ # example of a value the field has never returned is a false one.
14167
+ example: "baseline"
14168
+ deprecated: true
14169
+ # 🔴 MACHINE-READABLE SUCCESSOR, so the transition is checkable
14170
+ # rather than described. `tests/test_deprecated_fields_have_a_
14171
+ # reachable_successor.py` reads THIS, not the prose above: if the
14172
+ # deprecated key is in the sidecar, the successor must be there too
14173
+ # and carry the same value. Without it the successor was declared and
14174
+ # emitted NOWHERE, and nothing on either side could see that — it is
14175
+ # not `required` and the response sets no `additionalProperties`,
14176
+ # so omitting it validates clean.
14177
+ x-superseded-by: capabilities_profile
14178
+ capabilities_profile:
14179
+ description: |
14180
+ **Which capability profile the vendored contracts package carries**
14181
+ — the honest name for the value `environment` has always held.
14182
+
14183
+ Sourced from the committed sidecar, so it is a property of the
14184
+ PACKAGE, not of the host. ⚠️ **It does not identify an environment
14185
+ and never could**: the same package is vendored everywhere. To
14186
+ establish which host you reached, assert the FINAL HOST at the
14187
+ transport layer.
14188
+
14189
+ Carries the same value as the deprecated `environment` throughout
14190
+ the transition; consumers should move and `environment` is removed
14191
+ once no consumer reads it.
14192
+
14193
+ 🔴 **KNOWN READER OF `environment`, RECORDED SO THE REMOVAL
14194
+ CONDITION IS CHECKABLE RATHER THAN ASSUMED:**
14195
+ `compression_api` reads it — `CapabilitiesSidecar::fromArray`
14196
+ does `$raw['environment'] ?? null` and `OperationSchemaController`
14197
+ emits it conditionally (reported by that session, 2026-08-25).
14198
+
14199
+ ⚠️ **THEIR ONLY TRIPWIRE IS A TEST THAT REMOVAL TURNS RED AND
14200
+ DEPRECATION DOES NOT** — it asserts `environment === 'baseline'`
14201
+ against the real vendored sidecar. So the null-coalesce means a
14202
+ removal drops the field from `/api/operations/schema` **with no
14203
+ error anywhere**, and the deprecation window generates no signal
14204
+ they can act on.
14205
+
14206
+ ⇒ **REMOVAL IS A CO-LAND, NOT A CUT.** Tell every reader listed
14207
+ here BEFORE the removal ships, and remove a name from this list
14208
+ only when that session confirms it has stopped reading — never
14209
+ because the field looks unused. *"No consumer reads it"* is a claim
14210
+ about other repositories, and this contract cannot see them.
13881
14211
  oneOf:
13882
14212
  - type: string
13883
14213
  - type: 'null'
13884
- example: "production"
14214
+ example: "baseline"
13885
14215
  user_tier:
13886
14216
  description: |
13887
14217
  Tier of the calling user. Anonymous (unauthenticated) callers
@@ -14632,13 +14962,22 @@ components:
14632
14962
  description: |
14633
14963
  Optional mime-group-level INPUT-file size ceiling in BYTES
14634
14964
  (ticket [`uKsFzORi`](https://trello.com/c/uKsFzORi)). Sibling of
14635
- `max_output_pixels`. **Applies to the enclosing operation's input** —
14636
- currently authored on `compress` image/document groups (the API
14637
- enforces it on compress input only: AVIF 20 MiB, other images 500 MiB,
14638
- office/ODF/EPUB 100 MiB). A consumer MUST scope it to the operation
14639
- whose schema carries it and MUST NOT assume it applies to other
14640
- operations. An oversize input is rejected at create-time (ADR-0012
14641
- band-ceiling 422 family).
14965
+ `max_output_pixels`. **Applies to the enclosing operation's input**, and
14966
+ a consumer MUST scope it to the operation whose schema carries it —
14967
+ **the same MIME can carry different ceilings under different
14968
+ operations, because different workers process it.** ⚠️ This line
14969
+ previously said the ceilings were authored on `compress` only; they
14970
+ are not, and reading a `compress` number as the binding one for a
14971
+ `[compress, thumbnail]` chain is what let a 128 MB EPUB upload
14972
+ succeed and then be refused (`jLxWpQEZ`). **Do not enumerate the
14973
+ values here** — a restated table is one nothing re-measures; read
14974
+ them from the operation's own schema.
14975
+
14976
+ 🔴 **A GROUP WITH NO `max_input_size_bytes` HAS NOT SAID THERE IS NO
14977
+ LIMIT.** It has said nothing. A group whose worker imposes no byte
14978
+ ceiling declares `input_size_bound: processing_time` instead, and
14979
+ exactly one of the two keys is present when either is. An oversize
14980
+ input is rejected at create-time (ADR-0012 band-ceiling 422 family).
14642
14981
 
14643
14982
  **XOR with `processing_class` caps (ADR-0011):** a group carries this
14644
14983
  group-level cap ONLY when it has NO `processing_class` band. Banded
@@ -732,5 +732,5 @@
732
732
  "isAnimated": "maybe"
733
733
  }
734
734
  },
735
- "schema_version": "2.196.0"
735
+ "schema_version": "2.198.0"
736
736
  }