@giveitsmaller/contracts 0.22.0 → 0.23.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 (424) hide show
  1. package/accepted-options/accepted-options.json +153 -25
  2. package/availability/availability.json +305 -84
  3. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  4. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  5. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  6. package/dist/openapi/models/AccountLimits.js +1 -1
  7. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  8. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  9. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  10. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  11. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  12. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  15. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  16. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  17. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  18. package/dist/openapi/models/AuthErrorType.js +1 -1
  19. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  20. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  21. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  22. package/dist/openapi/models/AvailabilityValue.js +1 -1
  23. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  24. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  25. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  27. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  28. package/dist/openapi/models/CallbackEventType.js +1 -1
  29. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  30. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  31. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  32. package/dist/openapi/models/CompositionPlan.js +1 -1
  33. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  34. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  35. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  36. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  37. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  38. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  39. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  40. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  41. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  42. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  43. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  44. package/dist/openapi/models/ConnectionSource.js +1 -1
  45. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  46. package/dist/openapi/models/ContactRequest.js +1 -1
  47. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  48. package/dist/openapi/models/ContactSubject.js +1 -1
  49. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  50. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  51. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  52. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  53. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  54. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  55. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  56. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  57. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  58. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  59. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  60. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  61. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  62. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  63. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  64. package/dist/openapi/models/CreditTransaction.js +1 -1
  65. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  66. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  67. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  68. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  69. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  70. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  71. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  72. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  73. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  74. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  75. package/dist/openapi/models/Delivery.d.ts +1 -1
  76. package/dist/openapi/models/Delivery.js +1 -1
  77. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  78. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  79. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  80. package/dist/openapi/models/DeliveryPlan.js +1 -1
  81. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  82. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  83. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  84. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  85. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  86. package/dist/openapi/models/DeliverySelection.js +1 -1
  87. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  88. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  89. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  90. package/dist/openapi/models/EndpointProjection.js +1 -1
  91. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  92. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  93. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  94. package/dist/openapi/models/EstimateQuality.js +1 -1
  95. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  96. package/dist/openapi/models/EstimateRange.js +1 -1
  97. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  98. package/dist/openapi/models/ExternalDestination.js +1 -1
  99. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  100. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  101. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  102. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  103. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  104. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  105. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  106. package/dist/openapi/models/ExternalImportToken.js +1 -1
  107. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  108. package/dist/openapi/models/ExternalSource.js +1 -1
  109. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  110. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  111. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  112. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  113. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  114. package/dist/openapi/models/FeatureViolation.js +1 -1
  115. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  116. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  117. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  118. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  119. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  120. package/dist/openapi/models/JobDefinition.js +1 -1
  121. package/dist/openapi/models/JobDownload.d.ts +1 -1
  122. package/dist/openapi/models/JobDownload.js +1 -1
  123. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  124. package/dist/openapi/models/JobInputV2.js +1 -1
  125. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  126. package/dist/openapi/models/JobMediaClass.js +1 -1
  127. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  128. package/dist/openapi/models/JobOutputSource.js +1 -1
  129. package/dist/openapi/models/JobResponse.d.ts +1 -1
  130. package/dist/openapi/models/JobResponse.js +1 -1
  131. package/dist/openapi/models/JobStatus.d.ts +1 -1
  132. package/dist/openapi/models/JobStatus.js +1 -1
  133. package/dist/openapi/models/JobType.d.ts +1 -1
  134. package/dist/openapi/models/JobType.js +1 -1
  135. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  136. package/dist/openapi/models/LivenessResponse.js +1 -1
  137. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  138. package/dist/openapi/models/LoginUser200Response.js +1 -1
  139. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  140. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  141. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  142. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  143. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  144. package/dist/openapi/models/LoginUserRequest.js +1 -1
  145. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  146. package/dist/openapi/models/MetadataResponse.js +1 -1
  147. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  148. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  149. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  150. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  151. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  152. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  153. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  154. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  155. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  156. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  157. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  158. package/dist/openapi/models/MultiInputSource.js +1 -1
  159. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  160. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  161. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  162. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  163. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  164. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  165. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  166. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  167. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  168. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  169. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  170. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  171. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  172. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  173. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  174. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  175. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  176. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  177. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  178. package/dist/openapi/models/MultipartPartListing.js +1 -1
  179. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  180. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  181. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  182. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  183. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  184. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  185. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  186. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  187. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  188. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  189. package/dist/openapi/models/OperationDefinition.d.ts +3 -3
  190. package/dist/openapi/models/OperationDefinition.js +1 -1
  191. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  192. package/dist/openapi/models/OperationDownload.js +1 -1
  193. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  194. package/dist/openapi/models/OperationInputModel.js +1 -1
  195. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  196. package/dist/openapi/models/OperationResponse.js +1 -1
  197. package/dist/openapi/models/OperationResult.d.ts +1 -1
  198. package/dist/openapi/models/OperationResult.js +1 -1
  199. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  200. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  201. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  202. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  203. package/dist/openapi/models/OperationSchemaDefinition.d.ts +21 -1
  204. package/dist/openapi/models/OperationSchemaDefinition.js +3 -1
  205. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  206. package/dist/openapi/models/OperationStatus.js +1 -1
  207. package/dist/openapi/models/OperationType.d.ts +1 -1
  208. package/dist/openapi/models/OperationType.js +1 -1
  209. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  210. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  211. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  212. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  213. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  214. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  215. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  219. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  220. package/dist/openapi/models/OptionSchema.js +1 -1
  221. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  222. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  223. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  224. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  225. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  226. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  227. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  228. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  229. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  230. package/dist/openapi/models/ProcessingClass.js +1 -1
  231. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  232. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  233. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  234. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  235. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  236. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  237. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  238. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  239. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  240. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  241. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  242. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  243. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  244. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  245. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  246. package/dist/openapi/models/ProcessingPlan.js +1 -1
  247. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  248. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  249. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  250. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  251. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  252. package/dist/openapi/models/ReadinessResponse.js +1 -1
  253. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  254. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  255. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  256. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  257. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  258. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  259. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  260. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  261. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  262. package/dist/openapi/models/RetryResponse.js +1 -1
  263. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  264. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  265. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  266. package/dist/openapi/models/SseCompletionBase.js +1 -1
  267. package/dist/openapi/models/SseEventType.d.ts +1 -1
  268. package/dist/openapi/models/SseEventType.js +1 -1
  269. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  270. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  271. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  272. package/dist/openapi/models/SseJobFailedData.js +1 -1
  273. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  274. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  275. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  276. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  277. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  278. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  279. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  280. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  281. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  282. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  283. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  284. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  285. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  286. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  287. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  288. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  289. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  290. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  291. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  292. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  293. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  294. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  295. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  296. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  297. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  298. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  299. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  300. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  301. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  302. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  303. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  304. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  305. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  306. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  307. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  308. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  309. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  310. package/dist/openapi/models/UploadFile403Response.js +1 -1
  311. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  312. package/dist/openapi/models/UploadFile422Response.js +1 -1
  313. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  314. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  315. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  316. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  317. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  318. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  319. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  320. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  321. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  322. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  323. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  324. package/dist/openapi/models/UploadResponse.js +1 -1
  325. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  326. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  327. package/dist/openapi/models/UploadSource.d.ts +1 -1
  328. package/dist/openapi/models/UploadSource.js +1 -1
  329. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  330. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  331. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  332. package/dist/openapi/models/UploadThresholds.js +1 -1
  333. package/dist/openapi/models/UserTier.d.ts +1 -1
  334. package/dist/openapi/models/UserTier.js +1 -1
  335. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  336. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  337. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  338. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  339. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  340. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  341. package/dist/openapi/models/WarningType.d.ts +1 -1
  342. package/dist/openapi/models/WarningType.js +1 -1
  343. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  344. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  345. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  346. package/dist/openapi/models/WebhookPayload.js +1 -1
  347. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  348. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  349. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  350. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  351. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  352. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  353. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  354. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  355. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  356. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  357. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  358. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  359. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  360. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  361. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  362. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  363. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  364. package/dist/openapi/models/WorkflowEdge.js +1 -1
  365. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  366. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  367. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  368. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  369. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  370. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  371. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  372. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  373. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  374. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  375. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  376. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  377. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  378. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  379. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  380. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  381. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  382. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  383. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  384. package/dist/openapi/models/WorkflowSource.js +1 -1
  385. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  386. package/dist/openapi/models/WorkflowStatus.js +1 -1
  387. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  388. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  389. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  390. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  391. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  392. package/dist/openapi/models/WorkflowSummary.js +1 -1
  393. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  394. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  395. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  396. package/dist/openapi/models/WorkflowWarning.js +1 -1
  397. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  398. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  399. package/dist/openapi/runtime.d.ts +1 -1
  400. package/dist/openapi/runtime.js +1 -1
  401. package/dist/operations/archive.metadata.js +5 -1
  402. package/dist/operations/compress.d.ts +58 -16
  403. package/dist/operations/compress.js +42 -15
  404. package/dist/operations/compress.metadata.js +126 -7
  405. package/dist/operations/convert.d.ts +2 -8
  406. package/dist/operations/convert.js +1 -7
  407. package/dist/operations/convert.metadata.js +1 -4
  408. package/dist/operations/thumbnail.d.ts +3 -0
  409. package/dist/operations/thumbnail.metadata.js +9 -0
  410. package/openapi/api.yaml +30 -13
  411. package/operations/schemas/archive.yaml +9 -1
  412. package/operations/schemas/audio_overlay.yaml +1 -0
  413. package/operations/schemas/audio_to_video.yaml +1 -0
  414. package/operations/schemas/compress.yaml +226 -73
  415. package/operations/schemas/convert.yaml +22 -24
  416. package/operations/schemas/custom_luma.yaml +1 -0
  417. package/operations/schemas/image_watermark.yaml +1 -0
  418. package/operations/schemas/merge.yaml +1 -0
  419. package/operations/schemas/split.yaml +1 -0
  420. package/operations/schemas/text_watermark.yaml +1 -0
  421. package/operations/schemas/thumbnail.yaml +21 -0
  422. package/operations/schemas/video_text_watermark.yaml +1 -0
  423. package/operations/schemas/video_watermark.yaml +1 -0
  424. 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.79.0
