@giveitsmaller/contracts 0.9.0 → 0.17.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 (446) hide show
  1. package/asyncapi/events.yaml +647 -60
  2. package/availability/availability.json +318 -94
  3. package/dist/asyncapi/Failure.d.ts +2 -0
  4. package/dist/asyncapi/LongFormOperationType.d.ts +2 -1
  5. package/dist/asyncapi/LongFormOperationType.js +1 -0
  6. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  7. package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
  8. package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
  9. package/dist/asyncapi/OperationResultMetadata.js +1 -0
  10. package/dist/asyncapi/OperationType.d.ts +2 -1
  11. package/dist/asyncapi/OperationType.js +1 -0
  12. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  13. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  14. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  15. package/dist/asyncapi/SourceEntry.d.ts +2 -0
  16. package/dist/asyncapi/Unindexed.d.ts +1 -0
  17. package/dist/asyncapi/index.d.ts +2 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  19. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  20. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  21. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  22. package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
  23. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  24. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  25. package/dist/openapi/models/AuthErrorType.js +2 -2
  26. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
  27. package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
  28. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  29. package/dist/openapi/models/AvailabilityValue.js +2 -2
  30. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
  31. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  32. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  33. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  34. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  35. package/dist/openapi/models/CallbackEventType.js +2 -2
  36. package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
  37. package/dist/openapi/models/ChangePasswordRequest.js +47 -0
  38. package/dist/openapi/models/CompositionPlan.d.ts +72 -0
  39. package/dist/openapi/models/CompositionPlan.js +53 -0
  40. package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
  41. package/dist/openapi/models/CompositionPlanJob.js +48 -0
  42. package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
  43. package/dist/openapi/models/CompositionPlanOperation.js +62 -0
  44. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
  45. package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
  46. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
  47. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
  48. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
  49. package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
  50. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  51. package/dist/openapi/models/ConnectionSource.js +2 -2
  52. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  53. package/dist/openapi/models/ContactRequest.js +2 -2
  54. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  55. package/dist/openapi/models/ContactSubject.js +2 -2
  56. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  57. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  58. package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
  59. package/dist/openapi/models/CreateApiKey201Response.js +54 -0
  60. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
  61. package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
  62. package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
  63. package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
  64. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  65. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  66. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  67. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  68. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  69. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  70. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  71. package/dist/openapi/models/CreditTransaction.js +2 -2
  72. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  73. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  74. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  75. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  76. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  77. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  78. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  79. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  80. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  81. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  82. package/dist/openapi/models/Delivery.d.ts +2 -2
  83. package/dist/openapi/models/Delivery.js +2 -2
  84. package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
  85. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  86. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  87. package/dist/openapi/models/DeliveryPlan.js +2 -2
  88. package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
  89. package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
  90. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  91. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  92. package/dist/openapi/models/DeliverySelection.d.ts +6 -4
  93. package/dist/openapi/models/DeliverySelection.js +2 -2
  94. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
  95. package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
  96. package/dist/openapi/models/EndpointProjection.d.ts +12 -3
  97. package/dist/openapi/models/EndpointProjection.js +2 -2
  98. package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
  99. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  100. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  101. package/dist/openapi/models/EstimateQuality.js +2 -2
  102. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  103. package/dist/openapi/models/EstimateRange.js +2 -2
  104. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  105. package/dist/openapi/models/ExternalDestination.js +2 -2
  106. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  107. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  108. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  109. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  110. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  111. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  112. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  113. package/dist/openapi/models/ExternalImportToken.js +2 -2
  114. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  115. package/dist/openapi/models/ExternalSource.js +2 -2
  116. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +13 -2
  117. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  118. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
  119. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  120. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  121. package/dist/openapi/models/FeatureViolation.js +2 -2
  122. package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
  123. package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
  124. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
  125. package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
  126. package/dist/openapi/models/JobDefinition.d.ts +20 -4
  127. package/dist/openapi/models/JobDefinition.js +2 -2
  128. package/dist/openapi/models/JobDownload.d.ts +2 -2
  129. package/dist/openapi/models/JobDownload.js +2 -2
  130. package/dist/openapi/models/JobInputV2.d.ts +13 -9
  131. package/dist/openapi/models/JobInputV2.js +5 -5
  132. package/dist/openapi/models/JobMediaClass.d.ts +34 -0
  133. package/dist/openapi/models/JobMediaClass.js +52 -0
  134. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  135. package/dist/openapi/models/JobOutputSource.js +2 -2
  136. package/dist/openapi/models/JobResponse.d.ts +2 -2
  137. package/dist/openapi/models/JobResponse.js +2 -2
  138. package/dist/openapi/models/JobStatus.d.ts +2 -2
  139. package/dist/openapi/models/JobStatus.js +2 -2
  140. package/dist/openapi/models/JobType.d.ts +2 -2
  141. package/dist/openapi/models/JobType.js +2 -2
  142. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  143. package/dist/openapi/models/LivenessResponse.js +2 -2
  144. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  145. package/dist/openapi/models/LoginUser200Response.js +2 -2
  146. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  147. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  148. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  149. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  150. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  151. package/dist/openapi/models/LoginUserRequest.js +2 -2
  152. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  153. package/dist/openapi/models/MetadataResponse.js +2 -2
  154. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  155. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  156. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  157. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  158. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  159. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  160. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  161. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  162. package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
  163. package/dist/openapi/models/MimeGroupSchema.js +5 -2
  164. package/dist/openapi/models/MultiInputSource.d.ts +41 -0
  165. package/dist/openapi/models/MultiInputSource.js +52 -0
  166. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  167. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  168. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  169. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  170. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  171. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  172. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  173. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  174. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  175. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  176. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  177. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  178. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  179. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  180. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  181. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  182. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  183. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  184. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  185. package/dist/openapi/models/MultipartPartListing.js +2 -2
  186. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  187. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  188. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  189. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  190. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  191. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  192. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  193. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  194. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  195. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  196. package/dist/openapi/models/OperationDefinition.d.ts +27 -2
  197. package/dist/openapi/models/OperationDefinition.js +11 -2
  198. package/dist/openapi/models/OperationDownload.d.ts +30 -2
  199. package/dist/openapi/models/OperationDownload.js +6 -2
  200. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  201. package/dist/openapi/models/OperationInputModel.js +3 -3
  202. package/dist/openapi/models/OperationResponse.d.ts +18 -2
  203. package/dist/openapi/models/OperationResponse.js +5 -2
  204. package/dist/openapi/models/OperationResult.d.ts +2 -2
  205. package/dist/openapi/models/OperationResult.js +2 -2
  206. package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
  207. package/dist/openapi/models/OperationResultMetadata.js +41 -0
  208. package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
  209. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  210. package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
  211. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  212. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  213. package/dist/openapi/models/OperationStatus.js +2 -2
  214. package/dist/openapi/models/OperationType.d.ts +7 -4
  215. package/dist/openapi/models/OperationType.js +8 -5
  216. package/dist/openapi/models/OperationsSchemaResponse.d.ts +32 -4
  217. package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  224. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  225. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  226. package/dist/openapi/models/OptionSchema.d.ts +2 -2
  227. package/dist/openapi/models/OptionSchema.js +2 -2
  228. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  229. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  230. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  231. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  232. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  233. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  234. package/dist/openapi/models/ProbePendingResponse.d.ts +13 -2
  235. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  236. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  237. package/dist/openapi/models/ProcessingClass.js +2 -2
  238. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  239. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  240. package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
  241. package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
  242. package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
  243. package/dist/openapi/models/ProcessingClassEntry.js +57 -0
  244. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +13 -2
  245. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  246. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  247. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  248. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  249. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  250. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  251. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  252. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  253. package/dist/openapi/models/ProcessingPlan.js +2 -2
  254. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  255. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  256. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  257. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  258. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  259. package/dist/openapi/models/ReadinessResponse.js +2 -2
  260. package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
  261. package/dist/openapi/models/RegisterUser422Response.js +47 -0
  262. package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
  263. package/dist/openapi/models/RegisterUserRequest.js +47 -0
  264. package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
  265. package/dist/openapi/models/ResetPasswordRequest.js +47 -0
  266. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  267. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  268. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  269. package/dist/openapi/models/RetryResponse.js +2 -2
  270. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  271. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  272. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  273. package/dist/openapi/models/SseCompletionBase.js +2 -2
  274. package/dist/openapi/models/SseEventType.d.ts +2 -2
  275. package/dist/openapi/models/SseEventType.js +2 -2
  276. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  277. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  278. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  279. package/dist/openapi/models/SseJobFailedData.js +2 -2
  280. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  281. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  282. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  283. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  284. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  285. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  286. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  287. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  288. package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
  289. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  290. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  291. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  292. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  293. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  294. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  295. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  296. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  297. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  298. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  299. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  300. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  301. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  302. package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
  303. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  304. package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
  305. package/dist/openapi/models/UpdateProfile200Response.js +54 -0
  306. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
  307. package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
  308. package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
  309. package/dist/openapi/models/UpdateProfile422Response.js +47 -0
  310. package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
  311. package/dist/openapi/models/UpdateProfileRequest.js +47 -0
  312. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  313. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  314. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
  315. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  316. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  317. package/dist/openapi/models/UploadFile403Response.js +2 -2
  318. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  319. package/dist/openapi/models/UploadFile422Response.js +2 -2
  320. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  321. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  322. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  323. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  324. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  325. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  326. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  327. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  328. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  329. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  330. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  331. package/dist/openapi/models/UploadResponse.js +2 -2
  332. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
  333. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  334. package/dist/openapi/models/UploadSource.d.ts +2 -2
  335. package/dist/openapi/models/UploadSource.js +2 -2
  336. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  337. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  338. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  339. package/dist/openapi/models/UploadThresholds.js +2 -2
  340. package/dist/openapi/models/UserTier.d.ts +2 -2
  341. package/dist/openapi/models/UserTier.js +2 -2
  342. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +2 -2
  343. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  344. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  345. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  346. package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
  347. package/dist/openapi/models/VerifyEmailRequest.js +43 -0
  348. package/dist/openapi/models/WarningType.d.ts +2 -2
  349. package/dist/openapi/models/WarningType.js +2 -2
  350. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  351. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  352. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  353. package/dist/openapi/models/WebhookPayload.js +2 -2
  354. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  355. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  356. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  357. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  358. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  359. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  360. package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
  361. package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
  362. package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
  363. package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
  364. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  365. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  366. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  367. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  368. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  369. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  370. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  371. package/dist/openapi/models/WorkflowEdge.js +2 -2
  372. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
  373. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  374. package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
  375. package/dist/openapi/models/WorkflowListResponse.js +50 -0
  376. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
  377. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
  378. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  379. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  380. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  381. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  382. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  383. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  384. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  385. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  386. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  387. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  388. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  389. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  390. package/dist/openapi/models/WorkflowSource.d.ts +7 -4
  391. package/dist/openapi/models/WorkflowSource.js +2 -2
  392. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  393. package/dist/openapi/models/WorkflowStatus.js +2 -2
  394. package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
  395. package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
  396. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  397. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  398. package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
  399. package/dist/openapi/models/WorkflowSummary.js +57 -0
  400. package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
  401. package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
  402. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  403. package/dist/openapi/models/WorkflowWarning.js +2 -2
  404. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  405. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  406. package/dist/openapi/models/index.d.ts +31 -1
  407. package/dist/openapi/models/index.js +31 -1
  408. package/dist/openapi/runtime.d.ts +2 -2
  409. package/dist/openapi/runtime.js +2 -2
  410. package/dist/operations/compress.d.ts +0 -9
  411. package/dist/operations/compress.js +0 -6
  412. package/dist/operations/compress.metadata.js +4 -12
  413. package/dist/operations/index.d.ts +3 -0
  414. package/dist/operations/index.js +3 -0
  415. package/dist/operations/merge.d.ts +4 -0
  416. package/dist/operations/merge.metadata.js +12 -0
  417. package/dist/operations/passthrough.metadata.d.ts +2 -0
  418. package/dist/operations/passthrough.metadata.js +6 -0
  419. package/dist/operations/render_variants.d.ts +24 -0
  420. package/dist/operations/render_variants.js +14 -0
  421. package/dist/operations/render_variants.metadata.d.ts +2 -0
  422. package/dist/operations/render_variants.metadata.js +18 -0
  423. package/dist/operations/split.d.ts +8 -1
  424. package/dist/operations/split.js +5 -0
  425. package/dist/operations/split.metadata.js +19 -6
  426. package/openapi/api.yaml +2333 -241
  427. package/operations/schemas/archive.yaml +1 -1
  428. package/operations/schemas/audio_overlay.yaml +29 -13
  429. package/operations/schemas/audio_to_video.yaml +6 -5
  430. package/operations/schemas/audio_watermark.yaml +18 -16
  431. package/operations/schemas/compress.yaml +60 -35
  432. package/operations/schemas/convert.yaml +6 -1
  433. package/operations/schemas/custom_luma.yaml +18 -3
  434. package/operations/schemas/image_watermark.yaml +22 -7
  435. package/operations/schemas/merge.yaml +88 -35
  436. package/operations/schemas/passthrough.yaml +49 -0
  437. package/operations/schemas/render_variants.yaml +117 -0
  438. package/operations/schemas/split.yaml +78 -20
  439. package/operations/schemas/text_watermark.yaml +6 -6
  440. package/operations/schemas/thumbnail.yaml +1 -1
  441. package/operations/schemas/video_text_watermark.yaml +2 -2
  442. package/operations/schemas/video_watermark.yaml +7 -4
  443. package/package.json +3 -1
  444. package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
  445. package/dist/openapi/models/LogoutUser200Response.js +0 -53
  446. /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.0.0
