@giveitsmaller/contracts 0.8.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 (453) hide show
  1. package/asyncapi/events.yaml +806 -173
  2. package/availability/availability.json +355 -98
  3. package/dist/asyncapi/Failure.d.ts +2 -0
  4. package/dist/asyncapi/LongFormJobMessage.d.ts +4 -3
  5. package/dist/asyncapi/LongFormOperationType.d.ts +5 -0
  6. package/dist/asyncapi/LongFormOperationType.js +6 -0
  7. package/dist/asyncapi/LongFormProcessingClass.d.ts +4 -0
  8. package/dist/asyncapi/LongFormProcessingClass.js +5 -0
  9. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  10. package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
  11. package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
  12. package/dist/asyncapi/OperationResultMetadata.js +1 -0
  13. package/dist/asyncapi/OperationType.d.ts +2 -1
  14. package/dist/asyncapi/OperationType.js +1 -0
  15. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  16. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  17. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  18. package/dist/asyncapi/SourceEntry.d.ts +4 -0
  19. package/dist/asyncapi/Unindexed.d.ts +1 -0
  20. package/dist/asyncapi/index.d.ts +4 -2
  21. package/dist/asyncapi/index.js +2 -1
  22. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  23. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  24. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  25. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  26. package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
  27. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  28. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  29. package/dist/openapi/models/AuthErrorType.js +2 -2
  30. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
  31. package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
  32. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  33. package/dist/openapi/models/AvailabilityValue.js +2 -2
  34. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
  35. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  36. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  37. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  38. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  39. package/dist/openapi/models/CallbackEventType.js +2 -2
  40. package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
  41. package/dist/openapi/models/ChangePasswordRequest.js +47 -0
  42. package/dist/openapi/models/CompositionPlan.d.ts +72 -0
  43. package/dist/openapi/models/CompositionPlan.js +53 -0
  44. package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
  45. package/dist/openapi/models/CompositionPlanJob.js +48 -0
  46. package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
  47. package/dist/openapi/models/CompositionPlanOperation.js +62 -0
  48. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
  49. package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
  50. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
  51. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
  52. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
  53. package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
  54. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  55. package/dist/openapi/models/ConnectionSource.js +2 -2
  56. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  57. package/dist/openapi/models/ContactRequest.js +2 -2
  58. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  59. package/dist/openapi/models/ContactSubject.js +2 -2
  60. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  61. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  62. package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
  63. package/dist/openapi/models/CreateApiKey201Response.js +54 -0
  64. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
  65. package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
  66. package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
  67. package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
  68. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  69. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  70. package/dist/openapi/models/CreateExternalImport422Response.d.ts +7 -3
  71. package/dist/openapi/models/CreateExternalImport422Response.js +18 -22
  72. package/dist/openapi/models/CreateWorkflow422Response.d.ts +11 -3
  73. package/dist/openapi/models/CreateWorkflow422Response.js +28 -36
  74. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  75. package/dist/openapi/models/CreditTransaction.js +2 -2
  76. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  77. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  78. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  79. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  80. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  81. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  82. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  83. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  84. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  85. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  86. package/dist/openapi/models/Delivery.d.ts +2 -2
  87. package/dist/openapi/models/Delivery.js +2 -2
  88. package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
  89. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  90. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  91. package/dist/openapi/models/DeliveryPlan.js +2 -2
  92. package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
  93. package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
  94. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  95. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  96. package/dist/openapi/models/DeliverySelection.d.ts +6 -4
  97. package/dist/openapi/models/DeliverySelection.js +2 -2
  98. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
  99. package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
  100. package/dist/openapi/models/EndpointProjection.d.ts +12 -3
  101. package/dist/openapi/models/EndpointProjection.js +2 -2
  102. package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
  103. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  104. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  105. package/dist/openapi/models/EstimateQuality.js +2 -2
  106. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  107. package/dist/openapi/models/EstimateRange.js +2 -2
  108. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  109. package/dist/openapi/models/ExternalDestination.js +2 -2
  110. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  111. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  112. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  113. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  114. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  115. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  116. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  117. package/dist/openapi/models/ExternalImportToken.js +2 -2
  118. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  119. package/dist/openapi/models/ExternalSource.js +2 -2
  120. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +19 -9
  121. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  122. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
  123. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  124. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  125. package/dist/openapi/models/FeatureViolation.js +2 -2
  126. package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
  127. package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
  128. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
  129. package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
  130. package/dist/openapi/models/JobDefinition.d.ts +27 -8
  131. package/dist/openapi/models/JobDefinition.js +2 -2
  132. package/dist/openapi/models/JobDownload.d.ts +2 -2
  133. package/dist/openapi/models/JobDownload.js +2 -2
  134. package/dist/openapi/models/JobInputV2.d.ts +13 -9
  135. package/dist/openapi/models/JobInputV2.js +5 -5
  136. package/dist/openapi/models/JobMediaClass.d.ts +34 -0
  137. package/dist/openapi/models/JobMediaClass.js +52 -0
  138. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  139. package/dist/openapi/models/JobOutputSource.js +2 -2
  140. package/dist/openapi/models/JobResponse.d.ts +24 -2
  141. package/dist/openapi/models/JobResponse.js +5 -2
  142. package/dist/openapi/models/JobStatus.d.ts +2 -2
  143. package/dist/openapi/models/JobStatus.js +2 -2
  144. package/dist/openapi/models/JobType.d.ts +2 -2
  145. package/dist/openapi/models/JobType.js +2 -2
  146. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  147. package/dist/openapi/models/LivenessResponse.js +2 -2
  148. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  149. package/dist/openapi/models/LoginUser200Response.js +2 -2
  150. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  151. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  152. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  153. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  154. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  155. package/dist/openapi/models/LoginUserRequest.js +2 -2
  156. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  157. package/dist/openapi/models/MetadataResponse.js +2 -2
  158. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  159. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  160. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  161. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  162. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  163. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  164. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  165. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  166. package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
  167. package/dist/openapi/models/MimeGroupSchema.js +5 -2
  168. package/dist/openapi/models/MultiInputSource.d.ts +41 -0
  169. package/dist/openapi/models/MultiInputSource.js +52 -0
  170. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  171. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  172. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  173. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  174. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  175. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  176. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  177. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  178. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  179. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  180. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  181. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  182. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  183. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  184. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  185. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  186. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  187. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  188. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  189. package/dist/openapi/models/MultipartPartListing.js +2 -2
  190. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  191. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  192. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  193. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  194. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  195. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  196. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  197. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  198. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  199. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  200. package/dist/openapi/models/OperationDefinition.d.ts +27 -2
  201. package/dist/openapi/models/OperationDefinition.js +11 -2
  202. package/dist/openapi/models/OperationDownload.d.ts +30 -2
  203. package/dist/openapi/models/OperationDownload.js +6 -2
  204. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  205. package/dist/openapi/models/OperationInputModel.js +3 -3
  206. package/dist/openapi/models/OperationResponse.d.ts +18 -2
  207. package/dist/openapi/models/OperationResponse.js +5 -2
  208. package/dist/openapi/models/OperationResult.d.ts +2 -2
  209. package/dist/openapi/models/OperationResult.js +2 -2
  210. package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
  211. package/dist/openapi/models/OperationResultMetadata.js +41 -0
  212. package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
  213. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  214. package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
  215. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  216. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  217. package/dist/openapi/models/OperationStatus.js +2 -2
  218. package/dist/openapi/models/OperationType.d.ts +19 -14
  219. package/dist/openapi/models/OperationType.js +20 -15
  220. package/dist/openapi/models/OperationsSchemaResponse.d.ts +39 -4
  221. package/dist/openapi/models/OperationsSchemaResponse.js +8 -2
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +55 -0
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +42 -0
  224. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +40 -0
  225. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +45 -0
  226. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +45 -0
  227. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +43 -0
  228. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +33 -0
  229. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +42 -0
  230. package/dist/openapi/models/OptionSchema.d.ts +2 -2
  231. package/dist/openapi/models/OptionSchema.js +2 -2
  232. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  233. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  234. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  235. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  236. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  237. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  238. package/dist/openapi/models/ProbePendingResponse.d.ts +20 -8
  239. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  240. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  241. package/dist/openapi/models/ProcessingClass.js +2 -2
  242. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  243. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  244. package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
  245. package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
  246. package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
  247. package/dist/openapi/models/ProcessingClassEntry.js +57 -0
  248. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +19 -6
  249. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  250. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  251. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  252. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  253. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  254. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  255. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  256. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  257. package/dist/openapi/models/ProcessingPlan.js +2 -2
  258. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  259. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  260. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  261. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  262. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  263. package/dist/openapi/models/ReadinessResponse.js +2 -2
  264. package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
  265. package/dist/openapi/models/RegisterUser422Response.js +47 -0
  266. package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
  267. package/dist/openapi/models/RegisterUserRequest.js +47 -0
  268. package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
  269. package/dist/openapi/models/ResetPasswordRequest.js +47 -0
  270. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  271. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  272. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  273. package/dist/openapi/models/RetryResponse.js +2 -2
  274. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  275. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  276. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  277. package/dist/openapi/models/SseCompletionBase.js +2 -2
  278. package/dist/openapi/models/SseEventType.d.ts +2 -2
  279. package/dist/openapi/models/SseEventType.js +2 -2
  280. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  281. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  282. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  283. package/dist/openapi/models/SseJobFailedData.js +2 -2
  284. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  285. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  286. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  287. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  288. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  289. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  290. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  291. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  292. package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
  293. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  294. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  295. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  296. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  297. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  298. package/dist/openapi/models/SseOperationProgressData.d.ts +4 -3
  299. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  300. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  301. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  302. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  303. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  304. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  305. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  306. package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
  307. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  308. package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
  309. package/dist/openapi/models/UpdateProfile200Response.js +54 -0
  310. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
  311. package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
  312. package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
  313. package/dist/openapi/models/UpdateProfile422Response.js +47 -0
  314. package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
  315. package/dist/openapi/models/UpdateProfileRequest.js +47 -0
  316. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  317. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  318. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
  319. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  320. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  321. package/dist/openapi/models/UploadFile403Response.js +2 -2
  322. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  323. package/dist/openapi/models/UploadFile422Response.js +2 -2
  324. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  325. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  326. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  327. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  328. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  329. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  330. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  331. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  332. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  333. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  334. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  335. package/dist/openapi/models/UploadResponse.js +2 -2
  336. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
  337. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  338. package/dist/openapi/models/UploadSource.d.ts +2 -2
  339. package/dist/openapi/models/UploadSource.js +2 -2
  340. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  341. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  342. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  343. package/dist/openapi/models/UploadThresholds.js +2 -2
  344. package/dist/openapi/models/UserTier.d.ts +2 -2
  345. package/dist/openapi/models/UserTier.js +2 -2
  346. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +32 -5
  347. package/dist/openapi/models/ValidationErrorEnvelope.js +12 -2
  348. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  349. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  350. package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
  351. package/dist/openapi/models/VerifyEmailRequest.js +43 -0
  352. package/dist/openapi/models/WarningType.d.ts +2 -2
  353. package/dist/openapi/models/WarningType.js +2 -2
  354. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  355. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  356. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  357. package/dist/openapi/models/WebhookPayload.js +2 -2
  358. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  359. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  360. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  361. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  362. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  363. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  364. package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
  365. package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
  366. package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
  367. package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
  368. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  369. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  370. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  371. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  372. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  373. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  374. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  375. package/dist/openapi/models/WorkflowEdge.js +2 -2
  376. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
  377. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  378. package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
  379. package/dist/openapi/models/WorkflowListResponse.js +50 -0
  380. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
  381. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
  382. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  383. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  384. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  385. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  386. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  387. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  388. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  389. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  390. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  391. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  392. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  393. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  394. package/dist/openapi/models/WorkflowSource.d.ts +7 -4
  395. package/dist/openapi/models/WorkflowSource.js +2 -2
  396. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  397. package/dist/openapi/models/WorkflowStatus.js +2 -2
  398. package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
  399. package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
  400. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  401. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  402. package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
  403. package/dist/openapi/models/WorkflowSummary.js +57 -0
  404. package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
  405. package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
  406. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  407. package/dist/openapi/models/WorkflowWarning.js +2 -2
  408. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  409. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  410. package/dist/openapi/models/index.d.ts +35 -1
  411. package/dist/openapi/models/index.js +35 -1
  412. package/dist/openapi/runtime.d.ts +2 -2
  413. package/dist/openapi/runtime.js +2 -2
  414. package/dist/operations/audio_to_video.metadata.js +1 -1
  415. package/dist/operations/compress.d.ts +0 -9
  416. package/dist/operations/compress.js +0 -6
  417. package/dist/operations/compress.metadata.js +4 -12
  418. package/dist/operations/index.d.ts +3 -0
  419. package/dist/operations/index.js +3 -0
  420. package/dist/operations/merge.d.ts +4 -0
  421. package/dist/operations/merge.metadata.js +12 -3
  422. package/dist/operations/passthrough.metadata.d.ts +2 -0
  423. package/dist/operations/passthrough.metadata.js +6 -0
  424. package/dist/operations/render_variants.d.ts +24 -0
  425. package/dist/operations/render_variants.js +14 -0
  426. package/dist/operations/render_variants.metadata.d.ts +2 -0
  427. package/dist/operations/render_variants.metadata.js +18 -0
  428. package/dist/operations/split.d.ts +8 -1
  429. package/dist/operations/split.js +5 -0
  430. package/dist/operations/split.metadata.js +22 -5
  431. package/dist/operations/video_watermark.metadata.js +2 -2
  432. package/openapi/api.yaml +2566 -288
  433. package/operations/schemas/archive.yaml +1 -1
  434. package/operations/schemas/audio_overlay.yaml +29 -13
  435. package/operations/schemas/audio_to_video.yaml +12 -9
  436. package/operations/schemas/audio_watermark.yaml +18 -16
  437. package/operations/schemas/compress.yaml +34 -32
  438. package/operations/schemas/custom_luma.yaml +21 -7
  439. package/operations/schemas/image_watermark.yaml +22 -7
  440. package/operations/schemas/merge.yaml +94 -41
  441. package/operations/schemas/passthrough.yaml +49 -0
  442. package/operations/schemas/render_variants.yaml +117 -0
  443. package/operations/schemas/split.yaml +76 -15
  444. package/operations/schemas/text_watermark.yaml +6 -6
  445. package/operations/schemas/thumbnail.yaml +1 -1
  446. package/operations/schemas/video_text_watermark.yaml +2 -2
  447. package/operations/schemas/video_watermark.yaml +20 -9
  448. package/package.json +3 -1
  449. package/dist/asyncapi/AnonymousSchema_253.d.ts +0 -5
  450. package/dist/asyncapi/AnonymousSchema_253.js +0 -6
  451. package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
  452. package/dist/openapi/models/LogoutUser200Response.js +0 -53
  453. /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