92
+ version: 2.83.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -1321,7 +1321,6 @@ paths:
1321
1321
  operations:
1322
1322
  - type: compress
1323
1323
  options:
1324
- mode: lossy
1325
1324
  quality: 80
1326
1325
  v2_flat_single_source:
1327
1326
  summary: >-
@@ -1336,7 +1335,6 @@ paths:
1336
1335
  operations:
1337
1336
  - type: compress
1338
1337
  options:
1339
- mode: lossy
1340
1338
  quality: 80
1341
1339
  - type: thumbnail
1342
1340
  base: original
@@ -2440,7 +2438,8 @@ paths:
2440
2438
  - `operation`: Filter to a specific operation type
2441
2439
 
2442
2440
  The schema includes conditional validation rules using
2443
- `depends_on` (e.g. `quality` is only valid when `mode: lossy`).
2441
+ `depends_on` (e.g. `crf` is only valid when `encoding_mode: crf`
2442
+ for compress video).
2444
2443
  Per-enum-value availability uses the `per_value_availability` map
2445
2444
  on `OptionSchema` (ticket I17). Clients should use these to build
2446
2445
  dynamic forms with availability-aware UX.
@@ -2540,18 +2539,19 @@ paths:
2540
2539
  # ticket IXE7QDxe — operation-level `options`
