@giveitsmaller/contracts 0.9.0 → 0.17.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 (446) hide show
  1. package/asyncapi/events.yaml +647 -60
  2. package/availability/availability.json +318 -94
  3. package/dist/asyncapi/Failure.d.ts +2 -0
  4. package/dist/asyncapi/LongFormOperationType.d.ts +2 -1
  5. package/dist/asyncapi/LongFormOperationType.js +1 -0
  6. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  7. package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
  8. package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
  9. package/dist/asyncapi/OperationResultMetadata.js +1 -0
  10. package/dist/asyncapi/OperationType.d.ts +2 -1
  11. package/dist/asyncapi/OperationType.js +1 -0
  12. package/dist/asyncapi/PageIndexed.d.ts +1 -0
  13. package/dist/asyncapi/PositionIndexed.d.ts +1 -0
  14. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  15. package/dist/asyncapi/SourceEntry.d.ts +2 -0
  16. package/dist/asyncapi/Unindexed.d.ts +1 -0
  17. package/dist/asyncapi/index.d.ts +2 -1
  18. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  19. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  20. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  21. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  22. package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
  23. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  24. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  25. package/dist/openapi/models/AuthErrorType.js +2 -2
  26. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
  27. package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
  28. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  29. package/dist/openapi/models/AvailabilityValue.js +2 -2
  30. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
  31. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  32. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  33. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  34. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  35. package/dist/openapi/models/CallbackEventType.js +2 -2
  36. package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
  37. package/dist/openapi/models/ChangePasswordRequest.js +47 -0
  38. package/dist/openapi/models/CompositionPlan.d.ts +72 -0
  39. package/dist/openapi/models/CompositionPlan.js +53 -0
  40. package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
  41. package/dist/openapi/models/CompositionPlanJob.js +48 -0
  42. package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
  43. package/dist/openapi/models/CompositionPlanOperation.js +62 -0
  44. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
  45. package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
  46. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
  47. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
  48. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
  49. package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
  50. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  51. package/dist/openapi/models/ConnectionSource.js +2 -2
  52. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  53. package/dist/openapi/models/ContactRequest.js +2 -2
  54. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  55. package/dist/openapi/models/ContactSubject.js +2 -2
  56. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  57. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  58. package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
  59. package/dist/openapi/models/CreateApiKey201Response.js +54 -0
  60. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
  61. package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
  62. package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
  63. package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
  64. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  65. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  66. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  67. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  68. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  69. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  70. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  71. package/dist/openapi/models/CreditTransaction.js +2 -2
  72. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  73. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  74. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  75. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  76. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  77. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  78. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  79. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  80. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  81. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  82. package/dist/openapi/models/Delivery.d.ts +2 -2
  83. package/dist/openapi/models/Delivery.js +2 -2
  84. package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
  85. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  86. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  87. package/dist/openapi/models/DeliveryPlan.js +2 -2
  88. package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
  89. package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
  90. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  91. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  92. package/dist/openapi/models/DeliverySelection.d.ts +6 -4
  93. package/dist/openapi/models/DeliverySelection.js +2 -2
  94. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
  95. package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
  96. package/dist/openapi/models/EndpointProjection.d.ts +12 -3
  97. package/dist/openapi/models/EndpointProjection.js +2 -2
  98. package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
  99. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  100. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  101. package/dist/openapi/models/EstimateQuality.js +2 -2
  102. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  103. package/dist/openapi/models/EstimateRange.js +2 -2
  104. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  105. package/dist/openapi/models/ExternalDestination.js +2 -2
  106. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  107. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  108. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  109. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  110. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  111. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  112. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  113. package/dist/openapi/models/ExternalImportToken.js +2 -2
  114. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  115. package/dist/openapi/models/ExternalSource.js +2 -2
  116. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +13 -2
  117. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  118. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
  119. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  120. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  121. package/dist/openapi/models/FeatureViolation.js +2 -2
  122. package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
  123. package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
  124. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
  125. package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
  126. package/dist/openapi/models/JobDefinition.d.ts +20 -4
  127. package/dist/openapi/models/JobDefinition.js +2 -2
  128. package/dist/openapi/models/JobDownload.d.ts +2 -2
  129. package/dist/openapi/models/JobDownload.js +2 -2
  130. package/dist/openapi/models/JobInputV2.d.ts +13 -9
  131. package/dist/openapi/models/JobInputV2.js +5 -5
  132. package/dist/openapi/models/JobMediaClass.d.ts +34 -0
  133. package/dist/openapi/models/JobMediaClass.js +52 -0
  134. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  135. package/dist/openapi/models/JobOutputSource.js +2 -2
  136. package/dist/openapi/models/JobResponse.d.ts +2 -2
  137. package/dist/openapi/models/JobResponse.js +2 -2
  138. package/dist/openapi/models/JobStatus.d.ts +2 -2
  139. package/dist/openapi/models/JobStatus.js +2 -2
  140. package/dist/openapi/models/JobType.d.ts +2 -2
  141. package/dist/openapi/models/JobType.js +2 -2
  142. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  143. package/dist/openapi/models/LivenessResponse.js +2 -2
  144. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  145. package/dist/openapi/models/LoginUser200Response.js +2 -2
  146. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  147. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  148. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  149. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  150. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  151. package/dist/openapi/models/LoginUserRequest.js +2 -2
  152. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  153. package/dist/openapi/models/MetadataResponse.js +2 -2
  154. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  155. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  156. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  157. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  158. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  159. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  160. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  161. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  162. package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
  163. package/dist/openapi/models/MimeGroupSchema.js +5 -2
  164. package/dist/openapi/models/MultiInputSource.d.ts +41 -0
  165. package/dist/openapi/models/MultiInputSource.js +52 -0
  166. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  167. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  168. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  169. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  170. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  171. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  172. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  173. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  174. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  175. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  176. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  177. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  178. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  179. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  180. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  181. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  182. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  183. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  184. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  185. package/dist/openapi/models/MultipartPartListing.js +2 -2
  186. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  187. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  188. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  189. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  190. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  191. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  192. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  193. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  194. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  195. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  196. package/dist/openapi/models/OperationDefinition.d.ts +27 -2
  197. package/dist/openapi/models/OperationDefinition.js +11 -2
  198. package/dist/openapi/models/OperationDownload.d.ts +30 -2
  199. package/dist/openapi/models/OperationDownload.js +6 -2
  200. package/dist/openapi/models/OperationInputModel.d.ts +3 -3
  201. package/dist/openapi/models/OperationInputModel.js +3 -3
  202. package/dist/openapi/models/OperationResponse.d.ts +18 -2
  203. package/dist/openapi/models/OperationResponse.js +5 -2
  204. package/dist/openapi/models/OperationResult.d.ts +2 -2
  205. package/dist/openapi/models/OperationResult.js +2 -2
  206. package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
  207. package/dist/openapi/models/OperationResultMetadata.js +41 -0
  208. package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
  209. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  210. package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
  211. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  212. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  213. package/dist/openapi/models/OperationStatus.js +2 -2
  214. package/dist/openapi/models/OperationType.d.ts +7 -4
  215. package/dist/openapi/models/OperationType.js +8 -5
  216. package/dist/openapi/models/OperationsSchemaResponse.d.ts +32 -4
  217. package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  222. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  223. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  224. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  225. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  226. package/dist/openapi/models/OptionSchema.d.ts +2 -2
  227. package/dist/openapi/models/OptionSchema.js +2 -2
  228. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  229. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  230. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  231. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  232. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  233. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  234. package/dist/openapi/models/ProbePendingResponse.d.ts +13 -2
  235. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  236. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  237. package/dist/openapi/models/ProcessingClass.js +2 -2
  238. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  239. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  240. package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
  241. package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
  242. package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
  243. package/dist/openapi/models/ProcessingClassEntry.js +57 -0
  244. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +13 -2
  245. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  246. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  247. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  248. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  249. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  250. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  251. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  252. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  253. package/dist/openapi/models/ProcessingPlan.js +2 -2
  254. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  255. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  256. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  257. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  258. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  259. package/dist/openapi/models/ReadinessResponse.js +2 -2
  260. package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
  261. package/dist/openapi/models/RegisterUser422Response.js +47 -0
  262. package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
  263. package/dist/openapi/models/RegisterUserRequest.js +47 -0
  264. package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
  265. package/dist/openapi/models/ResetPasswordRequest.js +47 -0
  266. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  267. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  268. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  269. package/dist/openapi/models/RetryResponse.js +2 -2
  270. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  271. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  272. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  273. package/dist/openapi/models/SseCompletionBase.js +2 -2
  274. package/dist/openapi/models/SseEventType.d.ts +2 -2
  275. package/dist/openapi/models/SseEventType.js +2 -2
  276. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  277. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  278. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  279. package/dist/openapi/models/SseJobFailedData.js +2 -2
  280. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  281. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  282. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  283. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  284. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  285. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  286. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  287. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  288. package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
  289. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  290. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  291. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  292. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  293. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  294. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  295. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  296. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  297. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  298. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  299. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  300. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  301. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  302. package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
  303. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  304. package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
  305. package/dist/openapi/models/UpdateProfile200Response.js +54 -0
  306. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
  307. package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
  308. package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
  309. package/dist/openapi/models/UpdateProfile422Response.js +47 -0
  310. package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
  311. package/dist/openapi/models/UpdateProfileRequest.js +47 -0
  312. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  313. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  314. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
  315. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  316. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  317. package/dist/openapi/models/UploadFile403Response.js +2 -2
  318. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  319. package/dist/openapi/models/UploadFile422Response.js +2 -2
  320. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  321. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  322. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  323. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  324. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  325. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  326. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  327. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  328. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  329. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  330. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  331. package/dist/openapi/models/UploadResponse.js +2 -2
  332. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
  333. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  334. package/dist/openapi/models/UploadSource.d.ts +2 -2
  335. package/dist/openapi/models/UploadSource.js +2 -2
  336. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  337. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  338. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  339. package/dist/openapi/models/UploadThresholds.js +2 -2
  340. package/dist/openapi/models/UserTier.d.ts +2 -2
  341. package/dist/openapi/models/UserTier.js +2 -2
  342. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +2 -2
  343. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  344. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  345. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  346. package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
  347. package/dist/openapi/models/VerifyEmailRequest.js +43 -0
  348. package/dist/openapi/models/WarningType.d.ts +2 -2
  349. package/dist/openapi/models/WarningType.js +2 -2
  350. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  351. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  352. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  353. package/dist/openapi/models/WebhookPayload.js +2 -2
  354. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  355. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  356. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  357. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  358. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  359. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  360. package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
  361. package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
  362. package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
  363. package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
  364. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  365. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  366. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  367. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  368. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  369. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  370. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  371. package/dist/openapi/models/WorkflowEdge.js +2 -2
  372. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
  373. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  374. package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
  375. package/dist/openapi/models/WorkflowListResponse.js +50 -0
  376. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
  377. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
  378. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  379. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  380. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  381. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  382. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  383. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  384. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  385. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  386. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  387. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  388. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  389. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  390. package/dist/openapi/models/WorkflowSource.d.ts +7 -4
  391. package/dist/openapi/models/WorkflowSource.js +2 -2
  392. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  393. package/dist/openapi/models/WorkflowStatus.js +2 -2
  394. package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
  395. package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
  396. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  397. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  398. package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
  399. package/dist/openapi/models/WorkflowSummary.js +57 -0
  400. package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
  401. package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
  402. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  403. package/dist/openapi/models/WorkflowWarning.js +2 -2
  404. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  405. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  406. package/dist/openapi/models/index.d.ts +31 -1
  407. package/dist/openapi/models/index.js +31 -1
  408. package/dist/openapi/runtime.d.ts +2 -2
  409. package/dist/openapi/runtime.js +2 -2
  410. package/dist/operations/compress.d.ts +0 -9
  411. package/dist/operations/compress.js +0 -6
  412. package/dist/operations/compress.metadata.js +4 -12
  413. package/dist/operations/index.d.ts +3 -0
  414. package/dist/operations/index.js +3 -0
  415. package/dist/operations/merge.d.ts +4 -0
  416. package/dist/operations/merge.metadata.js +12 -0
  417. package/dist/operations/passthrough.metadata.d.ts +2 -0
  418. package/dist/operations/passthrough.metadata.js +6 -0
  419. package/dist/operations/render_variants.d.ts +24 -0
  420. package/dist/operations/render_variants.js +14 -0
  421. package/dist/operations/render_variants.metadata.d.ts +2 -0
  422. package/dist/operations/render_variants.metadata.js +18 -0
  423. package/dist/operations/split.d.ts +8 -1
  424. package/dist/operations/split.js +5 -0
  425. package/dist/operations/split.metadata.js +19 -6
  426. package/openapi/api.yaml +2333 -241
  427. package/operations/schemas/archive.yaml +1 -1
  428. package/operations/schemas/audio_overlay.yaml +29 -13
  429. package/operations/schemas/audio_to_video.yaml +6 -5
  430. package/operations/schemas/audio_watermark.yaml +18 -16
  431. package/operations/schemas/compress.yaml +60 -35
  432. package/operations/schemas/convert.yaml +6 -1
  433. package/operations/schemas/custom_luma.yaml +18 -3
  434. package/operations/schemas/image_watermark.yaml +22 -7
  435. package/operations/schemas/merge.yaml +88 -35
  436. package/operations/schemas/passthrough.yaml +49 -0
  437. package/operations/schemas/render_variants.yaml +117 -0
  438. package/operations/schemas/split.yaml +78 -20
  439. package/operations/schemas/text_watermark.yaml +6 -6
  440. package/operations/schemas/thumbnail.yaml +1 -1
  441. package/operations/schemas/video_text_watermark.yaml +2 -2
  442. package/operations/schemas/video_watermark.yaml +7 -4
  443. package/package.json +3 -1
  444. package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
  445. package/dist/openapi/models/LogoutUser200Response.js +0 -53
  446. /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
