@giveitsmaller/contracts 0.50.0 → 0.53.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 (483) hide show
  1. package/accepted-options/accepted-options.json +40 -2
  2. package/accepted-options/image-output-routes.json +1 -1
  3. package/asyncapi/events.yaml +293 -20
  4. package/availability/availability.json +217 -6
  5. package/code-builder/code-builder-metadata.json +7236 -0
  6. package/dist/asyncapi/OperationType.d.ts +2 -1
  7. package/dist/asyncapi/OperationType.js +1 -0
  8. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  10. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  14. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  15. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  19. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  21. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  22. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  23. package/dist/openapi/models/AuthErrorType.js +1 -1
  24. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  25. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  26. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  27. package/dist/openapi/models/AvailabilityValue.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  30. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  32. package/dist/openapi/models/BillingCheckoutRequest.d.ts +75 -0
  33. package/dist/openapi/models/BillingCheckoutRequest.js +64 -0
  34. package/dist/openapi/models/BillingCheckoutSession.d.ts +42 -0
  35. package/dist/openapi/models/BillingCheckoutSession.js +47 -0
  36. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +46 -0
  37. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +54 -0
  38. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  39. package/dist/openapi/models/CallbackEventType.js +1 -1
  40. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  41. package/dist/openapi/models/CapabilityCondition.js +1 -1
  42. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  56. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  58. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  60. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityProduces.js +1 -1
  62. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  64. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  66. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  68. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  69. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  70. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  71. package/dist/openapi/models/CodegenSource.js +1 -1
  72. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  73. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  74. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  76. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  78. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  79. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  80. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  81. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  82. package/dist/openapi/models/CompositionPlan.d.ts +13 -7
  83. package/dist/openapi/models/CompositionPlan.js +1 -1
  84. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  85. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  86. package/dist/openapi/models/CompositionPlanOperation.d.ts +4 -1
  87. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  88. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  89. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  90. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  91. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  92. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  93. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  94. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  95. package/dist/openapi/models/ConnectionSource.js +1 -1
  96. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  97. package/dist/openapi/models/ContactRequest.js +1 -1
  98. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  99. package/dist/openapi/models/ContactSubject.js +1 -1
  100. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  101. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  102. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  103. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  104. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  105. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  106. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  107. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  108. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +23 -0
  109. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +51 -0
  110. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  111. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  112. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  113. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  114. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  116. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  117. package/dist/openapi/models/CreditTransaction.js +1 -1
  118. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  119. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  120. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  121. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  122. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  123. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  124. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  125. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  126. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  127. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  128. package/dist/openapi/models/Delivery.d.ts +1 -1
  129. package/dist/openapi/models/Delivery.js +1 -1
  130. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  131. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  132. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  133. package/dist/openapi/models/DeliveryPlan.js +1 -1
  134. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  135. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  136. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  138. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  139. package/dist/openapi/models/DeliverySelection.js +1 -1
  140. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  141. package/dist/openapi/models/DownloadBundle.js +1 -1
  142. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  143. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  144. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  145. package/dist/openapi/models/EndpointProjection.js +1 -1
  146. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  147. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  148. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  149. package/dist/openapi/models/EstimateQuality.js +1 -1
  150. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  151. package/dist/openapi/models/EstimateRange.js +1 -1
  152. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  153. package/dist/openapi/models/ExternalDestination.js +1 -1
  154. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  155. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  156. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  157. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  158. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  159. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  160. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  161. package/dist/openapi/models/ExternalImportToken.js +1 -1
  162. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  163. package/dist/openapi/models/ExternalSource.js +1 -1
  164. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  165. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  166. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  167. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  168. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  169. package/dist/openapi/models/FeatureViolation.js +1 -1
  170. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  171. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  172. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  173. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  174. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  175. package/dist/openapi/models/JobDefinition.js +1 -1
  176. package/dist/openapi/models/JobDownload.d.ts +1 -1
  177. package/dist/openapi/models/JobDownload.js +1 -1
  178. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  179. package/dist/openapi/models/JobInputV2.js +1 -1
  180. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  181. package/dist/openapi/models/JobMediaClass.js +1 -1
  182. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  183. package/dist/openapi/models/JobOutputSource.js +1 -1
  184. package/dist/openapi/models/JobResponse.d.ts +1 -1
  185. package/dist/openapi/models/JobResponse.js +1 -1
  186. package/dist/openapi/models/JobStatus.d.ts +1 -1
  187. package/dist/openapi/models/JobStatus.js +1 -1
  188. package/dist/openapi/models/JobType.d.ts +1 -1
  189. package/dist/openapi/models/JobType.js +1 -1
  190. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  191. package/dist/openapi/models/LivenessResponse.js +1 -1
  192. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  193. package/dist/openapi/models/LoginUser200Response.js +1 -1
  194. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  195. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  196. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  197. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  198. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  199. package/dist/openapi/models/LoginUserRequest.js +1 -1
  200. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  201. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  202. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  203. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  204. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  205. package/dist/openapi/models/MetadataResponse.js +1 -1
  206. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  207. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  208. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  209. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  210. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  211. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  212. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  213. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  214. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  215. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  216. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  217. package/dist/openapi/models/MultiInputSource.js +1 -1
  218. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  219. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  220. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  221. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  222. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  223. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  224. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  225. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  226. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  227. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  228. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  229. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  230. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  231. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  232. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  233. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  234. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  235. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  236. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  237. package/dist/openapi/models/MultipartPartListing.js +1 -1
  238. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  239. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  240. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  241. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  242. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  243. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  244. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  245. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  246. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  247. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  248. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  249. package/dist/openapi/models/OperationCapability.js +1 -1
  250. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  251. package/dist/openapi/models/OperationDefinition.js +1 -1
  252. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  253. package/dist/openapi/models/OperationDownload.js +1 -1
  254. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  255. package/dist/openapi/models/OperationInputModel.js +3 -3
  256. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  257. package/dist/openapi/models/OperationResponse.js +1 -1
  258. package/dist/openapi/models/OperationResult.d.ts +1 -1
  259. package/dist/openapi/models/OperationResult.js +1 -1
  260. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  261. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  262. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  263. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  264. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  265. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  266. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  267. package/dist/openapi/models/OperationStatus.js +1 -1
  268. package/dist/openapi/models/OperationType.d.ts +5 -2
  269. package/dist/openapi/models/OperationType.js +5 -2
  270. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  271. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  272. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  273. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  274. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  275. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  276. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  277. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  278. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  279. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  280. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  281. package/dist/openapi/models/OptionSchema.js +1 -1
  282. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  283. package/dist/openapi/models/OutputProperties.js +1 -1
  284. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  285. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  286. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  287. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  288. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  289. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  290. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  291. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  292. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  293. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  294. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  295. package/dist/openapi/models/ProcessingClass.js +1 -1
  296. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  297. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  298. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  299. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  300. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  301. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  302. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  303. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  304. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  305. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  306. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  307. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  308. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  309. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  310. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  311. package/dist/openapi/models/ProcessingPlan.js +1 -1
  312. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  313. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  314. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  315. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  316. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  317. package/dist/openapi/models/ReadinessResponse.js +1 -1
  318. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  319. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  320. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  321. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  322. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  323. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  324. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  325. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  326. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  327. package/dist/openapi/models/RetryResponse.js +1 -1
  328. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  329. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  330. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  331. package/dist/openapi/models/SseCompletionBase.js +1 -1
  332. package/dist/openapi/models/SseEventType.d.ts +1 -1
  333. package/dist/openapi/models/SseEventType.js +1 -1
  334. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  335. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  336. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  337. package/dist/openapi/models/SseJobFailedData.js +1 -1
  338. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  339. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  340. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  341. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  342. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  343. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  344. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  345. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  346. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  347. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  348. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  349. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  350. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  351. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  352. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  353. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  354. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  355. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  356. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  357. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  358. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  359. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  360. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  361. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  362. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  363. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  364. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  365. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  366. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  367. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  368. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  369. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  370. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  371. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  372. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  373. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  374. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  375. package/dist/openapi/models/UploadFile403Response.js +1 -1
  376. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  377. package/dist/openapi/models/UploadFile422Response.js +1 -1
  378. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  379. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  380. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  381. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  382. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  383. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  384. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  385. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  386. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  387. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  388. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  389. package/dist/openapi/models/UploadResponse.js +1 -1
  390. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  391. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  392. package/dist/openapi/models/UploadSource.d.ts +1 -1
  393. package/dist/openapi/models/UploadSource.js +1 -1
  394. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  395. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  396. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  397. package/dist/openapi/models/UploadThresholds.js +1 -1
  398. package/dist/openapi/models/UserTier.d.ts +1 -1
  399. package/dist/openapi/models/UserTier.js +1 -1
  400. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  401. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  402. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  403. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  404. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  405. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  406. package/dist/openapi/models/WarningType.d.ts +1 -1
  407. package/dist/openapi/models/WarningType.js +1 -1
  408. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  409. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  410. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  411. package/dist/openapi/models/WebhookPayload.js +1 -1
  412. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  413. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  414. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  415. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  416. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  417. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  418. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  419. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  420. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  421. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  422. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  423. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  424. package/dist/openapi/models/WorkflowCreditSummary.d.ts +22 -56
  425. package/dist/openapi/models/WorkflowCreditSummary.js +4 -24
  426. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  427. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  428. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  431. package/dist/openapi/models/WorkflowEdge.js +1 -1
  432. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  433. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  434. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  435. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  436. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  437. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  438. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  439. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  440. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  441. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  442. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  443. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  444. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  445. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  446. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  448. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  450. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowSource.js +1 -1
  452. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowStatus.js +1 -1
  454. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  456. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  458. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  459. package/dist/openapi/models/WorkflowSummary.js +1 -1
  460. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  461. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  462. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowWarning.js +1 -1
  464. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  466. package/dist/openapi/models/index.d.ts +4 -0
  467. package/dist/openapi/models/index.js +4 -0
  468. package/dist/openapi/runtime.d.ts +1 -1
  469. package/dist/openapi/runtime.js +1 -1
  470. package/dist/operations/image_watermark.d.ts +19 -0
  471. package/dist/operations/image_watermark.js +12 -0
  472. package/dist/operations/image_watermark.metadata.js +5 -2
  473. package/dist/operations/index.d.ts +2 -0
  474. package/dist/operations/index.js +2 -0
  475. package/dist/operations/transform.d.ts +57 -0
  476. package/dist/operations/transform.js +50 -0
  477. package/dist/operations/transform.metadata.d.ts +2 -0
  478. package/dist/operations/transform.metadata.js +77 -0
  479. package/openapi/api.yaml +321 -63
  480. package/operation-capabilities/operation-capabilities.json +57 -2
  481. package/operations/schemas/image_watermark.yaml +121 -13
  482. package/operations/schemas/transform.yaml +196 -0
  483. package/package.json +5 -2
