@giveitsmaller/contracts 0.9.0 → 0.16.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 (443) hide show
  1. package/asyncapi/events.yaml +540 -42
  2. package/availability/availability.json +313 -89
  3. package/dist/asyncapi/Failure.d.ts +2 -0
  4. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  5. package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
  6. package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
  7. package/dist/asyncapi/OperationResultMetadata.js +1 -0
  8. package/dist/asyncapi/OperationType.d.ts +2 -1
  9. package/dist/asyncapi/OperationType.js +1 -0
  10. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  11. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  12. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  13. package/dist/asyncapi/SourceEntry.d.ts +2 -0
  14. package/dist/asyncapi/Unindexed.d.ts +1 -0
  15. package/dist/asyncapi/index.d.ts +2 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  17. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  18. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  19. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  20. package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
  21. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  22. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  23. package/dist/openapi/models/AuthErrorType.js +2 -2
  24. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
  25. package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
  26. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  27. package/dist/openapi/models/AvailabilityValue.js +2 -2
  28. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
  29. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  30. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  32. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  33. package/dist/openapi/models/CallbackEventType.js +2 -2
  34. package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
  35. package/dist/openapi/models/ChangePasswordRequest.js +47 -0
  36. package/dist/openapi/models/CompositionPlan.d.ts +72 -0
  37. package/dist/openapi/models/CompositionPlan.js +53 -0
  38. package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
  39. package/dist/openapi/models/CompositionPlanJob.js +48 -0
  40. package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
  41. package/dist/openapi/models/CompositionPlanOperation.js +62 -0
  42. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
  43. package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
  44. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
  45. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
  46. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
  47. package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
  48. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  49. package/dist/openapi/models/ConnectionSource.js +2 -2
  50. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  51. package/dist/openapi/models/ContactRequest.js +2 -2
  52. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  53. package/dist/openapi/models/ContactSubject.js +2 -2
  54. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  55. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  56. package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
  57. package/dist/openapi/models/CreateApiKey201Response.js +54 -0
  58. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
  59. package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
  60. package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
  61. package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
  62. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  63. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  64. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  65. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  66. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  67. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  68. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  69. package/dist/openapi/models/CreditTransaction.js +2 -2
  70. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  71. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  72. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  73. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  74. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  75. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  76. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  77. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  78. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  79. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  80. package/dist/openapi/models/Delivery.d.ts +2 -2
  81. package/dist/openapi/models/Delivery.js +2 -2
  82. package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
  83. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  84. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  85. package/dist/openapi/models/DeliveryPlan.js +2 -2
  86. package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
  87. package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
  88. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  89. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  90. package/dist/openapi/models/DeliverySelection.d.ts +6 -4
  91. package/dist/openapi/models/DeliverySelection.js +2 -2
  92. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
  93. package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
  94. package/dist/openapi/models/EndpointProjection.d.ts +12 -3
  95. package/dist/openapi/models/EndpointProjection.js +2 -2
  96. package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
  97. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  98. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  99. package/dist/openapi/models/EstimateQuality.js +2 -2
  100. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  101. package/dist/openapi/models/EstimateRange.js +2 -2
  102. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  103. package/dist/openapi/models/ExternalDestination.js +2 -2
  104. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  105. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  106. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  107. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  108. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  109. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  110. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  111. package/dist/openapi/models/ExternalImportToken.js +2 -2
  112. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  113. package/dist/openapi/models/ExternalSource.js +2 -2
  114. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +13 -2
  115. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  116. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
  117. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  118. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  119. package/dist/openapi/models/FeatureViolation.js +2 -2
  120. package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
  121. package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
  122. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
  123. package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
  124. package/dist/openapi/models/JobDefinition.d.ts +20 -4
  125. package/dist/openapi/models/JobDefinition.js +2 -2
  126. package/dist/openapi/models/JobDownload.d.ts +2 -2
  127. package/dist/openapi/models/JobDownload.js +2 -2
  128. package/dist/openapi/models/JobInputV2.d.ts +13 -9
  129. package/dist/openapi/models/JobInputV2.js +5 -5
  130. package/dist/openapi/models/JobMediaClass.d.ts +34 -0
  131. package/dist/openapi/models/JobMediaClass.js +52 -0
  132. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  133. package/dist/openapi/models/JobOutputSource.js +2 -2
  134. package/dist/openapi/models/JobResponse.d.ts +2 -2
  135. package/dist/openapi/models/JobResponse.js +2 -2
  136. package/dist/openapi/models/JobStatus.d.ts +2 -2
  137. package/dist/openapi/models/JobStatus.js +2 -2
  138. package/dist/openapi/models/JobType.d.ts +2 -2
  139. package/dist/openapi/models/JobType.js +2 -2
  140. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  141. package/dist/openapi/models/LivenessResponse.js +2 -2
  142. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  143. package/dist/openapi/models/LoginUser200Response.js +2 -2
  144. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  145. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  146. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  147. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  148. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  149. package/dist/openapi/models/LoginUserRequest.js +2 -2
  150. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  151. package/dist/openapi/models/MetadataResponse.js +2 -2
  152. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  153. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  154. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  155. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  156. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  157. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  158. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  159. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  160. package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
  161. package/dist/openapi/models/MimeGroupSchema.js +5 -2
  162. package/dist/openapi/models/MultiInputSource.d.ts +41 -0
  163. package/dist/openapi/models/MultiInputSource.js +52 -0
  164. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  165. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  166. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  167. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  168. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  169. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  170. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  171. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  172. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  173. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  174. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  175. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  176. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  177. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  178. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  179. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  180. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  181. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  182. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  183. package/dist/openapi/models/MultipartPartListing.js +2 -2
  184. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  185. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  186. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  187. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  188. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  189. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  190. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  191. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  192. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  193. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  194. package/dist/openapi/models/OperationDefinition.d.ts +27 -2
  195. package/dist/openapi/models/OperationDefinition.js +11 -2
  196. package/dist/openapi/models/OperationDownload.d.ts +30 -2
  197. package/dist/openapi/models/OperationDownload.js +6 -2
  198. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  199. package/dist/openapi/models/OperationInputModel.js +3 -3
  200. package/dist/openapi/models/OperationResponse.d.ts +18 -2
  201. package/dist/openapi/models/OperationResponse.js +5 -2
  202. package/dist/openapi/models/OperationResult.d.ts +2 -2
  203. package/dist/openapi/models/OperationResult.js +2 -2
  204. package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
  205. package/dist/openapi/models/OperationResultMetadata.js +41 -0
  206. package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
  207. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  208. package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
  209. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  210. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  211. package/dist/openapi/models/OperationStatus.js +2 -2
  212. package/dist/openapi/models/OperationType.d.ts +7 -4
  213. package/dist/openapi/models/OperationType.js +8 -5
  214. package/dist/openapi/models/OperationsSchemaResponse.d.ts +32 -4
  215. package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  224. package/dist/openapi/models/OptionSchema.d.ts +2 -2
  225. package/dist/openapi/models/OptionSchema.js +2 -2
  226. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  227. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  228. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  229. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  230. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  231. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  232. package/dist/openapi/models/ProbePendingResponse.d.ts +13 -2
  233. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  234. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  235. package/dist/openapi/models/ProcessingClass.js +2 -2
  236. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  237. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  238. package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
  239. package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
  240. package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
  241. package/dist/openapi/models/ProcessingClassEntry.js +57 -0
  242. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +13 -2
  243. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  244. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  245. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  246. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  247. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  248. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  249. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  250. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  251. package/dist/openapi/models/ProcessingPlan.js +2 -2
  252. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  253. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  254. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  255. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  256. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  257. package/dist/openapi/models/ReadinessResponse.js +2 -2
  258. package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
  259. package/dist/openapi/models/RegisterUser422Response.js +47 -0
  260. package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
  261. package/dist/openapi/models/RegisterUserRequest.js +47 -0
  262. package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
  263. package/dist/openapi/models/ResetPasswordRequest.js +47 -0
  264. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  265. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  266. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  267. package/dist/openapi/models/RetryResponse.js +2 -2
  268. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  269. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  270. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  271. package/dist/openapi/models/SseCompletionBase.js +2 -2
  272. package/dist/openapi/models/SseEventType.d.ts +2 -2
  273. package/dist/openapi/models/SseEventType.js +2 -2
  274. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  275. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  276. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  277. package/dist/openapi/models/SseJobFailedData.js +2 -2
  278. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  279. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  280. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  281. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  282. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  283. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  284. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  285. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  286. package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
  287. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  288. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  289. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  290. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  291. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  292. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  293. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  294. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  295. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  296. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  297. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  298. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  299. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  300. package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
  301. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  302. package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
  303. package/dist/openapi/models/UpdateProfile200Response.js +54 -0
  304. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
  305. package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
  306. package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
  307. package/dist/openapi/models/UpdateProfile422Response.js +47 -0
  308. package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
  309. package/dist/openapi/models/UpdateProfileRequest.js +47 -0
  310. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  311. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  312. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
  313. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  314. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  315. package/dist/openapi/models/UploadFile403Response.js +2 -2
  316. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  317. package/dist/openapi/models/UploadFile422Response.js +2 -2
  318. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  319. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  320. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  321. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  322. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  323. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  324. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  325. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  326. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  327. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  328. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  329. package/dist/openapi/models/UploadResponse.js +2 -2
  330. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
  331. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  332. package/dist/openapi/models/UploadSource.d.ts +2 -2
  333. package/dist/openapi/models/UploadSource.js +2 -2
  334. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  335. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  336. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  337. package/dist/openapi/models/UploadThresholds.js +2 -2
  338. package/dist/openapi/models/UserTier.d.ts +2 -2
  339. package/dist/openapi/models/UserTier.js +2 -2
  340. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +2 -2
  341. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  342. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  343. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  344. package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
  345. package/dist/openapi/models/VerifyEmailRequest.js +43 -0
  346. package/dist/openapi/models/WarningType.d.ts +2 -2
  347. package/dist/openapi/models/WarningType.js +2 -2
  348. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  349. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  350. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  351. package/dist/openapi/models/WebhookPayload.js +2 -2
  352. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  353. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  354. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  355. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  356. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  357. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  358. package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
  359. package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
  360. package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
  361. package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
  362. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  363. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  364. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  365. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  366. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  367. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  368. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  369. package/dist/openapi/models/WorkflowEdge.js +2 -2
  370. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
  371. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  372. package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
  373. package/dist/openapi/models/WorkflowListResponse.js +50 -0
  374. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
  375. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
  376. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  377. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  378. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  379. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  380. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  381. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  382. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  383. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  384. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  385. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  386. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  387. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  388. package/dist/openapi/models/WorkflowSource.d.ts +7 -4
  389. package/dist/openapi/models/WorkflowSource.js +2 -2
  390. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  391. package/dist/openapi/models/WorkflowStatus.js +2 -2
  392. package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
  393. package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
  394. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  395. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  396. package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
  397. package/dist/openapi/models/WorkflowSummary.js +57 -0
  398. package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
  399. package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
  400. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  401. package/dist/openapi/models/WorkflowWarning.js +2 -2
  402. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  403. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  404. package/dist/openapi/models/index.d.ts +31 -1
  405. package/dist/openapi/models/index.js +31 -1
  406. package/dist/openapi/runtime.d.ts +2 -2
  407. package/dist/openapi/runtime.js +2 -2
  408. package/dist/operations/compress.d.ts +0 -9
  409. package/dist/operations/compress.js +0 -6
  410. package/dist/operations/compress.metadata.js +4 -12
  411. package/dist/operations/index.d.ts +3 -0
  412. package/dist/operations/index.js +3 -0
  413. package/dist/operations/merge.d.ts +4 -0
  414. package/dist/operations/merge.metadata.js +12 -0
  415. package/dist/operations/passthrough.metadata.d.ts +2 -0
  416. package/dist/operations/passthrough.metadata.js +6 -0
  417. package/dist/operations/render_variants.d.ts +24 -0
  418. package/dist/operations/render_variants.js +14 -0
  419. package/dist/operations/render_variants.metadata.d.ts +2 -0
  420. package/dist/operations/render_variants.metadata.js +18 -0
  421. package/dist/operations/split.d.ts +8 -1
  422. package/dist/operations/split.js +5 -0
  423. package/dist/operations/split.metadata.js +18 -5
  424. package/openapi/api.yaml +2333 -241
  425. package/operations/schemas/archive.yaml +1 -1
  426. package/operations/schemas/audio_overlay.yaml +29 -13
  427. package/operations/schemas/audio_to_video.yaml +6 -5
  428. package/operations/schemas/audio_watermark.yaml +18 -16
  429. package/operations/schemas/compress.yaml +34 -32
  430. package/operations/schemas/custom_luma.yaml +18 -3
  431. package/operations/schemas/image_watermark.yaml +22 -7
  432. package/operations/schemas/merge.yaml +88 -35
  433. package/operations/schemas/passthrough.yaml +49 -0
  434. package/operations/schemas/render_variants.yaml +117 -0
  435. package/operations/schemas/split.yaml +72 -18
  436. package/operations/schemas/text_watermark.yaml +6 -6
  437. package/operations/schemas/thumbnail.yaml +1 -1
  438. package/operations/schemas/video_text_watermark.yaml +2 -2
  439. package/operations/schemas/video_watermark.yaml +7 -4
  440. package/package.json +3 -1
  441. package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
  442. package/dist/openapi/models/LogoutUser200Response.js +0 -53
  443. /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