@@ -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 }
@@ -106,11 +104,11 @@ operation:
106
104
  # `custom` is `planned` indefinitely as an advisory — for
107
105
  # caller-uploaded luma-matte transitions, use the dedicated
108
106
  # `custom_luma` operation (multi-input with role: base +
109
- # transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
107
+ # transition_mask). FFmpeg's
110
108
  # xfade=custom is an expression-mode parameter, not the
111
109
  # shape callers want; the dedicated operation is the
112
110
  # supported path.
113
- custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
111
+ custom: { availability: planned }
114
112
  wipetl: { availability: planned, eta: "2026-Q3" }
115
113
  wipetr: { availability: planned, eta: "2026-Q3" }
116
114
  wipebl: { availability: planned, eta: "2026-Q3" }
@@ -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 }
@@ -212,11 +224,11 @@ operation:
212
224
  # `custom` is `planned` indefinitely as an advisory — for
213
225
  # caller-uploaded luma-matte transitions, use the dedicated
214
226
  # `custom_luma` operation (multi-input with role: base +
215
- # transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
227
+ # transition_mask). FFmpeg's
216
228
  # xfade=custom is an expression-mode parameter, not the
217
229
  # shape callers want; the dedicated operation is the
218
230
  # supported path.
219
- custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
231
+ custom: { availability: planned }
220
232
  wipetl: { availability: planned, eta: "2026-Q3" }
