@giveitsmaller/contracts 0.73.0 → 0.78.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 (579) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +1 -1
  3. package/accepted-options/image-output-routes.json +16 -2
  4. package/asyncapi/README.md +1 -1
  5. package/asyncapi/events.yaml +353 -90
  6. package/availability/availability.json +142 -45
  7. package/code-builder/code-builder-metadata.json +205 -45
  8. package/dist/asyncapi/AnonymousSchema_217.d.ts +6 -0
  9. package/dist/asyncapi/AnonymousSchema_217.js +7 -0
  10. package/dist/asyncapi/ErrorCode.d.ts +1 -0
  11. package/dist/asyncapi/ErrorCode.js +1 -0
  12. package/dist/asyncapi/Failure.d.ts +3 -0
  13. package/dist/asyncapi/LongFormJobMessage.d.ts +1 -0
  14. package/dist/asyncapi/MultiOutputCompletion.d.ts +3 -0
  15. package/dist/asyncapi/OperationMetrics.d.ts +2 -0
  16. package/dist/asyncapi/SingleOutputCompletion.d.ts +3 -0
  17. package/dist/asyncapi/UploadProbeMediaMetadata.d.ts +14 -0
  18. package/dist/asyncapi/index.d.ts +1 -0
  19. package/dist/asyncapi/index.js +1 -0
  20. package/dist/openapi/models/AccountLimitEntry.d.ts +2 -2
  21. package/dist/openapi/models/AccountLimitEntry.js +2 -2
  22. package/dist/openapi/models/AccountLimits.d.ts +2 -2
  23. package/dist/openapi/models/AccountLimits.js +2 -2
  24. package/dist/openapi/models/AccountLimitsLimits.d.ts +14 -2
  25. package/dist/openapi/models/AccountLimitsLimits.js +6 -2
  26. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +2 -2
  27. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +2 -2
  28. package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +145 -0
  29. package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +82 -0
  30. package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +131 -0
  31. package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +77 -0
  32. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  33. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  34. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  35. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  36. package/dist/openapi/models/AuthErrorResponse.d.ts +14 -5
  37. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  38. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  39. package/dist/openapi/models/AuthErrorType.js +2 -2
  40. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +2 -2
  41. package/dist/openapi/models/AuthRejectionEnvelope.js +2 -2
  42. package/dist/openapi/models/AuthenticatedIdentity.d.ts +2 -2
  43. package/dist/openapi/models/AuthenticatedIdentity.js +2 -2
  44. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  45. package/dist/openapi/models/AvailabilityValue.js +2 -2
  46. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +14 -5
  47. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  48. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  49. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  50. package/dist/openapi/models/BillingCheckoutRequest.d.ts +2 -2
  51. package/dist/openapi/models/BillingCheckoutRequest.js +2 -2
  52. package/dist/openapi/models/BillingCheckoutSession.d.ts +2 -2
  53. package/dist/openapi/models/BillingCheckoutSession.js +2 -2
  54. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +2 -2
  55. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +2 -2
  56. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  57. package/dist/openapi/models/CallbackEventType.js +2 -2
  58. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +2 -2
  59. package/dist/openapi/models/CancelAccountDeletion200Response.js +2 -2
  60. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +2 -2
  61. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +2 -2
  62. package/dist/openapi/models/CapabilityCondition.d.ts +2 -2
  63. package/dist/openapi/models/CapabilityCondition.js +2 -2
  64. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +2 -2
  65. package/dist/openapi/models/CapabilityConditionOneOf.js +2 -2
  66. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +2 -2
  67. package/dist/openapi/models/CapabilityConditionOneOf1.js +2 -2
  68. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +2 -2
  69. package/dist/openapi/models/CapabilityConditionOneOf2.js +2 -2
  70. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +2 -2
  71. package/dist/openapi/models/CapabilityConditionOneOf3.js +2 -2
  72. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +2 -2
  73. package/dist/openapi/models/CapabilityConditionOneOf4.js +2 -2
  74. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +2 -2
  75. package/dist/openapi/models/CapabilityConditionOneOf5.js +2 -2
  76. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +2 -2
  77. package/dist/openapi/models/CapabilityConditionOneOf6.js +2 -2
  78. package/dist/openapi/models/CapabilityConstraint.d.ts +2 -2
  79. package/dist/openapi/models/CapabilityConstraint.js +2 -2
  80. package/dist/openapi/models/CapabilityInputSpec.d.ts +2 -2
  81. package/dist/openapi/models/CapabilityInputSpec.js +2 -2
  82. package/dist/openapi/models/CapabilityProduces.d.ts +2 -2
  83. package/dist/openapi/models/CapabilityProduces.js +2 -2
  84. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +2 -2
  85. package/dist/openapi/models/CapabilityProducesOneOf.js +2 -2
  86. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +2 -2
  87. package/dist/openapi/models/CapabilityProducesOneOf1.js +2 -2
  88. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +2 -2
  89. package/dist/openapi/models/CapabilityProducesOneOf2.js +2 -2
  90. package/dist/openapi/models/ChangePasswordRequest.d.ts +2 -2
  91. package/dist/openapi/models/ChangePasswordRequest.js +2 -2
  92. package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +46 -0
  93. package/dist/openapi/models/CheckoutSessionStatusResponse.js +54 -0
  94. package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +50 -0
  95. package/dist/openapi/models/CheckoutSessionStatusResponseData.js +55 -0
  96. package/dist/openapi/models/CodegenSource.d.ts +5 -4
  97. package/dist/openapi/models/CodegenSource.js +2 -2
  98. package/dist/openapi/models/CodegenSourceInput.d.ts +2 -2
  99. package/dist/openapi/models/CodegenSourceInput.js +2 -2
  100. package/dist/openapi/models/CodegenSourceJob.d.ts +2 -2
  101. package/dist/openapi/models/CodegenSourceJob.js +2 -2
  102. package/dist/openapi/models/CodegenSourceJobSource.d.ts +2 -2
  103. package/dist/openapi/models/CodegenSourceJobSource.js +2 -2
  104. package/dist/openapi/models/CodegenSourceOperation.d.ts +2 -2
  105. package/dist/openapi/models/CodegenSourceOperation.js +2 -2
  106. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +2 -2
  107. package/dist/openapi/models/CodegenUploadPlaceholder.js +2 -2
  108. package/dist/openapi/models/CompositionPlan.d.ts +2 -2
  109. package/dist/openapi/models/CompositionPlan.js +2 -2
  110. package/dist/openapi/models/CompositionPlanJob.d.ts +2 -2
  111. package/dist/openapi/models/CompositionPlanJob.js +2 -2
  112. package/dist/openapi/models/CompositionPlanOperation.d.ts +2 -2
  113. package/dist/openapi/models/CompositionPlanOperation.js +2 -2
  114. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +2 -2
  115. package/dist/openapi/models/ConfirmEmailChange200Response.js +2 -2
  116. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +2 -2
  117. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +2 -2
  118. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +2 -2
  119. package/dist/openapi/models/ConfirmEmailChangeRequest.js +2 -2
  120. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  121. package/dist/openapi/models/ConnectionSource.js +2 -2
  122. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  123. package/dist/openapi/models/ContactRequest.js +2 -2
  124. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  125. package/dist/openapi/models/ContactSubject.js +2 -2
  126. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  127. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  128. package/dist/openapi/models/CreateApiKey201Response.d.ts +2 -2
  129. package/dist/openapi/models/CreateApiKey201Response.js +2 -2
  130. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +2 -2
  131. package/dist/openapi/models/CreateApiKey201ResponseData.js +2 -2
  132. package/dist/openapi/models/CreateApiKeyRequest.d.ts +2 -2
  133. package/dist/openapi/models/CreateApiKeyRequest.js +2 -2
  134. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +2 -2
  135. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +2 -2
  136. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  137. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  138. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  139. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  140. package/dist/openapi/models/CreateWorkflow401Response.d.ts +14 -5
  141. package/dist/openapi/models/CreateWorkflow401Response.js +2 -2
  142. package/dist/openapi/models/CreateWorkflow403Response.d.ts +33 -0
  143. package/dist/openapi/models/CreateWorkflow403Response.js +57 -0
  144. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  145. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  146. package/dist/openapi/models/CreditTransaction.d.ts +22 -12
  147. package/dist/openapi/models/CreditTransaction.js +2 -2
  148. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  149. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  150. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  151. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  152. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  153. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  154. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  155. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  156. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  157. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  158. package/dist/openapi/models/Delivery.d.ts +2 -2
  159. package/dist/openapi/models/Delivery.js +2 -2
  160. package/dist/openapi/models/DeliveryOutputRef.d.ts +2 -2
  161. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  162. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  163. package/dist/openapi/models/DeliveryPlan.js +2 -2
  164. package/dist/openapi/models/DeliveryPlanOutput.d.ts +2 -2
  165. package/dist/openapi/models/DeliveryPlanOutput.js +2 -2
  166. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  167. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  168. package/dist/openapi/models/DeliverySelection.d.ts +2 -2
  169. package/dist/openapi/models/DeliverySelection.js +2 -2
  170. package/dist/openapi/models/DownloadBundle.d.ts +2 -2
  171. package/dist/openapi/models/DownloadBundle.js +2 -2
  172. package/dist/openapi/models/DroppedOption.d.ts +2 -2
  173. package/dist/openapi/models/DroppedOption.js +2 -2
  174. package/dist/openapi/models/EmailNotify.d.ts +2 -2
  175. package/dist/openapi/models/EmailNotify.js +2 -2
  176. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +2 -2
  177. package/dist/openapi/models/EmptySuccessEnvelope.js +2 -2
  178. package/dist/openapi/models/EndpointProjection.d.ts +2 -2
  179. package/dist/openapi/models/EndpointProjection.js +2 -2
  180. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +2 -2
  181. package/dist/openapi/models/EndpointProjectionServersInner.js +2 -2
  182. package/dist/openapi/models/ErrorEnvelope.d.ts +14 -5
  183. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  184. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  185. package/dist/openapi/models/EstimateQuality.js +2 -2
  186. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  187. package/dist/openapi/models/EstimateRange.js +2 -2
  188. package/dist/openapi/models/ExportAccountData200Response.d.ts +2 -2
  189. package/dist/openapi/models/ExportAccountData200Response.js +2 -2
  190. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +5 -4
  191. package/dist/openapi/models/ExportAccountData200ResponseData.js +5 -4
  192. package/dist/openapi/models/ExportAccountData200ResponseDataBilling.d.ts +36 -0
  193. package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +42 -0
  194. package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +58 -0
  195. package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.js +62 -0
  196. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  197. package/dist/openapi/models/ExternalDestination.js +2 -2
  198. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  199. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  200. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  201. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  202. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  203. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  204. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  205. package/dist/openapi/models/ExternalImportToken.js +2 -2
  206. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  207. package/dist/openapi/models/ExternalSource.js +2 -2
  208. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +14 -5
  209. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  210. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +14 -5
  211. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  212. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  213. package/dist/openapi/models/FeatureViolation.js +2 -2
  214. package/dist/openapi/models/GetProfile200Response.d.ts +2 -2
  215. package/dist/openapi/models/GetProfile200Response.js +2 -2
  216. package/dist/openapi/models/GetProfile200ResponseData.d.ts +2 -2
  217. package/dist/openapi/models/GetProfile200ResponseData.js +2 -2
  218. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +2 -2
  219. package/dist/openapi/models/ImageEncodeCapabilities.js +2 -2
  220. package/dist/openapi/models/JobDefinition.d.ts +2 -2
  221. package/dist/openapi/models/JobDefinition.js +2 -2
  222. package/dist/openapi/models/JobDownload.d.ts +2 -2
  223. package/dist/openapi/models/JobDownload.js +2 -2
  224. package/dist/openapi/models/JobInputV2.d.ts +2 -2
  225. package/dist/openapi/models/JobInputV2.js +2 -2
  226. package/dist/openapi/models/JobMediaClass.d.ts +2 -2
  227. package/dist/openapi/models/JobMediaClass.js +2 -2
  228. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  229. package/dist/openapi/models/JobOutputSource.js +2 -2
  230. package/dist/openapi/models/JobResponse.d.ts +2 -2
  231. package/dist/openapi/models/JobResponse.js +2 -2
  232. package/dist/openapi/models/JobStatus.d.ts +2 -2
  233. package/dist/openapi/models/JobStatus.js +2 -2
  234. package/dist/openapi/models/JobType.d.ts +2 -2
  235. package/dist/openapi/models/JobType.js +2 -2
  236. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  237. package/dist/openapi/models/LivenessResponse.js +2 -2
  238. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  239. package/dist/openapi/models/LoginUser200Response.js +2 -2
  240. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  241. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  242. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  243. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  244. package/dist/openapi/models/LoginUser401Response.d.ts +14 -5
  245. package/dist/openapi/models/LoginUser401Response.js +2 -2
  246. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  247. package/dist/openapi/models/LoginUserRequest.js +2 -2
  248. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +14 -5
  249. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +2 -2
  250. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +2 -2
  251. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +2 -2
  252. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  253. package/dist/openapi/models/MetadataResponse.js +2 -2
  254. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  255. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  256. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  257. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  258. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  259. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  260. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  261. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  262. package/dist/openapi/models/MimeGroupSchema.d.ts +39 -3
  263. package/dist/openapi/models/MimeGroupSchema.js +12 -2
  264. package/dist/openapi/models/MultiInputSource.d.ts +2 -2
  265. package/dist/openapi/models/MultiInputSource.js +2 -2
  266. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  267. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  268. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  269. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  270. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  271. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  272. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  273. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  274. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  275. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  276. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  277. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  278. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  279. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  280. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  281. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  282. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  283. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  284. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  285. package/dist/openapi/models/MultipartPartListing.js +2 -2
  286. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  287. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  288. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  289. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  290. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  291. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  292. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  293. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  294. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  295. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  296. package/dist/openapi/models/NotifyConfig.d.ts +9 -5
  297. package/dist/openapi/models/NotifyConfig.js +2 -2
  298. package/dist/openapi/models/OperationCapability.d.ts +2 -2
  299. package/dist/openapi/models/OperationCapability.js +2 -2
  300. package/dist/openapi/models/OperationDefinition.d.ts +2 -2
  301. package/dist/openapi/models/OperationDefinition.js +2 -2
  302. package/dist/openapi/models/OperationDownload.d.ts +6 -2
  303. package/dist/openapi/models/OperationDownload.js +2 -2
  304. package/dist/openapi/models/OperationInputModel.d.ts +2 -2
  305. package/dist/openapi/models/OperationInputModel.js +2 -2
  306. package/dist/openapi/models/OperationMessageParamsValue.d.ts +25 -0
  307. package/dist/openapi/models/OperationMessageParamsValue.js +31 -0
  308. package/dist/openapi/models/OperationResponse.d.ts +36 -2
  309. package/dist/openapi/models/OperationResponse.js +8 -2
  310. package/dist/openapi/models/OperationResult.d.ts +2 -2
  311. package/dist/openapi/models/OperationResult.js +2 -2
  312. package/dist/openapi/models/OperationResultMetadata.d.ts +29 -3
  313. package/dist/openapi/models/OperationResultMetadata.js +6 -2
  314. package/dist/openapi/models/OperationResultMetrics.d.ts +4 -4
  315. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  316. package/dist/openapi/models/OperationSchemaDefinition.d.ts +5 -6
  317. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  318. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  319. package/dist/openapi/models/OperationStatus.js +2 -2
  320. package/dist/openapi/models/OperationType.d.ts +10 -4
  321. package/dist/openapi/models/OperationType.js +10 -4
  322. package/dist/openapi/models/OperationsSchemaResponse.d.ts +2 -2
  323. package/dist/openapi/models/OperationsSchemaResponse.js +2 -2
  324. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  325. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  326. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  327. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  328. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  329. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  330. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  331. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  332. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +2 -2
  333. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +2 -2
  334. package/dist/openapi/models/OptionSchema.d.ts +40 -3
  335. package/dist/openapi/models/OptionSchema.js +10 -2
  336. package/dist/openapi/models/OutputProperties.d.ts +2 -2
  337. package/dist/openapi/models/OutputProperties.js +2 -2
  338. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +2 -2
  339. package/dist/openapi/models/OutputPropertiesIsAnimated.js +2 -2
  340. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +2 -2
  341. package/dist/openapi/models/PerClassAvailabilityEntry.js +2 -2
  342. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  343. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  344. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  345. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  346. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  347. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  348. package/dist/openapi/models/ProbePendingResponse.d.ts +14 -5
  349. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  350. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  351. package/dist/openapi/models/ProcessingClass.js +2 -2
  352. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +13 -2
  353. package/dist/openapi/models/ProcessingClassBandViolation.js +5 -2
  354. package/dist/openapi/models/ProcessingClassConstraints.d.ts +2 -2
  355. package/dist/openapi/models/ProcessingClassConstraints.js +2 -2
  356. package/dist/openapi/models/ProcessingClassEntry.d.ts +16 -2
  357. package/dist/openapi/models/ProcessingClassEntry.js +8 -2
  358. package/dist/openapi/models/ProcessingClassEntryInputUniformity.d.ts +65 -0
  359. package/dist/openapi/models/ProcessingClassEntryInputUniformity.js +57 -0
  360. package/dist/openapi/models/ProcessingClassEntryResolutionBands.d.ts +66 -0
  361. package/dist/openapi/models/ProcessingClassEntryResolutionBands.js +56 -0
  362. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +14 -5
  363. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  364. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  365. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  366. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  367. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  368. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  369. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  370. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  371. package/dist/openapi/models/ProcessingPlan.js +2 -2
  372. package/dist/openapi/models/ProcessingPlanJob.d.ts +15 -2
  373. package/dist/openapi/models/ProcessingPlanJob.js +5 -2
  374. package/dist/openapi/models/ReEncodeDecision.d.ts +19 -8
  375. package/dist/openapi/models/ReEncodeDecision.js +19 -8
  376. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  377. package/dist/openapi/models/ReadinessResponse.js +2 -2
  378. package/dist/openapi/models/RegisterUser422Response.d.ts +2 -2
  379. package/dist/openapi/models/RegisterUser422Response.js +2 -2
  380. package/dist/openapi/models/RegisterUserRequest.d.ts +2 -2
  381. package/dist/openapi/models/RegisterUserRequest.js +2 -2
  382. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +2 -2
  383. package/dist/openapi/models/RequestAccountDeletion200Response.js +2 -2
  384. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +2 -2
  385. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +2 -2
  386. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +2 -2
  387. package/dist/openapi/models/RequestAccountDeletionRequest.js +2 -2
  388. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +2 -2
  389. package/dist/openapi/models/ResendVerificationEmailRequest.js +2 -2
  390. package/dist/openapi/models/ResetPasswordRequest.d.ts +2 -2
  391. package/dist/openapi/models/ResetPasswordRequest.js +2 -2
  392. package/dist/openapi/models/ResolutionBand.d.ts +44 -0
  393. package/dist/openapi/models/ResolutionBand.js +62 -0
  394. package/dist/openapi/models/ResolutionBandCeiling.d.ts +68 -0
  395. package/dist/openapi/models/ResolutionBandCeiling.js +57 -0
  396. package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +32 -0
  397. package/dist/openapi/models/ResolutionBandCeilingConstraints.js +41 -0
  398. package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +48 -0
  399. package/dist/openapi/models/ResolutionBandCeilingDerivation.js +51 -0
  400. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  401. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  402. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  403. package/dist/openapi/models/RetryResponse.js +2 -2
  404. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  405. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  406. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  407. package/dist/openapi/models/SseCompletionBase.js +2 -2
  408. package/dist/openapi/models/SseConnectionLimitResponse.d.ts +14 -5
  409. package/dist/openapi/models/SseConnectionLimitResponse.js +2 -2
  410. package/dist/openapi/models/SseEventType.d.ts +2 -2
  411. package/dist/openapi/models/SseEventType.js +2 -2
  412. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  413. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  414. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  415. package/dist/openapi/models/SseJobFailedData.js +2 -2
  416. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  417. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  418. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  419. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  420. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  421. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  422. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +6 -2
  423. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  424. package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
  425. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  426. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  427. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  428. package/dist/openapi/models/SseOperationFailedData.d.ts +33 -2
  429. package/dist/openapi/models/SseOperationFailedData.js +8 -2
  430. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  431. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  432. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  433. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  434. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  435. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  436. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  437. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  438. package/dist/openapi/models/TierRestrictionResponse.d.ts +14 -5
  439. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  440. package/dist/openapi/models/UpdateProfile200Response.d.ts +2 -2
  441. package/dist/openapi/models/UpdateProfile200Response.js +2 -2
  442. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +2 -2
  443. package/dist/openapi/models/UpdateProfile200ResponseData.js +2 -2
  444. package/dist/openapi/models/UpdateProfile422Response.d.ts +2 -2
  445. package/dist/openapi/models/UpdateProfile422Response.js +2 -2
  446. package/dist/openapi/models/UpdateProfileRequest.d.ts +2 -2
  447. package/dist/openapi/models/UpdateProfileRequest.js +2 -2
  448. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  449. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  450. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +14 -5
  451. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  452. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  453. package/dist/openapi/models/UploadFile403Response.js +2 -2
  454. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  455. package/dist/openapi/models/UploadFile422Response.js +2 -2
  456. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +107 -2
  457. package/dist/openapi/models/UploadProbeMediaMetadata.js +36 -2
  458. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +4 -6
  459. package/dist/openapi/models/UploadProbeProcessingClass.js +4 -6
  460. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  461. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  462. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  463. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  464. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  465. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  466. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  467. package/dist/openapi/models/UploadResponse.js +2 -2
  468. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +14 -5
  469. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  470. package/dist/openapi/models/UploadSource.d.ts +2 -2
  471. package/dist/openapi/models/UploadSource.js +2 -2
  472. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  473. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  474. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  475. package/dist/openapi/models/UploadThresholds.js +2 -2
  476. package/dist/openapi/models/UserTier.d.ts +2 -2
  477. package/dist/openapi/models/UserTier.js +2 -2
  478. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +19 -8
  479. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  480. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  481. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  482. package/dist/openapi/models/VerifyEmailRequest.d.ts +2 -2
  483. package/dist/openapi/models/VerifyEmailRequest.js +2 -2
  484. package/dist/openapi/models/WarningType.d.ts +2 -2
  485. package/dist/openapi/models/WarningType.js +2 -2
  486. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  487. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  488. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  489. package/dist/openapi/models/WebhookPayload.js +2 -2
  490. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +2 -2
  491. package/dist/openapi/models/WorkflowArchiveResponse.js +2 -2
  492. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +2 -2
  493. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +2 -2
  494. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +7 -6
  495. package/dist/openapi/models/WorkflowCancelBillingEffect.js +7 -6
  496. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  497. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  498. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  499. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  500. package/dist/openapi/models/WorkflowCreateRequest.d.ts +11 -14
  501. package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
  502. package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
  503. package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
  504. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  505. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  506. package/dist/openapi/models/WorkflowCreditSummary.d.ts +2 -2
  507. package/dist/openapi/models/WorkflowCreditSummary.js +2 -2
  508. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  509. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  510. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  511. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  512. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  513. package/dist/openapi/models/WorkflowEdge.js +2 -2
  514. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +14 -5
  515. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  516. package/dist/openapi/models/WorkflowListResponse.d.ts +2 -2
  517. package/dist/openapi/models/WorkflowListResponse.js +2 -2
  518. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +2 -2
  519. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +2 -2
  520. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +18 -6
  521. package/dist/openapi/models/WorkflowPauseRequiredAction.js +19 -7
  522. package/dist/openapi/models/WorkflowPausedDetail.d.ts +6 -5
  523. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  524. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +7 -5
  525. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  526. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  527. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  528. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +2 -2
  529. package/dist/openapi/models/WorkflowRestoreResponse.js +2 -2
  530. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +2 -2
  531. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +2 -2
  532. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  533. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  534. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  535. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  536. package/dist/openapi/models/WorkflowSource.d.ts +2 -2
  537. package/dist/openapi/models/WorkflowSource.js +2 -2
  538. package/dist/openapi/models/WorkflowStatus.d.ts +10 -5
  539. package/dist/openapi/models/WorkflowStatus.js +10 -5
  540. package/dist/openapi/models/WorkflowStatusResponse.d.ts +5 -3
  541. package/dist/openapi/models/WorkflowStatusResponse.js +2 -2
  542. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  543. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  544. package/dist/openapi/models/WorkflowSummary.d.ts +2 -2
  545. package/dist/openapi/models/WorkflowSummary.js +2 -2
  546. package/dist/openapi/models/WorkflowSummaryJob.d.ts +2 -2
  547. package/dist/openapi/models/WorkflowSummaryJob.js +2 -2
  548. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  549. package/dist/openapi/models/WorkflowWarning.js +2 -2
  550. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  551. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  552. package/dist/openapi/models/index.d.ts +14 -0
  553. package/dist/openapi/models/index.js +14 -0
  554. package/dist/openapi/runtime.d.ts +2 -2
  555. package/dist/openapi/runtime.js +2 -2
  556. package/dist/operations/archive.metadata.js +1 -0
  557. package/dist/operations/audio_overlay.metadata.js +1 -0
  558. package/dist/operations/audio_to_video.metadata.js +1 -0
  559. package/dist/operations/audio_watermark.metadata.js +4 -9
  560. package/dist/operations/custom_luma.metadata.js +1 -0
  561. package/dist/operations/image_watermark.metadata.js +1 -0
  562. package/dist/operations/merge.metadata.js +1 -0
  563. package/dist/operations/metadata-types.d.ts +2 -0
  564. package/dist/operations/split.metadata.js +12 -3
  565. package/dist/operations/text_watermark.metadata.js +1 -0
  566. package/dist/operations/video_text_watermark.metadata.js +2 -0
  567. package/dist/operations/video_watermark.metadata.js +1 -0
  568. package/openapi/README.md +1 -1
  569. package/openapi/api.yaml +1089 -172
  570. package/operation-capabilities/operation-capabilities.json +129 -1
  571. package/operations/schemas/audio_watermark.yaml +34 -33
  572. package/operations/schemas/compress.yaml +295 -177
  573. package/operations/schemas/convert.yaml +11 -0
  574. package/operations/schemas/merge.yaml +35 -1
  575. package/operations/schemas/split.yaml +144 -88
  576. package/operations/schemas/thumbnail.yaml +34 -26
  577. package/operations/schemas/video_text_watermark.yaml +112 -47
  578. package/operations/schemas/video_watermark.yaml +33 -28
  579. package/package.json +3 -3
