@giveitsmaller/contracts 0.86.0 → 0.88.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 (568) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +1 -1
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/asyncapi/events.yaml +239 -14
  5. package/availability/availability.json +88 -28
  6. package/code-builder/code-builder-metadata.json +89 -29
  7. package/dist/asyncapi/LongFormOperationType.d.ts +4 -1
  8. package/dist/asyncapi/LongFormOperationType.js +3 -0
  9. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  10. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  11. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  12. package/dist/openapi/models/AccountLimits.js +1 -1
  13. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  14. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  15. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  16. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  17. package/dist/openapi/models/AnonymousLimitExceededResponse.d.ts +1 -1
  18. package/dist/openapi/models/AnonymousLimitExceededResponse.js +1 -1
  19. package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +1 -1
  20. package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +1 -1
  21. package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +1 -1
  22. package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +1 -1
  23. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  24. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  25. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  26. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  27. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  28. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  29. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  30. package/dist/openapi/models/AuthErrorType.js +1 -1
  31. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  32. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  33. package/dist/openapi/models/AuthenticatedIdentity.d.ts +1 -1
  34. package/dist/openapi/models/AuthenticatedIdentity.js +1 -1
  35. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  36. package/dist/openapi/models/AvailabilityValue.js +1 -1
  37. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  38. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  39. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  40. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  41. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  42. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  43. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  44. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  45. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  46. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  47. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  48. package/dist/openapi/models/CallbackEventType.js +1 -1
  49. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +1 -1
  50. package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
  51. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
  52. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
  53. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  54. package/dist/openapi/models/CapabilityCondition.js +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  56. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  57. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  58. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  59. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  60. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  61. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  62. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  63. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  64. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  65. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  66. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  67. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  68. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  69. package/dist/openapi/models/CapabilityConditionOneOf7.d.ts +1 -1
  70. package/dist/openapi/models/CapabilityConditionOneOf7.js +1 -1
  71. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  72. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  73. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  74. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  75. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  76. package/dist/openapi/models/CapabilityProduces.js +1 -1
  77. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  78. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  79. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  80. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  81. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  82. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  83. package/dist/openapi/models/CeilingBasisValue.d.ts +1 -1
  84. package/dist/openapi/models/CeilingBasisValue.js +1 -1
  85. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  86. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  87. package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +1 -1
  88. package/dist/openapi/models/CheckoutSessionStatusResponse.js +1 -1
  89. package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +1 -1
  90. package/dist/openapi/models/CheckoutSessionStatusResponseData.js +1 -1
  91. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  92. package/dist/openapi/models/CodegenSource.js +1 -1
  93. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  94. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  95. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  96. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  97. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  98. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  99. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  100. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  101. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  102. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  103. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  104. package/dist/openapi/models/CompositionPlan.js +1 -1
  105. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  106. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  107. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  108. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  109. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  110. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  111. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  112. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  113. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  114. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  115. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  116. package/dist/openapi/models/ConnectionSource.js +1 -1
  117. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  118. package/dist/openapi/models/ContactRequest.js +1 -1
  119. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  120. package/dist/openapi/models/ContactSubject.js +1 -1
  121. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  122. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  123. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  124. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  125. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  126. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  127. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  128. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  129. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  130. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  131. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  132. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  133. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  134. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  135. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  136. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  137. package/dist/openapi/models/CreateWorkflow403Response.d.ts +1 -1
  138. package/dist/openapi/models/CreateWorkflow403Response.js +1 -1
  139. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  140. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  141. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  142. package/dist/openapi/models/CreditTransaction.js +1 -1
  143. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  144. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  145. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  146. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  147. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  148. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  149. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  150. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  151. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  152. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  153. package/dist/openapi/models/Delivery.d.ts +1 -1
  154. package/dist/openapi/models/Delivery.js +1 -1
  155. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  156. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  157. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  158. package/dist/openapi/models/DeliveryPlan.js +1 -1
  159. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  160. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  161. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  162. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  163. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  164. package/dist/openapi/models/DeliverySelection.js +1 -1
  165. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  166. package/dist/openapi/models/DownloadBundle.js +1 -1
  167. package/dist/openapi/models/DroppedOption.d.ts +1 -1
  168. package/dist/openapi/models/DroppedOption.js +1 -1
  169. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  170. package/dist/openapi/models/EmailNotify.js +1 -1
  171. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  172. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  173. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  174. package/dist/openapi/models/EndpointProjection.js +1 -1
  175. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
  176. package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
  177. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  178. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  179. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  180. package/dist/openapi/models/EstimateQuality.js +1 -1
  181. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  182. package/dist/openapi/models/EstimateRange.js +1 -1
  183. package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
  184. package/dist/openapi/models/ExportAccountData200Response.js +1 -1
  185. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
  186. package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
  187. package/dist/openapi/models/ExportAccountData200ResponseDataBilling.d.ts +1 -1
  188. package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +1 -1
  189. package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +1 -1
  190. package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.js +1 -1
  191. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  192. package/dist/openapi/models/ExternalDestination.js +1 -1
  193. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  194. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  195. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  196. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  197. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  198. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  199. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  200. package/dist/openapi/models/ExternalImportToken.js +1 -1
  201. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  202. package/dist/openapi/models/ExternalSource.js +1 -1
  203. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  204. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  205. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  206. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  207. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  208. package/dist/openapi/models/FeatureViolation.js +1 -1
  209. package/dist/openapi/models/GetProfile200Response.d.ts +1 -1
  210. package/dist/openapi/models/GetProfile200Response.js +1 -1
  211. package/dist/openapi/models/GetProfile200ResponseData.d.ts +1 -1
  212. package/dist/openapi/models/GetProfile200ResponseData.js +1 -1
  213. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  214. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  215. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  216. package/dist/openapi/models/JobDefinition.js +1 -1
  217. package/dist/openapi/models/JobDownload.d.ts +1 -1
  218. package/dist/openapi/models/JobDownload.js +1 -1
  219. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  220. package/dist/openapi/models/JobInputV2.js +1 -1
  221. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  222. package/dist/openapi/models/JobMediaClass.js +1 -1
  223. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  224. package/dist/openapi/models/JobOutputSource.js +1 -1
  225. package/dist/openapi/models/JobResponse.d.ts +1 -1
  226. package/dist/openapi/models/JobResponse.js +1 -1
  227. package/dist/openapi/models/JobStatus.d.ts +1 -1
  228. package/dist/openapi/models/JobStatus.js +1 -1
  229. package/dist/openapi/models/JobType.d.ts +1 -1
  230. package/dist/openapi/models/JobType.js +1 -1
  231. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  232. package/dist/openapi/models/LivenessResponse.js +1 -1
  233. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  234. package/dist/openapi/models/LoginUser200Response.js +1 -1
  235. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  236. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  237. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  238. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  239. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  240. package/dist/openapi/models/LoginUser401Response.js +1 -1
  241. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  242. package/dist/openapi/models/LoginUserRequest.js +1 -1
  243. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  244. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  245. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  246. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  247. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  248. package/dist/openapi/models/MetadataResponse.js +1 -1
  249. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  250. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  251. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  252. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  253. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  254. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  255. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  256. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  257. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  258. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  259. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  260. package/dist/openapi/models/MultiInputSource.js +1 -1
  261. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  262. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  263. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  264. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  265. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  266. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  267. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  268. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  269. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  270. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  271. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  272. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  273. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  274. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  275. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  276. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  277. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  278. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  279. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  280. package/dist/openapi/models/MultipartPartListing.js +1 -1
  281. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  282. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  283. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  284. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  285. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  286. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  287. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  288. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  289. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  290. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  291. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  292. package/dist/openapi/models/NotifyConfig.js +1 -1
  293. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  294. package/dist/openapi/models/OperationCapability.js +1 -1
  295. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  296. package/dist/openapi/models/OperationDefinition.js +1 -1
  297. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  298. package/dist/openapi/models/OperationDownload.js +1 -1
  299. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  300. package/dist/openapi/models/OperationInputModel.js +1 -1
  301. package/dist/openapi/models/OperationMessageParamsValue.d.ts +1 -1
  302. package/dist/openapi/models/OperationMessageParamsValue.js +1 -1
  303. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  304. package/dist/openapi/models/OperationResponse.js +1 -1
  305. package/dist/openapi/models/OperationResult.d.ts +1 -1
  306. package/dist/openapi/models/OperationResult.js +1 -1
  307. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  308. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  309. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  310. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  311. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  312. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  313. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  314. package/dist/openapi/models/OperationStatus.js +1 -1
  315. package/dist/openapi/models/OperationType.d.ts +2 -2
  316. package/dist/openapi/models/OperationType.js +2 -2
  317. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  318. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  319. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  320. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  321. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  322. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  323. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  324. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  325. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  326. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  327. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  328. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  329. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  330. package/dist/openapi/models/OptionSchema.js +1 -1
  331. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  332. package/dist/openapi/models/OutputProperties.js +1 -1
  333. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  334. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  335. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
  336. package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
  337. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  338. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  339. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  340. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  341. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  342. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  343. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  344. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  345. package/dist/openapi/models/ProbeUpload422Response.d.ts +1 -1
  346. package/dist/openapi/models/ProbeUpload422Response.js +1 -1
  347. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  348. package/dist/openapi/models/ProcessingClass.js +1 -1
  349. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  350. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  351. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  352. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  353. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  354. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  355. package/dist/openapi/models/ProcessingClassEntryInputUniformity.d.ts +9 -6
  356. package/dist/openapi/models/ProcessingClassEntryInputUniformity.js +1 -1
  357. package/dist/openapi/models/ProcessingClassEntryResolutionBands.d.ts +1 -1
  358. package/dist/openapi/models/ProcessingClassEntryResolutionBands.js +1 -1
  359. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  360. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  361. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  362. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  363. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  364. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  365. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  366. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  367. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  368. package/dist/openapi/models/ProcessingPlan.js +1 -1
  369. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  370. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  371. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  372. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  373. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  374. package/dist/openapi/models/ReadinessResponse.js +1 -1
  375. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  376. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  377. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  378. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  379. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
  380. package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
  381. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
  382. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
  383. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
  384. package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
  385. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  386. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  387. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  388. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  389. package/dist/openapi/models/ResolutionBand.d.ts +1 -1
  390. package/dist/openapi/models/ResolutionBand.js +1 -1
  391. package/dist/openapi/models/ResolutionBandCeiling.d.ts +1 -1
  392. package/dist/openapi/models/ResolutionBandCeiling.js +1 -1
  393. package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +1 -1
  394. package/dist/openapi/models/ResolutionBandCeilingConstraints.js +1 -1
  395. package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +1 -1
  396. package/dist/openapi/models/ResolutionBandCeilingDerivation.js +1 -1
  397. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  398. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  399. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  400. package/dist/openapi/models/RetryResponse.js +1 -1
  401. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  402. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  403. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  404. package/dist/openapi/models/SseCompletionBase.js +1 -1
  405. package/dist/openapi/models/SseConnectionLimitResponse.d.ts +1 -1
  406. package/dist/openapi/models/SseConnectionLimitResponse.js +1 -1
  407. package/dist/openapi/models/SseEventType.d.ts +1 -1
  408. package/dist/openapi/models/SseEventType.js +1 -1
  409. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  410. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  411. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  412. package/dist/openapi/models/SseJobFailedData.js +1 -1
  413. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  414. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  415. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  416. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  417. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  418. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  419. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  420. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  421. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  422. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  423. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  424. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  425. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  426. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  427. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  428. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  429. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  430. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  431. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  432. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  433. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  434. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  435. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  436. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  437. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  438. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  439. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  440. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  441. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  442. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  443. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  444. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  445. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  446. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  447. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  448. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  449. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  450. package/dist/openapi/models/UploadFile403Response.js +1 -1
  451. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  452. package/dist/openapi/models/UploadFile422Response.js +1 -1
  453. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  454. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  455. package/dist/openapi/models/UploadProbeNotApplicableResponse.d.ts +1 -1
  456. package/dist/openapi/models/UploadProbeNotApplicableResponse.js +1 -1
  457. package/dist/openapi/models/UploadProbeNotReadyResponse.d.ts +1 -1
  458. package/dist/openapi/models/UploadProbeNotReadyResponse.js +1 -1
  459. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  460. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  461. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  462. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  463. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  464. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  465. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  466. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  467. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  468. package/dist/openapi/models/UploadResponse.js +1 -1
  469. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  470. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  471. package/dist/openapi/models/UploadSource.d.ts +1 -1
  472. package/dist/openapi/models/UploadSource.js +1 -1
  473. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  474. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  475. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  476. package/dist/openapi/models/UploadThresholds.js +1 -1
  477. package/dist/openapi/models/UserTier.d.ts +1 -1
  478. package/dist/openapi/models/UserTier.js +1 -1
  479. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  480. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  481. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  482. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  483. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  484. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  485. package/dist/openapi/models/WarningType.d.ts +1 -1
  486. package/dist/openapi/models/WarningType.js +1 -1
  487. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  488. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  489. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  490. package/dist/openapi/models/WebhookPayload.js +1 -1
  491. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  492. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  493. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  494. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  495. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  496. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  497. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  498. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  499. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  500. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  501. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  502. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  503. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  504. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  505. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  506. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  507. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  508. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  509. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  510. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  511. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  512. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  513. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  514. package/dist/openapi/models/WorkflowEdge.js +1 -1
  515. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  516. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  517. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  518. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  519. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  520. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  521. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  522. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  523. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  524. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  525. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  526. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  527. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  528. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  529. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  530. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  531. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  532. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  533. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  534. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  535. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  536. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  537. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  538. package/dist/openapi/models/WorkflowSource.js +1 -1
  539. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  540. package/dist/openapi/models/WorkflowStatus.js +1 -1
  541. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  542. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  543. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  544. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  545. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  546. package/dist/openapi/models/WorkflowSummary.js +1 -1
  547. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  548. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  549. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  550. package/dist/openapi/models/WorkflowWarning.js +1 -1
  551. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  552. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  553. package/dist/openapi/runtime.d.ts +1 -1
  554. package/dist/openapi/runtime.js +1 -1
  555. package/dist/operations/audio_to_video.metadata.js +14 -1
  556. package/dist/operations/split.metadata.js +1 -1
  557. package/dist/operations/thumbnail.metadata.js +1 -1
  558. package/openapi/api.yaml +22 -10
  559. package/operation-capabilities/operation-capabilities.json +20 -10
  560. package/operations/schemas/audio_to_video.yaml +37 -9
  561. package/operations/schemas/compress.yaml +40 -1
  562. package/operations/schemas/convert.yaml +23 -2
  563. package/operations/schemas/merge.yaml +29 -2
  564. package/operations/schemas/split.yaml +16 -7
  565. package/operations/schemas/thumbnail.yaml +15 -5
  566. package/operations/schemas/video_text_watermark.yaml +5 -5
  567. package/operations/schemas/video_watermark.yaml +27 -0
  568. package/package.json +3 -3