2541
2540
  # is omitted for ops with mime_groups.
2542
2541
  mime_groups:
2543
- image:
2544
- mimes: ["image/jpeg", "image/png", "image/webp"]
2542
+ # Illustrative shape only. Real compress.image ships
2543
+ # per-input-format groups (image_jpeg/image_png/
2544
+ # image_avif/image); image compress is lossy-only
2545
+ # (Option B) — no `mode`/`icc_profile`.
2546
+ image_jpeg:
2547
+ mimes: ["image/jpeg"]
2545
2548
  options:
2546
- mode:
2547
- type: "enum"
2548
- values: ["lossy", "lossless", "auto"]
2549
2549
  quality:
2550
2550
  type: "integer"
2551
2551
  min: 1
2552
2552
  max: 100
2553
- depends_on:
2554
- mode: "lossy"
2553
+ progressive:
2554
+ type: "boolean"
2555
2555
  thumbnail:
2556
2556
  description: "Generate a preview image from the source file"
2557
2557
  default: false
@@ -8481,8 +8481,8 @@ components:
8481
8481
  See `GET /api/operations/schema` for the full schema.
8482
8482
 
8483
8483
  Options are validated against the schema using JSON Schema if/then/else
8484
- rules. For example, `quality` is only valid when `mode: lossy` for
8485
- compress operations.
8484
+ rules. For example, `crf` is only valid when `encoding_mode: crf`
8485
+ for compress video operations.
8486
8486
  additionalProperties: true
8487
8487
  base:
8488
8488
  type: string
@@ -10982,6 +10982,23 @@ components:
10982
10982
  max_inputs:
10983
10983
  type: integer
10984
10984
  description: Maximum number of inputs (multi-input operations only)
10985
+ sole_op:
10986
+ type: boolean
10987
+ description: |
10988
+ When `true`, this operation MUST be the only operation in its job —
10989
+ it cannot be chained with other operations in the same job's
10990
+ `operations[]`. To combine it with another operation (e.g. watermark
10991
+ + compress), model them as SEPARATE jobs linked via `workflow_edges`
10992
+ (the downstream job's `source` references the upstream via
10993
+ `job_output`). Optional — absent means `false` (the operation chains
10994
+ normally). Set on the ten ops the API bars from co-bundling
10995
+ (`OperationType::bypassesV1ChainValidator()`): the multi-input ops
10996
+ (merge, archive, image_watermark, video_watermark, audio_overlay,
10997
+ audio_to_video, custom_luma) and the single-input fan-out / leaf ops
10998
+ (text_watermark, video_text_watermark, split). SDK + frontend gate on
10999
+ this to DISABLE-or-EXPLAIN an invalid op-combination before submit,
11000
+ instead of surfacing a workflow-create 422. Per ADR-0025 (interim
11001
+ signal ahead of the full operation-compatibility model, ADR-0024).
10985
11002
  per_role_cardinality:
10986
11003
  $ref: '#/components/schemas/PerRoleCardinality'
10987
11004
  description: |
@@ -5,6 +5,7 @@ operation:
5
5
  description: "Bundle multiple files into a single archive"
6
6
  default: false
7
7
  input_model: multi
8
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
8
9
  min_inputs: 2
9
10
  max_inputs: 50
10
11
  accepts_mixed_types: true
@@ -19,4 +20,11 @@ operation:
19
20
  type: enum
20
21
  values: [flat, by_job]
21
22
  default: flat
22
- description: "flat = all files together at the top level; by_job = a separate subfolder for each source"
23
+ per_value_availability:
24
+ # The archive worker produces a FLAT bundle today; it does not yet read
25
+ # folder_structure (lambdas-confirmed — the option was a silent no-op for
26
+ # `by_job`). `flat` (the default, today's behaviour) stays stable; `by_job`
27
+ # is advertised-ahead `planned` (returns feature_not_available) until the
28
+ # worker implements per-source subfoldering. Honesty pass 2026-06-20.
29
+ by_job: { availability: planned }
30
+ description: "flat = all files together at the top level (default); by_job = a separate subfolder for each source (planned — not yet honored by the worker)"
@@ -36,6 +36,7 @@ operation:
36
36
  ADR-0004 §"V2 JobDefinition" + plan v5 §F1 round 6.