@@ -854,7 +854,8 @@
854
854
  "margin_x",
855
855
  "margin_y",
856
856
  "opacity",
857
- "overlay_width"
857
+ "overlay_width",
858
+ "overlays"
858
859
  ]
859
860
  },
860
861
  "output_format_option": null
@@ -1124,6 +1125,43 @@
1124
1125
  "output_format_option": null
1125
1126
  }
1126
1127
  },
1128
+ "transform": {
1129
+ "document_pdf": {
1130
+ "accepted_options": {
1131
+ "*": [
1132
+ "rotate"
1133
+ ]
1134
+ },
1135
+ "output_format_option": null
1136
+ },
1137
+ "image": {
1138
+ "accepted_options": {
1139
+ "*": [
1140
+ "flip",
1141
+ "rotate"
1142
+ ]
1143
+ },
1144
+ "output_format_option": null
1145
+ },
1146
+ "image_gif": {
1147
+ "accepted_options": {
1148
+ "*": [
1149
+ "flip",
1150
+ "rotate"
1151
+ ]
1152
+ },
1153
+ "output_format_option": null
1154
+ },
1155
+ "video": {
1156
+ "accepted_options": {
1157
+ "*": [
1158
+ "flip",
1159
+ "rotate"
1160
+ ]
1161
+ },
1162
+ "output_format_option": null
1163
+ }
1164
+ },
1127
1165
  "video_text_watermark": {
1128
1166
  "video": {
1129
1167
  "accepted_options": {
@@ -1159,5 +1197,5 @@
1159
1197
  }
1160
1198
  }
1161
1199
  },
