@giveitsmaller/contracts 0.40.0 → 0.42.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 (435) hide show
  1. package/accepted-options/accepted-options.json +77 -7
  2. package/accepted-options/image-output-routes.json +13 -13
  3. package/availability/availability.json +539 -150
  4. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  5. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  6. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimits.js +1 -1
  8. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  12. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  16. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  17. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorType.js +1 -1
  20. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  21. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  22. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  23. package/dist/openapi/models/AvailabilityValue.js +1 -1
  24. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  25. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  28. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  29. package/dist/openapi/models/CallbackEventType.js +1 -1
  30. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  31. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  32. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  33. package/dist/openapi/models/CompositionPlan.js +1 -1
  34. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  35. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  36. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  37. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  38. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  39. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  40. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  41. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  42. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  43. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  44. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  45. package/dist/openapi/models/ConnectionSource.js +1 -1
  46. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  47. package/dist/openapi/models/ContactRequest.js +1 -1
  48. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  49. package/dist/openapi/models/ContactSubject.js +1 -1
  50. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  51. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  52. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  53. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  54. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  55. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  56. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  57. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  58. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  59. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  60. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  61. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  62. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  63. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  64. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  65. package/dist/openapi/models/CreditTransaction.js +1 -1
  66. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  67. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  68. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  69. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  70. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  71. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  72. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  73. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  74. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  75. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  76. package/dist/openapi/models/Delivery.d.ts +1 -1
  77. package/dist/openapi/models/Delivery.js +1 -1
  78. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  79. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  80. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  81. package/dist/openapi/models/DeliveryPlan.js +1 -1
  82. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  83. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  84. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  85. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  86. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  87. package/dist/openapi/models/DeliverySelection.js +1 -1
  88. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  89. package/dist/openapi/models/DownloadBundle.js +1 -1
  90. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  91. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  92. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  93. package/dist/openapi/models/EndpointProjection.js +1 -1
  94. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  95. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  96. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  97. package/dist/openapi/models/EstimateQuality.js +1 -1
  98. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  99. package/dist/openapi/models/EstimateRange.js +1 -1
  100. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  101. package/dist/openapi/models/ExternalDestination.js +1 -1
  102. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  103. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  104. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  105. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  106. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  107. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  108. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  109. package/dist/openapi/models/ExternalImportToken.js +1 -1
  110. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  111. package/dist/openapi/models/ExternalSource.js +1 -1
  112. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  113. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  114. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  115. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  116. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  117. package/dist/openapi/models/FeatureViolation.js +1 -1
  118. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  119. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  120. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  121. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  122. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  123. package/dist/openapi/models/JobDefinition.js +1 -1
  124. package/dist/openapi/models/JobDownload.d.ts +1 -1
  125. package/dist/openapi/models/JobDownload.js +1 -1
  126. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  127. package/dist/openapi/models/JobInputV2.js +1 -1
  128. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  129. package/dist/openapi/models/JobMediaClass.js +1 -1
  130. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  131. package/dist/openapi/models/JobOutputSource.js +1 -1
  132. package/dist/openapi/models/JobResponse.d.ts +1 -1
  133. package/dist/openapi/models/JobResponse.js +1 -1
  134. package/dist/openapi/models/JobStatus.d.ts +1 -1
  135. package/dist/openapi/models/JobStatus.js +1 -1
  136. package/dist/openapi/models/JobType.d.ts +1 -1
  137. package/dist/openapi/models/JobType.js +1 -1
  138. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  139. package/dist/openapi/models/LivenessResponse.js +1 -1
  140. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  141. package/dist/openapi/models/LoginUser200Response.js +1 -1
  142. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  143. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  144. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  145. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  146. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  147. package/dist/openapi/models/LoginUserRequest.js +1 -1
  148. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  149. package/dist/openapi/models/MetadataResponse.js +1 -1
  150. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  151. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  152. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  153. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  154. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  155. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  156. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  157. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  158. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  159. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  160. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  161. package/dist/openapi/models/MultiInputSource.js +1 -1
  162. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  163. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  164. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  165. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  166. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  167. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  168. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  169. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  170. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  171. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  172. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  173. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  174. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  175. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  176. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  177. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  178. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  179. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  180. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  181. package/dist/openapi/models/MultipartPartListing.js +1 -1
  182. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  183. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  184. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  185. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  186. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  187. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  188. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  189. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  190. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  191. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  192. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  193. package/dist/openapi/models/OperationDefinition.js +1 -1
  194. package/dist/openapi/models/OperationDownload.d.ts +24 -1
  195. package/dist/openapi/models/OperationDownload.js +5 -1
  196. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  197. package/dist/openapi/models/OperationInputModel.js +1 -1
  198. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  199. package/dist/openapi/models/OperationResponse.js +1 -1
  200. package/dist/openapi/models/OperationResult.d.ts +1 -1
  201. package/dist/openapi/models/OperationResult.js +1 -1
  202. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  203. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  204. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  205. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  206. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  207. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  208. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  209. package/dist/openapi/models/OperationStatus.js +1 -1
  210. package/dist/openapi/models/OperationType.d.ts +3 -3
  211. package/dist/openapi/models/OperationType.js +3 -3
  212. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  213. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  214. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  215. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  222. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  223. package/dist/openapi/models/OptionSchema.js +1 -1
  224. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  225. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  226. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  227. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  228. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  229. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  230. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  231. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  232. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  233. package/dist/openapi/models/ProcessingClass.js +1 -1
  234. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  235. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  236. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  237. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  238. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  239. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  240. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  241. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  242. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  243. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  244. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  245. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  246. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  247. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  248. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  249. package/dist/openapi/models/ProcessingPlan.js +1 -1
  250. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  251. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  252. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  253. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  254. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  255. package/dist/openapi/models/ReadinessResponse.js +1 -1
  256. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  257. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  258. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  259. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  260. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  261. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  262. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  263. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  264. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  265. package/dist/openapi/models/RetryResponse.js +1 -1
  266. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  267. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  268. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  269. package/dist/openapi/models/SseCompletionBase.js +1 -1
  270. package/dist/openapi/models/SseEventType.d.ts +1 -1
  271. package/dist/openapi/models/SseEventType.js +1 -1
  272. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  273. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  274. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  275. package/dist/openapi/models/SseJobFailedData.js +1 -1
  276. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  277. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  278. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  279. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  280. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  281. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  282. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  283. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  284. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  285. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  286. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  287. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  288. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  289. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  290. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  291. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  292. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  293. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  294. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  295. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  296. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  297. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  298. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  299. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  300. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  301. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  302. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  303. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  304. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  305. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  306. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  307. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  308. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  309. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  310. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  311. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  312. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  313. package/dist/openapi/models/UploadFile403Response.js +1 -1
  314. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  315. package/dist/openapi/models/UploadFile422Response.js +1 -1
  316. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  317. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  318. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  319. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  320. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  321. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  322. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  323. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  324. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  325. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  326. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  327. package/dist/openapi/models/UploadResponse.js +1 -1
  328. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  329. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  330. package/dist/openapi/models/UploadSource.d.ts +1 -1
  331. package/dist/openapi/models/UploadSource.js +1 -1
  332. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  333. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  334. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  335. package/dist/openapi/models/UploadThresholds.js +1 -1
  336. package/dist/openapi/models/UserTier.d.ts +1 -1
  337. package/dist/openapi/models/UserTier.js +1 -1
  338. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  339. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  340. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  341. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  342. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  343. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  344. package/dist/openapi/models/WarningType.d.ts +1 -1
  345. package/dist/openapi/models/WarningType.js +1 -1
  346. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  347. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  348. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  349. package/dist/openapi/models/WebhookPayload.js +1 -1
  350. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  351. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  352. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  353. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  354. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  355. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  356. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  357. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  358. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  359. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  360. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  361. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  362. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  363. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  364. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  365. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  366. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  367. package/dist/openapi/models/WorkflowEdge.js +1 -1
  368. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  369. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  370. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  371. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  372. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  373. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  374. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  375. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  376. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  377. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  378. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  379. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  380. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  381. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  382. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  383. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  384. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  385. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  386. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  387. package/dist/openapi/models/WorkflowSource.js +1 -1
  388. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  389. package/dist/openapi/models/WorkflowStatus.js +1 -1
  390. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  391. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  392. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  393. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  394. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  395. package/dist/openapi/models/WorkflowSummary.js +1 -1
  396. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  397. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  398. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  399. package/dist/openapi/models/WorkflowWarning.js +1 -1
  400. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  401. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  402. package/dist/openapi/runtime.d.ts +1 -1
  403. package/dist/openapi/runtime.js +1 -1
  404. package/dist/operations/audio_overlay.metadata.js +2 -2
  405. package/dist/operations/compress.metadata.js +0 -5
  406. package/dist/operations/convert.metadata.js +0 -2
  407. package/dist/operations/image_watermark.d.ts +36 -0
  408. package/dist/operations/image_watermark.js +24 -0
  409. package/dist/operations/image_watermark.metadata.js +47 -1
  410. package/dist/operations/split.metadata.js +1 -1
  411. package/dist/operations/text_watermark.d.ts +62 -0
  412. package/dist/operations/text_watermark.js +42 -0
  413. package/dist/operations/text_watermark.metadata.js +82 -0
  414. package/dist/operations/thumbnail.d.ts +19 -0
  415. package/dist/operations/thumbnail.js +12 -0
  416. package/dist/operations/thumbnail.metadata.js +29 -0
  417. package/dist/operations/video_watermark.metadata.js +1 -1
  418. package/openapi/api.yaml +22 -3
  419. package/operation-capabilities/operation-capabilities.json +1 -1
  420. package/operations/schemas/archive.yaml +1 -1
  421. package/operations/schemas/audio_overlay.yaml +9 -11
  422. package/operations/schemas/audio_to_video.yaml +7 -11
  423. package/operations/schemas/audio_watermark.yaml +1 -5
  424. package/operations/schemas/compress.yaml +322 -399
  425. package/operations/schemas/convert.yaml +68 -83
  426. package/operations/schemas/custom_luma.yaml +6 -11
  427. package/operations/schemas/image_watermark.yaml +166 -14
  428. package/operations/schemas/merge.yaml +5 -5
  429. package/operations/schemas/passthrough.yaml +4 -4
  430. package/operations/schemas/split.yaml +22 -31
  431. package/operations/schemas/text_watermark.yaml +262 -4
  432. package/operations/schemas/thumbnail.yaml +73 -3
  433. package/operations/schemas/video_text_watermark.yaml +9 -13
  434. package/operations/schemas/video_watermark.yaml +16 -21
  435. package/package.json +1 -1