2
2
  info:
3
3
  title: GISL Compression Events
4
- version: 3.9.0
4
+ version: 3.19.0
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
@@ -28,9 +28,11 @@ info:
28
28
  [I20](https://trello.com/c/omiCq7Vn) +
29
29
  [`4NrRPCgh`](https://trello.com/c/4NrRPCgh)) — their queues are
30
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
31
+ `availability: beta` for its `audio` and `video` mime_groups
32
+ (workers live on staging — [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
33
+ video activates BOTH classes — `long_form` / `split-video-fargate`
34
+ proven on staging per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI));
35
+ its `image_gif` and `document_pdf` mime_groups stay
34
36
  `availability: planned`.
35
37
  `audio_to_video` and `video_watermark` are `availability: beta`
36
38
  (Wave A activation [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
@@ -68,7 +70,7 @@ info:
68
70
 
69
71
  **Notifications (Lambda -> API).** Lambda functions publish progress
70
72
  and result notifications to the FIFO SNS topic
71
- `gisl-{env}-{region}-notifications-operations.fifo`. The API consumes
73
+ `gisl-{env}-{region}-notifications-jobs.fifo`. The API consumes
72
74
  from the corresponding FIFO SQS queue via a Raw Message Delivery
73
75
  subscription. This notification path is unchanged from previous
74
76
  releases.
@@ -209,19 +211,25 @@ channels:
209
211
  `ops-video-text-watermark` queue (gated by
210
212
  `availability: planned` until Lambda ships per
211
213
  [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — 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);
214
+ - `operation_type = split` -> `ops-split` queue (the `audio` and
215
+ `video` mime_groups are `availability: beta` — audio + short-form
216
+ video split traffic reaches this queue; `image_gif` /
217
+ `document_pdf` stay `availability: planned` until their Lambdas
218
+ ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
217
219
  long-form video splits route via `processing_class` to the
218
- `split-video-fargate` worker, same OperationType, different
219
- worker)
220
+ `split-video-fargate` worker same OperationType, different
221
+ worker — and stay `availability: planned` until it ships)
220
222
  - `operation_type = audio_watermark` -> `ops-audio-watermark`
221
223
  queue (gated by `availability: planned` +
222
224
  `required_tier: enterprise` per
223
225
  [I20](https://trello.com/c/omiCq7Vn) — same 422 gating, plus
224
226
  a 403 `feature_tier_restricted` for non-enterprise callers)
227
+ - `operation_type = render_variants` -> `ops-render-variants`
228
+ queue (gated by `availability: planned` until the worker +
229
+ SNS subscription ship per
230
+ [`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
231
+ [`MNuDYJaY`](https://trello.com/c/MNuDYJaY) — same
232
+ `feature_not_available` 422 gating)
225
233
 
226
234
  The API's Option A publisher sets `operation_type` as the filter
227
235
  attribute and additionally sets `media_group` as an **informational**
@@ -394,6 +402,12 @@ channels:
394
402
  `thumbnail_document`, `thumbnail_office`), resolved from each
395
403
  operation's effective input MIME. Retirement of this legacy queue
396
404
  follows once no traffic remains.
405
+ bindings:
406
+ sqs:
407
+ queue:
408
+ name: gisl-{env}-{region}-ops-thumbnail
409
+ fifoQueue: false
410
+ bindingVersion: '0.2.0'
397
411
  parameters:
398
412
  env:
399
413
  description: Environment (local, stg, prod)
@@ -415,6 +429,12 @@ channels:
415
429
  `operation_type=thumbnail_image` on the SNS attribute (resolved from
416
430
  the operation's effective input MIME); the payload `operation_type`
417
431
  field stays `thumbnail`.
432
+ bindings:
433
+ sqs:
434
+ queue:
435
+ name: gisl-{env}-{region}-ops-thumbnail-image
436
+ fifoQueue: false
437
+ bindingVersion: '0.2.0'
418
438
  parameters:
419
439
  env:
420
440
  description: Environment (local, stg, prod)
@@ -436,6 +456,12 @@ channels:
436
456
  `operation_type=thumbnail_video` on the SNS attribute (resolved from
437
457
  the operation's effective input MIME); the payload `operation_type`
438
458
  field stays `thumbnail`.
459
+ bindings:
460
+ sqs:
461
+ queue:
462
+ name: gisl-{env}-{region}-ops-thumbnail-video
463
+ fifoQueue: false
464
+ bindingVersion: '0.2.0'
439
465
  parameters:
440
466
  env:
441
467
  description: Environment (local, stg, prod)
@@ -457,6 +483,12 @@ channels:
457
483
  `operation_type=thumbnail_document` on the SNS attribute (resolved
458
484
  from the operation's effective input MIME); the payload
459
485
  `operation_type` field stays `thumbnail`.
486
+ bindings:
487
+ sqs:
488
+ queue:
489
+ name: gisl-{env}-{region}-ops-thumbnail-document
490
+ fifoQueue: false
491
+ bindingVersion: '0.2.0'
460
492
  parameters:
461
493
  env:
462
494
  description: Environment (local, stg, prod)
@@ -479,6 +511,12 @@ channels:
479
511
  emits `operation_type=thumbnail_office` on the SNS attribute
480
512
  (resolved from the operation's effective input MIME); the payload
481
513
  `operation_type` field stays `thumbnail`.
514
+ bindings:
515
+ sqs:
516
+ queue:
517
+ name: gisl-{env}-{region}-ops-thumbnail-office
518
+ fifoQueue: false
519
+ bindingVersion: '0.2.0'
482
520
  parameters:
483
521
  env:
484
522
  description: Environment (local, stg, prod)
@@ -507,6 +545,12 @@ channels:
507
545
  queue. Video bases are NOT routed here — they go to
508
546
  `ops-video-watermark` for the dedicated `video_watermark`
509
547
  operation per ADR-0013. Per ADR-0004 + I4-CONS + I5 + ADR-0013.
548
+ bindings:
549
+ sqs:
550
+ queue:
551
+ name: gisl-{env}-{region}-ops-image-watermark
552
+ fifoQueue: false
553
+ bindingVersion: '0.2.0'
510
554
  parameters:
511
555
  env:
512
556
  description: Environment (local, stg, prod)
@@ -525,6 +569,12 @@ channels:
525
569
  (Liberation Sans) — supports `single` (one label at anchor) and
526
570
  `tiled` (Cinavia-style angled fill) modes. Backed by the
527
571
  operation-text-watermark Lambda. Per ADR-0004 + I4-CONS.
572
+ bindings:
573
+ sqs:
574
+ queue:
575
+ name: gisl-{env}-{region}-ops-text-watermark
576
+ fifoQueue: false
577
+ bindingVersion: '0.2.0'
528
578
  parameters:
529
579
  env:
530
580
  description: Environment (local, stg, prod)
@@ -544,6 +594,12 @@ channels:
544
594
  concat) — the `output_type` field on the request determines the
545
595
  encoding path internally, not the routing. Image collage and PDF
546
596
  concatenation are not supported by the V1 Lambda.
597
+ bindings:
598
+ sqs:
599
+ queue:
600
+ name: gisl-{env}-{region}-ops-merge
601
+ fifoQueue: false
602
+ bindingVersion: '0.2.0'
547
603
  parameters:
548
604
  env:
549
605
  description: Environment (local, stg, prod)
@@ -560,6 +616,12 @@ channels:
560
616
  Subscribed to the `operations` SNS topic with filter
561
617
  `operation_type = archive`. Media-agnostic: accepts mixed input
562
618
  types. Backed by the archive Lambda (`operation-archive`).
619
+ bindings:
620
+ sqs:
621
+ queue:
622
+ name: gisl-{env}-{region}-ops-archive
623
+ fifoQueue: false
624
+ bindingVersion: '0.2.0'
563
625
  parameters:
564
626
  env:
565
627
  description: Environment (local, stg, prod)
@@ -577,6 +639,12 @@ channels:
577
639
  `operation_type = convert`. Handles format conversion across all
578
640
  media types (image, video, audio, document). Backed by the convert
579
641
  Lambda (`operation-convert`).
642
+ bindings:
643
+ sqs:
644
+ queue:
645
+ name: gisl-{env}-{region}-ops-convert
646
+ fifoQueue: false
647
+ bindingVersion: '0.2.0'
580
648
  parameters:
581
649
  env:
582
650
  description: Environment (local, stg, prod)
@@ -602,6 +670,12 @@ channels:
602
670
  `operation-custom-luma` Lambda (cross-repo follow-up; not yet
603
671
  shipped).
604
672
  Per ADR-0004 + I29 (Trello EPUE5Vs1).
673
+ bindings:
674
+ sqs:
675
+ queue:
676
+ name: gisl-{env}-{region}-ops-custom-luma
677
+ fifoQueue: false
678
+ bindingVersion: '0.2.0'
605
679
  parameters:
606
680
  env:
607
681
  description: Environment (local, stg, prod)
@@ -634,6 +708,12 @@ channels:
634
708
  / "audio branding".
635
709
 
636
710
  Per ADR-0004 + I19 (Trello Xr3Z4GBF).
711
+ bindings:
712
+ sqs:
713
+ queue:
714
+ name: gisl-{env}-{region}-ops-audio-overlay
715
+ fifoQueue: false
716
+ bindingVersion: '0.2.0'
637
717
  parameters:
638
718
  env:
639
719
  description: Environment (local, stg, prod)
@@ -662,6 +742,12 @@ channels:
662
742
 
663
743
  Per ADR-0004 + ADR-0015
664
744
  ([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
745
+ bindings:
746
+ sqs:
747
+ queue:
748
+ name: gisl-{env}-{region}-ops-audio-to-video
749
+ fifoQueue: false
750
+ bindingVersion: '0.2.0'
665
751
  parameters:
666
752
  env:
667
753
  description: Environment (local, stg, prod)
@@ -682,11 +768,13 @@ channels:
682
768
  (no operation-specific conditional needed in
683
769
  OperationRequestAttributes).
684
770
 
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
771
+ `availability: beta` for the `audio` and `video` mime_groups
772
+ (workers live on staging). This SNS queue carries audio + SHORT-FORM
773
+ video split traffic only; long-form video split (now also `beta`)
774
+ routes via the direct-to-SQS `longformSplitVideo` claim-check to the
775
+ `split-video-fargate` worker, NOT here. The `image_gif` and
776
+ `document_pdf` mime_groups stay `availability: planned`, and the API
777
+ rejects their workflow-create with `feature_not_available` (422) until those
690
778
  Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
691
779
  follow-up — lambdas pre-launch epic Wave A, ticket
692
780
  [DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
@@ -701,6 +789,12 @@ channels:
701
789
  MIME detection.
702
790
 
703
791
  Per ADR-0004 + ADR-0014.
792
+ bindings:
793
+ sqs:
794
+ queue:
795
+ name: gisl-{env}-{region}-ops-split
796
+ fifoQueue: false
797
+ bindingVersion: '0.2.0'
704
798
  parameters:
705
799
  env:
706
800
  description: Environment (local, stg, prod)
@@ -733,6 +827,12 @@ channels:
733
827
 
734
828
  Per ADR-0004 + ADR-0013
735
829
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
830
+ bindings:
831
+ sqs:
832
+ queue:
833
+ name: gisl-{env}-{region}-ops-video-watermark
834
+ fifoQueue: false
835
+ bindingVersion: '0.2.0'
736
836
  parameters:
737
837
  env:
738
838
  description: Environment (local, stg, prod)
@@ -763,6 +863,12 @@ channels:
763
863
 
764
864
  Per ADR-0004 + ADR-0013
765
865
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
866
+ bindings:
867
+ sqs:
868
+ queue:
869
+ name: gisl-{env}-{region}-ops-video-text-watermark
870
+ fifoQueue: false
871
+ bindingVersion: '0.2.0'
766
872
  parameters:
767
873
  env:
768
874
  description: Environment (local, stg, prod)
@@ -797,6 +903,37 @@ channels:
797
903
  own-watermarks-only extraction (declared in `openapi/api.yaml`).
798
904
 
799
905
  Per ADR-0004 + I20 (Trello omiCq7Vn).
906
+ bindings:
907
+ sqs:
908
+ queue:
909
+ name: gisl-{env}-{region}-ops-audio-watermark
910
+ fifoQueue: false
911
+ bindingVersion: '0.2.0'
912
+ parameters:
913
+ env:
914
+ description: Environment (local, stg, prod)
915
+ region:
916
+ description: AWS region abbreviation (euw1, use1, etc.)
917
+ messages:
918
+ operationRequest:
919
+ $ref: '#/components/messages/OperationRequestMessage'
920
+
921
+ opsRenderVariants:
922
+ address: gisl-{env}-{region}-ops-render-variants
923
+ description: |
924
+ SQS queue for render_variants operations (image fan-out — one
925
+ source image to N resized / re-encoded variants). Subscribed to the
926
+ `operations` SNS topic with filter `operation_type = render_variants`.
927
+ Backed by the render_variants Lambda (`operation-render-variants`).
928
+ No traffic reaches this queue while render_variants is
929
+ `availability: planned` (per ticket w3EwzHYd — same `feature_not_
930
+ available` 422 gating until the worker + this subscription ship).
931
+ bindings:
932
+ sqs:
933
+ queue:
934
+ name: gisl-{env}-{region}-ops-render-variants
935
+ fifoQueue: false
936
+ bindingVersion: '0.2.0'
800
937
  parameters:
801
938
  env:
802
939
  description: Environment (local, stg, prod)
@@ -938,6 +1075,18 @@ channels:
938
1075
  region:
939
1076
  description: AWS region abbreviation (euw1, use1, etc.)
940
1077
 
1078
+ opsRenderVariantsDlq:
1079
+ address: gisl-{env}-{region}-ops-render-variants-dlq
1080
+ description: |
1081
+ DLQ for failed render_variants operations (per ticket w3EwzHYd).
1082
+ Messages land here after 5 failed processing attempts. No traffic
1083
+ reaches this queue while render_variants is `availability: planned`.
1084
+ parameters:
1085
+ env:
1086
+ description: Environment (local, stg, prod)
1087
+ region:
1088
+ description: AWS region abbreviation (euw1, use1, etc.)
1089
+
941
1090
  opsAudioToVideoDlq:
942
1091
  address: gisl-{env}-{region}-ops-audio-to-video-dlq
943
1092
  description: |
@@ -986,9 +1135,11 @@ channels:
986
1135
  DLQ for failed split operations (per ticket
987
1136
  [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) / ADR-0014).
988
1137
  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.
1138
+ the `split` `audio` + `video` mime_groups (now `availability: beta`;
1139
+ this DLQ backs the short-form SNS `ops-split` queue — long-form video
1140
+ split has its own `longformSplitVideoDlq`); the `image_gif` and
1141
+ `document_pdf` groups stay `availability: planned` and carry no
1142
+ traffic yet.
992
1143
  parameters:
993
1144
  env:
994
1145
  description: Environment (local, stg, prod)
@@ -1041,6 +1192,12 @@ channels:
1041
1192
 
1042
1193
  Standard (non-FIFO) — each probe request is independent; no
1043
1194
  ordering guarantees are required across uploads.
1195
+ bindings:
1196
+ sqs:
1197
+ queue:
1198
+ name: gisl-{env}-{region}-upload-probe
1199
+ fifoQueue: false
1200
+ bindingVersion: '0.2.0'
1044
1201
  parameters:
1045
1202
  env:
1046
1203
  description: Environment (local, stg, prod)
@@ -1081,6 +1238,12 @@ channels:
1081
1238
  The sync `POST /api/uploads/{id}/probe` path does not publish
1082
1239
  here — sync results are returned inline via the Lambda
1083
1240
  RequestResponse return value.
1241
+ bindings:
1242
+ sqs:
1243
+ queue:
1244
+ name: gisl-{env}-{region}-upload-probe-completions
1245
+ fifoQueue: false
1246
+ bindingVersion: '0.2.0'
1084
1247
  parameters:
1085
1248
  env:
1086
1249
  description: Environment (local, stg, prod)
@@ -1107,8 +1270,8 @@ channels:
1107
1270
  # NOTIFICATIONS (Lambda -> API)
1108
1271
  # ============================================
1109
1272
 
1110
- notificationsOperationsTopic:
1111
- address: gisl-{env}-{region}-notifications-operations.fifo
1273
+ notificationsJobsTopic:
1274
+ address: gisl-{env}-{region}-notifications-jobs.fifo
1112
1275
  description: |
1113
1276
  FIFO SNS topic where Lambdas publish all operation notifications (progress and results).
1114
1277
  API subscribes via FIFO SQS with Raw Message Delivery enabled.
@@ -1116,6 +1279,13 @@ channels:
1116
1279
  **FIFO Publishing Requirements:**
1117
1280
  - MessageGroupId: Use operation_id (ensures ordering per operation)
1118
1281
  - MessageDeduplicationId: Not required (content-based deduplication enabled)
1282
+ bindings:
1283
+ sns:
1284
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1285
+ ordering:
1286
+ type: FIFO
1287
+ contentBasedDeduplication: true
1288
+ bindingVersion: '0.1.0'
1119
1289
  parameters:
1120
1290
  env:
1121
1291
  description: Environment (local, stg, prod)
@@ -1127,15 +1297,21 @@ channels:
1127
1297
  operationResult:
1128
1298
  $ref: '#/components/messages/OperationResultMessage'
1129
1299
 
1130
- notificationsOperationsQueue:
1131
- address: gisl-{env}-{region}-notifications-operations.fifo
1300
+ notificationsJobsQueue:
1301
+ address: gisl-{env}-{region}-notifications-jobs.fifo
1132
1302
  description: |
1133
- FIFO SQS queue subscribed to notifications-operations SNS topic.
1303
+ FIFO SQS queue subscribed to notifications-jobs SNS topic.
1134
1304
  Receives both OperationProgress and OperationResult messages.
1135
1305
  Raw Message Delivery enabled (no SNS envelope).
1136
1306
 
1137
1307
  FIFO ensures message ordering per operation (operation_id used as MessageGroupId).
1138
1308
  This guarantees OperationProgress messages arrive before OperationResult.
1309
+ bindings:
1310
+ sqs:
1311
+ queue:
1312
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1313
+ fifoQueue: true
1314
+ bindingVersion: '0.2.0'
1139
1315
  parameters:
1140
1316
  env:
1141
1317
  description: Environment (local, stg, prod)
@@ -1147,8 +1323,8 @@ channels:
1147
1323
  operationResult:
1148
1324
  $ref: '#/components/messages/OperationResultMessage'
1149
1325
 
1150
- notificationsOperationsDlq:
1151
- address: gisl-{env}-{region}-notifications-operations-dlq.fifo
1326
+ notificationsJobsDlq:
1327
+ address: gisl-{env}-{region}-notifications-jobs-dlq.fifo
1152
1328
  description: DLQ for failed notification processing. Messages land here after 5 failed processing attempts.
1153
1329
  parameters:
1154
1330
  env:
@@ -1163,10 +1339,9 @@ channels:
1163
1339
  # the API publishes a LongFormJobMessage claim-check DIRECTLY to these
1164
1340
  # per-op-class SQS queues (no SNS topic, no filter routing). A
1165
1341
  # terraform-owned launcher (EventBridge Pipe, filter=none) consumes
1166
- # and forks a Fargate task. Two classes are live (compress, merge);
1167
- # split-video-longform (queue provisioned, publisher deferred per
1168
- # rcwvUKhI) and audio-overlay-longform (reserve-name-only, no queue)
1169
- # are NOT modeled as channels — they carry no traffic yet.
1342
+ # and forks a Fargate task. Three classes are live (compress, merge,
1343
+ # split-video per rcwvUKhI); audio-overlay-longform (reserve-name-only,
1344
+ # no queue) is NOT modeled as a channel — it carries no traffic yet.
1170
1345
 
1171
1346
  longformCompressVideo:
1172
1347
  address: gisl-{env}-{region}-ops-compress-video-longform
@@ -1181,6 +1356,12 @@ channels:
1181
1356
  shared `JobRequestMessage` across the per-media `jobs-*` queues); per-queue
1182
1357
  `operation_type` is a publisher invariant documented here, not a separate
1183
1358
  message schema.
1359
+ bindings:
1360
+ sqs:
1361
+ queue:
1362
+ name: gisl-{env}-{region}-ops-compress-video-longform
1363
+ fifoQueue: false
1364
+ bindingVersion: '0.2.0'
1184
1365
  parameters:
1185
1366
  env:
1186
1367
  description: Environment (local, stg, prod)
@@ -1211,6 +1392,12 @@ channels:
1211
1392
  `LongFormJobMessage` enum permits `{compress, merge}`; per-queue
1212
1393
  `operation_type` is a publisher invariant documented here, not a separate
1213
1394
  schema).
1395
+ bindings:
1396
+ sqs:
1397
+ queue:
1398
+ name: gisl-{env}-{region}-ops-merge-video-longform-reencode
1399
+ fifoQueue: false
1400
+ bindingVersion: '0.2.0'
1214
1401
  parameters:
1215
1402
  env:
1216
1403
  description: Environment (local, stg, prod)
@@ -1229,6 +1416,47 @@ channels:
1229
1416
  region:
1230
1417
  description: AWS region abbreviation (euw1, use1, etc.)
1231
1418
 
1419
+ longformSplitVideo:
1420
+ address: gisl-{env}-{region}-ops-split-video-longform
1421
+ description: |
1422
+ SQS queue for long-form video split jobs (`split.video.long_form`,
1423
+ `availability: beta`). The API publishes a `LongFormJobMessage` claim-check
1424
+ here directly (NOT via SNS); a terraform-owned launcher reads the spec from
1425
+ S3 (`pointer`) and runs a Fargate task. `max_receive_count = 2` (ADR-0007).
1426
+
1427
+ On this queue the publisher always sets `operation_type: split`,
1428
+ `processing_class: long_form`. The shared `LongFormJobMessage` enum permits
1429
+ `{compress, merge, split}`; per-queue `operation_type` is a publisher
1430
+ invariant documented here, not a separate message schema. The worker is the
1431
+ `split-video-fargate` binary (a stream-copy keyframe/GOP segmenter — a
1432
+ DISTINCT crate from the long-form compress worker, NOT a re-encode), per
1433
+ [ADR-0014](../docs/decisions/0014-split-operation.md) §D10 and
1434
+ [`rcwvUKhI`](https://trello.com/c/rcwvUKhI). Segments land at
1435
+ `{output_key_prefix}/output-NNN.ext` in the output bucket (ADR-0014 §D9).
1436
+ bindings:
1437
+ sqs:
1438
+ queue:
1439
+ name: gisl-{env}-{region}-ops-split-video-longform
1440
+ fifoQueue: false
1441
+ bindingVersion: '0.2.0'
1442
+ parameters:
1443
+ env:
1444
+ description: Environment (local, stg, prod)
1445
+ region:
1446
+ description: AWS region abbreviation (euw1, use1, etc.)
1447
+ messages:
1448
+ longFormJob:
1449
+ $ref: '#/components/messages/LongFormJobMessage'
1450
+
1451
+ longformSplitVideoDlq:
1452
+ address: gisl-{env}-{region}-ops-split-video-longform-dlq
1453
+ description: DLQ for failed long-form video split jobs. Messages land here after 2 failed processing attempts (ADR-0007).
1454
+ parameters:
1455
+ env:
1456
+ description: Environment (local, stg, prod)
1457
+ region:
1458
+ description: AWS region abbreviation (euw1, use1, etc.)
1459
+
1232
1460
  operations:
1233
1461
  # ============================================
1234
1462
  # PUBLISH OPERATIONS (API -> SNS)
@@ -1291,6 +1519,12 @@ operations:
1291
1519
  action: receive
1292
1520
  channel:
1293
1521
  $ref: '#/channels/jobsImage'
1522
+ bindings:
1523
+ sqs:
1524
+ queues:
1525
+ - name: gisl-{env}-{region}-jobs-image
1526
+ fifoQueue: false
1527
+ bindingVersion: '0.2.0'
1294
1528
  summary: Process image compression job
1295
1529
  description: |
1296
1530
  The image compression Lambda consumes jobs for image inputs.
@@ -1305,6 +1539,12 @@ operations:
1305
1539
  action: receive
1306
1540
  channel:
1307
1541
  $ref: '#/channels/jobsVideo'
1542
+ bindings:
1543
+ sqs:
1544
+ queues:
1545
+ - name: gisl-{env}-{region}-jobs-video
1546
+ fifoQueue: false
1547
+ bindingVersion: '0.2.0'
1308
1548
  summary: Process video compression job
1309
1549
  description: |
1310
1550
  The video compression Lambda consumes jobs for video inputs.
@@ -1318,6 +1558,12 @@ operations:
1318
1558
  action: receive
1319
1559
  channel:
1320
1560
  $ref: '#/channels/jobsAudio'
1561
+ bindings:
1562
+ sqs:
1563
+ queues:
1564
+ - name: gisl-{env}-{region}-jobs-audio
1565
+ fifoQueue: false
1566
+ bindingVersion: '0.2.0'
1321
1567
  summary: Process audio compression job
1322
1568
  description: |
1323
1569
  The audio compression Lambda consumes jobs for audio inputs.
@@ -1331,6 +1577,12 @@ operations:
1331
1577
  action: receive
1332
1578
  channel:
1333
1579
  $ref: '#/channels/jobsDocument'
1580
+ bindings:
1581
+ sqs:
1582
+ queues:
1583
+ - name: gisl-{env}-{region}-jobs-document
1584
+ fifoQueue: false
1585
+ bindingVersion: '0.2.0'
1334
1586
  summary: Process document compression job
1335
1587
  description: |
1336
1588
  The document compression Lambda consumes jobs for document inputs.
@@ -1348,6 +1600,12 @@ operations:
1348
1600
  action: receive
1349
1601
  channel:
1350
1602
  $ref: '#/channels/opsThumbnail'
1603
+ bindings:
1604
+ sqs:
1605
+ queues:
1606
+ - name: gisl-{env}-{region}-ops-thumbnail
1607
+ fifoQueue: false
1608
+ bindingVersion: '0.2.0'
1351
1609
  summary: Process legacy thumbnail operation
1352
1610
  description: |
1353
1611
  The legacy thumbnail Lambda consumes thumbnail requests routed
@@ -1363,6 +1621,12 @@ operations:
1363
1621
  action: receive
1364
1622
  channel:
1365
1623
  $ref: '#/channels/opsThumbnailImage'
1624
+ bindings:
1625
+ sqs:
1626
+ queues:
1627
+ - name: gisl-{env}-{region}-ops-thumbnail-image
1628
+ fifoQueue: false
1629
+ bindingVersion: '0.2.0'
1366
1630
  summary: Process image thumbnail operation
1367
1631
  description: |
1368
1632
  The image thumbnail Lambda consumes thumbnail requests routed by
@@ -1375,6 +1639,12 @@ operations:
1375
1639
  action: receive
1376
1640
  channel:
1377
1641
  $ref: '#/channels/opsThumbnailVideo'
1642
+ bindings:
1643
+ sqs:
1644
+ queues:
1645
+ - name: gisl-{env}-{region}-ops-thumbnail-video
1646
+ fifoQueue: false
1647
+ bindingVersion: '0.2.0'
1378
1648
  summary: Process video thumbnail operation
1379
1649
  description: |
1380
1650
  The video thumbnail Lambda consumes thumbnail requests routed by
@@ -1387,6 +1657,12 @@ operations:
1387
1657
  action: receive
1388
1658
  channel:
1389
1659
  $ref: '#/channels/opsThumbnailDocument'
1660
+ bindings:
1661
+ sqs:
1662
+ queues:
1663
+ - name: gisl-{env}-{region}-ops-thumbnail-document
1664
+ fifoQueue: false
1665
+ bindingVersion: '0.2.0'
1390
1666
  summary: Process document thumbnail operation
1391
1667
  description: |
1392
1668
  The document (PDF/EPUB) thumbnail Lambda consumes thumbnail
@@ -1400,6 +1676,12 @@ operations:
1400
1676
  action: receive
1401
1677
  channel:
1402
1678
  $ref: '#/channels/opsThumbnailOffice'
1679
+ bindings:
1680
+ sqs:
1681
+ queues:
1682
+ - name: gisl-{env}-{region}-ops-thumbnail-office
1683
+ fifoQueue: false
1684
+ bindingVersion: '0.2.0'
1403
1685
  summary: Process office document thumbnail operation
1404
1686
  description: |
1405
1687
  The office document (DOCX/XLSX/PPTX/ODT/ODS/ODP) thumbnail Lambda
@@ -1413,6 +1695,12 @@ operations:
1413
1695
  action: receive
1414
1696
  channel:
1415
1697
  $ref: '#/channels/opsImageWatermark'
1698
+ bindings:
1699
+ sqs:
1700
+ queues:
1701
+ - name: gisl-{env}-{region}-ops-image-watermark
1702
+ fifoQueue: false
1703
+ bindingVersion: '0.2.0'
1416
1704
  summary: Process image_watermark operation
1417
1705
  description: |
1418
1706
  The operation-image-watermark Lambda consumes image_watermark
@@ -1431,6 +1719,12 @@ operations:
1431
1719
  action: receive
1432
1720
  channel:
1433
1721
  $ref: '#/channels/opsTextWatermark'
1722
+ bindings:
1723
+ sqs:
1724
+ queues:
1725
+ - name: gisl-{env}-{region}-ops-text-watermark
1726
+ fifoQueue: false
1727
+ bindingVersion: '0.2.0'
1434
1728
  summary: Process text_watermark operation
1435
1729
  description: |
1436
1730
  The operation-text-watermark Lambda consumes text_watermark
@@ -1444,6 +1738,12 @@ operations:
1444
1738
  action: receive
1445
1739
  channel:
1446
1740
  $ref: '#/channels/opsMerge'
1741
+ bindings:
1742
+ sqs:
1743
+ queues:
1744
+ - name: gisl-{env}-{region}-ops-merge
1745
+ fifoQueue: false
1746
+ bindingVersion: '0.2.0'
1447
1747
  summary: Process merge operation
1448
1748
  description: |
1449
1749
  The merge Lambda consumes merge requests routed by
@@ -1459,6 +1759,12 @@ operations:
1459
1759
  action: receive
1460
1760
  channel:
1461
1761
  $ref: '#/channels/opsArchive'
1762
+ bindings:
1763
+ sqs:
1764
+ queues:
1765
+ - name: gisl-{env}-{region}-ops-archive
1766
+ fifoQueue: false
1767
+ bindingVersion: '0.2.0'
1462
1768
  summary: Process archive operation
1463
1769
  description: |
1464
1770
  The archive Lambda consumes archive requests routed by
@@ -1471,6 +1777,12 @@ operations:
1471
1777
  action: receive
1472
1778
  channel:
1473
1779
  $ref: '#/channels/opsConvert'
1780
+ bindings:
1781
+ sqs:
1782
+ queues:
1783
+ - name: gisl-{env}-{region}-ops-convert
1784
+ fifoQueue: false
1785
+ bindingVersion: '0.2.0'
1474
1786
  summary: Process convert operation
1475
1787
  description: |
1476
1788
  The convert Lambda consumes convert requests routed by
@@ -1483,6 +1795,12 @@ operations:
1483
1795
  action: receive
1484
1796
  channel:
1485
1797
  $ref: '#/channels/opsCustomLuma'
1798
+ bindings:
1799
+ sqs:
1800
+ queues:
1801
+ - name: gisl-{env}-{region}-ops-custom-luma
1802
+ fifoQueue: false
1803
+ bindingVersion: '0.2.0'
1486
1804
  summary: Process custom_luma operation
1487
1805
  description: |
1488
1806
  The `operation-custom-luma` Lambda (cross-repo follow-up — not
@@ -1500,6 +1818,12 @@ operations:
1500
1818
  action: receive
1501
1819
  channel:
1502
1820
  $ref: '#/channels/opsAudioOverlay'
1821
+ bindings:
1822
+ sqs:
1823
+ queues:
1824
+ - name: gisl-{env}-{region}-ops-audio-overlay
1825
+ fifoQueue: false
1826
+ bindingVersion: '0.2.0'
1503
1827
  summary: Process audio_overlay operation
1504
1828
  description: |
1505
1829
  The `operation-audio-overlay` Lambda (cross-repo follow-up —
@@ -1518,17 +1842,24 @@ operations:
1518
1842
  action: receive
1519
1843
  channel:
1520
1844
  $ref: '#/channels/opsSplit'
1845
+ bindings:
1846
+ sqs:
1847
+ queues:
1848
+ - name: gisl-{env}-{region}-ops-split
1849
+ fifoQueue: false
1850
+ bindingVersion: '0.2.0'
1521
1851
  summary: Process split operation
1522
1852
  description: |
1523
1853
  The `operation-split` Lambda (lambdas pre-launch epic Wave A)
1524
1854
  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
1855
+ `audio` + short-form `video` paths are live on staging (lambdas
1856
+ #161 / [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); the
1857
+ `image_gif` / `document_pdf` workers (and video `long_form` via
1858
+ `split-video-fargate`) remain a cross-repo follow-up. Single-input —
1528
1859
  `media_group` derives from the input MIME prefix per the
1529
1860
  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:
1861
+ and `video` (short-form) mime_groups (workers live on staging); the
1862
+ `image_gif` and `document_pdf` mime_groups stay `availability:
1532
1863
  planned`, and the API rejects their workflow-create with
1533
1864
  `feature_not_available` (422) until those Lambdas ship.
1534
1865
  Long-form video splits route to a separate
@@ -1542,6 +1873,12 @@ operations:
1542
1873
  action: receive
1543
1874
  channel:
1544
1875
  $ref: '#/channels/opsVideoWatermark'
1876
+ bindings:
1877
+ sqs:
1878
+ queues:
1879
+ - name: gisl-{env}-{region}-ops-video-watermark
1880
+ fifoQueue: false
1881
+ bindingVersion: '0.2.0'
1545
1882
  summary: Process video_watermark operation
1546
1883
  description: |
1547
1884
  The `operation-video-watermark` Lambda (cross-repo follow-up —
@@ -1562,6 +1899,12 @@ operations:
1562
1899
  action: receive
1563
1900
  channel:
1564
1901
  $ref: '#/channels/opsVideoTextWatermark'
1902
+ bindings:
1903
+ sqs:
1904
+ queues:
1905
+ - name: gisl-{env}-{region}-ops-video-text-watermark
1906
+ fifoQueue: false
1907
+ bindingVersion: '0.2.0'
1565
1908
  summary: Process video_text_watermark operation
1566
1909
  description: |
1567
1910
  The `operation-video-text-watermark` Lambda (cross-repo
@@ -1581,6 +1924,12 @@ operations:
1581
1924
  action: receive
1582
1925
  channel:
1583
1926
  $ref: '#/channels/opsAudioToVideo'
1927
+ bindings:
1928
+ sqs:
1929
+ queues:
1930
+ - name: gisl-{env}-{region}-ops-audio-to-video
1931
+ fifoQueue: false
1932
+ bindingVersion: '0.2.0'
1584
1933
  summary: Process audio_to_video operation
1585
1934
  description: |
1586
1935
  The `operation-audio-to-video` Lambda (cross-repo follow-up —
@@ -1601,6 +1950,12 @@ operations:
1601
1950
  action: receive
1602
1951
  channel:
1603
1952
  $ref: '#/channels/opsAudioWatermark'
1953
+ bindings:
1954
+ sqs:
1955
+ queues:
1956
+ - name: gisl-{env}-{region}-ops-audio-watermark
1957
+ fifoQueue: false
1958
+ bindingVersion: '0.2.0'
1604
1959
  summary: Process audio_watermark operation
1605
1960
  description: |
1606
1961
  The `operation-audio-watermark` Lambda (cross-repo follow-up —
@@ -1615,6 +1970,29 @@ operations:
1615
1970
  messages:
1616
1971
  - $ref: '#/channels/opsAudioWatermark/messages/operationRequest'
1617
1972
 
1973
+ consumeRenderVariantsOperation:
1974
+ action: receive
1975
+ channel:
1976
+ $ref: '#/channels/opsRenderVariants'
1977
+ bindings:
1978
+ sqs:
1979
+ queues:
1980
+ - name: gisl-{env}-{region}-ops-render-variants
1981
+ fifoQueue: false
1982
+ bindingVersion: '0.2.0'
1983
+ summary: Process render_variants operation
1984
+ description: |
1985
+ The `operation-render-variants` Lambda (cross-repo follow-up —
1986
+ not yet shipped) consumes render_variants requests routed by
1987
+ `operation_type=render_variants`. Single-input image fan-out (one
1988
+ source image to N resized / re-encoded variants). `availability:
1989
+ planned`; the API rejects workflow-create with
1990
+ `feature_not_available` (422) until the Lambda + this subscription
1991
+ ship, so traffic does not reach this channel today. Per ticket
1992
+ w3EwzHYd.
1993
+ messages:
1994
+ - $ref: '#/channels/opsRenderVariants/messages/operationRequest'
1995
+
1618
1996
  # ============================================
1619
1997
  # NOTIFICATION OPERATIONS
1620
1998
  # ============================================
@@ -1622,37 +2000,67 @@ operations:
1622
2000
  publishOperationProgress:
1623
2001
  action: send
1624
2002
  channel:
1625
- $ref: '#/channels/notificationsOperationsTopic'
2003
+ $ref: '#/channels/notificationsJobsTopic'
2004
+ # Operation-level SNS binding: Microcks reads OPERATION bindings (not
2005
+ # the channel binding) for protocol detection — without it the SEND op
2006
+ # registers under Microcks' Kafka default and SNS conformance can't
2007
+ # bind. The cli@6.0.0-bundled SNS 0.1.0 schema requires a non-empty
2008
+ # consumers[] EVEN on send ops (the "consumers only for receive" rule
2009
+ # is 1.0.0, which cli rejects), so we declare the topic's real consumer
2010
+ # — the API FIFO SQS queue with raw message delivery. bindingVersion
2011
+ # 0.1.0 mirrors the channel pin. Per z7VkTNmN producer pillar.
2012
+ bindings:
2013
+ sns:
2014
+ consumers:
2015
+ - protocol: sqs
2016
+ endpoint:
2017
+ name: gisl-{env}-{region}-notifications-jobs.fifo
2018
+ rawMessageDelivery: true
2019
+ bindingVersion: '0.1.0'
1626
2020
  summary: Publish operation progress update
1627
2021
  description: |
1628
2022
  Lambda publishes progress updates during operation processing.
1629
2023
  These are lightweight messages for real-time status tracking.
1630
2024
  messages:
1631
- - $ref: '#/channels/notificationsOperationsTopic/messages/operationProgress'
2025
+ - $ref: '#/channels/notificationsJobsTopic/messages/operationProgress'
1632
2026
 
1633
2027
  publishOperationResult:
1634
2028
  action: send
1635
2029
  channel:
1636
- $ref: '#/channels/notificationsOperationsTopic'
2030
+ $ref: '#/channels/notificationsJobsTopic'
2031
+ bindings:
2032
+ sns:
2033
+ consumers:
2034
+ - protocol: sqs
2035
+ endpoint:
2036
+ name: gisl-{env}-{region}-notifications-jobs.fifo
2037
+ rawMessageDelivery: true
2038
+ bindingVersion: '0.1.0'
1637
2039
  summary: Publish operation result
1638
2040
  description: |
1639
2041
  Lambda publishes the final result when operation completes or fails.
1640
2042
  This is a terminal message with full details.
1641
2043
  messages:
1642
- - $ref: '#/channels/notificationsOperationsTopic/messages/operationResult'
2044
+ - $ref: '#/channels/notificationsJobsTopic/messages/operationResult'
1643
2045
 
1644
2046
  consumeOperationNotifications:
1645
2047
  action: receive
1646
2048
  channel:
1647
- $ref: '#/channels/notificationsOperationsQueue'
2049
+ $ref: '#/channels/notificationsJobsQueue'
2050
+ bindings:
2051
+ sqs:
2052
+ queues:
2053
+ - name: gisl-{env}-{region}-notifications-jobs.fifo
2054
+ fifoQueue: true
2055
+ bindingVersion: '0.2.0'
1648
2056
  summary: Consume operation notifications
1649
2057
  description: |
1650
2058
  API worker consumes both progress and result notifications from SQS.
1651
2059
  - OperationProgress: Update Redis cache for real-time status (forwarded to frontend via SSE)
1652
2060
  - OperationResult: Update database Operation entity, derive Job/Workflow status
1653
2061
  messages:
1654
- - $ref: '#/channels/notificationsOperationsQueue/messages/operationProgress'
1655
- - $ref: '#/channels/notificationsOperationsQueue/messages/operationResult'
2062
+ - $ref: '#/channels/notificationsJobsQueue/messages/operationProgress'
2063
+ - $ref: '#/channels/notificationsJobsQueue/messages/operationResult'
1656
2064
 
1657
2065
  # ============================================
1658
2066
  # UPLOAD-PROBE OPERATIONS (per ticket vBlEurU7)
@@ -1681,6 +2089,12 @@ operations:
1681
2089
  action: receive
1682
2090
  channel:
1683
2091
  $ref: '#/channels/uploadProbeQueue'
2092
+ bindings:
2093
+ sqs:
2094
+ queues:
2095
+ - name: gisl-{env}-{region}-upload-probe
2096
+ fifoQueue: false
2097
+ bindingVersion: '0.2.0'
1684
2098
  summary: Consume an upload-probe request (async branch)
1685
2099
  description: |
1686
2100
  The upload-probe Lambda consumes from the SQS queue subscribed
@@ -1698,6 +2112,12 @@ operations:
1698
2112
  action: send
1699
2113
  channel:
1700
2114
  $ref: '#/channels/uploadProbeCompletionsQueue'
2115
+ bindings:
2116
+ sqs:
2117
+ queues:
2118
+ - name: gisl-{env}-{region}-upload-probe-completions
2119
+ fifoQueue: false
2120
+ bindingVersion: '0.2.0'
1701
2121
  summary: Publish an upload-probe completion (async branch)
1702
2122
  description: |
1703
2123
  The upload-probe Lambda publishes the result of the async
@@ -1719,6 +2139,12 @@ operations:
1719
2139
  action: receive
1720
2140
  channel:
1721
2141
  $ref: '#/channels/uploadProbeCompletionsQueue'
2142
+ bindings:
2143
+ sqs:
2144
+ queues:
2145
+ - name: gisl-{env}-{region}-upload-probe-completions
2146
+ fifoQueue: false
2147
+ bindingVersion: '0.2.0'
1722
2148
  summary: Consume an upload-probe completion (async branch)
1723
2149
  description: |
1724
2150
  The API consumer worker reads completions from this queue and
@@ -1737,6 +2163,12 @@ operations:
1737
2163
  action: send
1738
2164
  channel:
1739
2165
  $ref: '#/channels/longformCompressVideo'
2166
+ bindings:
2167
+ sqs:
2168
+ queues:
2169
+ - name: gisl-{env}-{region}-ops-compress-video-longform
2170
+ fifoQueue: false
2171
+ bindingVersion: '0.2.0'
1740
2172
  summary: Publish a long-form video compression claim-check.
1741
2173
  description: |
1742
2174
  The API (`SqsLongFormOperationPublisherAdapter`) writes the full job
@@ -1750,6 +2182,12 @@ operations:
1750
2182
  action: send
1751
2183
  channel:
1752
2184
  $ref: '#/channels/longformMergeVideoReencode'
2185
+ bindings:
2186
+ sqs:
2187
+ queues:
2188
+ - name: gisl-{env}-{region}-ops-merge-video-longform-reencode
2189
+ fifoQueue: false
2190
+ bindingVersion: '0.2.0'
1753
2191
  summary: Publish a long-form merge re-encode claim-check.
1754
2192
  description: |
1755
2193
  As `publishLongFormCompressVideo`, for `operation_type = merge`
@@ -1757,6 +2195,23 @@ operations:
1757
2195
  messages:
1758
2196
  - $ref: '#/channels/longformMergeVideoReencode/messages/longFormJob'
1759
2197
 
2198
+ publishLongFormSplitVideo:
2199
+ action: send
2200
+ channel:
2201
+ $ref: '#/channels/longformSplitVideo'
2202
+ bindings:
2203
+ sqs:
2204
+ queues:
2205
+ - name: gisl-{env}-{region}-ops-split-video-longform
2206
+ fifoQueue: false
2207
+ bindingVersion: '0.2.0'
2208
+ summary: Publish a long-form video split claim-check.
2209
+ description: |
2210
+ As `publishLongFormCompressVideo`, for `operation_type = split`
2211
+ (`split.video.long_form`). Direct-to-SQS claim-check; no SNS.
2212
+ messages:
2213
+ - $ref: '#/channels/longformSplitVideo/messages/longFormJob'
2214
+
1760
2215
  # ============================================
1761
2216
  # LONG-FORM CLAIM-CHECK CONSUMERS (launcher -> Fargate)
1762
2217
  # ============================================
@@ -1765,6 +2220,12 @@ operations:
1765
2220
  action: receive
1766
2221
  channel:
1767
2222
  $ref: '#/channels/longformCompressVideo'
2223
+ bindings:
2224
+ sqs:
2225
+ queues:
2226
+ - name: gisl-{env}-{region}-ops-compress-video-longform
2227
+ fifoQueue: false
2228
+ bindingVersion: '0.2.0'
1768
2229
  summary: Consume a long-form video compression claim-check.
1769
2230
  description: |
1770
2231
  A terraform-owned launcher (EventBridge Pipe, filter=none -> launcher
@@ -1779,6 +2240,12 @@ operations:
1779
2240
  action: receive
1780
2241
  channel:
1781
2242
  $ref: '#/channels/longformMergeVideoReencode'
2243
+ bindings:
2244
+ sqs:
2245
+ queues:
2246
+ - name: gisl-{env}-{region}-ops-merge-video-longform-reencode
2247
+ fifoQueue: false
2248
+ bindingVersion: '0.2.0'
1782
2249
  summary: Consume a long-form merge re-encode claim-check.
1783
2250
  description: |
1784
2251
  As `consumeLongFormCompressVideo`, for `operation_type = merge`
@@ -1787,6 +2254,26 @@ operations:
1787
2254
  messages:
1788
2255
  - $ref: '#/channels/longformMergeVideoReencode/messages/longFormJob'
1789
2256
 
2257
+ consumeLongFormSplitVideo:
2258
+ action: receive
2259
+ channel:
2260
+ $ref: '#/channels/longformSplitVideo'
2261
+ bindings:
2262
+ sqs:
2263
+ queues:
2264
+ - name: gisl-{env}-{region}-ops-split-video-longform
2265
+ fifoQueue: false
2266
+ bindingVersion: '0.2.0'
2267
+ summary: Consume a long-form video split claim-check.
2268
+ description: |
2269
+ As `consumeLongFormCompressVideo`, for `operation_type = split`
2270
+ (`split.video.long_form`). The launcher forks on
2271
+ `(operation_type=split, processing_class=long_form)` and runs the
2272
+ `split-video-fargate` stream-copy segmenter task. Segments land at
2273
+ `{output_key_prefix}/output-NNN.ext`.
2274
+ messages:
2275
+ - $ref: '#/channels/longformSplitVideo/messages/longFormJob'
2276
+
1790
2277
  components:
1791
2278
  messages:
1792
2279
  # ============================================
@@ -2709,6 +3196,13 @@ components:
2709
3196
  Operation type used as the SNS filter attribute on the
2710
3197
  `operations` topic. The sole routing key for non-compression
2711
3198
  traffic.
3199
+
3200
+ **`passthrough` is deliberately excluded** from this enum: a
3201
+ `passthrough` operation never goes on the wire. The API
3202
+ self-completes a passthrough source job at publish (terminal
3203
+ output = the upload bytes unchanged), so nothing is published
3204
+ to SNS and there is no `ops-passthrough` queue. Per ticket
3205
+ `4som89Uh`.
2712
3206
  enum:
2713
3207
  - thumbnail
2714
3208
  - thumbnail_image
@@ -2727,6 +3221,7 @@ components:
2727
3221
  - video_watermark
2728
3222
  - video_text_watermark
2729
3223
  - split
3224
+ - render_variants
2730
3225
  media_group:
2731
3226
  type: string
2732
3227
  description: |
@@ -2884,6 +3379,11 @@ components:
2884
3379
  - operation_type
2885
3380
  - output_bucket
2886
3381
  - output_key_prefix
3382
+ # No `passthrough` branch below: a passthrough source job is
3383
+ # self-completed by the API at publish (output = upload bytes
3384
+ # unchanged) and is never published as an OperationRequest message,
3385
+ # so it has no single-input/multi-input required-field branch here.
3386
+ # Per ticket 4som89Uh.
2887
3387
  allOf:
2888
3388
  - if:
2889
3389
  properties:
@@ -2896,6 +3396,7 @@ components:
2896
3396
  - audio_watermark
2897
3397
  - video_text_watermark
2898
3398
  - split
3399
+ - render_variants
2899
3400
  then:
2900
3401
  required:
2901
3402
  - file_type
@@ -3049,13 +3550,13 @@ components:
3049
3550
  backend-dotted form (e.g. `compress.video.long_form`) is deliberately
3050
3551
  NOT on the wire — the launcher mints it internally.
3051
3552
 
3052
- **Live `operation_type` subset: `compress`, `merge`** — the two
3053
- long-form classes flipped to `availability: beta` (CON-1). `split`
3054
- long-form (queue provisioned, publisher deferred —
3055
- [`rcwvUKhI`](https://trello.com/c/rcwvUKhI)) and `audio_overlay`
3056
- long-form (reserve-name-only, no queue) are NOT yet produced and are
3057
- therefore absent from this enum; they get added when their publishers
3058
- ship.
3553
+ **Live `operation_type` subset: `compress`, `merge`, `split`** —
3554
+ these three long-form classes are `availability: beta` (compress +
3555
+ merge per CON-1; `split.video.long_form` per
3556
+ [`rcwvUKhI`](https://trello.com/c/rcwvUKhI), worker
3557
+ `split-video-fargate` proven on staging). `audio_overlay` long-form
3558
+ (reserve-name-only, no queue) is NOT yet produced and is therefore
3559
+ absent from this enum; it gets added when its publisher ships.
3059
3560
 
3060
3561
  **Scope: the API producer's first-publish.** This schema models the
3061
3562
  message the API publishes to the long-form queues — the 5 fields above.
@@ -3174,6 +3675,33 @@ components:
3174
3675
  silently drop this sibling per-input audio override at the wire
3175
3676
  boundary.
3176
3677
  example: 0.5
3678
+ trim_start:
3679
+ type: number
3680
+ minimum: 0
3681
+ description: |
3682
+ Per-input trim from the beginning, in seconds, applied to
3683
+ this input BEFORE the transition/crossfade step. Mirrors
3684
+ `merge.{video,audio}.per_input_options.trim_start` in
3685
+ `schemas/operations/merge.yaml`; same "trim from beginning"
3686
+ semantic as `compress` trim. No `maximum` — the upper bound
3687
+ is the input's own duration, enforced by the worker, not
3688
+ statically bounded at the wire. Wire slot added so the API
3689
+ does not drop this per-input override at the boundary
3690
+ (mirrors the crossfade_duration/gap_duration precedent).
3691
+ example: 1.5
3692
+ trim_end:
3693
+ type: number
3694
+ minimum: 0
3695
+ description: |
3696
+ Per-input trim from the end, in seconds, applied to this
3697
+ input BEFORE the transition/crossfade step. Mirrors
3698
+ `merge.{video,audio}.per_input_options.trim_end` in
3699
+ `schemas/operations/merge.yaml`; same "trim from end"
3700
+ semantic as `compress` trim. No `maximum` — bounded by the
3701
+ input's own duration at the worker, not statically. Wire
3702
+ slot added so the API does not drop this per-input override
3703
+ at the boundary.
3704
+ example: 2.0
3177
3705
 
3178
3706
  # ============================================
3179
3707
  # OPERATION PROGRESS SCHEMA
@@ -3419,6 +3947,8 @@ components:
3419
3947
 
3420
3948
  metrics:
3421
3949
  $ref: '#/components/schemas/OperationMetrics'
3950
+ result_metadata:
3951
+ $ref: '#/components/schemas/OperationResultMetadata'
3422
3952
 
3423
3953
  # Failure fields
3424
3954
  error_code:
@@ -3438,6 +3968,32 @@ components:
3438
3968
  description: Progress percentage when the operation failed (failed only)
3439
3969
  example: 10
3440
3970
 
3971
+ OperationResultMetadata:
3972
+ type: object
3973
+ additionalProperties: false
3974
+ description: |
3975
+ Whitelisted, named operation-level result metadata — a **CLOSED**
3976
+ set of declared keys carried on the wire result (Lambda → API). The
3977
+ API persists only declared keys and serves only declared keys (a
3978
+ whitelist projection on the read side), never the raw bag, so
3979
+ internal diagnostics never leak. New keys are **additive named
3980
+ cuts**. Twin of the OpenAPI `OperationResultMetadata` (wire ↔ read
3981
+ parity — same named-prop shape). Distinct from the deliverable
3982
+ output (`output_key` / `outputs[]`): small per-operation metadata,
3983
+ not the file. Per ticket EurbZLMH (B1).
3984
+ properties:
3985
+ watermark_id:
3986
+ type: string
3987
+ format: uuid
3988
+ description: |
3989
+ UUIDv7 of the watermark embedded by an `audio_watermark`
3990
+ operation (for later decode/verify). **Display-only / not yet
3991
+ populated** — gated on the audio_watermark Lambda (EvPl5fkH, B3)
3992
+ + the watermark registry (B2, deferred). The field + whitelist
3993
+ ship now (additive) so the pipeline + read projection land
3994
+ without a later contract bump; absent until B3 is live.
3995
+ example: "018f9c42-5d6b-7481-b3df-9fd0a0a5e112"
3996
+
3441
3997
  OperationResultOutputEntry:
3442
3998
  type: object
3443
3999
  description: |
@@ -3463,9 +4019,11 @@ components:
3463
4019
  not: { required: [page_index] }
3464
4020
  - title: Unindexed
3465
4021
  description: |
3466
- Output without an explicit indexing field. Reserved for future
3467
- operations that index by something other than page/position.
3468
- Schema-valid but not currently emitted by any operation.
4022
+ Output without a page/position indexing field. Covers legacy
4023
+ single-output entries AND `render_variants` variant outputs (the
4024
+ latter carry the optional `target_id` correlation field — the
4025
+ image-fan-out addressing contract — but are not page/position
4026
+ indexed). Per ADR-0009 §D2.
3469
4027
  not:
3470
4028
  anyOf:
3471
4029
  - required: [page_index]
@@ -3502,6 +4060,18 @@ components:
3502
4060
  strip, chapter split). Mutually exclusive with `page_index`.
3503
4061
  Per ADR-0009 §D2.
3504
4062
  example: 0
4063
+ target_id:
4064
+ type: string
4065
+ pattern: '^[A-Za-z0-9._-]+$'
4066
+ maxLength: 64
4067
+ description: |
4068
+ The caller-assigned `id` of the `render_variants` target that
4069
+ produced this output, echoed verbatim — the addressing contract
4070
+ for image fan-out. Carried on the `Unindexed` branch (variant
4071
+ outputs are not page/position indexed); no operation emits
4072
+ `target_id` together with `page_index` / `position`. Per ticket
4073
+ `w3EwzHYd`.
4074
+ example: "thumb-2x"
3505
4075
 
3506
4076
  # ============================================
3507
4077
  # WORKFLOW STATE CHANGED (per ticket I24)
@@ -4162,11 +4732,19 @@ components:
4162
4732
  `processing_class`. `media_group` derives from the input
4163
4733
  MIME prefix per the existing single-input rule (no
4164
4734
  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`
4735
+ for the `audio` and `video` (short-form) mime_groups
4736
+ (`image_gif` / `document_pdf` and video `long_form` stay
4737
+ `planned`); routes via `operation_type=split`
4167
4738
  to `ops-split`.
4168
4739
  Per ADR-0004 + ADR-0014
4169
4740
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
4741
+
4742
+ Note: the `passthrough` OpenAPI operation is **deliberately
4743
+ absent** from this payload enum. A passthrough source job is
4744
+ self-completed by the API at publish (its output is the upload
4745
+ bytes unchanged) and is never dispatched as an
4746
+ `OperationRequest` message — so it carries no wire payload and
4747
+ needs no SNS routing value. Per ticket `4som89Uh`.
4170
4748
  enum:
4171
4749
  - compress
4172
4750
  - thumbnail
@@ -4182,6 +4760,7 @@ components:
4182
4760
  - video_watermark
4183
4761
  - video_text_watermark
4184
4762
  - split
4763
+ - render_variants
4185
4764
 
4186
4765
  MediaGroup:
4187
4766
  type: string
@@ -4308,11 +4887,18 @@ components:
4308
4887
  Coarse operation verb for the long-form claim-check job
4309
4888
  (`LongFormJobMessage.operation_type`). Deliberately a call-site
4310
4889
  **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.
4890
+ actually publishes today (`compress`, `merge`, `split`). NOT the
4891
+ full `OperationType` enum (which would over-promise the wire).
4892
+ Future long-form publishers widen this enum when they ship.
4893
+
4894
+ `split` joined this enum when the long-form video split publisher
4895
+ shipped ([`rcwvUKhI`](https://trello.com/c/rcwvUKhI), per
4896
+ [ADR-0014](../docs/decisions/0014-split-operation.md) §D10): the
4897
+ API publishes to the dedicated `longformSplitVideo` queue and the
4898
+ `split-video-fargate` worker stream-copy-segments the input
4899
+ (NOT the compress path — a distinct binary). The
4900
+ `(operation_type=split, processing_class=long_form)` tuple is the
4901
+ launcher's fork key.
4316
4902
 
4317
4903
  Named-schema form lifted from inline at
4318
4904
  `LongFormJobMessage.operation_type` per ticket
@@ -4322,6 +4908,7 @@ components:
4322
4908
  enum:
4323
4909
  - compress
4324
4910
  - merge
4911
+ - split
4325
4912
 
4326
4913
  LongFormProcessingClass:
4327
4914
  type: string