1162
- "schema_version": "2.148.0"
1200
+ "schema_version": "2.154.0"
1163
1201
  }
@@ -246,5 +246,5 @@
246
246
  "source_op": "compress"
247
247
  }
248
248
  },
249
- "schema_version": "2.148.0"
249
+ "schema_version": "2.154.0"
250
250
  }
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.0.0
2
2
  info:
3
3
  title: GISL Compression Events
4
- version: 3.25.0
4
+ version: 3.25.1
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
@@ -93,7 +93,10 @@ info:
93
93
  `operation-custom-luma` (planned per ticket I29 — not yet shipped),
94
94
  `operation-audio-overlay` (planned per ticket I19 — not yet shipped),
95
95
  `operation-audio-watermark` (planned per ticket I20 —
96
- enterprise-tier; not yet shipped).
96
+ enterprise-tier; not yet shipped),
97
+ `operation-transform-image`, `operation-transform-video`,
98
+ `operation-transform-document` (all planned per epic fhiWebI0 /
99
+ ADR-0026 — not yet shipped).
97
100
 
98
101
  **Message Types**
99
102
 
@@ -175,7 +178,7 @@ channels:
175
178
  address: gisl-{env}-{region}-operations
176
179
  description: |
177
180
  SNS topic where the API publishes **non-compression** operation