@@ -19,4 +19,4 @@ operation:
19
19
  type: enum
20
20
  values: [flat, by_job]
21
21
  default: flat
22
- description: "flat = all files in root, by_job = subfolder per source job"
22
+ description: "flat = all files together at the top level; by_job = a separate subfolder for each source"
@@ -20,9 +20,12 @@ operation:
20
20
  (`features.multi_overlay_stack`) but Lambda-side implementation
21
21
  deferred.
22
22
 
23
- The overlay can be uploaded directly, imported externally, or
24
- referenced from a vault connection per `WorkflowSource` (from
25
- I10). The base is whatever single-asset source the workflow
23
+ Each input is a `MultiInputSource` imported externally,
24
+ referenced from a vault connection, or an upstream `job_output`
25
+ (uploads are NOT referenced directly inside inputs[]). An uploaded
26
+ overlay or base enters via a `passthrough` source job referenced by
27
+ `{ type: job_output, from: <id> }` (per ticket 4som89Uh). The base
28
+ is whatever single-asset source the workflow
26
29
  upstream has — for `mime_groups.audio`, the base is the primary
27
30
  audio track; for `mime_groups.video`, the overlay is mixed into
28
31
  the video's audio track and the visual track passes through
@@ -36,6 +39,18 @@ operation:
36
39
  min_inputs: 2