@@ -75,10 +75,8 @@ operation:
75
75
  depends_on: { output_type: video }
76
76
  description: |
77
77
  Transition effect between images in the slideshow output.
78
- Catalog from FFmpeg 7.1.1 xfade filter (per ADR-0007). See
79
- per_value_availability for per-value rollout state. The
80
- `none` value is a sentinel ("no transition / hard cut"),
81
- not an FFmpeg preset.
78
+ `none` means a hard cut with no transition. Some effects
79
+ are still rolling out — check their availability.
82
80
  per_value_availability:
83
81
  # Untagged values default to stable per ADR-0001 §1.4.
84
82
  smoothleft: { availability: beta }
@@ -139,12 +137,27 @@ operation:
139
137
  mimes:
140
138
  - video/mp4
141
139
  - video/webm
140
+ - video/quicktime
142
141
  processing_class:
143
142
  # F8 long-form video tier (per ticket I15-CONS). Merge uses
144
- # alias class names because its differentiator is concat-
145
- # compatibility (I16-CONS re_encode_mode) rather than just
146
- # size/duration a small merge can still need long_form
147
- # when inputs require re-encoding.
143
+ # alias class names (short_form_concat / long_form_re_encode),
144
+ # but ROUTING (which class) is DURATION/SIZE-driven at
145
+ # create-plan, NOT concat-compatibility: the API resolver
146
+ # assigns long_form when summed input duration exceeds the
147
+ # short_form cap (PT5M) OR summed size exceeds 1 GiB; it has no
148
+ # per-input codec/pixfmt at create-plan to decide re-encode-need
149
+ # (MAVh1blw; api d363a4ab). re_encode-vs-stream-copy is a WORKER
150
+ # SUB-MODE WITHIN EACH class, not a long-form differentiator:
151
+ # short-form (filter_complex) re-encodes heterogeneous inputs +
152
+ # crossfade fine; long_form_re_encode (FFmpeg concat-demuxer)
153
+ # REQUIRES UNIFORM inputs and re-encodes them (e.g. uniform VP9 ->
154
+ # mp4). So long_form_re_encode = LONG-duration/size + uniform-but-
155
+ # not-stream-copyable. HETEROGENEOUS long merges (per-input codec
156
+ # mismatch at long duration) are the deferred Phase-3 gap (NOT
157
+ # built; concat-demuxer uniformity-rejects them). The earlier
158
+ # "a small merge can need long_form when inputs require
159
+ # re-encoding" claim was an over-claim describing a future
160
+ # two-trigger state — corrected here.
148
161
  short_form_concat:
149
162
  availability: stable
150
163
  constraints:
@@ -183,9 +196,8 @@ operation:
183
196
  custom, wipetl, wipetr, wipebl]
184
197
  default: none
185
198
  description: |
186
- Default transition between clips. Catalog from FFmpeg 7.1.1
187
- xfade filter (per ADR-0007). See per_value_availability for
188
- per-value rollout state.
199
+ Default transition between clips. Some effects are still
200
+ rolling out check their availability.
189
201
  per_value_availability:
190
202
  smoothleft: { availability: beta }
191
203
  smoothright: { availability: beta }
@@ -291,33 +303,37 @@ operation:
291
303
  depends_on: { re_encode_mode: [auto, always] }
292
304
  per_value_depends_on:
293
305
  target_size: { codec: [h264] }
306
+ # target_size is currently codec=h264 only — h265 / vp9 / av1
307
+ # each require a different encoder invocation and are tracked
308
+ # as separate per-codec Lambda follow-ups. The
309
+ # per_value_depends_on block above gates encoding_mode=target_size
310
+ # on codec ∈ [h264], so a request pairing target_size with
311
+ # {h265, vp9, av1} is rejected as invalid_options whether or not
312
+ # target_size_bytes is supplied — closing the gap left by the
313
+ # previous option-level depends_on (which only triggered when
314
+ # target_size_bytes was present). Per ticket bsV3FWM5.
294
315
  description: |
295
- CRF (quality-targeted) vs target_size (two-pass to fixed file size).
296
- `target_size` is currently `codec=h264` only libx265 / libvpx-vp9 / libsvtav1 each
297
- require a different two-pass invocation and are tracked as separate per-codec
298
- Lambda follow-ups. The `per_value_depends_on` block above gates
299
- `encoding_mode=target_size` itself on `codec ∈ [h264]`, so a request with
300
- `encoding_mode=target_size + codec ∈ {h265, vp9, av1}` is rejected as
301
- `invalid_options` regardless of whether `target_size_bytes` is supplied —
302
- closing the gap left by the previous option-level `depends_on` (which only
303
- triggered when `target_size_bytes` was present in the payload). Per ticket
304
- [`bsV3FWM5`](https://trello.com/c/bsV3FWM5).
316
+ CRF aims for a quality level and lets the file size vary;
317
+ target_size aims for a fixed output file size. `target_size`
318
+ currently works with `codec=h264` only a request pairing it
319
+ with another codec is rejected as `invalid_options`.
305
320
 
306
321
  target_size_bytes:
307
322
  type: integer
308
323
  min: 1048576
309
324
  depends_on: { re_encode_mode: [auto, always], encoding_mode: target_size }
325
+ # h264-only — the codec gate lives on
326
+ # encoding_mode.per_value_depends_on.target_size.codec (per ticket
327
+ # bsV3FWM5); this option's own depends_on no longer duplicates it.
328
+ # The practical floor below is enforced by the h264 encoder.
310
329
  description: |
311
- Two-pass target file size in bytes (minimum 1 MiB). Required when
312
- `encoding_mode=target_size`. h264-only — the codec gate now lives on
313
- `encoding_mode.per_value_depends_on.target_size.codec` (per ticket
314
- [`bsV3FWM5`](https://trello.com/c/bsV3FWM5)); this option's own
315
- `depends_on` no longer duplicates it.
330
+ Target file size in bytes (minimum 1 MiB). Required when
331
+ `encoding_mode=target_size`, which is h264-only.
316
332
 
317
- Practical floor: a ~100 kbps post-AAC video bitrate (i.e. `target_size_bytes`
318
- corresponding to less than ~100 kbps of video after subtracting the 160 kbps
319
- AAC audio track over the merged duration) is silently floored by libx264 and
320
- the resulting file will not honour the requested `target_size_bytes`.
333
+ Practical floor: if the target works out to less than
334
+ ~100 kbps of video (after subtracting the ~160 kbps AAC audio
335
+ track over the merged duration), the encoder floors it and the
336
+ resulting file will not honour the requested `target_size_bytes`.
321
337
  Publishers targeting very small outputs should size accordingly.
322
338
 
323
339
  per_input_options:
@@ -373,6 +389,24 @@ operation:
373
389
  max: 5.0
374
390
  depends_on: { transition: crossfade }
375
391
  description: "Override crossfade duration for this join point"
392
+ trim_start:
393
+ type: float
394
+ min: 0
395
+ description: |
396
+ Trim from beginning in seconds (per-input). Applied to this
397
+ input BEFORE any transition/crossfade. Matches the
398
+ `compress` trim semantic. No `max` — the upper bound is the
399
+ input's own duration, enforced by the worker, not statically
400
+ bounded here.
401
+ trim_end:
402
+ type: float
403
+ min: 0
404
+ description: |
405
+ Trim from end in seconds (per-input). Applied to this input
406
+ BEFORE any transition/crossfade. Matches the `compress` trim
407
+ semantic. No `max` — the upper bound is the input's own
408
+ duration, enforced by the worker, not statically bounded
409
+ here.
376
410
 
377
411
  audio:
378
412
  # Audio transition catalog is intentionally separate from the
@@ -404,12 +438,13 @@ operation:
404
438
  # xfade catalog on merge.image / merge.video.
405
439
  values: [none, crossfade]
406
440
  default: none
441
+ # Audio-only catalog (acrossfade-backed); see FORMAT.md §"Audio
442
+ # vs visual transition catalogs (merge)" for the additions
443
+ # policy. Future values are added with per_value_availability
444
+ # per ADR-0001 §1.4.
407
445
  description: |
408
- Default transition between clips. Audio-only catalog
409
- (acrossfade-backed); see FORMAT.md §"Audio vs visual
410
- transition catalogs (merge)" for additions policy. Future
411
- values (e.g. `fade_curve` variants) will be added with
412
- `per_value_availability` per ADR-0001 §1.4.
446
+ Transition between audio clips. `none` joins them with a
447
+ hard cut; `crossfade` blends one into the next.
413
448
  crossfade_duration:
414
449
  type: float
415
450
  min: 0
@@ -448,3 +483,21 @@ operation:
448
483
  min: 0
449
484
  max: 10.0
450
485
  description: "Override gap duration for this join point"
486
+ trim_start:
487
+ type: float
488
+ min: 0
489
+ description: |
490
+ Trim from beginning in seconds (per-input). Applied to this
491
+ input BEFORE any transition/crossfade. Matches the
492
+ `compress` trim semantic. No `max` — the upper bound is the
493
+ input's own duration, enforced by the worker, not statically
494
+ bounded here.
495
+ trim_end:
496
+ type: float
497
+ min: 0
498
+ description: |
499
+ Trim from end in seconds (per-input). Applied to this input
500
+ BEFORE any transition/crossfade. Matches the `compress` trim
501
+ semantic. No `max` — the upper bound is the input's own
502
+ duration, enforced by the worker, not statically bounded
503
+ here.
@@ -0,0 +1,49 @@
1
+ schema_version: "1.0.0"
2
+
3
+ operation:
4
+ type: passthrough
5
+ availability: beta
6
+ description: |
7
+ Inert lossless source operation. A single-input source job whose
8
+ SOLE operation is `passthrough` emits its source bytes UNCHANGED —
9
+ no compression, no transformation, no Lambda dispatch. The API
10
+ self-completes the job at workflow-create/publish time: the job's
11
+ terminal output IS the upload's `{bucket, key}` unchanged.
12
+
13
+ **Purpose.** Lets an uploaded file enter a multi-input operation
14
+ (`merge` / `archive` / `image_watermark` / etc.) LOSSLESSLY. Since
15
+ V2 narrows `JobInputV2.source` to exclude upload-direct (`MultiInputSource`
16
+ — job_output / external_import / connection only), an upload that
17
+ must feed a multi-input op enters via a `passthrough` source job
18
+ referenced downstream by `{ type: job_output, from: <id> }`. This
19
+ preserves billing / DAG / lineage that direct upload-in-inputs[]
20
+ would bypass.
21
+
22
+ **Distinct from `operations: []`.** An empty `operations[]` on a
23
+ single-input upload job KEEPS its implicit-compress meaning (see
24
+ `POST /api/workflows` description). `passthrough` is the EXPLICIT
25
+ lossless opt-out chosen via the existing rule "non-empty
26
+ `operations[]` without `compress` = compression opt-out" — it is a
27
+ sole, named operation, not an empty chain.
28
+
29
+ **Never published to SNS.** Because the API self-completes the job
30
+ at publish, `passthrough` is INTENTIONALLY absent from the AsyncAPI
31
+ routing enums (`OperationType`, `OperationRequestAttributes.operation_type`)
32
+ and has no `ops-passthrough` queue. It never appears on the wire as
33
+ a request message.
34
+
35
+ Media-agnostic (no `mime_groups`): it accepts any uploaded MIME and
36
+ copies it verbatim, so there are no per-MIME options or constraints.
37
+ `availability: beta` — the API self-completion path is LIVE (the
38
+ inputs[]-narrowing + passthrough self-complete mechanism is deployed),
39
+ so workflow-create accepts `passthrough` source jobs and MUST NOT
40
+ return `feature_not_available`. Activated per ticket
41
+ [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta
42
+ flip; self-complete code deployed API-side).
43
+ default: false
44
+ input_model: single
45
+
46
+ # DELIBERATELY absent from the operation chain matrix
47
+ # (docs/matrices/operation-chains.md). passthrough is a sole-op source
48
+ # node, not a chainable transform — with no `mime_groups` it produces
49
+ # zero matrix rows, which is correct: nothing chains onto or after it.
@@ -0,0 +1,117 @@
1
+ schema_version: "2.0.0"
2
+
3
+ operation:
4
+ type: render_variants
5
+ # Generate N resized/re-encoded image variants from ONE decoded source in a
6
+ # single operation (image fan-out). Per spike GA2kiRY8 / epic nksLtV28,
7
+ # ticket w3EwzHYd. Worker = the shared convert image-encode stack + FitMode
8
+ # (lambdas-confirmed reuse: image_convert.rs encode + domain/thumbnailer.rs).
9
+ #
10
+ # availability: planned — the worker (lambdas 08q0ySAc) + its SNS subscription
11
+ # (terraform MNuDYJaY) are downstream of this contract, so the server returns
12
+ # `feature_not_available` (422) until they are live. The planned -> beta flip
13
+ # is a SEPARATE lockstep cut once the worker + wire are up (the two-gate rule;
14
+ # never flip beta ahead of the publisher). Source MIMEs are jpeg/png/webp only
15
+ # — AVIF is encode-only in the worker stack (decode unsupported), so it is a
16
+ # valid `output_format` target but NOT a source input.
17
+ description: "Generate multiple resized / re-encoded image variants from a single source image in one operation (image fan-out)."
18
+ availability: planned
19
+ input_model: single
20
+
21
+ mime_groups:
22
+ image:
23
+ availability: planned
24
+ mimes:
25
+ - image/jpeg
26
+ - image/png
27
+ - image/webp
28
+ options:
29
+ targets:
30
+ type: array
31
+ required: true
32
+ minItems: 1
33
+ maxItems: 20
34
+ # Each target is encoded independently from the single decoded
35
+ # source. Width/height are individually optional at the type level;
36
+ # the cross-field rule (fit crop/scale => BOTH required; fit max =>
37
+ # at least one) is worker-enforced and rejected as `invalid_options`,
38
+ # not expressed structurally here (the option DSL has no per-item
39
+ # conditional-required primitive). Documented in prose below.
40
+ description: |
41
+ One output variant per entry (max 20). Each variant is resized /
42
+ re-encoded independently from the single decoded source; the
43
+ operation succeeds or fails **atomically** — there are no partial
44
+ outputs. Each result output echoes its target's `id` back as
45
+ `target_id` so callers can map outputs to the variants they asked
46
+ for.
47
+
48
+ Dimensions: `fit: max` needs at least one of `width` / `height`
49
+ (aspect preserved, output may be smaller than the box). `fit: crop`
50
+ and `fit: scale` require BOTH `width` and `height` (they produce an
51
+ exact-size output). A target whose dimensions exceed the source is
52
+ rejected (`invalid_options`) unless `allow_upscale: true`.
53
+ items:
54
+ type: object
55
+ required:
56
+ - id
57
+ properties:
58
+ id:
59
+ type: string
60
+ pattern: '^[A-Za-z0-9._-]+$'
61
+ maxLength: 64
62
+ # `id` must be unique within the array — this is the addressing
63
+ # key, so duplicates would map two outputs to one `target_id`.
64
+ # JSON Schema `uniqueItems` only catches wholesale-identical
65
+ # target objects, not same-`id`-different-dims; the worker
66
+ # rejects duplicate ids as `invalid_options` (worker-enforced,
67
+ # like the dimension rules).
68
+ description: |
69
+ Caller-assigned identifier, unique within the array
70
+ (duplicate ids are rejected as `invalid_options`). Echoed
71
+ verbatim as `target_id` on the matching result output — the
72
+ addressing contract.
73
+ width:
74
+ type: integer
75
+ minimum: 1
76
+ maximum: 16384
77
+ description: "Target width in pixels. Required together with height for fit crop/scale; for fit max, at least one of width/height is required."
78
+ height:
79
+ type: integer
80
+ minimum: 1
81
+ maximum: 16384
82
+ description: "Target height in pixels. Required together with width for fit crop/scale; for fit max, at least one of width/height is required."
83
+ fit:
84
+ type: string
85
+ enum:
86
+ - max
87
+ - crop
88
+ - scale
89
+ default: max
90
+ description: |
91
+ Resize mode. max = fit within the box, aspect preserved
92
+ (output may be smaller); needs at least one dimension.
93
+ crop = fill and trim to exact width x height. scale = force
94
+ exact width x height. crop and scale require both dimensions.
95
+ quality:
96
+ type: integer
97
+ minimum: 1
98
+ maximum: 100
99
+ default: 85
100
+ description: "Encode quality (lossy formats only — jpeg / webp / avif). Accepted but ignored for png (lossless)."
101
+ output_format:
102
+ type: string
103
+ enum:
104
+ - jpeg
105
+ - png
106
+ - webp
107
+ - avif
108
+ description: "Output format for this variant. When omitted, the source format is preserved."
109
+ background:
110
+ type: string
111
+ pattern: '^#[0-9A-Fa-f]{6}$'
112
+ default: "#FFFFFF"
113
+ description: "Background colour (hex #RRGGBB), applied only when flattening a transparent source into an opaque format (e.g. a PNG with alpha rendered to JPEG). Ignored otherwise."
114
+ allow_upscale:
115
+ type: boolean
116
+ default: false
117
+ description: "When false (default), a target whose dimensions exceed the source is rejected (`invalid_options`). Set true to permit upscaling. fit max never upscales."
@@ -9,14 +9,19 @@ operation:
9
9
  into N outputs per the per-mime-group catalog. Mirrors the
10
10
  `merge` / `convert` catalog-split-by-mime-group pattern.
11
11
 
12
- **Three modes** (audio + video; the mode discriminator gates which
13
- of the three options applies per the `depends_on` rules in this
12
+ **Three shared modes** (audio + video; the mode discriminator
13
+ gates which option applies per the `depends_on` rules in this
14
14
  schema):
15
15
  - `interval`: split every N numeric-seconds.
16
16
  - `count`: split into N equal-duration pieces (integer 2..=200).
17
17
  - `cut_points`: explicit cut points in numeric-seconds (strictly
18
18
  increasing, no duplicates, each > 0 and < probed duration).
19
19
 
20
+ **Plus an audio-only `silence` mode** (`beta`, gated by the
21
+ `silence_mode_audio` feature): cut at detected silence gaps via
22
+ the worker's ffmpeg `silencedetect` filter. Video stays
23
+ three-mode.
24
+
20
25
  **GIF + PDF use range-based selection** instead of three modes:
21
26
  - GIF (`image_gif`): `frame_range` REQUIRED + `output_format`
22
27
  enum {png,webp,jpg}.
@@ -34,6 +39,8 @@ operation:
34
39
  - `interval`: `ceil(probed_duration / interval) <= 200`
35
40
  - `count`: enforced by the option's `min: 2 max: 200` range
36
41
  - `cut_points`: `cut_points.len() + 1 <= 200`
42
+ - `silence` (audio): resolved segment count (detected gaps + 1)
43
+ `<= 200`; preflight rejects as `invalid_options` (422)
37
44
  - PDF: resolved page count after expansion `<= 200`
38
45
  (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))
39
46
  - GIF: resolved frame count after expansion `<= 200`
@@ -59,12 +66,16 @@ operation:
59
66
  via `processing_class`). No schema-side discriminator beyond MIME
60
67
  detection + `processing_class`.
61
68
 
62
- `availability: beta` for the `audio` mime_group (worker live on
63
- staging per lambdas #161 — shape-stable + opt-in, MUST NOT 422).
64
- The `image_gif`, `document_pdf`, and `video` mime_groups stay
65
- `availability: planned` until their cross-repo Lambda workers ship
66
- ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + lambdas L1); dispatch
67
- returns `feature_not_available` (422) for those groups until then.
69
+ `availability: beta` for the `audio` and `video` mime_groups
70
+ (workers live on staging — shape-stable + opt-in, MUST NOT 422).
71
+ Video activates **both classes**: `video.processing_class.short_form`
72
+ AND `long_form` are `beta` the `split-video-fargate` worker is proven
73
+ on staging (4GB+ HEVC input → keyframe-aligned segments;
74
+ [`rcwvUKhI`](https://trello.com/c/rcwvUKhI)). The `image_gif` and
75
+ `document_pdf` mime_groups stay `availability: planned` until their
76
+ cross-repo Lambda workers ship ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)
77
+ + lambdas L1); dispatch returns `feature_not_available` (422) for the
78
+ still-planned groups/classes until then.
68
79
 
69
80
  Per ADR-0014.
70
81
  default: false
@@ -72,13 +83,14 @@ operation:
72
83
 
73
84
  features:
74
85
  silence_mode_audio:
75
- availability: planned
86
+ availability: beta
76
87
  description: |
77
88
  Silence-detect cut mode for audio (`mode: silence` —
78
- Cinavia/Resemble territory, server-side silence detection).
79
- OUT of V1 (Lambda support not yet shipped); declared as a
80
- future-work feature here so SDK consumers see the gate.
81
- Picked up as a separate post-launch ticket.
89
+ server-side silence detection in the audio split worker).
90
+ `beta`: shape-stable + opt-in. The worker is built; the mode
91
+ ships dark until the API regenerates enum validation to accept
92
+ `mode: silence`. The `silence` enum value carries a matching
93
+ `per_value_availability: beta` on `audio.mode`.
82
94
 
83
95
  mime_groups:
84
96
  # Animated GIF base — parallel mime_group naming follows the
@@ -161,13 +173,17 @@ operation:
161
173
  options:
162
174
  mode:
163
175
  type: enum
164
- values: [interval, count, cut_points]
176
+ values: [interval, count, cut_points, silence]
165
177
  default: interval
178
+ per_value_availability:
179
+ silence: { availability: beta }
166
180
  description: |
167
181
  Split strategy:
168
182
  - `interval`: cut every `interval` seconds.
169
183
  - `count`: cut into `count` equal-duration pieces.
170
184
  - `cut_points`: cut at explicit timestamps.
185
+ - `silence`: cut at detected silence gaps (audio-only,
186
+ `beta` via the `silence_mode_audio` feature gate).
171
187
 
172
188
  interval:
173
189
  type: float
@@ -212,37 +228,79 @@ operation:
212
228
  200-output cap declaratively. Only valid when
213
229
  `mode: cut_points`.
214
230
 
231
+ silence_threshold_db:
232
+ type: float
233
+ max: 0.0
234
+ default: -50.0
235
+ depends_on: { mode: silence }
236
+ # Maps to the worker's silence-detection noise floor.
237
+ description: |
238
+ Noise floor below which audio counts as silence, in dBFS
239
+ (negative; 0.0 = full scale). Strictly negative in
240
+ practice; `max: 0.0` is the declarative ceiling (a 0 dB
241
+ "silence" floor is degenerate, like the strict bounds
242
+ documented in prose for `cut_points`). Only valid when
243
+ `mode: silence`.
244
+
245
+ silence_min_duration:
246
+ type: float
247
+ min: 0.001
248
+ default: 0.75
249
+ depends_on: { mode: silence }
250
+ # Maps to the worker's silence-detection minimum-duration parameter.
251
+ description: |
252
+ Minimum duration of a silence gap, in numeric seconds
253
+ (sub-second allowed), before it is treated as a cut point.
254
+ `min: 0.001` is the strict-positive sub-second idiom
255
+ (cf. `interval`). Only valid when `mode: silence`.
256
+
257
+ silence_handling:
258
+ type: enum
259
+ values: [keep_at_end]
260
+ default: keep_at_end
261
+ depends_on: { mode: silence }
262
+ description: |
263
+ How detected silence is handled at segment boundaries.
264
+ `keep_at_end`: trailing silence stays appended to the
265
+ preceding segment (no separate silence-only outputs).
266
+ Only valid when `mode: silence`.
267
+
215
268
  precision:
216
269
  type: enum
217
270
  values: [fast, exact]
218
271
  default: fast
272
+ # Don't use "keyframe" language here — that's video-only;
273
+ # audio drift is packet-boundary.
219
274
  description: |
220
275
  Cut precision. Under `fast`, audio cuts are
221
276
  packet-boundary approximate (drift bounded by codec
222
277
  packet size — typically <= 23ms for AAC, <= 26ms for
223
278
  MP3). Under `exact`, the Lambda re-encodes to align cuts
224
279
  precisely at the requested timestamps (slower, larger
225
- output, but sample-accurate). Avoid "keyframe" language
226
- — that's video-only; audio drift is packet-boundary.
280
+ output, but sample-accurate).
227
281
 
228
282
  # Video base — same three modes + precision + processing_class.
229
283
  # Long-form routes to `split-video-fargate` (same OperationType,
230
284
  # different worker per `processing_class`).
231
285
  video:
232
- availability: planned
286
+ availability: beta
233
287
  mimes:
234
288
  - video/mp4
235
289
  - video/webm
290
+ - video/quicktime
236
291
  processing_class:
237
292
  short_form:
238
- availability: planned
293
+ availability: beta
239
294
  constraints:
240
295
  max_input_duration: "PT5M"
241
296
  max_input_size_bytes: 524288000
242
297
  max_output_size_bytes: 524288000
243
298
  long_form:
244
- # Routes to split-video-fargate worker per ADR-0014.
245
- availability: planned
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).
303
+ availability: beta
246
304
  required_tier: pro
247
305
  constraints: # baseline = Pro
248
306
  max_input_duration: "PT12H"
@@ -25,10 +25,10 @@ operation:
25
25
  text:
26
26
  type: string
27
27
  required: true
28
+ # Rendered with the bundled Liberation Sans (SIL OFL); a single
29
+ # text overlay is capped at 4 megapixels before rendering fails.
28
30
  description: |
29
- Watermark text. Must be non-empty. Rendered with bundled
30
- Liberation Sans (SIL OFL). A single text overlay is capped
31
- at 4 megapixels before rendering fails.
31
+ Watermark text. Must be non-empty.
32
32
 
33
33
  font_size:
34
34
  type: float
@@ -59,11 +59,11 @@ operation:
59
59
  min: -360.0
60
60
  max: 360.0
61
61
  default: -45.0
62
+ # Tiled canvas is capped at 25 megapixels pre-rotation with a
63
+ # 5000 px maximum side length.
62
64
  description: |
63
65
  Rotation angle in degrees. Default -45° suits tiled mode
64
- (angled diagonal pattern). Clamped to range. Tiled canvas is
65
- capped at 25 megapixels pre-rotation with 5000 px maximum
66
- side length.
66
+ (angled diagonal pattern). Clamped to range.
67
67
 
68
68
  watermark_mode:
69
69
  type: enum
@@ -45,7 +45,7 @@ operation:
45
45
  mimes:
46
46
  - video/mp4
47
47
  - video/webm
48
- - video/ogg
48
+ - video/quicktime
49
49
  processing_class:
50
50
  # F8 long-form video tier (per ticket I15-CONS). Thumbnail
51
51
  # extracts a single frame, so size/duration caps reflect
@@ -58,9 +58,9 @@ operation:
58
58
  text:
59
59
  type: string
60
60
  required: true
61
+ # Rendered with the bundled Liberation Sans (SIL OFL).
61
62
  description: |
62
- Watermark text. Must be non-empty. Rendered with bundled
63
- Liberation Sans (SIL OFL).
63
+ Watermark text. Must be non-empty.
64
64
 
65
65
  font_size:
66
66
  type: float
@@ -4,12 +4,15 @@ operation:
4
4
  type: video_watermark
5
5
  availability: beta
6
6
  description: |
7
- Apply an image overlay (file or external source) onto a base video
7
+ Apply an image overlay onto a base video
8
8
  asset using FFmpeg's `overlay` filter. Multi-input role-based:
9
9
  exactly one input with `role: base` (the source video) + exactly
10
- one with `role: overlay` (the watermark image). The overlay can be
11
- an upload, an external_import handle, or a vault connection per
12
- `WorkflowSource`.
10
+ one with `role: overlay` (the watermark image). Each input is a
11
+ `MultiInputSource` an external_import handle, a vault connection,
12
+ or an upstream `job_output` (uploads are NOT referenced directly
13
+ inside inputs[]). To use an uploaded base or overlay, feed it through
14
+ a `passthrough` source job and reference it via `{ type: job_output,
15
+ from: <id> }` (per ticket 4som89Uh).
13
16
 
14
17
  **Dedicated operation, not an extension of `image_watermark`.**
15
18
  `image_watermark` is pure-Rust/no-FFmpeg and handles
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.9.0",
3
+ "version": "0.17.0",
4
4
  "description": "Generated contract types for GISL (Give It Smaller)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,6 +35,8 @@
35
35
  "./operations/schemas/custom_luma.yaml": "./operations/schemas/custom_luma.yaml",
36
36
  "./operations/schemas/image_watermark.yaml": "./operations/schemas/image_watermark.yaml",
37
37
  "./operations/schemas/merge.yaml": "./operations/schemas/merge.yaml",
38
+ "./operations/schemas/passthrough.yaml": "./operations/schemas/passthrough.yaml",
39
+ "./operations/schemas/render_variants.yaml": "./operations/schemas/render_variants.yaml",
38
40
  "./operations/schemas/split.yaml": "./operations/schemas/split.yaml",
39
41
  "./operations/schemas/text_watermark.yaml": "./operations/schemas/text_watermark.yaml",
40
42
  "./operations/schemas/thumbnail.yaml": "./operations/schemas/thumbnail.yaml",