178
- requests (thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark, audio_to_video, video_watermark, video_text_watermark, split). Filter
181
+ requests (thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark, audio_to_video, video_watermark, video_text_watermark, split, transform). Filter
179
182
  attribute: `operation_type` (single-attribute filter policy).
180
183
  Subscriptions fan out to per-operation-type queues, keyed by
181
184
  `operation_type` value.
@@ -233,6 +236,23 @@ channels:
233
236
  [`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
234
237
  [`MNuDYJaY`](https://trello.com/c/MNuDYJaY) — same
235
238
  `feature_not_available` 422 gating)
239
+ - `operation_type = transform_image` -> `ops-transform-image` queue
240
+ - `operation_type = transform_video` -> `ops-transform-video` queue
241
+ - `operation_type = transform_document` -> `ops-transform-document`
242
+ queue
243
+
244
+ The three `transform_*` values are the per-media routing sub-types
245
+ of the single `transform` op (geometry — rotate + flip, ADR-0026),
246
+ mirroring the thumbnail attribute/payload split: the payload
247
+ `operation_type` field always stays the base value `transform`; the
248
+ publisher resolves each operation's effective input MIME to the
249
+ matching `transform_{image,video,document}` SNS attribute. All three
250
+ media groups are `availability: planned` until their Lambdas ship
251
+ (epic `fhiWebI0`) — the API rejects workflow-create with
252
+ `feature_not_available` (422) so no transform traffic reaches the
253
+ topic today. There is no legacy bare-`transform` routing target
254
+ (unlike thumbnail): the base value is payload-only, never an SNS
255
+ attribute.
236
256
 
237
257
  The API's Option A publisher sets `operation_type` as the filter
238
258
  attribute and additionally sets `media_group` as an **informational**
@@ -529,6 +549,93 @@ channels:
529
549
  operationRequest:
530
550
  $ref: '#/components/messages/OperationRequestMessage'
531
551
 
552
+ opsTransformImage:
553
+ address: gisl-{env}-{region}-ops-transform-image
554
+ description: |
555
+ SQS queue for image transform operations (rotate + flip, ADR-0026).
556
+ Subscribed to the `operations` SNS topic with filter
557
+ `operation_type = transform_image`. Backed by the image transform
558
+ Lambda (`operation-transform-image`, Rust image crate).
559
+
560
+ Receives traffic for image inputs — the API publisher emits
561
+ `operation_type=transform_image` on the SNS attribute (resolved from
562
+ the operation's effective input MIME); the payload `operation_type`
563
+ field stays `transform`. `availability: planned` (epic fhiWebI0) —
564
+ no traffic until the Lambda ships.
565
+ bindings:
566
+ sqs:
567
+ queue:
568
+ name: gisl-{env}-{region}-ops-transform-image
569
+ fifoQueue: false
570
+ bindingVersion: '0.2.0'
571
+ parameters:
572
+ env:
573
+ description: Environment (local, stg, prod)
574
+ region:
575
+ description: AWS region abbreviation (euw1, use1, etc.)
576
+ messages:
577
+ operationRequest:
578
+ $ref: '#/components/messages/OperationRequestMessage'
579
+
580
+ opsTransformVideo:
581
+ address: gisl-{env}-{region}-ops-transform-video
582
+ description: |
583
+ SQS queue for video transform operations (rotate + flip, ADR-0026).
584
+ Subscribed to the `operations` SNS topic with filter
585
+ `operation_type = transform_video`. Backed by the video transform
586
+ Lambda (`operation-transform-video`, FFmpeg hflip/vflip/transpose —
587
+ re-encode).
588
+
589
+ Receives traffic for video inputs — the API publisher emits
590
+ `operation_type=transform_video` on the SNS attribute (resolved from
591
+ the operation's effective input MIME); the payload `operation_type`
592
+ field stays `transform`. `availability: planned` (epic fhiWebI0) —
593
+ no traffic until the Lambda ships.
594
+ bindings:
595
+ sqs:
596
+ queue:
597
+ name: gisl-{env}-{region}-ops-transform-video
598
+ fifoQueue: false
599
+ bindingVersion: '0.2.0'
600
+ parameters:
601
+ env:
602
+ description: Environment (local, stg, prod)
603
+ region:
604
+ description: AWS region abbreviation (euw1, use1, etc.)
605
+ messages:
606
+ operationRequest:
607
+ $ref: '#/components/messages/OperationRequestMessage'
608
+
609
+ opsTransformDocument:
610
+ address: gisl-{env}-{region}-ops-transform-document
611
+ description: |
612
+ SQS queue for document transform operations (PDF page rotate only,
613
+ ADR-0026). Subscribed to the `operations` SNS topic with filter
614
+ `operation_type = transform_document`. Backed by the document
615
+ transform Lambda (`operation-transform-document`).
616
+
617
+ Receives traffic for PDF inputs — the API publisher emits
618
+ `operation_type=transform_document` on the SNS attribute (resolved
619
+ from the operation's effective input MIME); the payload
620
+ `operation_type` field stays `transform`. The routing label is
621
+ media-family level (`transform_document`) though v1 gates the group
622
+ to PDF. `availability: planned` (epic fhiWebI0) — no traffic until
623
+ the Lambda ships.
624
+ bindings:
625
+ sqs:
626
+ queue:
627
+ name: gisl-{env}-{region}-ops-transform-document
628
+ fifoQueue: false
629
+ bindingVersion: '0.2.0'
630
+ parameters:
631
+ env:
632
+ description: Environment (local, stg, prod)
633
+ region:
634
+ description: AWS region abbreviation (euw1, use1, etc.)
635
+ messages:
636
+ operationRequest:
637
+ $ref: '#/components/messages/OperationRequestMessage'
638
+
532
639
  opsImageWatermark:
533
640
  address: gisl-{env}-{region}-ops-image-watermark
534
641
  description: |
@@ -995,6 +1102,33 @@ channels:
995
1102
  region:
996
1103
  description: AWS region abbreviation (euw1, use1, etc.)
997
1104
 
1105
+ opsTransformImageDlq:
1106
+ address: gisl-{env}-{region}-ops-transform-image-dlq
1107
+ description: DLQ for failed image transform operations. Messages land here after 5 failed processing attempts.
1108
+ parameters:
1109
+ env:
1110
+ description: Environment (local, stg, prod)
1111
+ region:
1112
+ description: AWS region abbreviation (euw1, use1, etc.)
1113
+
1114
+ opsTransformVideoDlq:
1115
+ address: gisl-{env}-{region}-ops-transform-video-dlq
1116
+ description: DLQ for failed video transform operations. Messages land here after 5 failed processing attempts.
1117
+ parameters:
1118
+ env:
1119
+ description: Environment (local, stg, prod)
1120
+ region:
1121
+ description: AWS region abbreviation (euw1, use1, etc.)
1122
+
1123
+ opsTransformDocumentDlq:
1124
+ address: gisl-{env}-{region}-ops-transform-document-dlq
1125
+ description: DLQ for failed document transform operations. Messages land here after 5 failed processing attempts.
1126
+ parameters:
1127
+ env:
1128
+ description: Environment (local, stg, prod)
1129
+ region:
1130
+ description: AWS region abbreviation (euw1, use1, etc.)
1131
+
998
1132
  opsImageWatermarkDlq:
999
1133
  address: gisl-{env}-{region}-ops-image-watermark-dlq
1000
1134
  description: DLQ for failed image_watermark operations. Messages land here after 5 failed processing attempts.
@@ -1500,7 +1634,10 @@ operations:
1500
1634
  (including the four sub-type values during the migration window),
1501
1635
  image_watermark, text_watermark, merge, archive, convert,
1502
1636
  custom_luma, audio_overlay, audio_watermark, audio_to_video,
1503
- video_watermark, video_text_watermark, split. The target SNS
1637
+ video_watermark, video_text_watermark, split, transform (the payload
1638
+ `operation_type` stays base `transform`, while the SNS attribute
1639
+ carries one of the `transform_{image,video,document}` sub-types
1640
+ resolved from the effective input MIME — ADR-0026). The target SNS
1504
1641
  topic filters subscriptions on `operation_type` alone.
1505
1642
 
1506
1643
  **Message attributes set on this branch:** `{operation_type,
@@ -1694,6 +1831,64 @@ operations:
1694
1831
  messages:
1695
1832
  - $ref: '#/channels/opsThumbnailOffice/messages/operationRequest'
1696
1833
 
1834
+ consumeTransformImageOperation:
1835
+ action: receive
1836
+ channel:
1837
+ $ref: '#/channels/opsTransformImage'
1838
+ bindings:
1839
+ sqs:
1840
+ queues:
1841
+ - name: gisl-{env}-{region}-ops-transform-image
1842
+ fifoQueue: false
1843
+ bindingVersion: '0.2.0'
1844
+ summary: Process image transform operation
1845
+ description: |
1846
+ The image transform Lambda consumes transform requests routed by
1847
+ `operation_type=transform_image`. Backed by the Rust image crate
1848
+ (fliph/flipv/rotate90/180/270). Receives traffic for image inputs —
1849
+ see channel description. `availability: planned` (epic fhiWebI0).
1850
+ messages:
1851
+ - $ref: '#/channels/opsTransformImage/messages/operationRequest'
1852
+
1853
+ consumeTransformVideoOperation:
1854
+ action: receive
1855
+ channel:
1856
+ $ref: '#/channels/opsTransformVideo'
1857
+ bindings:
1858
+ sqs:
1859
+ queues:
1860
+ - name: gisl-{env}-{region}-ops-transform-video
1861
+ fifoQueue: false
1862
+ bindingVersion: '0.2.0'
1863
+ summary: Process video transform operation
1864
+ description: |
1865
+ The video transform Lambda consumes transform requests routed by
1866
+ `operation_type=transform_video`. Backed by FFmpeg
1867
+ (hflip/vflip/transpose — re-encode). Receives traffic for video
1868
+ inputs — see channel description. `availability: planned` (epic
1869
+ fhiWebI0).
1870
+ messages:
1871
+ - $ref: '#/channels/opsTransformVideo/messages/operationRequest'
1872
+
1873
+ consumeTransformDocumentOperation:
1874
+ action: receive
1875
+ channel:
1876
+ $ref: '#/channels/opsTransformDocument'
1877
+ bindings:
1878
+ sqs:
1879
+ queues:
1880
+ - name: gisl-{env}-{region}-ops-transform-document
1881
+ fifoQueue: false
1882
+ bindingVersion: '0.2.0'
1883
+ summary: Process document transform operation
1884
+ description: |
1885
+ The document transform Lambda consumes transform requests routed by
1886
+ `operation_type=transform_document`. Backed by a PDF page-rotate
1887
+ worker. Receives traffic for PDF inputs — see channel description.
1888
+ `availability: planned` (epic fhiWebI0).
1889
+ messages:
1890
+ - $ref: '#/channels/opsTransformDocument/messages/operationRequest'
1891
+
1697
1892
  consumeImageWatermarkOperation:
1698
1893
  action: receive
1699
1894
  channel:
@@ -1708,13 +1903,17 @@ operations:
1708
1903
  description: |
1709
1904
  The operation-image-watermark Lambda consumes image_watermark
1710
1905
  requests routed by `operation_type=image_watermark`. Multi-input
1711
- (Path B with role: base + overlay per JobInputV2.role).
1906
+ (Path B, role-based): one `base` + 1-8 `overlay` inputs per
1907
+ `JobInputV2.role` (`input` min 2 / max 9; multi-overlay via the
1908
+ index-aligned `overlays[]` option, LIVE 2026-07-01 — the flat
1909
+ single-overlay options remain the 1-overlay back-compat path).
1712
1910
 
1713
- Stable for image bases today; animated GIF (`image_gif` group) and
1714
- video bases (`video` group) are advertised as `planned` in the
1715
- schema (I5 — Trello AKZiOXnd) and dispatch returns
1911
+ Stable for jpeg/png/webp + tiff/bmp image bases; animated GIF
1912
+ (`image_gif` group) is advertised as `planned` and dispatch returns
1716
1913
  `feature_not_available` (422) at the API edge until Lambda support
1717
- ships. Per ADR-0004 + I4-CONS + I5.
1914
+ ships. Video bases are NOT supported (there is no `video` group) —
1915
+ use `video_watermark`. Multi-overlay (`overlays[]`) is jpeg/png/webp
1916
+ only. Per ADR-0004 + I4-CONS + I5 (Trello AKZiOXnd).
1718
1917
  messages:
1719
1918
  - $ref: '#/channels/opsImageWatermark/messages/operationRequest'
1720
1919
 
@@ -2364,9 +2563,10 @@ components:
2364
2563
  **non-compression** operation (thumbnail, image_watermark,
2365
2564
  text_watermark, merge, archive, convert, custom_luma,
2366
2565
  audio_overlay, audio_watermark, audio_to_video,
2367
- video_watermark, video_text_watermark, split). Published to the
2368
- `operations` SNS topic; routed by the single-attribute
2369
- filter `operation_type` to one of the ops-family queues.
2566
+ video_watermark, video_text_watermark, split, transform).
2567
+ Published to the `operations` SNS topic; routed by the
2568
+ single-attribute filter `operation_type` to one of the ops-family
2569
+ queues.
2370
2570
 
2371
2571
  **SNS Message Attributes:**
2372
2572
  - `operation_type`: always present. Values: `thumbnail`,
@@ -2374,8 +2574,12 @@ components:
2374
2574
  `thumbnail_office`, `image_watermark`, `text_watermark`,
2375
2575
  `merge`, `archive`, `convert`, `custom_luma`,
2376
2576
  `audio_overlay`, `audio_watermark`, `audio_to_video`,
2377
- `video_watermark`, `video_text_watermark`, `split`. Used by
2378
- SNS as the filter attribute on the `operations` topic.
2577
+ `video_watermark`, `video_text_watermark`, `split`,
2578
+ `transform_image`, `transform_video`, `transform_document`. Used
2579
+ by SNS as the filter attribute on the `operations` topic. (The
2580
+ transform sub-types are routing-only — the payload
2581
+ `operation_type` field carries the base value `transform`;
2582
+ there is no bare-`transform` attribute value.)
2379
2583
  - `media_group`: informational metadata, present for every
2380
2584
  operation except `archive` (which is media-agnostic). Values:
2381
2585
  `image`, `video`, `audio`, `document`. **Not** used by SNS as
@@ -2462,6 +2666,23 @@ components:
2462
2666
  height: 512
2463
2667
  fit: "max"
2464
2668
  format: "webp"
2669
+ - name: Transform Image (sub-type routing)
2670
+ summary: Rotate + flip an image via the transform op. The SNS attribute `operation_type` carries the sub-type `transform_image` (drives routing); the payload `operation_type` carries the base value `transform`. Availability is planned today.
2671
+ headers:
2672
+ operation_type: "transform_image"
2673
+ media_group: "image"
2674
+ payload:
2675
+ job_id: "018f9c42-5d6b-7481-b3df-9fd0a0a5e131"
2676
+ operation_id: "018f9c42-5d6b-7481-b3df-9fd0a0a5e231"
2677
+ operation_type: "transform"
2678
+ file_type: "image/jpeg"
2679
+ source_bucket: "gisl-stg-euw1-input"
2680
+ source_key: "uploads/018f9c42-mmnn/selfie.jpg"
2681
+ output_bucket: "gisl-stg-euw1-output"
2682
+ output_key_prefix: "jobs/018f9c42-5d6b-7481-b3df-9fd0a0a5e131/018f9c42-5d6b-7481-b3df-9fd0a0a5e231/"
2683
+ options:
2684
+ rotate: 90
2685
+ flip: "horizontal"
2465
2686
  - name: Image Watermark (file overlay)
2466
2687
  summary: Apply a PNG logo overlay to a JPEG image (V2 multi-input Path B)
2467
2688
  headers:
@@ -3195,6 +3416,13 @@ components:
3195
3416
  - `thumbnail_document` -> `document`
3196
3417
  - `thumbnail_office` -> `document` (office files are routed as
3197
3418
  documents at the media_group level)
3419
+ - For the three transform sub-types (ADR-0026 — the single
3420
+ `transform` op's per-media routing attributes; the payload
3421
+ `operation_type` stays base `transform`), `media_group` is
3422
+ constrained to the matching media:
3423
+ - `transform_image` -> `image`
3424
+ - `transform_video` -> `video`
3425
+ - `transform_document` -> `document`
3198
3426
  required:
3199
3427
  - operation_type
3200
3428
  properties:
@@ -3230,6 +3458,9 @@ components:
3230
3458
  - video_text_watermark
3231
3459
  - split
3232
3460
  - render_variants
3461
+ - transform_image
3462
+ - transform_video
3463
+ - transform_document
3233
3464
  media_group:
3234
3465
  type: string
3235
3466
  description: |
@@ -3326,6 +3557,30 @@ components:
3326
3557
  properties:
3327
3558
  media_group:
3328
3559
  const: document
3560
+ - if:
3561
+ properties:
3562
+ operation_type:
3563
+ const: transform_image
3564
+ then:
3565
+ properties:
3566
+ media_group:
3567
+ const: image
3568
+ - if:
3569
+ properties:
3570
+ operation_type:
3571
+ const: transform_video
3572
+ then:
3573
+ properties:
3574
+ media_group:
3575
+ const: video
3576
+ - if:
3577
+ properties:
3578
+ operation_type:
3579
+ const: transform_document
3580
+ then:
3581
+ properties:
3582
+ media_group:
3583
+ const: document
3329
3584
  - if:
3330
3585
  properties:
3331
3586
  operation_type:
@@ -3364,9 +3619,9 @@ components:
3364
3619
  API to SNS, consumed by Lambda from SQS.
3365
3620
 
3366
3621
  **Single-input operations** (compress, thumbnail, text_watermark,
3367
- convert, audio_watermark, video_text_watermark, split): use
3368
- `source_bucket` + `source_key` for the input file. `file_type` is
3369
- required.
3622
+ convert, audio_watermark, video_text_watermark, split, transform):
3623
+ use `source_bucket` + `source_key` for the input file. `file_type`
3624
+ is required.
3370
3625
 