221
233
  wipetr: { availability: planned, eta: "2026-Q3" }
222
234
  wipebl: { availability: planned, eta: "2026-Q3" }
@@ -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:
@@ -359,11 +375,11 @@ operation:
359
375
  # `custom` is `planned` indefinitely as an advisory — for
360
376
  # caller-uploaded luma-matte transitions, use the dedicated
361
377
  # `custom_luma` operation (multi-input with role: base +
362
- # transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
378
+ # transition_mask). FFmpeg's
363
379
  # xfade=custom is an expression-mode parameter, not the
364
380
  # shape callers want; the dedicated operation is the
365
381
  # supported path.
366
- custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
382
+ custom: { availability: planned }
367
383
  wipetl: { availability: planned, eta: "2026-Q3" }
368
384
  wipetr: { availability: planned, eta: "2026-Q3" }
369
385
  wipebl: { availability: planned, eta: "2026-Q3" }
@@ -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.
@@ -0,0 +1,49 @@
1
+ schema_version: "1.0.0"
2
+
3
+ operation:
4
+ type: passthrough
5
+ availability: beta
6
+ description: |
7
+ Inert lossless source operation. A single-input source job whose
8
+ SOLE operation is `passthrough` emits its source bytes UNCHANGED —
9
+ no compression, no transformation, no Lambda dispatch. The API
10
+ self-completes the job at workflow-create/publish time: the job's
11
+ terminal output IS the upload's `{bucket, key}` unchanged.
12
+
13
+ **Purpose.** Lets an uploaded file enter a multi-input operation
14
+ (`merge` / `archive` / `image_watermark` / etc.) LOSSLESSLY. Since
15
+ V2 narrows `JobInputV2.source` to exclude upload-direct (`MultiInputSource`
16
+ — job_output / external_import / connection only), an upload that
17
+ must feed a multi-input op enters via a `passthrough` source job
18
+ referenced downstream by `{ type: job_output, from: <id> }`. This
19
+ preserves billing / DAG / lineage that direct upload-in-inputs[]
20
+ would bypass.
21
+
22
+ **Distinct from `operations: []`.** An empty `operations[]` on a
23
+ single-input upload job KEEPS its implicit-compress meaning (see
24
+ `POST /api/workflows` description). `passthrough` is the EXPLICIT
25
+ lossless opt-out chosen via the existing rule "non-empty
26
+ `operations[]` without `compress` = compression opt-out" — it is a
27
+ sole, named operation, not an empty chain.
28
+
29
+ **Never published to SNS.** Because the API self-completes the job
30
+ at publish, `passthrough` is INTENTIONALLY absent from the AsyncAPI
31
+ routing enums (`OperationType`, `OperationRequestAttributes.operation_type`)
32
+ and has no `ops-passthrough` queue. It never appears on the wire as
33
+ a request message.
34
+
35
+ Media-agnostic (no `mime_groups`): it accepts any uploaded MIME and
36
+ copies it verbatim, so there are no per-MIME options or constraints.
37
+ `availability: beta` — the API self-completion path is LIVE (the
38
+ inputs[]-narrowing + passthrough self-complete mechanism is deployed),
39
+ so workflow-create accepts `passthrough` source jobs and MUST NOT
40
+ return `feature_not_available`. Activated per ticket
41
+ [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta
42
+ flip; self-complete code deployed API-side).
43
+ default: false
44
+ input_model: single
45
+
46
+ # DELIBERATELY absent from the operation chain matrix
47
+ # (docs/matrices/operation-chains.md). passthrough is a sole-op source
48
+ # node, not a chainable transform — with no `mime_groups` it produces
49
+ # zero matrix rows, which is correct: nothing chains onto or after it.
@@ -0,0 +1,117 @@
1
+ schema_version: "2.0.0"
2
+
3
+ operation:
4
+ type: render_variants
5
+ # Generate N resized/re-encoded image variants from ONE decoded source in a
6
+ # single operation (image fan-out). Per spike GA2kiRY8 / epic nksLtV28,
7
+ # ticket w3EwzHYd. Worker = the shared convert image-encode stack + FitMode
8
+ # (lambdas-confirmed reuse: image_convert.rs encode + domain/thumbnailer.rs).
9
+ #
10
+ # availability: planned — the worker (lambdas 08q0ySAc) + its SNS subscription
11
+ # (terraform MNuDYJaY) are downstream of this contract, so the server returns
12
+ # `feature_not_available` (422) until they are live. The planned -> beta flip
13
+ # is a SEPARATE lockstep cut once the worker + wire are up (the two-gate rule;
14
+ # never flip beta ahead of the publisher). Source MIMEs are jpeg/png/webp only
15
+ # — AVIF is encode-only in the worker stack (decode unsupported), so it is a
16
+ # valid `output_format` target but NOT a source input.
17
+ description: "Generate multiple resized / re-encoded image variants from a single source image in one operation (image fan-out)."
18
+ availability: planned
19
+ input_model: single
20
+
21
+ mime_groups:
22
+ image:
23
+ availability: planned
24
+ mimes:
25
+ - image/jpeg
26
+ - image/png
27
+ - image/webp
28
+ options:
29
+ targets:
30
+ type: array
31
+ required: true
32
+ minItems: 1
33
+ maxItems: 20
34
+ # Each target is encoded independently from the single decoded
35
+ # source. Width/height are individually optional at the type level;
36
+ # the cross-field rule (fit crop/scale => BOTH required; fit max =>
37
+ # at least one) is worker-enforced and rejected as `invalid_options`,
38
+ # not expressed structurally here (the option DSL has no per-item
39
+ # conditional-required primitive). Documented in prose below.
40
+ description: |
41
+ One output variant per entry (max 20). Each variant is resized /
42
+ re-encoded independently from the single decoded source; the
43
+ operation succeeds or fails **atomically** — there are no partial
44
+ outputs. Each result output echoes its target's `id` back as
45
+ `target_id` so callers can map outputs to the variants they asked
46
+ for.
47
+
48
+ Dimensions: `fit: max` needs at least one of `width` / `height`
49
+ (aspect preserved, output may be smaller than the box). `fit: crop`
50
+ and `fit: scale` require BOTH `width` and `height` (they produce an
51
+ exact-size output). A target whose dimensions exceed the source is
52
+ rejected (`invalid_options`) unless `allow_upscale: true`.
53
+ items:
54
+ type: object
55
+ required:
56
+ - id
57
+ properties:
58
+ id:
59
+ type: string
60
+ pattern: '^[A-Za-z0-9._-]+$'
61
+ maxLength: 64
62
+ # `id` must be unique within the array — this is the addressing
63
+ # key, so duplicates would map two outputs to one `target_id`.
64
+ # JSON Schema `uniqueItems` only catches wholesale-identical
65
+ # target objects, not same-`id`-different-dims; the worker
66
+ # rejects duplicate ids as `invalid_options` (worker-enforced,
67
+ # like the dimension rules).
68
+ description: |
69
+ Caller-assigned identifier, unique within the array
70
+ (duplicate ids are rejected as `invalid_options`). Echoed
71
+ verbatim as `target_id` on the matching result output — the
72
+ addressing contract.
73
+ width:
74
+ type: integer
75
+ minimum: 1
76
+ maximum: 16384
77
+ description: "Target width in pixels. Required together with height for fit crop/scale; for fit max, at least one of width/height is required."
78
+ height:
79
+ type: integer
80
+ minimum: 1
81
+ maximum: 16384
82
+ description: "Target height in pixels. Required together with width for fit crop/scale; for fit max, at least one of width/height is required."
83
+ fit:
84
+ type: string
85
+ enum:
86
+ - max
87
+ - crop
88
+ - scale
89
+ default: max
90
+ description: |
91
+ Resize mode. max = fit within the box, aspect preserved
92
+ (output may be smaller); needs at least one dimension.
93
+ crop = fill and trim to exact width x height. scale = force
94
+ exact width x height. crop and scale require both dimensions.
95
+ quality:
96
+ type: integer
97
+ minimum: 1
98
+ maximum: 100
99
+ default: 85
100
+ description: "Encode quality (lossy formats only — jpeg / webp / avif). Accepted but ignored for png (lossless)."
101
+ output_format:
102
+ type: string
103
+ enum:
104
+ - jpeg
105
+ - png
106
+ - webp
107
+ - avif
108
+ description: "Output format for this variant. When omitted, the source format is preserved."
109
+ background:
110
+ type: string
111
+ pattern: '^#[0-9A-Fa-f]{6}$'
112
+ default: "#FFFFFF"
113
+ description: "Background colour (hex #RRGGBB), applied only when flattening a transparent source into an opaque format (e.g. a PNG with alpha rendered to JPEG). Ignored otherwise."
114
+ allow_upscale:
115
+ type: boolean
116
+ default: false
117
+ description: "When false (default), a target whose dimensions exceed the source is rejected (`invalid_options`). Set true to permit upscaling. fit max never upscales."
@@ -2,21 +2,26 @@ schema_version: "2.0.0"
2
2
 
