@giveitsmaller/contracts 0.58.0 → 0.59.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 (497) hide show
  1. package/accepted-options/accepted-options.json +15 -1
  2. package/accepted-options/image-output-routes.json +1 -1
  3. package/asyncapi/events.yaml +17 -9
  4. package/availability/availability.json +123 -7
  5. package/code-builder/code-builder-metadata.json +127 -7
  6. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  8. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  21. package/dist/openapi/models/AuthErrorType.js +1 -1
  22. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  23. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  24. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  25. package/dist/openapi/models/AvailabilityValue.js +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  30. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  31. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  32. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  33. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  34. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  35. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  36. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  37. package/dist/openapi/models/CallbackEventType.js +1 -1
  38. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  39. package/dist/openapi/models/CapabilityCondition.js +1 -1
  40. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  41. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  42. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  54. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  56. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  58. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityProduces.js +1 -1
  60. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  62. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  64. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  66. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  67. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  68. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  69. package/dist/openapi/models/CodegenSource.js +1 -1
  70. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  71. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  72. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  73. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  74. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  76. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  78. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  79. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  80. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  81. package/dist/openapi/models/CompositionPlan.js +1 -1
  82. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  83. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  84. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  85. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  86. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  87. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  88. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  89. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  90. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  91. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  92. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  93. package/dist/openapi/models/ConnectionSource.js +1 -1
  94. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  95. package/dist/openapi/models/ContactRequest.js +1 -1
  96. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  97. package/dist/openapi/models/ContactSubject.js +1 -1
  98. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  99. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  100. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  101. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  102. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  103. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  104. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  105. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  106. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  107. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  108. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  109. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  110. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  111. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  112. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  113. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  114. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  116. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  117. package/dist/openapi/models/CreditTransaction.js +1 -1
  118. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  119. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  120. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  121. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  122. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  123. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  124. package/dist/openapi/models/CreditsUsageResponse.d.ts +43 -1
  125. package/dist/openapi/models/CreditsUsageResponse.js +5 -1
  126. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  127. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  128. package/dist/openapi/models/Delivery.d.ts +1 -1
  129. package/dist/openapi/models/Delivery.js +1 -1
  130. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  131. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  132. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  133. package/dist/openapi/models/DeliveryPlan.js +1 -1
  134. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  135. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  136. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  138. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  139. package/dist/openapi/models/DeliverySelection.js +1 -1
  140. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  141. package/dist/openapi/models/DownloadBundle.js +1 -1
  142. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  143. package/dist/openapi/models/EmailNotify.js +1 -1
  144. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  145. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  146. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  147. package/dist/openapi/models/EndpointProjection.js +1 -1
  148. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  149. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  150. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  151. package/dist/openapi/models/EstimateQuality.js +1 -1
  152. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  153. package/dist/openapi/models/EstimateRange.js +1 -1
  154. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  155. package/dist/openapi/models/ExternalDestination.js +1 -1
  156. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  157. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  158. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  159. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  160. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  161. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  162. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  163. package/dist/openapi/models/ExternalImportToken.js +1 -1
  164. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  165. package/dist/openapi/models/ExternalSource.js +1 -1
  166. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  167. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  168. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  169. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  170. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  171. package/dist/openapi/models/FeatureViolation.js +1 -1
  172. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  173. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  174. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  175. package/dist/openapi/models/JobDefinition.js +1 -1
  176. package/dist/openapi/models/JobDownload.d.ts +1 -1
  177. package/dist/openapi/models/JobDownload.js +1 -1
  178. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  179. package/dist/openapi/models/JobInputV2.js +1 -1
  180. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  181. package/dist/openapi/models/JobMediaClass.js +1 -1
  182. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  183. package/dist/openapi/models/JobOutputSource.js +1 -1
  184. package/dist/openapi/models/JobResponse.d.ts +23 -1
  185. package/dist/openapi/models/JobResponse.js +3 -1
  186. package/dist/openapi/models/JobStatus.d.ts +1 -1
  187. package/dist/openapi/models/JobStatus.js +1 -1
  188. package/dist/openapi/models/JobType.d.ts +1 -1
  189. package/dist/openapi/models/JobType.js +1 -1
  190. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  191. package/dist/openapi/models/LivenessResponse.js +1 -1
  192. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  193. package/dist/openapi/models/LoginUser200Response.js +1 -1
  194. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  195. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  196. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  197. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  198. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  199. package/dist/openapi/models/LoginUser401Response.js +1 -1
  200. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  201. package/dist/openapi/models/LoginUserRequest.js +1 -1
  202. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  203. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  204. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  205. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  206. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  207. package/dist/openapi/models/MetadataResponse.js +1 -1
  208. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  209. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  210. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  211. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  212. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  213. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  214. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  215. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  216. package/dist/openapi/models/MimeGroupSchema.d.ts +38 -1
  217. package/dist/openapi/models/MimeGroupSchema.js +5 -1
  218. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  219. package/dist/openapi/models/MultiInputSource.js +1 -1
  220. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  221. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  222. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  223. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  224. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  225. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  226. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  227. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  228. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  229. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  230. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  231. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  232. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  233. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  234. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  235. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  236. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  237. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  238. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  239. package/dist/openapi/models/MultipartPartListing.js +1 -1
  240. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  241. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  242. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  243. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  244. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  245. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  246. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  247. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  248. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  249. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  250. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  251. package/dist/openapi/models/NotifyConfig.js +1 -1
  252. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  253. package/dist/openapi/models/OperationCapability.js +1 -1
  254. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  255. package/dist/openapi/models/OperationDefinition.js +1 -1
  256. package/dist/openapi/models/OperationDownload.d.ts +103 -5
  257. package/dist/openapi/models/OperationDownload.js +1 -1
  258. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  259. package/dist/openapi/models/OperationInputModel.js +1 -1
  260. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  261. package/dist/openapi/models/OperationResponse.js +1 -1
  262. package/dist/openapi/models/OperationResult.d.ts +1 -1
  263. package/dist/openapi/models/OperationResult.js +1 -1
  264. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  265. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  266. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  267. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  268. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  269. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  270. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  271. package/dist/openapi/models/OperationStatus.js +1 -1
  272. package/dist/openapi/models/OperationType.d.ts +1 -1
  273. package/dist/openapi/models/OperationType.js +1 -1
  274. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  275. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  276. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +10 -1
  277. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +4 -1
  278. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  279. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  280. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  281. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  282. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  283. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  284. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +33 -0
  285. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +42 -0
  286. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  287. package/dist/openapi/models/OptionSchema.js +1 -1
  288. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  289. package/dist/openapi/models/OutputProperties.js +1 -1
  290. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  291. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  292. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  293. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  294. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  295. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  296. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  297. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  298. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  299. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  300. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  301. package/dist/openapi/models/ProcessingClass.js +1 -1
  302. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  303. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  304. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  305. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  306. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  307. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  308. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  309. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  310. package/dist/openapi/models/ProcessingClassHint.d.ts +23 -6
  311. package/dist/openapi/models/ProcessingClassHint.js +23 -6
  312. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  313. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  314. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  315. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  316. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  317. package/dist/openapi/models/ProcessingPlan.js +1 -1
  318. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  319. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  320. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  321. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  322. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  323. package/dist/openapi/models/ReadinessResponse.js +1 -1
  324. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  325. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  326. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  327. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  328. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  329. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  330. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  331. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  332. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  333. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  334. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  335. package/dist/openapi/models/RetryResponse.js +1 -1
  336. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  337. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  338. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  339. package/dist/openapi/models/SseCompletionBase.js +1 -1
  340. package/dist/openapi/models/SseEventType.d.ts +1 -1
  341. package/dist/openapi/models/SseEventType.js +1 -1
  342. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  343. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  344. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  345. package/dist/openapi/models/SseJobFailedData.js +1 -1
  346. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  347. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  348. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  349. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  350. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  351. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  352. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +9 -4
  353. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  354. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  355. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  356. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  357. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  358. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  359. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  360. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  361. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  362. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  363. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  364. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  365. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  366. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  367. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  368. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  369. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  370. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  371. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  372. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  373. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  374. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  375. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  376. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  377. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  378. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  379. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  380. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  381. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  382. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  383. package/dist/openapi/models/UploadFile403Response.js +1 -1
  384. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  385. package/dist/openapi/models/UploadFile422Response.js +1 -1
  386. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  387. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  388. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  389. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  390. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  391. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  392. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  393. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  394. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  395. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  396. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  397. package/dist/openapi/models/UploadResponse.js +1 -1
  398. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  399. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  400. package/dist/openapi/models/UploadSource.d.ts +1 -19
  401. package/dist/openapi/models/UploadSource.js +1 -3
  402. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  403. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  404. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  405. package/dist/openapi/models/UploadThresholds.js +1 -1
  406. package/dist/openapi/models/UserTier.d.ts +1 -1
  407. package/dist/openapi/models/UserTier.js +1 -1
  408. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  409. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  410. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  411. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  412. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  413. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  414. package/dist/openapi/models/WarningType.d.ts +1 -1
  415. package/dist/openapi/models/WarningType.js +1 -1
  416. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  417. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  418. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  419. package/dist/openapi/models/WebhookPayload.js +1 -1
  420. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +81 -0
  421. package/dist/openapi/models/WorkflowArchiveResponse.js +71 -0
  422. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +46 -0
  423. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +54 -0
  424. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  425. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  426. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  427. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  428. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  431. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  432. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  433. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  434. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  435. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  436. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  437. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  438. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  439. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  440. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  441. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  442. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  443. package/dist/openapi/models/WorkflowEdge.js +1 -1
  444. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  445. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  446. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  448. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  450. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  452. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  454. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  456. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  458. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +60 -0
  459. package/dist/openapi/models/WorkflowRestoreResponse.js +58 -0
  460. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +46 -0
  461. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +54 -0
  462. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  464. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  466. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  467. package/dist/openapi/models/WorkflowSource.js +1 -1
  468. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  469. package/dist/openapi/models/WorkflowStatus.js +1 -1
  470. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  471. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  472. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  473. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  474. package/dist/openapi/models/WorkflowSummary.d.ts +24 -1
  475. package/dist/openapi/models/WorkflowSummary.js +5 -1
  476. package/dist/openapi/models/WorkflowSummaryJob.d.ts +11 -5
  477. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  478. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  479. package/dist/openapi/models/WorkflowWarning.js +1 -1
  480. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  481. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  482. package/dist/openapi/models/index.d.ts +5 -0
  483. package/dist/openapi/models/index.js +5 -0
  484. package/dist/openapi/runtime.d.ts +1 -1
  485. package/dist/openapi/runtime.js +1 -1
  486. package/dist/operations/compress.metadata.js +3 -0
  487. package/dist/operations/thumbnail.d.ts +23 -0
  488. package/dist/operations/thumbnail.js +17 -0
  489. package/dist/operations/thumbnail.metadata.js +29 -0
  490. package/openapi/api.yaml +565 -36
  491. package/operation-capabilities/operation-capabilities.json +1 -1
  492. package/operations/schemas/audio_to_video.yaml +1 -0
  493. package/operations/schemas/compress.yaml +52 -2
  494. package/operations/schemas/convert.yaml +6 -1
  495. package/operations/schemas/split.yaml +13 -3
  496. package/operations/schemas/thumbnail.yaml +143 -2
  497. 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.171.0