37
37
  default: false
38
38
  input_model: multi
39
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
39
40
  min_inputs: 2
40
41
  max_inputs: 2
41
42
 
@@ -37,6 +37,7 @@ operation:
37
37
 
38
38
  default: false
39
39
  input_model: multi
40
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
40
41
  min_inputs: 1
41
42
  max_inputs: 2
42
43
 
@@ -7,86 +7,186 @@ operation:
7
7
  input_model: single
8
8
 
9
9
  mime_groups:
10
- image:
10
+ # ---- IMAGE compress: per-input-format groups (Option B honesty pass) ----
11
+ # compress is SAME-FORMAT — the libcaesium worker recompresses the input
12
+ # format; an output format change is the API "compress+format" facade
13
+ # (output_format, below). Option applicability genuinely varies by input
14
+ # format, so image ships as parallel per-format mime_groups (FORMAT.md
15
+ # "Parallel mime_group naming" — materially different option shape):
16
+ # image_jpeg -> + progressive (JPEG-only)
17
+ # image_png -> + optimization_level (PNG-only)
18
+ # image_avif -> + avif_speed (AVIF-only)
19
+ # image -> webp/gif/svg/tiff (quality + output_format only)
20
+ # The worker reads quality/progressive/optimization_level/avif_speed (+ a
21
+ # `lossless` bool the API never emits). It HARDCODES metadata-strip, so
22
+ # `metadata` is a single fixed `all`. `mode` (lossy/lossless/auto) and
23
+ # `icc_profile` were REMOVED — the worker never read them and the API passed
24
+ # them verbatim; image compress is LOSSY-ONLY today (product decision
25
+ # 2026-06-20, lossless parked). width/height/fit/auto_orient stay removed
26
+ # (EsD1hs5u — worker recompresses only; resize -> thumbnail, format -> convert).
27
+ #
28
+ # output_format FACADE (replicated identically per group): non-`original`
29
+ # values resolve to a SINGLE API-canonicalized convert-with-size-cap pass
30
+ # (the compress worker never reads output_format). `webp` is live+proven
31
+ # (untagged = stable, ADR-0001 §1.4); auto/smallest/jpeg/png/avif stay
32
+ # `planned` until each value's canonicalization lands (per-value stable-flip
33
+ # with capability proof, ADR-0001/0006). `original` stays stable.
34
+ image_jpeg:
11
35
  mimes:
12
36
  - image/jpeg
37
+ options:
38
+ quality:
39
+ type: integer
40
+ min: 1
41
+ max: 100
42
+ default: 80
43
+ description: "Compression quality (1 = smallest file, 100 = best quality)."
44
+ metadata:
45
+ type: enum
46
+ values: [all]
47
+ default: all
48
+ description: >-
49
+ Metadata handling. `all` = strip all EXIF/IPTC/XMP — the only supported
50
+ behaviour (the compress worker always strips; preservation is not
51
+ currently available).
52
+ progressive:
53
+ type: boolean
54
+ default: true
55
+ description: "Enable progressive JPEG rendering (a low-quality preview renders first, then refines). JPEG only."
56
+ output_format:
57
+ type: enum
58
+ values: [original, auto, smallest, jpeg, png, webp, avif]
59
+ default: original
60
+ per_value_availability:
61
+ auto: { availability: planned } # runtime Accept-best selection — unbuilt
62
+ smallest: { availability: planned } # runtime try-all-smallest selection — unbuilt
63
+ jpeg: { availability: planned } # facade path not live until its own canonicalization
64
+ png: { availability: planned } # facade path not live until its own canonicalization
65
+ avif: { availability: planned } # facade path not live until its own canonicalization
66
+ description: >-
67
+ Output format. original = keep input format (default); auto = best for browser
68
+ support (AVIF > WebP > JPEG via Accept hint); smallest = try all supported formats,
69
+ return the smallest. Non-`original` values are served by the API "compress+format"
70
+ facade (one combined convert-with-size-cap pass); see per_value_availability + FORMAT.md.
71
+
72
+ image_png:
73
+ mimes:
13
74
  - image/png