37
40
  max_inputs: 2
38
41
 
42
+ # Per-role input-count constraints (ADR-0015). Both roles REQUIRED,
43
+ # exactly one each. Arithmetic-consistency rule (CI-checked):
44
+ # - sum(role.min) == min_inputs (1 + 1 = 2)
45
+ # - sum(role.max) == max_inputs (1 + 1 = 2)
46
+ per_role_cardinality:
47
+ base:
48
+ min: 1
49
+ max: 1
50
+ overlay:
51
+ min: 1
52
+ max: 1
53
+
39
54
  features:
40
55
  multi_overlay_stack:
41
56
  availability: planned
@@ -132,11 +147,12 @@ operation:
132
147
  default: mix
133
148
  description: |
134
149
  How the overlay combines with the base audio:
135
- - `mix`: simple sum (overlay + base; both audible).
136
- - `duck`: side-chain compress the base under the overlay
137
- (base attenuates while overlay plays — broadcast pattern).
150
+ - `mix`: both play together (overlay added on top; both audible).
151
+ - `duck`: the base audio dips while the overlay plays, then
152
+ returns the broadcast voice-over pattern.
138
153
  - `replace`: mute the base for the overlay's duration
139
154
  (overlay only; useful for hard-cut station IDs).
155
+ # `duck` is implemented as a side-chain compressor in the worker.
140
156
  per_value_availability:
141
157
  duck: { availability: planned }
142
158
 
@@ -147,8 +163,8 @@ operation:
147
163
  default: -20.0
148
164
  depends_on: { mode: duck }
149
165
  description: |
150
- Side-chain threshold (dB). Base audio is ducked when the
151
- overlay exceeds this level. Only applies when `mode: duck`.
166
+ Level (dB) the overlay must reach before the base audio
167
+ ducks. Only applies when `mode: duck`.
152
168
 
153
169
  duck_ratio:
154
170
  type: float
@@ -157,8 +173,8 @@ operation:
157
173
  default: 4.0
158
174
  depends_on: { mode: duck }
159
175
  description: |
160
- Side-chain compression ratio. Higher values produce more
161
- aggressive ducking. Only applies when `mode: duck`.
176
+ How strongly the base ducks — higher values dip it more
177
+ aggressively. Only applies when `mode: duck`.
162
178
 
163
179
  duck_attack_ms:
164
180
  type: integer
@@ -304,7 +320,7 @@ operation:
304
320
  values: [mix, duck, replace]
305
321
  default: mix
306
322
  description: |
307
- Same modes as the audio mime_group. `replace` mutes the
323
+ Same modes as for audio overlays. `replace` mutes the
308
324
  base video's audio for the overlay's duration.
309
325
  per_value_availability:
310
326
  duck: { availability: planned }
@@ -315,7 +331,7 @@ operation:
315
331
  max: 0.0
316
332
  default: -20.0
317
333
  depends_on: { mode: duck }
318
- description: "Side-chain threshold (dB). Only applies when `mode: duck`."
334
+ description: "Level (dB) the overlay must reach before the base audio ducks. Only applies when `mode: duck`."
319
335
 
320
336
  duck_ratio:
321
337
  type: float
@@ -323,7 +339,7 @@ operation:
323
339
  max: 20.0
324
340
  default: 4.0
325
341
  depends_on: { mode: duck }
326
- description: "Side-chain compression ratio. Only applies when `mode: duck`."
342
+ description: "How strongly the base ducks — higher values dip it more aggressively. Only applies when `mode: duck`."
327
343
 
328
344
  duck_attack_ms:
329
345
  type: integer
@@ -65,6 +65,7 @@ operation:
65
65
  - audio/flac
66
66
  - audio/ogg
67
67
  - audio/opus
68
+ - audio/mp4
68
69
  - audio/x-m4a
69
70
  options:
70
71
  output_resolution:
@@ -100,10 +101,10 @@ operation:
100
101
  min: 1
101
102
  max: 60
102
103
  default: 2
104
+ # Low framerate + the encoder's still-image tuning keeps size tiny.
103
105
  description: |
104
- Output video framerate. Default `2` fps combined with
105
- FFmpeg `-tune stillimage`, keeps the file size tiny for
106
- the common case of a single still overlay. Raise for
106
+ Output video framerate. Default `2` fps keeps the file size
107
+ tiny for the common case of a single still overlay. Raise for
107
108
  animated overlays (not supported in V1 — overlay must be
108
109
  a still image) or platform requirements (e.g. YouTube
109
110
  recommends 24+ fps; some platforms accept lower).
@@ -112,8 +113,8 @@ operation:
112
113
  values: [mp4]
113
114
  default: mp4
114
115
  description: |
115
- Output container format. V1 supports `mp4` only. Future
116
- additions (webm, mov) await Lambda follow-up.
116
+ Output container format. V1 supports `mp4` only; webm and mov
117
+ are planned additions.
117
118
 
118
119
  # NOTE: role-MIME constraint (base MUST be audio, overlay MUST be
119
120
  # image) is documented in prose only for V1. ADR-0015 records this
@@ -76,7 +76,7 @@ operation:
76
76
  Optional caller-supplied payload to embed (max 256
77
77
  characters). Use cases: ownership marker, distribution
78
78
  channel ID, license key. When omitted, the server
79
- generates a UUID-v7 `watermark_id` and embeds that
79
+ generates an identifier automatically and embeds that
80
80
  instead; the generated ID is returned on
81
81
  `OperationResult` so the caller can subsequently call
82
82
  the decode endpoint to verify.
@@ -85,18 +85,20 @@ operation:
85
85
  type: enum
86
86
  values: [auto, psychoacoustic, neural]
87
87
  default: auto
88
+ # `psychoacoustic` follows Resemble's open-source PerTh
89
+ # library as the path-to-prod reference; `neural` is a
90
+ # deep-generative embedding.
88
91
  description: |
89
92
  Watermarking algorithm:
90
93
  - `auto`: server selects the best available method for the
91
94
  input (currently maps to `psychoacoustic`; will widen as
92
95
  `neural` ships).
93
- - `psychoacoustic`: classical masking-curve embedding.
94
- Resemble's open-source PerTh library provides the path-
95
- to-prod reference implementation. Survives MP3/AAC at
96
- moderate bitrates and broadcast chains.
97
- - `neural`: ML-based embedding (deep generative). Higher
98
- survival under aggressive transcoding + analog-hole
99
- capture; longer encoding time + non-deterministic.
96
+ - `psychoacoustic`: hides the mark below what the ear can
97
+ hear, so it stays inaudible. Survives MP3/AAC at moderate
98
+ bitrates and broadcast chains.
99
+ - `neural`: machine-learning embedding. Higher survival
100
+ under aggressive re-encoding and microphone re-recording;
101
+ longer encoding time and non-deterministic.
100
102
  per_value_availability:
