@giveitsmaller/contracts 0.9.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/asyncapi/events.yaml +540 -42
  2. package/availability/availability.json +313 -89
  3. package/dist/asyncapi/Failure.d.ts +2 -0
  4. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  5. package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
  6. package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
  7. package/dist/asyncapi/OperationResultMetadata.js +1 -0
  8. package/dist/asyncapi/OperationType.d.ts +2 -1
  9. package/dist/asyncapi/OperationType.js +1 -0
  10. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  11. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  12. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  13. package/dist/asyncapi/SourceEntry.d.ts +2 -0
  14. package/dist/asyncapi/Unindexed.d.ts +1 -0
  15. package/dist/asyncapi/index.d.ts +2 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  17. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  18. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  19. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  20. package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
  21. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  22. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  23. package/dist/openapi/models/AuthErrorType.js +2 -2
  24. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
  25. package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
  26. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  27. package/dist/openapi/models/AvailabilityValue.js +2 -2
  28. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
  29. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  30. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  32. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  33. package/dist/openapi/models/CallbackEventType.js +2 -2
  34. package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
  35. package/dist/openapi/models/ChangePasswordRequest.js +47 -0
  36. package/dist/openapi/models/CompositionPlan.d.ts +72 -0
  37. package/dist/openapi/models/CompositionPlan.js +53 -0
  38. package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
  39. package/dist/openapi/models/CompositionPlanJob.js +48 -0
  40. package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
  41. package/dist/openapi/models/CompositionPlanOperation.js +62 -0
  42. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
  43. package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
  44. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
  45. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
  46. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
  47. package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
  48. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  49. package/dist/openapi/models/ConnectionSource.js +2 -2
  50. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  51. package/dist/openapi/models/ContactRequest.js +2 -2
  52. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  53. package/dist/openapi/models/ContactSubject.js +2 -2
  54. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  55. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  56. package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
  57. package/dist/openapi/models/CreateApiKey201Response.js +54 -0
  58. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
  59. package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
  60. package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
  61. package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
  62. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  63. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  64. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  65. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  66. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  67. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  68. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  69. package/dist/openapi/models/CreditTransaction.js +2 -2
  70. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  71. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  72. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  73. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  74. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  75. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  76. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  77. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  78. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  79. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  80. package/dist/openapi/models/Delivery.d.ts +2 -2
  81. package/dist/openapi/models/Delivery.js +2 -2
  82. package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
  83. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  84. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  85. package/dist/openapi/models/DeliveryPlan.js +2 -2
  86. package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
  87. package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
  88. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  89. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  90. package/dist/openapi/models/DeliverySelection.d.ts +6 -4
  91. package/dist/openapi/models/DeliverySelection.js +2 -2
  92. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
  93. package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
  94. package/dist/openapi/models/EndpointProjection.d.ts +12 -3
  95. package/dist/openapi/models/EndpointProjection.js +2 -2
  96. package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
  97. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  98. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  99. package/dist/openapi/models/EstimateQuality.js +2 -2
  100. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  101. package/dist/openapi/models/EstimateRange.js +2 -2
  102. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  103. package/dist/openapi/models/ExternalDestination.js +2 -2
  104. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  105. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  106. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  107. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  108. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  109. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  110. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  111. package/dist/openapi/models/ExternalImportToken.js +2 -2
  112. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  113. package/dist/openapi/models/ExternalSource.js +2 -2
  114. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +13 -2
  115. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  116. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
  117. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  118. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  119. package/dist/openapi/models/FeatureViolation.js +2 -2
  120. package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
  121. package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
  122. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
  123. package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
  124. package/dist/openapi/models/JobDefinition.d.ts +20 -4
  125. package/dist/openapi/models/JobDefinition.js +2 -2
  126. package/dist/openapi/models/JobDownload.d.ts +2 -2
  127. package/dist/openapi/models/JobDownload.js +2 -2
  128. package/dist/openapi/models/JobInputV2.d.ts +13 -9
  129. package/dist/openapi/models/JobInputV2.js +5 -5
  130. package/dist/openapi/models/JobMediaClass.d.ts +34 -0
  131. package/dist/openapi/models/JobMediaClass.js +52 -0
  132. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  133. package/dist/openapi/models/JobOutputSource.js +2 -2
  134. package/dist/openapi/models/JobResponse.d.ts +2 -2
  135. package/dist/openapi/models/JobResponse.js +2 -2
  136. package/dist/openapi/models/JobStatus.d.ts +2 -2
  137. package/dist/openapi/models/JobStatus.js +2 -2
  138. package/dist/openapi/models/JobType.d.ts +2 -2
  139. package/dist/openapi/models/JobType.js +2 -2
  140. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  141. package/dist/openapi/models/LivenessResponse.js +2 -2
  142. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  143. package/dist/openapi/models/LoginUser200Response.js +2 -2
  144. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  145. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  146. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  147. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  148. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  149. package/dist/openapi/models/LoginUserRequest.js +2 -2
  150. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  151. package/dist/openapi/models/MetadataResponse.js +2 -2
  152. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  153. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  154. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  155. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  156. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  157. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  158. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  159. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  160. package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
  161. package/dist/openapi/models/MimeGroupSchema.js +5 -2
  162. package/dist/openapi/models/MultiInputSource.d.ts +41 -0
  163. package/dist/openapi/models/MultiInputSource.js +52 -0
  164. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  165. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  166. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  167. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  168. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  169. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  170. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  171. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  172. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  173. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  174. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  175. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  176. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  177. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  178. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  179. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  180. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  181. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  182. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  183. package/dist/openapi/models/MultipartPartListing.js +2 -2
  184. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  185. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  186. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  187. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  188. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  189. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  190. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  191. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  192. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  193. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  194. package/dist/openapi/models/OperationDefinition.d.ts +27 -2
  195. package/dist/openapi/models/OperationDefinition.js +11 -2
  196. package/dist/openapi/models/OperationDownload.d.ts +30 -2
  197. package/dist/openapi/models/OperationDownload.js +6 -2
  198. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  199. package/dist/openapi/models/OperationInputModel.js +3 -3
  200. package/dist/openapi/models/OperationResponse.d.ts +18 -2
  201. package/dist/openapi/models/OperationResponse.js +5 -2
  202. package/dist/openapi/models/OperationResult.d.ts +2 -2
  203. package/dist/openapi/models/OperationResult.js +2 -2
  204. package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
  205. package/dist/openapi/models/OperationResultMetadata.js +41 -0
  206. package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
  207. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  208. package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
  209. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  210. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  211. package/dist/openapi/models/OperationStatus.js +2 -2
  212. package/dist/openapi/models/OperationType.d.ts +7 -4
  213. package/dist/openapi/models/OperationType.js +8 -5
  214. package/dist/openapi/models/OperationsSchemaResponse.d.ts +32 -4
  215. package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  224. package/dist/openapi/models/OptionSchema.d.ts +2 -2
  225. package/dist/openapi/models/OptionSchema.js +2 -2
  226. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  227. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  228. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  229. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  230. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  231. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  232. package/dist/openapi/models/ProbePendingResponse.d.ts +13 -2
  233. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  234. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  235. package/dist/openapi/models/ProcessingClass.js +2 -2
  236. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  237. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  238. package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
  239. package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
  240. package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
  241. package/dist/openapi/models/ProcessingClassEntry.js +57 -0
  242. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +13 -2
  243. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  244. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  245. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  246. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  247. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  248. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  249. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  250. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  251. package/dist/openapi/models/ProcessingPlan.js +2 -2
  252. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  253. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  254. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  255. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  256. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  257. package/dist/openapi/models/ReadinessResponse.js +2 -2
  258. package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
  259. package/dist/openapi/models/RegisterUser422Response.js +47 -0
  260. package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
  261. package/dist/openapi/models/RegisterUserRequest.js +47 -0
  262. package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
  263. package/dist/openapi/models/ResetPasswordRequest.js +47 -0
  264. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  265. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  266. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  267. package/dist/openapi/models/RetryResponse.js +2 -2
  268. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  269. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  270. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  271. package/dist/openapi/models/SseCompletionBase.js +2 -2
  272. package/dist/openapi/models/SseEventType.d.ts +2 -2
  273. package/dist/openapi/models/SseEventType.js +2 -2
  274. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  275. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  276. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  277. package/dist/openapi/models/SseJobFailedData.js +2 -2
  278. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  279. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  280. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  281. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  282. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  283. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  284. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  285. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  286. package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
  287. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  288. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  289. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  290. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  291. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  292. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  293. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  294. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  295. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  296. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  297. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  298. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  299. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  300. package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
  301. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  302. package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
  303. package/dist/openapi/models/UpdateProfile200Response.js +54 -0
  304. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
  305. package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
  306. package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
  307. package/dist/openapi/models/UpdateProfile422Response.js +47 -0
  308. package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
  309. package/dist/openapi/models/UpdateProfileRequest.js +47 -0
  310. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  311. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  312. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
  313. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  314. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  315. package/dist/openapi/models/UploadFile403Response.js +2 -2
  316. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  317. package/dist/openapi/models/UploadFile422Response.js +2 -2
  318. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  319. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  320. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  321. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  322. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  323. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  324. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  325. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  326. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  327. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  328. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  329. package/dist/openapi/models/UploadResponse.js +2 -2
  330. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
  331. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  332. package/dist/openapi/models/UploadSource.d.ts +2 -2
  333. package/dist/openapi/models/UploadSource.js +2 -2
  334. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  335. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  336. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  337. package/dist/openapi/models/UploadThresholds.js +2 -2
  338. package/dist/openapi/models/UserTier.d.ts +2 -2
  339. package/dist/openapi/models/UserTier.js +2 -2
  340. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +2 -2
  341. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  342. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  343. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  344. package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
  345. package/dist/openapi/models/VerifyEmailRequest.js +43 -0
  346. package/dist/openapi/models/WarningType.d.ts +2 -2
  347. package/dist/openapi/models/WarningType.js +2 -2
  348. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  349. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  350. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  351. package/dist/openapi/models/WebhookPayload.js +2 -2
  352. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  353. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  354. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  355. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  356. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  357. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  358. package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
  359. package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
  360. package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
  361. package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
  362. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  363. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  364. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  365. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  366. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  367. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  368. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  369. package/dist/openapi/models/WorkflowEdge.js +2 -2
  370. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
  371. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  372. package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
  373. package/dist/openapi/models/WorkflowListResponse.js +50 -0
  374. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
  375. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
  376. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  377. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  378. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  379. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  380. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  381. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  382. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  383. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  384. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  385. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  386. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  387. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  388. package/dist/openapi/models/WorkflowSource.d.ts +7 -4
  389. package/dist/openapi/models/WorkflowSource.js +2 -2
  390. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  391. package/dist/openapi/models/WorkflowStatus.js +2 -2
  392. package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
  393. package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
  394. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  395. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  396. package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
  397. package/dist/openapi/models/WorkflowSummary.js +57 -0
  398. package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
  399. package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
  400. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  401. package/dist/openapi/models/WorkflowWarning.js +2 -2
  402. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  403. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  404. package/dist/openapi/models/index.d.ts +31 -1
  405. package/dist/openapi/models/index.js +31 -1
  406. package/dist/openapi/runtime.d.ts +2 -2
  407. package/dist/openapi/runtime.js +2 -2
  408. package/dist/operations/compress.d.ts +0 -9
  409. package/dist/operations/compress.js +0 -6
  410. package/dist/operations/compress.metadata.js +4 -12
  411. package/dist/operations/index.d.ts +3 -0
  412. package/dist/operations/index.js +3 -0
  413. package/dist/operations/merge.d.ts +4 -0
  414. package/dist/operations/merge.metadata.js +12 -0
  415. package/dist/operations/passthrough.metadata.d.ts +2 -0
  416. package/dist/operations/passthrough.metadata.js +6 -0
  417. package/dist/operations/render_variants.d.ts +24 -0
  418. package/dist/operations/render_variants.js +14 -0
  419. package/dist/operations/render_variants.metadata.d.ts +2 -0
  420. package/dist/operations/render_variants.metadata.js +18 -0
  421. package/dist/operations/split.d.ts +8 -1
  422. package/dist/operations/split.js +5 -0
  423. package/dist/operations/split.metadata.js +18 -5
  424. package/openapi/api.yaml +2333 -241
  425. package/operations/schemas/archive.yaml +1 -1
  426. package/operations/schemas/audio_overlay.yaml +29 -13
  427. package/operations/schemas/audio_to_video.yaml +6 -5
  428. package/operations/schemas/audio_watermark.yaml +18 -16
  429. package/operations/schemas/compress.yaml +34 -32
  430. package/operations/schemas/custom_luma.yaml +18 -3
  431. package/operations/schemas/image_watermark.yaml +22 -7
  432. package/operations/schemas/merge.yaml +88 -35
  433. package/operations/schemas/passthrough.yaml +49 -0
  434. package/operations/schemas/render_variants.yaml +117 -0
  435. package/operations/schemas/split.yaml +72 -18
  436. package/operations/schemas/text_watermark.yaml +6 -6
  437. package/operations/schemas/thumbnail.yaml +1 -1
  438. package/operations/schemas/video_text_watermark.yaml +2 -2
  439. package/operations/schemas/video_watermark.yaml +7 -4
  440. package/package.json +3 -1
  441. package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
  442. package/dist/openapi/models/LogoutUser200Response.js +0 -53
  443. /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