3
3
  operation:
4
4
  type: split
5
- availability: planned
5
+ availability: beta
6
6
  description: |
7
7
  Fan one input file into N outputs across GIF, PDF, audio, and
8
8
  video MIME families. Single-input — one input file per job, fanned
9
9
  into N outputs per the per-mime-group catalog. Mirrors the
10
10
  `merge` / `convert` catalog-split-by-mime-group pattern.
11
11
 
12
- **Three modes** (audio + video; the mode discriminator gates which
13
- of the three options applies per the `depends_on` rules in this
12
+ **Three shared modes** (audio + video; the mode discriminator
13
+ gates which option applies per the `depends_on` rules in this
14
14
  schema):
15
15
  - `interval`: split every N numeric-seconds.
16
16
  - `count`: split into N equal-duration pieces (integer 2..=200).
17
17
  - `cut_points`: explicit cut points in numeric-seconds (strictly
18
18
  increasing, no duplicates, each > 0 and < probed duration).
19
19
 
20
+ **Plus an audio-only `silence` mode** (`beta`, gated by the
21
+ `silence_mode_audio` feature): cut at detected silence gaps via
22
+ the worker's ffmpeg `silencedetect` filter. Video stays
23
+ three-mode.
24
+
20
25
  **GIF + PDF use range-based selection** instead of three modes:
21
26
  - GIF (`image_gif`): `frame_range` REQUIRED + `output_format`
22
27
  enum {png,webp,jpg}.
@@ -34,6 +39,8 @@ operation:
34
39
  - `interval`: `ceil(probed_duration / interval) <= 200`
35
40
  - `count`: enforced by the option's `min: 2 max: 200` range
36
41
  - `cut_points`: `cut_points.len() + 1 <= 200`
42
+ - `silence` (audio): resolved segment count (detected gaps + 1)
43
+ `<= 200`; preflight rejects as `invalid_options` (422)
37
44
  - PDF: resolved page count after expansion `<= 200`
38
45
  (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))