@@ -5,6 +5,9 @@ info:
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
8
+ Free-text string fields carry `x-string-vocabulary` (`open` / `advisory` /
9
+ `none`), defined in `openapi/api.yaml` `info.description` (ticket Q79yjcFF).
10
+
8
11
  **Architecture Overview — Dual-Family SNS Topology**
9
12
 
10
13
  The API publishes operation requests to **two** SNS topics, split by semantic
@@ -41,12 +44,15 @@ info:
41
44
  `availability: beta` for its `audio` and `video` mime_groups
42
45
  (workers live on staging — [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
43
46
  video activates BOTH classes — `long_form` / `split-video-fargate`
44
- deployed + wired on staging but NOT yet proven end-to-end per
45
- [`rcwvUKhI`](https://trello.com/c/rcwvUKhI) — first customer-path soak
46
- incomplete, 4GB+ speed-up unmeasured, fan-out flag-gated dark);
47
+ stays `beta` until a PRODUCTION `customer_path` run is recorded in
48
+ `availability/prod-verification-log.yaml` per
49
+ [`rcwvUKhI`](https://trello.com/c/rcwvUKhI) — worker-direct staging runs
50
+ up to 3.99 GiB are recorded in the staging log as partial evidence
51
+ only; fan-out admission is the API's
52
+ `LONGFORM_FANOUT_ADMISSION_ENABLED`, set per environment in
53
+ compression_terraform, and not restated here);
47
54
  its `image_gif` and `document_pdf` mime_groups stay
48
55
  `availability: planned`.
49
- `audio_watermark` additionally requires `enterprise` tier.
50
56
 
51
57
  **Publisher branching rule** (implemented in `compression_api`'s
52
58
  `AwsSnsOperationPublisherAdapter` under Option A):
@@ -91,19 +97,28 @@ info:
91
97
  `compression-document`. Each handles `compress` only for its media
92
98
  type.
93
99
  - **Operations family** (non-compression), routed by `operation_type`:
94
- `operation-thumbnail` (legacy, retiring after migration),
95
100
  `operation-thumbnail-image`, `operation-thumbnail-video`,
96
101
  `operation-thumbnail-document`, `operation-thumbnail-office`,
97
102
  `operation-image-watermark`, `operation-text-watermark`,
98
- `operation-merge`, `operation-archive`,
99
- `operation-convert`,
100
- `operation-custom-luma` (planned per ticket I29 — not yet shipped),
101
- `operation-audio-overlay` (planned per ticket I19 — not yet shipped),
102
- `operation-audio-watermark` (planned per ticket I20 —
103
- enterprise-tier; not yet shipped),
103
+ `operation-video-watermark`, `operation-video-text-watermark`,
104
+ `operation-audio-to-video`, `operation-merge`, `operation-split`,
105
+ `operation-archive`, `operation-convert`,
106
+ `operation-render-variants` (its operation is still `planned`).
107
+ This list is asserted against compression_lambdas'
108
+ `scripts/build-deploy-matrix.py` roster by
109
+ `tests/test_asyncapi_lambda_inventory_matches_roster.py`; the
110
+ `upload-probe` Lambda is in that roster too but is not
111
+ `operation_type`-routed.
112
+ - **Retired**: the legacy bare `operation-thumbnail` — retired on
113
+ staging and absent from the roster (terraform still names a prod-only
114
+ instance; contracts card `NMKIN5LE`).
115
+ - **Declared but not shipped** (no worker in the roster):
116
+ `operation-custom-luma` (planned per ticket I29),
117
+ `operation-audio-overlay` (planned per ticket I19),
118
+ `operation-audio-watermark` (planned per ticket I20),
104
119
  `operation-transform-image`, `operation-transform-video`,
105
120
  `operation-transform-document` (all planned per epic fhiWebI0 /
106
- ADR-0026 — not yet shipped).
121
+ ADR-0026).
107
122
 
108
123
  **Message Types**
109
124
 
@@ -234,19 +249,19 @@ channels:
234
249
  ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
235
250
  long-form video splits route via `processing_class` to the
236
251
  `split-video-fargate` worker — same OperationType, different
237
- worker — now also `availability: beta` (worker deployed + wired
238
- on staging, e2e-unproven, fan-out flag-gated dark))
252
+ worker — now also `availability: beta` (stays beta until a
253
+ production `customer_path` run is recorded in the prod verification log))
239
254
  - `operation_type = audio_watermark` -> `ops-audio-watermark`