101
103
  # `auto` + `psychoacoustic` land first (PerTh path-to-prod);
102
104
  # `neural` lands later via Lambda follow-up.
@@ -114,9 +116,9 @@ operation:
114
116
  - `compression_resistant` (default): survives multiple
115
117
  MP3/AAC re-encodes at typical streaming bitrates.
116
118
  - `broadcast_grade`: survives broadcast compression
117
- chains, EQ, dynamic-range compression, and analog-hole
118
- capture (microphone re-recording). Higher embedding
119
- time + slightly larger perceptual footprint.
119
+ chains, EQ, dynamic-range compression, and microphone
120
+ re-recording. Higher embedding time + slightly larger
121
+ perceptual footprint.
120
122
 
121
123
  density:
122
124
  type: enum
@@ -166,16 +168,16 @@ operation:
166
168
  required: false
167
169
  description: |
168
170
  Optional caller-supplied payload to embed (max 256
169
- characters). When omitted, the server generates a UUID-v7
170
- `watermark_id` and embeds that instead.
171
+ characters). When omitted, the server generates an
172
+ identifier automatically and embeds that instead.
171
173
 
172
174
  method:
173
175
  type: enum
174
176
  values: [auto, psychoacoustic, neural]
175
177
  default: auto
176
178
  description: |
177
- Watermarking algorithm. Same semantics as the `audio`
178
- mime_group; embedded into the video's audio track only.
179
+ Watermarking algorithm. Same as for an audio input;
180
+ embedded into the video's audio track only.
179
181
  per_value_availability:
180
182
  neural: { availability: planned }
181
183
 
@@ -183,7 +185,7 @@ operation:
183
185
  type: enum
184
186
  values: [light, compression_resistant, broadcast_grade]
185
187
  default: compression_resistant
186
- description: "Survival profile. Same semantics as audio mime_group."
188
+ description: "Survival profile. Same as for an audio input."
187
189
 
188
190
  density:
189
191
  type: enum
@@ -29,22 +29,12 @@ operation:
29
29
  default: 80
30
30
  depends_on: { mode: lossy }
31
31
  description: "Compression quality (1 = smallest file, 100 = best quality). Only applies to lossy mode."
32
- width:
33
- type: integer
34
- min: 1
35
- max: 16384
36
- description: "Maximum output width in pixels"
37
- height:
38
- type: integer
39
- min: 1
40
- max: 16384
41
- description: "Maximum output height in pixels"
42
- fit:
43
- type: enum
44
- values: [max, crop, scale]
45
- default: max
46
- depends_on: { width: set, height: set, logic: or }
47
- description: "Resize mode. max = fit within bounds, crop = fill and trim, scale = force exact dimensions. Only applies when width or height is set."
32
+ # width / height / fit / auto_orient were REMOVED from compress.image
33
+ # per EsD1hs5u — the libcaesium image-compress worker recompresses
34
+ # ONLY and silently IGNORED them (accept-then-ignore). Image resize +
35
+ # EXIF auto-orient are served by the `thumbnail` op; format change by
36
+ # `convert`. The `video` mime_group KEEPS width/height/fit (ffmpeg
37
+ # honors them — do not remove there).
48
38
  metadata:
49
39
  type: enum
50
40
  values: [all, none, copyright, sensitive]
@@ -57,10 +47,6 @@ operation:
57
47
  values: [preserve, strip, srgb]
58
48
  default: preserve
59
49
  description: "ICC color profile handling. preserve = keep original, strip = remove, srgb = convert to sRGB"
60
- auto_orient:
61
- type: boolean
62
- default: true
63
- description: "Auto-rotate based on EXIF orientation"
64
50
  progressive:
65
51
  type: boolean
66
52
  default: true
@@ -105,17 +91,24 @@ operation:
105
91
  trim_start:
106
92
  type: float
107
93
  min: 0
108
- description: "Trim from beginning in seconds"
94
+ availability: planned
95
+ description: >
96
+ Trim from beginning in seconds. Gated `planned` (qZI5EK9j):
97
+ no compression worker implements per-clip trim yet, so the
98
+ server returns `feature_not_available` rather than accepting
99
+ and silently ignoring it. Flips to `stable` when a worker
100
+ lands; to trim today, chain a `split` op.
109
101
  trim_end:
110
102
  type: float
111
103
  min: 0
112
- description: "Trim from end in seconds"
104
+ availability: planned
105
+ description: "Trim from end in seconds. Gated `planned` (qZI5EK9j) — see `trim_start`."
113
106
 
114
107
  video:
115
108
  mimes:
116
109
  - video/mp4
117
110
  - video/webm
118
- - video/ogg
111
+ - video/quicktime
119
112
  processing_class:
120
113
  # F8 long-form video tier (per ticket I15-CONS, Trello YZpBKzOM).
121
114
  # Public contract uses logical names only — backend selection is
@@ -149,7 +142,8 @@ operation:
149
142
  type: enum
150
143
  values: [crf, target_size]
151
144
  default: crf
152
- description: "crf = constant quality (variable file size), target_size = constrained file size (two-pass)"
145
+ # target_size is implemented as a two-pass encode in the worker.
146
+ description: "crf = constant quality (variable file size), target_size = constrained file size"
153
147
  crf:
154
148
  type: integer
155
149
  min: 0
@@ -161,7 +155,8 @@ operation:
161
155
  type: integer
162
156
  min: 1048576
163
157
  depends_on: { encoding_mode: target_size }
164
- description: "Target output file size in bytes (min 1MB). Two-pass encoding to meet this target."
158
+ # Met via a two-pass encode in the worker.
159
+ description: "Target output file size in bytes (min 1MB)."
165
160
  preset:
166
161
  type: enum
167
162
  values: [ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow]
@@ -169,14 +164,14 @@ operation:
169
164
  description: "Encoding speed vs compression ratio trade-off"
170
165
  width:
171
166
  type: integer
172
- min: 1
167
+ min: 2
173
168
  max: 7680
174
- description: "Output width in pixels"
169
+ description: "Output width in pixels. Must be an EVEN integer >= 2 (yuv420p chroma-subsampling); odd values are rejected as invalid_options by the encoder."
175
170
  height:
176
171
  type: integer
177
- min: 1
172
+ min: 2
178
173
  max: 4320
179
- description: "Output height in pixels"
174
+ description: "Output height in pixels. Must be an EVEN integer >= 2 (yuv420p chroma-subsampling); odd values are rejected as invalid_options by the encoder."
180
175
  fit:
181
176
  type: enum
182
177
  values: [max, crop, scale, pad]
@@ -191,7 +186,7 @@ operation:
191
186
  faststart:
192
187
  type: boolean
193
188
  default: true
194
- description: "Move MP4 moov atom to start for progressive web playback (MP4 only)"
189
+ description: "Move the MP4/MOV moov atom to start for progressive web playback. MP4/MOV only; an explicit faststart on a WebM output is rejected as invalid_options (no moov atom)."
195
190
  audio_codec:
196
191
  type: enum
197
192
  values: [aac, opus, vorbis, copy]
@@ -206,11 +201,18 @@ operation:
206
201
  trim_start:
207
202
  type: float
208
203
  min: 0
209
- description: "Trim from beginning in seconds"
204
+ availability: planned
205
+ description: >
206
+ Trim from beginning in seconds. Gated `planned` (qZI5EK9j):
207
+ no compression worker implements per-clip trim yet, so the
208
+ server returns `feature_not_available` rather than accepting
209
+ and silently ignoring it. Flips to `stable` when a worker
210
+ lands; to trim today, chain a `split` op.
210
211
  trim_end:
211
212
  type: float
212
213
  min: 0
213
- description: "Trim from end in seconds"
214
+ availability: planned
215
+ description: "Trim from end in seconds. Gated `planned` (qZI5EK9j) — see `trim_start`."
214
216
 
215
217
  document_pdf:
216
218
  mimes:
@@ -20,9 +20,12 @@ operation:
20
20
  video being transitioned) + exactly one input with
21
21
  `role: transition_mask` (the luma matte — a video whose pixel
22
22
  luminance drives the transition reveal — bright = revealed,
23
- dark = held). The mask can be uploaded directly, imported
24
- externally, or referenced from a vault connection per
25
- `WorkflowSource` (from I10).
23
+ dark = held). Each input is a `MultiInputSource` imported
24
+ externally, referenced from a vault connection, or an upstream
25
+ `job_output` (uploads are NOT referenced directly inside inputs[]).
26
+ An uploaded base or mask enters via a `passthrough` source job
27
+ referenced by `{ type: job_output, from: <id> }` (per ticket
28
+ 4som89Uh).
26
29
 
27
30
  Per ADR-0001 §1.3 (Tension 1 — `planned` operations return
28
31
  `feature_not_available` HTTP 422 until Lambda support ships).
@@ -34,6 +37,18 @@ operation:
34
37
  min_inputs: 2
35
38
  max_inputs: 2
36
39
 
40
+ # Per-role input-count constraints (ADR-0015). Both roles REQUIRED,
41
+ # exactly one each. Arithmetic-consistency rule (CI-checked):
42
+ # - sum(role.min) == min_inputs (1 + 1 = 2)
43
+ # - sum(role.max) == max_inputs (1 + 1 = 2)
44
+ per_role_cardinality:
45
+ base:
46
+ min: 1
47
+ max: 1
48
+ transition_mask:
49
+ min: 1
50
+ max: 1
51
+
37
52
  mime_groups:
38
53
  video:
39
54
  mimes:
@@ -3,11 +3,14 @@ schema_version: "2.0.0"
3
3
  operation:
4
4
  type: image_watermark
5
5
  description: |
6
- Apply an image overlay (file or external source) onto a base media
6
+ Apply an image overlay onto a base media
7
7
  asset. Multi-input: exactly one input with role: base (the source
8
- asset) + exactly one with role: overlay (the watermark). The overlay
9
- can be an upload, an external_import handle, or a vault connection
10
- per WorkflowSource (ticket I10).
8
+ asset) + exactly one with role: overlay (the watermark). Each input
9
+ is a `MultiInputSource` an external_import handle, a vault
10
+ connection, or an upstream `job_output` (uploads are NOT referenced
11
+ directly inside inputs[]). To use an uploaded base or overlay, feed
12
+ it through a `passthrough` source job and reference that job via
13
+ `{ type: job_output, from: <id> }` (per ticket 4som89Uh).
11
14
 
12
15
  Stable today for static-image bases (image/jpeg, image/png,
13
16
  image/webp); animated GIF bases are advertised as `planned` via