39
46
  - GIF: resolved frame count after expansion `<= 200`
@@ -59,9 +66,15 @@ operation:
59
66
  via `processing_class`). No schema-side discriminator beyond MIME
60
67
  detection + `processing_class`.
61
68
 
62
- `availability: planned` until the cross-repo Lambda support ships
63
- ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + lambdas L1).
64
- Dispatch returns `feature_not_available` (422) until then.
69
+ `availability: beta` for the `audio` and `video` mime_groups
70
+ (workers live on staging — shape-stable + opt-in, MUST NOT 422).
71
+ Video activates **short-form only**: `video.processing_class.short_form`
72
+ is `beta`; `long_form` (the `split-video-fargate` worker) stays
73
+ `availability: planned` until that worker ships. The `image_gif` and
74
+ `document_pdf` mime_groups also stay `availability: planned` until their
75
+ cross-repo Lambda workers ship ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)
76
+ + lambdas L1); dispatch returns `feature_not_available` (422) for the
77
+ still-planned groups/classes until then.
65
78
 
66
79
  Per ADR-0014.
67
80
  default: false
@@ -69,18 +82,20 @@ operation:
69
82
 
70
83
  features:
71
84
  silence_mode_audio:
72
- availability: planned
85
+ availability: beta
73
86
  description: |
