@giveitsmaller/contracts 0.8.0 → 0.9.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 (355) hide show
  1. package/asyncapi/events.yaml +288 -153
  2. package/availability/availability.json +50 -17
  3. package/dist/asyncapi/LongFormJobMessage.d.ts +4 -3
  4. package/dist/asyncapi/LongFormOperationType.d.ts +5 -0
  5. package/dist/asyncapi/LongFormOperationType.js +6 -0
  6. package/dist/asyncapi/LongFormProcessingClass.d.ts +4 -0
  7. package/dist/asyncapi/LongFormProcessingClass.js +5 -0
  8. package/dist/asyncapi/SourceEntry.d.ts +2 -0
  9. package/dist/asyncapi/index.d.ts +2 -1
  10. package/dist/asyncapi/index.js +2 -1
  11. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  12. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  15. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  16. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  17. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  18. package/dist/openapi/models/AuthErrorType.js +1 -1
  19. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  20. package/dist/openapi/models/AvailabilityValue.js +1 -1
  21. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  22. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  23. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  24. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  25. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  26. package/dist/openapi/models/CallbackEventType.js +1 -1
  27. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  28. package/dist/openapi/models/ConnectionSource.js +1 -1
  29. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  30. package/dist/openapi/models/ContactRequest.js +1 -1
  31. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  32. package/dist/openapi/models/ContactSubject.js +1 -1
  33. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  34. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  35. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  36. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  37. package/dist/openapi/models/CreateExternalImport422Response.d.ts +6 -2
  38. package/dist/openapi/models/CreateExternalImport422Response.js +17 -21
  39. package/dist/openapi/models/CreateWorkflow422Response.d.ts +10 -2
  40. package/dist/openapi/models/CreateWorkflow422Response.js +27 -35
  41. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  42. package/dist/openapi/models/CreditTransaction.js +1 -1
  43. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  44. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  45. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  46. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  47. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  48. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  49. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  50. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  51. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  52. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  53. package/dist/openapi/models/Delivery.d.ts +1 -1
  54. package/dist/openapi/models/Delivery.js +1 -1
  55. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  56. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  57. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  58. package/dist/openapi/models/DeliveryPlan.js +1 -1
  59. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  60. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  61. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  62. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  63. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  64. package/dist/openapi/models/DeliverySelection.js +1 -1
  65. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  66. package/dist/openapi/models/EndpointProjection.js +1 -1
  67. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  68. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  69. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  70. package/dist/openapi/models/EstimateQuality.js +1 -1
  71. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  72. package/dist/openapi/models/EstimateRange.js +1 -1
  73. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  74. package/dist/openapi/models/ExternalDestination.js +1 -1
  75. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  76. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  77. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  78. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  79. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  80. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  81. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  82. package/dist/openapi/models/ExternalImportToken.js +1 -1
  83. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  84. package/dist/openapi/models/ExternalSource.js +1 -1
  85. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +7 -8
  86. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  87. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  88. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  89. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  90. package/dist/openapi/models/FeatureViolation.js +1 -1
  91. package/dist/openapi/models/JobDefinition.d.ts +8 -5
  92. package/dist/openapi/models/JobDefinition.js +1 -1
  93. package/dist/openapi/models/JobDownload.d.ts +1 -1
  94. package/dist/openapi/models/JobDownload.js +1 -1
  95. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  96. package/dist/openapi/models/JobInputV2.js +1 -1
  97. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  98. package/dist/openapi/models/JobOutputSource.js +1 -1
  99. package/dist/openapi/models/JobResponse.d.ts +23 -1
  100. package/dist/openapi/models/JobResponse.js +4 -1
  101. package/dist/openapi/models/JobStatus.d.ts +1 -1
  102. package/dist/openapi/models/JobStatus.js +1 -1
  103. package/dist/openapi/models/JobType.d.ts +1 -1
  104. package/dist/openapi/models/JobType.js +1 -1
  105. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  106. package/dist/openapi/models/LivenessResponse.js +1 -1
  107. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  108. package/dist/openapi/models/LoginUser200Response.js +1 -1
  109. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  110. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  111. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  112. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  113. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  114. package/dist/openapi/models/LoginUserRequest.js +1 -1
  115. package/dist/openapi/models/LogoutUser200Response.d.ts +1 -1
  116. package/dist/openapi/models/LogoutUser200Response.js +1 -1
  117. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  118. package/dist/openapi/models/MetadataResponse.js +1 -1
  119. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  120. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  121. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  122. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  123. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  124. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  125. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  126. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  127. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  128. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  129. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  130. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  131. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  132. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  133. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  134. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  135. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  136. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  137. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  138. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  139. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  140. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  141. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  142. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  143. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  144. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  145. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  146. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  147. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  148. package/dist/openapi/models/MultipartPartListing.js +1 -1
  149. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  150. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  151. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  152. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  153. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  154. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  155. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  156. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  157. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  158. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  159. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  160. package/dist/openapi/models/OperationDefinition.js +1 -1
  161. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  162. package/dist/openapi/models/OperationDownload.js +1 -1
  163. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  164. package/dist/openapi/models/OperationInputModel.js +1 -1
  165. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  166. package/dist/openapi/models/OperationResponse.js +1 -1
  167. package/dist/openapi/models/OperationResult.d.ts +1 -1
  168. package/dist/openapi/models/OperationResult.js +1 -1
  169. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  170. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  171. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  172. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  173. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  174. package/dist/openapi/models/OperationStatus.js +1 -1
  175. package/dist/openapi/models/OperationType.d.ts +14 -12
  176. package/dist/openapi/models/OperationType.js +14 -12
  177. package/dist/openapi/models/OperationsSchemaResponse.d.ts +8 -1
  178. package/dist/openapi/models/OperationsSchemaResponse.js +4 -1
  179. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +55 -0
  180. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +42 -0
  181. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +40 -0
  182. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +45 -0
  183. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +45 -0
  184. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +43 -0
  185. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +33 -0
  186. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +42 -0
  187. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  188. package/dist/openapi/models/OptionSchema.js +1 -1
  189. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  190. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  191. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  192. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  193. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  194. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  195. package/dist/openapi/models/ProbePendingResponse.d.ts +8 -7
  196. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  197. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  198. package/dist/openapi/models/ProcessingClass.js +1 -1
  199. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  200. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  201. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +7 -5
  202. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  203. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  204. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  205. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  206. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  207. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  208. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  209. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  210. package/dist/openapi/models/ProcessingPlan.js +1 -1
  211. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  212. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  213. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  214. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  215. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  216. package/dist/openapi/models/ReadinessResponse.js +1 -1
  217. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  218. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  219. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  220. package/dist/openapi/models/RetryResponse.js +1 -1
  221. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  222. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  223. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  224. package/dist/openapi/models/SseCompletionBase.js +1 -1
  225. package/dist/openapi/models/SseEventType.d.ts +1 -1
  226. package/dist/openapi/models/SseEventType.js +1 -1
  227. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  228. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  229. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  230. package/dist/openapi/models/SseJobFailedData.js +1 -1
  231. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  232. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  233. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  234. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  235. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  236. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  237. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  238. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  239. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  240. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  241. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  242. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  243. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  244. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  245. package/dist/openapi/models/SseOperationProgressData.d.ts +3 -2
  246. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  247. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  248. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  249. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  250. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  251. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  252. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  253. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  254. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  255. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  256. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  257. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  258. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  259. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  260. package/dist/openapi/models/UploadFile403Response.js +1 -1
  261. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  262. package/dist/openapi/models/UploadFile422Response.js +1 -1
  263. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  264. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  265. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  266. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  267. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  268. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  269. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  270. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  271. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  272. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  273. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  274. package/dist/openapi/models/UploadResponse.js +1 -1
  275. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  276. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  277. package/dist/openapi/models/UploadSource.d.ts +1 -1
  278. package/dist/openapi/models/UploadSource.js +1 -1
  279. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  280. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  281. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  282. package/dist/openapi/models/UploadThresholds.js +1 -1
  283. package/dist/openapi/models/UserTier.d.ts +1 -1
  284. package/dist/openapi/models/UserTier.js +1 -1
  285. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +31 -4
  286. package/dist/openapi/models/ValidationErrorEnvelope.js +11 -1
  287. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  288. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  289. package/dist/openapi/models/WarningType.d.ts +1 -1
  290. package/dist/openapi/models/WarningType.js +1 -1
  291. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  292. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  293. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  294. package/dist/openapi/models/WebhookPayload.js +1 -1
  295. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  296. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  297. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  298. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  299. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  300. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  301. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  302. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  303. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  304. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  305. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  306. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  307. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  308. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  309. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  310. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  311. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  312. package/dist/openapi/models/WorkflowEdge.js +1 -1
  313. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  314. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  315. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  316. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  317. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  318. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  319. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  320. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  321. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  322. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  323. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  324. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  325. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  326. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  327. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  328. package/dist/openapi/models/WorkflowSource.js +1 -1
  329. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  330. package/dist/openapi/models/WorkflowStatus.js +1 -1
  331. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  332. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  333. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  334. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  335. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  336. package/dist/openapi/models/WorkflowWarning.js +1 -1
  337. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  338. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  339. package/dist/openapi/models/index.d.ts +4 -0
  340. package/dist/openapi/models/index.js +4 -0
  341. package/dist/openapi/runtime.d.ts +1 -1
  342. package/dist/openapi/runtime.js +1 -1
  343. package/dist/operations/audio_to_video.metadata.js +1 -1
  344. package/dist/operations/merge.metadata.js +0 -3
  345. package/dist/operations/split.metadata.js +5 -1
  346. package/dist/operations/video_watermark.metadata.js +2 -2
  347. package/openapi/api.yaml +258 -72
  348. package/operations/schemas/audio_to_video.yaml +6 -4
  349. package/operations/schemas/custom_luma.yaml +3 -4
  350. package/operations/schemas/merge.yaml +6 -6
  351. package/operations/schemas/split.yaml +11 -4
  352. package/operations/schemas/video_watermark.yaml +13 -5
  353. package/package.json +1 -1
  354. package/dist/asyncapi/AnonymousSchema_253.d.ts +0 -5
  355. package/dist/asyncapi/AnonymousSchema_253.js +0 -6
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.0.0
2
2
  info:
3
3
  title: GISL Compression Events
4
- version: 3.3.0
4
+ version: 3.9.0
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
@@ -21,16 +21,20 @@ info:
21
21
  video_watermark, video_text_watermark, split). Filter attribute:
22
22
  `operation_type`. Subscriptions: one queue per operation type,
23
23
  plus four thumbnail sub-type queues during the migration window.
24
- `custom_luma`, `audio_overlay`, `audio_watermark`,
25
- `audio_to_video`, `video_watermark`, `video_text_watermark`, and
26
- `split` are `availability: planned` (per
27
- [I29](https://trello.com/c/EPUE5Vs1) +
24
+ `custom_luma`, `audio_overlay`, `audio_watermark`, and
25
+ `video_text_watermark` are `availability: planned`
26
+ (per [I29](https://trello.com/c/EPUE5Vs1) +
28
27
  [I19](https://trello.com/c/Xr3Z4GBF) +
29
28
  [I20](https://trello.com/c/omiCq7Vn) +
30
- [`SlluxMBN`](https://trello.com/c/SlluxMBN) +
31
- [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) +
32
- [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)) their queues are
33
- declared but receive no traffic until Lambda ships.
29
+ [`4NrRPCgh`](https://trello.com/c/4NrRPCgh)) — their queues are
30
+ declared but receive no traffic until Lambda ships. `split` is
31
+ `availability: beta` for its `audio` mime_group (worker live on
32
+ staging [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); its
33
+ `image_gif`, `document_pdf`, and `video` mime_groups stay
34
+ `availability: planned`.
35
+ `audio_to_video` and `video_watermark` are `availability: beta`
36
+ (Wave A activation [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
37
+ backends live; the API accepts + publishes, traffic flows).
34
38
  `audio_watermark` additionally requires `enterprise` tier.
35
39
 
36
40
  **Publisher branching rule** (implemented in `compression_api`'s
@@ -54,11 +58,13 @@ info:
54
58
  **Thumbnail migration window.** The terraform topology has both the
55
59
  legacy `ops-thumbnail` queue and four new sub-type queues
56
60
  (`ops-thumbnail-{image,video,document,office}`) live simultaneously.
57
- The API publisher currently emits the legacy `operation_type=thumbnail`
58
- only; adoption of the four sub-type values (`thumbnail_image`,
59
- `thumbnail_video`, `thumbnail_document`, `thumbnail_office`) is a
60
- follow-up API PR. Both routing targets are documented in this contract
61
- because both are valid during the migration.
61
+ The API publisher emits the four sub-type values (`thumbnail_image`,
62
+ `thumbnail_video`, `thumbnail_document`, `thumbnail_office`) on the
63
+ SNS `operation_type` attribute, resolved from each operation's
64
+ effective input MIME; the legacy `operation_type=thumbnail` attribute
65
+ is retained as a valid routing target during the migration window but
66
+ is no longer emitted. Both routing targets are documented in this
67
+ contract because both remain valid during the migration.
62
68
 
63
69
  **Notifications (Lambda -> API).** Lambda functions publish progress
64
70
  and result notifications to the FIFO SNS topic
@@ -191,19 +197,23 @@ channels:
191
197
  [I19](https://trello.com/c/Xr3Z4GBF) — same `feature_not_
192
198
  available` 422 gating)
193
199
  - `operation_type = audio_to_video` -> `ops-audio-to-video` queue
194
- (gated by `availability: planned` until Lambda ships per
195
- [`SlluxMBN`](https://trello.com/c/SlluxMBN) — same
196
- `feature_not_available` 422 gating)
200
+ (`availability: beta` Wave A activated per
201
+ [`SlluxMBN`](https://trello.com/c/SlluxMBN) +
202
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4); backend live, traffic
203
+ flows)
197
204
  - `operation_type = video_watermark` -> `ops-video-watermark`
198
- queue (gated by `availability: planned` until Lambda ships per
199
- [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — same gating)
205
+ queue (`availability: beta` Wave A activated per
206
+ [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) +
207
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4); backend live)
200
208
  - `operation_type = video_text_watermark` ->
201
209
  `ops-video-text-watermark` queue (gated by
202
210
  `availability: planned` until Lambda ships per
203
211
  [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — same gating)
204
- - `operation_type = split` -> `ops-split` queue (gated by
205
- `availability: planned` until Lambda ships per
206
- [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) same gating;
212
+ - `operation_type = split` -> `ops-split` queue (the `audio`
213
+ mime_group is `availability: beta` audio split traffic
214
+ reaches this queue; `image_gif` / `document_pdf` / `video`
215
+ stay `availability: planned` until their Lambdas ship per
216
+ [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
207
217
  long-form video splits route via `processing_class` to the
208
218
  `split-video-fargate` worker, same OperationType, different
209
219
  worker)
@@ -223,9 +233,11 @@ channels:
223
233
 
224
234
  **Thumbnail migration window.** The legacy `ops-thumbnail` queue and
225
235
  the four sub-type queues are all live simultaneously. The API
226
- publisher currently emits `operation_type=thumbnail` (legacy);
227
- adoption of the four sub-type values is a follow-up API PR. Both
228
- paths are valid routing targets today.
236
+ publisher emits the four sub-type values on the SNS `operation_type`
237
+ attribute (resolved from effective input MIME); the legacy
238
+ `operation_type=thumbnail` attribute is retained as a valid routing
239
+ target but is no longer emitted. Both paths are valid routing
240
+ targets today.
229
241
  parameters:
230
242
  env:
231
243
  description: Environment (local, stg, prod)
@@ -245,6 +257,12 @@ channels:
245
257
  SQS queue for image compression jobs.
246
258
  Subscribed to the `job-requests` SNS topic with filter
247
259
  `job_type = image`. Handles `compress` only for image inputs.
260
+ bindings:
261
+ sqs:
262
+ queue:
263
+ name: gisl-{env}-{region}-jobs-image
264
+ fifoQueue: false
265
+ bindingVersion: '0.2.0'
248
266
  parameters:
249
267
  env:
250
268
  description: Environment (local, stg, prod)
@@ -260,6 +278,12 @@ channels:
260
278
  SQS queue for video compression jobs.
261
279
  Subscribed to the `job-requests` SNS topic with filter
262
280
  `job_type = video`. Handles `compress` only for video inputs.
281
+ bindings:
282
+ sqs:
283
+ queue:
284
+ name: gisl-{env}-{region}-jobs-video
285
+ fifoQueue: false
286
+ bindingVersion: '0.2.0'
263
287
  parameters:
264
288
  env:
265
289
  description: Environment (local, stg, prod)
@@ -275,6 +299,12 @@ channels:
275
299
  SQS queue for audio compression jobs.
276
300
  Subscribed to the `job-requests` SNS topic with filter
277
301
  `job_type = audio`. Handles `compress` only for audio inputs.
302
+ bindings:
303
+ sqs:
304
+ queue:
305
+ name: gisl-{env}-{region}-jobs-audio
306
+ fifoQueue: false
307
+ bindingVersion: '0.2.0'
278
308
  parameters:
279
309
  env:
280
310
  description: Environment (local, stg, prod)
@@ -290,6 +320,12 @@ channels:
290
320
  SQS queue for document compression jobs.
291
321
  Subscribed to the `job-requests` SNS topic with filter
292
322
  `job_type = document`. Handles `compress` only for document inputs.
323
+ bindings:
324
+ sqs:
325
+ queue:
326
+ name: gisl-{env}-{region}-jobs-document
327
+ fifoQueue: false
328
+ bindingVersion: '0.2.0'
293
329
  parameters:
294
330
  env:
295
331
  description: Environment (local, stg, prod)
@@ -350,12 +386,14 @@ channels:
350
386
  Subscribed to the `operations` SNS topic with filter
351
387
  `operation_type = thumbnail`.
352
388
 
353
- **Migration window**: This is the legacy routing target and is
354
- currently the only one the API publisher emits for (via
355
- `operation_type=thumbnail`). It handles thumbnail requests for all
356
- media types. Retirement is planned after the API publisher adopts
357
- the four sub-type values (`thumbnail_image`, `thumbnail_video`,
358
- `thumbnail_document`, `thumbnail_office`) in a follow-up API PR.
389
+ **Migration window**: This is the legacy routing target. It is
390
+ retained as a valid routing target (via `operation_type=thumbnail`)
391
+ and handles thumbnail requests for all media types, but the API
392
+ publisher no longer emits it the publisher now emits the four
393
+ sub-type values (`thumbnail_image`, `thumbnail_video`,
394
+ `thumbnail_document`, `thumbnail_office`), resolved from each
395
+ operation's effective input MIME. Retirement of this legacy queue
396
+ follows once no traffic remains.
359
397
  parameters:
360
398
  env:
361
399
  description: Environment (local, stg, prod)
@@ -373,9 +411,10 @@ channels:
373
411
  `operation_type = thumbnail_image`. Backed by the Rust image
374
412
  thumbnail Lambda (`operation-thumbnail-image`).
375
413
 
376
- Not yet receiving traffic — the API publisher currently emits
377
- `operation_type=thumbnail` (legacy) and will flip to
378
- `thumbnail_image` after a follow-up API PR adds input-MIME dispatch.
414
+ Receives traffic for image inputs — the API publisher emits
415
+ `operation_type=thumbnail_image` on the SNS attribute (resolved from
416
+ the operation's effective input MIME); the payload `operation_type`
417
+ field stays `thumbnail`.
379
418
  parameters:
380
419
  env:
381
420
  description: Environment (local, stg, prod)
@@ -393,9 +432,10 @@ channels:
393
432
  `operation_type = thumbnail_video`. Backed by the FFmpeg video
394
433
  thumbnail Lambda (`operation-thumbnail-video`).
395
434
 
396
- Not yet receiving traffic — the API publisher currently emits
397
- `operation_type=thumbnail` (legacy) and will flip to
398
- `thumbnail_video` after a follow-up API PR adds input-MIME dispatch.
435
+ Receives traffic for video inputs — the API publisher emits
436
+ `operation_type=thumbnail_video` on the SNS attribute (resolved from
437
+ the operation's effective input MIME); the payload `operation_type`
438
+ field stays `thumbnail`.
399
439
  parameters:
400
440
  env:
401
441
  description: Environment (local, stg, prod)
@@ -413,10 +453,10 @@ channels:
413
453
  `operation_type = thumbnail_document`. Backed by the Ghostscript
414
454
  document thumbnail Lambda (`operation-thumbnail-document`).
415
455
 
416
- Not yet receiving traffic — the API publisher currently emits
417
- `operation_type=thumbnail` (legacy) and will flip to
418
- `thumbnail_document` after a follow-up API PR adds input-MIME
419
- dispatch.
456
+ Receives traffic for PDF/EPUB inputs — the API publisher emits
457
+ `operation_type=thumbnail_document` on the SNS attribute (resolved
458
+ from the operation's effective input MIME); the payload
459
+ `operation_type` field stays `thumbnail`.
420
460
  parameters:
421
461
  env:
422
462
  description: Environment (local, stg, prod)
@@ -435,10 +475,10 @@ channels:
435
475
  `operation_type = thumbnail_office`. Backed by the LibreOffice
436
476
  thumbnail Lambda (`operation-thumbnail-office`).
437
477
 
438
- Not yet receiving traffic — the API publisher currently emits
439
- `operation_type=thumbnail` (legacy) and will flip to
440
- `thumbnail_office` after a follow-up API PR adds input-MIME
441
- dispatch.
478
+ Receives traffic for office-document inputs — the API publisher
479
+ emits `operation_type=thumbnail_office` on the SNS attribute
480
+ (resolved from the operation's effective input MIME); the payload
481
+ `operation_type` field stays `thumbnail`.
442
482
  parameters:
443
483
  env:
444
484
  description: Environment (local, stg, prod)
@@ -614,11 +654,11 @@ channels:
614
654
  `role: overlay` image OPTIONAL — see `per_role_cardinality`
615
655
  on the operation schema).
616
656
 
617
- `availability: planned` per the operation schema; the API
618
- rejects workflow-create with `feature_not_available` (422)
619
- until the Lambda ships, so traffic does not reach this queue
620
- today. Backed by the `operation-audio-to-video` Lambda
621
- (cross-repo follow-up — lambdas pre-launch epic Wave A).
657
+ `availability: beta` per the operation schema (Wave A activated,
658
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
659
+ publishes, so traffic flows to this queue (MUST NOT 422). Backed
660
+ by the `operation-audio-to-video` Lambda (live; lambdas pre-launch
661
+ epic Wave A).
622
662
 
623
663
  Per ADR-0004 + ADR-0015
624
664
  ([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
@@ -642,10 +682,12 @@ channels:
642
682
  (no operation-specific conditional needed in
643
683
  OperationRequestAttributes).
644
684
 
645
- `availability: planned` per the operation schema; the API
646
- rejects workflow-create with `feature_not_available` (422)
647
- until the Lambda ships, so traffic does not reach this queue
648
- today. Backed by the `operation-split` Lambda (cross-repo
685
+ `availability: beta` for the `audio` mime_group (worker live on
686
+ staging audio split traffic reaches this queue); the
687
+ `image_gif`, `document_pdf`, and `video` mime_groups stay
688
+ `availability: planned`, and the API rejects their
689
+ workflow-create with `feature_not_available` (422) until those
690
+ Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
649
691
  follow-up — lambdas pre-launch epic Wave A, ticket
650
692
  [DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
651
693
  [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
@@ -678,11 +720,12 @@ channels:
678
720
  (Path B with `role: base` video + `role: overlay` image,
679
721
  exactly one of each per `per_role_cardinality`).
680
722
 
681
- `availability: planned` per the operation schema; the API
682
- rejects workflow-create with `feature_not_available` (422)
683
- until the Lambda ships, so traffic does not reach this queue
684
- today. Backed by the `operation-video-watermark` Lambda (cross-
685
- repo follow-up lambdas pre-launch epic Wave A, ticket
723
+ `availability: beta` per the operation schema (Wave A activated,
724
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
725
+ publishes, so traffic flows to this queue (MUST NOT 422). The
726
+ `short_form` processing class is beta; `long_form` stays planned
727
+ (no live Fargate worker). Backed by the `operation-video-watermark`
728
+ Lambda (live; lambdas pre-launch epic Wave A, ticket
686
729
  [DbpJpVtm](https://trello.com/c/DbpJpVtm)).
687
730
 
688
731
  Distinct from `image_watermark` (pure-Rust image-only) — see
@@ -900,9 +943,9 @@ channels:
900
943
  description: |
901
944
  DLQ for failed audio_to_video operations (per ticket
902
945
  [`SlluxMBN`](https://trello.com/c/SlluxMBN) / ADR-0015).
903
- Messages land here after 5 failed processing attempts. No
904
- traffic reaches this queue while audio_to_video is
905
- `availability: planned`.
946
+ Messages land here after 5 failed processing attempts.
947
+ audio_to_video is `availability: beta` (Wave A activated) so
948
+ this queue now receives real failures.
906
949
  parameters:
907
950
  env:
908
951
  description: Environment (local, stg, prod)
@@ -914,9 +957,9 @@ channels:
914
957
  description: |
915
958
  DLQ for failed video_watermark operations (per ticket
916
959
  [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) / ADR-0013).
917
- Messages land here after 5 failed processing attempts. No
918
- traffic reaches this queue while video_watermark is
919
- `availability: planned`.
960
+ Messages land here after 5 failed processing attempts.
961
+ video_watermark is `availability: beta` (Wave A activated) so
962
+ this queue now receives real failures.
920
963
  parameters:
921
964
  env:
922
965
  description: Environment (local, stg, prod)
@@ -942,9 +985,10 @@ channels:
942
985
  description: |
943
986
  DLQ for failed split operations (per ticket
944
987
  [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) / ADR-0014).
945
- Messages land here after 5 failed processing attempts. No
946
- traffic reaches this queue while split is `availability:
947
- planned`.
988
+ Messages land here after 5 failed processing attempts. Live for
989
+ the `split` `audio` mime_group (now `availability: beta`); the
990
+ `image_gif`, `document_pdf`, and `video` groups stay
991
+ `availability: planned` and carry no traffic yet.
948
992
  parameters:
949
993
  env:
950
994
  description: Environment (local, stg, prod)
@@ -1308,9 +1352,10 @@ operations:
1308
1352
  description: |
1309
1353
  The legacy thumbnail Lambda consumes thumbnail requests routed
1310
1354
  by `operation_type=thumbnail`. Handles thumbnail generation for
1311
- all media types in a single Lambda. This is the current live
1312
- routing target for the API publisher; it will be retired after
1313
- the publisher adopts the four sub-type values.
1355
+ all media types in a single Lambda. Retained as a valid routing
1356
+ target during the migration window, but the API publisher no
1357
+ longer emits `operation_type=thumbnail` (it emits the four
1358
+ sub-type values); this queue is retired once no traffic remains.
1314
1359
  messages:
1315
1360
  - $ref: '#/channels/opsThumbnail/messages/operationRequest'
1316
1361
 
@@ -1322,7 +1367,7 @@ operations:
1322
1367
  description: |
1323
1368
  The image thumbnail Lambda consumes thumbnail requests routed by
1324
1369
  `operation_type=thumbnail_image`. Backed by a Rust image crate.
1325
- Not yet receiving traffic — see channel description.
1370
+ Receives traffic for image inputs — see channel description.
1326
1371
  messages:
1327
1372
  - $ref: '#/channels/opsThumbnailImage/messages/operationRequest'
1328
1373
 
@@ -1333,8 +1378,8 @@ operations:
1333
1378
  summary: Process video thumbnail operation
1334
1379
  description: |
1335
1380
  The video thumbnail Lambda consumes thumbnail requests routed by
1336
- `operation_type=thumbnail_video`. Backed by FFmpeg. Not yet
1337
- receiving traffic — see channel description.
1381
+ `operation_type=thumbnail_video`. Backed by FFmpeg. Receives
1382
+ traffic for video inputs — see channel description.
1338
1383
  messages:
1339
1384
  - $ref: '#/channels/opsThumbnailVideo/messages/operationRequest'
1340
1385
 
@@ -1346,7 +1391,8 @@ operations:
1346
1391
  description: |
1347
1392
  The document (PDF/EPUB) thumbnail Lambda consumes thumbnail
1348
1393
  requests routed by `operation_type=thumbnail_document`. Backed by
1349
- Ghostscript. Not yet receiving traffic — see channel description.
1394
+ Ghostscript. Receives traffic for PDF/EPUB inputs — see channel
1395
+ description.
1350
1396
  messages:
1351
1397
  - $ref: '#/channels/opsThumbnailDocument/messages/operationRequest'
1352
1398
 
@@ -1358,8 +1404,8 @@ operations:
1358
1404
  description: |
1359
1405
  The office document (DOCX/XLSX/PPTX/ODT/ODS/ODP) thumbnail Lambda
1360
1406
  consumes thumbnail requests routed by
1361
- `operation_type=thumbnail_office`. Backed by LibreOffice. Not yet
1362
- receiving traffic — see channel description.
1407
+ `operation_type=thumbnail_office`. Backed by LibreOffice. Receives
1408
+ traffic for office-document inputs — see channel description.
1363
1409
  messages:
1364
1410
  - $ref: '#/channels/opsThumbnailOffice/messages/operationRequest'
1365
1411
 
@@ -1474,14 +1520,18 @@ operations:
1474
1520
  $ref: '#/channels/opsSplit'
1475
1521
  summary: Process split operation
1476
1522
  description: |
1477
- The `operation-split` Lambda (cross-repo follow-up lambdas
1478
- pre-launch epic Wave A, not yet shipped) consumes split
1479
- requests routed by `operation_type=split`. Single-input
1523
+ The `operation-split` Lambda (lambdas pre-launch epic Wave A)
1524
+ consumes split requests routed by `operation_type=split`. Its
1525
+ `audio` path is live on staging (lambdas #161); the
1526
+ `image_gif` / `document_pdf` / `video` workers remain a
1527
+ cross-repo follow-up. Single-input —
1480
1528
  `media_group` derives from the input MIME prefix per the
1481
- existing single-input rule. `availability: planned`; the API
1482
- rejects workflow-create with `feature_not_available` (422)
1483
- until the Lambda ships, so traffic does not reach this channel
1484
- today. Long-form video splits route to a separate
1529
+ existing single-input rule. `availability: beta` for the `audio`
1530
+ mime_group (worker live on staging); the `image_gif`,
1531
+ `document_pdf`, and `video` mime_groups stay `availability:
1532
+ planned`, and the API rejects their workflow-create with
1533
+ `feature_not_available` (422) until those Lambdas ship.
1534
+ Long-form video splits route to a separate
1485
1535
  `split-video-fargate` worker via `processing_class`.
1486
1536
  Per ADR-0004 + ADR-0014
1487
1537
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
@@ -1495,14 +1545,14 @@ operations:
1495
1545
  summary: Process video_watermark operation
1496
1546
  description: |
1497
1547
  The `operation-video-watermark` Lambda (cross-repo follow-up —
1498
- lambdas pre-launch epic Wave A, not yet shipped) consumes
1548
+ lambdas pre-launch epic Wave A, live) consumes
1499
1549
  video_watermark requests routed by
1500
1550
  `operation_type=video_watermark`. Multi-input role-based with
1501
1551
  `role: base` video + `role: overlay` image (exactly one of
1502
- each per `per_role_cardinality`). `availability: planned`; the
1503
- API rejects workflow-create with `feature_not_available` (422)
1504
- until the Lambda ships, so traffic does not reach this channel
1505
- today.
1552
+ each per `per_role_cardinality`). `availability: beta` (Wave A
1553
+ activated, [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API
1554
+ accepts + publishes (MUST NOT 422), so traffic flows to this
1555
+ channel. `short_form` is beta; `long_form` stays planned.
1506
1556
  Per ADR-0004 + ADR-0013
1507
1557
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
1508
1558
  messages:
@@ -1534,14 +1584,14 @@ operations:
1534
1584
  summary: Process audio_to_video operation
1535
1585
  description: |
1536
1586
  The `operation-audio-to-video` Lambda (cross-repo follow-up —
1537
- lambdas pre-launch epic Wave A, not yet shipped) consumes
1587
+ lambdas pre-launch epic Wave A, live) consumes
1538
1588
  audio_to_video requests routed by
1539
1589
  `operation_type=audio_to_video`. Multi-input role-based with
1540
1590
  role asymmetry (Path B with `role: base` audio REQUIRED +
1541
1591
  `role: overlay` image OPTIONAL per `per_role_cardinality`).
1542
- `availability: planned`; the API rejects workflow-create with
1543
- `feature_not_available` (422) until the Lambda ships, so
1544
- traffic does not reach this channel today.
1592
+ `availability: beta` (Wave A activated,
1593
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
1594
+ publishes (MUST NOT 422), so traffic flows to this channel.
1545
1595
  Per ADR-0004 + ADR-0015
1546
1596
  ([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
1547
1597
  messages:
@@ -1820,7 +1870,7 @@ components:
1820
1870
  **non-compression** operation (thumbnail, image_watermark,
1821
1871
  text_watermark, merge, archive, convert, custom_luma,
1822
1872
  audio_overlay, audio_watermark, audio_to_video,
1823
- video_watermark, video_text_watermark). Published to the
1873
+ video_watermark, video_text_watermark, split). Published to the
1824
1874
  `operations` SNS topic; routed by the single-attribute
1825
1875
  filter `operation_type` to one of the ops-family queues.
1826
1876
 
@@ -1830,8 +1880,8 @@ components:
1830
1880
  `thumbnail_office`, `image_watermark`, `text_watermark`,
1831
1881
  `merge`, `archive`, `convert`, `custom_luma`,
1832
1882
  `audio_overlay`, `audio_watermark`, `audio_to_video`,
1833
- `video_watermark`, `video_text_watermark`. Used by SNS as
1834
- the filter attribute on the `operations` topic.
1883
+ `video_watermark`, `video_text_watermark`, `split`. Used by
1884
+ SNS as the filter attribute on the `operations` topic.
1835
1885
  - `media_group`: informational metadata, present for every
1836
1886
  operation except `archive` (which is media-agnostic). Values:
1837
1887
  `image`, `video`, `audio`, `document`. **Not** used by SNS as
@@ -1840,7 +1890,8 @@ components:
1840
1890
 
1841
1891
  **Input models:**
1842
1892
  - Single-input operations (thumbnail, text_watermark, convert,
1843
- audio_watermark): use `source_bucket` + `source_key`.
1893
+ audio_watermark, video_text_watermark, split): use
1894
+ `source_bucket` + `source_key`.
1844
1895
  `file_type` required. For `thumbnail`, the SNS
1845
1896
  `operation_type` attribute is permitted to carry a per-media
1846
1897
  sub-type value for routing (see `OperationRequestAttributes`
@@ -1850,23 +1901,29 @@ components:
1850
1901
  `required_tier: enterprise` so workflow-create rejects with
1851
1902
  422 + 403 today.
1852
1903
  - Multi-input operations (merge, archive, image_watermark,
1853
- custom_luma, audio_overlay, audio_to_video): use `sources`
1854
- array. Merge additionally requires `output_type`.
1855
- image_watermark, custom_luma, audio_overlay, and
1856
- audio_to_video use `role` per `JobInputV2.role`.
1904
+ custom_luma, audio_overlay, audio_to_video, video_watermark):
1905
+ use `sources` array. Merge additionally requires `output_type`.
1906
+ image_watermark, custom_luma, audio_overlay, audio_to_video,
1907
+ and video_watermark use `role` per `JobInputV2.role`.
1857
1908
  audio_to_video has role asymmetry — REQUIRED `base` (audio)
1858
1909
  + OPTIONAL `overlay` (image 0..1) per
1859
1910
  `per_role_cardinality`; sum-of-role-minima drives the
1860
1911
  minimum `sources` count (1 for audio_to_video; 2 for all
1861
- other role-based ops today). custom_luma, audio_overlay,
1862
- and audio_to_video are `availability: planned` so
1863
- workflow-create rejects with 422 today.
1912
+ other role-based ops today). custom_luma and audio_overlay
1913
+ are `availability: planned` so workflow-create rejects with
1914
+ 422 today (audio_to_video and video_watermark are now `beta` —
1915
+ Wave A activated).
1864
1916
 
1865
1917
  **Migration window note.** During the thumbnail sub-type
1866
1918
  migration, both `operation_type=thumbnail` (legacy) and
1867
1919
  `operation_type=thumbnail_{image,video,document,office}` (new)
1868
- are valid routing targets. The API publisher currently emits
1869
- the legacy value only; sub-type adoption is a follow-up API PR.
1920
+ are valid routing targets. The API publisher emits the per-media
1921
+ sub-type value on the SNS `operation_type` attribute (resolved
1922
+ from the operation's effective input MIME); the payload
1923
+ `operation_type` field always remains `thumbnail`. The legacy
1924
+ bare `thumbnail` attribute value is retained as a valid routing
1925
+ target during the migration window but is no longer emitted by
1926
+ the publisher.
1870
1927
  contentType: application/json
1871
1928
  headers:
1872
1929
  $ref: '#/components/schemas/OperationRequestAttributes'
@@ -2623,9 +2680,10 @@ components:
2623
2680
  prefix per ADR-0015 — the operation is multi-input
2624
2681
  role-based with role asymmetry: required audio base +
2625
2682
  optional image overlay; routing follows the `base` role).
2626
- The operation is `availability: planned` per
2627
- [`SlluxMBN`](https://trello.com/c/SlluxMBN), so this
2628
- constraint is contract-defined but not exercised today.
2683
+ The operation is `availability: beta` per
2684
+ [`SlluxMBN`](https://trello.com/c/SlluxMBN) +
2685
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4) (Wave A activated),
2686
+ so this constraint is exercised on live traffic.
2629
2687
  - For `operation_type = image_watermark`, `media_group` must
2630
2688
  equal `image` while only the stable `image` mime_group is
2631
2689
  dispatchable. The schema declares `image_gif` and `video`
@@ -2803,17 +2861,18 @@ components:
2803
2861
  API to SNS, consumed by Lambda from SQS.
2804
2862
 
2805
2863
  **Single-input operations** (compress, thumbnail, text_watermark,
2806
- convert): use `source_bucket` + `source_key` for the input file.
2807
- `file_type` is required.
2864
+ convert, audio_watermark, video_text_watermark, split): use
2865
+ `source_bucket` + `source_key` for the input file. `file_type` is
2866
+ required.
2808
2867
 
2809
2868
  **Multi-input operations** (merge, archive, image_watermark,
2810
- custom_luma, audio_overlay, audio_to_video): use `sources`
2811
- array. Each entry has `bucket` + `key`. Merge entries may
2812
- include per-input overrides (e.g. transition type). Merge
2813
- also requires `output_type`. custom_luma, audio_overlay, and
2814
- audio_to_video are
2815
- `availability: planned` so workflow-create rejects with 422
2816
- today; the wire shape is contract-defined.
2869
+ custom_luma, audio_overlay, audio_to_video, video_watermark):
2870
+ use `sources` array. Each entry has `bucket` + `key`. Merge
2871
+ entries may include per-input overrides (e.g. transition type).
2872
+ Merge also requires `output_type`. custom_luma and audio_overlay
2873
+ are `availability: planned` so workflow-create rejects with 422
2874
+ today (audio_to_video + video_watermark are now `beta` — Wave A
2875
+ activated, backends live); the wire shape is contract-defined.
2817
2876
 
2818
2877
  Note: `media_group` is **not** a field in this payload. It exists
2819
2878
  only as an SNS MessageAttribute on the non-compression branch; on
@@ -2911,12 +2970,13 @@ components:
2911
2970
  description: |
2912
2971
  Input files for multi-input operations (merge, archive,
2913
2972
  image_watermark, custom_luma, audio_overlay,
2914
- audio_to_video). Each entry specifies an S3 location.
2915
- Order matters for merge (concatenation order). Per-input
2916
- overrides (e.g. transition) can be inlined on each entry.
2917
- Role-based multi-input operations (image_watermark,
2918
- custom_luma, audio_overlay, audio_to_video) require a
2919
- `role` discriminator on each entry — see `SourceEntry.role`.
2973
+ audio_to_video, video_watermark). Each entry specifies an
2974
+ S3 location. Order matters for merge (concatenation order).
2975
+ Per-input overrides (e.g. transition) can be inlined on each
2976
+ entry. Role-based multi-input operations (image_watermark,
2977
+ custom_luma, audio_overlay, audio_to_video, video_watermark)
2978
+ require a `role` discriminator on each entry — see
2979
+ `SourceEntry.role`.
2920
2980
 
2921
2981
  **Minimum source count = sum of role minima** declared in
2922
2982
  the operation's `per_role_cardinality` (per ticket
@@ -3036,30 +3096,16 @@ components:
3036
3096
  description: Unique operation identifier (UUID v7).
3037
3097
  example: "018f9c42-5d6b-7481-b3df-9fd0a0a5e200"
3038
3098
  operation_type:
3039
- type: string
3040
- enum:
3041
- - compress
3042
- - merge
3043
- description: |
3044
- Coarse operation verb for the long-form job. Deliberately a
3045
- call-site subset of `OperationType` — only the long-form classes
3046
- the API actually publishes today (`compress`, `merge`). NOT the
3047
- full `OperationType` enum (which would over-promise the wire).
3099
+ $ref: '#/components/schemas/LongFormOperationType'
3048
3100
  processing_class:
3049
- type: string
3050
- const: long_form
3051
- description: |
3052
- Logical processing class — always the literal `long_form` on this
3053
- wire (never `short_form` / `blocked`; those exist only on the
3054
- upload-probe response and HTTP plan surfaces). The launcher forks
3055
- on this field; do not confuse it with the backend worker identity,
3056
- which stays off the wire per `schemas/FORMAT.md` §F8.
3101
+ $ref: '#/components/schemas/LongFormProcessingClass'
3057
3102
 
3058
3103
  SourceEntry:
3059
3104
  type: object
3060
3105
  description: |
3061
3106
  A single source file for multi-input operations (merge,
3062
- archive, image_watermark, custom_luma, audio_overlay).
3107
+ archive, image_watermark, custom_luma, audio_overlay,
3108
+ audio_to_video, video_watermark).
3063
3109
  Provides the S3 location, optional per-input overrides, and
3064
3110
  the `role` discriminator for role-based multi-input
3065
3111
  operations.
@@ -3082,9 +3128,52 @@ components:
3082
3128
  transition:
3083
3129
  type: string
3084
3130
  description: |
3085
- Per-input transition override for video merge.
3086
- Overrides the global transition option for the join point before this input.
3131
+ Per-input transition override for the join point before this
3132
+ input. Applies to both video and audio merge see the
3133
+ per-media per-input transition catalogs in
3134
+ `schemas/operations/merge.yaml`
3135
+ (`merge.video.per_input_options` / `merge.audio.per_input_options`),
3136
+ which the API validates against. Overrides the global
3137
+ `options.transition` for this join point.
3087
3138
  example: "none"
3139
+ crossfade_duration:
3140
+ type: number
3141
+ minimum: 0
3142
+ maximum: 10.0
3143
+ description: |
3144
+ Per-input crossfade duration override, in seconds, for the
3145
+ join point before this input. Overrides the global
3146
+ `options.crossfade_duration` for this join point. Per the
3147
+ `depends_on` on `merge.*.per_input_options.crossfade_duration`
3148
+ (which resolves against the sibling per-input option, see
3149
+ FORMAT.md), this takes effect only when this input's own
3150
+ `transition` override is `crossfade` — pair it with
3151
+ `transition: crossfade` on the same entry; it does NOT key off
3152
+ the global `options.transition`. Mirrors
3153
+ `merge.*.per_input_options.crossfade_duration` in
3154
+ `schemas/operations/merge.yaml` — the API validates this
3155
+ per-input value but, until this slot existed, dropped it at the
3156
+ wire boundary (the slot lets the merge Lambda's audio path
3157
+ honour it). The 0–10s bound here is a broad transport envelope;
3158
+ the effective per-media limits (video crossfade `0.1`–`5.0`,
3159
+ audio `0`–`10`) are enforced by the per-mime-group
3160
+ operation-options schema in `merge.yaml`, which the API
3161
+ validates against before publishing.
3162
+ example: 1.0
3163
+ gap_duration:
3164
+ type: number
3165
+ minimum: 0
3166
+ maximum: 10.0
3167
+ description: |
3168
+ Per-input silence/gap duration override, in seconds, inserted
3169
+ before this input at the join point. Overrides the global
3170
+ `options.gap_duration` for this join point. Mirrors
3171
+ `merge.audio.per_input_options.gap_duration` in
3172
+ `schemas/operations/merge.yaml` (no transition dependency) —
3173
+ added alongside `crossfade_duration` so the API does not
3174
+ silently drop this sibling per-input audio override at the wire
3175
+ boundary.
3176
+ example: 0.5
3088
3177
 
3089
3178
  # ============================================
3090
3179
  # OPERATION PROGRESS SCHEMA
@@ -3151,8 +3240,9 @@ components:
3151
3240
  `phase_input_index`. For single-input operations (most
3152
3241
  ops) `phase_total_inputs: 1` and `phase_input_index: 1`
3153
3242
  during the relevant phase. For multi-input merge,
3154
- archive, image_watermark, custom_luma, and audio_overlay,
3155
- this matches the inputs[] count. Per ticket I27.
3243
+ archive, image_watermark, custom_luma, audio_overlay,
3244
+ audio_to_video, and video_watermark, this matches the
3245
+ inputs[] count. Per ticket I27.
3156
3246
  example: 4
3157
3247
 
3158
3248
  # ============================================
@@ -4033,10 +4123,10 @@ components:
4033
4123
  the first OPTIONAL role on the contract — `role: base`
4034
4124
  audio required, `role: overlay` image 0..1 per
4035
4125
  `per_role_cardinality`). When overlay is omitted, the video
4036
- uses a solid background colour. `availability: planned` per
4037
- the operation schema; the API rejects workflow-create with
4038
- `feature_not_available` (422) until the Lambda ships, so
4039
- traffic does not reach SNS today. `media_group` is derived
4126
+ uses a solid background colour. `availability: beta` (Wave A,
4127
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4)) the Lambda
4128
+ backend is live, so the API accepts + publishes (MUST NOT 422);
4129
+ traffic flows to SNS. `media_group` is derived
4040
4130
  from the `base` role input MIME prefix per ADR-0015 (always
4041
4131
  `audio` for audio_to_video). Routes via
4042
4132
  `operation_type=audio_to_video` to `ops-audio-to-video`.
@@ -4047,7 +4137,9 @@ components:
4047
4137
  of each per `per_role_cardinality { base: 1/1, overlay:
4048
4138
  1/1 }`). Re-encode required; audio stream-copy passthrough.
4049
4139
  Distinct from `image_watermark` (pure-Rust/image-only —
4050
- see ADR-0013). `availability: planned`; routes via
4140
+ see ADR-0013). `availability: beta` (Wave A, `c3uthIP4` —
4141
+ Lambda backend live; `short_form` beta, `long_form` stays
4142
+ `planned`); routes via
4051
4143
  `operation_type=video_watermark` to `ops-video-watermark`.
4052
4144
  Per ADR-0004 + ADR-0013
4053
4145
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
@@ -4069,8 +4161,10 @@ components:
4069
4161
  a separate `split-video-fargate` worker via
4070
4162
  `processing_class`. `media_group` derives from the input
4071
4163
  MIME prefix per the existing single-input rule (no
4072
- operation-specific conditional needed). `availability:
4073
- planned`; routes via `operation_type=split` to `ops-split`.
4164
+ operation-specific conditional needed). `availability: beta`
4165
+ for the `audio` mime_group (`image_gif` / `document_pdf` /
4166
+ `video` stay `planned`); routes via `operation_type=split`
4167
+ to `ops-split`.
4074
4168
  Per ADR-0004 + ADR-0014
4075
4169
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
4076
4170
  enum:
@@ -4208,6 +4302,47 @@ components:
4208
4302
  - stream_copy
4209
4303
  - re_encode
4210
4304
 
4305
+ LongFormOperationType:
4306
+ type: string
4307
+ description: |
4308
+ Coarse operation verb for the long-form claim-check job
4309
+ (`LongFormJobMessage.operation_type`). Deliberately a call-site
4310
+ **subset** of `OperationType` — only the long-form classes the API
4311
+ actually publishes today (`compress`, `merge`). NOT the full
4312
+ `OperationType` enum (which would over-promise the wire). Future
4313
+ long-form publishers (e.g. `split` per
4314
+ [`rcwvUKhI`](https://trello.com/c/rcwvUKhI)) widen this enum when
4315
+ they ship.
4316
+
4317
+ Named-schema form lifted from inline at
4318
+ `LongFormJobMessage.operation_type` per ticket
4319
+ [`A3DyuYUd`](https://trello.com/c/A3DyuYUd) — generated SDK bindings
4320
+ emit a stable typed name instead of an `AnonymousSchema_N`
4321
+ placeholder.
4322
+ enum:
4323
+ - compress
4324
+ - merge
4325
+
4326
+ LongFormProcessingClass:
4327
+ type: string
4328
+ description: |
4329
+ Logical processing class on the long-form claim-check wire
4330
+ (`LongFormJobMessage.processing_class`) — always the literal
4331
+ `long_form` (never `short_form` / `blocked`; those exist only on the
4332
+ upload-probe response and HTTP plan surfaces). The launcher forks on
4333
+ this field; do not confuse it with the backend worker identity, which
4334
+ stays off the wire per `schemas/FORMAT.md` §F8.
4335
+
4336
+ A single-value enum (not a JSON-Schema `const`): named + `enum` is the
4337
+ repo's proven typed-codegen form (mirrors `JobInputRole` /
4338
+ `ReEncodeDecision`), whereas `const` degraded to an unconstrained
4339
+ `String` in SDK generators. Lifted from inline at
4340
+ `LongFormJobMessage.processing_class` per ticket
4341
+ [`A3DyuYUd`](https://trello.com/c/A3DyuYUd). Single-member enum
4342
+ validates identically to the prior `const long_form`.
4343
+ enum:
4344
+ - long_form
4345
+
4211
4346
  ProgressStatus:
4212
4347
  type: string
4213
4348
  description: |