3371
3626
  **Multi-input operations** (merge, archive, image_watermark,
3372
3627
  custom_luma, audio_overlay, audio_to_video, video_watermark):
@@ -3405,6 +3660,7 @@ components:
3405
3660
  - video_text_watermark
3406
3661
  - split
3407
3662
  - render_variants
3663
+ - transform
3408
3664
  then:
3409
3665
  required:
3410
3666
  - file_type
@@ -4759,9 +5015,11 @@ components:
4759
5015
  enum is deliberately narrower than the SNS `operation_type`
4760
5016
  MessageAttribute: the attribute enum permits per-media thumbnail
4761
5017
  sub-types (`thumbnail_image`, `thumbnail_video`,
4762
- `thumbnail_document`, `thumbnail_office`) for routing on the
4763
- `operations` topic, but the payload body always carries the
4764
- semantic base value (`thumbnail`). See
5018
+ `thumbnail_document`, `thumbnail_office`) and per-media transform
5019
+ sub-types (`transform_image`, `transform_video`,
5020
+ `transform_document`) for routing on the `operations` topic, but the
5021
+ payload body always carries the semantic base value (`thumbnail` /
5022
+ `transform`). See
4765
5023
  `OperationRequestAttributes.operation_type` for the broader
4766
5024
  attribute enum and the routing contract. Note that the attribute