@@ -34,6 +37,18 @@ operation:
34
37
  min_inputs: 2
35
38
  max_inputs: 2
36
39
 
40
+ # Per-role input-count constraints (ADR-0015). Both roles REQUIRED,
41
+ # exactly one each. Arithmetic-consistency rule (CI-checked):
42
+ # - sum(role.min) == min_inputs (1 + 1 = 2)
43
+ # - sum(role.max) == max_inputs (1 + 1 = 2)
44
+ per_role_cardinality:
45
+ base:
46
+ min: 1
47
+ max: 1
48
+ overlay:
49
+ min: 1
50
+ max: 1
51
+
37
52
  features:
38
53
  multi_overlay_stack:
39
54
  availability: planned
@@ -66,9 +81,9 @@ operation:
66
81
  - bottom_right
67
82
  default: bottom_right
68
83
  description: |
69
- 9-grid anchor position on the base image. Mirrors
70
- Mux/Cloudinary positioning. Combined with margin_x and
71
- margin_y for fine-grained offset from the anchor point.
84
+ 9-grid anchor position on the base image. Combined with
85
+ margin_x and margin_y for fine-grained offset from the
86
+ anchor point.
72
87
 
73
88
  margin_x:
74
89
  type: string
@@ -75,10 +75,8 @@ operation:
75
75
  depends_on: { output_type: video }
76
76
  description: |
77
77
  Transition effect between images in the slideshow output.
78
- Catalog from FFmpeg 7.1.1 xfade filter (per ADR-0007). See
79
- per_value_availability for per-value rollout state. The
80
- `none` value is a sentinel ("no transition / hard cut"),
81
- not an FFmpeg preset.
78
+ `none` means a hard cut with no transition. Some effects
79
+ are still rolling out — check their availability.
82
80
  per_value_availability:
83
81
  # Untagged values default to stable per ADR-0001 §1.4.
84
82
  smoothleft: { availability: beta }
@@ -139,12 +137,27 @@ operation:
139
137
  mimes:
140
138
  - video/mp4
141
139
  - video/webm
140
+ - video/quicktime
142
141
  processing_class:
143
142
  # F8 long-form video tier (per ticket I15-CONS). Merge uses
144
- # alias class names because its differentiator is concat-
145
- # compatibility (I16-CONS re_encode_mode) rather than just
146
- # size/duration a small merge can still need long_form
147
- # when inputs require re-encoding.
143
+ # alias class names (short_form_concat / long_form_re_encode),
144
+ # but ROUTING (which class) is DURATION/SIZE-driven at
145
+ # create-plan, NOT concat-compatibility: the API resolver
146
+ # assigns long_form when summed input duration exceeds the
147
+ # short_form cap (PT5M) OR summed size exceeds 1 GiB; it has no
148
+ # per-input codec/pixfmt at create-plan to decide re-encode-need
149
+ # (MAVh1blw; api d363a4ab). re_encode-vs-stream-copy is a WORKER
150
+ # SUB-MODE WITHIN EACH class, not a long-form differentiator:
151
+ # short-form (filter_complex) re-encodes heterogeneous inputs +
152
+ # crossfade fine; long_form_re_encode (FFmpeg concat-demuxer)
153
+ # REQUIRES UNIFORM inputs and re-encodes them (e.g. uniform VP9 ->
154
+ # mp4). So long_form_re_encode = LONG-duration/size + uniform-but-
155
+ # not-stream-copyable. HETEROGENEOUS long merges (per-input codec
156
+ # mismatch at long duration) are the deferred Phase-3 gap (NOT
157
+ # built; concat-demuxer uniformity-rejects them). The earlier
158
+ # "a small merge can need long_form when inputs require
159
+ # re-encoding" claim was an over-claim describing a future
160
+ # two-trigger state — corrected here.
148
161
  short_form_concat:
149
162
  availability: stable
150
163
  constraints:
@@ -183,9 +196,8 @@ operation:
183
196
  custom, wipetl, wipetr, wipebl]
184
197
  default: none
185
198
  description: |
186
- Default transition between clips. Catalog from FFmpeg 7.1.1
187
- xfade filter (per ADR-0007). See per_value_availability for
188
- per-value rollout state.
199
+ Default transition between clips. Some effects are still
200
+ rolling out check their availability.
189
201
  per_value_availability:
190
202
  smoothleft: { availability: beta }
191
203
  smoothright: { availability: beta }
@@ -291,33 +303,37 @@ operation:
291
303
  depends_on: { re_encode_mode: [auto, always] }
292
304
  per_value_depends_on:
293
305
  target_size: { codec: [h264] }
306
+ # target_size is currently codec=h264 only — h265 / vp9 / av1
307
+ # each require a different encoder invocation and are tracked
308
+ # as separate per-codec Lambda follow-ups. The
309
+ # per_value_depends_on block above gates encoding_mode=target_size
310
+ # on codec ∈ [h264], so a request pairing target_size with
311
+ # {h265, vp9, av1} is rejected as invalid_options whether or not
312
+ # target_size_bytes is supplied — closing the gap left by the
313
+ # previous option-level depends_on (which only triggered when
314
+ # target_size_bytes was present). Per ticket bsV3FWM5.
294
315
  description: |