240
- queue (gated by `availability: planned` +
241
- `required_tier: enterprise` per
242
- [I20](https://trello.com/c/omiCq7Vn) — same 422 gating, plus
243
- a 403 `feature_tier_restricted` for non-enterprise callers)
255
+ queue (gated by `availability: planned` per
256
+ [I20](https://trello.com/c/omiCq7Vn) — same 422 gating; no
257
+ tier gate since 2026-09-23)
244
258
  - `operation_type = render_variants` -> `ops-render-variants`
245
- queue (gated by `availability: planned` until the worker +
246
- SNS subscription ship per
259
+ queue (the `operation-render-variants` worker exists; gated by
260
+ `availability: planned` until its staging proof is recorded and it
261
+ is deployed to production, and
262
+ refused by the API until it gains an `OperationType` case — per
247
263
  [`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
248
- [`MNuDYJaY`](https://trello.com/c/MNuDYJaY) — same
249
- `feature_not_available` 422 gating)
264
+ [`MNuDYJaY`](https://trello.com/c/MNuDYJaY))
250
265
  - `operation_type = transform_image` -> `ops-transform-image` queue
251
266
  - `operation_type = transform_video` -> `ops-transform-video` queue
252
267
  - `operation_type = transform_document` -> `ops-transform-document`
@@ -1014,11 +1029,10 @@ channels:
1014
1029
  `operation_type = audio_watermark`. Single-input.
1015
1030
 
1016
1031
  Both mime_groups (`audio`, `video` — embed in video's audio
1017
- track) are `availability: planned` + `required_tier:
1018
- enterprise` per the operation schema; the API rejects workflow-
1019
- create with `feature_not_available` (422) until the Lambda
1020
- ships, plus 403 `feature_tier_restricted` for non-enterprise
1021
- callers, so traffic does not reach this queue today. Backed
1032
+ track) are `availability: planned` per the operation schema;
1033
+ the API rejects workflow-create with `feature_not_available`
1034
+ (422) until the Lambda ships, so traffic does not reach this
1035
+ queue today. Backed
1022
1036
  by the `operation-audio-watermark` Lambda (cross-repo follow-up;
1023
1037
  not yet shipped).
1024
1038
 
@@ -1053,8 +1067,8 @@ channels:
1053
1067
  `operations` SNS topic with filter `operation_type = render_variants`.
1054
1068
  Backed by the render_variants Lambda (`operation-render-variants`).
1055
1069
  No traffic reaches this queue while render_variants is
1056
- `availability: planned` (per ticket w3EwzHYd — same `feature_not_
1057
- available` 422 gating until the worker + this subscription ship).
1070
+ `availability: planned` and the API has no `OperationType` case for
1071
+ it (per ticket w3EwzHYd).
1058
1072
  bindings:
1059
1073
  sqs:
1060
1074
  queue:
@@ -1222,7 +1236,7 @@ channels:
1222
1236
  DLQ for failed audio_watermark operations (per ticket I20).
1223
1237
  Messages land here after 5 failed processing attempts. No
1224
1238
  traffic reaches this queue while audio_watermark is
1225
- `availability: planned` + `required_tier: enterprise`.
1239
+ `availability: planned`.
1226
1240
  parameters:
1227
1241
  env:
1228
1242
  description: Environment (local, stg, prod)
@@ -2087,9 +2101,9 @@ operations:
2087
2101
  consumes split requests routed by `operation_type=split`. Its
2088
2102
  `audio` + short-form `video` paths are live on staging (lambdas
2089
2103
  #161 / [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); video
2090
- `long_form` (via `split-video-fargate`) is now also `beta` —
2091
- deployed + wired on staging but e2e-unproven, fan-out flag-gated
2092
- dark; the `image_gif` / `document_pdf` workers remain a cross-repo
2104
+ `long_form` (via `split-video-fargate`) is now also `beta`, and
2105
+ stays beta until a production `customer_path` run is recorded in the
2106
+ prod verification log; the `image_gif` / `document_pdf` workers remain a cross-repo
2093
2107
  follow-up. Single-input —
2094
2108
  `media_group` derives from the input MIME prefix per the
2095
2109
  existing single-input rule. `availability: beta` for the `audio`
@@ -2218,11 +2232,9 @@ operations:
2218
2232
  The `operation-audio-watermark` Lambda (cross-repo follow-up —
2219
2233
  not yet shipped) consumes audio_watermark requests routed by
2220
2234
  `operation_type=audio_watermark`. Single-input. Both mime_groups
2221
- (`audio`, `video`) are `availability: planned` +
2222
- `required_tier: enterprise`; the API rejects workflow-create
2223
- with `feature_not_available` (422) until the Lambda ships, plus
2224
- 403 `feature_tier_restricted` for non-enterprise callers, so
2225
- traffic does not reach this channel today.
2235
+ (`audio`, `video`) are `availability: planned`; the API rejects
2236
+ workflow-create with `feature_not_available` (422) until the
2237
+ Lambda ships, so traffic does not reach this channel today.
2226
2238
  Per ADR-0004 + I20 (Trello omiCq7Vn).
2227
2239
  messages:
2228
2240
  - $ref: '#/channels/opsAudioWatermark/messages/operationRequest'
@@ -2239,14 +2251,14 @@ operations:
2239
2251
  bindingVersion: '0.2.0'
2240
2252
  summary: Process render_variants operation
2241
2253
  description: |
2242
- The `operation-render-variants` Lambda (cross-repo follow-up —
2243
- not yet shipped) consumes render_variants requests routed by
2244
- `operation_type=render_variants`. Single-input image fan-out (one
2245
- source image to N resized / re-encoded variants). `availability:
2246
- planned`; the API rejects workflow-create with
2247
- `feature_not_available` (422) until the Lambda + this subscription
2248
- ship, so traffic does not reach this channel today. Per ticket
2249
- w3EwzHYd.
2254
+ The `operation-render-variants` Lambda consumes render_variants
2255
+ requests routed by `operation_type=render_variants`. Single-input
2256
+ image fan-out (one source image to N resized / re-encoded variants).
2257
+ `availability: planned` until its staging proof is recorded (lambdas
2258
+ `px2OKk42`) AND it is deployed to production — availability has no
2259
+ environment axis. The API refuses a create naming `render_variants` until
2260
+ it gains an `OperationType` case for it (api `uDW3k2Gw`), so no
2261
+ traffic reaches this channel until then. Per ticket w3EwzHYd.
2250
2262
  messages:
2251
2263
  - $ref: '#/channels/opsRenderVariants/messages/operationRequest'
2252
2264
 
@@ -2646,9 +2658,8 @@ components:
2646
2658
  sub-type value for routing (see `OperationRequestAttributes`
2647
2659
  and the migration-window note below); the payload
2648
2660
  `operation_type` field always remains `thumbnail`.
2649
- `audio_watermark` is `availability: planned` +
2650
- `required_tier: enterprise` so workflow-create rejects with
2651
- 422 + 403 today.
2661
+ `audio_watermark` is `availability: planned` so
2662
+ workflow-create rejects with 422 today.
2652
2663
  - Multi-input operations (merge, archive, image_watermark,
2653
2664
  custom_luma, audio_overlay, audio_to_video, video_watermark):
2654
2665
  use `sources` array. Merge additionally requires `output_type`.
@@ -3450,8 +3461,7 @@ components:
3450
3461
  - For `operation_type = audio_watermark`, `media_group` must
3451
3462
  equal `audio` or `video` (audio_watermark supports both —
3452
3463
  embedding into an audio asset or into a video's audio
3453
- track). Both mime_groups are `availability: planned` +
3454
- `required_tier: enterprise` per
3464
+ track). Both mime_groups are `availability: planned` per
3455
3465
  [I20](https://trello.com/c/omiCq7Vn), so this constraint is
3456
3466
  contract-defined but not exercised today.
3457
3467
  - For `operation_type = audio_to_video`, `media_group` must
@@ -3887,9 +3897,11 @@ components:
3887
3897
  — both staging-proven 2026-07-07 (Form-B ADR-0006). Only
3888
3898
  `split.video.long_form` remains `availability: beta`
3889
3899
  (per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI), worker
3890
- `split-video-fargate` deployed + wired on staging but NOT yet proven
3891
- end-to-end — first customer-path soak incomplete, speed-up unmeasured,
3892
- fan-out flag-gated dark). `audio_overlay` long-form
3900
+ `split-video-fargate`) until a production `customer_path` run is
3901
+ recorded in `availability/prod-verification-log.yaml` (worker-direct
3902
+ staging runs are partial evidence only); fan-out admission is the API's
3903
+ `LONGFORM_FANOUT_ADMISSION_ENABLED`, set per environment in
3904
+ compression_terraform. `audio_overlay` long-form
3893
3905
  (reserve-name-only, no queue) is NOT yet produced and is therefore
3894
3906
  absent from this enum; it gets added when its publisher ships.
3895
3907
 
@@ -3935,6 +3947,19 @@ components:
3935
3947
  $ref: '#/components/schemas/LongFormOperationType'
3936
3948
  processing_class:
3937
3949
  $ref: '#/components/schemas/LongFormProcessingClass'
3950
+ traceparent:
3951
+ type: string
3952
+ pattern: '^00-(?!0{32})[0-9a-f]{32}-(?!0{16})[0-9a-f]{16}-[0-9a-f]{2}$'
3953
+ description: |
3954
+ OPTIONAL W3C Trace Context `traceparent` (version `00`) of the
3955
+ producer's span, so the long-form task joins the producer's trace.
3956
+ The launcher forwards a well-formed value to the Fargate task as the
3957
+ environment variable `GISL_CL_PARENT_TRACEPARENT`. An all-zero
3958
+ trace-id or parent-id is invalid (W3C), and so is any other version.
3959
+ A malformed or absent value is IGNORED: the job runs without the
3960
+ parent trace and never fails for it. Producers: the API's long-form
3961
+ publisher and lambdas' republish. Ticket JiqICJWX (terraform #502).
3962
+ example: "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
3938
3963
 
3939
3964
  SourceEntry:
3940
3965
  type: object
@@ -4168,9 +4193,13 @@ components:
4168
4193
  2. **A `completed` never supersedes another `completed`.** Keep the
4169
4194
  first; a second is a duplicate delivery of the same outcome.
4170
4195
  3. **Two `failed` results are NOT ordered by this contract.** Keep the
4171
- first `error_code` and record that another arrived. See the limit
4172
- below — this is the case the contract cannot yet decide, and saying
4173
- so is deliberate.
4196
+ first `error_code` and record that another arrived. `attempt`
4197
+ (below) does NOT order them: it is per SQS message, and a DLQ
4198
+ redrive starts a new message.
4199
+ 4. **A consumer MUST surface a second terminal, never drop it
4200
+ silently** — count it, log it or alarm on it. Rules 1–3 decide the
4201
+ STATE; a producer emitting contradictory terminals must still be
4202
+ visible.
4174
4203
 
4175
4204
  ### Supersession replaces the WHOLE result, not just the status
4176
4205
 
@@ -4210,12 +4239,13 @@ components:
4210
4239
  and by nothing else. Using metrics to arbitrate would make the answer
4211
4240
  depend on how long a machine happened to take.
4212
4241
 
4213
- ### 🔴 THE MISSING FIELD, RECORDED AS A FINDING
4242
+ ### 🔴 THE MISSING ORDERING FIELD, RECORDED AS A FINDING
4214
4243
 
4215
4244
  **There is no producer-stamped ordering field on `OperationResult`
4216
- today.** No attempt counter, no producer timestamp, no sequence number —
4217
- `job_id`, `operation_id`, `operation_type`, `status` and the payload, and
4218
- nothing that says *which invocation produced this*.
4245
+ today.** No durable per-operation counter, no producer timestamp, no
4246
+ sequence number. The optional `attempt` (declared 2026-09-25, below)
4247
+ says which DELIVERY of one SQS message produced a result; it is not
4248
+ durable per `operation_id`, so it is diagnostic and NOT an ordering key.
4219
4249
 
4220
4250
  That absence is why rule 3 exists: **two failures cannot be ordered, and
4221
4251
  the contract does not pretend otherwise.** Telling consumers to fall back
@@ -4223,17 +4253,33 @@ components:
4223
4253
  transport property, and a rule that reads it as producer intent is wrong
4224
4254
  in a way no consumer can detect.
4225
4255
 
4226
- **The field this needs is an `attempt` counter** — monotonically
4227
- increasing per `operation_id`, stamped by the producer — because it does
4228
- not depend on a clock, and two invocations are tens of minutes apart in
4229
- wall time (27–81 minutes of visibility timeout, measured above) but
4230
- ADJACENT in attempt number. **Not declared here**: the producer
4231
- must confirm it can supply it (SQS exposes `ApproximateReceiveCount` to
4232
- the handler, which is a candidate, not a decision). Specifying a field
4233
- the producer has not agreed to emit is how a contract acquires a
4234
- promise nothing keeps.
4235
-
4236
- Once `attempt` exists, higher wins, and it subsumes rules 1–3.
4256
+ **The field this needs is an `attempt` counter** — per `operation_id`,
4257
+ stamped by the producer — because it does not depend on a clock, and
4258
+ two invocations are tens of minutes apart in wall time (27–81 minutes
4259
+ of visibility timeout, measured above) but ADJACENT in attempt number.
4260
+
4261
+ **`attempt` is DECLARED (2026-09-25, card `HPXNdNqp`), OPTIONAL, and
4262
+ DIAGNOSTIC.** `compression_lambdas` confirmed both paths can emit it:
4263
+ the Lambda path from the SQS record's `ApproximateReceiveCount`
4264
+ (1-based), the Fargate path from `GISL_CL_JOB_ATTEMPT` + 1. It is a
4265
+ HINT for the log line rule 4 requires: two terminals with DIFFERENT
4266
+ values came from different deliveries. EQUAL values prove nothing (a
4267
+ launcher redelivery repeats a value, and the terminal event itself can
4268
+ be delivered twice), so a consumer cannot use it to classify a pair
4269
+ as harmless.
4270
+
4271
+ ⛔ **It is NOT an ordering key, and no rule above reads it.** Its
4272
+ meaning depends on the path, so values from different paths or
4273
+ across a redrive are not comparable:
4274
+ - **Lambda:** the SQS receive count of one message. A DLQ redrive
4275
+ makes a NEW message whose count starts again, so a later
4276
+ invocation can carry a LOWER value.
4277
+ - **Fargate:** a retry counter carried in the message body, so it
4278
+ survives a redrive, but a launcher redelivery of the same message
4279
+ repeats the value. Ordering two faileds needs a counter that is durable
4280
+ per `operation_id` across redrives; none exists, so rule 3 stands.
4281
+ (An earlier draft of this change let `attempt` order faileds; codex
4282
+ review found the redrive reset, and it was withdrawn before merge.)
4237
4283
 
4238
4284
  ### 🔴 THE PARENT IS NOT COVERED BY THIS RULE, AND THAT IS A GAP
4239
4285
 
@@ -4353,6 +4399,17 @@ components:
4353
4399
  $ref: '#/components/schemas/OperationType'
4354
4400
  status:
4355
4401
  $ref: '#/components/schemas/ResultStatus'
4402
+ attempt:
4403
+ type: integer
4404
+ minimum: 1
4405
+ description: |
4406
+ OPTIONAL, DIAGNOSTIC, 1-based. Which attempt produced this result,
4407
+ with path-specific meaning: on Lambda the SQS receive count (it
4408
+ restarts after a DLQ redrive), on Fargate a retry counter carried
4409
+ in the message (it survives a redrive but repeats on a launcher
4410
+ redelivery). MUST NOT be used to order results; see "THE MISSING
4411
+ ORDERING FIELD" above. Card `HPXNdNqp`.
4412
+ example: 1
4356
4413
 
4357
4414
  # Shared success field (both single- and multi-output)
4358
4415
  output_bucket:
@@ -4471,6 +4528,10 @@ components:
4471
4528
  type: string
4472
4529
  description: Human-readable error message (failed only)
4473
4530
  example: "Unsupported file format: image/bmp"
4531
+ message_key:
4532
+ $ref: '#/components/schemas/OperationMessageKey'
4533
+ message_params:
4534
+ $ref: '#/components/schemas/OperationMessageParams'
4474
4535
  is_retryable:
4475
4536
  type: boolean
4476
4537
  description: Whether the operation could be retried (failed only)
@@ -4482,6 +4543,34 @@ components:
4482
4543
  description: Progress percentage when the operation failed (failed only)
4483
4544
  example: 10
4484
4545
 
4546
+ OperationMessageKey:
4547
+ type: string
4548
+ x-string-vocabulary: open
4549
+ pattern: '^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$'
4550
+ description: |
4551
+ Stable, never-localised key REFINING `error_code` on a failed
4552
+ operation, so a client can show specific, localised copy (e.g.
4553
+ `thumbnail.epub.no_cover`). OPTIONAL, failed only. Every value is
4554
+ declared, with the codes it may accompany and its parameters, in
4555
+ `schemas/operation-message-keys.yaml` (the one registry). A client
4556
+ that does not know a key, or receives one whose registry
4557
+ `error_codes` do not include this `error_code`, ignores the key and
4558
+ falls back to the `error_code` headline;
4559
+ retry is still decided from the code. Ticket U7GQhjhX.
4560
+ example: "thumbnail.epub.no_cover"
4561
+
4562
+ OperationMessageParams:
4563
+ type: object
4564
+ additionalProperties:
4565
+ type: [string, integer, number, boolean]
4566
+ description: |
4567
+ Interpolation values for `message_key`, named and typed in
4568
+ `schemas/operation-message-keys.yaml`. JSON scalars only (string,
4569
+ integer, number, boolean) — no nested objects. Absent when the key
4570
+ declares no parameters (`params: {}`), and carries exactly the
4571
+ registry's parameters otherwise. Never carries free-text
4572
+ diagnostics; those stay in `error_message`.
4573
+
4485
4574
  OperationResultMetadata:
4486
4575
  type: object
4487
4576
  additionalProperties: false
@@ -4492,7 +4581,10 @@ components:
4492
4581
  whitelist projection on the read side), never the raw bag, so
4493
4582
  internal diagnostics never leak. New keys are **additive named
4494
4583
  cuts**. Twin of the OpenAPI `OperationResultMetadata` (wire ↔ read
4495
- parity — same named-prop shape). Distinct from the deliverable
4584
+ parity — same named-prop shape), except that the REST twin also
4585
+ serves `already_optimal` / `estimated_saving_pct`, projected from
4586
+ `OperationMetrics` (the worker emits them there). Distinct from the
4587
+ deliverable
4496
4588
  output (`output_key` / `outputs[]`): small per-operation metadata,
4497
4589
  not the file. Per ticket EurbZLMH (B1).
4498
4590
  properties:
@@ -4581,6 +4673,10 @@ components:
4581
4673
  selected pages (`1,2,3,4,5,8`) — gapless ONLY for a full conversion.
4582
4674
  Mutually exclusive with `position`. Normative semantics:
4583
4675
  ADR-0009 §D2.
4676
+ For a `split` of a PDF with `mode: page_groups`, each output holds
4677
+ a GROUP of pages and `page_index` is the group's FIRST source
4678
+ page; the group covers `page_index` .. `page_index + page_groups
4679
+ - 1`, and the last group ends at the document's last page.
4584
4680
  example: 1
4585
4681
  position:
4586
4682
  type: integer
@@ -4671,10 +4767,11 @@ components:
4671
4767
  format: date-time
4672
4768
  reason:
4673
4769
  type: string
4770
+ x-string-vocabulary: advisory
4674
4771
  description: |
4675
4772
  Optional advisory reason. Free-form string; not enumerated.
4676
4773
  Examples: `all jobs completed successfully`,
4677
- `next reservation exceeded available_credits` (when
4774
+ `no active reservation at a publish boundary` (when
4678
4775
  transitioning to `paused_insufficient_credits`),
4679
4776
  `caller requested cancel`, `paused_insufficient_credits
4680
4777
  past expires_at`, `dispatch timeout`.
@@ -4698,6 +4795,14 @@ components:
4698
4795
  Operation-specific metrics. Content varies by operation type.
4699
4796
  All metrics include duration_ms. Compression includes size/ratio.
4700
4797
  Merge includes input count. Archive includes file count and total size.
4798
+ # estimated_saving_pct only means something on an already-optimal result.
4799
+ if:
4800
+ required: [estimated_saving_pct]
4801
+ then:
4802
+ required: [already_optimal]
4803
+ properties:
4804
+ already_optimal:
4805
+ const: true
4701
4806
  properties:
4702
4807
  original_size_bytes:
4703
4808
  type: integer
@@ -4757,6 +4862,7 @@ components:
4757
4862
  example: 0.9501
4758
4863
  quality_metric:
4759
4864
  type: string
4865
+ x-string-vocabulary: advisory
4760
4866
  description: |
4761
4867
  The perceptual metric that produced `measured_quality` — a FREE-FORM
4762
4868
  string (NOT an enum) so the worker can change or upgrade the metric
@@ -4786,15 +4892,16 @@ components:
4786
4892
  $ref: '#/components/schemas/ReEncodeDecision'
4787
4893
  re_encode_reason:
4788
4894
  type: string
4895
+ x-string-vocabulary: advisory
4789
4896
  description: |
4790
4897
  Advisory explanation for `re_encode_decision` (e.g.
4791
- `all_inputs_compatible`, `explicit_always_mode`,
4792
- `input_codec_mismatch`, `input_framerate_mismatch`).
4898
+ `compatible_inputs`, `always_mode_forces_re_encode`,
4899
+ `input_video_codec_mismatch`, `long_form_stream_copy`).
4793
4900
  Free-form string — not an enum — so the Lambda can emit
4794
4901
  human-readable diagnostics that evolve without contract
4795
4902
  churn (compatibility-probe algorithm stays opaque per
4796
4903
  plan v5 §F8.2). Per ticket I16-CONS.
4797
- example: input_codec_mismatch
4904
+ example: input_video_codec_mismatch
4798
4905
  # COGS AWS-cost metrics (ticket 2cacyYNE) — the real per-op AWS-cost
4799
4906
  # inputs the API's COGS record consumes (emitted by lambdas yJe65EMa,
4800
4907
  # surfaced by api MWssQbFS), replacing the wall-clock/bytes COGS proxy
@@ -4848,6 +4955,35 @@ components:
4848
4955
  `memory_mb`. Present for long-form (Fargate) ops once the worker
4849
4956
  emits it.
4850
4957
  example: 45000
4958
+ # Already-optimal passthrough (roNRMilt, FE lZVjFFTA). A compress that
4959
+ # does not shrink the file (or is declined before encoding because the
4960
+ # source is already efficient) is a SUCCESS returning the ORIGINAL
4961
+ # bytes with compression_ratio 1.0 — never a failure. These keys let
4962
+ # the API tell the user WHY. The API projects both onto the REST
4963
+ # `OperationResultMetadata` (same names); diagnostic evidence such as
4964
+ # `source_bpp` / `threshold_bpp` stays wire-only and is never served.
4965
+ already_optimal:
4966
+ type: boolean
4967
+ description: |
4968
+ `true` when the stored output IS the original input, unchanged,
4969
+ because compressing it would not have made it smaller. Set by the
4970
+ compression processor itself, never by an individual worker's
4971
+ extras. Absent or `false` on an ordinary compression; consumers
4972
+ treat the two the same.
4973
+ example: true
4974
+ estimated_saving_pct:
4975
+ type: number
4976
+ minimum: 0
4977
+ maximum: 100
4978
+ description: |
4979
+ OPTIONAL, only with `already_optimal: true`, and only when the
4980
+ worker declined BEFORE encoding on an efficiency estimate: the
4981
+ worker's estimate of how much smaller, as a percentage of the input
4982
+ bytes, a re-encode would have made the file. Absent when the worker
4983
+ encoded and measured instead (then the measured result, not an
4984
+ estimate, is why it declined). An estimate, not a promise — do not
4985
+ present it as a guaranteed figure.
4986
+ example: 3.5
4851
4987
 
4852
4988
  # ============================================
4853
4989
  # UPLOAD PROBE PAYLOADS (per ticket vBlEurU7)
@@ -5226,6 +5362,84 @@ components:
5226
5362
  contract on the OpenAPI side; the prober reports the
5227
5363
  page-1 horizontal DPI when the document declares it,
5228
5364
  otherwise omits the field.
5365
+ # STREAM TOPOLOGY + CONCAT ATTRIBUTES (lGeDDi4V, for MjzzPCWt): what the
5366
+ # API needs to refuse a non-concat-uniform long-form merge at create.
5367
+ # Defined with the SAME semantics as compression_lambdas' merge gate
5368
+ # (re_encode.rs TopologyCounts / classify_non_uniform), or the
5369
+ # create-time refusal and the worker gate would disagree. All OPTIONAL:
5370
+ # a prober that has not emitted them yet simply omits them.
5371
+ video_stream_count:
5372
+ type: integer
5373
+ minimum: 0
5374
+ description: Streams whose ffprobe `codec_type` is `video`.
5375
+ audio_stream_count:
5376
+ type: integer
5377
+ minimum: 0
5378
+ description: Streams whose ffprobe `codec_type` is `audio`.
5379
+ other_stream_count:
5380
+ type: integer
5381
+ minimum: 0
5382
+ description: |
5383
+ Every other stream: `codec_type` subtitle, data, attachment,
5384
+ or unknown — the worker gate's `other` bucket.
5385
+ stream_order:
5386
+ type: array
5387
+ items:
5388
+ type: string
5389
+ enum: [video, audio, other]
5390
+ description: |
5391
+ Per stream index, in container order, its kind (`other` as
5392
+ above). Two inputs are order-compatible iff these are equal.
5393
+ r_frame_rate:
5394
+ type: string
5395
+ pattern: '^[0-9]+/[0-9]+$'
5396
+ description: |
5397
+ ffprobe `r_frame_rate` of the video stream, raw (`30000/1001`;
5398
+ ffprobe's `0/0` is carried as-is and means UNUSABLE). NOT the
5399
+ average rate in `fps`, which drifts between concat-uniform
5400
+ clips. **The worker's frame-rate rule, which a create-time
5401
+ comparison must reproduce exactly:** (1) `r_frame_rate` and
5402
+ `avg_frame_rate` must each be present on all inputs or absent
5403
+ on all (else `input_metadata_inconsistent`); (2) if every
5404
+ input has a usable `r_frame_rate`, compare those as parsed
5405
+ rationals; (3) otherwise compare `avg_frame_rate` as parsed
5406
+ rationals. Both comparisons are by VALUE (`60/2` equals `30/1`),
5407
+ never by string.
5408
+ avg_frame_rate:
5409
+ type: string
5410
+ pattern: '^[0-9]+/[0-9]+$'
5411
+ description: |
5412
+ ffprobe `avg_frame_rate` of the video stream, raw rational.
5413
+ Presence-checked always; compared only as the fallback in the
5414
+ `r_frame_rate` rule. `fps` is its lossy numeric form.
5415
+ pix_fmt:
5416
+ type: string
5417
+ x-string-vocabulary: none
5418
+ description: ffprobe `pix_fmt` of the video stream (e.g. `yuv420p`).
5419
+ sar:
5420
+ type: string
5421
+ pattern: '^[0-9]+:[0-9]+$'
5422
+ description: Sample aspect ratio of the video stream (`1:1`).
5423
+ video_time_base:
5424
+ type: string
5425
+ pattern: '^[0-9]+/[0-9]+$'
5426
+ description: ffprobe `time_base` of the video stream (`1/30000`).
5427
+ audio_time_base:
5428
+ type: string
5429
+ pattern: '^[0-9]+/[0-9]+$'
5430
+ description: ffprobe `time_base` of the audio stream (`1/48000`).
5431
+ codec_tag:
5432
+ type: string
5433
+ x-string-vocabulary: none
5434
+ description: ffprobe `codec_tag_string` of the video stream (e.g. `avc1`).
5435
+ profile:
5436
+ type: string
5437
+ x-string-vocabulary: none
5438
+ description: ffprobe `profile` of the video stream (e.g. `High`).
5439
+ sample_fmt:
5440
+ type: string
5441
+ x-string-vocabulary: none
5442
+ description: ffprobe `sample_fmt` of the audio stream (e.g. `fltp`).
5229
5443
  probed_at:
5230
5444
  type: string
5231
5445
  format: date-time
@@ -5241,6 +5455,15 @@ components:
5241
5455
  OperationType:
5242
5456
  type: string
5243
5457
  description: |
5458
+ ⚠️ **HOMONYM: this is NOT the `OperationType` in `openapi/api.yaml`.**
5459
+ That one is the CREATE surface (every operation a caller may
5460
+ request, incl. `passthrough` and the per-media thumbnail sub-types);
5461
+ this one is the narrower PAYLOAD vocabulary. Same name, different
5462
+ membership, both emitted by the SDK generators — the import path is
5463
+ the only distinguisher. Not renamed: a rename breaks every consumer
5464
+ of either generated type (bFy3zo5Y). The subset relation is asserted
5465
+ in `schemas/cross-document-enums.yaml`.
5466
+
5244
5467
  Operation type as carried inside the message **payload** body. This
5245
5468
  enum is deliberately narrower than the SNS `operation_type`
5246
5469
  MessageAttribute: the attribute enum permits per-media thumbnail
@@ -5321,11 +5544,9 @@ components:
5321
5544
  into an audio asset (or a video's audio track) — Cinavia /
5322
5545
  Resemble PerTh territory. Single-input. Both mime_groups
5323
5546
  (`audio`, `video` — embed in video's audio track) are
5324
- `availability: planned` + `required_tier: enterprise` per
5325
- the operation schema; the API rejects workflow-create with
5326
- `feature_not_available` (422) + `feature_tier_restricted`
5327
- (403) until the Lambda ships, so traffic does not reach SNS
5328
- today. Pairs with `POST /api/audio-watermark/decode` for
5547
+ `availability: planned` per the operation schema; the API
5548
+ rejects workflow-create with `feature_not_available` (422)
5549
+ until the Lambda ships, so traffic does not reach SNS today. Pairs with `POST /api/audio-watermark/decode` for
5329
5550
  own-watermarks-only extraction. Per ADR-0004 + I20 (Trello
5330
5551
  omiCq7Vn).
5331
5552
  - `audio_to_video`: Produce a video from an audio input plus an
@@ -5379,8 +5600,8 @@ components:
5379
5600
  operation-specific conditional needed). `availability: beta`
5380
5601
  for the `audio` and `video` mime_groups — video activates
5381
5602
  BOTH classes (`short_form` + `long_form` beta; long-form
5382
- deployed + wired on staging but e2e-unproven, fan-out
5383
- flag-gated dark). `image_gif` / `document_pdf` stay
5603
+ stays beta until a production `customer_path` run is recorded
5604
+ in the prod verification log). `image_gif` / `document_pdf` stay
5384
5605
  `planned`. Routes via `operation_type=split` to `ops-split`.
5385
5606
  Per ADR-0004 + ADR-0014
5386
5607
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
@@ -5534,12 +5755,23 @@ components:
5534
5755
  ReEncodeDecision:
5535
5756
  type: string
5536
5757
  description: |
5537
- Path chosen for `merge.video` when `re_encode_mode=auto`.
5538
- Server reports the actual path so callers can see why
5539
- `auto` took the slow path. Absent for non-`merge.video`
5540
- operations and for `merge.video` when `re_encode_mode` is
5541
- `always` or `never` (path was caller-fixed). Per ticket
5542
- I16-CONS (Trello 7nCZXEru). Workflow-create-time surface
5758
+ Path the worker actually took for a SUCCESSFUL `merge.video`,
5759
+ reported in EVERY `re_encode_mode`: `always` reports `re_encode`;
5760
+ `never` reports `stream_copy`; `auto` reports whichever path it
5761
+ chose. Absent for non-`merge.video` operations and on any failed
5762
+ operation, even one that carries other metrics such as sizes or
5763
+ cost figures (for example a `never`
5764
+ request whose inputs need a re-encode, or a long-form merge the
5765
+ uniformity gate refuses before the path is decided). Per ticket I16-CONS (Trello
5766
+ 7nCZXEru).
5767
+
5768
+ ⚠️ An earlier revision said the field was ABSENT under `always` /
5769
+ `never`. The worker never behaved that way (it reports the path
5770
+ in every mode), and the same contract listed an `always`-mode
5771
+ reason as an example, so the text contradicted itself. The
5772
+ worker's behaviour is the canonical one (ruled 2026-09-24 on
5773
+ compression_e2e's report); a consumer MUST NOT assert absence
5774
+ on a successful merge under a caller-fixed mode. Workflow-create-time surface
5543
5775
  on `processing_plan.jobs[]` lands with I15-CONS
5544
5776
  (Trello YZpBKzOM).
5545
5777
 
@@ -5714,6 +5946,9 @@ components:
5714
5946
  error, not a statement about how many times the platform has already
5715
5947
  tried. See `OperationResult` for the supersession rule.
5716
5948
 
5949
+ The retryable set below is also machine-readable as `x-retryable` on
5950
+ this schema; read that rather than parsing this list.
5951
+
5717
5952
  **Retryable errors** (transient — re-submitting may succeed):
5718
5953
  - s3_download_failed: Source file download failed
5719
5954
  - s3_upload_failed: Output file upload failed
@@ -5758,7 +5993,34 @@ components:
5758
5993
  emits it** — the API derives it from job state, so do not look for the worker
5759
5994
  that produces it. Non-retryable: retrying an operation that never ran is
5760
5995
  meaningless; the caller re-submits the workflow.
5996
+ - processing_limit_exceeded: A processing tool was killed at its configured
5997
+ processing budget (e.g. an encoder stopped at its time cap) for THIS
5998
+ input. Deterministic: the same input with the same options hits the same
5999
+ budget again, so it is **non-retryable** — distinct from `timeout`, which
6000
+ is transient and retryable. Added 2026-09-23 (card `9BWwPcbA`, hub ruling
6001
+ option (c)): retry stays decided by the CODE, never by a wire boolean
6002
+ overriding it. **Rollout order:** declared here first; the API maps it
6003
+ non-retryable (an API that does not yet know it degrades an unknown code
6004
+ to "not retried", so a slipped order fails safe); workers emit it only
6005
+ after that API release is live. Until then a cap kill still arrives as
6006
+ `timeout`.
6007
+ **Emit it ONLY for a budget that is a function of the input**, i.e. a cap
6008
+ the worker sets from the input (duration, resolution, pixels) whose
6009
+ exhaustion would recur on any healthy host. A wall-clock deadline that
6010
+ may have been exhausted by transient conditions (contention, a slow
6011
+ download, the Lambda invocation timeout) is `timeout`, NOT this code.
6012
+ When the worker cannot tell which it hit, it emits `timeout`: a wrong
6013
+ `timeout` costs one retry, a wrong `processing_limit_exceeded` fails a
6014
+ job that would have succeeded.
5761
6015
  - unknown: Unclassified error
6016
+ # Machine-readable twin of the "Retryable errors" list above, for
6017
+ # consumers (api) that must agree with it. A test asserts the two are
6018
+ # EQUAL and that every enum value is in exactly one of the two lists.
6019
+ x-retryable:
6020
+ - s3_download_failed
6021
+ - s3_upload_failed
6022
+ - out_of_memory
6023
+ - timeout
5762
6024
  enum:
5763
6025
  - s3_download_failed
5764
6026
  - s3_upload_failed
@@ -5776,4 +6038,5 @@ components:
5776
6038
  - invalid_request
5777
6039
  - input_too_large
5778
6040
  - never_started
6041
+ - processing_limit_exceeded
5779
6042
  - unknown