@giveitsmaller/contracts 0.59.0 → 0.60.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 (505) hide show
  1. package/accepted-options/accepted-options.json +1 -2
  2. package/accepted-options/image-output-routes.json +1 -1
  3. package/asyncapi/events.yaml +19 -0
  4. package/availability/availability.json +31 -38
  5. package/code-builder/code-builder-metadata.json +46 -57
  6. package/dist/asyncapi/ErrorCode.d.ts +2 -0
  7. package/dist/asyncapi/ErrorCode.js +2 -0
  8. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  10. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  14. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  15. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  19. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  21. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  22. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  23. package/dist/openapi/models/AuthErrorType.js +1 -1
  24. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  25. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  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/CapabilityCondition.d.ts +1 -1
  41. package/dist/openapi/models/CapabilityCondition.js +1 -1
  42. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  56. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  58. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  60. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityProduces.js +1 -1
  62. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  64. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  66. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  68. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  69. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  70. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  71. package/dist/openapi/models/CodegenSource.js +1 -1
  72. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  73. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  74. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  76. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  78. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  79. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  80. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  81. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  82. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  83. package/dist/openapi/models/CompositionPlan.js +1 -1
  84. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  85. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  86. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  87. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  88. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  89. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  90. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  91. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  92. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  93. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  94. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  95. package/dist/openapi/models/ConnectionSource.js +1 -1
  96. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  97. package/dist/openapi/models/ContactRequest.js +1 -1
  98. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  99. package/dist/openapi/models/ContactSubject.js +1 -1
  100. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  101. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  102. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  103. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  104. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  105. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  106. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  107. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  108. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  109. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  110. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  111. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  112. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  113. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  114. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  116. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  117. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  118. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  119. package/dist/openapi/models/CreditTransaction.js +1 -1
  120. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  121. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  122. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  123. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  124. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  125. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  126. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  127. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  128. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  129. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  130. package/dist/openapi/models/Delivery.d.ts +1 -1
  131. package/dist/openapi/models/Delivery.js +1 -1
  132. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  133. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  134. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  135. package/dist/openapi/models/DeliveryPlan.js +1 -1
  136. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  138. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  139. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  140. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  141. package/dist/openapi/models/DeliverySelection.js +1 -1
  142. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  143. package/dist/openapi/models/DownloadBundle.js +1 -1
  144. package/dist/openapi/models/DroppedOption.d.ts +88 -0
  145. package/dist/openapi/models/DroppedOption.js +54 -0
  146. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  147. package/dist/openapi/models/EmailNotify.js +1 -1
  148. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  149. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  150. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  151. package/dist/openapi/models/EndpointProjection.js +1 -1
  152. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  153. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  154. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  155. package/dist/openapi/models/EstimateQuality.js +1 -1
  156. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  157. package/dist/openapi/models/EstimateRange.js +1 -1
  158. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  159. package/dist/openapi/models/ExternalDestination.js +1 -1
  160. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  161. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  162. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  163. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  164. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  165. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  166. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  167. package/dist/openapi/models/ExternalImportToken.js +1 -1
  168. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  169. package/dist/openapi/models/ExternalSource.js +1 -1
  170. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  171. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  172. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  173. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  174. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  175. package/dist/openapi/models/FeatureViolation.js +1 -1
  176. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  177. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  178. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  179. package/dist/openapi/models/JobDefinition.js +1 -1
  180. package/dist/openapi/models/JobDownload.d.ts +1 -1
  181. package/dist/openapi/models/JobDownload.js +1 -1
  182. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  183. package/dist/openapi/models/JobInputV2.js +1 -1
  184. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  185. package/dist/openapi/models/JobMediaClass.js +1 -1
  186. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  187. package/dist/openapi/models/JobOutputSource.js +1 -1
  188. package/dist/openapi/models/JobResponse.d.ts +1 -1
  189. package/dist/openapi/models/JobResponse.js +1 -1
  190. package/dist/openapi/models/JobStatus.d.ts +1 -1
  191. package/dist/openapi/models/JobStatus.js +1 -1
  192. package/dist/openapi/models/JobType.d.ts +1 -1
  193. package/dist/openapi/models/JobType.js +1 -1
  194. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  195. package/dist/openapi/models/LivenessResponse.js +1 -1
  196. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  197. package/dist/openapi/models/LoginUser200Response.js +1 -1
  198. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  199. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  200. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  201. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  202. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  203. package/dist/openapi/models/LoginUser401Response.js +1 -1
  204. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  205. package/dist/openapi/models/LoginUserRequest.js +1 -1
  206. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +5 -2
  207. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  208. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  209. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  210. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  211. package/dist/openapi/models/MetadataResponse.js +1 -1
  212. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  213. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  214. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  215. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  216. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  217. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  218. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  219. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  220. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  221. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  222. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  223. package/dist/openapi/models/MultiInputSource.js +1 -1
  224. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  225. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  226. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  227. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  228. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  229. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  230. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  231. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  232. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  233. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  234. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  235. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  236. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  237. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  238. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  239. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  240. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  241. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  242. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  243. package/dist/openapi/models/MultipartPartListing.js +1 -1
  244. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  245. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  246. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  247. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  248. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  249. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  250. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  251. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  252. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  253. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  254. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  255. package/dist/openapi/models/NotifyConfig.js +1 -1
  256. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  257. package/dist/openapi/models/OperationCapability.js +1 -1
  258. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  259. package/dist/openapi/models/OperationDefinition.js +1 -1
  260. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  261. package/dist/openapi/models/OperationDownload.js +1 -1
  262. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  263. package/dist/openapi/models/OperationInputModel.js +1 -1
  264. package/dist/openapi/models/OperationResponse.d.ts +30 -6
  265. package/dist/openapi/models/OperationResponse.js +1 -1
  266. package/dist/openapi/models/OperationResult.d.ts +1 -1
  267. package/dist/openapi/models/OperationResult.js +1 -1
  268. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  269. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  270. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  271. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  272. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  273. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  274. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  275. package/dist/openapi/models/OperationStatus.js +1 -1
  276. package/dist/openapi/models/OperationType.d.ts +1 -1
  277. package/dist/openapi/models/OperationType.js +1 -1
  278. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  279. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  280. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  281. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  282. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  283. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  284. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  285. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  286. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  287. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  288. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  289. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  290. package/dist/openapi/models/OptionSchema.d.ts +30 -1
  291. package/dist/openapi/models/OptionSchema.js +4 -1
  292. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  293. package/dist/openapi/models/OutputProperties.js +1 -1
  294. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  295. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  296. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +58 -0
  297. package/dist/openapi/models/PerClassAvailabilityEntry.js +48 -0
  298. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  299. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  300. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +44 -1
  301. package/dist/openapi/models/PerValueAvailabilityEntry.js +5 -1
  302. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  303. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  304. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  305. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  306. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  307. package/dist/openapi/models/ProcessingClass.js +1 -1
  308. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  309. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  310. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  311. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  312. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  313. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  314. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  315. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  316. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  317. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  318. package/dist/openapi/models/ProcessingClassReason.d.ts +78 -1
  319. package/dist/openapi/models/ProcessingClassReason.js +79 -2
  320. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  321. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  322. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  323. package/dist/openapi/models/ProcessingPlan.js +1 -1
  324. package/dist/openapi/models/ProcessingPlanJob.d.ts +30 -1
  325. package/dist/openapi/models/ProcessingPlanJob.js +4 -1
  326. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  327. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  328. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  329. package/dist/openapi/models/ReadinessResponse.js +1 -1
  330. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  331. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  332. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  333. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  334. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  335. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  336. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  337. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  338. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  339. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  340. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  341. package/dist/openapi/models/RetryResponse.js +1 -1
  342. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  343. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  344. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  345. package/dist/openapi/models/SseCompletionBase.js +1 -1
  346. package/dist/openapi/models/SseEventType.d.ts +1 -1
  347. package/dist/openapi/models/SseEventType.js +1 -1
  348. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  349. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  350. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  351. package/dist/openapi/models/SseJobFailedData.js +1 -1
  352. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  353. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  354. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  355. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  356. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  357. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  358. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  359. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  360. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  361. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  362. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  363. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  364. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  365. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  366. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  367. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  368. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  369. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  370. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  371. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  372. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  373. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  374. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  375. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  376. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  377. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  378. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  379. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  380. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  381. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  382. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  383. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  384. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  385. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  386. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  387. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  388. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  389. package/dist/openapi/models/UploadFile403Response.js +1 -1
  390. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  391. package/dist/openapi/models/UploadFile422Response.js +1 -1
  392. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  393. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  394. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  395. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  396. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  397. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  398. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  399. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  400. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  401. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  402. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  403. package/dist/openapi/models/UploadResponse.js +1 -1
  404. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  405. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  406. package/dist/openapi/models/UploadSource.d.ts +1 -1
  407. package/dist/openapi/models/UploadSource.js +1 -1
  408. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  409. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  410. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  411. package/dist/openapi/models/UploadThresholds.js +1 -1
  412. package/dist/openapi/models/UserTier.d.ts +1 -1
  413. package/dist/openapi/models/UserTier.js +1 -1
  414. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  415. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  416. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  417. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  418. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  419. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  420. package/dist/openapi/models/WarningType.d.ts +1 -1
  421. package/dist/openapi/models/WarningType.js +1 -1
  422. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  423. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  424. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  425. package/dist/openapi/models/WebhookPayload.js +1 -1
  426. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  427. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  428. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  431. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  432. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  433. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  434. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  435. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  436. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  437. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  438. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  439. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  440. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  441. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  442. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  443. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  444. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  445. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  446. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  448. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowEdge.js +1 -1
  450. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  452. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  454. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  456. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  458. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  459. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  460. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  461. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  462. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  464. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  466. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  467. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  468. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  469. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  470. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  471. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  472. package/dist/openapi/models/WorkflowSource.d.ts +12 -1
  473. package/dist/openapi/models/WorkflowSource.js +1 -1
  474. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  475. package/dist/openapi/models/WorkflowStatus.js +1 -1
  476. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  477. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  478. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  479. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  480. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  481. package/dist/openapi/models/WorkflowSummary.js +1 -1
  482. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  483. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  484. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  485. package/dist/openapi/models/WorkflowWarning.js +1 -1
  486. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  487. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  488. package/dist/openapi/models/index.d.ts +2 -0
  489. package/dist/openapi/models/index.js +2 -0
  490. package/dist/openapi/runtime.d.ts +1 -1
  491. package/dist/openapi/runtime.js +1 -1
  492. package/dist/operations/compress.metadata.js +0 -3
  493. package/dist/operations/merge.metadata.js +6 -1
  494. package/dist/operations/thumbnail.d.ts +0 -2
  495. package/dist/operations/thumbnail.js +0 -1
  496. package/dist/operations/thumbnail.metadata.js +0 -4
  497. package/openapi/api.yaml +331 -10
  498. package/operation-capabilities/operation-capabilities.json +1 -1
  499. package/operations/schemas/audio_overlay.yaml +0 -4
  500. package/operations/schemas/compress.yaml +97 -56
  501. package/operations/schemas/convert.yaml +4 -3
  502. package/operations/schemas/merge.yaml +90 -3
  503. package/operations/schemas/render_variants.yaml +30 -7
  504. package/operations/schemas/thumbnail.yaml +89 -43
  505. package/package.json +1 -1
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.180.0
92
+ version: 2.188.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -1985,7 +1985,7 @@ paths:
1985
1985
  message: "Inputs use different frame rates (29.97 vs 30); set re_encode_mode to auto or always."