package/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
  | | |
7
7
  |---|---|
8
- | Package version | `0.86.0` |
9
- | Generated from spec | **`v2.221.0`** |
8
+ | Package version | `0.88.0` |
9
+ | Generated from spec | **`v2.224.0`** |
10
10
 
11
11
  ## Two version lines, and they are not comparable
12
12
 
@@ -1214,5 +1214,5 @@
1214
1214
  }
1215
1215
  }
1216
1216
  },
1217
- "schema_version": "2.221.0"
1217
+ "schema_version": "2.224.0"
1218
1218
  }
@@ -260,5 +260,5 @@
260
260
  "source_op": "compress"
261
261
  }
262
262
  },
263
- "schema_version": "2.221.0"
263
+ "schema_version": "2.224.0"
264
264
  }
@@ -244,9 +244,8 @@ channels:
244
244
  [`4NrRPCgh`](https://trello.com/c/4NrRPCgh))
245
245
  - `operation_type = split` -> `ops-split` queue (the `audio` and
246
246
  `video` mime_groups are `availability: beta` — audio + short-form
247
- video split traffic reaches this queue; `image_gif` /
248
- `document_pdf` stay `availability: planned` until their Lambdas
249
- ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
247
+ video split traffic reaches this queue, and so does `image_gif`
248
+ (`stable`) and `document_pdf` (`beta` since 2026-10-01) traffic;
250
249
  long-form video splits route via `processing_class` to the
251
250
  `split-video-fargate` worker — same OperationType, different
252
251
  worker — now also `availability: beta` (stays beta until a
@@ -908,10 +907,9 @@ channels:
908
907
  (workers live on staging). This SNS queue carries audio + SHORT-FORM
909
908
  video split traffic only; long-form video split (now also `beta`)
910
909
  routes via the direct-to-SQS `longformSplitVideo` claim-check to the
911
- `split-video-fargate` worker, NOT here. The `image_gif` and
912
- `document_pdf` mime_groups stay `availability: planned`, and the API
913
- rejects their workflow-create with `feature_not_available` (422) until those
914
- Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
910
+ `split-video-fargate` worker, NOT here. The `image_gif` (`stable`) and
911
+ `document_pdf` (`beta`, 2026-10-01) mime_groups also arrive here. Backed
912
+ by the `operation-split` Lambda (cross-repo
915
913
  follow-up — lambdas pre-launch epic Wave A, ticket
916
914
  [DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
917
915
  [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
@@ -1319,9 +1317,8 @@ channels:
1319
1317
  Messages land here after 5 failed processing attempts. Live for
1320
1318
  the `split` `audio` + `video` mime_groups (now `availability: beta`;
1321
1319
  this DLQ backs the short-form SNS `ops-split` queue — long-form video
1322
- split has its own `longformSplitVideoDlq`); the `image_gif` and
1323
- `document_pdf` groups stay `availability: planned` and carry no
1324
- traffic yet.
1320
+ split has its own `longformSplitVideoDlq`); it also backs the
1321
+ `image_gif` (`stable`) and `document_pdf` (`beta`) groups.
1325
1322
  parameters:
1326
1323
  env:
1327
1324
  description: Environment (local, stg, prod)
@@ -1642,6 +1639,111 @@ channels:
1642
1639
  region:
1643
1640
  description: AWS region abbreviation (euw1, use1, etc.)
1644
1641
 
1642
+ longformVideoWatermark:
1643
+ address: gisl-{env}-{region}-ops-video-watermark-longform
1644
+ description: |
1645
+ SQS queue for long-form video watermark jobs (`video_watermark.video.long_form`, `planned`;
1646
+ HN-33, [`jOMJOncC`](https://trello.com/c/jOMJOncC)). The API publishes a
1647
+ `LongFormJobMessage` claim-check here directly (NOT via SNS); a
1648
+ terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
1649
+ Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
1650
+ publisher always sets `operation_type: video_watermark`, `processing_class:
1651
+ long_form`. Declared contract-first: no publisher emits here until api's
1652
+ long-form routing for `video_watermark` ships.
1653
+ bindings:
1654
+ sqs:
1655
+ queue:
1656
+ name: gisl-{env}-{region}-ops-video-watermark-longform
1657
+ fifoQueue: false
1658
+ bindingVersion: '0.2.0'
1659
+ parameters:
1660
+ env:
1661
+ description: Environment (local, stg, prod)
1662
+ region:
1663
+ description: AWS region abbreviation (euw1, use1, etc.)
1664
+ messages:
1665
+ longFormJob:
1666
+ $ref: '#/components/messages/LongFormJobMessage'
1667
+
1668
+ longformVideoWatermarkDlq:
1669
+ address: gisl-{env}-{region}-ops-video-watermark-longform-dlq
1670
+ description: DLQ for failed long-form video watermark jobs. Messages land here after 2 failed processing attempts (ADR-0007).
1671
+ parameters:
1672
+ env:
1673
+ description: Environment (local, stg, prod)
1674
+ region:
1675
+ description: AWS region abbreviation (euw1, use1, etc.)
1676
+
1677
+ longformVideoTextWatermark:
1678
+ address: gisl-{env}-{region}-ops-video-text-watermark-longform
1679
+ description: |
1680
+ SQS queue for long-form video text watermark jobs (`video_text_watermark.video.long_form`, `planned`;
1681
+ HN-33, [`jOMJOncC`](https://trello.com/c/jOMJOncC)). The API publishes a
1682
+ `LongFormJobMessage` claim-check here directly (NOT via SNS); a
1683
+ terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
1684
+ Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
1685
+ publisher always sets `operation_type: video_text_watermark`, `processing_class:
1686
+ long_form`. Declared contract-first: no publisher emits here until api's
1687
+ long-form routing for `video_text_watermark` ships.
1688
+ bindings:
1689
+ sqs:
1690
+ queue:
1691
+ name: gisl-{env}-{region}-ops-video-text-watermark-longform
1692
+ fifoQueue: false
1693
+ bindingVersion: '0.2.0'
1694
+ parameters:
1695
+ env:
1696
+ description: Environment (local, stg, prod)
1697
+ region:
1698
+ description: AWS region abbreviation (euw1, use1, etc.)
1699
+ messages:
1700
+ longFormJob:
1701
+ $ref: '#/components/messages/LongFormJobMessage'
1702
+
1703
+ longformVideoTextWatermarkDlq:
1704
+ address: gisl-{env}-{region}-ops-video-text-watermark-longform-dlq
1705
+ description: DLQ for failed long-form video text watermark jobs. Messages land here after 2 failed processing attempts (ADR-0007).
1706
+ parameters:
1707
+ env:
1708
+ description: Environment (local, stg, prod)
1709
+ region:
1710
+ description: AWS region abbreviation (euw1, use1, etc.)
1711
+
1712
+ longformAudioToVideo:
1713
+ address: gisl-{env}-{region}-ops-audio-to-video-longform
1714
+ description: |
1715
+ SQS queue for long-form audio-to-video jobs (`audio_to_video.audio.long_form`,
1716
+ `planned`; HN-33, [`d5cywEIR`](https://trello.com/c/d5cywEIR)). The API
1717
+ publishes a `LongFormJobMessage` claim-check here directly (NOT via SNS);
1718
+ a terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
1719
+ Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
1720
+ publisher always sets `operation_type: audio_to_video`,
1721
+ `processing_class: long_form`. Declared contract-first: no publisher emits
1722
+ here until api's long-form routing for `audio_to_video` ships.
1723
+ bindings:
1724
+ sqs:
1725
+ queue:
1726
+ name: gisl-{env}-{region}-ops-audio-to-video-longform
1727
+ fifoQueue: false
1728
+ bindingVersion: '0.2.0'
1729
+ parameters:
1730
+ env:
1731
+ description: Environment (local, stg, prod)
1732
+ region:
1733
+ description: AWS region abbreviation (euw1, use1, etc.)
1734
+ messages:
1735
+ longFormJob:
1736
+ $ref: '#/components/messages/LongFormJobMessage'
1737
+
1738
+ longformAudioToVideoDlq:
1739
+ address: gisl-{env}-{region}-ops-audio-to-video-longform-dlq
1740
+ description: DLQ for failed long-form audio-to-video jobs. Messages land here after 2 failed processing attempts (ADR-0007).
1741
+ parameters:
1742
+ env:
1743
+ description: Environment (local, stg, prod)
1744
+ region:
1745
+ description: AWS region abbreviation (euw1, use1, etc.)
1746
+
1645
1747
  operations:
1646
1748
  # ============================================
1647
1749
  # PUBLISH OPERATIONS (API -> SNS)
@@ -2486,6 +2588,60 @@ operations:
2486
2588
  messages:
2487
2589
  - $ref: '#/channels/longformSplitVideo/messages/longFormJob'
2488
2590
 
2591
+ publishLongFormVideoWatermark:
2592
+ action: send
2593
+ channel:
2594
+ $ref: '#/channels/longformVideoWatermark'
2595
+ bindings:
2596
+ sqs:
2597
+ queues:
2598
+ - name: gisl-{env}-{region}-ops-video-watermark-longform
2599
+ fifoQueue: false
2600
+ bindingVersion: '0.2.0'
2601
+ summary: Publish a long-form video_watermark claim-check.
2602
+ description: |
2603
+ As `publishLongFormCompressVideo`, for `operation_type = video_watermark`
2604
+ (`video_watermark.video.long_form`). Direct-to-SQS claim-check; no SNS.
2605
+ Contract-first (HN-33): not emitted until api's routing ships.
2606
+ messages:
2607
+ - $ref: '#/channels/longformVideoWatermark/messages/longFormJob'
2608
+
2609
+ publishLongFormVideoTextWatermark:
2610
+ action: send
2611
+ channel:
2612
+ $ref: '#/channels/longformVideoTextWatermark'
2613
+ bindings:
2614
+ sqs:
2615
+ queues:
2616
+ - name: gisl-{env}-{region}-ops-video-text-watermark-longform
2617
+ fifoQueue: false
2618
+ bindingVersion: '0.2.0'
2619
+ summary: Publish a long-form video_text_watermark claim-check.
2620
+ description: |
2621
+ As `publishLongFormCompressVideo`, for `operation_type = video_text_watermark`
2622
+ (`video_text_watermark.video.long_form`). Direct-to-SQS claim-check; no SNS.
2623
+ Contract-first (HN-33): not emitted until api's routing ships.
2624
+ messages:
2625
+ - $ref: '#/channels/longformVideoTextWatermark/messages/longFormJob'
2626
+
2627
+ publishLongFormAudioToVideo:
2628
+ action: send
2629
+ channel:
2630
+ $ref: '#/channels/longformAudioToVideo'
2631
+ bindings:
2632
+ sqs:
2633
+ queues:
2634
+ - name: gisl-{env}-{region}-ops-audio-to-video-longform
2635
+ fifoQueue: false
2636
+ bindingVersion: '0.2.0'
2637
+ summary: Publish a long-form audio_to_video claim-check.
2638
+ description: |
2639
+ As `publishLongFormCompressVideo`, for `operation_type = audio_to_video`
2640
+ (`audio_to_video.audio.long_form`). Direct-to-SQS claim-check; no SNS.
2641
+ Contract-first (HN-33): not emitted until api's routing ships.
2642
+ messages:
2643
+ - $ref: '#/channels/longformAudioToVideo/messages/longFormJob'
2644
+
2489
2645
  # ============================================
2490
2646
  # LONG-FORM CLAIM-CHECK CONSUMERS (launcher -> Fargate)
2491
2647
  # ============================================
@@ -2549,6 +2705,58 @@ operations:
2549
2705
  messages:
2550
2706
  - $ref: '#/channels/longformSplitVideo/messages/longFormJob'
2551
2707
 
2708
+ consumeLongFormVideoWatermark:
2709
+ action: receive
2710
+ channel:
2711
+ $ref: '#/channels/longformVideoWatermark'
2712
+ bindings:
2713
+ sqs:
2714
+ queues:
2715
+ - name: gisl-{env}-{region}-ops-video-watermark-longform
2716
+ fifoQueue: false
2717
+ bindingVersion: '0.2.0'
2718
+ summary: Consume a long-form video_watermark claim-check.
2719
+ description: |
2720
+ As `consumeLongFormCompressVideo`, for `operation_type = video_watermark`. The
2721
+ launcher forks on `(operation_type=video_watermark, processing_class=long_form)`.
2722
+ messages:
2723
+ - $ref: '#/channels/longformVideoWatermark/messages/longFormJob'
2724
+
2725
+ consumeLongFormVideoTextWatermark:
2726
+ action: receive
2727
+ channel:
2728
+ $ref: '#/channels/longformVideoTextWatermark'
2729
+ bindings:
2730
+ sqs:
2731
+ queues:
2732
+ - name: gisl-{env}-{region}-ops-video-text-watermark-longform
2733
+ fifoQueue: false
2734
+ bindingVersion: '0.2.0'
2735
+ summary: Consume a long-form video_text_watermark claim-check.
2736
+ description: |
2737
+ As `consumeLongFormCompressVideo`, for `operation_type = video_text_watermark`. The
2738
+ launcher forks on `(operation_type=video_text_watermark, processing_class=long_form)`.
2739
+ messages:
2740
+ - $ref: '#/channels/longformVideoTextWatermark/messages/longFormJob'
2741
+
2742
+ consumeLongFormAudioToVideo:
2743
+ action: receive
2744
+ channel:
2745
+ $ref: '#/channels/longformAudioToVideo'
2746
+ bindings:
2747
+ sqs:
2748
+ queues:
2749
+ - name: gisl-{env}-{region}-ops-audio-to-video-longform
2750
+ fifoQueue: false
2751
+ bindingVersion: '0.2.0'
2752
+ summary: Consume a long-form audio_to_video claim-check.
2753
+ description: |
2754
+ As `consumeLongFormCompressVideo`, for `operation_type = audio_to_video`.
2755
+ The launcher forks on `(operation_type=audio_to_video,
2756
+ processing_class=long_form)`.
2757
+ messages:
2758
+ - $ref: '#/channels/longformAudioToVideo/messages/longFormJob'
2759
+
2552
2760
  components:
2553
2761
  messages:
2554
2762
  # ============================================
@@ -3918,6 +4126,9 @@ components:
3918
4126
  compression_terraform. `audio_overlay` long-form
3919
4127
  (reserve-name-only, no queue) is NOT yet produced and is therefore
3920
4128
  absent from this enum; it gets added when its publisher ships.
4129
+ `video_watermark` / `video_text_watermark` ARE in the enum ahead of
4130
+ their publisher, deliberately (HN-33 contract-first; see
4131
+ `LongFormOperationType`).
3921
4132
 
3922
4133
  **Scope: the API producer's first-publish.** This schema models the
3923
4134
  message the API publishes to the long-form queues — the 5 fields above.
@@ -5865,10 +6076,13 @@ components:
5865
6076
  description: |
5866
6077
  Coarse operation verb for the long-form claim-check job
5867
6078
  (`LongFormJobMessage.operation_type`). Deliberately a call-site
5868
- **subset** of `OperationType` — only the long-form classes the API
5869
- actually publishes today (`compress`, `merge`, `split`). NOT the
5870
- full `OperationType` enum (which would over-promise the wire).
5871
- Future long-form publishers widen this enum when they ship.
6079
+ **subset** of `OperationType` — the operations that HAVE a long-form
6080
+ route: the API publishes `compress`, `merge` and `split` today, and
6081
+ `video_watermark` / `video_text_watermark` are declared ahead of their
6082
+ publisher (below), and so is `audio_to_video` (d5cywEIR, same HN-33
6083
+ co-land). NOT the full `OperationType` enum (which would
6084
+ over-promise the wire). A new long-form route widens this enum when it
6085
+ is declared.
5872
6086
 
5873
6087
  `split` joined this enum when the long-form video split publisher
5874
6088
  shipped ([`rcwvUKhI`](https://trello.com/c/rcwvUKhI), per
@@ -5879,6 +6093,14 @@ components:
5879
6093
  `(operation_type=split, processing_class=long_form)` tuple is the
5880
6094
  launcher's fork key.
5881
6095
 
6096
+ `video_watermark` and `video_text_watermark` joined CONTRACT-FIRST
6097
+ ([`jOMJOncC`](https://trello.com/c/jOMJOncC), HN-33): their long-form
6098
+ (Fargate) route is declared so terraform, api (publisher) and lambdas
6099
+ (worker) build against one shape. Until api's publisher ships, nothing
6100
+ is published on their queues, and consumers must deploy before the
6101
+ producer emits (producer-first is the publisher's deploy, gated on
6102
+ the launcher and worker being live).
6103
+
5882
6104
  Named-schema form lifted from inline at
5883
6105
  `LongFormJobMessage.operation_type` per ticket
5884
6106
  [`A3DyuYUd`](https://trello.com/c/A3DyuYUd) — generated SDK bindings
@@ -5888,6 +6110,9 @@ components:
5888
6110
  - compress
5889
6111
  - merge
5890
6112
  - split
6113
+ - video_watermark
6114
+ - video_text_watermark
6115
+ - audio_to_video
5891
6116
 
5892
6117
  LongFormProcessingClass:
5893
6118
  type: string
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "capabilities_profile": "baseline",
3
- "capabilities_version": 239,
3
+ "capabilities_version": 249,
4
4
  "endpoints": {
5
5
  "DELETE /api/auth/account": {
6
6
  "auth": "required",
@@ -231,7 +231,7 @@
231
231
  },
232
232
  "POST /api/billing/checkout": {
233
233
  "auth": "required",
234
- "availability": "planned",
234
+ "availability": "beta",
235
235
  "identity_scoped": true,
236
236
  "operation_id": "createBillingCheckoutSession",
237
237
  "required_tier": null
@@ -745,15 +745,11 @@
745
745
  "audio_to_video": {
746
746
  "availability": "planned",
747
747
  "default": false,
748
- "description": "Produce a video from an audio input plus an OPTIONAL still image\noverlay. Use cases: podcast \u2192 YouTube uploads, audio-only tracks\nthat need a video container for platforms requiring it, branded\naudio releases with a static cover image.\n\n**Role asymmetry.** First role-based operation on the contract\nwith an OPTIONAL role \u2014 REQUIRED `base` (audio source) +\nOPTIONAL `overlay` (still image, 0..1). When `overlay` is\nomitted, the video uses a solid `background_color`. The\nmachine-readable cardinality lives in `per_role_cardinality`\non this schema.\n\n**Input vs output asymmetry.** The single `mime_groups.audio`\nblock keys the INPUT MIME family (the `base` role input is\naudio). The OUTPUT is always video \u2014 `output_format` controls\nthe container; `mime_groups` is NOT the output type. Mirrors\nthe `audio_overlay.video` group pattern (input-keyed).\n\nRe-encode required (audio \u2192 video composition always re-encodes).\nA lower framerate plus still-image tuning keeps file size tiny\nwhen the overlay is a still image (the common case).\n\n`availability: planned` \u2014 withdrawn 2026-09-15. The measured encode cost\n(a per-second rate PLUS A FIXED COST) puts the advertised PT2H at more than\ntwice the 900 s Lambda platform maximum. \u26a0\ufe0f The fixed cost is not a rounding\ndetail: dropping it moves the in-flight boundary by tens of seconds. The\nfigures are in the CHANGELOG entry for 2.203.0, derived and tested from the\ndivergence register (6gdvD3yZ). Workflow-create returns `feature_not_available` (422).\n\n\u26a0\ufe0f An already-accepted workflow is NOT cancelled \u2014 availability is checked at\ncreate \u2014 and it is NOT thereby doomed. \u26d4 DO NOT READ THIS AS \"in-flight work\nfails\": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH\nOUTPUT, which is precisely why the evidence is arithmetic rather than a kill.\nWhat fails is an accepted workflow whose OUTPUT DURATION exceeds the derived ceiling (`evidence.derived.ceiling_s` in the register)\n\u26a0\ufe0f ON THE INPUT THE RATE WAS MEASURED WITH \u2014 a real photographic 1080p STILL\nplus looped real audio \u2014 the point at which the measured rate plus the fixed\ncost reaches the 600 s cap. \u26d4 THE DRIVER IS THE STILL'S RESOLUTION, NOT THE\nDURATION ALONE: a 4K still is roughly 4x the rate (recorded as UNMEASURED),\nwhich would put the boundary near a quarter of that figure, and this schema\nplaces NO constraint on the overlay's resolution. Other still resolutions and\nother output settings are likewise unmeasured, and the contract does not\nclaim which direction they move \u2014\nand what the caller then sees is NOT SETTLED \u2014 see the CHANGELOG entry for\n2.203.0; this contract does not pin a worker's error classification. Measured figures and the conditions for re-listing are in the\nCHANGELOG entry for 2.203.0 \u2014 the only one of the two records that is\nPUBLISHED (`schemas/manifest-divergence-register.yaml` is working material\nfor the drift gate and is not in the npm tarball).\n",
748
+ "description": "Produce a video from an audio input plus an OPTIONAL still image\noverlay. Use cases: podcast \u2192 YouTube uploads, audio-only tracks\nthat need a video container for platforms requiring it, branded\naudio releases with a static cover image.\n\n**Role asymmetry.** First role-based operation on the contract\nwith an OPTIONAL role \u2014 REQUIRED `base` (audio source) +\nOPTIONAL `overlay` (still image, 0..1). When `overlay` is\nomitted, the video uses a solid `background_color`. The\nmachine-readable cardinality lives in `per_role_cardinality`\non this schema.\n\n**Input vs output asymmetry.** The single `mime_groups.audio`\nblock keys the INPUT MIME family (the `base` role input is\naudio). The OUTPUT is always video \u2014 `output_format` controls\nthe container; `mime_groups` is NOT the output type. Mirrors\nthe `audio_overlay.video` group pattern (input-keyed).\n\nRe-encode required (audio \u2192 video composition always re-encodes).\nA lower framerate plus still-image tuning keeps file size tiny\nwhen the overlay is a still image (the common case).\n\n`availability: planned` \u2014 withdrawn 2026-09-15. The measured encode cost\n(a per-second rate PLUS A FIXED COST) puts the advertised PT2H at more than\ntwice the 900 s Lambda platform maximum. \u26a0\ufe0f The fixed cost is not a rounding\ndetail: dropping it moves the in-flight boundary by tens of seconds. The\nfigures are in the CHANGELOG entry for 2.203.0, derived and tested from the\ndivergence register (6gdvD3yZ). Workflow-create returns `feature_not_available` (422).\n\n\u26a0\ufe0f An already-accepted workflow is NOT cancelled \u2014 availability is checked at\ncreate \u2014 and it is NOT thereby doomed. \u26d4 DO NOT READ THIS AS \"in-flight work\nfails\": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH\nOUTPUT, which is precisely why the evidence is arithmetic rather than a kill.\nWhat fails is an accepted workflow whose OUTPUT DURATION exceeds the derived ceiling (`evidence.derived.ceiling_s` in the register)\n\u26a0\ufe0f ON THE INPUT THE RATE WAS MEASURED WITH \u2014 a real photographic 1080p STILL\nplus looped real audio \u2014 the point at which the measured rate plus the fixed\ncost reaches the SERVED cap (the worker's 600 s times the register's\n`headroom`, kikOfB6G), not the raw cap. \u26d4 THE DRIVER IS THE STILL'S RESOLUTION, NOT THE\nDURATION ALONE: a 4K still is MEASURED materially slower (2026-10-02), and the\nshort_form ceiling below is set from that worst case; this schema places NO\nconstraint on the overlay's resolution. Stills above 4K are unmeasured \u2014\nand what the caller then sees is NOT SETTLED \u2014 see the CHANGELOG entry for\n2.203.0; this contract does not pin a worker's error classification. Measured figures and the conditions for re-listing are in the\nCHANGELOG entry for 2.203.0 \u2014 the only one of the two records that is\nPUBLISHED (`schemas/manifest-divergence-register.yaml` is working material\nfor the drift gate and is not in the npm tarball).\n",
749
749
  "input_model": "multi",
750
750
  "max_inputs": 2,
751
751
  "mime_groups": {
752
752
  "audio": {
753
- "ceiling_basis": {
754
- "max_input_duration": "unproven"
755
- },
756
- "max_input_duration": "PT2H",
757
753
  "mimes": [
758
754
  "audio/mpeg",
759
755
  "audio/aac",
@@ -806,6 +802,26 @@
806
802
  "sd_480p"
807
803
  ]
808
804
  }
805
+ },
806
+ "processing_class": {
807
+ "long_form": {
808
+ "availability": "planned",
809
+ "ceiling_basis": {
810
+ "max_input_duration": "unproven"
811
+ },
812
+ "constraints": {
813
+ "max_input_duration": "PT2H"
814
+ }
815
+ },
816
+ "short_form": {
817
+ "availability": "planned",
818
+ "ceiling_basis": {
819
+ "max_input_duration": "unproven"
820
+ },
821
+ "constraints": {
822
+ "max_input_duration": "PT11M35S"
823
+ }
824
+ }
809
825
  }
810
826
  }
811
827
  },
@@ -1049,7 +1065,7 @@
1049
1065
  },
1050
1066
  "output_format": {
1051
1067
  "default": "original",
1052
- "description": "Output audio format. original = keep input format (default, same-format compression). Other values change the format as part of the same job.",
1068
+ "description": "Output audio format. original = keep input format (default, same-format compression), except WAV: a WAV is compressed losslessly to FLAC, because uncompressed WAV cannot get smaller as WAV. Other values change the format as part of the same job.",
1053
1069
  "type": "enum",
1054
1070
  "values": [
1055
1071
  "original",
@@ -1292,7 +1308,7 @@
1292
1308
  "type": "integer"
1293
1309
  },
1294
1310
  "width": {
1295
- "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions.",
1311
+ "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
1296
1312
  "honored_on": [
1297
1313
  "same_format",
1298
1314
  "format_change"
@@ -2020,7 +2036,7 @@
2020
2036
  "type": "integer"
2021
2037
  },
2022
2038
  "width": {
2023
- "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions.",
2039
+ "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
2024
2040
  "honored_on": [
2025
2041
  "same_format",
2026
2042
  "format_change"
@@ -2439,7 +2455,7 @@
2439
2455
  "type": "integer"
2440
2456
  },
2441
2457
  "width": {
2442
- "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image before encoding (one transformed output). NOT honored for SVG input. Optional; omit to keep the source dimensions.",
2458
+ "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image before encoding (one transformed output). NOT honored for SVG input. Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
2443
2459
  "honored_on": [
2444
2460
  "format_change"
2445
2461
  ],
@@ -2545,7 +2561,7 @@
2545
2561
  "type": "integer"
2546
2562
  },
2547
2563
  "output_format": {
2548
- "description": "Target format. The still-image targets (jpeg/png/webp/avif/gif/tiff) take the first frame / rasterise. `mp4` / `webm` are the GIF\u2192VIDEO transcode targets \u2014 the animated GIF becomes a muted, play-once video (`mp4` = H.264, plays everywhere; `webm` = VP9, smaller), typically far smaller than the original GIF. GIFs are silent (no audio stream); the GIF infinite-loop becomes a playback attribute (`<video loop>`) the player sets, NOT baked into the file.",
2564
+ "description": "Target format. `jpeg` / `png` / `avif` / `tiff` take the first frame. `gif` and `webp` keep an animated GIF's animation (a static GIF stays a single frame). `mp4` / `webm` are the GIF\u2192VIDEO transcode targets \u2014 the animated GIF becomes a muted, play-once video (`mp4` = H.264, plays everywhere; `webm` = VP9, smaller), typically far smaller than the original GIF. GIFs are silent (no audio stream); the GIF infinite-loop becomes a playback attribute (`<video loop>`) the player sets, NOT baked into the file.",
2549
2565
  "required": true,
2550
2566
  "type": "enum",
2551
2567
  "values": [
@@ -2587,7 +2603,7 @@
2587
2603
  "tiff"
2588
2604
  ]
2589
2605
  },
2590
- "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Scoped to the STILL-IMAGE targets only \u2014 resizing while transcoding to the mp4/webm video targets is not yet supported, so width/height are not accepted for the video targets.",
2606
+ "description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Scoped to the STILL-IMAGE targets only \u2014 resizing while transcoding to the mp4/webm video targets is not yet supported, so width/height are not accepted for the video targets. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
2591
2607
  "honored_on": [
2592
2608
  "format_change"
2593
2609
  ],
@@ -3217,7 +3233,7 @@
3217
3233
  "type": "boolean"
3218
3234
  },
3219
3235
  "output_type": {
3220
- "description": "Output format for audio merge (concatenation). Currently fixed at 'audio'. Optional \u2014 API injects this default post-validation so callers may omit it.",
3236
+ "description": "Output format for audio merge (concatenation). Currently fixed at 'audio': the merged file is always AAC audio in an MP4 container (.m4a, audio/mp4), whatever the input formats. Optional \u2014 API injects this default post-validation so callers may omit it.",
3221
3237
  "required": false,
3222
3238
  "type": "enum",
3223
3239
  "values": [
@@ -3983,6 +3999,13 @@
3983
3999
  "constraints": {
3984
4000
  "max_total_duration": "PT5M",
3985
4001
  "max_total_input_size_bytes": 524288000
4002
+ },
4003
+ "input_uniformity": {
4004
+ "attributes": {},
4005
+ "refusal": "INPUTS_NOT_CONCAT_UNIFORM",
4006
+ "structural": [
4007
+ "input_audio_topology_mixed"
4008
+ ]
3986
4009
  }
3987
4010
  }
3988
4011
  }
@@ -4088,7 +4111,7 @@
4088
4111
  "split": {
4089
4112
  "availability": "beta",
4090
4113
  "default": false,
4091
- "description": "Fan one input file into N outputs across GIF, PDF, audio, and\nvideo MIME families. Single-input \u2014 one input file per job, fanned\ninto N outputs per the per-mime-group catalog. Mirrors the\n`merge` / `convert` catalog-split-by-mime-group pattern.\n\n**Three shared modes** (audio + video; the mode discriminator\ngates which option applies per the `depends_on` rules in this\nschema):\n- `interval`: split every N numeric-seconds.\n- `count`: split into N equal-duration pieces (integer 2..=200).\n- `cut_points`: explicit cut points in numeric-seconds (strictly\n increasing, no duplicates, each > 0 and < probed duration).\n\n**Plus an audio-only `silence` mode** (`beta`, gated by the\n`silence_mode_audio` feature): cut at detected silence gaps via\nserver-side silence detection. Video stays three-mode.\n\n**GIF + PDF use range-based selection** instead of three modes:\n- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`\n enum {png,webp,jpg}.\n- PDF (`document_pdf`): `page_range` OR `page_groups` (mutually\n exclusive per `depends_on`).\n\n**Wire format**: numeric seconds (floats allowed for sub-second\nprecision). NOT ISO 8601 duration strings. Matches common\nvideo-tooling conventions.\n\n**200-output hard cap** (`OperationResult.outputs[].maxItems:\n200`). Preflight rejects\nrequests exceeding this BEFORE work as `invalid_options` (422).\nCap math by mode:\n- `interval`: `ceil(probed_duration / interval) <= 200`\n- `count`: enforced by the option's `min: 2 max: 200` range\n- `cut_points`: `cut_points.len() + 1 <= 200`\n- `silence` (audio): resolved segment count (detected gaps + 1)\n `<= 200`; preflight rejects as `invalid_options` (422)\n- PDF: resolved page count after expansion `<= 200`\n (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))\n- GIF: resolved frame count after expansion `<= 200`\n\n**Output naming (S3 object key)**: the object-key leaf is 3-digit\nzero-padded \u2014 `output-001` .. `output-200` (ADR-0014 \u00a7D9). This binds the\n**S3 object key**, NOT the user-facing download filename \u2014 the API\nsynthesises that separately (see `OperationDownload.filename` in\n`openapi/api.yaml`). Only the **3-digit zero-padding** follows the convert\nPDF\u2192N precedent \u2014 convert keys are `page-NNN.ext`, split keys are\n`output-NNN.ext`.\n\n**Output envelope binding**:\n- `image_gif`: `PositionIndexed` (frame stream-position 0-based\n ordinal)\n- `document_pdf`: `PageIndexed` (1-based literal source page number).\n With **`mode: page_range`** each output is one page, so `page_index` is\n that page. With **`mode: page_groups`** each output is a group of\n consecutive pages and `page_index` is the group's FIRST source page;\n the group covers `page_index` .. `page_index + page_groups - 1`, and\n the last group ends at the document's last page (so it may be\n shorter). Verified in the worker, not assumed: `compression_lambdas`\n `crates/split/src/processor.rs` passes each range's START page as the\n index, over ranges from `resolve_page_groups` (`pdf_range.rs`, tests\n `page_groups_remainder` / `page_groups_size_larger_than_total`).\n Specified 2026-09-25 (card `jGTLrpzK`); the group stays `planned`\n until a production record exists.\n- `audio`: `PositionIndexed` (cut stream-position ordinal)\n- `video`: `PositionIndexed` (cut stream-position ordinal)\n\n**`precision` flag** (audio + video only): `fast` (default) =\npacket-boundary approximate cuts; `exact` = re-encode-aligned\nprecise cuts (`planned` \u2014 the API refuses it at create until the\nre-encode path is priced). Mime_group scoping is the gate \u2014 precision does\nNOT apply to GIF or PDF (frame extraction is exact and PDF page\nselection is exact by definition).\n\n**Long-form video** routes to a separate long-form processing\npath (same `split` OperationType; routing via `processing_class`).\nNo schema-side discriminator beyond MIME detection +\n`processing_class`.\n\n`availability: beta` for the `audio` and `video` mime_groups\n(shape-stable + opt-in, MUST NOT 422). Video activates **both\nclasses**: `video.processing_class.short_form` AND `long_form` are\n`beta`. The `image_gif` and `document_pdf` mime_groups stay\n`availability: planned` until their cross-repo backend support ships;\ndispatch returns `feature_not_available` (422) for the still-planned\ngroups/classes until then.\n",
4114
+ "description": "Fan one input file into N outputs across GIF, PDF, audio, and\nvideo MIME families. Single-input \u2014 one input file per job, fanned\ninto N outputs per the per-mime-group catalog. Mirrors the\n`merge` / `convert` catalog-split-by-mime-group pattern.\n\n**Three shared modes** (audio + video; the mode discriminator\ngates which option applies per the `depends_on` rules in this\nschema):\n- `interval`: split every N numeric-seconds.\n- `count`: split into N equal-duration pieces (integer 2..=200).\n- `cut_points`: explicit cut points in numeric-seconds (strictly\n increasing, no duplicates, each > 0 and < probed duration).\n\n**Plus an audio-only `silence` mode** (`beta`, gated by the\n`silence_mode_audio` feature): cut at detected silence gaps via\nserver-side silence detection. Video stays three-mode.\n\n**GIF + PDF use range-based selection** instead of three modes:\n- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`\n enum {png,webp,jpg}.\n- PDF (`document_pdf`): `page_range` OR `page_groups` (mutually\n exclusive per `depends_on`).\n\n**Wire format**: numeric seconds (floats allowed for sub-second\nprecision). NOT ISO 8601 duration strings. Matches common\nvideo-tooling conventions.\n\n**200-output hard cap** (`OperationResult.outputs[].maxItems:\n200`). Preflight rejects\nrequests exceeding this BEFORE work as `invalid_options` (422).\nCap math by mode:\n- `interval`: `ceil(probed_duration / interval) <= 200`\n- `count`: enforced by the option's `min: 2 max: 200` range\n- `cut_points`: `cut_points.len() + 1 <= 200`\n- `silence` (audio): resolved segment count (detected gaps + 1)\n `<= 200`; preflight rejects as `invalid_options` (422)\n- PDF: resolved page count after expansion `<= 200`\n (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))\n- GIF: resolved frame count after expansion `<= 200`\n\n**Output naming (S3 object key)**: the object-key leaf is 3-digit\nzero-padded \u2014 `output-001` .. `output-200` (ADR-0014 \u00a7D9). This binds the\n**S3 object key**, NOT the user-facing download filename \u2014 the API\nsynthesises that separately (see `OperationDownload.filename` in\n`openapi/api.yaml`). Only the **3-digit zero-padding** follows the convert\nPDF\u2192N precedent \u2014 convert keys are `page-NNN.ext`, split keys are\n`output-NNN.ext`.\n\n**Output envelope binding**:\n- `image_gif`: `PositionIndexed` (frame stream-position 0-based\n ordinal)\n- `document_pdf`: `PageIndexed` (1-based literal source page number).\n With **`mode: page_range`** each output is one page, so `page_index` is\n that page. With **`mode: page_groups`** each output is a group of\n consecutive pages and `page_index` is the group's FIRST source page;\n the group covers `page_index` .. `page_index + page_groups - 1`, and\n the last group ends at the document's last page (so it may be\n shorter). Verified in the worker, not assumed: `compression_lambdas`\n `crates/split/src/processor.rs` passes each range's START page as the\n index, over ranges from `resolve_page_groups` (`pdf_range.rs`, tests\n `page_groups_remainder` / `page_groups_size_larger_than_total`).\n Specified 2026-09-25 and `beta` since 2026-10-01 (card `jGTLrpzK`), on\n a staging run of both modes; `stable` needs a production record.\n- `audio`: `PositionIndexed` (cut stream-position ordinal)\n- `video`: `PositionIndexed` (cut stream-position ordinal)\n\n**`precision` flag** (audio + video only): `fast` (default) =\npacket-boundary approximate cuts; `exact` = re-encode-aligned\nprecise cuts (`planned` \u2014 the API refuses it at create until the\nre-encode path is priced). Mime_group scoping is the gate \u2014 precision does\nNOT apply to GIF or PDF (frame extraction is exact and PDF page\nselection is exact by definition).\n\n**Long-form video** routes to a separate long-form processing\npath (same `split` OperationType; routing via `processing_class`).\nNo schema-side discriminator beyond MIME detection +\n`processing_class`.\n\n`availability: beta` for the `audio` and `video` mime_groups\n(shape-stable + opt-in, MUST NOT 422). Video activates **both\nclasses**: `video.processing_class.short_form` AND `long_form` are\n`beta`. The `document_pdf` mime_group is `beta` too (2026-10-01), and\n`image_gif` is `stable` (GIF to frames, 2026-06-21). A value or class\nstill tagged `planned` (e.g. `precision: exact`) is refused with\n`feature_not_available` (422).\n",
4092
4115
  "features": {
4093
4116
  "silence_mode_audio": {
4094
4117
  "availability": "beta",
@@ -4205,7 +4228,11 @@
4205
4228
  }
4206
4229
  },
4207
4230
  "document_pdf": {
4208
- "availability": "planned",
4231
+ "availability": "beta",
4232
+ "ceiling_basis": {
4233
+ "max_input_size_bytes": "unproven"
4234
+ },
4235
+ "max_input_size_bytes": 2147483648,
4209
4236
  "mimes": [
4210
4237
  "application/pdf"
4211
4238
  ],
@@ -4663,7 +4690,7 @@
4663
4690
  },
4664
4691
  "thumbnail": {
4665
4692
  "default": false,
4666
- "description": "Resize an image to specific dimensions, or extract a preview frame/page from a video or document. For images this is a full resizer (1-16384px), not just small previews.",
4693
+ "description": "Resize an image to specific dimensions, or extract a preview frame/page from a video or document. For images this is a full resizer (1-16384px), not just small previews. An image or video thumbnail must follow a compress or convert in the same job; a document thumbnail may stand alone. Image types that compress does not accept (BMP, HEIC) therefore need a convert first.",
4667
4694
  "input_model": "single",
4668
4695
  "mime_groups": {
4669
4696
  "document_epub": {
@@ -5041,7 +5068,7 @@
5041
5068
  },
5042
5069
  "constraints": {
5043
5070
  "max_input_duration": "PT30M",
5044
- "max_input_size_bytes": 950000000
5071
+ "max_input_size_bytes": 2000000000
5045
5072
  }
5046
5073
  }
5047
5074
  }
@@ -5352,29 +5379,29 @@
5352
5379
  "le_720p": {
5353
5380
  "basis": "measured",
5354
5381
  "constraints": {
5355
- "max_input_duration": "PT4M35S"
5382
+ "max_input_duration": "PT3M15S"
5356
5383
  },
5357
5384
  "derivation": {
5358
- "cap_s": 600,
5359
- "intercept_s": 3.0,
5360
- "slope_s_per_s": 2.167
5385
+ "cap_s": 504,
5386
+ "intercept_s": 4.8,
5387
+ "slope_s_per_s": 2.551
5361
5388
  }
5362
5389
  },
5363
5390
  "p1080": {
5364
5391
  "basis": "measured",
5365
5392
  "constraints": {
5366
- "max_input_duration": "PT2M3S"
5393
+ "max_input_duration": "PT1M28S"
5367
5394
  },
5368
5395
  "derivation": {
5369
- "cap_s": 600,
5370
- "intercept_s": -3.0,
5371
- "slope_s_per_s": 4.867
5396
+ "cap_s": 504,
5397
+ "intercept_s": -1.9,
5398
+ "slope_s_per_s": 5.748
5372
5399
  }
5373
5400
  },
5374
5401
  "unknown": {
5375
5402
  "basis": "ruled",
5376
5403
  "constraints": {
5377
- "max_input_duration": "PT4M35S"
5404
+ "max_input_duration": "PT3M15S"
5378
5405
  }
5379
5406
  }
5380
5407
  }
@@ -5479,6 +5506,39 @@
5479
5506
  "max_input_duration": "PT5M",
5480
5507
  "max_input_size_bytes": 524288000,
5481
5508
  "max_output_size_bytes": 524288000
5509
+ },
5510
+ "resolution_bands": {
5511
+ "gt_1080p": {
5512
+ "basis": "not_served"
5513
+ },
5514
+ "le_720p": {
5515
+ "basis": "measured",
5516
+ "constraints": {
5517
+ "max_input_duration": "PT3M36S"
5518
+ },
5519
+ "derivation": {
5520
+ "cap_s": 504,
5521
+ "intercept_s": -0.9,
5522
+ "slope_s_per_s": 2.336
5523
+ }
5524
+ },
5525
+ "p1080": {
5526
+ "basis": "measured",
5527
+ "constraints": {
5528
+ "max_input_duration": "PT1M35S"
5529
+ },
5530
+ "derivation": {
5531
+ "cap_s": 504,
5532
+ "intercept_s": 1.2,
5533
+ "slope_s_per_s": 5.262
5534
+ }
5535
+ },
5536
+ "unknown": {
5537
+ "basis": "ruled",
5538
+ "constraints": {
5539
+ "max_input_duration": "PT3M36S"
5540
+ }
5541
+ }
5482
5542
  }
5483
5543
  }
5484
5544
  }
@@ -5498,7 +5558,7 @@
5498
5558
  "sole_op": true
5499
5559
  }
5500
5560
  },
5501
- "schema_version": "2.221.0",
5561
+ "schema_version": "2.224.0",
5502
5562
  "source_commit": null,
5503
5563
  "user_tier": null,
5504
5564
  "workflow_features": {