@@ -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.18.0
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
@@ -28,9 +28,10 @@ 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 short-form only — `long_form` / `split-video-fargate` stays
34
+ planned); its `image_gif` and `document_pdf` mime_groups stay
34
35
  `availability: planned`.
35
36
  `audio_to_video` and `video_watermark` are `availability: beta`
36
37
  (Wave A activation [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
@@ -68,7 +69,7 @@ info:
68
69
 
69
70
  **Notifications (Lambda -> API).** Lambda functions publish progress
70
71
  and result notifications to the FIFO SNS topic
71
- `gisl-{env}-{region}-notifications-operations.fifo`. The API consumes
72
+ `gisl-{env}-{region}-notifications-jobs.fifo`. The API consumes
72
73
  from the corresponding FIFO SQS queue via a Raw Message Delivery
73
74
  subscription. This notification path is unchanged from previous
74
75
  releases.
@@ -209,19 +210,25 @@ channels:
209
210
  `ops-video-text-watermark` queue (gated by
210
211
  `availability: planned` until Lambda ships per
211
212
  [`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);
213
+ - `operation_type = split` -> `ops-split` queue (the `audio` and
214
+ `video` mime_groups are `availability: beta` — audio + short-form
215
+ video split traffic reaches this queue; `image_gif` /
216
+ `document_pdf` stay `availability: planned` until their Lambdas
217
+ ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
217
218
  long-form video splits route via `processing_class` to the
218
- `split-video-fargate` worker, same OperationType, different
219
- worker)
219
+ `split-video-fargate` worker same OperationType, different
220
+ worker — and stay `availability: planned` until it ships)
220
221
  - `operation_type = audio_watermark` -> `ops-audio-watermark`
221
222
  queue (gated by `availability: planned` +
222
223
  `required_tier: enterprise` per
223
224
  [I20](https://trello.com/c/omiCq7Vn) — same 422 gating, plus
224
225
  a 403 `feature_tier_restricted` for non-enterprise callers)
226
+ - `operation_type = render_variants` -> `ops-render-variants`
227
+ queue (gated by `availability: planned` until the worker +
228
+ SNS subscription ship per
229
+ [`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
230
+ [`MNuDYJaY`](https://trello.com/c/MNuDYJaY) — same
231
+ `feature_not_available` 422 gating)
225
232
 
226
233
  The API's Option A publisher sets `operation_type` as the filter
227
234
  attribute and additionally sets `media_group` as an **informational**
@@ -394,6 +401,12 @@ channels:
394
401
  `thumbnail_document`, `thumbnail_office`), resolved from each
395
402
  operation's effective input MIME. Retirement of this legacy queue
396
403
  follows once no traffic remains.
404
+ bindings:
405
+ sqs:
406
+ queue:
407
+ name: gisl-{env}-{region}-ops-thumbnail
408
+ fifoQueue: false
409
+ bindingVersion: '0.2.0'
397
410
  parameters:
398
411
  env:
399
412
  description: Environment (local, stg, prod)
@@ -415,6 +428,12 @@ channels:
415
428
  `operation_type=thumbnail_image` on the SNS attribute (resolved from
416
429
  the operation's effective input MIME); the payload `operation_type`
417
430
  field stays `thumbnail`.
431
+ bindings:
432
+ sqs:
433
+ queue:
434
+ name: gisl-{env}-{region}-ops-thumbnail-image
435
+ fifoQueue: false
436
+ bindingVersion: '0.2.0'
418
437
  parameters:
419
438
  env:
420
439
  description: Environment (local, stg, prod)
@@ -436,6 +455,12 @@ channels:
436
455
  `operation_type=thumbnail_video` on the SNS attribute (resolved from
437
456
  the operation's effective input MIME); the payload `operation_type`
438
457
  field stays `thumbnail`.
458
+ bindings:
459
+ sqs:
460
+ queue:
461
+ name: gisl-{env}-{region}-ops-thumbnail-video
462
+ fifoQueue: false
463
+ bindingVersion: '0.2.0'
439
464
  parameters:
440
465
  env:
441
466
  description: Environment (local, stg, prod)
@@ -457,6 +482,12 @@ channels:
457
482
  `operation_type=thumbnail_document` on the SNS attribute (resolved
458
483
  from the operation's effective input MIME); the payload
459
484
  `operation_type` field stays `thumbnail`.
485
+ bindings:
486
+ sqs:
487
+ queue:
488
+ name: gisl-{env}-{region}-ops-thumbnail-document
489
+ fifoQueue: false
490
+ bindingVersion: '0.2.0'
460
491
  parameters:
461
492
  env:
462
493
  description: Environment (local, stg, prod)
@@ -479,6 +510,12 @@ channels:
479
510
  emits `operation_type=thumbnail_office` on the SNS attribute
480
511
  (resolved from the operation's effective input MIME); the payload
481
512
  `operation_type` field stays `thumbnail`.
513
+ bindings:
514
+ sqs:
515
+ queue:
516
+ name: gisl-{env}-{region}-ops-thumbnail-office
517
+ fifoQueue: false
518
+ bindingVersion: '0.2.0'
482
519
  parameters:
483
520
  env:
484
521
  description: Environment (local, stg, prod)
@@ -507,6 +544,12 @@ channels:
507
544
  queue. Video bases are NOT routed here — they go to
508
545
  `ops-video-watermark` for the dedicated `video_watermark`
509
546
  operation per ADR-0013. Per ADR-0004 + I4-CONS + I5 + ADR-0013.
547
+ bindings:
548
+ sqs:
549
+ queue:
550
+ name: gisl-{env}-{region}-ops-image-watermark
551
+ fifoQueue: false
552
+ bindingVersion: '0.2.0'
510
553
  parameters:
511
554
  env:
512
555
  description: Environment (local, stg, prod)
@@ -525,6 +568,12 @@ channels:
525
568
  (Liberation Sans) — supports `single` (one label at anchor) and
526
569
  `tiled` (Cinavia-style angled fill) modes. Backed by the
527
570
  operation-text-watermark Lambda. Per ADR-0004 + I4-CONS.
571
+ bindings:
572
+ sqs:
573
+ queue:
574
+ name: gisl-{env}-{region}-ops-text-watermark
575
+ fifoQueue: false
576
+ bindingVersion: '0.2.0'
528
577
  parameters:
529
578
  env:
530
579
  description: Environment (local, stg, prod)
@@ -544,6 +593,12 @@ channels:
544
593
  concat) — the `output_type` field on the request determines the
545
594
  encoding path internally, not the routing. Image collage and PDF
546
595
  concatenation are not supported by the V1 Lambda.
596
+ bindings:
597
+ sqs:
598
+ queue:
599
+ name: gisl-{env}-{region}-ops-merge
600
+ fifoQueue: false
601
+ bindingVersion: '0.2.0'
547
602
  parameters:
548
603
  env:
549
604
  description: Environment (local, stg, prod)
@@ -560,6 +615,12 @@ channels:
560
615
  Subscribed to the `operations` SNS topic with filter
561
616
  `operation_type = archive`. Media-agnostic: accepts mixed input
562
617
  types. Backed by the archive Lambda (`operation-archive`).
618
+ bindings:
619
+ sqs:
620
+ queue:
621
+ name: gisl-{env}-{region}-ops-archive
622
+ fifoQueue: false
623
+ bindingVersion: '0.2.0'
563
624
  parameters:
564
625
  env:
565
626
  description: Environment (local, stg, prod)
@@ -577,6 +638,12 @@ channels:
577
638
  `operation_type = convert`. Handles format conversion across all
578
639
  media types (image, video, audio, document). Backed by the convert
579
640
  Lambda (`operation-convert`).
641
+ bindings:
642
+ sqs:
643
+ queue:
644
+ name: gisl-{env}-{region}-ops-convert
645
+ fifoQueue: false
646
+ bindingVersion: '0.2.0'
580
647
  parameters:
581
648
  env:
582
649
  description: Environment (local, stg, prod)
@@ -602,6 +669,12 @@ channels:
602
669
  `operation-custom-luma` Lambda (cross-repo follow-up; not yet
603
670
  shipped).
604
671
  Per ADR-0004 + I29 (Trello EPUE5Vs1).
672
+ bindings:
673
+ sqs:
674
+ queue:
675
+ name: gisl-{env}-{region}-ops-custom-luma
676
+ fifoQueue: false
677
+ bindingVersion: '0.2.0'
605
678
  parameters:
606
679
  env:
607
680
  description: Environment (local, stg, prod)
@@ -634,6 +707,12 @@ channels:
634
707
  / "audio branding".
635
708
 
636
709
  Per ADR-0004 + I19 (Trello Xr3Z4GBF).
710
+ bindings:
711
+ sqs:
712
+ queue:
713
+ name: gisl-{env}-{region}-ops-audio-overlay
714
+ fifoQueue: false
715
+ bindingVersion: '0.2.0'
637
716
  parameters:
638
717
  env:
639
718
  description: Environment (local, stg, prod)
@@ -662,6 +741,12 @@ channels:
662
741
 
663
742
  Per ADR-0004 + ADR-0015
664
743
  ([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
744
+ bindings:
745
+ sqs:
746
+ queue:
747
+ name: gisl-{env}-{region}-ops-audio-to-video
748
+ fifoQueue: false
749
+ bindingVersion: '0.2.0'
665
750
  parameters:
666
751
  env:
667
752
  description: Environment (local, stg, prod)
@@ -682,9 +767,10 @@ channels:
682
767
  (no operation-specific conditional needed in
683
768
  OperationRequestAttributes).
684
769
 
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
770
+ `availability: beta` for the `audio` and `video` mime_groups
771
+ (workers live on staging — audio + short-form video split traffic
772
+ reaches this queue; video `long_form` / `split-video-fargate` stays
773
+ planned); the `image_gif` and `document_pdf` mime_groups stay
688
774
  `availability: planned`, and the API rejects their
689
775
  workflow-create with `feature_not_available` (422) until those
690
776
  Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
@@ -701,6 +787,12 @@ channels:
701
787
  MIME detection.
702
788
 
703
789
  Per ADR-0004 + ADR-0014.
790
+ bindings:
791
+ sqs:
792
+ queue:
793
+ name: gisl-{env}-{region}-ops-split
794
+ fifoQueue: false
795
+ bindingVersion: '0.2.0'
704
796
  parameters:
705
797
  env:
706
798
  description: Environment (local, stg, prod)
@@ -733,6 +825,12 @@ channels:
733
825
 
734
826
  Per ADR-0004 + ADR-0013
735
827
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
828
+ bindings:
829
+ sqs:
830
+ queue:
831
+ name: gisl-{env}-{region}-ops-video-watermark
832
+ fifoQueue: false
833
+ bindingVersion: '0.2.0'
736
834
  parameters:
737
835
  env:
738
836
  description: Environment (local, stg, prod)
@@ -763,6 +861,12 @@ channels:
763
861
 
764
862
  Per ADR-0004 + ADR-0013
765
863
  ([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
864
+ bindings:
865
+ sqs:
866
+ queue:
867
+ name: gisl-{env}-{region}-ops-video-text-watermark
868
+ fifoQueue: false
869
+ bindingVersion: '0.2.0'
766
870
  parameters:
767
871
  env:
768
872
  description: Environment (local, stg, prod)
@@ -797,6 +901,37 @@ channels:
797
901
  own-watermarks-only extraction (declared in `openapi/api.yaml`).
798
902
 
799
903
  Per ADR-0004 + I20 (Trello omiCq7Vn).
904
+ bindings:
905
+ sqs:
906
+ queue:
907
+ name: gisl-{env}-{region}-ops-audio-watermark
908
+ fifoQueue: false
909
+ bindingVersion: '0.2.0'
910
+ parameters:
911
+ env:
912
+ description: Environment (local, stg, prod)
913
+ region:
914
+ description: AWS region abbreviation (euw1, use1, etc.)
915
+ messages:
916
+ operationRequest:
917
+ $ref: '#/components/messages/OperationRequestMessage'
918
+
919
+ opsRenderVariants:
920
+ address: gisl-{env}-{region}-ops-render-variants
921
+ description: |
922
+ SQS queue for render_variants operations (image fan-out — one
923
+ source image to N resized / re-encoded variants). Subscribed to the
924
+ `operations` SNS topic with filter `operation_type = render_variants`.
925
+ Backed by the render_variants Lambda (`operation-render-variants`).
926
+ No traffic reaches this queue while render_variants is
927
+ `availability: planned` (per ticket w3EwzHYd — same `feature_not_
928
+ available` 422 gating until the worker + this subscription ship).
929
+ bindings:
930
+ sqs:
931
+ queue:
932
+ name: gisl-{env}-{region}-ops-render-variants
933
+ fifoQueue: false
934
+ bindingVersion: '0.2.0'
800
935
  parameters:
801
936
  env:
802
937
  description: Environment (local, stg, prod)
@@ -938,6 +1073,18 @@ channels:
938
1073
  region:
939
1074
  description: AWS region abbreviation (euw1, use1, etc.)
940
1075
 
1076
+ opsRenderVariantsDlq:
1077
+ address: gisl-{env}-{region}-ops-render-variants-dlq
1078
+ description: |
1079
+ DLQ for failed render_variants operations (per ticket w3EwzHYd).
1080
+ Messages land here after 5 failed processing attempts. No traffic
1081
+ reaches this queue while render_variants is `availability: planned`.
1082
+ parameters:
1083
+ env:
1084
+ description: Environment (local, stg, prod)
1085
+ region:
1086
+ description: AWS region abbreviation (euw1, use1, etc.)
1087
+
941
1088
  opsAudioToVideoDlq:
942
1089
  address: gisl-{env}-{region}-ops-audio-to-video-dlq
943
1090
  description: |
@@ -986,9 +1133,9 @@ channels:
986
1133
  DLQ for failed split operations (per ticket
987
1134
  [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) / ADR-0014).
988
1135
  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.
1136
+ the `split` `audio` + `video` mime_groups (now `availability: beta`,
1137
+ video short-form only); the `image_gif` and `document_pdf` groups
1138
+ stay `availability: planned` and carry no traffic yet.
992
1139
  parameters:
993
1140
  env:
994
1141
  description: Environment (local, stg, prod)
@@ -1041,6 +1188,12 @@ channels:
1041
1188
 
1042
1189
  Standard (non-FIFO) — each probe request is independent; no
1043
1190
  ordering guarantees are required across uploads.
1191
+ bindings:
1192
+ sqs:
1193
+ queue:
1194
+ name: gisl-{env}-{region}-upload-probe
1195
+ fifoQueue: false
1196
+ bindingVersion: '0.2.0'
1044
1197
  parameters:
1045
1198
  env:
1046
1199
  description: Environment (local, stg, prod)
@@ -1081,6 +1234,12 @@ channels:
1081
1234
  The sync `POST /api/uploads/{id}/probe` path does not publish
1082
1235
  here — sync results are returned inline via the Lambda
1083
1236
  RequestResponse return value.
1237
+ bindings:
1238
+ sqs:
1239
+ queue:
1240
+ name: gisl-{env}-{region}-upload-probe-completions
1241
+ fifoQueue: false
1242
+ bindingVersion: '0.2.0'
1084
1243
  parameters:
1085
1244
  env:
1086
1245
  description: Environment (local, stg, prod)
@@ -1107,8 +1266,8 @@ channels:
1107
1266
  # NOTIFICATIONS (Lambda -> API)
1108
1267
  # ============================================
1109
1268
 
1110
- notificationsOperationsTopic:
1111
- address: gisl-{env}-{region}-notifications-operations.fifo
1269
+ notificationsJobsTopic:
1270
+ address: gisl-{env}-{region}-notifications-jobs.fifo
1112
1271
  description: |
1113
1272
  FIFO SNS topic where Lambdas publish all operation notifications (progress and results).
1114
1273
  API subscribes via FIFO SQS with Raw Message Delivery enabled.
@@ -1116,6 +1275,13 @@ channels:
1116
1275
  **FIFO Publishing Requirements:**
1117
1276
  - MessageGroupId: Use operation_id (ensures ordering per operation)
1118
1277
  - MessageDeduplicationId: Not required (content-based deduplication enabled)
1278
+ bindings:
1279
+ sns:
1280
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1281
+ ordering:
1282
+ type: FIFO
1283
+ contentBasedDeduplication: true
1284
+ bindingVersion: '0.1.0'
1119
1285
  parameters:
1120
1286
  env:
1121
1287
  description: Environment (local, stg, prod)
@@ -1127,15 +1293,21 @@ channels:
1127
1293
  operationResult:
1128
1294
  $ref: '#/components/messages/OperationResultMessage'
1129
1295
 
1130
- notificationsOperationsQueue:
1131
- address: gisl-{env}-{region}-notifications-operations.fifo
1296
+ notificationsJobsQueue:
1297
+ address: gisl-{env}-{region}-notifications-jobs.fifo
1132
1298
  description: |
1133
- FIFO SQS queue subscribed to notifications-operations SNS topic.
1299
+ FIFO SQS queue subscribed to notifications-jobs SNS topic.
1134
1300
  Receives both OperationProgress and OperationResult messages.
1135
1301
  Raw Message Delivery enabled (no SNS envelope).
1136
1302
 
1137
1303
  FIFO ensures message ordering per operation (operation_id used as MessageGroupId).
1138
1304
  This guarantees OperationProgress messages arrive before OperationResult.
1305
+ bindings:
1306
+ sqs:
1307
+ queue:
1308
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1309
+ fifoQueue: true
1310
+ bindingVersion: '0.2.0'
1139
1311
  parameters:
1140
1312
  env:
1141
1313
  description: Environment (local, stg, prod)
@@ -1147,8 +1319,8 @@ channels:
1147
1319
  operationResult:
1148
1320
  $ref: '#/components/messages/OperationResultMessage'
1149
1321
 
1150
- notificationsOperationsDlq:
1151
- address: gisl-{env}-{region}-notifications-operations-dlq.fifo
1322
+ notificationsJobsDlq:
1323
+ address: gisl-{env}-{region}-notifications-jobs-dlq.fifo
1152
1324
  description: DLQ for failed notification processing. Messages land here after 5 failed processing attempts.
1153
1325
  parameters:
1154
1326
  env:
@@ -1181,6 +1353,12 @@ channels:
1181
1353
  shared `JobRequestMessage` across the per-media `jobs-*` queues); per-queue
1182
1354
  `operation_type` is a publisher invariant documented here, not a separate
1183
1355
  message schema.
1356
+ bindings:
1357
+ sqs:
1358
+ queue:
1359
+ name: gisl-{env}-{region}-ops-compress-video-longform
1360
+ fifoQueue: false
1361
+ bindingVersion: '0.2.0'
1184
1362
  parameters:
1185
1363
  env:
1186
1364
  description: Environment (local, stg, prod)
@@ -1211,6 +1389,12 @@ channels:
1211
1389
  `LongFormJobMessage` enum permits `{compress, merge}`; per-queue
1212
1390
  `operation_type` is a publisher invariant documented here, not a separate
1213
1391
  schema).
1392
+ bindings:
1393
+ sqs:
1394
+ queue:
1395
+ name: gisl-{env}-{region}-ops-merge-video-longform-reencode
1396
+ fifoQueue: false
1397
+ bindingVersion: '0.2.0'
1214
1398
  parameters:
1215
1399
  env:
1216
1400
  description: Environment (local, stg, prod)
@@ -1291,6 +1475,12 @@ operations:
1291
1475
  action: receive
1292
1476
  channel:
1293
1477
  $ref: '#/channels/jobsImage'
1478
+ bindings:
1479
+ sqs:
1480
+ queues:
1481
+ - name: gisl-{env}-{region}-jobs-image
1482
+ fifoQueue: false
1483
+ bindingVersion: '0.2.0'
1294
1484
  summary: Process image compression job
1295
1485
  description: |
1296
1486
  The image compression Lambda consumes jobs for image inputs.
@@ -1305,6 +1495,12 @@ operations:
1305
1495
  action: receive
1306
1496
  channel:
1307
1497
  $ref: '#/channels/jobsVideo'
1498
+ bindings:
1499
+ sqs:
1500
+ queues:
1501
+ - name: gisl-{env}-{region}-jobs-video
1502
+ fifoQueue: false
1503
+ bindingVersion: '0.2.0'
1308
1504
  summary: Process video compression job
1309
1505
  description: |
1310
1506
  The video compression Lambda consumes jobs for video inputs.
@@ -1318,6 +1514,12 @@ operations:
1318
1514
  action: receive
1319
1515
  channel:
1320
1516
  $ref: '#/channels/jobsAudio'
1517
+ bindings:
1518
+ sqs:
1519
+ queues:
1520
+ - name: gisl-{env}-{region}-jobs-audio
1521
+ fifoQueue: false
1522
+ bindingVersion: '0.2.0'
1321
1523
  summary: Process audio compression job
1322
1524
  description: |
1323
1525
  The audio compression Lambda consumes jobs for audio inputs.
@@ -1331,6 +1533,12 @@ operations:
1331
1533
  action: receive
1332
1534
  channel:
1333
1535
  $ref: '#/channels/jobsDocument'
1536
+ bindings:
1537
+ sqs:
1538
+ queues:
1539
+ - name: gisl-{env}-{region}-jobs-document
1540
+ fifoQueue: false
1541
+ bindingVersion: '0.2.0'
1334
1542
  summary: Process document compression job
1335
1543
  description: |
1336
1544
  The document compression Lambda consumes jobs for document inputs.
@@ -1348,6 +1556,12 @@ operations:
1348
1556
  action: receive
1349
1557
  channel:
1350
1558
  $ref: '#/channels/opsThumbnail'
1559
+ bindings:
1560
+ sqs:
1561
+ queues:
1562
+ - name: gisl-{env}-{region}-ops-thumbnail
1563
+ fifoQueue: false
1564
+ bindingVersion: '0.2.0'
1351
1565
  summary: Process legacy thumbnail operation
1352
1566
  description: |
1353
1567
  The legacy thumbnail Lambda consumes thumbnail requests routed
@@ -1363,6 +1577,12 @@ operations:
1363
1577
  action: receive
1364
1578
  channel:
1365
1579
  $ref: '#/channels/opsThumbnailImage'
1580
+ bindings:
1581
+ sqs:
1582
+ queues:
1583
+ - name: gisl-{env}-{region}-ops-thumbnail-image
1584
+ fifoQueue: false
1585
+ bindingVersion: '0.2.0'
1366
1586
  summary: Process image thumbnail operation
1367
1587
  description: |
1368
1588
  The image thumbnail Lambda consumes thumbnail requests routed by
@@ -1375,6 +1595,12 @@ operations:
1375
1595
  action: receive
1376
1596
  channel:
1377
1597
  $ref: '#/channels/opsThumbnailVideo'
1598
+ bindings:
1599
+ sqs:
1600
+ queues:
1601
+ - name: gisl-{env}-{region}-ops-thumbnail-video
1602
+ fifoQueue: false
1603
+ bindingVersion: '0.2.0'
1378
1604
  summary: Process video thumbnail operation
1379
1605
  description: |
1380
1606
  The video thumbnail Lambda consumes thumbnail requests routed by
@@ -1387,6 +1613,12 @@ operations:
1387
1613
  action: receive
1388
1614
  channel:
1389
1615
  $ref: '#/channels/opsThumbnailDocument'
1616
+ bindings:
1617
+ sqs:
1618
+ queues:
1619
+ - name: gisl-{env}-{region}-ops-thumbnail-document
1620
+ fifoQueue: false
1621
+ bindingVersion: '0.2.0'
1390
1622
  summary: Process document thumbnail operation
1391
1623
  description: |
1392
1624
  The document (PDF/EPUB) thumbnail Lambda consumes thumbnail
@@ -1400,6 +1632,12 @@ operations:
1400
1632
  action: receive
1401
1633
  channel:
1402
1634
  $ref: '#/channels/opsThumbnailOffice'
1635
+ bindings:
1636
+ sqs:
1637
+ queues:
1638
+ - name: gisl-{env}-{region}-ops-thumbnail-office
1639
+ fifoQueue: false
1640
+ bindingVersion: '0.2.0'
1403
1641
  summary: Process office document thumbnail operation
1404
1642
  description: |
1405
1643
  The office document (DOCX/XLSX/PPTX/ODT/ODS/ODP) thumbnail Lambda
@@ -1413,6 +1651,12 @@ operations:
1413
1651
  action: receive
1414
1652
  channel:
1415
1653
  $ref: '#/channels/opsImageWatermark'
1654
+ bindings:
1655
+ sqs:
1656
+ queues:
1657
+ - name: gisl-{env}-{region}-ops-image-watermark
1658
+ fifoQueue: false
1659
+ bindingVersion: '0.2.0'
1416
1660
  summary: Process image_watermark operation
1417
1661
  description: |
1418
1662
  The operation-image-watermark Lambda consumes image_watermark
@@ -1431,6 +1675,12 @@ operations:
1431
1675
  action: receive
1432
1676
  channel:
1433
1677
  $ref: '#/channels/opsTextWatermark'
1678
+ bindings:
1679
+ sqs:
1680
+ queues:
1681
+ - name: gisl-{env}-{region}-ops-text-watermark
1682
+ fifoQueue: false
1683
+ bindingVersion: '0.2.0'
1434
1684
  summary: Process text_watermark operation
1435
1685
  description: |
1436
1686
  The operation-text-watermark Lambda consumes text_watermark
@@ -1444,6 +1694,12 @@ operations:
1444
1694
  action: receive
1445
1695
  channel:
1446
1696
  $ref: '#/channels/opsMerge'
1697
+ bindings:
1698
+ sqs:
1699
+ queues:
1700
+ - name: gisl-{env}-{region}-ops-merge
1701
+ fifoQueue: false
1702
+ bindingVersion: '0.2.0'
1447
1703
  summary: Process merge operation
1448
1704
  description: |
1449
1705
  The merge Lambda consumes merge requests routed by
@@ -1459,6 +1715,12 @@ operations:
1459
1715
  action: receive
1460
1716
  channel:
1461
1717
  $ref: '#/channels/opsArchive'
1718
+ bindings:
1719
+ sqs:
1720
+ queues:
1721
+ - name: gisl-{env}-{region}-ops-archive
1722
+ fifoQueue: false
1723
+ bindingVersion: '0.2.0'
1462
1724
  summary: Process archive operation
1463
1725
  description: |
1464
1726
  The archive Lambda consumes archive requests routed by
@@ -1471,6 +1733,12 @@ operations:
1471
1733
  action: receive
1472
1734
  channel:
1473
1735
  $ref: '#/channels/opsConvert'
1736
+ bindings:
1737
+ sqs:
1738
+ queues:
1739
+ - name: gisl-{env}-{region}-ops-convert
1740
+ fifoQueue: false
1741
+ bindingVersion: '0.2.0'
1474
1742
  summary: Process convert operation
1475
1743
  description: |
1476
1744
  The convert Lambda consumes convert requests routed by
@@ -1483,6 +1751,12 @@ operations:
1483
1751
  action: receive
1484
1752
  channel:
1485
1753
  $ref: '#/channels/opsCustomLuma'
1754
+ bindings:
1755
+ sqs:
1756
+ queues:
1757
+ - name: gisl-{env}-{region}-ops-custom-luma
1758
+ fifoQueue: false
1759
+ bindingVersion: '0.2.0'
1486
1760
  summary: Process custom_luma operation
1487
1761
  description: |
1488
1762
  The `operation-custom-luma` Lambda (cross-repo follow-up — not
@@ -1500,6 +1774,12 @@ operations:
1500
1774
  action: receive
1501
1775
  channel:
1502
1776
  $ref: '#/channels/opsAudioOverlay'
1777
+ bindings:
1778
+ sqs:
1779
+ queues:
1780
+ - name: gisl-{env}-{region}-ops-audio-overlay
1781
+ fifoQueue: false
1782
+ bindingVersion: '0.2.0'
1503
1783
  summary: Process audio_overlay operation
1504
1784
  description: |
1505
1785
  The `operation-audio-overlay` Lambda (cross-repo follow-up —
@@ -1518,17 +1798,24 @@ operations:
1518
1798
  action: receive
1519
1799
  channel:
1520
1800
  $ref: '#/channels/opsSplit'
1801
+ bindings:
1802
+ sqs:
1803
+ queues:
1804
+ - name: gisl-{env}-{region}-ops-split
1805
+ fifoQueue: false
1806
+ bindingVersion: '0.2.0'
1521
1807
  summary: Process split operation
1522
1808
  description: |
1523
1809
  The `operation-split` Lambda (lambdas pre-launch epic Wave A)
1524
1810
  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
1811
+ `audio` + short-form `video` paths are live on staging (lambdas
1812
+ #161 / [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); the
1813
+ `image_gif` / `document_pdf` workers (and video `long_form` via
1814
+ `split-video-fargate`) remain a cross-repo follow-up. Single-input —
1528
1815
  `media_group` derives from the input MIME prefix per the
1529
1816
  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:
1817
+ and `video` (short-form) mime_groups (workers live on staging); the
1818
+ `image_gif` and `document_pdf` mime_groups stay `availability:
1532
1819
  planned`, and the API rejects their workflow-create with
1533
1820
  `feature_not_available` (422) until those Lambdas ship.
1534
1821
  Long-form video splits route to a separate
@@ -1542,6 +1829,12 @@ operations:
1542
1829
  action: receive
1543
1830
  channel:
1544
1831
  $ref: '#/channels/opsVideoWatermark'
1832
+ bindings:
1833
+ sqs:
1834
+ queues:
1835
+ - name: gisl-{env}-{region}-ops-video-watermark
1836
+ fifoQueue: false
1837
+ bindingVersion: '0.2.0'
1545
1838
  summary: Process video_watermark operation
1546
1839
  description: |
1547
1840
  The `operation-video-watermark` Lambda (cross-repo follow-up —
@@ -1562,6 +1855,12 @@ operations:
1562
1855
  action: receive
1563
1856
  channel:
1564
1857
  $ref: '#/channels/opsVideoTextWatermark'
1858
+ bindings:
1859
+ sqs:
1860
+ queues:
1861
+ - name: gisl-{env}-{region}-ops-video-text-watermark
1862
+ fifoQueue: false
1863
+ bindingVersion: '0.2.0'
1565
1864
  summary: Process video_text_watermark operation
1566
1865
  description: |
1567
1866
  The `operation-video-text-watermark` Lambda (cross-repo
@@ -1581,6 +1880,12 @@ operations:
1581
1880
  action: receive
1582
1881
  channel:
1583
1882
  $ref: '#/channels/opsAudioToVideo'
1883
+ bindings:
1884
+ sqs:
1885
+ queues:
1886
+ - name: gisl-{env}-{region}-ops-audio-to-video
1887
+ fifoQueue: false
1888
+ bindingVersion: '0.2.0'
1584
1889
  summary: Process audio_to_video operation
1585
1890
  description: |
1586
1891
  The `operation-audio-to-video` Lambda (cross-repo follow-up —
@@ -1601,6 +1906,12 @@ operations:
1601
1906
  action: receive
1602
1907
  channel:
1603
1908
  $ref: '#/channels/opsAudioWatermark'
1909
+ bindings:
1910
+ sqs:
1911
+ queues:
1912
+ - name: gisl-{env}-{region}-ops-audio-watermark
1913
+ fifoQueue: false
1914
+ bindingVersion: '0.2.0'
1604
1915
  summary: Process audio_watermark operation
1605
1916
  description: |
1606
1917
  The `operation-audio-watermark` Lambda (cross-repo follow-up —
@@ -1615,6 +1926,29 @@ operations:
1615
1926
  messages:
1616
1927
  - $ref: '#/channels/opsAudioWatermark/messages/operationRequest'
1617
1928
 
1929
+ consumeRenderVariantsOperation:
1930
+ action: receive
1931
+ channel:
1932
+ $ref: '#/channels/opsRenderVariants'
1933
+ bindings:
1934
+ sqs:
1935
+ queues:
1936
+ - name: gisl-{env}-{region}-ops-render-variants
1937
+ fifoQueue: false
1938
+ bindingVersion: '0.2.0'
1939
+ summary: Process render_variants operation
1940
+ description: |
1941
+ The `operation-render-variants` Lambda (cross-repo follow-up —
1942
+ not yet shipped) consumes render_variants requests routed by
1943
+ `operation_type=render_variants`. Single-input image fan-out (one
1944
+ source image to N resized / re-encoded variants). `availability:
1945
+ planned`; the API rejects workflow-create with
1946
+ `feature_not_available` (422) until the Lambda + this subscription
1947
+ ship, so traffic does not reach this channel today. Per ticket
1948
+ w3EwzHYd.
1949
+ messages:
1950
+ - $ref: '#/channels/opsRenderVariants/messages/operationRequest'
1951
+
1618
1952
  # ============================================
1619
1953
  # NOTIFICATION OPERATIONS
1620
1954
  # ============================================
@@ -1622,37 +1956,67 @@ operations:
1622
1956
  publishOperationProgress:
1623
1957
  action: send
1624
1958
  channel:
1625
- $ref: '#/channels/notificationsOperationsTopic'
1959
+ $ref: '#/channels/notificationsJobsTopic'
1960
+ # Operation-level SNS binding: Microcks reads OPERATION bindings (not
1961
+ # the channel binding) for protocol detection — without it the SEND op
1962
+ # registers under Microcks' Kafka default and SNS conformance can't
1963
+ # bind. The cli@6.0.0-bundled SNS 0.1.0 schema requires a non-empty
1964
+ # consumers[] EVEN on send ops (the "consumers only for receive" rule
1965
+ # is 1.0.0, which cli rejects), so we declare the topic's real consumer
1966
+ # — the API FIFO SQS queue with raw message delivery. bindingVersion
1967
+ # 0.1.0 mirrors the channel pin. Per z7VkTNmN producer pillar.
1968
+ bindings:
1969
+ sns:
1970
+ consumers:
1971
+ - protocol: sqs
1972
+ endpoint:
1973
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1974
+ rawMessageDelivery: true
1975
+ bindingVersion: '0.1.0'
1626
1976
  summary: Publish operation progress update
1627
1977
  description: |
1628
1978
  Lambda publishes progress updates during operation processing.
1629
1979
  These are lightweight messages for real-time status tracking.
1630
1980
  messages:
1631
- - $ref: '#/channels/notificationsOperationsTopic/messages/operationProgress'
1981
+ - $ref: '#/channels/notificationsJobsTopic/messages/operationProgress'
1632
1982
 
1633
1983
  publishOperationResult:
1634
1984
  action: send
1635
1985
  channel:
1636
- $ref: '#/channels/notificationsOperationsTopic'
1986
+ $ref: '#/channels/notificationsJobsTopic'
1987
+ bindings:
1988
+ sns:
1989
+ consumers:
1990
+ - protocol: sqs
1991
+ endpoint:
1992
+ name: gisl-{env}-{region}-notifications-jobs.fifo
1993
+ rawMessageDelivery: true
1994
+ bindingVersion: '0.1.0'
1637
1995
  summary: Publish operation result
1638
1996
  description: |
1639
1997
  Lambda publishes the final result when operation completes or fails.
1640
1998
  This is a terminal message with full details.
1641
1999
  messages:
1642
- - $ref: '#/channels/notificationsOperationsTopic/messages/operationResult'
2000
+ - $ref: '#/channels/notificationsJobsTopic/messages/operationResult'
1643
2001
 
1644
2002
  consumeOperationNotifications:
1645
2003
  action: receive
1646
2004
  channel:
1647
- $ref: '#/channels/notificationsOperationsQueue'
2005
+ $ref: '#/channels/notificationsJobsQueue'
2006
+ bindings:
2007
+ sqs:
2008
+ queues:
2009
+ - name: gisl-{env}-{region}-notifications-jobs.fifo
2010
+ fifoQueue: true
2011
+ bindingVersion: '0.2.0'
1648
2012
  summary: Consume operation notifications
1649
2013
  description: |
1650
2014
  API worker consumes both progress and result notifications from SQS.
1651
2015
  - OperationProgress: Update Redis cache for real-time status (forwarded to frontend via SSE)
1652
2016
  - OperationResult: Update database Operation entity, derive Job/Workflow status
1653
2017
  messages:
1654
- - $ref: '#/channels/notificationsOperationsQueue/messages/operationProgress'
1655
- - $ref: '#/channels/notificationsOperationsQueue/messages/operationResult'
2018
+ - $ref: '#/channels/notificationsJobsQueue/messages/operationProgress'
2019
+ - $ref: '#/channels/notificationsJobsQueue/messages/operationResult'
1656
2020
 
1657
2021
  # ============================================
1658
2022
  # UPLOAD-PROBE OPERATIONS (per ticket vBlEurU7)
@@ -1681,6 +2045,12 @@ operations:
1681
2045
  action: receive
1682
2046
  channel:
1683
2047
  $ref: '#/channels/uploadProbeQueue'
2048
+ bindings:
2049
+ sqs:
2050
+ queues:
2051
+ - name: gisl-{env}-{region}-upload-probe
2052
+ fifoQueue: false
2053
+ bindingVersion: '0.2.0'
1684
2054
  summary: Consume an upload-probe request (async branch)
1685
2055
  description: |
1686
2056
  The upload-probe Lambda consumes from the SQS queue subscribed
@@ -1698,6 +2068,12 @@ operations:
1698
2068
  action: send
1699
2069
  channel:
1700
2070
  $ref: '#/channels/uploadProbeCompletionsQueue'
2071
+ bindings:
2072
+ sqs:
2073
+ queues:
2074
+ - name: gisl-{env}-{region}-upload-probe-completions
2075
+ fifoQueue: false
2076
+ bindingVersion: '0.2.0'
1701
2077
  summary: Publish an upload-probe completion (async branch)
1702
2078
  description: |
1703
2079
  The upload-probe Lambda publishes the result of the async
@@ -1719,6 +2095,12 @@ operations:
1719
2095
  action: receive
1720
2096
  channel:
1721
2097
  $ref: '#/channels/uploadProbeCompletionsQueue'
2098
+ bindings:
2099
+ sqs:
2100
+ queues:
2101
+ - name: gisl-{env}-{region}-upload-probe-completions
2102
+ fifoQueue: false
2103
+ bindingVersion: '0.2.0'
1722
2104
  summary: Consume an upload-probe completion (async branch)
1723
2105
  description: |
1724
2106
  The API consumer worker reads completions from this queue and
@@ -1737,6 +2119,12 @@ operations:
1737
2119
  action: send
1738
2120
  channel:
1739
2121
  $ref: '#/channels/longformCompressVideo'
2122
+ bindings:
2123
+ sqs:
2124
+ queues:
2125
+ - name: gisl-{env}-{region}-ops-compress-video-longform
2126
+ fifoQueue: false
2127
+ bindingVersion: '0.2.0'
1740
2128
  summary: Publish a long-form video compression claim-check.
1741
2129
  description: |
1742
2130
  The API (`SqsLongFormOperationPublisherAdapter`) writes the full job
@@ -1750,6 +2138,12 @@ operations:
1750
2138
  action: send
1751
2139
  channel:
1752
2140
  $ref: '#/channels/longformMergeVideoReencode'
2141
+ bindings:
2142
+ sqs:
2143
+ queues:
2144
+ - name: gisl-{env}-{region}-ops-merge-video-longform-reencode
2145
+ fifoQueue: false
2146
+ bindingVersion: '0.2.0'
1753
2147
  summary: Publish a long-form merge re-encode claim-check.
1754
2148
  description: |
1755
2149
  As `publishLongFormCompressVideo`, for `operation_type = merge`
@@ -1765,6 +2159,12 @@ operations:
1765
2159
  action: receive
1766
2160
  channel:
1767
2161
  $ref: '#/channels/longformCompressVideo'
2162
+ bindings:
2163
+ sqs:
2164
+ queues:
2165
+ - name: gisl-{env}-{region}-ops-compress-video-longform
2166
+ fifoQueue: false
2167
+ bindingVersion: '0.2.0'
1768
2168
  summary: Consume a long-form video compression claim-check.
1769
2169
  description: |
1770
2170
  A terraform-owned launcher (EventBridge Pipe, filter=none -> launcher
@@ -1779,6 +2179,12 @@ operations:
1779
2179
  action: receive
1780
2180
  channel:
1781
2181
  $ref: '#/channels/longformMergeVideoReencode'
2182
+ bindings:
2183
+ sqs:
2184
+ queues:
2185
+ - name: gisl-{env}-{region}-ops-merge-video-longform-reencode
2186
+ fifoQueue: false
2187
+ bindingVersion: '0.2.0'
1782
2188
  summary: Consume a long-form merge re-encode claim-check.
1783
2189
  description: |
1784
2190
  As `consumeLongFormCompressVideo`, for `operation_type = merge`
@@ -2709,6 +3115,13 @@ components:
2709
3115
  Operation type used as the SNS filter attribute on the
2710
3116
  `operations` topic. The sole routing key for non-compression
2711
3117
  traffic.
3118
+
3119
+ **`passthrough` is deliberately excluded** from this enum: a
3120
+ `passthrough` operation never goes on the wire. The API
3121
+ self-completes a passthrough source job at publish (terminal
3122
+ output = the upload bytes unchanged), so nothing is published
3123
+ to SNS and there is no `ops-passthrough` queue. Per ticket
3124
+ `4som89Uh`.
2712
3125
  enum:
2713
3126
  - thumbnail
2714
3127
  - thumbnail_image
@@ -2727,6 +3140,7 @@ components:
2727
3140
  - video_watermark
2728
3141
  - video_text_watermark
2729
3142
  - split
3143
+ - render_variants
2730
3144
  media_group:
2731
3145
  type: string
2732
3146
  description: |
@@ -2884,6 +3298,11 @@ components:
2884
3298
  - operation_type
2885
3299
  - output_bucket
2886
3300
  - output_key_prefix
3301
+ # No `passthrough` branch below: a passthrough source job is
3302
+ # self-completed by the API at publish (output = upload bytes
3303
+ # unchanged) and is never published as an OperationRequest message,
3304
+ # so it has no single-input/multi-input required-field branch here.
3305
+ # Per ticket 4som89Uh.
2887
3306
  allOf:
2888
3307
  - if:
2889
3308
  properties:
@@ -2896,6 +3315,7 @@ components:
2896
3315
  - audio_watermark
2897
3316
  - video_text_watermark
2898
3317
  - split
3318
+ - render_variants
2899
3319
  then:
2900
3320
  required:
2901
3321
  - file_type
@@ -3174,6 +3594,33 @@ components:
3174
3594
  silently drop this sibling per-input audio override at the wire
3175
3595
  boundary.
3176
3596
  example: 0.5
3597
+ trim_start:
3598
+ type: number
3599
+ minimum: 0
3600
+ description: |
3601
+ Per-input trim from the beginning, in seconds, applied to
3602
+ this input BEFORE the transition/crossfade step. Mirrors
3603
+ `merge.{video,audio}.per_input_options.trim_start` in
3604
+ `schemas/operations/merge.yaml`; same "trim from beginning"
3605
+ semantic as `compress` trim. No `maximum` — the upper bound
3606
+ is the input's own duration, enforced by the worker, not
3607
+ statically bounded at the wire. Wire slot added so the API
3608
+ does not drop this per-input override at the boundary
3609
+ (mirrors the crossfade_duration/gap_duration precedent).
3610
+ example: 1.5
3611
+ trim_end:
3612
+ type: number
3613
+ minimum: 0
3614
+ description: |
3615
+ Per-input trim from the end, in seconds, applied to this
3616
+ input BEFORE the transition/crossfade step. Mirrors
3617
+ `merge.{video,audio}.per_input_options.trim_end` in
3618
+ `schemas/operations/merge.yaml`; same "trim from end"
3619
+ semantic as `compress` trim. No `maximum` — bounded by the
3620
+ input's own duration at the worker, not statically. Wire
3621
+ slot added so the API does not drop this per-input override
3622
+ at the boundary.
3623
+ example: 2.0
3177
3624
 
3178
3625
  # ============================================
3179
3626
  # OPERATION PROGRESS SCHEMA
@@ -3419,6 +3866,8 @@ components:
3419
3866
 
3420
3867
  metrics:
3421
3868
  $ref: '#/components/schemas/OperationMetrics'
3869
+ result_metadata:
3870
+ $ref: '#/components/schemas/OperationResultMetadata'
3422
3871
 
3423
3872
  # Failure fields
3424
3873
  error_code:
@@ -3438,6 +3887,32 @@ components:
3438
3887
  description: Progress percentage when the operation failed (failed only)
3439
3888
  example: 10
3440
3889
 
3890
+ OperationResultMetadata:
3891
+ type: object
3892
+ additionalProperties: false
3893
+ description: |
3894
+ Whitelisted, named operation-level result metadata — a **CLOSED**
3895
+ set of declared keys carried on the wire result (Lambda → API). The
3896
+ API persists only declared keys and serves only declared keys (a
3897
+ whitelist projection on the read side), never the raw bag, so
3898
+ internal diagnostics never leak. New keys are **additive named
3899
+ cuts**. Twin of the OpenAPI `OperationResultMetadata` (wire ↔ read
3900
+ parity — same named-prop shape). Distinct from the deliverable
3901
+ output (`output_key` / `outputs[]`): small per-operation metadata,
3902
+ not the file. Per ticket EurbZLMH (B1).
3903
+ properties:
3904
+ watermark_id:
3905
+ type: string
3906
+ format: uuid
3907
+ description: |
3908
+ UUIDv7 of the watermark embedded by an `audio_watermark`
3909
+ operation (for later decode/verify). **Display-only / not yet
3910
+ populated** — gated on the audio_watermark Lambda (EvPl5fkH, B3)
3911
+ + the watermark registry (B2, deferred). The field + whitelist
3912
+ ship now (additive) so the pipeline + read projection land
3913
+ without a later contract bump; absent until B3 is live.
3914
+ example: "018f9c42-5d6b-7481-b3df-9fd0a0a5e112"
3915
+
3441
3916
  OperationResultOutputEntry:
3442
3917
  type: object
3443
3918
  description: |
@@ -3463,9 +3938,11 @@ components:
3463
3938
  not: { required: [page_index] }
3464
3939
  - title: Unindexed
3465
3940
  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.
3941
+ Output without a page/position indexing field. Covers legacy
3942
+ single-output entries AND `render_variants` variant outputs (the
3943
+ latter carry the optional `target_id` correlation field — the
3944
+ image-fan-out addressing contract — but are not page/position
3945
+ indexed). Per ADR-0009 §D2.
3469
3946
  not:
3470
3947
  anyOf:
3471
3948
  - required: [page_index]
@@ -3502,6 +3979,18 @@ components:
3502
3979
  strip, chapter split). Mutually exclusive with `page_index`.
3503
3980
  Per ADR-0009 §D2.
3504
3981
  example: 0
3982
+ target_id:
3983
+ type: string
3984
+ pattern: '^[A-Za-z0-9._-]+$'
3985
+ maxLength: 64
3986
+ description: |
3987
+ The caller-assigned `id` of the `render_variants` target that
3988
+ produced this output, echoed verbatim — the addressing contract
3989
+ for image fan-out. Carried on the `Unindexed` branch (variant
3990
+ outputs are not page/position indexed); no operation emits
3991
+ `target_id` together with `page_index` / `position`. Per ticket
3992
+ `w3EwzHYd`.
3993
+ example: "thumb-2x"
3505
3994
 
3506
3995
  # ============================================
3507
3996
  # WORKFLOW STATE CHANGED (per ticket I24)
@@ -4162,11 +4651,19 @@ components:
4162
4651
  `processing_class`. `media_group` derives from the input
4163
4652
  MIME prefix per the existing single-input rule (no
4164
4653
  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`
4654
+ for the `audio` and `video` (short-form) mime_groups
4655
+ (`image_gif` / `document_pdf` and video `long_form` stay
4656
+ `planned`); routes via `operation_type=split`
4167
4657
  to `ops-split`.
4168
4658
  Per ADR-0004 + ADR-0014
4169
4659
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
4660
+
4661
+ Note: the `passthrough` OpenAPI operation is **deliberately
4662
+ absent** from this payload enum. A passthrough source job is
4663
+ self-completed by the API at publish (its output is the upload
4664
+ bytes unchanged) and is never dispatched as an
4665
+ `OperationRequest` message — so it carries no wire payload and
4666
+ needs no SNS routing value. Per ticket `4som89Uh`.
4170
4667
  enum:
4171
4668
  - compress
4172
4669
  - thumbnail
@@ -4182,6 +4679,7 @@ components:
4182
4679
  - video_watermark
4183
4680
  - video_text_watermark
4184
4681
  - split
4682
+ - render_variants
4185
4683
 
4186
4684
  MediaGroup:
4187
4685
  type: string