@@ -19,8 +19,7 @@ operation:
19
19
 
20
20
  **Plus an audio-only `silence` mode** (`beta`, gated by the
21
21
  `silence_mode_audio` feature): cut at detected silence gaps via
22
- the worker's ffmpeg `silencedetect` filter. Video stays
23
- three-mode.
22
+ server-side silence detection. Video stays three-mode.
24
23
 
25
24
  **GIF + PDF use range-based selection** instead of three modes:
26
25
  - GIF (`image_gif`): `frame_range` REQUIRED + `output_format`
@@ -29,11 +28,11 @@ operation:
29
28
  exclusive per `depends_on`).
30
29
 
31
30
  **Wire format**: numeric seconds (floats allowed for sub-second
32
- precision). NOT ISO 8601 duration strings. Matches FFmpeg /
33
- Cloudinary / Shotstack / AWS MediaConvert conventions.
31
+ precision). NOT ISO 8601 duration strings. Matches common
32
+ video-tooling conventions.
34
33
 
35
- **200-output hard cap** per ADR-0009 §D5
36
- (`OperationResult.outputs[].maxItems: 200`). Preflight rejects
34
+ **200-output hard cap** (`OperationResult.outputs[].maxItems:
35
+ 200`). Preflight rejects
37
36
  requests exceeding this BEFORE work as `invalid_options` (422).