14
- - image/gif
75
+ options:
76
+ quality:
77
+ type: integer
78
+ min: 1
79
+ max: 100
80
+ default: 80
81
+ description: "Compression quality (1 = smallest file, 100 = best quality)."
82
+ metadata:
83
+ type: enum
84
+ values: [all]
85
+ default: all
86
+ description: >-
87
+ Metadata handling. `all` = strip all EXIF/IPTC/XMP — the only supported
88
+ behaviour (the compress worker always strips; preservation is not
89
+ currently available).
90
+ optimization_level:
91
+ type: integer
92
+ min: 0
93
+ max: 6
94
+ default: 3
95
+ description: "PNG optimization effort (0-6, oxipng). Higher = smaller file, slower encode. Default 3."
96
+ output_format:
97
+ type: enum
98
+ values: [original, auto, smallest, jpeg, png, webp, avif]
99
+ default: original
100
+ per_value_availability:
101
+ auto: { availability: planned } # runtime Accept-best selection — unbuilt
102
+ smallest: { availability: planned } # runtime try-all-smallest selection — unbuilt
103
+ jpeg: { availability: planned } # facade path not live until its own canonicalization
104
+ png: { availability: planned } # facade path not live until its own canonicalization
105
+ avif: { availability: planned } # facade path not live until its own canonicalization
106
+ description: >-
107
+ Output format. original = keep input format (default); auto = best for browser
108
+ support (AVIF > WebP > JPEG via Accept hint); smallest = try all supported formats,
109
+ return the smallest. Non-`original` values are served by the API "compress+format"
110
+ facade (one combined convert-with-size-cap pass); see per_value_availability + FORMAT.md.
111
+
112
+ image_avif:
113
+ availability: beta
114
+ # avif INPUT decode shipped in the compress-image worker via libheif
115
+ # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
116
+ # image/heic is intentionally NOT a compress input: compress is decode-only
117
+ # and there is no HEIC encoder, so the worker rejects a declared image/heic
118
+ # (FormatMismatch). heic stays on convert+thumbnail.
119
+ # WORKER LIMIT (not yet contract-expressible — F3 follow-up): the
120
+ # compress-image worker caps avif INPUT at 20MB (compression_processor.rs),
121
+ # below the general image size budget. Per-MIME input-size caps have no
122
+ # contract vocab today; tracked for the image-size-cap mechanism (F3).
123
+ mimes:
124
+ - image/avif
125
+ options:
126
+ quality:
127
+ type: integer
128
+ min: 1
129
+ max: 100
130
+ default: 80
131
+ description: "Compression quality (1 = smallest file, 100 = best quality)."
132
+ metadata:
133
+ type: enum
134
+ values: [all]
135
+ default: all
136
+ description: >-
137
+ Metadata handling. `all` = strip all EXIF/IPTC/XMP — the only supported
138
+ behaviour (the compress worker always strips; preservation is not
139
+ currently available).
140
+ avif_speed:
141
+ type: integer
142
+ min: 1
143
+ max: 10
144
+ default: 4
145
+ description: "AVIF encode speed (1-10, ravif). Lower = smaller file, slower encode; higher = faster, larger. Default 4."
146
+ output_format:
147
+ type: enum
148
+ values: [original, auto, smallest, jpeg, png, webp, avif]
149
+ default: original
150
+ per_value_availability:
151
+ auto: { availability: planned } # runtime Accept-best selection — unbuilt
152
+ smallest: { availability: planned } # runtime try-all-smallest selection — unbuilt
153
+ jpeg: { availability: planned } # facade path not live until its own canonicalization
154
+ png: { availability: planned } # facade path not live until its own canonicalization
155
+ avif: { availability: planned } # facade path not live until its own canonicalization
156
+ description: >-
157
+ Output format. original = keep input format (default); auto = best for browser
158
+ support (AVIF > WebP > JPEG via Accept hint); smallest = try all supported formats,
159
+ return the smallest. Non-`original` values are served by the API "compress+format"
160
+ facade (one combined convert-with-size-cap pass); see per_value_availability + FORMAT.md.
161
+
162
+ image:
163
+ mimes:
15
164
  - image/webp
165
+ - image/gif
16
166
  - image/svg+xml
17
167
  - image/tiff
18
- - image/avif
19
- per_mime_availability:
20
- # avif INPUT decode shipped in the compress-image worker via libheif
21
- # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
22
- # Re-add after the v2.67.0 interim crash-window drop (aYPbNVKD Phase 2).
23
- # image/heic is intentionally NOT re-added to compress: compress is
24
- # decode-only and there is no HEIC encoder, so the worker rejects a
25
- # declared image/heic (FormatMismatch). heic stays on convert+thumbnail.
26
- # WORKER LIMIT (not yet contract-expressible — F3 follow-up): the
27
- # compress-image worker caps avif INPUT at 20MB (compression_processor.rs),
28
- # below the general image size budget. Per-MIME input-size caps have no
29
- # contract vocab today; tracked for the image-size-cap mechanism (F3).
30
- image/avif: { availability: beta }
31
168
  options:
32
- mode:
33
- type: enum
34
- values: [lossy, lossless, auto]
35
- default: lossy
36
- description: "Compression algorithm. lossy = smaller file, lossless = no quality loss, auto = best for format"
37
169
  quality:
38
170
  type: integer
39
171
  min: 1
40
172
  max: 100
41
173
  default: 80
42
- depends_on: { mode: lossy }
43
- description: "Compression quality (1 = smallest file, 100 = best quality). Only applies to lossy mode."
44
- # width / height / fit / auto_orient were REMOVED from compress.image
45
- # per EsD1hs5u — the libcaesium image-compress worker recompresses
46
- # ONLY and silently IGNORED them (accept-then-ignore). Image resize +
47
- # EXIF auto-orient are served by the `thumbnail` op; format change by
48
- # `convert`. The `video` mime_group KEEPS width/height/fit (ffmpeg
49
- # honors them — do not remove there).
174
+ description: >-
175
+ Compression quality (1 = smallest file, 100 = best quality). For animated
176
+ GIF the worker honours this but real-world size reduction is typically small.
50
177
  metadata:
