@giveitsmaller/contracts 0.19.0 → 0.21.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 (413) hide show
  1. package/asyncapi/events.yaml +48 -8
  2. package/availability/availability.json +37 -29
  3. package/dist/asyncapi/Failure.d.ts +1 -0
  4. package/dist/asyncapi/MultiOutputCompletion.d.ts +1 -0
  5. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  6. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  7. package/dist/asyncapi/SingleOutputCompletion.d.ts +1 -0
  8. package/dist/asyncapi/Unindexed.d.ts +1 -0
  9. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  10. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  11. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  12. package/dist/openapi/models/AccountLimits.js +1 -1
  13. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  14. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  15. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  16. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  19. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  20. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  21. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  22. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  23. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  24. package/dist/openapi/models/AuthErrorType.js +1 -1
  25. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  26. package/dist/openapi/models/AuthRejectionEnvelope.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/CallbackEventType.d.ts +1 -1
  34. package/dist/openapi/models/CallbackEventType.js +1 -1
  35. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  36. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  37. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  38. package/dist/openapi/models/CompositionPlan.js +1 -1
  39. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  40. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  41. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  42. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  43. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  44. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  45. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  46. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  47. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  48. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  49. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  50. package/dist/openapi/models/ConnectionSource.js +1 -1
  51. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  52. package/dist/openapi/models/ContactRequest.js +1 -1
  53. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  54. package/dist/openapi/models/ContactSubject.js +1 -1
  55. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  56. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  57. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  58. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  59. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  60. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  61. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  62. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  63. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  64. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  65. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  66. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  67. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  68. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  69. package/dist/openapi/models/CreditTransaction.d.ts +47 -1
  70. package/dist/openapi/models/CreditTransaction.js +11 -1
  71. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  72. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  73. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  74. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  75. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  76. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  77. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  78. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  79. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  80. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  81. package/dist/openapi/models/Delivery.d.ts +1 -1
  82. package/dist/openapi/models/Delivery.js +1 -1
  83. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  84. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  85. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  86. package/dist/openapi/models/DeliveryPlan.js +1 -1
  87. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  88. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  89. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  90. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  91. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  92. package/dist/openapi/models/DeliverySelection.js +1 -1
  93. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  94. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  95. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  96. package/dist/openapi/models/EndpointProjection.js +1 -1
  97. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  98. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  99. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  100. package/dist/openapi/models/EstimateQuality.js +1 -1
  101. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  102. package/dist/openapi/models/EstimateRange.js +1 -1
  103. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  104. package/dist/openapi/models/ExternalDestination.js +1 -1
  105. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  106. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  107. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  108. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  109. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  110. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  111. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  112. package/dist/openapi/models/ExternalImportToken.js +1 -1
  113. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  114. package/dist/openapi/models/ExternalSource.js +1 -1
  115. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  116. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  117. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  118. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  119. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  120. package/dist/openapi/models/FeatureViolation.js +1 -1
  121. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  122. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  123. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  124. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  125. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  126. package/dist/openapi/models/JobDefinition.js +1 -1
  127. package/dist/openapi/models/JobDownload.d.ts +1 -1
  128. package/dist/openapi/models/JobDownload.js +1 -1
  129. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  130. package/dist/openapi/models/JobInputV2.js +1 -1
  131. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  132. package/dist/openapi/models/JobMediaClass.js +1 -1
  133. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  134. package/dist/openapi/models/JobOutputSource.js +1 -1
  135. package/dist/openapi/models/JobResponse.d.ts +1 -1
  136. package/dist/openapi/models/JobResponse.js +1 -1
  137. package/dist/openapi/models/JobStatus.d.ts +1 -1
  138. package/dist/openapi/models/JobStatus.js +1 -1
  139. package/dist/openapi/models/JobType.d.ts +1 -1
  140. package/dist/openapi/models/JobType.js +1 -1
  141. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  142. package/dist/openapi/models/LivenessResponse.js +1 -1
  143. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  144. package/dist/openapi/models/LoginUser200Response.js +1 -1
  145. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  146. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  147. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  148. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  149. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  150. package/dist/openapi/models/LoginUserRequest.js +1 -1
  151. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  152. package/dist/openapi/models/MetadataResponse.js +1 -1
  153. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  154. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  155. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  156. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  157. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  158. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  159. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  160. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  161. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  162. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  163. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  164. package/dist/openapi/models/MultiInputSource.js +1 -1
  165. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  166. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  167. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  168. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  169. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  170. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  171. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  172. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  173. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  174. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  175. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  176. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  177. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  178. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  179. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  180. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  181. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  182. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  183. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  184. package/dist/openapi/models/MultipartPartListing.js +1 -1
  185. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  186. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  187. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  188. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  189. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  190. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  191. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  192. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  193. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  194. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  195. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  196. package/dist/openapi/models/OperationDefinition.js +1 -1
  197. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  198. package/dist/openapi/models/OperationDownload.js +1 -1
  199. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  200. package/dist/openapi/models/OperationInputModel.js +1 -1
  201. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  202. package/dist/openapi/models/OperationResponse.js +1 -1
  203. package/dist/openapi/models/OperationResult.d.ts +1 -1
  204. package/dist/openapi/models/OperationResult.js +1 -1
  205. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  206. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  207. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  208. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  209. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  210. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  211. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  212. package/dist/openapi/models/OperationStatus.js +1 -1
  213. package/dist/openapi/models/OperationType.d.ts +1 -1
  214. package/dist/openapi/models/OperationType.js +1 -1
  215. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  216. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  224. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  225. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  226. package/dist/openapi/models/OptionSchema.js +1 -1
  227. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  228. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  229. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  230. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  231. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  232. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  233. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  234. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  235. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  236. package/dist/openapi/models/ProcessingClass.js +1 -1
  237. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  238. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  239. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  240. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  241. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  242. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  243. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  244. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  245. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  246. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  247. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  248. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  249. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  250. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  251. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  252. package/dist/openapi/models/ProcessingPlan.js +1 -1
  253. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  254. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  255. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  256. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  257. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  258. package/dist/openapi/models/ReadinessResponse.js +1 -1
  259. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  260. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  261. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  262. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  263. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  264. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  265. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  266. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  267. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  268. package/dist/openapi/models/RetryResponse.js +1 -1
  269. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  270. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  271. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  272. package/dist/openapi/models/SseCompletionBase.js +1 -1
  273. package/dist/openapi/models/SseEventType.d.ts +1 -1
  274. package/dist/openapi/models/SseEventType.js +1 -1
  275. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  276. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  277. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  278. package/dist/openapi/models/SseJobFailedData.js +1 -1
  279. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  280. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  281. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  282. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  283. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  284. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  285. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  286. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  287. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  288. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  289. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  290. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  291. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  292. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  293. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  294. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  295. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  296. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  297. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  298. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  299. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  300. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  301. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  302. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  303. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  304. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  305. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  306. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  307. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  308. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  309. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  310. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  311. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  312. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  313. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  314. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  315. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  316. package/dist/openapi/models/UploadFile403Response.js +1 -1
  317. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  318. package/dist/openapi/models/UploadFile422Response.js +1 -1
  319. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  320. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  321. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  322. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  323. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  324. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  325. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  326. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  327. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  328. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  329. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  330. package/dist/openapi/models/UploadResponse.js +1 -1
  331. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  332. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  333. package/dist/openapi/models/UploadSource.d.ts +1 -1
  334. package/dist/openapi/models/UploadSource.js +1 -1
  335. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  336. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  337. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  338. package/dist/openapi/models/UploadThresholds.js +1 -1
  339. package/dist/openapi/models/UserTier.d.ts +1 -1
  340. package/dist/openapi/models/UserTier.js +1 -1
  341. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  342. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  343. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  344. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  345. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  346. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  347. package/dist/openapi/models/WarningType.d.ts +1 -1
  348. package/dist/openapi/models/WarningType.js +1 -1
  349. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  350. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  351. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  352. package/dist/openapi/models/WebhookPayload.js +1 -1
  353. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  354. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  355. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  356. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  357. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  358. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  359. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  360. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  361. package/dist/openapi/models/WorkflowCreateResponse.d.ts +20 -2
  362. package/dist/openapi/models/WorkflowCreateResponse.js +2 -1
  363. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  364. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  365. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  366. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  367. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  368. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  369. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  370. package/dist/openapi/models/WorkflowEdge.js +1 -1
  371. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  372. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  373. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  374. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  375. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  376. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  377. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  378. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  379. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  380. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  381. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  382. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  383. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  384. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  385. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  386. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  387. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  388. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  389. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  390. package/dist/openapi/models/WorkflowSource.js +1 -1
  391. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  392. package/dist/openapi/models/WorkflowStatus.js +1 -1
  393. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  394. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  395. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  396. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  397. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  398. package/dist/openapi/models/WorkflowSummary.js +1 -1
  399. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  400. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  401. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  402. package/dist/openapi/models/WorkflowWarning.js +1 -1
  403. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  404. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  405. package/dist/openapi/runtime.d.ts +1 -1
  406. package/dist/openapi/runtime.js +1 -1
  407. package/dist/operations/compress.d.ts +7 -0
  408. package/dist/operations/compress.js +7 -0
  409. package/dist/operations/compress.metadata.js +20 -21
  410. package/openapi/api.yaml +107 -1
  411. package/operations/schemas/compress.yaml +104 -51
  412. package/operations/schemas/convert.yaml +1 -1
  413. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.0.0
2
2
  info:
3
3
  title: GISL Compression Events
4
- version: 3.19.2
4
+ version: 3.20.0
5
5
  description: |
6
6
  Asynchronous event contracts for the GISL (Give It Smaller) compression service.
7
7
 
@@ -3910,6 +3910,32 @@ components:
3910
3910
  exclusive with `outputs[]`. Absent for multi-output operations and
3911
3911
  on failure.
3912
3912
  example: 2097152
3913
+ output_file_type:
3914
+ type: string
3915
+ maxLength: 100
3916
+ description: |
3917
+ OPTIONAL. MIME type of the produced artifact, as reported by the worker
3918
+ that wrote the bytes (single-output completion). Present on completion
3919
+ only; absent on failure. Informative alongside `output_key`, not mutually
3920
+ exclusive — single-output results MAY carry it.
3921
+
3922
+ Name follows the `events.yaml` MIME convention (`OperationRequest.file_type`
3923
+ is the input MIME; `output_file_type` is the output MIME). The OpenAPI/REST
3924
+ surface names the same concept `mime_type`.
3925
+
3926
+ **Purpose (future-proofing per ADR-0022).** The API consumes this MIME +
3927
+ its deterministic MIME→extension map (`DownloadFilenameComputer`) to derive
3928
+ the canonical download extension and the download `Content-Type` header
3929
+ SERVER-SIDE. It is NOT the download filename (the API already has that from
3930
+ the key). For today's traffic the API can infer the output MIME (compress is
3931
+ same-format; the compress+format facade canonicalizes to `convert` whose
3932
+ target is known), so this is **advisory/future-proofing** for a
3933
+ runtime-format-selection path (e.g. `compress output_format=auto|smallest`,
3934
+ currently `planned`/unbuilt) — landed additively now (cf. `watermark_id`) so
3935
+ that path needs no later contract bump. Wire-only: the API derives the
3936
+ ext/Content-Type server-side and does not echo this MIME onto the REST read
3937
+ surface (`OperationDownload`).
3938
+ example: "image/webp"
3913
3939
 
3914
3940
  # Multi-output success fields (per ADR-0009 MultiOutputCompletion)
3915
3941
  outputs:
@@ -3925,13 +3951,15 @@ components:
3925
3951
 
3926
3952
  **`maxItems: 200`** is a worst-case transport-layer defence
3927
3953
  against SQS/SNS's 256 KiB payload cap. Worst-case per-entry size
3928
- is ~1080 bytes (1024-char `output_key` at the S3 hard limit + ~55
3929
- bytes JSON envelope per entry); 200 entries × 1080 bytes ≈ 216
3930
- KB, leaving ~40 KB headroom for the outer message envelope
3931
- (`job_id`, `operation_id`, `metrics`, `total_output_size_bytes`,
3932
- etc.). Typical Lambda-generated keys are ~110 chars so the
3933
- realistic per-message size stays well under the cap; this bound
3934
- defends against the worst case, not the typical case.
3954
+ is ~1205 bytes (1024-char `output_key` at the S3 hard limit + the
3955
+ 100-char-capped `output_file_type` + ~80 bytes JSON envelope per
3956
+ entry); 200 entries × 1205 bytes ≈ 241 KB, leaving ~15 KB headroom
3957
+ for the outer message envelope (`job_id`, `operation_id`,
3958
+ `metrics`, `total_output_size_bytes`, etc.). `output_file_type` is
3959
+ `maxLength: 100` precisely so it cannot blow this bound (real
3960
+ produced MIMEs are <80 chars). Typical Lambda-generated keys are
3961
+ ~110 chars so the realistic per-message size stays well under the
3962
+ cap; this bound defends against the worst case, not the typical case.
3935
3963
 
3936
3964
  Operations that could theoretically exceed 200 outputs from one
3937
3965
  logical operation (e.g. convert PDF->image on a >200-page PDF)
@@ -4053,6 +4081,18 @@ components:
4053
4081
  minimum: 0
4054
4082
  description: Size of this individual output file in bytes.
4055
4083
  example: 262144
4084
+ output_file_type:
4085
+ type: string
4086
+ maxLength: 100
4087
+ description: |
4088
+ OPTIONAL. MIME type of THIS individual output file, as reported by the
4089
+ worker (per-output, multi-output operations). Authoritative per-entry for
4090
+ multi-output (heterogeneous fan-out e.g. convert PDF→image — each entry MAY
4091
+ differ); the top-level `output_file_type` covers the single-output shape.
4092
+ Present on completion only. See ADR-0022 — the API derives the per-output
4093
+ download extension + Content-Type server-side from this MIME via its
4094
+ MIME→extension map. Future-proofing (additive now, cf. `target_id`).
4095
+ example: "image/png"
4056
4096
  page_index:
4057
4097
  type: integer
4058
4098
  minimum: 1
@@ -1,5 +1,5 @@
1
1
  {
2
- "capabilities_version": 98,
2
+ "capabilities_version": 101,
3
3
  "endpoints": {
4
4
  "DELETE /api/auth/api-keys/{apiKeyId}": {
5
5
  "auth": "required",
@@ -874,7 +874,7 @@
874
874
  "options": {
875
875
  "bitrate": {
876
876
  "default": 128,
877
- "description": "Output bitrate in kbps (CBR/ABR). Applies to lossy OUTPUTS. Only a caller-EXPLICIT bitrate against a lossless output is rejected as invalid_options (flac/wav have no bitrate target); the `default: 128` is never the basis for a rejection (ADR-0020 D1 \u2014 a default a caller did not set is the server's to resolve, and is dropped for a lossless target). The output is the input format unless `output_format` re-targets it: with `output_format: original` the lossy/lossless distinction follows the input MIME (mpeg/aac/ogg/mp4 = lossy \u2192 bitrate applies; flac/wav input \u2192 an explicit bitrate is rejected); with an explicit `output_format`, it follows that target (flac/wav target \u2192 an explicit bitrate is rejected). Not expressed as `depends_on` \u2014 the lossy-output condition is an output-value \u00d7 input-MIME cross-axis the option-to-option `depends_on` cannot model without dropping `original` and breaking same-format callers. The other knobs (channels/sample_rate/normalize) apply to all formats.\n",
877
+ "description": "Output bitrate in kbps (CBR/ABR). Applies to lossy OUTPUTS. Only a caller-EXPLICIT bitrate against a lossless output is rejected as invalid_options (flac/wav have no bitrate target); the `default: 128` is never the basis for a rejection (ADR-0020 D1, carried into ADR-0023 \u2014 a default a caller did not set is the server's to resolve, and is dropped for a lossless target). The output is the input format unless `output_format` re-targets it: with `output_format: original` the lossy/lossless distinction follows the input MIME (mpeg/aac/ogg/mp4 = lossy \u2192 bitrate applies; flac/wav input \u2192 an explicit bitrate is rejected); with an explicit `output_format`, it follows that target (flac/wav target \u2192 an explicit bitrate is rejected). Not expressed as `depends_on` \u2014 the lossy-output condition is an output-value \u00d7 input-MIME cross-axis the option-to-option `depends_on` cannot model without dropping `original` and breaking same-format callers. The other knobs (channels/sample_rate/normalize) apply to all formats.\n",
878
878
  "type": "enum",
879
879
  "value_type": "integer",
880
880
  "values": [
@@ -900,23 +900,6 @@
900
900
  "output_format": {
901
901
  "default": "original",
902
902
  "description": "Output audio format. original = keep input format (default, same-format compression). Non-`original` values re-target the container/codec via the API \"compress+format\" facade (one canonicalized convert pass); see FORMAT.md.",
903
- "per_value_availability": {
904
- "aac": {
905
- "availability": "planned"
906
- },
907
- "flac": {
908
- "availability": "planned"
909
- },
910
- "mp3": {
911
- "availability": "planned"
912
- },
913
- "ogg": {
914
- "availability": "planned"
915
- },
916
- "wav": {
917
- "availability": "planned"
918
- }
919
- },
920
903
  "type": "enum",
921
904
  "values": [
922
905
  "original",
@@ -1130,9 +1113,6 @@
1130
1113
  },
1131
1114
  "smallest": {
1132
1115
  "availability": "planned"
1133
- },
1134
- "webp": {
1135
- "availability": "planned"
1136
1116
  }
1137
1117
  },
1138
1118
  "type": "enum",
@@ -1197,7 +1177,7 @@
1197
1177
  },
1198
1178
  "audio_codec": {
1199
1179
  "default": "copy",
1200
- "description": "Audio codec. copy = passthrough (keep the source audio stream as-is; re-encode only on explicit request) \u2014 aac = widest compatibility, opus = best quality/size. Default is `copy` (ADR-0020 D7): it MATCHES the worker's actual absent-audio behaviour and is container-safe for compress (output container = input container, so the source stream is already compatible). Set an explicit codec to re-encode; an explicit codec the output container cannot carry (e.g. aac on a WebM output) returns invalid_options. A DEFAULT value is never rejected. See FORMAT.md \"Container-conditional defaults\" + ADR-0020.\n",
1180
+ "description": "Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on explicit request) \u2014 aac/opus/vorbis re-encode. Default is `copy` (ADR-0020 D7, carried into ADR-0023): on the same-container path (`output_format` original/absent) the source stream is already container-compatible, so copy is safe. When `output_format` RE-TARGETS the container, an absent/default audio_codec resolves to a container-valid codec via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream \u2014 a DEFAULT is never rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an output_format stable-flip prerequisite, ADR-0023 D5). A caller-EXPLICIT codec the resolved container cannot carry (e.g. aac on a webm target) returns invalid_options. See FORMAT.md \"Container-conditional defaults\" + ADR-0023 (supersedes ADR-0020).\n",
1201
1181
  "type": "enum",
1202
1182
  "values": [
1203
1183
  "aac",
@@ -1208,7 +1188,7 @@
1208
1188
  },
1209
1189
  "codec": {
1210
1190
  "default": "h264",
1211
- "description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL: for an output container that cannot carry it (e.g. WebM, which carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected; only a caller-EXPLICIT incompatible codec returns invalid_options. See FORMAT.md \"Container-conditional defaults\" + ADR-0020.\n",
1191
+ "description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/ AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected \u2014 including an explicit `output_format: webm` left at the default `h264` (resolves to vp9, NOT invalid_options); only a caller-EXPLICIT incompatible codec returns invalid_options. See FORMAT.md \"Container-conditional defaults\" + ADR-0023 (supersedes ADR-0020).\n",
1212
1192
  "type": "enum",
1213
1193
  "values": [
1214
1194
  "h264",
@@ -1229,7 +1209,12 @@
1229
1209
  },
1230
1210
  "encoding_mode": {
1231
1211
  "default": "crf",
1232
- "description": "crf = constant quality (variable file size), target_size = constrained file size",
1212
+ "description": "crf = constant quality (variable file size). target_size = constrained file size \u2014 `planned`: the worker does not yet implement the two-pass encode (it rejects target_size); crf only today.",
1213
+ "per_value_availability": {
1214
+ "target_size": {
1215
+ "availability": "planned"
1216
+ }
1217
+ },
1233
1218
  "type": "enum",
1234
1219
  "values": [
1235
1220
  "crf",
@@ -1238,7 +1223,7 @@
1238
1223
  },
1239
1224
  "faststart": {
1240
1225
  "default": true,
1241
- "description": "Move the MP4/MOV moov atom to start for progressive web playback. MP4/MOV only. CONTAINER-CONDITIONAL: the default (true) is silently inapplicable for a container with no moov atom (e.g. WebM) \u2014 that is NOT a rejection. Only a caller-EXPLICIT faststart:true on such a container returns invalid_options. See FORMAT.md \"Container-conditional defaults\" + ADR-0020.\n",
1226
+ "description": "Move the MP4/MOV moov atom to start for progressive web playback. MP4/MOV only. CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input): the default (true) is silently inapplicable for a container with no moov atom (e.g. WebM) \u2014 that is NOT a rejection. Only a caller-EXPLICIT faststart:true on such a container returns invalid_options. See FORMAT.md \"Container-conditional defaults\" + ADR-0023 (supersedes ADR-0020).\n",
1242
1227
  "type": "boolean"
1243
1228
  },
1244
1229
  "fit": {
@@ -1269,6 +1254,28 @@
1269
1254
  "min": 2,
1270
1255
  "type": "integer"
1271
1256
  },
1257
+ "output_format": {
1258
+ "default": "original",
1259
+ "description": "Output container. original = keep the input container (default, same-format compression). Non-`original` values re-target the container via the API \"compress+format\" facade (one canonicalized convert-with-size-cap pass); see per_value_availability + ADR-0023 + FORMAT.md. When set, the RESOLVED target container determines the valid codec/audio_codec/faststart sets \u2014 an absent/default codec resolves to a container-valid one (e.g. webm -> vp9) and is never rejected; only a caller-EXPLICIT incompatible value is invalid_options.",
1260
+ "per_value_availability": {
1261
+ "mp4": {
1262
+ "availability": "planned"
1263
+ },
1264
+ "ogg": {
1265
+ "availability": "planned"
1266
+ },
1267
+ "webm": {
1268
+ "availability": "planned"
1269
+ }
1270
+ },
1271
+ "type": "enum",
1272
+ "values": [
1273
+ "original",
1274
+ "mp4",
1275
+ "webm",
1276
+ "ogg"
1277
+ ]
1278
+ },
1272
1279
  "preset": {
1273
1280
  "default": "medium",
1274
1281
  "description": "Encoding speed vs compression ratio trade-off",
@@ -1286,10 +1293,11 @@
1286
1293
  ]
1287
1294
  },
1288
1295
  "target_size_bytes": {
1296
+ "availability": "planned",
1289
1297
  "depends_on": {
1290
1298
  "encoding_mode": "target_size"
1291
1299
  },
1292
- "description": "Target output file size in bytes (min 1MB).",
1300
+ "description": "Target output file size in bytes (min 1MB). `planned` \u2014 the worker does not yet implement the two-pass target-size encode.",
1293
1301
  "min": 1048576,
1294
1302
  "type": "integer"
1295
1303
  },
@@ -1491,7 +1499,7 @@
1491
1499
  "ogg"
1492
1500
  ]
1493
1501
  },
1494
- "description": "Video codec for target format. Defaults to the format's standard codec (no literal default \u2014 the required output_format determines it). This is the container-conditional-default principle applied via an explicit container choice. See FORMAT.md \"Container-conditional defaults\" + ADR-0020. Not applicable to a `gif` output (no video codec): an explicit `codec` on a `gif` output is rejected as `invalid_options` at workflow-create (the API enforces this `depends_on`); FE/SDK prune it pre-submit.\n",
1502
+ "description": "Video codec for target format. Defaults to the format's standard codec (no literal default \u2014 the required output_format determines it). This is the container-conditional-default principle applied via an explicit container choice. See FORMAT.md \"Container-conditional defaults\" + ADR-0023 (supersedes ADR-0020). Not applicable to a `gif` output (no video codec): an explicit `codec` on a `gif` output is rejected as `invalid_options` at workflow-create (the API enforces this `depends_on`); FE/SDK prune it pre-submit.\n",
1495
1503
  "type": "enum",
1496
1504
  "values": [
1497
1505
  "h264",
@@ -3393,7 +3401,7 @@
3393
3401
  }
3394
3402
  }
3395
3403
  },
3396
- "schema_version": "2.73.0",
3404
+ "schema_version": "2.78.0",
3397
3405
  "source_commit": null,
3398
3406
  "user_tier": null,
3399
3407
  "workflow_features": {
@@ -14,6 +14,7 @@ interface Failure {
14
14
  'output_bucket'?: string;
15
15
  'output_key'?: string;
16
16
  'output_size_bytes'?: number;
17
+ 'output_file_type'?: string;
17
18
  'outputs'?: (PageIndexed | PositionIndexed | Unindexed)[];
18
19
  'total_output_size_bytes'?: number;
19
20
  'metrics'?: OperationMetrics;
@@ -14,6 +14,7 @@ interface MultiOutputCompletion {
14
14
  'output_bucket': string;
15
15
  'output_key'?: string;
16
16
  'output_size_bytes'?: number;
17
+ 'output_file_type'?: string;
17
18
  'outputs': (PageIndexed | PositionIndexed | Unindexed)[];
18
19
  'total_output_size_bytes': number;
19
20
  'metrics'?: OperationMetrics;
@@ -1,6 +1,7 @@
1
1
  interface PageIndexed {
2
2
  'output_key': string;
3
3
  'output_size_bytes': number;
4
+ 'output_file_type'?: string;
4
5
  'page_index': number;
5
6
  'position'?: number;
6
7
  'target_id'?: string;
@@ -1,6 +1,7 @@
1
1
  interface PositionIndexed {
2
2
  'output_key': string;
3
3
  'output_size_bytes': number;
4
+ 'output_file_type'?: string;
4
5
  'page_index'?: number;
5
6
  'position': number;
6
7
  'target_id'?: string;
@@ -14,6 +14,7 @@ interface SingleOutputCompletion {
14
14
  'output_bucket': string;
15
15
  'output_key': string;
16
16
  'output_size_bytes': number;
17
+ 'output_file_type'?: string;
17
18
  'outputs'?: (PageIndexed | PositionIndexed | Unindexed)[];
18
19
  'total_output_size_bytes'?: number;
19
20
  'metrics'?: OperationMetrics;
@@ -1,6 +1,7 @@
1
1
  interface Unindexed {
2
2
  'output_key': string;
3
3
  'output_size_bytes': number;
4
+ 'output_file_type'?: string;
4
5
  'page_index'?: number;
5
6
  'position'?: number;
6
7
  'target_id'?: string;
@@ -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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.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.73.0
7
+ * The version of the OpenAPI document: 2.78.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.73.0
5
+ * The version of the OpenAPI document: 2.78.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).