38
37
  Cap math by mode:
39
38
  - `interval`: `ceil(probed_duration / interval) <= 200`
@@ -48,7 +47,7 @@ operation:
48
47
  **Output naming**: 3-digit zero-padded — `output-001` ..
49
48
  `output-200`. Matches the convert PDF→N precedent.
50
49
 
51
- **Output envelope binding** (per ADR-0014 + ADR-0009 §D2):
50
+ **Output envelope binding**:
52
51
  - `image_gif`: `PositionIndexed` (frame stream-position 0-based
53
52
  ordinal)
54
53
  - `document_pdf`: `PageIndexed` (1-based gapless page index)
@@ -61,25 +60,18 @@ operation:
61
60
  NOT apply to GIF or PDF (frame extraction is exact and PDF page
62
61
  selection is exact by definition).
63
62
 
64
- **Long-form video** routes to a separate `split-video-fargate`
65
- Lambda (same `split` OperationType, different worker; routing
66
- via `processing_class`). No schema-side discriminator beyond MIME
67
- detection + `processing_class`.
63
+ **Long-form video** routes to a separate long-form processing
64
+ path (same `split` OperationType; routing via `processing_class`).
65
+ No schema-side discriminator beyond MIME detection +
66
+ `processing_class`.
68
67
 
69
68
  `availability: beta` for the `audio` and `video` mime_groups
70
- (workers live on staging — shape-stable + opt-in, MUST NOT 422).
71
- Video activates **both classes**: `video.processing_class.short_form`
72
- AND `long_form` are `beta` — the `split-video-fargate` worker is
73
- deployed + wired on staging but NOT yet proven end-to-end
74
- ([`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path
75
- soak has not completed and the 4GB+ speed-up is unmeasured; the
76
- long-form fan-out is flag-gated dark). The `image_gif` and
77
- `document_pdf` mime_groups stay `availability: planned` until their
78
- cross-repo Lambda workers ship ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)
79
- + lambdas L1); dispatch returns `feature_not_available` (422) for the
80
- still-planned groups/classes until then.
81
-
82
- Per ADR-0014.
69
+ (shape-stable + opt-in, MUST NOT 422). Video activates **both
70
+ classes**: `video.processing_class.short_form` AND `long_form` are
71
+ `beta`. The `image_gif` and `document_pdf` mime_groups stay
72
+ `availability: planned` until their cross-repo backend support ships;
73
+ dispatch returns `feature_not_available` (422) for the still-planned
74
+ groups/classes until then.
83
75
  default: false
84
76
  input_model: single
85
77
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -89,11 +81,10 @@ operation:
89
81
  availability: beta
90
82
  description: |
91
83
  Silence-detect cut mode for audio (`mode: silence` —
92
- server-side silence detection in the audio split worker).
93
- `beta`: shape-stable + opt-in. The worker is built; the mode
94
- ships dark until the API regenerates enum validation to accept
95
- `mode: silence`. The `silence` enum value carries a matching
96
- `per_value_availability: beta` on `audio.mode`.
84
+ server-side silence detection). `beta`: shape-stable + opt-in.
85
+ The mode ships dark until the API regenerates enum validation
86
+ to accept `mode: silence`. The `silence` enum value carries a
87
+ matching `per_value_availability: beta` on `audio.mode`.
97
88
 
98
89
  mime_groups:
99
90
  # Animated GIF base — parallel mime_group naming follows the
@@ -283,7 +274,7 @@ operation:
283
274
  Cut precision. Under `fast`, audio cuts are
284
275
  packet-boundary approximate (drift bounded by codec
285
276
  packet size — typically <= 23ms for AAC, <= 26ms for
286
- MP3). Under `exact`, the Lambda re-encodes to align cuts
277
+ MP3). Under `exact`, the server re-encodes to align cuts
287
278
  precisely at the requested timestamps (slower, larger
288
279
  output, but sample-accurate).
289
280
 
@@ -378,6 +369,6 @@ operation:
378
369
  description: |
379
370
  Cut precision. Under `fast`, video cuts are keyframe-
380
371
  aligned (drift bounded by GOP size — typically up to 1-2
381
- seconds depending on encoder). Under `exact`, the Lambda
372
+ seconds depending on encoder). Under `exact`, the backend
382
373
  re-encodes to align cuts precisely at the requested
383
374
  timestamps (slower, larger output, but frame-accurate).
@@ -5,15 +5,24 @@ operation:
5
5
  description: |
6
6
  Render a text overlay onto an image using bundled Liberation Sans
7
7
  (SIL OFL). Single-input — text comes from options, not from a file
8
- input. Source capped at 100 megapixels in `single` mode (raised from
9
- 25MP — lambdas #250, proven on the 45.9MP report case). `tiled` mode
10
- keeps the 25-megapixel canvas bound (see `tile_spacing` /
11
- `watermark_mode`). Per ADR-0004 §"V2 JobDefinition" + plan v5 §F1.
8
+ input. Source capped at 100 megapixels in `single` mode. `tiled`
9
+ mode keeps the 25-megapixel canvas bound (see `tile_spacing` /
10
+ `watermark_mode`).
12
11
 
13
12
  Two rendering modes:
14
13
  - `single`: one label rendered at the anchor + margin position.
15
14
  - `tiled`: text tiled across the source image (Cinavia / Adobe Stock
16
15
  pattern); rotation default -45° and tile_spacing controls density.
16
+
17
+ Stable today for image/jpeg, image/png, image/webp inputs. TIFF
18
+ (image/tiff) and BMP (image/bmp) inputs are advertised as `planned`
19
+ via the parallel `image_tiff` / `image_bmp` mime_groups — both are
20
+ already decodable and the worker's encode arms are a cheap add
21
+ (shared `image`-crate encoders), so each flips to `stable` once its
22
+ arm ships and is proven. Output mirrors the input format
23
+ (`produces: same_as_input`), so a format is only advertised when the
24
+ worker can both decode AND encode it; HEIC/AVIF (no encoder) and SVG
25
+ (cannot re-emit svg from a rasterised composite) stay out of scope.
17
26
  default: false
18
27
  input_model: single
19
28
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -148,3 +157,252 @@ operation:
148
157
  Text overlay opacity. Default 1.0 — the alpha channel of
149
158
  `color` already encodes transparency, so opacity is usually
150
159
  left at 1.0 and transparency is set via the color hex.
160
+
161
+ # TIFF input — separate group because backend support ships in its own
162
+ # wave: the format is already decodable, but the encode arm (shared
163
+ # `image`-crate TiffEncoder) is pending. Tagged `planned` until the arm
164
+ # ships and is proven, then flips to `stable` (cross-repo UANjD38A).
165
+ # Text-rendering options are format-independent, so the shape mirrors
166
+ # the canonical `image` group exactly.
167
+ image_tiff:
168
+ availability: planned
169
+ mimes:
170
+ - image/tiff
171
+ options:
172
+ text:
173
+ type: string
174
+ required: true
175
+ description: |
176
+ Watermark text. Must be non-empty.
177
+
178
+ font_size:
179
+ type: float
180
+ min: 8.0
181
+ max: 512.0
182
+ default: 48.0
183
+ description: Font size in pixels. Clamped to range.
184
+
185
+ color:
186
+ type: string
187
+ default: "#FFFFFF80"
188
+ pattern: '^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$'
189
+ description: |
190
+ Text colour as hex RGB (#RRGGBB) or RGBA (#RRGGBBAA).
191
+ Default is white with 50% alpha.
192
+
193
+ font_family:
194
+ type: enum
195
+ values:
196
+ - liberation_sans
197
+ default: liberation_sans
198
+ description: |
199
+ Font family. V2.0 ships with bundled Liberation Sans only;
200
+ user-uploaded fonts are a future extension (separate ticket).
201
+
202
+ rotation:
203
+ type: float
204
+ min: -360.0
205
+ max: 360.0
206
+ default: -45.0
207
+ description: |
208
+ Rotation angle in degrees. Default -45° suits tiled mode
209
+ (angled diagonal pattern). Clamped to range.
210
+
211
+ watermark_mode:
212
+ type: enum
213
+ values: [single, tiled]
214
+ default: single
215
+ description: |
216
+ Rendering mode:
217
+ - `single`: one label placed at the anchor + margin offset.
218
+ - `tiled`: repeated tiles across the entire source image at
219
+ the rotation angle.
220
+
221
+ tile_spacing:
222
+ type: integer
223
+ min: 0
224
+ max: 1000
225
+ depends_on: { watermark_mode: tiled }
226
+ description: |
227
+ Spacing between tiled labels in pixels. Defaults to font_size
228
+ when omitted. Only applies when watermark_mode is tiled.
229
+
230
+ anchor:
231
+ type: enum
232
+ values:
233
+ - top_left
234
+ - top_center
235
+ - top_right
236
+ - center_left
237
+ - center
238
+ - center_right
239
+ - bottom_left
240
+ - bottom_center
241
+ - bottom_right
242
+ default: bottom_right
243
+ description: |
244
+ 9-grid anchor position. For watermark_mode: single, the text
245
+ label is placed at this anchor + margin_x/margin_y offset.
246
+ For watermark_mode: tiled, anchor is ignored (tiles fill the
247
+ source image).
248
+
249
+ margin_x:
250
+ type: string
251
+ pattern: '^\d+(\.\d+)?(px|%)$'
252
+ default: "0px"
253
+ description: |
254
+ Horizontal offset from the anchor as pixels (e.g. "40px") or
255
+ percentage of base width (e.g. "5%"). Direction is
256
+ anchor-relative. Ignored when watermark_mode: tiled.
257
+
258
+ **`anchor: center` exception** (watermark_mode: single only).
259
+ Non-zero `margin_x` combined with `anchor: center` is rejected
260
+ by the API at workflow-create time as `invalid_options`
261
+ (HTTP 422). Not applicable to watermark_mode: tiled, where
262
+ anchor + margin are ignored entirely.
263
+
264
+ margin_y:
265
+ type: string
266
+ pattern: '^\d+(\.\d+)?(px|%)$'
267
+ default: "0px"
268
+ description: |
269
+ Vertical offset from the anchor as pixels or percentage of
270
+ base height. Ignored when watermark_mode: tiled.
271
+
272
+ **`anchor: center` exception** (watermark_mode: single only).
273
+ Same rejection rule as `margin_x` — non-zero `margin_y` with
274
+ `anchor: center` is rejected by the API at workflow-create
275
+ time as `invalid_options` (HTTP 422).
276
+
277
+ opacity:
278
+ type: float
279
+ min: 0.0
280
+ max: 1.0
281
+ default: 1.0
282
+ description: |
283
+ Text overlay opacity. Default 1.0 — the alpha channel of
284
+ `color` already encodes transparency, so opacity is usually
285
+ left at 1.0 and transparency is set via the color hex.
286
+
287
+ # BMP input — separate group for the same reason as image_tiff: decode
288
+ # is ready, the encode arm (shared `image`-crate BmpEncoder) is pending.
289
+ # Tagged `planned` until the arm ships and is proven (cross-repo UANjD38A).
290
+ image_bmp:
291
+ availability: planned
292
+ mimes:
293
+ - image/bmp
294
+ options:
295
+ text:
296
+ type: string
297
+ required: true
298
+ description: |
299
+ Watermark text. Must be non-empty.
300
+
301
+ font_size:
302
+ type: float
303
+ min: 8.0
304
+ max: 512.0
305
+ default: 48.0
306
+ description: Font size in pixels. Clamped to range.
307
+
308
+ color:
309
+ type: string
310
+ default: "#FFFFFF80"
311
+ pattern: '^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$'
312
+ description: |
313
+ Text colour as hex RGB (#RRGGBB) or RGBA (#RRGGBBAA).
314
+ Default is white with 50% alpha.
315
+
316
+ font_family:
317
+ type: enum
318
+ values:
319
+ - liberation_sans
320
+ default: liberation_sans
321
+ description: |
322
+ Font family. V2.0 ships with bundled Liberation Sans only;
323
+ user-uploaded fonts are a future extension (separate ticket).
324
+
325
+ rotation:
326
+ type: float
327
+ min: -360.0
328
+ max: 360.0
329
+ default: -45.0
330
+ description: |
331
+ Rotation angle in degrees. Default -45° suits tiled mode
332
+ (angled diagonal pattern). Clamped to range.
333
+
334
+ watermark_mode:
335
+ type: enum
336
+ values: [single, tiled]
337
+ default: single
338
+ description: |
339
+ Rendering mode:
340
+ - `single`: one label placed at the anchor + margin offset.
341
+ - `tiled`: repeated tiles across the entire source image at
342
+ the rotation angle.
343
+
344
+ tile_spacing:
345
+ type: integer
346
+ min: 0
347
+ max: 1000
348
+ depends_on: { watermark_mode: tiled }
349
+ description: |
350
+ Spacing between tiled labels in pixels. Defaults to font_size
351
+ when omitted. Only applies when watermark_mode is tiled.
352
+
353
+ anchor:
354
+ type: enum
355
+ values:
356
+ - top_left
357
+ - top_center
358
+ - top_right
359
+ - center_left
360
+ - center
361
+ - center_right
362
+ - bottom_left
363
+ - bottom_center
364
+ - bottom_right
365
+ default: bottom_right
366
+ description: |
367
+ 9-grid anchor position. For watermark_mode: single, the text
368
+ label is placed at this anchor + margin_x/margin_y offset.
369
+ For watermark_mode: tiled, anchor is ignored (tiles fill the
370
+ source image).
371
+
372
+ margin_x:
373
+ type: string
374
+ pattern: '^\d+(\.\d+)?(px|%)$'
375
+ default: "0px"
376
+ description: |
377
+ Horizontal offset from the anchor as pixels (e.g. "40px") or
378
+ percentage of base width (e.g. "5%"). Direction is
379
+ anchor-relative. Ignored when watermark_mode: tiled.
380
+
381
+ **`anchor: center` exception** (watermark_mode: single only).
382
+ Non-zero `margin_x` combined with `anchor: center` is rejected
383
+ by the API at workflow-create time as `invalid_options`
384
+ (HTTP 422). Not applicable to watermark_mode: tiled, where
385
+ anchor + margin are ignored entirely.
386
+
387
+ margin_y:
388
+ type: string
389
+ pattern: '^\d+(\.\d+)?(px|%)$'
390
+ default: "0px"
391
+ description: |
392
+ Vertical offset from the anchor as pixels or percentage of
393
+ base height. Ignored when watermark_mode: tiled.
394
+
395
+ **`anchor: center` exception** (watermark_mode: single only).
396
+ Same rejection rule as `margin_x` — non-zero `margin_y` with
397
+ `anchor: center` is rejected by the API at workflow-create
398
+ time as `invalid_options` (HTTP 422).
399
+
400
+ opacity:
401
+ type: float
402
+ min: 0.0
403
+ max: 1.0
404
+ default: 1.0
405
+ description: |
406
+ Text overlay opacity. Default 1.0 — the alpha channel of
407
+ `color` already encodes transparency, so opacity is usually
408
+ left at 1.0 and transparency is set via the color hex.
@@ -61,6 +61,76 @@ operation:
61
61
  default: 85
62
62
  depends_on: { format: [jpg, webp] }
63
63
  description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
64
+ background:
65
+ type: string
66
+ pattern: "^#[0-9a-fA-F]{6}$"
67
+ depends_on: { format: jpg }
68
+ description: >-
69
+ Background colour as a 6-digit hex (`#RRGGBB`, e.g. `#ffffff`) for a
70
+ transparent image (e.g. PNG/WebP with alpha) resized to an opaque JPG
71
+ thumbnail — the alpha-flatten fill colour. Mirrors
72
+ convert.image.background. HEX ONLY: a non-hex value (e.g. a CSS named
73
+ colour) is rejected rather than advertising an inert free-form string.
74
+ When omitted, transparency is flattened onto white. JPG output only:
75
+ PNG/WebP keep alpha, so the flatten (and this option) do not apply.
76
+
77
+ # SVG input (planned, UANjD38A). SVG is split into its own parallel mime_group
78
+ # (group-level `availability: planned`, which the API gates -> feature_not_available)
79
+ # rather than tagged inside the stable `image` group, because per-MIME planned is
80
+ # advisory/not enforced. SVG rasterises to a bitmap cleanly, so render->resize for
81
+ # thumbnail is feasible. Flip planned -> stable
82
+ # (or beta) once the worker proves svg-rasterise input. Shares the `image` group's
83
+ # option shape (FORMAT.md "Parallel groups").
84
+ image_svg:
85
+ availability: planned
86
+ mimes:
87
+ - image/svg+xml
88
+ max_output_pixels: 16000000
89
+ options:
90
+ # IMAGE input is a full resizer (Lanczos): width/height accept the
91
+ # worker's real 1-16384px range (area-capped above) — this op is the
92
+ # image-resize path, surfaced in the UI as "Resize", not only thumbnails.
93
+ width:
94
+ type: integer
95
+ min: 1
96
+ max: 16384
97
+ required: true
98
+ description: "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
99
+ height:
100
+ type: integer
101
+ min: 1
102
+ max: 16384
103
+ required: true
104
+ description: "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
105
+ fit:
106
+ type: enum
107
+ values: [max, crop, scale]
108
+ default: crop
109
+ description: "Resize mode"
110
+ format:
111
+ type: enum
112
+ values: [jpg, png, webp]
113
+ default: jpg
114
+ description: "Output format for the thumbnail"
115
+ quality:
116
+ type: integer
117
+ min: 1
118
+ max: 100
119
+ default: 85
120
+ depends_on: { format: [jpg, webp] }
121
+ description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
122
+ background:
123
+ type: string
124
+ pattern: "^#[0-9a-fA-F]{6}$"
125
+ depends_on: { format: jpg }
126
+ description: >-
127
+ Background colour as a 6-digit hex (`#RRGGBB`, e.g. `#ffffff`) for a
128
+ transparent image (e.g. PNG/WebP with alpha) resized to an opaque JPG
129
+ thumbnail — the alpha-flatten fill colour. Mirrors
130
+ convert.image.background. HEX ONLY: a non-hex value (e.g. a CSS named
131
+ colour) is rejected rather than advertising an inert free-form string.
132
+ When omitted, transparency is flattened onto white. JPG output only:
133
+ PNG/WebP keep alpha, so the flatten (and this option) do not apply.
64
134
 
65
135
  video:
66
136
  mimes:
@@ -104,13 +174,13 @@ operation:
104
174
  min: 1
105
175
  max: 16384
106
176
  required: true
107
- description: "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number by the worker."
177
+ description: "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number."
108
178
  height:
109
179
  type: integer
110
180
  min: 1
111
181
  max: 16384
112
182
  required: true
113
- description: "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number by the worker."
183
+ description: "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number."
114
184
  fit:
115
185
  type: enum
116
186
  values: [max, crop, scale]
@@ -157,7 +227,7 @@ operation:
157
227
  description: >-
158
228
  1-based index of the printed page to render, after print-layout
159
229
  pagination is applied. For office formats this is the page in the
160
- LibreOffice PDF export — NOT a 1:1 sheet/slide index: a spreadsheet
230
+ document's print layout — NOT a 1:1 sheet/slide index: a spreadsheet
161
231
  sheet may span multiple printed pages and multi-sheet workbooks
162
232
  paginate their sheets in order. For PDF inputs it is the PDF page
163
233
  number directly.
@@ -5,29 +5,25 @@ operation:
5
5
  availability: planned
6
6
  description: |
7
7
  Render a text overlay onto a base video using bundled Liberation
8
- Sans (SIL OFL) via FFmpeg's `drawtext` filter. Single-input — the
9
- text and its styling come from options, not from a file input.
10
- Per ADR-0013.
8
+ Sans (SIL OFL). Single-input — the text and its styling come from
9
+ options, not from a file input.
11
10
 
12
11
  **Dedicated operation, not an extension of `text_watermark`.**
13
- `text_watermark` renders onto images (single-pass Rust path);
14
- `video_text_watermark` renders per-frame via FFmpeg drawtext +
15
- re-encode (overlay = pixel modification, no stream-copy escape).
16
- Different runtime, different deploy unit.
12
+ `text_watermark` renders onto images (single-pass); per-frame video
13
+ text rendering requires a re-encode (overlay = pixel modification,
14
+ no stream-copy escape). Different runtime.
17
15
 
18
16
  **Audio passthrough.** The base video's audio stream is preserved
19
- unchanged via FFmpeg stream-copy — the watermark applies to the
20
- visual track only.
17
+ unchanged (stream-copied) — the watermark applies to the visual
18
+ track only.
21
19
 
22
20
  Two rendering modes (mirrors `text_watermark`):
23
21
  - `single`: one label rendered at the anchor + margin position.
24
22
  - `tiled`: text tiled across the source frames at the rotation
25
23
  angle.
26
24
 
27
- `availability: planned` until the cross-repo Lambda support ships;
28
- dispatch returns `feature_not_available` (422) until then. Per
29
- ADR-0013 + lambdas pre-launch epic Wave A (ticket
30
- [`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
25
+ `availability: planned` until the cross-repo backend support ships;
26
+ dispatch returns `feature_not_available` (422) until then.
31
27
  default: false
32
28
  input_model: single
33
29
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -5,37 +5,33 @@ operation:
5
5
  availability: beta
6
6
  description: |
7
7
  Apply an image overlay onto a base video
8
- asset using FFmpeg's `overlay` filter. Multi-input role-based:
8
+ asset. Multi-input role-based:
9
9
  exactly one input with `role: base` (the source video) + exactly
10
10
  one with `role: overlay` (the watermark image). Each input is a
11
- `MultiInputSource` — an external_import handle, a vault connection,
11
+ a multi-input source — an external_import handle, a vault connection,
12
12
  or an upstream `job_output` (uploads are NOT referenced directly
13
13
  inside inputs[]). To use an uploaded base or overlay, feed it through
14
14
  a `passthrough` source job and reference it via `{ type: job_output,
15
15
  from: <id> }` (per ticket 4som89Uh).
16
16
 
17
17
  **Dedicated operation, not an extension of `image_watermark`.**
18
- `image_watermark` is pure-Rust/no-FFmpeg and handles
19
- image-on-image overlay only. `video_watermark` requires FFmpeg's
20
- overlay filter + re-encode + a different deploy unit (no
21
- stream-copy escape — overlay = pixel modification). Per ADR-0013.
18
+ `image_watermark` handles image-on-image overlay only.
19
+ `video_watermark` requires an overlay + re-encode (no stream-copy escape — overlay = pixel modification).
22
20
 
23
21
  **Audio passthrough.** The base video's audio stream is preserved
24
- unchanged via FFmpeg stream-copy — the watermark applies to the
25
- visual track only.
22
+ unchanged (stream-copied) — the watermark applies to the visual
23
+ track only.
26
24
 
27
25
  Activated to `availability: beta` (Wave A, ticket
28
- [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the cross-repo Lambda
29
- backend is live (API accepts + publishes via the operations SNS
26
+ [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the cross-repo backend
27
+ is live (API accepts + publishes via the operations SNS
30
28
  topic), so the operation and its `short_form` processing class are
31
29
  shape-stable + opt-in and MUST NOT return `feature_not_available`.
32
- `long_form` stays `planned` (no live Fargate worker yet — its
33
- long-form path is not provisioned) and the `multi_overlay_stack`
34
- feature stays `planned` (Lambda support unconfirmed); requesting
35
- those planned sub-features DOES still return `feature_not_available`
36
- until they are separately activated. Per ADR-0013 + lambdas
37
- pre-launch epic Wave A (ticket
38
- [`SlluxMBN`'s sibling `4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
30
+ `long_form` stays `planned` (its long-form path is not yet
31
+ provisioned) and the `multi_overlay_stack` feature stays `planned`
32
+ (backend support unconfirmed); requesting those planned sub-features
33
+ DOES still return `feature_not_available` until they are separately
34
+ activated.
39
35
  default: false
40
36
  input_model: multi
41
37
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -55,10 +51,9 @@ operation:
55
51
  availability: planned
56
52
  description: |
57
53
  Allow up to 8 overlay inputs per job (currently capped at 1
58
- overlay). Per-overlay placement via JobInputV2.per_input_options.
59
- Lambda-side support not yet confirmed; tagged planned per
60
- ADR-0001 §1.4. Mirrors the same-named feature on
61
- `image_watermark`.
54
+ overlay). Per-overlay placement via per-input placement options.
55
+ Backend support not yet confirmed; tagged planned. Mirrors
56
+ the same-named feature on `image_watermark`.
62
57
 
63
58
  mime_groups:
64
59
  video:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.40.0",
3
+ "version": "0.42.0",
4
4
  "description": "Generated contract types for GISL (Give It Smaller)",
5
5
  "license": "MIT",
6
6
  "type": "module",