51
178
  type: enum
52
- values: [all, none, copyright, sensitive]
179
+ values: [all]
53
180
  default: all
54
181
  description: >-
55
- Metadata handling. all = strip everything (smallest file), none = keep all EXIF/IPTC/XMP,
56
- copyright = keep only copyright/author fields, sensitive = keep EXIF but strip GPS/location (GDPR-friendly)
57
- icc_profile:
58
- type: enum
59
- values: [preserve, strip, srgb]
60
- default: preserve
61
- description: "ICC color profile handling. preserve = keep original, strip = remove, srgb = convert to sRGB"
62
- progressive:
63
- type: boolean
64
- default: true
65
- description: "Enable progressive rendering (JPEG only). Renders low-quality preview first, then refines."
182
+ Metadata handling. `all` = strip all EXIF/IPTC/XMP — the only supported
183
+ behaviour (the compress worker always strips; preservation is not
184
+ currently available).
66
185
  output_format:
67
186
  type: enum
68
187
  values: [original, auto, smallest, jpeg, png, webp, avif]
69
188
  default: original
70
189
  per_value_availability:
71
- # FACADE (VcPeRWdD): "compress + change format" resolves to a SINGLE
72
- # combined convert-with-size-cap pass canonicalized API-side (the
73
- # compress worker stays same-format — it never reads output_format).
74
- # Non-`original` values were a live untagged-`stable` silent no-op
75
- # (worker ignored them, returned a same-format file at 200) — the
76
- # hlKCslIu-class over-claim. Tagged `planned` until each value's
77
- # facade piece lands (API canonicalization + lambdas encode), then
78
- # flipped `stable` per value with capability proof (ADR-0001/0006).
79
- # Values flip `stable` per value as each facade piece lands: `webp` is
80
- # DONE (see the stable-flip note below); the rest stay `planned` — auto/
81
- # smallest (runtime selection, unbuilt), jpeg/png/avif (no canonicalization
82
- # live yet). `original` (same-format, today's behaviour) stays stable.
83
- # WEBP STABLE-FLIP (VcPeRWdD): webp is now FUNCTIONAL end-to-end — API B
84
- # (#422) canonicalizes compress(image,webp)→convert(webp,quality) + lambdas
85
- # lossy-webp (PfGs5PBT) is live+proven on staging — so webp is removed from
86
- # this map (untagged = stable, ADR-0001 §1.4). jpeg/png/avif/auto/smallest
87
- # stay `planned` (their canonicalization is NOT in API B — flipping them now
88
- # would stop the 422 while they still dispatch to the same-format worker =
89
- # silent no-op, re-opening the over-claim).
90
190
  auto: { availability: planned } # runtime Accept-best selection — unbuilt
91
191
  smallest: { availability: planned } # runtime try-all-smallest selection — unbuilt
92
192
  jpeg: { availability: planned } # facade path not live until its own canonicalization
@@ -381,86 +481,139 @@ operation:
381
481
  document_pdf:
382
482
  mimes:
383
483
  - application/pdf
484
+ # DOCUMENT-COMPRESS HONESTY (2026-06-20): the worker reads ONLY `quality`
485
+ # and maps it to a Ghostscript preset (76-100=/prepress, 51-75=/printer,
486
+ # 26-50=/ebook, 0-25=/screen) + a DPI-analysis fallback (compression-documents
487
+ # pdf.rs, lambdas-confirmed). The per-format options (profile/colorspace/
488
+ # pages/flatten_forms) are spec-defined but NOT yet read by the worker, so
489
+ # they are tagged `availability: planned` (advertised-ahead; FE hides them
490
+ # per the bare-planned-hide rule) rather than pruned — preserving the
491
+ # designed feature set for a future build (hub ruling). Per ADR-0001 §1.4.
384
492
  options:
493
+ quality:
494
+ type: integer
495
+ min: 1
496
+ max: 100
497
+ default: 50
498
+ description: "Compression quality (1 = smallest, 100 = best). Maps to a document compression preset (the only worker-honored document option today)."
385
499
  profile:
386
500
  type: enum
387
501
  values: [web, print, archive, max]
388
502
  default: web
389
- description: "Optimization profile. web = aggressive (downsample images, strip metadata), print = preserve quality, archive = PDF/A compliance, max = smallest file"
503
+ availability: planned
504
+ description: >-
505
+ Optimization profile. web = aggressive (downsample images, strip
506
+ metadata), print = preserve quality, archive = PDF/A compliance,
507
+ max = smallest file. `planned` — not yet read by the worker (use `quality`).
390
508
  colorspace:
391
509
  type: enum
392
510
  values: [unchanged, rgb, cmyk, grayscale]
393
511
  default: unchanged
394
- description: "Output color space"
512
+ availability: planned
513
+ description: "Output color space. `planned` — not yet read by the worker."
395
514
  pages:
396
515
  type: string
397
- description: "Page selection (e.g. '1-5,8,10-12'). Omit to keep all pages."
516
+ availability: planned
517
+ description: "Page selection (e.g. '1-5,8,10-12'). Omit to keep all pages. `planned` — not yet read by the worker."
398
518
  flatten_forms:
399
519
  type: boolean
400
520
  default: false
401
- description: "Flatten interactive form fields into static content"
521
+ availability: planned
522
+ description: "Flatten interactive form fields into static content. `planned` — not yet read by the worker."
402
523
 
403
524
  document_office:
404
525
  mimes:
405
526
  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
406
527
  - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
407
528
  - application/vnd.openxmlformats-officedocument.presentationml.presentation
529
+ # See the document_pdf honesty note: the worker reads ONLY `quality` today;
530
+ # the per-format options are `planned` (advertised-ahead, FE-hidden).
408
531
  options:
532
+ quality:
533
+ type: integer
534
+ min: 1
535
+ max: 100
536
+ default: 50
537
+ description: "Compression quality (1 = smallest, 100 = best). The only worker-honored document option today."
409
538
  image_quality:
410
539
  type: integer
411
540
  min: 1
412
541
  max: 100
413
542
  default: 80
414
- description: "Recompress embedded images at this quality level (1 = smallest, 100 = best)"
543
+ availability: planned
544
+ description: "Recompress embedded images at this quality level (1 = smallest, 100 = best). `planned` — not yet read by the worker (use `quality`)."
415
545
  strip_macros:
416
546
  type: boolean
417
547
  default: true
418
- description: "Remove VBA macros and ActiveX controls"
548
+ availability: planned
549
+ description: "Remove VBA macros and ActiveX controls. `planned` — not yet read by the worker."
419
550
  strip_hidden_data:
420
551
  type: boolean
421
552
  default: true
422
- description: "Remove revisions, comments, personal info, hidden rows/columns, and speaker notes"
553
+ availability: planned
554
+ description: "Remove revisions, comments, personal info, hidden rows/columns, and speaker notes. `planned` — not yet read by the worker."
423
555
  strip_unused_fonts:
424
556
  type: boolean
425
557
  default: false
426
- description: "Remove embedded fonts not referenced in the document. Risk: may affect rendering on systems without the font installed"
558
+ availability: planned
559
+ description: "Remove embedded fonts not referenced in the document. Risk: may affect rendering on systems without the font installed. `planned` — not yet read by the worker."
427
560
 
428
561
  document_odf:
429
562
  mimes:
430
563
  - application/vnd.oasis.opendocument.text
431
564
  - application/vnd.oasis.opendocument.spreadsheet
432
565
  - application/vnd.oasis.opendocument.presentation
566
+ # See the document_pdf honesty note: worker reads ONLY `quality`; the rest `planned`.
433
567
  options:
568
+ quality:
569
+ type: integer
570
+ min: 1
571
+ max: 100
572
+ default: 50
573
+ description: "Compression quality (1 = smallest, 100 = best). The only worker-honored document option today."
434
574
  image_quality:
435
575
  type: integer
436
576
  min: 1
437
577
  max: 100
438
578
  default: 80
439
- description: "Recompress embedded images at this quality level"
579
+ availability: planned
580
+ description: "Recompress embedded images at this quality level. `planned` — not yet read by the worker (use `quality`)."
440
581
  strip_metadata:
441
582
  type: boolean
442
583
  default: true
443
- description: "Remove document metadata (author, revision history, comments)"
584
+ availability: planned
585
+ description: "Remove document metadata (author, revision history, comments). `planned` — not yet read by the worker."
444
586
  strip_unused_styles:
445
587
  type: boolean
446
588
  default: false
447
- description: "Remove style definitions not referenced in document content"
589
+ availability: planned
590
+ description: "Remove style definitions not referenced in document content. `planned` — not yet read by the worker."
448
591
 
449
592
  document_epub:
450
593
  mimes:
451
594
  - application/epub+zip
595
+ # See the document_pdf honesty note: worker reads ONLY `quality`; the rest `planned`.
452
596
  options:
597
+ quality:
598
+ type: integer
599
+ min: 1
600
+ max: 100
601
+ default: 50
602
+ description: "Compression quality (1 = smallest, 100 = best). The only worker-honored document option today."
453
603
  image_quality:
454
604
  type: integer
455
605
  min: 1
456
606
  max: 100
457
607
  default: 80
458
- description: "Recompress embedded images at this quality level"
608
+ availability: planned
609
+ description: "Recompress embedded images at this quality level. `planned` — not yet read by the worker (use `quality`)."
459
610
  font_subsetting:
460
611
  type: boolean
461
612
  default: true
462
- description: "Subset embedded fonts to only include glyphs used in the document. Significant size reduction for books with large font files"
613
+ availability: planned
614
+ description: "Subset embedded fonts to only include glyphs used in the document. Significant size reduction for books with large font files. `planned` — not yet read by the worker."
463
615
  strip_unused_css:
464
616
  type: boolean
465
617
  default: false
466
- description: "Remove CSS rules not referenced by any content. Risk: may affect rendering in some readers"
618
+ availability: planned
619
+ description: "Remove CSS rules not referenced by any content. Risk: may affect rendering in some readers. `planned` — not yet read by the worker."
@@ -76,33 +76,29 @@ operation:
76
76
  type: enum