4767
5025
  values the publisher currently emits are governed by the
@@ -4891,6 +5149,20 @@ components:
4891
5149
  `planned`. Routes via `operation_type=split` to `ops-split`.
4892
5150
  Per ADR-0004 + ADR-0014
4893
5151
  ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
5152
+ - `transform`: Geometric/orientation transform — v1 = rotate
5153
+ (0/90/180/270) + flip (none/horizontal/vertical/both), ADR-0026.
5154
+ Single-input; `produces: same_as_input`. The payload always
5155
+ carries the base value `transform`; the SNS `operation_type`
5156
+ attribute enum additionally permits the three per-media sub-type
5157
+ values (`transform_image`, `transform_video`,
5158
+ `transform_document`) for routing to the matching per-media
5159
+ Lambda (there is NO legacy bare-`transform` routing target — the
5160
+ base value is payload-only). All media groups
5161
+ (image jpeg/png/webp + image_gif; video mp4/webm; document PDF
5162
+ rotate-only) are `availability: planned`; the API rejects
5163
+ workflow-create with `feature_not_available` (422) until the
5164
+ transform Lambdas ship, so no traffic reaches SNS today. Audio is
5165
+ not supported. Per ADR-0026 (epic `fhiWebI0`).
4894
5166
 
4895
5167
  Note: the `passthrough` OpenAPI operation is **deliberately
4896
5168
  absent** from this payload enum. A passthrough source job is
@@ -4914,6 +5186,7 @@ components:
4914
5186
  - video_text_watermark
4915
5187
  - split
4916
5188
  - render_variants
5189
+ - transform
4917
5190
 
4918
5191
  MediaGroup:
4919
5192
  type: string