1986
1986
  '429':
1987
1987
  description: |
1988
- Rate limited. Two distinct triggers share this status — branch
1988
+ Rate limited. Three distinct triggers share this status — branch
1989
1989
  on the `error` code, NOT on the status:
1990
1990
 
1991
1991
  1. **Long-form concurrency cap** — the caller already holds the
@@ -1999,13 +1999,31 @@ paths:
1999
1999
  2. **Infrastructure rate-limit** — too many requests in the
2000
2000
  current window. The links-absent subset of the same shape: a
2001
2001
  plain `ErrorEnvelope` with a `Retry-After` header.
2002
+ 3. **Duplicate in progress** — the caller resubmitted an
2003
+ identical workflow whose idempotency claim is already held by
2004
+ an in-flight create (deduplication that prevents a
2005
+ double-charge; ticket
2006
+ [`DSxwCetg`](https://trello.com/c/DSxwCetg)). Body is a plain
2007
+ `ErrorEnvelope`: `error: DUPLICATE_IN_PROGRESS`, `message_key:
2008
+ job.duplicate_in_progress`, **no `Retry-After`** and **no
2009
+ `links`**. **Transient — the caller SHOULD retry:** the retry
2010
+ folds onto the now-attached winning workflow and returns
2011
+ `201` with that existing workflow (the normal create shape),
2012
+ so the winning `workflow_id` is delivered on the retry, not
2013
+ here. There is no id to return at this point — the winner is
2014
+ still mid-create (its `workflow_id` is not yet assigned), which
2015
+ is exactly what "in progress" means. This is why the status is
2016
+ `429` (retry-with-backoff resolves it) rather than `409`.
2002
2017
  headers:
2003
2018
  Retry-After:
2004
2019
  description: |
2005
2020
  Seconds to wait before retrying. Delta-seconds (RFC 9110).
2006
2021
  Present ONLY for the infrastructure rate-limit trigger —
2007
- ABSENT for `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED` (that
2008
- limit clears on workflow completion, not on a timer).
2022
+ ABSENT for `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED` (clears on
2023
+ workflow completion, not a timer) and for
2024
+ `DUPLICATE_IN_PROGRESS` (resolves when the caller retries and
2025
+ folds onto the winning workflow — retry promptly, no fixed
2026
+ back-off window).
2009
2027
  schema:
2010
2028
  type: integer
2011
2029
  minimum: 0
@@ -2030,6 +2048,14 @@ paths:
2030
2048
  value:
2031
2049
  success: false
2032
2050
  error: "Too many requests. Please try again later."
2051
+ duplicate_in_progress:
2052
+ summary: Identical workflow already mid-create (idempotency fold — retry to get the 201-with-existing-workflow)
2053
+ value:
2054
+ success: false
2055
+ error: "DUPLICATE_IN_PROGRESS"
2056
+ message: "An identical workflow is already being created. Retry in a moment to attach to it."
2057
+ message_key: "job.duplicate_in_progress"
2058
+ locale: "en-GB"
2033
2059
  '500':
2034
2060
  description: Internal server error
2035
2061
  content:
@@ -5754,6 +5780,34 @@ components:
5754
5780
  - planned
5755
5781
  - deprecated
5756
5782
 
5783
+ PerClassAvailabilityEntry:
5784
+ type: object
5785
+ description: |
5786
+ Availability of an option (or one of its values) on ONE execution
5787
+ class. Attached as a value within a `per_class_availability` map,
5788
+ keyed by a `processing_class` name the parent mime_group
5789
+ declares.
5790
+
5791
+ Exists because `processing_class:` is a SIBLING of `options:`,
5792
+ not a parent, so without this overlay "honoured on short-form,
5793
+ unavailable on long-form" is inexpressible and the only
5794
+ instrument is an operation-wide `planned` — which withdraws a
5795
+ working capability from every caller to describe one path's gap.
5796
+
5797
+ **May only RESTRICT** relative to the scope it overlays, never
5798
+ re-open it (`schemas/FORMAT.md` §Precedence; machine-enforced).
5799
+ required:
5800
+ - availability
5801
+ properties:
5802
+ availability:
5803
+ $ref: '#/components/schemas/AvailabilityValue'
5804
+ eta:
5805
+ type: string
5806
+ description: ISO-8601 date or quarter when this class is expected to support it.
5807
+ documentation_url:
5808
+ type: string
5809
+ format: uri
5810
+
5757
5811
  PerValueAvailabilityEntry:
5758
5812
  type: object
5759
5813
  description: |
@@ -5772,11 +5826,50 @@ components:
5772
5826
  present in this map MUST be a subset of the option's `values[]`
5773
5827
  array — verified by `make check-per-value-availability`
5774
5828
  (`scripts/check-per-value-availability.py`).
5829
+
5830
+ **`availability` is ALWAYS required, including when
5831
+ `per_class_availability` is present.** An entry carrying a
5832
+ per-class overlay MUST also state the blanket truth:
5833
+
5834
+ target_size:
5835
+ availability: stable # true on every other path
5836
+ per_class_availability:
5837
+ long_form_re_encode: { availability: planned }
5838
+
5839
+ **Ruled 2026-07-29, reversing an earlier reading of mine that
5840
+ the absence of a blanket tag was itself the statement.** Three
5841
+ reasons, and the third is the one that decided it:
5842
+
5843
+ 1. It keeps the restrict-only check **LOCAL** — the value an
5844
+ overlay is compared against sits in the same entry, instead
5845
+ of requiring a walk up to option/group/operation scope that
5846
+ must be got right at every nesting depth.
5847
+ 2. It keeps consumers' parsers correct as written: requiring the
5848
+ blanket value IS the rule they already enforce.
5849
+ 3. **It stops the absence of a key carrying meaning.** A reader
5850
+ seeing only `per_class_availability` would have to INFER the
5851
+ general level from a key that is not there — the failure
5852
+ shape this contract spent 2026-07-28 removing everywhere
5853
+ else, and it should not be reintroduced here.
5854
+
5855
+ Nothing is lost by requiring it: the blanket value is `stable`,
5856
+ which is TRUE, and most-cautious inheritance then yields the
5857
+ intended behaviour from the per-class restriction on top.
5775
5858
  required:
5776
5859
  - availability
5777
5860
  properties:
5778
5861
  availability:
5779
5862
  $ref: '#/components/schemas/AvailabilityValue'
5863
+ per_class_availability:
5864
+ type: object
5865
+ description: |
5866
+ Per-execution-class overlay for this enum value: restricts it
5867
+ on named `processing_class` entries of the parent mime_group
5868
+ while leaving the others at the inherited level. Keys MUST be
5869
+ classes the group declares. See `schemas/FORMAT.md`
5870
+ §`per_class_availability`.
5871
+ additionalProperties:
5872
+ $ref: '#/components/schemas/PerClassAvailabilityEntry'
5780
5873
  required_tier:
5781
5874
  description: |
5782
5875
  Tier required to use this enum value. Optional — omit when
@@ -5915,6 +6008,7 @@ components:
5915
6008
 
5916
6009
  UploadSource:
5917
6010
  type: object
6011
+ additionalProperties: false # closed to the API allowlist {type, file_id} — fZXM5VZd
5918
6012
  description: |
5919
6013
  References an upload created via `POST /api/uploads` (single)
5920
6014
  or completed via `POST /api/uploads/multipart/complete`
@@ -5931,6 +6025,7 @@ components:
5931
6025
 
5932
6026
  JobOutputSource:
5933
6027
  type: object
6028
+ additionalProperties: false # closed to the API allowlist {type, from, operation} — fZXM5VZd
5934
6029
  description: |
5935
6030
  References the output of an upstream job in the same workflow.
5936
6031
  Used to chain operations: workflow runs job A first, then job B
@@ -5954,6 +6049,7 @@ components:
5954
6049
 
5955
6050
  ExternalImportToken:
5956
6051
  type: object
6052
+ additionalProperties: false # closed to the API allowlist {type, external_source_id} — fZXM5VZd
5957
6053
  description: |
5958
6054
  Opaque handle returned by `POST /api/external-imports` for a
5959
6055
  one-shot bearer URL (S3 presigned, GCS signed, Azure SAS,
@@ -5973,6 +6069,7 @@ components:
5973
6069
 
5974
6070
  ConnectionSource:
5975
6071
  type: object
6072
+ additionalProperties: false # closed to the API allowlist {type, connection_id, path} — fZXM5VZd
5976
6073
  description: |
5977
6074
  Reference to a vaulted connection (pre-registered via
5978
6075
  `POST /api/connections` — owned by cross-repo `compression_api`
@@ -6013,6 +6110,17 @@ components:
6013
6110
 
6014
6111
  Wiring into `JobDefinition` lands via ticket
6015
6112
  [I12 (`Gr0VKFya`)](https://trello.com/c/Gr0VKFya).
6113
+
6114
+ **All four leaves are CLOSED** (`additionalProperties: false`) to
6115
+ exactly the API's per-leaf allowlist (`WorkflowSourceV2Constraint`,
6116
+ which hard-rejects any extra key). This is a deliberate forward-compat
6117
+ stance (ticket [`fZXM5VZd`](https://trello.com/c/fZXM5VZd)): a client
6118
+ sending a *future* additive field fails contract-validation the same way
6119
+ the API already rejects it — so contract and runtime agree. Adding a new
6120
+ field to a leaf therefore requires a paired API-allowlist change in the
6121
+ same co-land. The union aliases themselves (`WorkflowSource`,
6122
+ `MultiInputSource`, `ExternalSource`) stay open — they are `oneOf`
6123
+ dispatchers, not property-bearing objects.
6016
6124
  oneOf:
6017
6125
  - $ref: '#/components/schemas/UploadSource'
6018
6126
  - $ref: '#/components/schemas/JobOutputSource'
@@ -6914,7 +7022,10 @@ components:
6914
7022
  documented string (not a strict enum) so the rate-limit subset
6915
7023
  validates against the same schema and consumers tolerate unknown
6916
7024
  codes; SDKs branch on the `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED`
6917
- value to distinguish the two.
7025
+ value to distinguish it. A third links-absent branch shares this
7026
+ `429`: `DUPLICATE_IN_PROGRESS` (idempotency fold, ticket
7027
+ [`DSxwCetg`](https://trello.com/c/DSxwCetg)) — see the endpoint's
7028
+ `429` response description for the full trigger list.
6918
7029
 
6919
7030
  Mirrors the runtime shape produced by `compression_api`'s
6920
7031
  `WorkflowController` +
@@ -9798,6 +9909,82 @@ components:
9798
9909
  - `tier_policy`: emitted when the caller's
9799
9910
  `processing.class_hint` (e.g. `short_form_only`) forced
9800
9911
  the decision rather than input characteristics.
9912
+ - `input_metrics_unavailable`: **the classifier did not have
9913
+ every metric the decision required.** One or more of the
9914
+ duration / size figures it needed was unavailable at
9915
+ create-plan time (e.g. an upload probe had not landed), so a
9916
+ class was DEFAULTED rather than chosen. Note this covers the
9917
+ PARTIAL case as well as the none-at-all case — see below;
9918
+ having *some* metrics is not having the metric the decision
9919
+ required. **This is the only
9920
+ value that does not assert a measurement.** Every other value
9921
+ states a fact about the input; this one states that no such
9922
+ fact was obtained.
9923
+
9924
+ **It is a reason a class was DEFAULTED, not a reason a class
9925
+ was CHOSEN** — despite sitting in `ProcessingClassReason`.
9926
+ Read it as *no routing claim was made*. Consumers MUST NOT
9927
+ read the assigned `processing_class` as evidence the input
9928
+ fits that class's constraints when this reason is present,
9929
+ and MUST NOT surface it as a positive statement about the
9930
+ file.
9931
+
9932
+ **Partial measurement usually counts as unmeasured.** On a
9933
+ multi-input operation, emit this whenever a contributing
9934
+ input lacked the metric the decision needed — a sum over the
9935
+ inputs that happened to be probed is not a measurement of the
9936
+ request, even though it is not empty either. The honest
9937
+ predicate is "did I have every metric this decision required",
9938
+ not "did I have some".
9939
+
9940
+ **The exception, and it is a principle rather than a special
9941
+ case: partial evidence that is DECISIVE is still evidence.**
9942
+ Ask whether the missing data could FALSIFY the claim the
9943
+ reason makes:
9944
+
9945
+ - `within_short_form_limits` claims the input **fits**. An
9946
+ unmeasured input can only ADD to the sum, so it could push
9947
+ the request over the cap — the missing data can falsify the
9948
+ claim. This reason therefore requires COMPLETE measurement,
9949
+ and a partial sum must report `input_metrics_unavailable`.
9950
+ - `input_duration_exceeds_short_form` /
9951
+ `input_size_exceeds_short_form` claim the input **exceeds**
9952
+ a cap. The sums are MONOTONE — they only grow — so once the
9953
+ measured subset alone crosses the cap, the missing data
9954
+ cannot falsify the claim. The escalation is positively
9955
+ evidenced, and the decision did not *need* the missing
9956
+ metric. **Report the real reason, NOT
9957
+ `input_metrics_unavailable`.**
9958
+
9959
+ Reporting "I could not measure" for a decision that WAS
9960
+ positively evidenced is a lie in the opposite direction, and
9961
+ it costs twice: it understates what the server knew, and —
9962
+ because this field carries one value — it MASKS a more
9963
+ specific true reason such as `merge_re_encode_long_form`.
9964
+
9965
+ **Generalise by the falsifiability test, not by the list
9966
+ above.** If a future cap is a band rather than a ceiling, or
9967
+ a metric can reduce a total, the monotonicity no longer holds
9968
+ and the exception does not apply.
9969
+
9970
+ **Known limit, stated so it is not later read as a gap in a
9971
+ completed fix:** an input whose probe landed with a duration
9972
+ of **zero** counts as MEASURED and contributes 0 to the sum.
9973
+ That is indistinguishable from a genuine zero-length input
9974
+ from outside the classifier, so this value does not and
9975
+ cannot cover it.
9976
+
9977
+ **Why this value exists (2026-07-28).** A deduplicated upload
9978
+ (and, independently, a fresh upload racing an async probe)
9979
+ reaches create-plan with no duration, and a 62-minute merge was
9980
+ assigned `short_form` with reason `within_short_form_limits` —
9981
+ an affirmative claim that a 62-minute input fits inside a
9982
+ `PT5M` cap. The fallback was indistinguishable from a genuine
9983
+ measurement, so the mis-route was invisible. A classifier that
9984
+ cannot say *"I did not know"* has no way to be honest; this
9985
+ value is that sentence. Emit it in preference to a
9986
+ measurement-asserting value whenever the metrics were absent,
9987
+ even if the class ultimately chosen happens to be correct.
9801
9988
  enum:
9802
9989
  - within_short_form_limits
9803
9990
  - input_size_exceeds_short_form
@@ -9805,6 +9992,7 @@ components:
9805
9992
  - merge_re_encode_long_form
9806
9993
  - requires_reencode
9807
9994
  - tier_policy
9995
+ - input_metrics_unavailable
9808
9996
 
9809
9997
  ProcessingPlanJob:
9810
9998
  type: object
@@ -9845,6 +10033,90 @@ components:
9845
10033
  $ref: '#/components/schemas/EstimateQuality'
9846
10034
  reason:
9847
10035
  $ref: '#/components/schemas/ProcessingClassReason'
10036
+ dropped_options:
10037
+ type: array
10038
+ description: |
10039
+ Options the SERVER supplied on the caller's behalf and then
10040
+ REMOVED, because the resolved execution path cannot honour
10041
+ them. **Never contains a value the caller sent explicitly** —
10042
+ an explicit option the path cannot honour is refused with
10043
+ `422 feature_not_available`, not silently dropped. That
10044
+ split is the whole rule: a caller who asked for nothing is
10045
+ not punished for our default; a caller who asked for
10046
+ something is told.
10047
+
10048
+ **Why this field exists at all.** Dropping a defaulted
10049
+ option is better than refusing the request, and it is still
10050
+ a silent no-op unless we say so — the caller asked for
10051
+ (say) audio normalisation, we did not do it, and nobody
10052
+ told them. This field is the "we did not do that" sentence,
10053
+ the same honesty requirement as
10054
+ `ProcessingClassReason.input_metrics_unavailable`.
10055
+
10056
+ **🔴 ABSENCE CARRIES NO INFORMATION until every server
10057
+ emits it.** An empty array means "nothing was dropped". An
10058
+ ABSENT array means "this server does not report drops" —
10059
+ consumers MUST NOT read absence as "nothing was dropped".
10060
+ Once the emitting side ships, the array is always present.
10061
+ items:
10062
+ $ref: '#/components/schemas/DroppedOption'
10063
+
10064
+ DroppedOption:
10065
+ type: object
10066
+ description: |
10067
+ One server-supplied option removed from a job before dispatch.
10068
+ **Names the THING, the WHY and the PATH** — the three parts a
10069
+ caller needs to act, and the three a single interpolated string
10070
+ would fuse into something unparseable.
10071
+ required:
10072
+ - option
10073
+ - reason
10074
+ properties:
10075
+ option:
10076
+ type: string
10077
+ description: The option key that was removed, as it appears in the operation schema.
10078
+ example: normalize_audio
10079
+ operation_type:
10080
+ type: string
10081
+ description: |
10082
+ The operation the option belonged to. Present because a job
10083
+ may carry several operations, so the option key alone does
10084
+ not identify where the drop happened.
10085
+ example: merge
10086
+ operation_id:
10087
+ type: string
10088
+ format: uuid
10089
+ description: The specific operation, when the server can attribute the drop to one.
10090
+ processing_class:
10091
+ $ref: '#/components/schemas/ProcessingClass'
10092
+ reason:
10093
+ type: string
10094
+ description: |
10095
+ Why the option was dropped. **A documented vocabulary, NOT a
10096
+ strict enum** — deliberately, following `error_code`: a
10097
+ consumer MUST map known values to a friendly reason and
10098
+ MUST degrade an unknown one, so the vocabulary can grow
10099
+ without breaking clients.
10100
+
10101
+ **Known values:**
10102
+
10103
+ - `unavailable_on_processing_class` — the option is tagged
10104
+ unavailable for the class this job resolved to (see
10105
+ `per_class_availability` in `schemas/FORMAT.md`). The
10106
+ `processing_class` field names which.
10107
+ - `processing_class_unmeasured` — the class could NOT be
10108
+ measured (see
10109
+ `ProcessingClassReason.input_metrics_unavailable`), so the
10110
+ option was dropped rather than refused. **Refusing a
10111
+ caller on a guessed class is the same error as asserting
10112
+ a measurement never taken**, so an unmeasured basis
10113
+ degrades to a drop and never to a 422.
10114
+
10115
+ The class token is deliberately NOT interpolated into this
10116
+ string: the reason and the path are separate fields because
10117
+ a fused `not_available_on_<class>` is unparseable and
10118
+ duplicates `processing_class`.
10119
+ example: unavailable_on_processing_class
9848
10120
 
9849
10121
  ProcessingPlan:
9850
10122
  type: object
@@ -11248,11 +11520,29 @@ components:
11248
11520
  Distinct from the workflow/API create-time `ErrorEnvelope.error`
11249
11521
  vocabulary — this is the per-operation processing failure.
11250
11522
 
11251
- **Retry semantics:** the sibling `is_retryable` marks the transient
11252
- codes (`out_of_memory`, `timeout`, `s3_download_failed`,
11253
- `s3_upload_failed`); those are auto-redriven (SQS) and exhausted
11254
- before a failure surfaces, so a reported failure is always terminal —
11255
- `is_retryable` only tells the user whether re-submitting is worthwhile.
11523
+ **Retry semantics — DERIVE THEM FROM THIS FIELD.** Retryability is a
11524
+ property OF THE ERROR CODE, not an independent fact about an
11525
+ occurrence: the same code is always equally retryable, so there is
11526
+ no per-response boolean on this surface to read. The transient codes
11527
+ are `out_of_memory`, `timeout`, `s3_download_failed` and
11528
+ `s3_upload_failed`; the AsyncAPI `ErrorCode` enum groups every value
11529
+ under **Retryable** / **Non-retryable** headings and is the source of
11530
+ truth for that mapping.
11531
+
11532
+ Note a reported failure is **always terminal** regardless: transient
11533
+ codes are auto-redriven (SQS) and exhausted before a failure ever
11534
+ surfaces here, so retryability only tells the caller whether
11535
+ **re-submitting** is worthwhile.
11536
+
11537
+ **This docstring previously referred to "the sibling `is_retryable`".
11538
+ There is no such field on the OpenAPI surface** — it exists only on
11539
+ the AsyncAPI worker→API channel, so no generated REST client could
11540
+ ever carry it, and the contract was describing to consumers something
11541
+ it does not deliver (ticket `wdOF3ol4`). Deliberately corrected by
11542
+ REMOVING the promise rather than by adding the field: a per-response
11543
+ boolean would be a second source of truth for a fact the code already
11544
+ determines, free to drift from it, and it would break again when the
11545
+ `retryable` boolean→enum change lands.
11256
11546
 
11257
11547
  **Codes** (closed set; meaning):
11258
11548
  `invalid_options` (options invalid for this op — most common),
@@ -11265,6 +11555,12 @@ components:
11265
11555
  `invalid_key` (storage key invalid),
11266
11556
  `processing_failed` (non-specific processing failure),
11267
11557
  `s3_access_denied` (storage access denied — fail-fast, non-retryable),
11558
+ `input_too_large` (input exceeds our PROCESSING limits — deterministic,
11559
+ user-actionable via downscaling or a higher tier; distinct from the
11560
+ byte caps, which are refused at create and never reach a worker),
11561
+ `never_started` (the operation was terminated without ever running
11562
+ because its job reached a terminal state first — an upstream failure
11563
+ OR a cancellation; API-derived, never worker-emitted),
11268
11564
  `unknown` (unclassified),
11269
11565
  `out_of_memory` (retryable), `timeout` (retryable),
11270
11566
  `s3_download_failed` (retryable), `s3_upload_failed` (retryable).
@@ -13168,6 +13464,31 @@ components:
13168
13464
  scoped to a single option (e.g. an operation may have a
13169
13465
  free-tier base option set with one or two `pro`-tier
13170
13466
  advanced options gated this way).
13467
+ per_class_availability:
13468
+ type: object
13469
+ description: |
13470
+ Per-EXECUTION-CLASS overlay for this option: restricts it on named
13471
+ `processing_class` entries of the parent mime_group while leaving
13472
+ the others at the inherited level. Keys MUST be classes the group
13473
+ declares.
13474
+
13475
+ Use this — NOT an operation-wide `availability` — when a worker
13476
+ honours an option on one execution path and refuses it on another.
13477
+ Marking the whole option `planned` would withdraw a working
13478
+ capability from every caller in order to describe one path's gap.
13479
+
13480
+ May only RESTRICT relative to the scope it overlays, never re-open
13481
+ it. See `schemas/FORMAT.md` §`per_class_availability` and
13482
+ §Precedence (machine-enforced by
13483
+ `scripts/check-per-class-availability.py`).
13484
+
13485
+ Note the option-level overlay and the per-VALUE one
13486
+ (`per_value_availability.<value>.per_class_availability`) can
13487
+ coexist: the option-level says the worker refuses the KEY on that
13488
+ path, the value-level says it refuses one VALUE. Most-cautious
13489
+ inheritance applies.
13490
+ additionalProperties:
13491
+ $ref: '#/components/schemas/PerClassAvailabilityEntry'
13171
13492
  per_value_availability:
13172
13493
  $ref: '#/components/schemas/PerValueAvailability'
13173
13494
  description: |
@@ -732,5 +732,5 @@
732
732
  "isAnimated": "maybe"
733
733
  }
734
734
  },
735
- "schema_version": "2.180.0"
735
+ "schema_version": "2.188.0"
736
736
  }
@@ -241,7 +241,6 @@ operation:
241
241
  type: float
242
242
  min: -80.0
243
243
  max: -10.0
244
- default: -50.0
245
244
  availability: planned
246
245
  description: |
247
246
  Silence threshold (dB) for the `sync_to_silence` feature.
@@ -254,7 +253,6 @@ operation:
254
253
  type: integer
255
254
  min: 50
256
255
  max: 30000
257
- default: 500
258
256
  availability: planned
259
257
  description: |
260
258
  Minimum silence duration (milliseconds) to qualify as an
@@ -412,7 +410,6 @@ operation:
412
410
  type: float
413
411
  min: -80.0
414
412
  max: -10.0
415
- default: -50.0
416
413
  availability: planned
417
414
  description: |
418
415
  Silence threshold (dB) for `sync_to_silence`. Inert
@@ -422,7 +419,6 @@ operation:
422
419
  type: integer
423
420
  min: 50
424
421
  max: 30000
425
- default: 500
426
422
  availability: planned
427
423
  description: |
428
424
  Minimum silence duration (milliseconds) for