74
87
  Silence-detect cut mode for audio (`mode: silence` —
75
- Cinavia/Resemble territory, server-side silence detection).
76
- OUT of V1 (Lambda support not yet shipped); declared as a
77
- future-work feature here so SDK consumers see the gate.
78
- Picked up as a separate post-launch ticket.
88
+ server-side silence detection in the audio split worker).
89
+ `beta`: shape-stable + opt-in. The worker is built; the mode
90
+ ships dark until the API regenerates enum validation to accept
91
+ `mode: silence`. The `silence` enum value carries a matching
92
+ `per_value_availability: beta` on `audio.mode`.
79
93
 
80
94
  mime_groups:
81
95
  # Animated GIF base — parallel mime_group naming follows the
82
96
  # `image_gif` precedent established by `image_watermark.image_gif`.
83
97
  image_gif:
98
+ availability: planned
84
99
  mimes:
85
100
  - image/gif
86
101
  options:
@@ -106,6 +121,7 @@ operation:
106
121
 
107
122
  # PDF base — page-split via qpdf or pdftk equivalent.
108
123
  document_pdf:
124
+ availability: planned
109
125
  mimes:
110
126
  - application/pdf
111
127
  options:
@@ -145,6 +161,7 @@ operation:
145
161
 
146
162
  # Audio base — three modes + precision flag.
