@giveitsmaller/contracts 0.69.0 → 0.72.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 (518) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +1 -1
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/asyncapi/events.yaml +124 -64
  5. package/availability/availability.json +8 -8
  6. package/code-builder/code-builder-metadata.json +31 -31
  7. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  8. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  9. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  10. package/dist/openapi/models/AccountLimits.js +1 -1
  11. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  12. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  13. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  14. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  19. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  20. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  21. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  22. package/dist/openapi/models/AuthErrorType.js +1 -1
  23. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  24. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  25. package/dist/openapi/models/AuthenticatedIdentity.d.ts +1 -1
  26. package/dist/openapi/models/AuthenticatedIdentity.js +1 -1
  27. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  28. package/dist/openapi/models/AvailabilityValue.js +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  30. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  32. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  33. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  34. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  35. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  36. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  37. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  38. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  39. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  40. package/dist/openapi/models/CallbackEventType.js +1 -1
  41. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +1 -1
  42. package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
  43. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
  44. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
  45. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  46. package/dist/openapi/models/CapabilityCondition.js +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  56. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  57. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  58. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  59. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  60. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  61. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  62. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  63. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  64. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  65. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  66. package/dist/openapi/models/CapabilityProduces.js +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  68. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  69. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  70. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  71. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  72. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  73. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  74. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  75. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  76. package/dist/openapi/models/CodegenSource.js +1 -1
  77. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  78. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  79. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  80. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  81. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  82. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  83. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  84. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  85. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  86. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  87. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  88. package/dist/openapi/models/CompositionPlan.js +1 -1
  89. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  90. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  91. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  92. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  93. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  94. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  95. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  96. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  97. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  98. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  99. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  100. package/dist/openapi/models/ConnectionSource.js +1 -1
  101. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  102. package/dist/openapi/models/ContactRequest.js +1 -1
  103. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  104. package/dist/openapi/models/ContactSubject.js +1 -1
  105. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  106. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  107. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  108. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  109. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  110. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  111. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  112. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  113. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  114. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  115. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  116. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  117. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  118. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  119. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  120. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  121. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  122. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  123. package/dist/openapi/models/CreditTransaction.d.ts +24 -11
  124. package/dist/openapi/models/CreditTransaction.js +1 -1
  125. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  126. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  127. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  128. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  129. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  130. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  131. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  132. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  133. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  134. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  135. package/dist/openapi/models/Delivery.d.ts +1 -1
  136. package/dist/openapi/models/Delivery.js +1 -1
  137. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  138. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  139. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  140. package/dist/openapi/models/DeliveryPlan.js +1 -1
  141. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  142. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  143. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  144. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  145. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  146. package/dist/openapi/models/DeliverySelection.js +1 -1
  147. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  148. package/dist/openapi/models/DownloadBundle.js +1 -1
  149. package/dist/openapi/models/DroppedOption.d.ts +1 -1
  150. package/dist/openapi/models/DroppedOption.js +1 -1
  151. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  152. package/dist/openapi/models/EmailNotify.js +1 -1
  153. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  154. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  155. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  156. package/dist/openapi/models/EndpointProjection.js +1 -1
  157. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
  158. package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
  159. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  160. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  161. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  162. package/dist/openapi/models/EstimateQuality.js +1 -1
  163. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  164. package/dist/openapi/models/EstimateRange.js +1 -1
  165. package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
  166. package/dist/openapi/models/ExportAccountData200Response.js +1 -1
  167. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
  168. package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
  169. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  170. package/dist/openapi/models/ExternalDestination.js +1 -1
  171. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  172. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  173. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  174. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  175. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  176. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  177. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  178. package/dist/openapi/models/ExternalImportToken.js +1 -1
  179. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  180. package/dist/openapi/models/ExternalSource.js +1 -1
  181. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  182. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  183. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  184. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  185. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  186. package/dist/openapi/models/FeatureViolation.js +1 -1
  187. package/dist/openapi/models/GetProfile200Response.d.ts +1 -1
  188. package/dist/openapi/models/GetProfile200Response.js +1 -1
  189. package/dist/openapi/models/GetProfile200ResponseData.d.ts +1 -1
  190. package/dist/openapi/models/GetProfile200ResponseData.js +1 -1
  191. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  192. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  193. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  194. package/dist/openapi/models/JobDefinition.js +1 -1
  195. package/dist/openapi/models/JobDownload.d.ts +1 -1
  196. package/dist/openapi/models/JobDownload.js +1 -1
  197. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  198. package/dist/openapi/models/JobInputV2.js +1 -1
  199. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  200. package/dist/openapi/models/JobMediaClass.js +1 -1
  201. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  202. package/dist/openapi/models/JobOutputSource.js +1 -1
  203. package/dist/openapi/models/JobResponse.d.ts +1 -1
  204. package/dist/openapi/models/JobResponse.js +1 -1
  205. package/dist/openapi/models/JobStatus.d.ts +1 -1
  206. package/dist/openapi/models/JobStatus.js +1 -1
  207. package/dist/openapi/models/JobType.d.ts +1 -1
  208. package/dist/openapi/models/JobType.js +1 -1
  209. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  210. package/dist/openapi/models/LivenessResponse.js +1 -1
  211. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  212. package/dist/openapi/models/LoginUser200Response.js +1 -1
  213. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  214. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  215. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  216. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  217. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  218. package/dist/openapi/models/LoginUser401Response.js +1 -1
  219. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  220. package/dist/openapi/models/LoginUserRequest.js +1 -1
  221. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  222. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  223. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  224. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  225. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  226. package/dist/openapi/models/MetadataResponse.js +1 -1
  227. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  228. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  229. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  230. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  231. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  232. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  233. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  234. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  235. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  236. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  237. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  238. package/dist/openapi/models/MultiInputSource.js +1 -1
  239. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  240. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  241. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  242. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  243. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  244. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  245. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  246. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  247. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  248. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  249. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  250. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  251. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  252. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  253. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  254. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  255. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  256. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  257. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  258. package/dist/openapi/models/MultipartPartListing.js +1 -1
  259. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  260. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  261. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  262. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  263. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  264. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  265. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  266. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  267. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  268. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  269. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  270. package/dist/openapi/models/NotifyConfig.js +1 -1
  271. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  272. package/dist/openapi/models/OperationCapability.js +1 -1
  273. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  274. package/dist/openapi/models/OperationDefinition.js +1 -1
  275. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  276. package/dist/openapi/models/OperationDownload.js +1 -1
  277. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  278. package/dist/openapi/models/OperationInputModel.js +1 -1
  279. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  280. package/dist/openapi/models/OperationResponse.js +1 -1
  281. package/dist/openapi/models/OperationResult.d.ts +1 -1
  282. package/dist/openapi/models/OperationResult.js +1 -1
  283. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  284. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  285. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  286. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  287. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  288. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  289. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  290. package/dist/openapi/models/OperationStatus.js +1 -1
  291. package/dist/openapi/models/OperationType.d.ts +4 -4
  292. package/dist/openapi/models/OperationType.js +4 -4
  293. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  294. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  295. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  296. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  297. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  298. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  299. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  300. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  301. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  302. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  303. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  304. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  305. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  306. package/dist/openapi/models/OptionSchema.js +1 -1
  307. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  308. package/dist/openapi/models/OutputProperties.js +1 -1
  309. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  310. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  311. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
  312. package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
  313. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  314. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  315. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  316. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  317. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  318. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  319. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  320. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  321. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  322. package/dist/openapi/models/ProcessingClass.js +1 -1
  323. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  324. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  325. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  326. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  327. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  328. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  329. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  330. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  331. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  332. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  333. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  334. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  335. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  336. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  337. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  338. package/dist/openapi/models/ProcessingPlan.js +1 -1
  339. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  340. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  341. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  342. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  343. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  344. package/dist/openapi/models/ReadinessResponse.js +1 -1
  345. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  346. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  347. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  348. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  349. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
  350. package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
  351. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
  352. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
  353. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
  354. package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
  355. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  356. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  357. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  358. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  359. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  360. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  361. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  362. package/dist/openapi/models/RetryResponse.js +1 -1
  363. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  364. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  365. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  366. package/dist/openapi/models/SseCompletionBase.js +1 -1
  367. package/dist/openapi/models/SseEventType.d.ts +1 -1
  368. package/dist/openapi/models/SseEventType.js +1 -1
  369. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  370. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  371. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  372. package/dist/openapi/models/SseJobFailedData.js +1 -1
  373. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  374. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  375. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  376. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  377. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  378. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  379. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  380. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  381. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  382. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  383. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  384. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  385. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  386. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  387. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  388. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  389. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  390. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  391. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  392. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  393. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  394. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  395. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  396. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  397. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  398. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  399. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  400. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  401. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  402. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  403. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  404. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  405. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  406. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  407. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  408. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  409. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  410. package/dist/openapi/models/UploadFile403Response.js +1 -1
  411. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  412. package/dist/openapi/models/UploadFile422Response.js +1 -1
  413. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  414. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  415. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  416. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  417. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  418. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  419. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  420. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  421. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  422. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  423. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  424. package/dist/openapi/models/UploadResponse.js +1 -1
  425. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  426. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  427. package/dist/openapi/models/UploadSource.d.ts +1 -1
  428. package/dist/openapi/models/UploadSource.js +1 -1
  429. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  430. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  431. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  432. package/dist/openapi/models/UploadThresholds.js +1 -1
  433. package/dist/openapi/models/UserTier.d.ts +1 -1
  434. package/dist/openapi/models/UserTier.js +1 -1
  435. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  436. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  437. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  438. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  439. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  440. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  441. package/dist/openapi/models/WarningType.d.ts +1 -1
  442. package/dist/openapi/models/WarningType.js +1 -1
  443. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  444. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  445. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  446. package/dist/openapi/models/WebhookPayload.js +1 -1
  447. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  448. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  449. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  450. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  451. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  452. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  453. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  454. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  455. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  456. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  457. package/dist/openapi/models/WorkflowCreateRequest.d.ts +17 -1
  458. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  459. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  460. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  461. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  462. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  463. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  464. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  465. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  466. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  467. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  468. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  469. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  470. package/dist/openapi/models/WorkflowEdge.js +1 -1
  471. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  472. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  473. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  474. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  475. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  476. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  477. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  478. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  479. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  480. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  481. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  482. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  483. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  484. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  485. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  486. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  487. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  488. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  489. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  490. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  491. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  492. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  493. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  494. package/dist/openapi/models/WorkflowSource.js +1 -1
  495. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  496. package/dist/openapi/models/WorkflowStatus.js +1 -1
  497. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  498. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  499. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  500. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  501. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  502. package/dist/openapi/models/WorkflowSummary.js +1 -1
  503. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  504. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  505. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  506. package/dist/openapi/models/WorkflowWarning.js +1 -1
  507. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  508. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  509. package/dist/openapi/runtime.d.ts +1 -1
  510. package/dist/openapi/runtime.js +1 -1
  511. package/dist/operations/audio_to_video.metadata.js +1 -1
  512. package/dist/operations/video_watermark.metadata.js +2 -2
  513. package/openapi/api.yaml +86 -21
  514. package/operation-capabilities/operation-capabilities.json +3 -3
  515. package/operations/schemas/audio_to_video.yaml +25 -5
  516. package/operations/schemas/video_text_watermark.yaml +15 -2
  517. package/operations/schemas/video_watermark.yaml +19 -12
  518. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
  * GISL Compression API
3
3
  * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
4
4
  *
5
- * The version of the OpenAPI document: 2.199.0
5
+ * The version of the OpenAPI document: 2.203.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * GISL Compression API
5
5
  * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
6
6
  *
7
- * The version of the OpenAPI document: 2.199.0
7
+ * The version of the OpenAPI document: 2.203.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * GISL Compression API
3
3
  * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
4
4
  *
5
- * The version of the OpenAPI document: 2.199.0
5
+ * The version of the OpenAPI document: 2.203.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * GISL Compression API
5
5
  * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
6
6
  *
7
- * The version of the OpenAPI document: 2.199.0
7
+ * The version of the OpenAPI document: 2.203.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1,6 +1,6 @@
1
1
  // Auto-generated from audio_to_video.yaml -- do not edit
2
2
  export const audioToVideoMetadata = {
3
- availability: 'beta',
3
+ availability: 'planned',
4
4
  features: {},
5
5
  mime_groups: {
6
6
  audio: {
@@ -1,6 +1,6 @@
1
1
  // Auto-generated from video_watermark.yaml -- do not edit
2
2
  export const videoWatermarkMetadata = {
3
- availability: 'beta',
3
+ availability: 'planned',
4
4
  features: {
5
5
  multi_overlay_stack: {
6
6
  availability: 'planned',
@@ -11,7 +11,7 @@ export const videoWatermarkMetadata = {
11
11
  video: {
12
12
  processing_class: {
13
13
  short_form: {
14
- availability: 'beta',
14
+ availability: 'planned',
15
15
  constraints: {
16
16
  max_input_duration: 'PT5M',
17
17
  max_input_size_bytes: 524288000,
package/openapi/api.yaml CHANGED
@@ -89,7 +89,7 @@ info:
89
89
  of truth instead of hardcoding magic numbers. A runtime
90
90
  `GET /api/uploads/limits` endpoint for dynamic discovery
91
91
  (per-tier / per-environment overrides) is a deferred follow-up.
92
- version: 2.199.0
92
+ version: 2.203.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -6289,10 +6289,25 @@ paths:
6289
6289
 
6290
6290
  **How to observe the grant:** poll `GET /api/v2/credits/usage`
6291
6291
  for a transaction whose `reference_id` equals the `session_id`
6292
- returned here. That is the only client-observable correlation
6293
- between a checkout and its credits. ⚠️ See
6294
- `CreditTransaction.reference_id` — **the pack-purchase path does
6295
- not populate it yet**, so today there is nothing to match on.
6292
+ returned here, and whose `reference_type` is
6293
+ `stripe_checkout_session`. That is the only client-observable
6294
+ correlation between a checkout and its credits.
6295
+
6296
+ 🔴 **MATCH ON `reference_type` + `reference_id`, AND DO NOT
6297
+ FILTER ON `type`.** The pack grant is written as an
6298
+ **`adjustment`** row, not a `top_up` — a client filtering for
6299
+ `type: top_up` finds nothing however long it polls. `type` is a
6300
+ free-form string here, and the pack path's value is the one
6301
+ named in this sentence.
6302
+
6303
+ ⚠️ **This block previously said the pack path did not populate
6304
+ `reference_id` "yet".** It does. That sentence told a client the
6305
+ correlation was unavailable, so a client believing it built no
6306
+ correlation at all and fell back to guessing from timing or from
6307
+ description text — **the exact ambiguity the field exists to
6308
+ remove.** A stale "not yet" retires a capability that shipped,
6309
+ and this direction of staleness is invisible: nothing fails, the
6310
+ client simply never asks.
6296
6311
 
6297
6312
  ⛔ **NO TIMING IS STATED, DELIBERATELY.** The interval is
6298
6313
  dominated by the provider's callback delivery latency, which
@@ -8114,27 +8129,40 @@ components:
8114
8129
  non-UUID identifiers and this is NOT constrained to
8115
8130
  `UuidV7`.
8116
8131
 
8117
- 🔴 **FOR A `top_up` FROM CHECKOUT THIS IS THE CHECKOUT
8132
+ 🔴 **FOR A CREDIT-PACK PURCHASE THIS IS THE CHECKOUT
8118
8133
  SESSION ID (`cs_...`) — THE IDENTIFIER THE CLIENT ACTUALLY
8119
- HOLDS.** It is returned as
8134
+ HOLDS**, paired with a `reference_type` of
8135
+ `stripe_checkout_session`. It is returned as
8120
8136
  `BillingCheckoutSession.session_id` when the session is
8121
8137
  created, and it is the handle that makes the asynchronous
8122
8138
  credit grant observable. See `POST /api/billing/checkout`.
8123
8139
 
8140
+ 🔴 **THE ROW IS AN `adjustment`, NOT A `top_up`.** Filter on
8141
+ `reference_type` — not on `type` — or the poll described on
8142
+ checkout matches nothing.
8143
+
8144
+ ⚠️ **Populated only when the provider callback carries a
8145
+ session id.** It is written straight from that callback, so
8146
+ a callback without one leaves both `reference_type` and
8147
+ `reference_id` `null` rather than inventing a correlator.
8148
+ Treat absence as "not correlatable", never as "not granted".
8149
+
8124
8150
  ⚠️ **This description previously named a Stripe PAYMENT
8125
8151
  INTENT id.** A client never receives one — checkout returns
8126
8152
  `checkout_url` and `session_id` and nothing else — so the
8127
8153
  only correlator this contract named was one the caller
8128
8154
  could not obtain.
8129
8155
 
8130
- 🔴 **NOT YET POPULATED ON THE PACK-PURCHASE PATH.**
8131
- `compression_api` measured 2026-08-28: the pack grant writes
8132
- a free-text description naming the SKU and leaves
8133
- `reference_type` / `reference_id` empty, so **two purchases
8134
- of the same pack are indistinguishable**. Reservations do
8135
- populate them. Until the session id is wired through, a
8136
- `top_up` row carries no correlator and the polling strategy
8137
- described on checkout has nothing to match on.
8156
+ ⚠️ **AND IT THEN SAID THE PACK PATH LEFT THIS FIELD EMPTY
8157
+ "until the session id is wired through".** It is wired:
8158
+ measured on `compression_api` `origin/main` (`8c136261`),
8159
+ `CheckoutSessionCompletedHandler::fulfillPack` passes
8160
+ `referenceType: 'stripe_checkout_session'` and
8161
+ `referenceId: $sessionId`. Both values reach the wire
8162
+ through `GetCreditUsageQueryHandler`. **A stale "not yet"
8163
+ retires a shipped capability and nothing detects it** — the
8164
+ claim reads as caution, and a client that believes it stops
8165
+ looking.
8138
8166
  created_at:
8139
8167
  type: string
8140
8168
  format: date-time
@@ -9689,9 +9717,9 @@ components:
9689
9717
  - custom_luma: Apply a caller-uploaded luma matte to a base video for a custom luma-matte transition effect. Multi-input (`role: base` + `role: transition_mask`). `availability: planned` + `required_tier: pro`; dispatch returns `feature_not_available` (422) until Lambda ships. Distinct from FFmpeg `xfade=custom` (which is an expression, not an operation). Per ticket I29 (Trello EPUE5Vs1).
9690
9718
  - audio_overlay: Mix a secondary audio asset over a primary audio or video base (DJ tags, podcast intros/outros, station IDs, jingles). Multi-input (`role: base` + `role: overlay`). `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. **NOT** the same as `audio_watermark` — that operation is steganographic (imperceptible identifier embedded for ownership tracking), tracked separately by I20. Per ticket I19 (Trello Xr3Z4GBF).
9691
9719
  - audio_watermark: Embed a steganographic forensic watermark into an audio asset (or a video's audio track) — Cinavia / Resemble PerTh territory. Single-input. `availability: planned` + `required_tier: enterprise`; dispatch returns `feature_not_available` (422) until Lambda ships. Pairs with `POST /api/audio-watermark/decode` for own-watermarks-only extraction. Per ticket I20 (Trello omiCq7Vn).
9692
- - audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT return `feature_not_available`; may change with notice). Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) + ADR-0015 (introduces `per_role_cardinality` vocab).
9693
- - video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT 422; `short_form` is beta, `long_form` stays `planned` — no live Fargate worker; `multi_overlay_stack` stays `planned`). Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
9694
- - video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
9720
+ - audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability: planned` — WITHDRAWN 2026-09-15: measured 0.300 s of encode per second of output PLUS A 7 s FIXED COST, so the advertised PT2H needs 2167 s against a 900 s platform maximum (0.300 x 7200 alone is 2160 — the intercept is what makes the figure 2167, and a consumer dividing 600 by 0.300 gets a 2000 s in-flight boundary where the real one is 1976 s). Returns `feature_not_available` (422) at workflow-create. An already-accepted workflow is not cancelled (availability is checked at create) and fails only when its output duration exceeds ~1976 s ON THE INPUT THE RATE WAS MEASURED WITH (a real photographic 1080p still plus looped real audio), where 0.300 s per second plus a 7 s fixed cost reaches the worker's 600 s cap — the 60 s and 120 s measured cells both COMPLETED. The driver is the STILL'S RESOLUTION, not duration alone: a 4K still is roughly 4x the rate (unmeasured), which would put the boundary near a quarter of that, and this schema places no constraint on the overlay's resolution. Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) + ADR-0015 (introduces `per_role_cardinality` vocab).
9721
+ - video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability: planned` — WITHDRAWN 2026-09-15, operation AND `short_form`: a real 1080p source at the advertised PT5M / 500 MB was killed at 606 s by the worker's 600 s encode cap, no output. Returns `feature_not_available` (422) at workflow-create; an already-accepted workflow is not cancelled and fails only if it exceeds that cap; the 606 s kill is ONE measured point and nothing measured says where the boundary is. `long_form` and `multi_overlay_stack` were already `planned`. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
9722
+ - video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned` — WITHDRAWN 2026-09-15, operation AND `short_form`: a real 1080p source at the advertised PT5M was killed at 604 s by the worker's 600 s encode cap. Returns `feature_not_available` (422) at workflow-create. ⚠️ This entry previously read "until Lambda ships", which was wrong in a way that mattered: the worker SHIPPED and runs — it is the CEILING that cannot be served. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
9695
9723
  - split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` and `video` mime_groups (workers live on staging — shape-stable + opt-in, MUST NOT 422); video activates BOTH classes (`video.processing_class.short_form: beta` AND `long_form: beta` — `split-video-fargate` deployed + wired on staging but NOT yet proven end-to-end per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path soak has not completed, the 4GB+ speed-up is unmeasured, and the long-form fan-out is flag-gated dark). The `image_gif` and `document_pdf` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
9696
9724
  - passthrough: Inert lossless source operation. A single-input source job whose SOLE operation is `passthrough` emits its source bytes UNCHANGED — no compression, no Lambda. The API self-completes the job at publish (terminal output = the upload `{bucket, key}` unchanged). Its purpose is to feed an uploaded file into a multi-input operation LOSSLESSLY: because `JobInputV2.source` is narrowed to exclude upload-direct, an upload that must enter a `merge` / `archive` / `image_watermark` op enters via a `passthrough` source job referenced downstream by `{type: job_output, from: <id>}` — preserving billing / DAG / lineage. Distinct from `operations: []` (which keeps its implicit-compress meaning on a single-input upload job); `passthrough` is the EXPLICIT lossless path via the "non-empty `operations[]` without `compress` = compression opt-out" rule. Media-agnostic; no options. `availability: beta` — activated (the inputs[]-narrowing + passthrough self-complete mechanism is deployed API-side); workflow-create accepts `passthrough` source jobs and MUST NOT return `feature_not_available`. **Never published to SNS** — deliberately absent from the AsyncAPI routing enums (API self-completes; no `ops-passthrough` queue). Per ticket [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta flip).
9697
9725
 
@@ -10580,6 +10608,22 @@ components:
10580
10608
  The two forms are mutually exclusive (a request supplies exactly
10581
10609
  one — enforced by the `oneOf` below); they are NOT combined.
10582
10610
 
10611
+ 🔴 **THE FLAT FORM IS `planned`, AND THE SERVER DOES NOT ACCEPT IT
10612
+ YET.** Send `jobs[]`. A flat request is rejected today, and the
10613
+ rejection is currently a generic *"At least one job is required"*
10614
+ rather than the `feature_not_available` (422) envelope this contract
10615
+ requires for a `planned` shape — tracked against `compression_api`,
10616
+ so do not read that generic message as a validation error in your
10617
+ own payload.
10618
+
10619
+ ⚠️ **The equivalence stated above is the DESIGN, not observed
10620
+ behaviour.** It describes what the server will do once the lowering
10621
+ ships. It carried no availability marker from v2.64.0 until
10622
+ 2026-09-10, which per ADR-0001 §1.4 meant it read as `stable` — a GA
10623
+ claim about a shape nothing accepts. Neither shipped SDK ever emitted
10624
+ it: the TypeScript and PHP builders both always send `jobs[]`, so the
10625
+ exposure was a hand-built payload and this document's own claim.
10626
+
10583
10627
  Because the flat form lowers to ONE single-input job, its
10584
10628
  `operations[]` admits only **single-input** operation types. The
10585
10629
  multi-input / role operations (`merge`, `archive`,
@@ -10595,12 +10639,31 @@ components:
10595
10639
  otherwise behave exactly as for one explicit job.
10596
10640
  oneOf:
10597
10641
  - title: Explicit jobs form
10642
+ # Stated rather than defaulted. This IS the served form, so `stable` is
10643
+ # the value it would have inherited anyway — and that is exactly why it
10644
+ # is written down: an unmarked branch and a deliberately-stable branch
10645
+ # are indistinguishable on the page, which is how the flat form below
10646
+ # spent three months claiming GA. Every form answers for itself.
10647
+ x-availability: stable
10598
10648
  required: [jobs]
10599
10649
  not:
10600
10650
  anyOf:
10601
10651
  - required: [source]
10602
10652
  - required: [operations]
10603
10653
  - title: Flat single-job form
10654
+ # 🔴 PLANNED — DECLARED, NOT SERVED. The server rejects this form
10655
+ # today (`compression_api` 2.198.0 answers "At least one job is
10656
+ # required"), so the equivalence stated in the description above is a
10657
+ # DESIGN, not a behaviour. Hub ruling 2026-09-10, decision 192.
10658
+ #
10659
+ # ⚠️ It carried NO availability marker from v2.64.0 until now, which
10660
+ # per ADR-0001 §1.4 means it defaulted to `stable` — the contract made
10661
+ # a GA claim about a shape nothing accepts, for three months.
10662
+ # `planned` is the honest value and the reason it is not simply
10663
+ # deleted: the thin-alias design was ratified and codex-reviewed
10664
+ # (`D0Gsri8V`), and deleting it would throw the design away to make a
10665
+ # document true.
10666
+ x-availability: planned
10604
10667
  required: [source, operations]
10605
10668
  not:
10606
10669
  anyOf:
@@ -10887,9 +10950,11 @@ components:
10887
10950
  planned` so workflow-create returns 422 until Lambda
10888
10951
  ships), `audio_overlay` (joined via ticket
10889
10952
  [I19](https://trello.com/c/Xr3Z4GBF) — same `planned`
10890
- gating), and `audio_to_video` + `video_watermark` (joined
10891
- via Wave A [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
10892
- `availability: beta`, backends live). The multi-input
10953
+ gating), and `audio_to_video` + `video_watermark`
10954
+ (WITHDRAWN 2026-09-15 — `availability: planned`; the backends
10955
+ are live but cannot serve the advertised ceilings, so
10956
+ workflow-create returns `feature_not_available` 422). The
10957
+ multi-input
10893
10958
  shape is contract-defined for all entries.
10894
10959
  - if:
10895
10960
  properties:
@@ -51,7 +51,7 @@
51
51
  "accepts": [
52
52
  "audio"
53
53
  ],
54
- "availability": "beta",
54
+ "availability": "planned",
55
55
  "input": {
56
56
  "max": 2,
57
57
  "min": 1,
@@ -638,7 +638,7 @@
638
638
  "accepts": [
639
639
  "video"
640
640
  ],
641
- "availability": "beta",
641
+ "availability": "planned",
642
642
  "input": {
643
643
  "max": 2,
644
644
  "min": 2,
@@ -732,5 +732,5 @@
732
732
  "isAnimated": "maybe"
733
733
  }
734
734
  },
735
- "schema_version": "2.199.0"
735
+ "schema_version": "2.203.0"
736
736
  }
@@ -2,7 +2,7 @@ schema_version: "2.0.0"
2
2
 
3
3
  operation:
4
4
  type: audio_to_video
5
- availability: beta
5
+ availability: planned
6
6
  description: |
7
7
  Produce a video from an audio input plus an OPTIONAL still image
8
8
  overlay. Use cases: podcast → YouTube uploads, audio-only tracks
@@ -26,10 +26,30 @@ operation:
26
26
  A lower framerate plus still-image tuning keeps file size tiny
27
27
  when the overlay is a still image (the common case).
28
28
 
29
- Activated to `availability: beta`: the backend is live (API
30
- accepts + publishes), so this is shape-stable + opt-in for callers
31
- and MUST NOT return `feature_not_available` — it may still change
32
- with notice while beta.
29
+ `availability: planned` — withdrawn 2026-09-15. Measured encode cost is
30
+ 0.300 s per second of output PLUS A 7 s FIXED COST, so the advertised PT2H
31
+ needs 2167 s against a 900 s platform maximum. ⚠️ The 7 s is not a rounding
32
+ detail: 0.300 x 7200 alone is 2160, and a consumer dividing 600 by 0.300
33
+ derives a 2000 s in-flight boundary where the real one is ~1976 s. Workflow-create returns `feature_not_available` (422).
34
+
35
+ ⚠️ An already-accepted workflow is NOT cancelled — availability is checked at
36
+ create — and it is NOT thereby doomed. ⛔ DO NOT READ THIS AS "in-flight work
37
+ fails": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH
38
+ OUTPUT, which is precisely why the evidence is arithmetic rather than a kill.
39
+ What fails is an accepted workflow whose OUTPUT DURATION exceeds ~1976 s
40
+ ⚠️ ON THE INPUT THE RATE WAS MEASURED WITH — a real photographic 1080p STILL
41
+ plus looped real audio — the point at which 0.300 s/s plus the 7 s fixed cost
42
+ reaches the 600 s cap. ⛔ THE DRIVER IS THE STILL'S RESOLUTION, NOT THE
43
+ DURATION ALONE: a 4K still is roughly 4x the rate (recorded as UNMEASURED),
44
+ which would put the boundary near a quarter of that figure, and this schema
45
+ places NO constraint on the overlay's resolution. Other still resolutions and
46
+ other output settings are likewise unmeasured, and the contract does not
47
+ claim which direction they move —
48
+ and what the caller then sees is NOT SETTLED — see the CHANGELOG entry for
49
+ 2.203.0; this contract does not pin a worker's error classification. Measured figures and the conditions for re-listing are in the
50
+ CHANGELOG entry for 2.203.0 — the only one of the two records that is
51
+ PUBLISHED (`schemas/manifest-divergence-register.yaml` is working material
52
+ for the drift gate and is not in the npm tarball).
33
53
 
34
54
  default: false
35
55
  input_model: multi
@@ -22,8 +22,21 @@ operation:
22
22
  - `tiled`: text tiled across the source frames at the rotation
23
23
  angle.
24
24
 
25
- `availability: planned` until the cross-repo backend support ships;
26
- dispatch returns `feature_not_available` (422) until then.
25
+ `availability: planned` — withdrawn 2026-09-15. A real 1080p source at the
26
+ advertised PT5M could not finish inside the worker's 600 s encode cap.
27
+ Workflow-create returns `feature_not_available` (422).
28
+
29
+ ⚠️ An already-accepted workflow is NOT cancelled — availability is checked at
30
+ create — and it is NOT thereby doomed. ⛔ The withdrawal rests on ONE measured
31
+ point: a 435 MB / 300 s real 1080p source KILLED at 604 s with no output.
32
+ Work far enough inside the 600 s cap still completes, and NOTHING MEASURED
33
+ SAYS WHERE THE BOUNDARY IS. What a caller sees when a job crosses it is NOT
34
+ SETTLED — see the CHANGELOG entry for 2.203.0; this contract does not pin
35
+ a worker's error classification. Measured figures and the conditions for re-listing are in the
36
+ CHANGELOG entry for 2.203.0 — the only one of the two records that is
37
+ PUBLISHED (`schemas/manifest-divergence-register.yaml` is working material
38
+ for the drift gate and is not in the npm tarball).
39
+
27
40
  default: false
28
41
  input_model: single
29
42
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -2,7 +2,7 @@ schema_version: "2.0.0"
2
2
 
3
3
  operation:
4
4
  type: video_watermark
5
- availability: beta
5
+ availability: planned
6
6
  description: |
7
7
  Apply an image overlay onto a base video
8
8
  asset. Multi-input role-based:
@@ -22,16 +22,23 @@ operation:
22
22
  unchanged (stream-copied) — the watermark applies to the visual
23
23
  track only.
24
24
 
25
- Activated to `availability: beta` (Wave A, ticket
26
- [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the cross-repo backend
27
- is live (API accepts + publishes via the operations SNS
28
- topic), so the operation and its `short_form` processing class are
29
- shape-stable + opt-in and MUST NOT return `feature_not_available`.
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.
25
+ `availability: planned` — withdrawn 2026-09-15. A real 1080p source at the
26
+ advertised PT5M / 500 MB could not finish inside the worker's 600 s encode
27
+ cap. Workflow-create returns `feature_not_available` (422).
28
+
29
+ ⚠️ An already-accepted workflow is NOT cancelled — availability is checked at
30
+ create — and it is NOT thereby doomed. ⛔ The withdrawal rests on ONE measured
31
+ point: the same source plus a PNG overlay, KILLED at 606 s with no output, on
32
+ 3008 MB — 47% more memory than `video_text_watermark` and dead at the same
33
+ second, which is what rules out resizing the function as the remedy. Work far
34
+ enough inside the 600 s cap still completes, and NOTHING MEASURED SAYS WHERE
35
+ THE BOUNDARY IS. What a caller sees when a job crosses it is NOT
36
+ SETTLED — see the CHANGELOG entry for 2.203.0; this contract does not pin
37
+ a worker's error classification. Measured figures and the conditions for re-listing are in the
38
+ CHANGELOG entry for 2.203.0 — the only one of the two records that is
39
+ PUBLISHED (`schemas/manifest-divergence-register.yaml` is working material
40
+ for the drift gate and is not in the npm tarball).
41
+
35
42
  default: false
36
43
  input_model: multi
37
44
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -62,7 +69,7 @@ operation:
62
69
  - video/webm
63
70
  processing_class:
64
71
  short_form:
65
- availability: beta
72
+ availability: planned
66
73
  constraints:
67
74
  max_input_duration: "PT5M"
68
75
  max_input_size_bytes: 524288000
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.69.0",
4
- "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.199.0.",
5
- "gislContractsSpec": "v2.199.0",
3
+ "version": "0.72.0",
4
+ "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.203.0.",
5
+ "gislContractsSpec": "v2.203.0",
6
6
  "license": "Apache-2.0",
7
7
  "homepage": "https://docs.giveitsmaller.com",
8
8
  "bugs": {