295
- CRF (quality-targeted) vs target_size (two-pass to fixed file size).
296
- `target_size` is currently `codec=h264` only libx265 / libvpx-vp9 / libsvtav1 each
297
- require a different two-pass invocation and are tracked as separate per-codec
298
- Lambda follow-ups. The `per_value_depends_on` block above gates
299
- `encoding_mode=target_size` itself on `codec ∈ [h264]`, so a request with
300
- `encoding_mode=target_size + codec ∈ {h265, vp9, av1}` is rejected as
301
- `invalid_options` regardless of whether `target_size_bytes` is supplied —
302
- closing the gap left by the previous option-level `depends_on` (which only
303
- triggered when `target_size_bytes` was present in the payload). Per ticket
304
- [`bsV3FWM5`](https://trello.com/c/bsV3FWM5).
316
+ CRF aims for a quality level and lets the file size vary;
317
+ target_size aims for a fixed output file size. `target_size`
318
+ currently works with `codec=h264` only a request pairing it
319
+ with another codec is rejected as `invalid_options`.
305
320
 
306
321
  target_size_bytes:
307
322
  type: integer
308
323
  min: 1048576
309
324
  depends_on: { re_encode_mode: [auto, always], encoding_mode: target_size }
325
+ # h264-only — the codec gate lives on
326
+ # encoding_mode.per_value_depends_on.target_size.codec (per ticket
327
+ # bsV3FWM5); this option's own depends_on no longer duplicates it.
328
+ # The practical floor below is enforced by the h264 encoder.
310
329
  description: |
311
- Two-pass target file size in bytes (minimum 1 MiB). Required when
312
- `encoding_mode=target_size`. h264-only — the codec gate now lives on
313
- `encoding_mode.per_value_depends_on.target_size.codec` (per ticket
314
- [`bsV3FWM5`](https://trello.com/c/bsV3FWM5)); this option's own
315
- `depends_on` no longer duplicates it.
330
+ Target file size in bytes (minimum 1 MiB). Required when
331
+ `encoding_mode=target_size`, which is h264-only.
316
332
 
317
- Practical floor: a ~100 kbps post-AAC video bitrate (i.e. `target_size_bytes`
318
- corresponding to less than ~100 kbps of video after subtracting the 160 kbps
319
- AAC audio track over the merged duration) is silently floored by libx264 and
320
- the resulting file will not honour the requested `target_size_bytes`.
333
+ Practical floor: if the target works out to less than
334
+ ~100 kbps of video (after subtracting the ~160 kbps AAC audio
335
+ track over the merged duration), the encoder floors it and the
336
+ resulting file will not honour the requested `target_size_bytes`.
321
337
  Publishers targeting very small outputs should size accordingly.
322
338
 
323
339
  per_input_options:
@@ -373,6 +389,24 @@ operation:
373
389
  max: 5.0
374
390
  depends_on: { transition: crossfade }
375
391
  description: "Override crossfade duration for this join point"
392
+ trim_start:
393
+ type: float
394
+ min: 0
395
+ description: |
396
+ Trim from beginning in seconds (per-input). Applied to this
397
+ input BEFORE any transition/crossfade. Matches the
398
+ `compress` trim semantic. No `max` — the upper bound is the
399
+ input's own duration, enforced by the worker, not statically
400
+ bounded here.
401
+ trim_end:
402
+ type: float
403
+ min: 0
404
+ description: |
405
+ Trim from end in seconds (per-input). Applied to this input
406
+ BEFORE any transition/crossfade. Matches the `compress` trim
407
+ semantic. No `max` — the upper bound is the input's own
408
+ duration, enforced by the worker, not statically bounded
409
+ here.
376
410
 
377
411
  audio:
378
412
  # Audio transition catalog is intentionally separate from the
@@ -404,12 +438,13 @@ operation:
404
438
  # xfade catalog on merge.image / merge.video.
405
439
  values: [none, crossfade]
406
440
  default: none
441
+ # Audio-only catalog (acrossfade-backed); see FORMAT.md §"Audio
442
+ # vs visual transition catalogs (merge)" for the additions
443
+ # policy. Future values are added with per_value_availability
444
+ # per ADR-0001 §1.4.
407
445
  description: |
408
- Default transition between clips. Audio-only catalog
409
- (acrossfade-backed); see FORMAT.md §"Audio vs visual
410
- transition catalogs (merge)" for additions policy. Future
411
- values (e.g. `fade_curve` variants) will be added with
412
- `per_value_availability` per ADR-0001 §1.4.
446
+ Transition between audio clips. `none` joins them with a
447
+ hard cut; `crossfade` blends one into the next.
413
448
  crossfade_duration:
414
449
  type: float
415
450
  min: 0
@@ -448,3 +483,21 @@ operation:
448
483
  min: 0
449
484
  max: 10.0
450
485
  description: "Override gap duration for this join point"
486
+ trim_start:
487
+ type: float
488
+ min: 0
489
+ description: |
490
+ Trim from beginning in seconds (per-input). Applied to this
491
+ input BEFORE any transition/crossfade. Matches the
492
+ `compress` trim semantic. No `max` — the upper bound is the
493
+ input's own duration, enforced by the worker, not statically
494
+ bounded here.
495
+ trim_end:
496
+ type: float
497
+ min: 0
498
+ description: |
499
+ Trim from end in seconds (per-input). Applied to this input
500
+ BEFORE any transition/crossfade. Matches the `compress` trim
501
+ semantic. No `max` — the upper bound is the input's own
502
+ duration, enforced by the worker, not statically bounded
503
+ here.