147
163
  audio:
164
+ availability: beta
148
165
  mimes:
149
166
  - audio/mpeg
150
167
  - audio/aac
@@ -155,13 +172,17 @@ operation:
155
172
  options:
156
173
  mode:
157
174
  type: enum
158
- values: [interval, count, cut_points]
175
+ values: [interval, count, cut_points, silence]
159
176
  default: interval
177
+ per_value_availability:
178
+ silence: { availability: beta }
160
179
  description: |
161
180
  Split strategy:
162
181
  - `interval`: cut every `interval` seconds.
163
182
  - `count`: cut into `count` equal-duration pieces.
164
183
  - `cut_points`: cut at explicit timestamps.
184
+ - `silence`: cut at detected silence gaps (audio-only,
185
+ `beta` via the `silence_mode_audio` feature gate).
165
186
 
166
187
  interval:
167
188
  type: float
@@ -206,29 +227,69 @@ operation:
206
227
  200-output cap declaratively. Only valid when
207
228
  `mode: cut_points`.
208
229
 
230
+ silence_threshold_db:
231
+ type: float
232
+ max: 0.0
233
+ default: -50.0
234
+ depends_on: { mode: silence }
235
+ # Maps to the worker's silence-detection noise floor.
236
+ description: |
237
+ Noise floor below which audio counts as silence, in dBFS
238
+ (negative; 0.0 = full scale). Strictly negative in
239
+ practice; `max: 0.0` is the declarative ceiling (a 0 dB
240
+ "silence" floor is degenerate, like the strict bounds
241
+ documented in prose for `cut_points`). Only valid when
242
+ `mode: silence`.
243
+
244
+ silence_min_duration:
245
+ type: float
246
+ min: 0.001
247
+ default: 0.75
248
+ depends_on: { mode: silence }
249
+ # Maps to the worker's silence-detection minimum-duration parameter.
250
+ description: |
251
+ Minimum duration of a silence gap, in numeric seconds
252
+ (sub-second allowed), before it is treated as a cut point.
253
+ `min: 0.001` is the strict-positive sub-second idiom
254
+ (cf. `interval`). Only valid when `mode: silence`.
255
+
256
+ silence_handling:
257
+ type: enum
258
+ values: [keep_at_end]
259
+ default: keep_at_end
260
+ depends_on: { mode: silence }
261
+ description: |
262
+ How detected silence is handled at segment boundaries.
263
+ `keep_at_end`: trailing silence stays appended to the
264
+ preceding segment (no separate silence-only outputs).
265
+ Only valid when `mode: silence`.
266
+
209
267
  precision:
210
268
  type: enum
211
269
  values: [fast, exact]
212
270
  default: fast
271
+ # Don't use "keyframe" language here — that's video-only;
272
+ # audio drift is packet-boundary.
213
273
  description: |
214
274
  Cut precision. Under `fast`, audio cuts are
215
275
  packet-boundary approximate (drift bounded by codec
216
276
  packet size — typically <= 23ms for AAC, <= 26ms for
217
277
  MP3). Under `exact`, the Lambda re-encodes to align cuts
218
278
  precisely at the requested timestamps (slower, larger
219
- output, but sample-accurate). Avoid "keyframe" language
220
- — that's video-only; audio drift is packet-boundary.
279
+ output, but sample-accurate).
221
280
 
222
281
  # Video base — same three modes + precision + processing_class.
223
282
  # Long-form routes to `split-video-fargate` (same OperationType,
224
283
  # different worker per `processing_class`).
225
284
  video:
285
+ availability: beta
226
286
  mimes:
227
287
  - video/mp4
228
288
  - video/webm
289
+ - video/quicktime
229
290
  processing_class:
230
291
  short_form:
231
- availability: planned
292
+ availability: beta
232
293
  constraints:
233
294
  max_input_duration: "PT5M"
234
295
  max_input_size_bytes: 524288000
@@ -25,10 +25,10 @@ operation:
25
25
  text:
26
26
  type: string
27
27
  required: true
28
+ # Rendered with the bundled Liberation Sans (SIL OFL); a single
29
+ # text overlay is capped at 4 megapixels before rendering fails.
28
30
  description: |
29
- Watermark text. Must be non-empty. Rendered with bundled
30
- Liberation Sans (SIL OFL). A single text overlay is capped
31
- at 4 megapixels before rendering fails.
31
+ Watermark text. Must be non-empty.
32
32
 
33
33
  font_size:
34
34
  type: float
@@ -59,11 +59,11 @@ operation:
59
59
  min: -360.0
60
60
  max: 360.0
61
61
  default: -45.0
62
+ # Tiled canvas is capped at 25 megapixels pre-rotation with a
63
+ # 5000 px maximum side length.
62
64
  description: |
63
65
  Rotation angle in degrees. Default -45° suits tiled mode
64
- (angled diagonal pattern). Clamped to range. Tiled canvas is
65
- capped at 25 megapixels pre-rotation with 5000 px maximum
66
- side length.
66
+ (angled diagonal pattern). Clamped to range.
67
67
 
68
68
  watermark_mode:
69
69
  type: enum
@@ -45,7 +45,7 @@ operation:
45
45
  mimes:
46
46
  - video/mp4
47
47
  - video/webm
48
- - video/ogg
48
+ - video/quicktime
49
49
  processing_class:
50
50
  # F8 long-form video tier (per ticket I15-CONS). Thumbnail
51
51
  # extracts a single frame, so size/duration caps reflect
@@ -58,9 +58,9 @@ operation:
58
58
  text:
59
59
  type: string
60
60
  required: true
61
+ # Rendered with the bundled Liberation Sans (SIL OFL).
61
62
  description: |
62
- Watermark text. Must be non-empty. Rendered with bundled
63
- Liberation Sans (SIL OFL).
63
+ Watermark text. Must be non-empty.
64
64
 
65
65
  font_size:
66
66
  type: float