77
77
  values: [mp4, webm, ogg, gif]
78
78
  required: true
79
- description: "Target format"
80
- codec:
81
- type: enum
82
- values: [h264, h265, vp9, av1]
83
- depends_on: { output_format: [mp4, webm, ogg] }
84
- description: >
85
- Video codec for target format. Defaults to the format's standard
86
- codec (no literal defaultthe required output_format determines
87
- it). This is the container-conditional-default principle applied via
88
- an explicit container choice. See FORMAT.md
89
- "Container-conditional defaults" + ADR-0023 (supersedes ADR-0020).
90
- Not applicable to a `gif` output (no video codec): an explicit
91
- `codec` on a `gif` output is rejected as `invalid_options` at
92
- workflow-create (the API enforces this `depends_on`); FE/SDK prune
93
- it pre-submit.
94
- quality:
79
+ # The video codec is DETERMINED by the target container, NOT a caller
80
+ # choice: the convert-video worker hard-wires it per container
81
+ # (mp4 -> H.264/libx264, webm -> VP9, ogg -> Theora, gif -> palette;
82
+ # lambdas-confirmed video_convert.rs). The former `codec` option
83
+ # (enum h264/h265/vp9/av1) was a SILENT NO-OP — the worker never read
84
+ # it — so it was removed (honesty pass, 2026-06-20). To choose a codec,
85
+ # use compress.video (which has a real, worker-honored `codec`).
86
+ description: "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette) not caller-selectable."
87
+ crf:
95
88
  type: integer
96
89
  min: 0
97
90
  max: 51
98
91
  default: 23
99
92
  depends_on: { output_format: [mp4, webm, ogg] }
93
+ # Renamed `quality` -> `crf` (2026-06-20) to match compress.video.crf
94
+ # and stop the misnomer: this is a Constant Rate Factor (0=best/lossless,
95
+ # 51=worst), the INVERSE of convert.image.quality (1-100, higher=better).
100
96
  description: >
101
- CRF value (0 = lossless, 51 = worst). Video outputs only — NOT
102
- applicable to a `gif` output (frame extraction has no CRF). An
103
- explicit `quality` on a `gif` output is rejected as `invalid_options`
104
- at workflow-create (the API enforces this `depends_on`); FE/SDK
105
- prune it pre-submit.
97
+ CRF (Constant Rate Factor): 0 = lossless/best, 51 = worst. Lower = higher
98
+ quality + larger file (the inverse of image `quality`). Video outputs only —
99
+ NOT applicable to a `gif` output (frame extraction has no CRF). An explicit
100
+ `crf` on a `gif` output is rejected as `invalid_options` at workflow-create
101
+ (the API enforces this `depends_on`); FE/SDK prune it pre-submit.
106
102
 
107
103
  audio:
108
104
  mimes:
@@ -115,16 +111,18 @@ operation:
115
111
  options:
116
112
  output_format:
117
113
  type: enum
118
- values: [mp3, aac, ogg, flac, wav]
114
+ values: [mp3, aac, ogg, opus, flac, wav]
119
115
  required: true
116
+ # `opus` added 2026-06-20 — the convert-audio worker produces it
117
+ # (audio/ogg container, .opus extension; lambdas-confirmed live).
120
118
  description: "Target format"
121
119
  bitrate:
122
120
  type: enum
123
121
  value_type: integer
124
122
  values: [64, 96, 128, 192, 256, 320]
125
123
  default: 128
126
- depends_on: { output_format: [mp3, aac, ogg] }
127
- description: "Output bitrate in kbps (lossy formats only)"
124
+ depends_on: { output_format: [mp3, aac, ogg, opus] }
125
+ description: "Output bitrate in kbps (lossy formats only — mp3/aac/ogg/opus)"
128
126
 
129
127
  # Only PDF conversion is supported. Office/ODF/EPUB conversion would require
130
128
  # LibreOffice which is not available in the document Lambda.
@@ -34,6 +34,7 @@ operation:
34
34
  transition; this operation is the deliberate alternative).
35
35
  default: false
36
36
  input_model: multi
37
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
37
38
  min_inputs: 2
38
39
  max_inputs: 2
39
40
 
@@ -34,6 +34,7 @@ operation:
34
34
  Per ADR-0004 §"V2 JobDefinition" + plan v5 §F1.
35
35
  default: false
36
36
  input_model: multi
37
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
37
38
  min_inputs: 2
38
39
  max_inputs: 2
39
40
 
@@ -5,6 +5,7 @@ operation:
5
5
  description: "Combine multiple files into one"
6
6
  default: false
7
7
  input_model: multi
8
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
8
9
  min_inputs: 2
9
10
  max_inputs: 10
10
11
  # All merge operations route to the single `ops-merge` Lambda via
@@ -82,6 +82,7 @@ operation:
82
82
  Per ADR-0014.
83
83
  default: false
84
84
  input_model: single
85
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
85
86
 
86
87
  features:
87
88
  silence_mode_audio:
@@ -14,6 +14,7 @@ operation:
14
14
  pattern); rotation default -45° and tile_spacing controls density.
15
15
  default: false
16
16
  input_model: single
17
+ sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
17
18
 
18
19
  mime_groups:
19
20
  image: