@giveitsmaller/contracts 0.17.0 → 0.19.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 +22 -12
  2. package/availability/availability.json +107 -9
  3. package/dist/openapi/models/AccountLimitEntry.d.ts +54 -0
  4. package/dist/openapi/models/AccountLimitEntry.js +51 -0
  5. package/dist/openapi/models/AccountLimits.d.ts +60 -0
  6. package/dist/openapi/models/AccountLimits.js +49 -0
  7. package/dist/openapi/models/AccountLimitsLimits.d.ts +40 -0
  8. package/dist/openapi/models/AccountLimitsLimits.js +50 -0
  9. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +46 -0
  10. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +54 -0
  11. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  12. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  15. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  16. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  17. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  18. package/dist/openapi/models/AuthErrorType.js +1 -1
  19. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  20. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  21. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  22. package/dist/openapi/models/AvailabilityValue.js +1 -1
  23. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  24. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  25. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  27. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  28. package/dist/openapi/models/CallbackEventType.js +1 -1
  29. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  30. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  31. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  32. package/dist/openapi/models/CompositionPlan.js +1 -1
  33. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  34. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  35. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  36. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  37. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  38. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  39. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  40. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  41. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  42. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  43. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  44. package/dist/openapi/models/ConnectionSource.js +1 -1
  45. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  46. package/dist/openapi/models/ContactRequest.js +1 -1
  47. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  48. package/dist/openapi/models/ContactSubject.js +1 -1
  49. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  50. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  51. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  52. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  53. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  54. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  55. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  56. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  57. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  58. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  59. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  60. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  61. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  62. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  63. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  64. package/dist/openapi/models/CreditTransaction.js +1 -1
  65. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  66. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  67. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  68. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  69. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  70. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  71. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  72. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  73. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  74. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  75. package/dist/openapi/models/Delivery.d.ts +1 -1
  76. package/dist/openapi/models/Delivery.js +1 -1
  77. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  78. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  79. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  80. package/dist/openapi/models/DeliveryPlan.js +1 -1
  81. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  82. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  83. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  84. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  85. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  86. package/dist/openapi/models/DeliverySelection.js +1 -1
  87. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  88. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  89. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  90. package/dist/openapi/models/EndpointProjection.js +1 -1
  91. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  92. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  93. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  94. package/dist/openapi/models/EstimateQuality.js +1 -1
  95. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  96. package/dist/openapi/models/EstimateRange.js +1 -1
  97. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  98. package/dist/openapi/models/ExternalDestination.js +1 -1
  99. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  100. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  101. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  102. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  103. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  104. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  105. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  106. package/dist/openapi/models/ExternalImportToken.js +1 -1
  107. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  108. package/dist/openapi/models/ExternalSource.js +1 -1
  109. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  110. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  111. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  112. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  113. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  114. package/dist/openapi/models/FeatureViolation.js +1 -1
  115. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  116. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  117. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  118. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  119. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  120. package/dist/openapi/models/JobDefinition.js +1 -1
  121. package/dist/openapi/models/JobDownload.d.ts +1 -1
  122. package/dist/openapi/models/JobDownload.js +1 -1
  123. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  124. package/dist/openapi/models/JobInputV2.js +1 -1
  125. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  126. package/dist/openapi/models/JobMediaClass.js +1 -1
  127. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  128. package/dist/openapi/models/JobOutputSource.js +1 -1
  129. package/dist/openapi/models/JobResponse.d.ts +1 -1
  130. package/dist/openapi/models/JobResponse.js +1 -1
  131. package/dist/openapi/models/JobStatus.d.ts +1 -1
  132. package/dist/openapi/models/JobStatus.js +1 -1
  133. package/dist/openapi/models/JobType.d.ts +1 -1
  134. package/dist/openapi/models/JobType.js +1 -1
  135. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  136. package/dist/openapi/models/LivenessResponse.js +1 -1
  137. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  138. package/dist/openapi/models/LoginUser200Response.js +1 -1
  139. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  140. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  141. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  142. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  143. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  144. package/dist/openapi/models/LoginUserRequest.js +1 -1
  145. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  146. package/dist/openapi/models/MetadataResponse.js +1 -1
  147. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  148. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  149. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  150. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  151. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  152. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  153. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  154. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  155. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  156. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  157. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  158. package/dist/openapi/models/MultiInputSource.js +1 -1
  159. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  160. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  161. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  162. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  163. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  164. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  165. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  166. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  167. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  168. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  169. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  170. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  171. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  172. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  173. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  174. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  175. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  176. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  177. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  178. package/dist/openapi/models/MultipartPartListing.js +1 -1
  179. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  180. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  181. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  182. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  183. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  184. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  185. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  186. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  187. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  188. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  189. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  190. package/dist/openapi/models/OperationDefinition.js +1 -1
  191. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  192. package/dist/openapi/models/OperationDownload.js +1 -1
  193. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  194. package/dist/openapi/models/OperationInputModel.js +1 -1
  195. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  196. package/dist/openapi/models/OperationResponse.js +1 -1
  197. package/dist/openapi/models/OperationResult.d.ts +1 -1
  198. package/dist/openapi/models/OperationResult.js +1 -1
  199. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  200. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  201. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  202. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  203. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  204. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  205. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  206. package/dist/openapi/models/OperationStatus.js +1 -1
  207. package/dist/openapi/models/OperationType.d.ts +2 -2
  208. package/dist/openapi/models/OperationType.js +2 -2
  209. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  210. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  211. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  212. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  213. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  214. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  215. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  219. package/dist/openapi/models/OptionSchema.d.ts +18 -6
  220. package/dist/openapi/models/OptionSchema.js +1 -1
  221. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  222. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  223. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  224. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  225. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  226. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  227. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  228. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  229. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  230. package/dist/openapi/models/ProcessingClass.js +1 -1
  231. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  232. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  233. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  234. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  235. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  236. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  237. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  238. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  239. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  240. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  241. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  242. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  243. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  244. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  245. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  246. package/dist/openapi/models/ProcessingPlan.js +1 -1
  247. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  248. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  249. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  250. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  251. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  252. package/dist/openapi/models/ReadinessResponse.js +1 -1
  253. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  254. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  255. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  256. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  257. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  258. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  259. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  260. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  261. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  262. package/dist/openapi/models/RetryResponse.js +1 -1
  263. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  264. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  265. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  266. package/dist/openapi/models/SseCompletionBase.js +1 -1
  267. package/dist/openapi/models/SseEventType.d.ts +1 -1
  268. package/dist/openapi/models/SseEventType.js +1 -1
  269. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  270. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  271. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  272. package/dist/openapi/models/SseJobFailedData.js +1 -1
  273. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  274. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  275. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  276. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  277. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  278. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  279. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  280. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  281. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  282. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  283. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  284. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  285. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  286. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  287. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  288. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  289. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  290. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  291. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  292. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  293. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  294. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  295. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  296. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  297. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  298. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  299. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  300. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  301. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  302. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  303. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  304. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  305. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  306. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  307. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  308. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  309. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  310. package/dist/openapi/models/UploadFile403Response.js +1 -1
  311. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  312. package/dist/openapi/models/UploadFile422Response.js +1 -1
  313. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  314. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  315. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  316. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  317. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  318. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  319. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  320. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  321. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  322. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  323. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  324. package/dist/openapi/models/UploadResponse.js +1 -1
  325. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  326. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  327. package/dist/openapi/models/UploadSource.d.ts +1 -1
  328. package/dist/openapi/models/UploadSource.js +1 -1
  329. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  330. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  331. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  332. package/dist/openapi/models/UploadThresholds.js +1 -1
  333. package/dist/openapi/models/UserTier.d.ts +11 -4
  334. package/dist/openapi/models/UserTier.js +11 -4
  335. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  336. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  337. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  338. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  339. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  340. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  341. package/dist/openapi/models/WarningType.d.ts +1 -1
  342. package/dist/openapi/models/WarningType.js +1 -1
  343. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  344. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  345. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  346. package/dist/openapi/models/WebhookPayload.js +1 -1
  347. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  348. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  349. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  350. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  351. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  352. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  353. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  354. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  355. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  356. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  357. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  358. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  359. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  360. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  361. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  362. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  363. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  364. package/dist/openapi/models/WorkflowEdge.js +1 -1
  365. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  366. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  367. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  368. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  369. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  370. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  371. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  372. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  373. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  374. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  375. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  376. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  377. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  378. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  379. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  380. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  381. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  382. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  383. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  384. package/dist/openapi/models/WorkflowSource.js +1 -1
  385. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  386. package/dist/openapi/models/WorkflowStatus.js +1 -1
  387. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  388. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  389. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  390. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  391. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  392. package/dist/openapi/models/WorkflowSummary.js +1 -1
  393. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  394. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  395. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  396. package/dist/openapi/models/WorkflowWarning.js +1 -1
  397. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  398. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  399. package/dist/openapi/models/index.d.ts +4 -0
  400. package/dist/openapi/models/index.js +4 -0
  401. package/dist/openapi/runtime.d.ts +1 -1
  402. package/dist/openapi/runtime.js +1 -1
  403. package/dist/operations/compress.d.ts +9 -0
  404. package/dist/operations/compress.js +9 -0
  405. package/dist/operations/compress.metadata.js +44 -2
  406. package/dist/operations/convert.metadata.js +8 -1
  407. package/dist/operations/thumbnail.metadata.js +8 -1
  408. package/openapi/api.yaml +220 -15
  409. package/operations/schemas/compress.yaml +93 -5
  410. package/operations/schemas/convert.yaml +19 -1
  411. package/operations/schemas/split.yaml +10 -7
  412. package/operations/schemas/thumbnail.yaml +6 -0
  413. package/package.json +1 -1
package/openapi/api.yaml CHANGED
@@ -89,7 +89,7 @@ info:
89
89
  of truth instead of hardcoding magic numbers. A runtime
90
90
  `GET /api/uploads/limits` endpoint for dynamic discovery
91
91
  (per-tier / per-environment overrides) is a deferred follow-up.
92
- version: 2.66.0
92
+ version: 2.73.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -168,7 +168,7 @@ paths:
168
168
  mime_type: "image/jpeg"
169
169
  size_bytes: 2457600
170
170
  constraints_applied:
171
- max_size_bytes: 104857600
171
+ max_size_bytes: 10485760
172
172
  max_duration_seconds: null
173
173
  processing_class_pre_assignment: short_form
174
174
  '400':
@@ -232,7 +232,7 @@ paths:
232
232
  $ref: '#/components/schemas/ErrorEnvelope'
233
233
  example:
234
234
  success: false
235
- error: "File size exceeds maximum allowed (500MB)"
235
+ error: "File size exceeds maximum allowed (100 GiB)"
236
236
  '415':
237
237
  description: |
238
238
  Unsupported file type at the contract level (no tier permits
@@ -280,13 +280,13 @@ paths:
280
280
  upload_duration_exceeds_tier: '#/components/schemas/UploadDurationExceedsTierResponse'
281
281
  examples:
282
282
  size_exceeds_tier:
283
- summary: Free-tier caller uploads a 200MB file (cap is 100MB)
283
+ summary: Free-tier caller uploads a 200MB file (cap is 10 MiB)
284
284
  value:
285
285
  success: false
286
- error: "Upload exceeds size cap for free tier (max 100MB; pro permits up to 5GB)."
286
+ error: "Upload exceeds size cap for free tier (max 10 MiB; pro permits up to 5 GiB)."
287
287
  error_type: "upload_size_exceeds_tier"
288
288
  current_tier: "free"
289
- max_size_bytes: 104857600
289
+ max_size_bytes: 10485760
290
290
  required_tier: "pro"
291
291
  duration_exceeds_tier:
292
292
  summary: Pro-tier caller uploads a 30-minute video (cap is 5min on short_form)
@@ -4465,6 +4465,100 @@ paths:
4465
4465
  schema:
4466
4466
  $ref: '#/components/schemas/ErrorEnvelope'
4467
4467
 
4468
+ # ============================================
4469
+ # ACCOUNT LIMITS ENDPOINT
4470
+ # ============================================
4471
+
4472
+ /api/v2/account/limits:
4473
+ get:
4474
+ summary: Get the caller's effective account limits
4475
+ description: |
4476
+ Returns the authed caller's **effective** (override-aware) account
4477
+ limits. `effective = per-account override ?? tier_default`. Until a
4478
+ per-account override is set, every limit's `effective` equals its
4479
+ `tier_default` and `overridden` is `false`.
4480
+
4481
+ These are **request-level tier-quota** limits — the per-file upload
4482
+ cap (`UserTier.maxFileSizeBytes`) and the merge combined-size band.
4483
+ They are **distinct** from the per-operation **processing-class**
4484
+ band caps in each operation schema's `processing_class.constraints`
4485
+ (which `GET /api/operations/schema` advertises account-agnostically
4486
+ as tier DEFAULTS). This endpoint is the account-scoped,
4487
+ override-aware **effective** view — the pre-upload cap surface
4488
+ previously missing (tickets
4489
+ [`zcRRQHVC`](https://trello.com/c/zcRRQHVC) +
4490
+ [`uKsFzORi`](https://trello.com/c/uKsFzORi)).
4491
+
4492
+ v1 keys: `max_upload_size_bytes` (per-file upload cap) and
4493
+ `max_total_input_size_bytes` (merge combined-size band). SDKs/FE
4494
+ gate the upload affordance on
4495
+ `limits.max_upload_size_bytes.effective`, surface
4496
+ `tier_default` for upgrade-prompt copy, and show an
4497
+ "extended limit" affordance when `overridden` is `true`.
4498
+
4499
+ Per ticket [`ViRVI2MP`](https://trello.com/c/ViRVI2MP).
4500
+ operationId: getAccountLimits
4501
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (identity-scoped to caller's account)
4502
+ x-identity-scoped: true # caller's account limits — per ADR-0016 §D4 sample
4503
+ tags:
4504
+ - Billing
4505
+ responses:
4506
+ '200':
4507
+ description: Effective account-limits snapshot
4508
+ content:
4509
+ application/json:
4510
+ schema:
4511
+ $ref: '#/components/schemas/AccountLimitsSuccessEnvelope'
4512
+ examples:
4513
+ free_tier_defaults:
4514
+ summary: Free tier, no overrides (effective == tier_default)
4515
+ value:
4516
+ success: true
4517
+ data:
4518
+ tier: free
4519
+ limits:
4520
+ max_upload_size_bytes:
4521
+ effective: 10485760
4522
+ tier_default: 10485760
4523
+ overridden: false
4524
+ max_total_input_size_bytes:
4525
+ effective: 1073741824
4526
+ tier_default: 1073741824
4527
+ overridden: false
4528
+ enterprise_with_upload_override:
4529
+ summary: Enterprise tier with a raised per-account upload override
4530
+ value:
4531
+ success: true
4532
+ data:
4533
+ tier: enterprise
4534
+ limits:
4535
+ max_upload_size_bytes:
4536
+ effective: 128849018880
4537
+ tier_default: 107374182400
4538
+ overridden: true
4539
+ max_total_input_size_bytes:
4540
+ effective: 120000000000
4541
+ tier_default: 120000000000
4542
+ overridden: false
4543
+ '401':
4544
+ description: Authentication required.
4545
+ content:
4546
+ application/json:
4547
+ schema:
4548
+ $ref: '#/components/schemas/ErrorEnvelope'
4549
+ '429':
4550
+ description: Rate limit exceeded
4551
+ content:
4552
+ application/json:
4553
+ schema:
4554
+ $ref: '#/components/schemas/ErrorEnvelope'
4555
+ '500':
4556
+ description: Internal server error
4557
+ content:
4558
+ application/json:
4559
+ schema:
4560
+ $ref: '#/components/schemas/ErrorEnvelope'
4561
+
4468
4562
  # ============================================
4469
4563
  # CONTACT ENDPOINT
4470
4564
  # ============================================
@@ -5645,6 +5739,98 @@ components:
5645
5739
  data:
5646
5740
  $ref: '#/components/schemas/CreditsBalanceResponse'
5647
5741
 
5742
+ AccountLimitsSuccessEnvelope:
5743
+ type: object
5744
+ additionalProperties: false
5745
+ required:
5746
+ - success
5747
+ - data
5748
+ properties:
5749
+ success:
5750
+ type: boolean
5751
+ enum: [true]
5752
+ data:
5753
+ $ref: '#/components/schemas/AccountLimits'
5754
+
5755
+ AccountLimits:
5756
+ type: object
5757
+ # Open payload (response data target stays open for additive evolution —
5758
+ # the success-envelope tightening convention; new top-level fields may
5759
+ # be added without a breaking change).
5760
+ description: |
5761
+ The caller's effective (override-aware) account limits
5762
+ (`GET /api/v2/account/limits`, ticket
5763
+ [`ViRVI2MP`](https://trello.com/c/ViRVI2MP)). `tier` is the caller's
5764
+ subscription tier; `limits` maps a fixed v1 key set to each limit's
5765
+ effective / tier-default / override state.
5766
+
5767
+ **v1 limit keys** (both REQUIRED):
5768
+ - `max_upload_size_bytes`: the per-FILE upload cap
5769
+ (`UserTier.maxFileSizeBytes` — the request-level tier quota the
5770
+ upload endpoints enforce). **Distinct** from the per-operation
5771
+ processing ceiling `max_input_size_bytes` in operation schemas
5772
+ (different axis AND number). Tier defaults: free 10 MiB, pro 5 GiB,
5773
+ enterprise 100 GiB.
5774
+ - `max_total_input_size_bytes`: the effective merge combined-input
5775
+ size cap (the summed-inputs ceiling). Same key as the
5776
+ operation-schema merge band; the band is processing-class +
5777
+ tier dependent (`short_form_concat` baseline 1 GiB; the
5778
+ `long_form_re_encode` band where the tier permits it — Pro 5 GB,
5779
+ Enterprise 120 GB). The server resolves the effective value for
5780
+ the caller.
5781
+ required:
5782
+ - tier
5783
+ - limits
5784
+ properties:
5785
+ tier:
5786
+ $ref: '#/components/schemas/UserTier'
5787
+ limits:
5788
+ type: object
5789
+ # Typed-open: the v1 keys below are REQUIRED + frozen, but future
5790
+ # limit keys may be added additively (each an AccountLimitEntry) —
5791
+ # forward-compatible per the open-payload convention.
5792
+ additionalProperties:
5793
+ $ref: '#/components/schemas/AccountLimitEntry'
5794
+ required:
5795
+ - max_upload_size_bytes
5796
+ - max_total_input_size_bytes
5797
+ properties:
5798
+ max_upload_size_bytes:
5799
+ $ref: '#/components/schemas/AccountLimitEntry'
5800
+ max_total_input_size_bytes:
5801
+ $ref: '#/components/schemas/AccountLimitEntry'
5802
+
5803
+ AccountLimitEntry:
5804
+ type: object
5805
+ additionalProperties: false
5806
+ description: |
5807
+ One account limit: the effective value (override ?? tier default),
5808
+ the tier default, and whether a per-account override is active. The
5809
+ override mechanism / store is NOT exposed — only the resolved
5810
+ numbers plus the `overridden` flag.
5811
+ required:
5812
+ - effective
5813
+ - tier_default
5814
+ - overridden
5815
+ properties:
5816
+ effective:
5817
+ type: integer
5818
+ minimum: 1
5819
+ description: |
5820
+ The cap in force for this account, in bytes
5821
+ (`override ?? tier_default`).
5822
+ tier_default:
5823
+ type: integer
5824
+ minimum: 1
5825
+ description: |
5826
+ The tier's default cap for this limit, in bytes (already public
5827
+ via the tier model).
5828
+ overridden:
5829
+ type: boolean
5830
+ description: |
5831
+ True iff a per-account override is active (i.e. `effective`
5832
+ comes from an override rather than the tier default).
5833
+
5648
5834
  CreditTransaction:
5649
5835
  type: object
5650
5836
  description: |
@@ -6263,13 +6449,20 @@ components:
6263
6449
 
6264
6450
  Tier capability summary (informational; canonical limits are
6265
6451
  enforced server-side per `UserTier.php`):
6266
- - `free`: 10 MB max upload; image MIMEs only; 50 monthly credits;
6452
+ - `free`: 10 MiB max upload; image MIMEs only; 50 monthly credits;
6267
6453
  0 overdraft; 1× rate-limit baseline.
6268
- - `pro`: 500 MB max upload; image + video + document MIMEs; 1000
6454
+ - `pro`: 5 GiB max upload; image + video + document MIMEs; 1000
6269
6455
  monthly credits; 200 overdraft; 5× rate-limit.
6270
- - `enterprise`: 2 GB max upload; image + video + document + audio
6456
+ - `enterprise`: 100 GiB max upload; image + video + document + audio
6271
6457
  MIMEs; 10000 monthly credits; 5000 overdraft; 20× rate-limit.
6272
6458
 
6459
+ The "max upload" figures are the per-file upload cap
6460
+ (`UserTier.maxFileSizeBytes`) — the request-level tier quota,
6461
+ surfaced override-aware via `GET /api/v2/account/limits`
6462
+ (`max_upload_size_bytes`). They are DISTINCT from the per-operation
6463
+ processing-class band caps (`processing_class.constraints` in the
6464
+ operation schemas; e.g. the 120 GB Enterprise merge combined band).
6465
+
6273
6466
  Used by `TierRestrictionResponse.current_tier` /
6274
6467
  `TierRestrictionResponse.required_tier` and by
6275
6468
  `FeatureViolation.required_tier`.
@@ -6920,7 +7113,7 @@ components:
6920
7113
  - audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT return `feature_not_available`; may change with notice). Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) + ADR-0015 (introduces `per_role_cardinality` vocab).
6921
7114
  - video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT 422; `short_form` is beta, `long_form` stays `planned` — no live Fargate worker; `multi_overlay_stack` stays `planned`). Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
6922
7115
  - video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
6923
- - split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` and `video` mime_groups (workers live on staging — shape-stable + opt-in, MUST NOT 422); video activates BOTH classes (`video.processing_class.short_form: beta` AND `long_form: beta` — `split-video-fargate` proven on staging per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI)). The `image_gif` and `document_pdf` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
7116
+ - split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` and `video` mime_groups (workers live on staging — shape-stable + opt-in, MUST NOT 422); video activates BOTH classes (`video.processing_class.short_form: beta` AND `long_form: beta` — `split-video-fargate` deployed + wired on staging but NOT yet proven end-to-end per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path soak has not completed, the 4GB+ speed-up is unmeasured, and the long-form fan-out is flag-gated dark). The `image_gif` and `document_pdf` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
6924
7117
  - passthrough: Inert lossless source operation. A single-input source job whose SOLE operation is `passthrough` emits its source bytes UNCHANGED — no compression, no Lambda. The API self-completes the job at publish (terminal output = the upload `{bucket, key}` unchanged). Its purpose is to feed an uploaded file into a multi-input operation LOSSLESSLY: because `JobInputV2.source` is narrowed to exclude upload-direct, an upload that must enter a `merge` / `archive` / `image_watermark` op enters via a `passthrough` source job referenced downstream by `{type: job_output, from: <id>}` — preserving billing / DAG / lineage. Distinct from `operations: []` (which keeps its implicit-compress meaning on a single-input upload job); `passthrough` is the EXPLICIT lossless path via the "non-empty `operations[]` without `compress` = compression opt-out" rule. Media-agnostic; no options. `availability: beta` — activated (the inputs[]-narrowing + passthrough self-complete mechanism is deployed API-side); workflow-create accepts `passthrough` source jobs and MUST NOT return `feature_not_available`. **Never published to SNS** — deliberately absent from the AsyncAPI routing enums (API self-completes; no `ops-passthrough` queue). Per ticket [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta flip).
6925
7118
 
6926
7119
  Both the legacy `thumbnail` value and the four sub-type values
@@ -10885,12 +11078,24 @@ components:
10885
11078
  when `type: enum`. Keys MUST be a subset of `values[]`;
10886
11079
  each entry value is a `depends_on`-shaped condition mapping
10887
11080
  that the named enum value REQUIRES. Distinct from
10888
- option-level `depends_on` (which gates applicability with
10889
- silent-ignore semantics); `per_value_depends_on` rejects
10890
- the request with `invalid_options` when the named value is
10891
- chosen and the condition is not met. Verified by
11081
+ option-level `depends_on`, which gates the WHOLE option's
11082
+ applicability and IS enforced by the API at workflow-create
11083
+ (`OperationOptionsValidator`: a submitted option whose gate is
11084
+ unmet is rejected as `invalid_options`; an absent one is
11085
+ inactive). `per_value_depends_on` instead constrains a single
11086
+ VALUE of an otherwise-active option. ENFORCEMENT NOTE: the API's
11087
+ create-time validator does NOT yet evaluate `per_value_depends_on`
11088
+ (only option-level `depends_on`); it is shape-checked metadata
11089
+ that SDK/FE consume to gate the value, with the worker as the
11090
+ reject backstop (a future API version may add create-time
11091
+ enforcement, contract-first). When unmet it logically requires
11092
+ the request be rejected as `invalid_options` (intent; per the
11093
+ enforcement note above this is not yet API-create-enforced), the
11094
+ option itself staying active. The KEY/SHAPE (keys are a subset of
11095
+ `values[]`; condition cross-refs resolve) is verified by
10892
11096
  `make check-per-value-depends-on` (CI guard, ticket
10893
- [`bsV3FWM5`](https://trello.com/c/bsV3FWM5)). Runtime
11097
+ [`bsV3FWM5`](https://trello.com/c/bsV3FWM5)) — shape only, NOT
11098
+ runtime/worker enforcement. Runtime
10894
11099
  emission ships verbatim alongside other availability
10895
11100
  metadata. See `schemas/FORMAT.md` §per_value_depends_on.
10896
11101
  additionalProperties: true
@@ -16,6 +16,18 @@ operation:
16
16
  - image/svg+xml
17
17
  - image/tiff
18
18
  - image/avif
19
+ per_mime_availability:
20
+ # avif INPUT decode shipped in the compress-image worker via libheif
21
+ # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
22
+ # Re-add after the v2.67.0 interim crash-window drop (aYPbNVKD Phase 2).
23
+ # image/heic is intentionally NOT re-added to compress: compress is
24
+ # decode-only and there is no HEIC encoder, so the worker rejects a
25
+ # declared image/heic (FormatMismatch). heic stays on convert+thumbnail.
26
+ # WORKER LIMIT (not yet contract-expressible — F3 follow-up): the
27
+ # compress-image worker caps avif INPUT at 20MB (compression_processor.rs),
28
+ # below the general image size budget. Per-MIME input-size caps have no
29
+ # contract vocab today; tracked for the image-size-cap mechanism (F3).
30
+ image/avif: { availability: beta }
19
31
  options:
20
32
  mode:
21
33
  type: enum
@@ -55,9 +67,35 @@ operation:
55
67
  type: enum
56
68
  values: [original, auto, smallest, jpeg, png, webp, avif]
57
69
  default: original
70
+ per_value_availability:
71
+ # FACADE (VcPeRWdD): "compress + change format" resolves to a SINGLE
72
+ # combined convert-with-size-cap pass canonicalized API-side (the
73
+ # compress worker stays same-format — it never reads output_format).
74
+ # Non-`original` values were a live untagged-`stable` silent no-op
75
+ # (worker ignored them, returned a same-format file at 200) — the
76
+ # hlKCslIu-class over-claim. Tagged `planned` until each value's
77
+ # facade piece lands (API canonicalization + lambdas encode), then
78
+ # flipped `stable` per value with capability proof (ADR-0001/0006).
79
+ # ALL non-`original` values are tagged `planned`: the compress+format
80
+ # FACADE path (API canonicalization → convert) is not live for ANY
81
+ # value until [API] IsjNT2PJ ships, so even jpeg/avif are dormant-safe
82
+ # `planned` in this lead PR (without the marker the canonicalizer would
83
+ # dispatch them to a not-live path). They flip `stable` per value as
84
+ # each facade piece lands + capability proof (ADR-0001/0006): jpeg/avif
85
+ # first (closest — shipped foldImageEncodeOperations), then png (API
86
+ # fold), webp (lambdas lossy-webp PfGs5PBT), auto/smallest (runtime
87
+ # selection, unbuilt). `original` (same-format, today's behaviour) stays stable.
88
+ auto: { availability: planned } # runtime Accept-best selection — unbuilt
89
+ smallest: { availability: planned } # runtime try-all-smallest selection — unbuilt
90
+ jpeg: { availability: planned } # facade path not live until IsjNT2PJ
91
+ png: { availability: planned } # facade path not live until IsjNT2PJ
92
+ webp: { availability: planned } # + needs lambdas lossy-webp (PfGs5PBT)
93
+ avif: { availability: planned } # facade path not live until IsjNT2PJ
58
94
  description: >-
59
- Output format. original = keep input format, auto = best for browser support
60
- (AVIF > WebP > JPEG based on Accept header hint), smallest = try all supported formats and return the smallest file
95
+ Output format. original = keep input format (default); auto = best for browser
96
+ support (AVIF > WebP > JPEG via Accept hint); smallest = try all supported formats,
97
+ return the smallest. Non-`original` values are served by the API "compress+format"
98
+ facade (one combined convert-with-size-cap pass); see per_value_availability + FORMAT.md.
61
99
 
62
100
  audio:
63
101
  mimes:
@@ -68,12 +106,47 @@ operation:
68
106
  - audio/wav
69
107
  - audio/mp4
70
108
  options:
109
+ output_format:
110
+ type: enum
111
+ values: [original, mp3, aac, ogg, flac, wav]
112
+ default: original
113
+ per_value_availability:
114
+ # FACADE (VcPeRWdD): "compress audio + change format" resolves to a
115
+ # SINGLE API-canonicalized convert pass (the API computes a discrete
116
+ # target bitrate; convert honours it via -b:a — no compress-worker
117
+ # change, no source-relative cap needed for audio). Non-`original`
118
+ # values are facade-pending until the API canonicalization lands,
119
+ # then flipped `stable` per value. `original` (same-format, today's
120
+ # behaviour) stays stable. Values mirror convert.audio.output_format.
121
+ mp3: { availability: planned }
122
+ aac: { availability: planned }
123
+ ogg: { availability: planned }
124
+ flac: { availability: planned }
125
+ wav: { availability: planned }
126
+ description: >-
127
+ Output audio format. original = keep input format (default, same-format
128
+ compression). Non-`original` values re-target the container/codec via the
129
+ API "compress+format" facade (one canonicalized convert pass); see FORMAT.md.
71
130
  bitrate:
72
131
  type: enum
73
132
  value_type: integer
74
133
  values: [64, 96, 128, 192, 256, 320]
75
134
  default: 128
76
- description: "Output bitrate in kbps"
135
+ description: >
136
+ Output bitrate in kbps (CBR/ABR). Applies to lossy OUTPUTS. Only a
137
+ caller-EXPLICIT bitrate against a lossless output is rejected as
138
+ invalid_options (flac/wav have no bitrate target); the `default: 128` is
139
+ never the basis for a rejection (ADR-0020 D1 — a default a caller did not set
140
+ is the server's to resolve, and is dropped for a lossless target). The output
141
+ is the input format unless `output_format` re-targets it: with
142
+ `output_format: original` the lossy/lossless distinction follows the input MIME
143
+ (mpeg/aac/ogg/mp4 = lossy → bitrate applies; flac/wav input → an explicit
144
+ bitrate is rejected); with an explicit `output_format`, it follows that target
145
+ (flac/wav target → an explicit bitrate is rejected). Not expressed as
146
+ `depends_on` — the lossy-output condition is an output-value × input-MIME
147
+ cross-axis the option-to-option `depends_on` cannot model without dropping
148
+ `original` and breaking same-format callers. The other knobs
149
+ (channels/sample_rate/normalize) apply to all formats.
77
150
  channels:
78
151
  type: integer
79
152
  min: 1
@@ -219,8 +292,23 @@ operation:
219
292
  type: enum
220
293
  value_type: integer
221
294
  values: [64, 96, 128, 192, 256, 320]
222
- default: 128
223
- description: "Audio track bitrate in kbps"
295
+ # depends_on is ENFORCED AT CREATE: the API's OperationOptionsValidator
296
+ # excludes an option whose dependsOn is unmet from the active set, then
297
+ # flags a SUBMITTED inactive option as unknownOption → invalid_options.
298
+ # So an explicit audio_bitrate with audio_codec copy/omitted is REJECTED
299
+ # at workflow-create (staging-triage #4's "validate at CREATE"). FE/SDK
300
+ # also prune it pre-submit; the worker (video_encode_options.rs) is the
301
+ # deeper backstop. The reported failure is closed by the create-reject
302
+ # + the preset audioBitrate drop. NO API code needed (existing validator).
303
+ depends_on: { audio_codec: [aac, opus, vorbis] }
304
+ description: >
305
+ Audio track bitrate in kbps. Only valid with an explicit re-encode
306
+ audio_codec (aac/opus/vorbis): an explicit audio_bitrate with
307
+ audio_codec `copy`/omitted is rejected as `invalid_options` at
308
+ workflow-create (the API enforces this `depends_on`); copy preserves
309
+ the source bitrate. FE/SDK also prune it pre-submit. No default: a
310
+ bitrate is only meaningful on an explicit re-encode (matches the
311
+ worker, which applies none).
224
312
  trim_start:
225
313
  type: float
226
314
  min: 0
@@ -19,6 +19,13 @@ operation:
19
19
  - image/vnd.microsoft.icon
20
20
  - image/avif
21
21
  - image/heic
22
+ per_mime_availability:
23
+ # avif/heic input decode shipped in the convert worker via libheif
24
+ # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
25
+ # Re-add after the v2.67.0 interim crash-window drop (aYPbNVKD Phase 2).
26
+ # (avif is also a valid OUTPUT via output_format — ravif encode.)
27
+ image/avif: { availability: beta }
28
+ image/heic: { availability: beta }
22
29
  options:
23
30
  output_format:
24
31
  type: enum
@@ -73,18 +80,29 @@ operation:
73
80
  codec:
74
81
  type: enum
75
82
  values: [h264, h265, vp9, av1]
83
+ depends_on: { output_format: [mp4, webm, ogg] }
76
84
  description: >
77
85
  Video codec for target format. Defaults to the format's standard
78
86
  codec (no literal default — the required output_format determines
79
87
  it). This is the container-conditional-default principle applied via
80
88
  an explicit container choice. See FORMAT.md
81
89
  "Container-conditional defaults" + ADR-0020.
90
+ Not applicable to a `gif` output (no video codec): an explicit
91
+ `codec` on a `gif` output is rejected as `invalid_options` at
92
+ workflow-create (the API enforces this `depends_on`); FE/SDK prune
93
+ it pre-submit.
82
94
  quality:
83
95
  type: integer
84
96
  min: 0
85
97
  max: 51
86
98
  default: 23
87
- description: "CRF value (0 = lossless, 51 = worst)"
99
+ depends_on: { output_format: [mp4, webm, ogg] }
100
+ description: >
101
+ CRF value (0 = lossless, 51 = worst). Video outputs only — NOT
102
+ applicable to a `gif` output (frame extraction has no CRF). An
103
+ explicit `quality` on a `gif` output is rejected as `invalid_options`
104
+ at workflow-create (the API enforces this `depends_on`); FE/SDK
105
+ prune it pre-submit.
88
106
 
89
107
  audio:
90
108
  mimes:
@@ -69,9 +69,11 @@ operation:
69
69
  `availability: beta` for the `audio` and `video` mime_groups
70
70
  (workers live on staging — shape-stable + opt-in, MUST NOT 422).
71
71
  Video activates **both classes**: `video.processing_class.short_form`
72
- AND `long_form` are `beta` — the `split-video-fargate` worker is proven
73
- on staging (4GB+ HEVC input keyframe-aligned segments;
74
- [`rcwvUKhI`](https://trello.com/c/rcwvUKhI)). The `image_gif` and
72
+ AND `long_form` are `beta` — the `split-video-fargate` worker is
73
+ deployed + wired on staging but NOT yet proven end-to-end
74
+ ([`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path
75
+ soak has not completed and the 4GB+ speed-up is unmeasured; the
76
+ long-form fan-out is flag-gated dark). The `image_gif` and
75
77
  `document_pdf` mime_groups stay `availability: planned` until their
76
78
  cross-repo Lambda workers ship ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)
77
79
  + lambdas L1); dispatch returns `feature_not_available` (422) for the
@@ -296,10 +298,11 @@ operation:
296
298
  max_input_size_bytes: 524288000
297
299
  max_output_size_bytes: 524288000
298
300
  long_form:
299
- # planned -> beta (rcwvUKhI): split-video-fargate worker proven on
300
- # staging (4GB+ HEVC -> keyframe-aligned segments). Routes per
301
- # ADR-0014 §D10 same split OperationType, dedicated stream-copy
302
- # segmenter binary (NOT the long-form compress worker).
301
+ # planned -> beta (rcwvUKhI): split-video-fargate worker deployed +
302
+ # wired on staging but NOT yet proven end-to-end (first customer-path
303
+ # soak incomplete; 4GB+ speed-up unmeasured; fan-out flag-gated dark).
304
+ # Routes per ADR-0014 §D10 same split OperationType, dedicated
305
+ # stream-copy segmenter binary (NOT the long-form compress worker).
303
306
  availability: beta
304
307
  required_tier: pro
305
308
  constraints: # baseline = Pro
@@ -17,6 +17,12 @@ operation:
17
17
  - image/bmp
18
18
  - image/avif
19
19
  - image/heic
20
+ per_mime_availability:
21
+ # avif/heic decode shipped in the thumbnail-image worker via libheif
22
+ # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
23
+ # Re-add after the v2.67.0 interim crash-window drop (aYPbNVKD Phase 2).
24
+ image/avif: { availability: beta }
25
+ image/heic: { availability: beta }
20
26
  options:
21
27
  width:
22
28
  type: integer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "description": "Generated contract types for GISL (Give It Smaller)",
5
5
  "license": "MIT",
6
6
  "type": "module",