92
+ version: 2.180.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -1192,6 +1192,28 @@ paths:
1192
1192
  minimum: 1
1193
1193
  maximum: 100
1194
1194
  default: 20
1195
+ - name: archived
1196
+ in: query
1197
+ required: false
1198
+ description: |
1199
+ Archived-row filter (ticket
1200
+ [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)). **Default `false`**:
1201
+ archived workflows are EXCLUDED, so archiving declutters the
1202
+ default view. **`true`**: list ONLY archived workflows (the
1203
+ "archive" view, for review or recovery via
1204
+ `POST /api/workflows/{id}/restore`).
1205
+
1206
+ Archiving is a **recoverable declutter, NOT a delete** — an
1207
+ archived workflow keeps every record and stays fully readable via
1208
+ `GET /api/workflows/{id}/status` and its downloads; only this list
1209
+ hides it by default. Archive an individual workflow via
1210
+ `POST /api/workflows/{id}/archive`, restore it via
1211
+ `POST /api/workflows/{id}/restore`. (A future "show both" view, if
1212
+ needed, would be a separate additive parameter — this boolean
1213
+ stays exclude-vs-archived-only.)
1214
+ schema:
1215
+ type: boolean
1216
+ default: false
1195
1217
  responses:
1196
1218
  '200':
1197
1219
  description: Cursor-paginated summary list of the caller's workflows.
@@ -2513,6 +2535,186 @@ paths:
2513
2535
  schema:
2514
2536
  $ref: '#/components/schemas/ErrorEnvelope'
2515
2537
 
2538
+ /api/workflows/{id}/archive:
2539
+ post:
2540
+ summary: Archive a workflow
2541
+ description: |
2542
+ Archive a terminal workflow so it drops out of the caller's default
2543
+ workflow list. **Recoverable declutter, NOT a delete** — the workflow,
2544
+ its jobs, its operations, and its outputs are all retained and stay
2545
+ fully readable: `GET /api/workflows/{id}/status` and every download
2546
+ link keep working unchanged. Archiving only hides the row from the
2547
+ default `GET /api/workflows` view; `?archived=true` lists archived
2548
+ rows, and `POST /api/workflows/{id}/restore` brings one back.
2549
+
2550
+ Archive sets a dedicated `archived` flag that is **distinct from
2551
+ deletion** — it is the Gmail-style "archive" (reversible, user-owned),
2552
+ not the admin-only hard delete, and it does NOT set any soft-delete /
2553
+ `deleted_at` state. Hard deletion is not exposed to callers.
2554
+
2555
+ Owner-scoped. Idempotent — archiving an already-archived workflow
2556
+ returns 200 with the same shape (`archived_at` reflects the FIRST
2557
+ archive instant, unchanged by a re-archive).
2558
+
2559
+ **Terminal workflows only.** Archive is allowed only once the workflow
2560
+ has reached a terminal status (`completed`, `failed`,
2561
+ `partially_failed`, `cancelled`, `expired`). Archiving an active
2562
+ workflow (`pending`, `in_progress`, `paused_insufficient_credits`) is
2563
+ a **409** — cancel it first (`POST /api/workflows/{id}/cancel`) or wait
2564
+ for it to finish. Archiving does NOT change the workflow's status; it
2565
+ stays terminal and the response echoes it unchanged.
2566
+ operationId: archiveWorkflow
2567
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
2568
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
2569
+ tags:
2570
+ - Workflow
2571
+ parameters:
2572
+ - name: id
2573
+ in: path
2574
+ required: true
2575
+ description: Workflow ID (UUID v7)
2576
+ schema:
2577
+ $ref: '#/components/schemas/UuidV7'
2578
+ responses:
2579
+ '200':
2580
+ description: Workflow archived (or already archived — idempotent).
2581
+ content:
2582
+ application/json:
2583
+ schema:
2584
+ $ref: '#/components/schemas/WorkflowArchiveSuccessEnvelope'
2585
+ examples:
2586
+ archived:
2587
+ summary: Archive a completed workflow
2588
+ value:
2589
+ success: true
2590
+ data:
2591
+ workflow_id: "019539ac-2222-7000-8000-000000000001"
2592
+ status: "completed"
2593
+ archived: true
2594
+ archived_at: "2026-07-17T20:15:00Z"
2595
+ idempotent_rearchive:
2596
+ summary: Archiving an already-archived workflow
2597
+ value:
2598
+ success: true
2599
+ data:
2600
+ workflow_id: "019539ac-2222-7000-8000-000000000002"
2601
+ status: "failed"
2602
+ archived: true
2603
+ archived_at: "2026-07-17T19:55:00Z"
2604
+ '401':
2605
+ description: Authentication required.
2606
+ content:
2607
+ application/json:
2608
+ schema:
2609
+ $ref: '#/components/schemas/ErrorEnvelope'
2610
+ '404':
2611
+ description: Workflow not found OR not owned by the caller (same shape — no ownership leak).
2612
+ content:
2613
+ application/json:
2614
+ schema:
2615
+ $ref: '#/components/schemas/ErrorEnvelope'
2616
+ '409':
2617
+ description: |
2618
+ Workflow is in a non-terminal state (`pending`, `in_progress`,
2619
+ `paused_insufficient_credits`) and cannot be archived yet — only
2620
+ terminal workflows are archivable. Cancel it first
2621
+ (`POST /api/workflows/{id}/cancel`) or wait for it to finish, then
2622
+ retry. Check status via `GET /api/workflows/{id}/status`.
2623
+ content:
2624
+ application/json:
2625
+ schema:
2626
+ $ref: '#/components/schemas/ErrorEnvelope'
2627
+ '429':
2628
+ description: Rate limit exceeded
2629
+ content:
2630
+ application/json:
2631
+ schema:
2632
+ $ref: '#/components/schemas/ErrorEnvelope'
2633
+ '500':
2634
+ description: Internal server error
2635
+ content:
2636
+ application/json:
2637
+ schema:
2638
+ $ref: '#/components/schemas/ErrorEnvelope'
2639
+
2640
+ /api/workflows/{id}/restore:
2641
+ post:
2642
+ summary: Restore (un-archive) a workflow
2643
+ description: |
2644
+ Restore a previously-archived workflow so it reappears in the caller's
2645
+ default `GET /api/workflows` list. The exact inverse of
2646
+ `POST /api/workflows/{id}/archive` — it clears the `archived` flag and
2647
+ nothing else. Status, jobs, operations, outputs, and download links are
2648
+ untouched (archiving never hid or changed any of those; it only hid the
2649
+ list row).
2650
+
2651
+ Owner-scoped. Idempotent — restoring a workflow that is not archived
2652
+ is a harmless no-op that returns 200 with `archived: false`. Because a
2653
+ non-archived workflow can be in any lifecycle state, the echoed
2654
+ `status` is the workflow's unchanged status (any `WorkflowStatus`
2655
+ value), not a fixed terminal subset. There is no 409: un-archiving is
2656
+ always safe.
2657
+ operationId: restoreWorkflow
2658
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
2659
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
2660
+ tags:
2661
+ - Workflow
2662
+ parameters:
2663
+ - name: id
2664
+ in: path
2665
+ required: true
2666
+ description: Workflow ID (UUID v7)
2667
+ schema:
2668
+ $ref: '#/components/schemas/UuidV7'
2669
+ responses:
2670
+ '200':
2671
+ description: Workflow restored (or was already not archived — idempotent).
2672
+ content:
2673
+ application/json:
2674
+ schema:
2675
+ $ref: '#/components/schemas/WorkflowRestoreSuccessEnvelope'
2676
+ examples:
2677
+ restored:
2678
+ summary: Restore an archived workflow
2679
+ value:
2680
+ success: true
2681
+ data:
2682
+ workflow_id: "019539ac-2222-7000-8000-000000000001"
2683
+ status: "completed"
2684
+ archived: false
2685
+ idempotent_restore:
2686
+ summary: Restoring a workflow that was not archived
2687
+ value:
2688
+ success: true
2689
+ data:
2690
+ workflow_id: "019539ac-2222-7000-8000-000000000002"
2691
+ status: "in_progress"
2692
+ archived: false
2693
+ '401':
2694
+ description: Authentication required.
2695
+ content:
2696
+ application/json:
2697
+ schema:
2698
+ $ref: '#/components/schemas/ErrorEnvelope'
2699
+ '404':
2700
+ description: Workflow not found OR not owned by the caller (same shape — no ownership leak).
2701
+ content:
2702
+ application/json:
2703
+ schema:
2704
+ $ref: '#/components/schemas/ErrorEnvelope'
2705
+ '429':
2706
+ description: Rate limit exceeded
2707
+ content:
2708
+ application/json:
2709
+ schema:
2710
+ $ref: '#/components/schemas/ErrorEnvelope'
2711
+ '500':
2712
+ description: Internal server error
2713
+ content:
2714
+ application/json:
2715
+ schema:
2716
+ $ref: '#/components/schemas/ErrorEnvelope'
2717
+
2516
2718
  # ============================================
2517
2719
  # OPERATIONS ENDPOINTS
2518
2720
  # ============================================
@@ -5726,25 +5928,6 @@ components:
5726
5928
  const: upload
5727
5929
  file_id:
5728
5930
  $ref: '#/components/schemas/UuidV7'
5729
- declared_duration_seconds:
5730
- type:
5731
- - number
5732
- - "null"
5733
- minimum: 0
5734
- description: |
5735
- OPTIONAL client-declared media duration in seconds, measured on the
5736
- client **before** upload (e.g. the browser's
5737
- `HTMLVideoElement.duration`). A **routing hint** for long-form
5738
- classification only ([`frlwBuQ5`](https://trello.com/c/frlwBuQ5)):
5739
- the server prefers its own authoritative media probe and falls back
5740
- to this value **only when the async probe duration is null** (e.g.
5741
- the probe has not completed at classification time). It never
5742
- overrides a successful probe, and is not billed against — duration
5743
- billing uses the probed value. Omit (or `null`) when unknown —
5744
- **absent behaves exactly as today** (probe-only). Ignored for
5745
- non-timed media. Only meaningful on an `upload` source (the one the
5746
- client measured locally); other source leaves do not carry it.
5747
- example: 187.5
5748
5931
 
5749
5932
  JobOutputSource:
5750
5933
  type: object
@@ -6561,6 +6744,44 @@ components:
6561
6744
  offset:
6562
6745
  type: integer
6563
6746
  minimum: 0
6747
+ current_cycle_net_spent:
6748
+ type: integer
6749
+ minimum: 0
6750
+ description: |
6751
+ OPTIONAL/additive. Net credits the caller has spent in the CURRENT
6752
+ billing cycle — the monthly-grant period (ledger rows with
6753
+ `created_at` >= the current cycle start). Integer credit units, same
6754
+ as `CreditTransaction.amount` and the balance fields.
6755
+
6756
+ **"Net" = credits actually consumed**, i.e. reservation debits minus
6757
+ the credit-returns that give credits back:
6758
+
6759
+ net = Σ |workflow-reservation debits|
6760
+ − Σ |credit-return rows|
6761
+
6762
+ Rows are identified by **`reference_type`, NOT `type`** — there is
6763
+ no `type: refund` row. The debit is
6764
+ `reference_type: workflow_reservation` (a negative `amount`); the
6765
+ credit-return family is `reference_type` ∈ {`workflow_settle_refund`,
6766
+ `workflow_reservation_release`, `workflow_pause_release`,
6767
+ `workflow_expiry_release`} (positive amounts). This nets a fully
6768
+ released / cancelled / expired reservation to ~0 and a settled one to
6769
+ its non-refundable consumed portion — so it reflects credits ACTUALLY
6770
+ consumed, not gross reservations (a raw settled-sum would overstate
6771
+ spend, since the returns are separate positive rows). Mirrors the
6772
+ reserved-minus-refunded semantics of the API's authoritative
6773
+ `WorkflowCreditSummary` reads. **Absent** for legacy/unsupported
6774
+ reads — treat as unknown, not `0`. Per ticket
6775
+ [`5aXGShPy`](https://trello.com/c/5aXGShPy).
6776
+ lifetime_net_spent:
6777
+ type: integer
6778
+ minimum: 0
6779
+ description: |
6780
+ OPTIONAL/additive. Same net-of-credit-returns formula as
6781
+ `current_cycle_net_spent`, but ALL-TIME (no cycle window) — the
6782
+ caller's total credits ever consumed. Integer credit units.
6783
+ **Absent** for legacy/unsupported reads — treat as unknown, not `0`.
6784
+ Per ticket [`5aXGShPy`](https://trello.com/c/5aXGShPy).
6564
6785
 
6565
6786
  CreditsUsageSuccessEnvelope:
6566
6787
  type: object
@@ -6817,6 +7038,99 @@ components:
6817
7038
  data:
6818
7039
  $ref: '#/components/schemas/WorkflowResumeResponse'
6819
7040
 
7041
+ WorkflowArchiveResponse:
7042
+ type: object
7043
+ description: |
7044
+ Response body for `POST /api/workflows/{id}/archive` (ticket
7045
+ [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)). Archiving sets the
7046
+ `archived` flag so the row drops from the default workflow list; it
7047
+ does NOT change the workflow's status, delete anything, or hide it from
7048
+ `GET /api/workflows/{id}/status` or its downloads. Reversible via
7049
+ `POST /api/workflows/{id}/restore`.
7050
+ required:
7051
+ - workflow_id
7052
+ - status
7053
+ - archived
7054
+ - archived_at
7055
+ properties:
7056
+ workflow_id:
7057
+ $ref: '#/components/schemas/UuidV7'
7058
+ status:
7059
+ type: string
7060
+ enum:
7061
+ - completed
7062
+ - failed
7063
+ - partially_failed
7064
+ - cancelled
7065
+ - expired
7066
+ description: |
7067
+ The workflow's UNCHANGED terminal status — archive never mutates
7068
+ status, only sets the archived flag. Constrained to the terminal
7069
+ subset of `WorkflowStatus` (the only archivable states); an active
7070
+ workflow is a 409, never a 200.
7071
+ archived:
7072
+ type: boolean
7073
+ enum: [true]
7074
+ description: Always `true` on a 200 — the workflow is archived.
7075
+ archived_at:
7076
+ type: string
7077
+ format: date-time
7078
+ description: |
7079
+ ISO-8601 timestamp the workflow was FIRST archived. Idempotent —
7080
+ a re-archive of an already-archived workflow returns the original
7081
+ `archived_at`, unchanged.
7082
+
7083
+ WorkflowArchiveSuccessEnvelope:
7084
+ type: object
7085
+ additionalProperties: false
7086
+ required:
7087
+ - success
7088
+ - data
7089
+ properties:
7090
+ success:
7091
+ type: boolean
7092
+ enum: [true]
7093
+ data:
7094
+ $ref: '#/components/schemas/WorkflowArchiveResponse'
7095
+
7096
+ WorkflowRestoreResponse:
7097
+ type: object
7098
+ description: |
7099
+ Response body for `POST /api/workflows/{id}/restore` (ticket
7100
+ [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)). Restoring clears the
7101
+ `archived` flag so the workflow reappears in the default list. The
7102
+ inverse of archive — status, jobs, outputs, and downloads are
7103
+ untouched.
7104
+ required:
7105
+ - workflow_id
7106
+ - status
7107
+ - archived
7108
+ properties:
7109
+ workflow_id:
7110
+ $ref: '#/components/schemas/UuidV7'
7111
+ status:
7112
+ $ref: '#/components/schemas/WorkflowStatus'
7113
+ archived:
7114
+ type: boolean
7115
+ enum: [false]
7116
+ description: |
7117
+ Always `false` on a 200 — the workflow is no longer archived
7118
+ (or was never archived; restore is an idempotent no-op there).
7119
+ No `archived_at` is returned once restored.
7120
+
7121
+ WorkflowRestoreSuccessEnvelope:
7122
+ type: object
7123
+ additionalProperties: false
7124
+ required:
7125
+ - success
7126
+ - data
7127
+ properties:
7128
+ success:
7129
+ type: boolean
7130
+ enum: [true]
7131
+ data:
7132
+ $ref: '#/components/schemas/WorkflowRestoreResponse'
7133
+
6820
7134
  WorkflowExpiredResponse:
6821
7135
  allOf:
6822
7136
  - $ref: '#/components/schemas/ErrorEnvelope'
@@ -9393,12 +9707,29 @@ components:
9393
9707
  description: |
9394
9708
  Caller-supplied logical-policy hint on `WorkflowCreateRequest`.
9395
9709
  NOT a backend selector — server is final authority on routing.
9710
+
9711
+ `auto` is the only committed value; the other three are
9712
+ `planned` — the API runtime returns `422 feature_not_available`
9713
+ for any non-`auto` value until they ship. Value availability is
9714
+ carried by `per_value_availability` below and promoted to the
9715
+ authoritative sidecar as
9716
+ `workflow_features.processing.class_hint` (keyed by request-shape
9717
+ path, mirroring `workflow_features.delivery.mode`; the decorative
9718
+ `x-availability`/openapi is not authoritative — consumers read the
9719
+ runtime endpoint / sidecar).
9720
+
9396
9721
  - `auto` (default): server routes safely.
9397
- - `short_form_only`: fail fast (422 with `reason:
9398
- tier_policy`) if any job would require `long_form`.
9399
- - `long_form_allowed`: caller accepts slower queue/runtime
9400
- semantics.
9401
- - `long_form_preferred`: prefer `long_form` pool when
9722
+ - `short_form_only` (planned): once shipped, fails fast when any
9723
+ job would require `long_form`. The dedicated fail-fast reject
9724
+ envelope is defined at graduation (co-design with the API
9725
+ handler); while planned the reject is the standard
9726
+ `feature_not_available`. NOTE: `tier_policy` is a success-path
9727
+ advisory reason on `ProcessingClassReason` (why an honored
9728
+ hint drove classification), NOT a 422 reject reason —
9729
+ `ProcessingClassRejectReason` stays ceiling-reasons only.
9730
+ - `long_form_allowed` (planned): caller accepts slower
9731
+ queue/runtime semantics.
9732
+ - `long_form_preferred` (planned): prefer `long_form` pool when
9402
9733
  eligible (test/isolation use cases).
9403
9734
  enum:
9404
9735
  - auto
@@ -9406,6 +9737,11 @@ components:
9406
9737
  - long_form_allowed
9407
9738
  - long_form_preferred
9408
9739
  default: auto
9740
+ per_value_availability:
9741
+ auto: { availability: stable }
9742
+ short_form_only: { availability: planned }
9743
+ long_form_allowed: { availability: planned }
9744
+ long_form_preferred: { availability: planned }
9409
9745
 
9410
9746
  EstimateQuality:
9411
9747
  type: string
@@ -10438,10 +10774,16 @@ components:
10438
10774
  minimum: 0
10439
10775
  description: |
10440
10776
  OPTIONAL. Final job output size in bytes — the right side of the
10441
- savings readout. The aggregate deliverable size for the job (the
10442
- authoritative per-output sizes remain on
10443
- `GET /{id}/downloads`). Absent until the job completes / when not
10444
- applicable.
10777
+ before→after savings readout. The **main/terminal deliverable's**
10778
+ size: the **highest-position completed non-thumbnail** operation's
10779
+ output — **NOT a sum across the job's operations** (a thumbnail's
10780
+ size is excluded; for a compress+thumbnail job this is the compressed
10781
+ output). Authoritative per-output sizes remain on
10782
+ `GET /{id}/downloads`. Populated from the highest-position COMPLETED
10783
+ op, so it is **PROVISIONAL while the job is still running** (a
10784
+ later-completing op can become the main deliverable and change this
10785
+ value) and final only once the job reaches a **terminal** status.
10786
+ Absent until a non-thumbnail op has completed with a recorded size.
10445
10787
  example: 491520
10446
10788
  operation_types:
10447
10789
  type: array
@@ -10506,6 +10848,24 @@ components:
10506
10848
  oneOf:
10507
10849
  - $ref: '#/components/schemas/WorkflowCreditSummary'
10508
10850
  - type: 'null'
10851
+ archived:
10852
+ type: boolean
10853
+ description: |
10854
+ Whether this workflow is archived (hidden from the default list;
10855
+ surfaced only via `?archived=true`). Set by
10856
+ `POST /api/workflows/{id}/archive`, cleared by
10857
+ `POST /api/workflows/{id}/restore`. Archiving is a recoverable
10858
+ declutter — it does NOT delete the workflow or hide it from
10859
+ `GET /api/workflows/{id}/status` or its downloads. **OPTIONAL
10860
+ (additive)** — absent is treated as `false` (not archived),
10861
+ covering legacy rows written before this field existed. Per ticket
10862
+ [`j2s6T2qf`](https://trello.com/c/j2s6T2qf).
10863
+ archived_at:
10864
+ type: string
10865
+ format: date-time
10866
+ description: |
10867
+ ISO-8601 timestamp the workflow was archived. Present only when
10868
+ `archived: true`; absent otherwise. Additive/optional.
10509
10869
 
10510
10870
  WorkflowCreditSummary:
10511
10871
  type: object
@@ -10787,6 +11147,28 @@ components:
10787
11147
  per-operation `OperationResult.size_bytes` / `GET /{id}/downloads`).
10788
11148
  OPTIONAL for the same webhook-payload reason as `input_filename`.
10789
11149
  example: 1258291
11150
+ output_size_bytes:
11151
+ type: integer
11152
+ format: int64
11153
+ minimum: 0
11154
+ description: |
11155
+ OPTIONAL. Final job output size in bytes — the **right** side of the
11156
+ before→after savings readout. The **main/terminal deliverable's**
11157
+ size: the **highest-position completed non-thumbnail** operation's
11158
+ output — **NOT a sum across the job's operations** (a thumbnail's
11159
+ size is excluded; for a compress+thumbnail job this is the compressed
11160
+ output). Authoritative per-output sizes remain on
11161
+ `GET /{id}/downloads`. The drill-in mirror of
11162
+ `WorkflowSummaryJob.output_size_bytes` (same semantics); pairs with
11163
+ `input_size_bytes` above. Populated from the highest-position
11164
+ COMPLETED op, so it is **PROVISIONAL while the job is still running**
11165
+ (a later-completing op can become the main deliverable and change
11166
+ this value) and final only once the job reaches a **terminal**
11167
+ status. Absent until a non-thumbnail op has completed with a recorded
11168
+ size, and OPTIONAL for the same webhook-payload reason as
11169
+ `input_filename`. Ticket [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)
11170
+ (FE before→after size, workflow-view launch ask).
11171
+ example: 491520
10790
11172
  processing_class:
10791
11173
  $ref: '#/components/schemas/ProcessingClass'
10792
11174
  description: |
@@ -11190,7 +11572,100 @@ components:
11190
11572
  $ref: '#/components/schemas/UuidV7'
11191
11573
  filename:
11192
11574
  type: string
11193
- description: Output filename
11575
+ description: |
11576
+ The **download filename** the API synthesises for this output — a
11577
+ human-friendly, extension-bearing name. This is a DIFFERENT surface
11578
+ from the S3 object key (an opaque UUID/`output-NNN` leaf governed by
11579
+ ADR-0014 §D9); the two are independent by design. Composed as
11580
+ `<stem><marker><suffix><.ext>`:
11581
+
11582
+ - **stem** — derived from the originating upload's `original_name`
11583
+ (a chained job resolves through its upstream to the original
11584
+ upload; path separators, control characters and quotes stripped);
11585
+ collapses to `download` if the sanitised stem is empty. When there
11586
+ is **no** original name at all (a `job_output`-sourced job with no
11587
+ upstream upload, or an unrecorded/purged name — rare), the whole
11588
+ field falls back to the S3-key basename **as-is, unmarked**; the
11589
+ per-op marker below applies only to the `original_name`-derived
11590
+ stem, so that fallback path is the one unlabelled case and is
11591
+ outside this map's scope.
11592
+ - **marker** — a per-operation label so **every** processed output
11593
+ is self-describing: it names what the output IS and disambiguates
11594
+ the different operations of a job from each other and from the
11595
+ original (ticket [`50obWMbm`](https://trello.com/c/50obWMbm), user
11596
+ launch feedback — the user hit a watermarked-main + thumbnail
11597
+ collision within one job). **Scope:** the marker resolves
11598
+ within-job and vs-original ambiguity, NOT workflow-wide uniqueness
11599
+ — two SEPARATE jobs running the same op on the same-named upload
11600
+ still produce the same name (a rarer case a job/node identifier
11601
+ would address; out of scope for this label map). **Invariant, with
11602
+ two explicit exceptions:** every op below **except `passthrough`**
11603
+ carries a non-empty marker, so a terminal deliverable **derived
11604
+ from an `original_name`** never falls back to a bare, op-less stem
11605
+ (the bug this fixes). The two exceptions are inline: `passthrough`
11606
+ (the identity op — its output IS the original) and the
11607
+ no-`original_name` S3-key fallback described under **stem** above. The
11608
+ canonical marker is keyed on the **public (masked) operation
11609
+ type** — a long-form concat surfaces as `compress` and carries its
11610
+ marker:
11611
+ - `compress` → `-compressed`
11612
+ - `thumbnail` (and the `thumbnail_image` / `thumbnail_video` /
11613
+ `thumbnail_document` / `thumbnail_office` sub-types, which all
11614
+ surface publicly as `thumbnail`) → `-thumbnail`
11615
+ - `image_watermark` / `text_watermark` / `video_watermark` /
11616
+ `video_text_watermark` / `audio_watermark` → `-watermarked`
11617
+ - `convert` → `-converted` (the extension changes too, but the
11618
+ marker keeps naming consistent — no operation is a special case)
11619
+ - `merge` → `-merged`
11620
+ - `transform` → `-transformed`
11621
+ - `custom_luma` → `-graded`
11622
+ - `audio_overlay` → `-overlay`
11623
+ - `audio_to_video` → `-video`
11624
+ - `render_variants` → `-variant`
11625
+ - `split` → `-part`, plus the `-<n>` piece suffix (below) when
11626
+ the run yields more than one piece. The word-marker is required
11627
+ because a split can legally produce a SINGLE output (e.g.
11628
+ `frame_range: "5-5"`, a one-page PDF range, or an interval that
11629
+ exceeds the media duration) — without it a single-piece split
11630
+ would fall back to the bare original stem.
11631
+ - `archive` → `-archive` (the archive OPERATION's output). Note:
11632
+ the workflow `delivery.bundle` path names its zip from
11633
+ `delivery.bundle_filename` instead — that is a separate surface
11634
+ and takes precedence when a bundle is requested.
11635
+ - `passthrough` → **none, by design** — it emits the input
11636
+ UNCHANGED (it is the identity/plumbing op), so its output IS the
11637
+ original file and carries the original name. It is normally
11638
+ consumed by a downstream job (not a terminal deliverable); when
11639
+ it is a leaf, returning the original name is correct, not a
11640
+ mislabel.
11641
+ **This whole map is co-owned with `compression_api`'s
11642
+ `DownloadFilenameComputer`** (as the `MIME_EXTENSION` table is) —
11643
+ api implements it; contracts is the normative source.
11644
+ - **suffix** — `-<n>` **only** when the operation produced more than
11645
+ one output. `<n>` is the output's **0-based position in the
11646
+ producer's `outputs[]` array** — a uniqueness key. It is
11647
+ **INDEPENDENT of `page_index` and must NOT be read as a page
11648
+ number**: a `pages: '5-7'` PDF fan-out emits
11649
+ `{ filename: "report-converted-0.png", page_index: 5 }` (PDF→PNG is a
11650
+ `convert`, hence `-converted`) — the `-0` is the
11651
+ array position, `5` is the source page. Reconciling them is a bug.
11652
+ - **.ext** — the extension of the **actual produced format**, never
11653
+ the input's and never guessed. Resolved from the worker-reported
11654
+ `output_file_type` (AsyncAPI `OperationResult.output_file_type`,
11655
+ ADR-0022) when present — authoritative for formats the API cannot
11656
+ infer (e.g. `compress.output_format` ∈ `{auto, smallest}`) — else
11657
+ derived from the operation chain. The chain additionally
11658
+ disambiguates a MIME→extension collision even when the MIME is
11659
+ known (`audio/ogg` → `.ogg` for Vorbis vs `.opus` for Opus). When
11660
+ the produced format is
11661
+ genuinely unknown at download time the name is emitted with **no
11662
+ extension** rather than a wrong one. `split` and `audio_to_video`
11663
+ derive to no format, so their extension comes **only** from
11664
+ `output_file_type`.
11665
+
11666
+ Sanitised for JSON (Unicode-safe); the `Content-Disposition` header
11667
+ on the presigned `download_url` is ASCII-sanitised separately, so
11668
+ the two user-visible names may legitimately differ.
11194
11669
  example: "photo.jpg"
11195
11670
  size_bytes:
11196
11671
  type: integer
@@ -11243,9 +11718,14 @@ components:
11243
11718
  type: integer
11244
11719
  minimum: 1
11245
11720
  description: |
11246
- 1-based page number for PDF-page fan-out outputs (convert
11247
- PDF->image). Gapless within an operation (an N-page conversion
11248
- emits `page_index` 1..N). Mutually exclusive with `position`.
11721
+ 1-based **literal source page number** for PDF-page fan-out
11722
+ outputs (convert PDF->image) — the actual page from the input PDF.
11723
+ A full conversion emits `1..N`; a sparse `pages` selection (e.g.
11724
+ `'1-5,8'`) emits exactly the selected pages (`1,2,3,4,5,8`), so it
11725
+ is gapless ONLY for a full conversion, not for a sparse selection.
11726
+ NOT the download `filename` suffix (that is a 0-based array
11727
+ position — see `OperationDownload.filename`). Mutually exclusive with `position`.
11728
+ Normative semantics: ADR-0009 §D2.
11249
11729
  Absent on non-indexed (single-output) downloads. Mirrors
11250
11730
  `OperationResultOutputEntry.page_index`. Per ADR-0009 §D2.
11251
11731
  example: 1
@@ -11681,9 +12161,14 @@ components:
11681
12161
  type: integer
11682
12162
  minimum: 1
11683
12163
  description: |
11684
- 1-based page number for PDF-page fan-out outputs (convert
11685
- PDF->image). Gapless within an operation (an N-page conversion
11686
- emits `page_index` 1..N). Mutually exclusive with `position`.
12164
+ 1-based **literal source page number** for PDF-page fan-out
12165
+ outputs (convert PDF->image) — the actual page from the input PDF.
12166
+ A full conversion emits `1..N`; a sparse `pages` selection (e.g.
12167
+ `'1-5,8'`) emits exactly the selected pages (`1,2,3,4,5,8`), so it
12168
+ is gapless ONLY for a full conversion, not for a sparse selection.
12169
+ NOT the download `filename` suffix (that is a 0-based array
12170
+ position — see `OperationDownload.filename`). Mutually exclusive with `position`.
12171
+ Normative semantics: ADR-0009 §D2.
11687
12172
  Absent on non-indexed outputs. Mirrors
11688
12173
  `OperationResultOutputEntry.page_index`. Per ADR-0009 §D2.
11689
12174
  example: 1
@@ -11942,6 +12427,8 @@ components:
11942
12427
  schema)
11943
12428
  - `delivery.selection.type.per_value_availability` (from the
11944
12429
  `DeliverySelection.type` schema)
12430
+ - `processing.class_hint.per_value_availability` (from the
12431
+ `ProcessingClassHint` enum — ticket `tK81wZKJ`)
11945
12432
 
11946
12433
  Closes the co0CERtJ (v2.19.0) authority-hierarchy gap: those
11947
12434
  `planned` downgrades lived only in the (decorative per ADR-0001
@@ -11971,6 +12458,14 @@ components:
11971
12458
  properties:
11972
12459
  per_value_availability:
11973
12460
  $ref: '#/components/schemas/PerValueAvailability'
12461
+ processing:
12462
+ type: object
12463
+ properties:
12464
+ class_hint:
12465
+ type: object
12466
+ properties:
12467
+ per_value_availability:
12468
+ $ref: '#/components/schemas/PerValueAvailability'
11974
12469
  image_encode_capabilities:
11975
12470
  description: |
11976
12471
  Pre-flight image-encode capability matrix
@@ -12546,6 +13041,40 @@ components:
12546
13041
  [I3](https://trello.com/c/eCWIpug8); until then the
12547
13042
  contract advertises the field shape but the endpoint
12548
13043
  does not yet surface the field.
13044
+ max_input_size_bytes:
13045
+ type: integer
13046
+ format: int64
13047
+ minimum: 1
13048
+ description: |
13049
+ Optional mime-group-level INPUT-file size ceiling in BYTES
13050
+ (ticket [`uKsFzORi`](https://trello.com/c/uKsFzORi)). Sibling of
13051
+ `max_output_pixels`. **Applies to the enclosing operation's input** —
13052
+ currently authored on `compress` image/document groups (the API
13053
+ enforces it on compress input only: AVIF 20 MiB, other images 500 MiB,
13054
+ office/ODF/EPUB 100 MiB). A consumer MUST scope it to the operation
13055
+ whose schema carries it and MUST NOT assume it applies to other
13056
+ operations. An oversize input is rejected at create-time (ADR-0012
13057
+ band-ceiling 422 family).
13058
+
13059
+ **XOR with `processing_class` caps (ADR-0011):** a group carries this
13060
+ group-level cap ONLY when it has NO `processing_class` band. Banded
13061
+ media (e.g. `video`) put input caps in
13062
+ `processing_class.<class>.constraints.max_input_size_bytes` instead —
13063
+ never both, so the input ceiling lives in exactly one place per group.
13064
+ CI-enforced by `scripts/check-per-tier-constraints.py`.
13065
+ max_input_duration:
13066
+ type: string
13067
+ description: |
13068
+ Optional mime-group-level INPUT duration ceiling as an ISO-8601
13069
+ duration string (ticket [`KzrquIX7`](https://trello.com/c/KzrquIX7)) —
13070
+ e.g. `"PT2H"`. Sibling of `max_output_pixels`; same
13071
+ XOR-with-`processing_class` rule as `max_input_size_bytes`
13072
+ (group-level ONLY where no `processing_class` band; banded media use
13073
+ `processing_class.<class>.constraints.max_input_duration`). Currently
13074
+ authored on `audio_to_video.audio` (2h input cap, mirroring the
13075
+ worker's audio-duration limit). Over-cap inputs are rejected at
13076
+ create-time.
13077
+ example: "PT2H"
12549
13078
  processing_class:
12550
13079
  type: object
12551
13080
  description: |