@giveitsmaller/contracts 0.55.0 → 0.58.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 (482) hide show
  1. package/LICENSE +202 -0
  2. package/accepted-options/accepted-options.json +1 -15
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/availability/availability.json +9 -60
  5. package/code-builder/code-builder-metadata.json +4 -166
  6. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  8. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorType.d.ts +52 -31
  21. package/dist/openapi/models/AuthErrorType.js +53 -32
  22. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  23. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  24. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  25. package/dist/openapi/models/AvailabilityValue.js +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  30. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  31. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  32. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  33. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  34. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  35. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  36. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  37. package/dist/openapi/models/CallbackEventType.js +1 -1
  38. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  39. package/dist/openapi/models/CapabilityCondition.js +1 -1
  40. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  41. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  42. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  54. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  56. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  58. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityProduces.js +1 -1
  60. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  62. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  64. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  66. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  67. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  68. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  69. package/dist/openapi/models/CodegenSource.js +1 -1
  70. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  71. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  72. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  73. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  74. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  76. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  78. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  79. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  80. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  81. package/dist/openapi/models/CompositionPlan.js +1 -1
  82. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  83. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  84. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  85. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  86. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  87. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  88. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  89. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  90. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  91. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  92. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  93. package/dist/openapi/models/ConnectionSource.js +1 -1
  94. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  95. package/dist/openapi/models/ContactRequest.js +1 -1
  96. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  97. package/dist/openapi/models/ContactSubject.js +1 -1
  98. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  99. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  100. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  101. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  102. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  103. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  104. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  105. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  106. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  107. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  108. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  109. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  110. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  111. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  112. package/dist/openapi/models/CreateWorkflow401Response.d.ts +160 -0
  113. package/dist/openapi/models/CreateWorkflow401Response.js +73 -0
  114. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  116. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  117. package/dist/openapi/models/CreditTransaction.js +1 -1
  118. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  119. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  120. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  121. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  122. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  123. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  124. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  125. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  126. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  127. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  128. package/dist/openapi/models/Delivery.d.ts +1 -1
  129. package/dist/openapi/models/Delivery.js +1 -1
  130. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  131. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  132. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  133. package/dist/openapi/models/DeliveryPlan.js +1 -1
  134. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  135. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  136. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  138. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  139. package/dist/openapi/models/DeliverySelection.js +1 -1
  140. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  141. package/dist/openapi/models/DownloadBundle.js +1 -1
  142. package/dist/openapi/models/EmailNotify.d.ts +73 -0
  143. package/dist/openapi/models/EmailNotify.js +46 -0
  144. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  145. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  146. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  147. package/dist/openapi/models/EndpointProjection.js +1 -1
  148. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  149. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  150. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  151. package/dist/openapi/models/EstimateQuality.js +1 -1
  152. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  153. package/dist/openapi/models/EstimateRange.js +1 -1
  154. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  155. package/dist/openapi/models/ExternalDestination.js +1 -1
  156. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  157. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  158. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  159. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  160. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  161. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  162. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  163. package/dist/openapi/models/ExternalImportToken.js +1 -1
  164. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  165. package/dist/openapi/models/ExternalSource.js +1 -1
  166. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  167. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  168. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  169. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  170. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  171. package/dist/openapi/models/FeatureViolation.js +1 -1
  172. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  173. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  174. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  175. package/dist/openapi/models/JobDefinition.js +1 -1
  176. package/dist/openapi/models/JobDownload.d.ts +1 -1
  177. package/dist/openapi/models/JobDownload.js +1 -1
  178. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  179. package/dist/openapi/models/JobInputV2.js +1 -1
  180. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  181. package/dist/openapi/models/JobMediaClass.js +1 -1
  182. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  183. package/dist/openapi/models/JobOutputSource.js +1 -1
  184. package/dist/openapi/models/JobResponse.d.ts +9 -7
  185. package/dist/openapi/models/JobResponse.js +1 -1
  186. package/dist/openapi/models/JobStatus.d.ts +1 -1
  187. package/dist/openapi/models/JobStatus.js +1 -1
  188. package/dist/openapi/models/JobType.d.ts +1 -1
  189. package/dist/openapi/models/JobType.js +1 -1
  190. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  191. package/dist/openapi/models/LivenessResponse.js +1 -1
  192. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  193. package/dist/openapi/models/LoginUser200Response.js +1 -1
  194. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  195. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  196. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  197. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  198. package/dist/openapi/models/LoginUser401Response.d.ts +158 -0
  199. package/dist/openapi/models/LoginUser401Response.js +71 -0
  200. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  201. package/dist/openapi/models/LoginUserRequest.js +1 -1
  202. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  203. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  204. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  205. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  206. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  207. package/dist/openapi/models/MetadataResponse.js +1 -1
  208. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  209. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  210. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  211. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  212. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  213. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  214. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  215. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  216. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  217. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  218. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  219. package/dist/openapi/models/MultiInputSource.js +1 -1
  220. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  221. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  222. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  223. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  224. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  225. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  226. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  227. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  228. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  229. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  230. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  231. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  232. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  233. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  234. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  235. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  236. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  237. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  238. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  239. package/dist/openapi/models/MultipartPartListing.js +1 -1
  240. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  241. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  242. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  243. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  244. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  245. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  246. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  247. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  248. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  249. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  250. package/dist/openapi/models/NotifyConfig.d.ts +46 -0
  251. package/dist/openapi/models/NotifyConfig.js +42 -0
  252. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  253. package/dist/openapi/models/OperationCapability.js +1 -1
  254. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  255. package/dist/openapi/models/OperationDefinition.js +1 -1
  256. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  257. package/dist/openapi/models/OperationDownload.js +1 -1
  258. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  259. package/dist/openapi/models/OperationInputModel.js +1 -1
  260. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  261. package/dist/openapi/models/OperationResponse.js +1 -1
  262. package/dist/openapi/models/OperationResult.d.ts +1 -1
  263. package/dist/openapi/models/OperationResult.js +1 -1
  264. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  265. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  266. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  267. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  268. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  269. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  270. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  271. package/dist/openapi/models/OperationStatus.js +1 -1
  272. package/dist/openapi/models/OperationType.d.ts +1 -1
  273. package/dist/openapi/models/OperationType.js +1 -1
  274. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  275. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  276. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  277. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  278. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  279. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  280. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  281. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  282. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  283. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  284. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  285. package/dist/openapi/models/OptionSchema.js +1 -1
  286. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  287. package/dist/openapi/models/OutputProperties.js +1 -1
  288. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  289. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  290. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  291. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  292. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  293. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  294. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  295. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  296. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  297. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  298. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  299. package/dist/openapi/models/ProcessingClass.js +1 -1
  300. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  301. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  302. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  303. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  304. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  305. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  306. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  307. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  308. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  309. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  310. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  311. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  312. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  313. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  314. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  315. package/dist/openapi/models/ProcessingPlan.js +1 -1
  316. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  317. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  318. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  319. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  320. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  321. package/dist/openapi/models/ReadinessResponse.js +1 -1
  322. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  323. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  324. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  325. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  326. package/dist/openapi/models/{ForgotPasswordRequest.d.ts → ResendVerificationEmailRequest.d.ts} +10 -10
  327. package/dist/openapi/models/{ForgotPasswordRequest.js → ResendVerificationEmailRequest.js} +9 -9
  328. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  329. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  330. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  331. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  332. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  333. package/dist/openapi/models/RetryResponse.js +1 -1
  334. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  335. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  336. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  337. package/dist/openapi/models/SseCompletionBase.js +1 -1
  338. package/dist/openapi/models/SseEventType.d.ts +1 -1
  339. package/dist/openapi/models/SseEventType.js +1 -1
  340. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  341. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  342. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  343. package/dist/openapi/models/SseJobFailedData.js +1 -1
  344. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  345. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  346. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  347. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  348. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  349. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  350. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  351. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  352. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  353. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  354. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  355. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  356. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  357. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  358. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  359. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  360. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  361. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  362. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  363. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  364. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  365. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  366. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  367. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  368. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  369. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  370. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  371. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  372. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  373. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  374. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  375. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  376. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  377. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  378. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  379. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  380. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  381. package/dist/openapi/models/UploadFile403Response.js +1 -1
  382. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  383. package/dist/openapi/models/UploadFile422Response.js +1 -1
  384. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  385. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  386. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  387. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  388. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  389. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  390. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  391. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  392. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  393. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  394. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  395. package/dist/openapi/models/UploadResponse.js +1 -1
  396. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  397. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  398. package/dist/openapi/models/UploadSource.d.ts +19 -1
  399. package/dist/openapi/models/UploadSource.js +3 -1
  400. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  401. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  402. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  403. package/dist/openapi/models/UploadThresholds.js +1 -1
  404. package/dist/openapi/models/UserTier.d.ts +1 -1
  405. package/dist/openapi/models/UserTier.js +1 -1
  406. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  407. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  408. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  409. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  410. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  411. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  412. package/dist/openapi/models/WarningType.d.ts +1 -1
  413. package/dist/openapi/models/WarningType.js +1 -1
  414. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  415. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  416. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  417. package/dist/openapi/models/WebhookPayload.js +1 -1
  418. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  419. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  420. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  421. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  422. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  423. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  424. package/dist/openapi/models/WorkflowCreateRequest.d.ts +22 -1
  425. package/dist/openapi/models/WorkflowCreateRequest.js +4 -1
  426. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  427. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  428. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  431. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  432. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  433. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  434. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  435. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  436. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  437. package/dist/openapi/models/WorkflowEdge.js +1 -1
  438. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  439. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  440. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  441. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  442. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  443. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  444. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  445. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  446. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  448. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  450. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  452. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  454. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  456. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowSource.js +1 -1
  458. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  459. package/dist/openapi/models/WorkflowStatus.js +1 -1
  460. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  461. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  462. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  464. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowSummary.js +1 -1
  466. package/dist/openapi/models/WorkflowSummaryJob.d.ts +8 -5
  467. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  468. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  469. package/dist/openapi/models/WorkflowWarning.js +1 -1
  470. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  471. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  472. package/dist/openapi/models/index.d.ts +5 -1
  473. package/dist/openapi/models/index.js +5 -1
  474. package/dist/openapi/runtime.d.ts +1 -1
  475. package/dist/openapi/runtime.js +1 -1
  476. package/dist/operations/compress.d.ts +0 -21
  477. package/dist/operations/compress.js +0 -14
  478. package/dist/operations/compress.metadata.js +0 -31
  479. package/openapi/api.yaml +398 -113
  480. package/operation-capabilities/operation-capabilities.json +1 -1
  481. package/operations/schemas/compress.yaml +10 -54
  482. package/package.json +2 -2
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.162.0
92
+ version: 2.171.0
93
93
  contact:
94
94
  name: API Support
95
95
 
@@ -221,18 +221,38 @@ paths:
221
221
  required_tier: "enterprise"
222
222
  '413':
223
223
  description: |
224
- File exceeds the absolute maximum upload size (across all
225
- tiers). For tier-specific size caps below this absolute
226
- limit, the server returns 403 with
227
- `error_type: tier_restriction, restriction_kind: file_size`
228
- instead.
224
+ The upload is too large. Two rejection cases, discriminated by the
225
+ `ErrorEnvelope.error` code:
226
+
227
+ - **Byte size** — the file exceeds the absolute maximum upload size
228
+ (across all tiers). For tier-specific size caps below this
229
+ absolute limit, the server returns 403 with `error_type:
230
+ tier_restriction, restriction_kind: file_size` instead.
231
+ - **Pixel dimensions** (`error: IMAGE_DIMENSIONS_TOO_LARGE`) — a
232
+ decodable raster image whose `width × height` exceeds the
233
+ configured pixel ceiling (`UPLOAD_MAX_IMAGE_PIXELS`, default
234
+ 16 MP). The server reads dimensions from the file **header** (no
235
+ full-bitmap decode) and rejects **before** decoding, so a
236
+ within-byte-limit but huge-dimension image (e.g. a few-KB 26 MP
237
+ PNG that would decode to ~100 MB) is rejected up front rather than
238
+ exhausting memory. Non-decoded raster types (TIFF/BMP/ICO) and
239
+ non-images are unaffected.
229
240
  content:
230
241
  application/json:
231
242
  schema:
232
243
  $ref: '#/components/schemas/ErrorEnvelope'
233
- example:
234
- success: false
235
- error: "File size exceeds maximum allowed (100 GiB)"
244
+ examples:
245
+ file_too_large:
246
+ summary: File exceeds the absolute maximum byte size
247
+ value:
248
+ success: false
249
+ error: "File size exceeds maximum allowed (100 GiB)"
250
+ image_dimensions_too_large:
251
+ summary: Decodable raster exceeds the pixel-dimension ceiling
252
+ value:
253
+ success: false
254
+ error: "IMAGE_DIMENSIONS_TOO_LARGE"
255
+ message: "Image dimensions exceed the maximum allowed (16 MP)."
236
256
  '415':
237
257
  description: |
238
258
  Unsupported file type at the contract level (no tier permits
@@ -1567,6 +1587,49 @@ paths:
1567
1587
  success: false
1568
1588
  error: "BAD_REQUEST"
1569
1589
  message: "Invalid workflow request"
1590
+ '401':
1591
+ description: |
1592
+ An authentication credential was **presented** on this endpoint's
1593
+ mixed auth surface (`security: [{}, bearerAuth, sessionAuth]`) but
1594
+ was rejected. `error_type` (an `AuthErrorType`) discriminates:
1595
+
1596
+ - `reauthentication_required` — a **session** credential was
1597
+ present but is stale (expired / revoked / owner no longer
1598
+ resolves). The endpoint **fails closed** rather than silently
1599
+ creating an anonymous, null-owner workflow (apxXxptO); the caller
1600
+ *was* authenticated and must re-authenticate. Clients branch on
1601
+ this value to surface a re-auth prompt and retry, preserving
1602
+ in-progress work.
1603
+ - Bearer-path failures — an `Authorization: Bearer <key>` credential
1604
+ rejected by `ApiKeyAuthenticator` before the controller ran:
1605
+ `api_key_invalid` (key not found / revoked / owner missing), or
1606
+ `authentication_required` (the authenticator's fallback for an
1607
+ otherwise-unmodelled auth failure).
1608
+
1609
+ A genuinely **anonymous** request (no credential at all) is NOT a
1610
+ `401` — it is accepted and creates an anonymous workflow. The
1611
+ `error_type` is narrowed to exactly these three codes (an `allOf`
1612
+ over `AuthErrorResponse`): the login-only `invalid_credentials` and
1613
+ the four `account_*` codes (which are `403` outcomes) are excluded,
1614
+ so the contract advertises only what this endpoint can actually emit
1615
+ at `401`.
1616
+ content:
1617
+ application/json:
1618
+ schema:
1619
+ allOf:
1620
+ - $ref: '#/components/schemas/AuthErrorResponse'
1621
+ - type: object
1622
+ properties:
1623
+ error_type:
1624
+ enum:
1625
+ - reauthentication_required
1626
+ - api_key_invalid
1627
+ - authentication_required
1628
+ example:
1629
+ success: false
1630
+ error: "REAUTHENTICATION_REQUIRED"
1631
+ error_type: "reauthentication_required"
1632
+ message: "Your session has expired. Please sign in again."
1570
1633
  '403':
1571
1634
  description: |
1572
1635
  Forbidden — tier-quota or feature-tier restriction. Discriminated
@@ -2765,12 +2828,16 @@ paths:
2765
2828
  via that cookie.
2766
2829
 
2767
2830
  Failure responses distinguish between:
2768
- - `401 invalid_credentials` — wrong password OR correct password on an
2769
- unverified account (collapsed for anti-enumeration).
2770
- - `403 account_locked|account_disabled|account_deleted|account_deletion_expired`
2771
- — persisted account-state failures.
2831
+ - `401 invalid_credentials` — wrong password, correct password on an
2832
+ unverified account, OR any persisted account-status failure
2833
+ (locked / disabled / deleted / deletion-expired). **All collapsed
2834
+ into a single `401 invalid_credentials`** so the login response
2835
+ never reveals whether an account exists or what state it is in
2836
+ (anti-enumeration; Mc6wiUzc). The `account_*` `error_type`s are
2837
+ NOT emitted on login — they survive only on the API-key path and
2838
+ the live-session enforcer (see `AuthErrorType`).
2772
2839
  - `429` — infrastructure rate-limit (too many attempts in the current
2773
- window). Distinct from `account_locked`, which is persisted state.
2840
+ window); carries no `error_type`.
2774
2841
  operationId: loginUser
2775
2842
  security: [] # anonymous (entry point — you're logging in, no creds yet)
2776
2843
  tags:
@@ -2862,61 +2929,41 @@ paths:
2862
2929
  error: "Request body is invalid."
2863
2930
  '401':
2864
2931
  description: |
2865
- Invalid credentials, or correct password on an unverified account
2866
- (collapsed into `invalid_credentials` for anti-enumeration). The
2867
- `error` field carries the human-readable message; consumers must
2868
- not assume a particular phrasing across releases.
2932
+ Authentication failed — **always `invalid_credentials`**. Covers
2933
+ wrong password, correct password on an unverified account, AND any
2934
+ persisted account-status failure (locked / disabled / deleted /
2935
+ deletion-expired), all deliberately collapsed into one value so the
2936
+ response never reveals account existence or state (anti-enumeration;
2937
+ Mc6wiUzc). The `error` field carries a human-readable message;
2938
+ consumers must not assume a particular phrasing across releases.
2869
2939
  content:
2870
2940
  application/json:
2871
2941
  schema:
2872
- $ref: '#/components/schemas/AuthErrorResponse'
2942
+ # error_type is CONSTRAINED to `invalid_credentials` (not the
2943
+ # full AuthErrorType enum) so the anti-enumeration collapse is
2944
+ # CONTRACT-ENFORCED, not just prose — login can never emit an
2945
+ # `account_*` value (Mc6wiUzc).
2946
+ allOf:
2947
+ - $ref: '#/components/schemas/AuthErrorResponse'
2948
+ - type: object
2949
+ required:
2950
+ - error_type
2951
+ properties:
2952
+ error_type:
2953
+ type: string
2954
+ enum:
2955
+ - invalid_credentials
2873
2956
  example:
2874
2957
  success: false
2875
2958
  error: "Invalid credentials."
2876
2959
  error_type: "invalid_credentials"
2877
- '403':
2878
- description: |
2879
- Account-status failure — `error_type` is one of `account_locked`,
2880
- `account_disabled`, `account_deleted`, or `account_deletion_expired`.
2881
- These reflect persisted account state, not infrastructure throttling
2882
- (for that see 429).
2883
- content:
2884
- application/json:
2885
- schema:
2886
- $ref: '#/components/schemas/AuthErrorResponse'
2887
- examples:
2888
- accountLocked:
2889
- summary: Account is in a persisted locked state
2890
- value:
2891
- success: false
2892
- error: "Account is temporarily locked. Please try again later."
2893
- error_type: "account_locked"
2894
- accountDisabled:
2895
- summary: Account disabled by administrator
2896
- value:
2897
- success: false
2898
- error: "This account has been disabled."
2899
- error_type: "account_disabled"
2900
- accountDeleted:
2901
- summary: Account has been deleted
2902
- value:
2903
- success: false
2904
- error: "This account has been deleted."
2905
- error_type: "account_deleted"
2906
- accountDeletionExpired:
2907
- summary: Deletion grace period has expired
2908
- value:
2909
- success: false
2910
- error: "This account has been scheduled for deletion and the grace period has expired."
2911
- error_type: "account_deletion_expired"
2912
2960
  '429':
2913
2961
  description: |
2914
2962
  Rate limit exceeded (too many login attempts in the current window).
2915
- Distinct from `403 account_locked`: this is infrastructure-level
2916
- throttling, not persisted account state, and carries no `error_type`.
2917
- This is the first 429 in this spec to declare a `Retry-After`
2918
- response header — future rate-limited endpoints should follow the
2919
- same pattern.
2963
+ Infrastructure-level throttling, not credential rejection (for that
2964
+ see 401), and carries no `error_type`. This is the first 429 in this
2965
+ spec to declare a `Retry-After` response header — future
2966
+ rate-limited endpoints should follow the same pattern.
2920
2967
  headers:
2921
2968
  Retry-After:
2922
2969
  description: Seconds to wait before retrying. Delta-seconds (RFC 9110).
@@ -3217,6 +3264,110 @@ paths:
3217
3264
  schema:
3218
3265
  $ref: '#/components/schemas/ErrorEnvelope'
3219
3266
 
3267
+ /api/auth/resend-verification:
3268
+ post:
3269
+ summary: Resend the account verification email
3270
+ description: |
3271
+ Re-dispatches the registration verification email for an account
3272
+ that exists but is not yet verified — the recovery path for a user
3273
+ who lost or never received the original email (there is otherwise no
3274
+ way to obtain a fresh verification token). Reuses the same token-mint
3275
+ + Registration mailer as `POST /api/auth/register`.
3276
+
3277
+ **Anti-enumeration: this endpoint ALWAYS returns `200`**, even when
3278
+ the email does not correspond to any account OR the account is
3279
+ already verified. Callers cannot use the response to discover whether
3280
+ an account exists or its verified-state. The only non-success
3281
+ responses are structured input validation (`422`) and rate-limiting
3282
+ (`429`).
3283
+ operationId: resendVerificationEmail
3284
+ security: [] # anonymous (pre-authentication recovery entry point)
3285
+ tags:
3286
+ - Auth
3287
+ requestBody:
3288
+ required: true
3289
+ content:
3290
+ application/json:
3291
+ schema:
3292
+ type: object
3293
+ required:
3294
+ - email
3295
+ properties:
3296
+ email:
3297
+ type: string
3298
+ format: email
3299
+ example:
3300
+ email: "user@example.com"
3301
+ responses:
3302
+ '200':
3303
+ description: |
3304
+ Request accepted. A fresh verification email is dispatched only
3305
+ if the address maps to an existing UNVERIFIED account; the
3306
+ response shape is identical either way (anti-enumeration — does
3307
+ not reveal account existence or verified-state).
3308
+ content:
3309
+ application/json:
3310
+ schema:
3311
+ $ref: '#/components/schemas/EmptySuccessEnvelope'
3312
+ example:
3313
+ success: true
3314
+ data: {}
3315
+ '400':
3316
+ description: Request body is invalid (malformed JSON, wrong field types, or body too large).
3317
+ content:
3318
+ application/json:
3319
+ schema:
3320
+ $ref: '#/components/schemas/ErrorEnvelope'
3321
+ example:
3322
+ success: false
3323
+ error: "Request body is invalid."
3324
+ '422':
3325
+ description: |
3326
+ Structured input validation failure (malformed `email`) —
3327
+ `ValidationErrorEnvelope` (`error_type: validation_error`).
3328
+
3329
+ Deliberately does NOT expose the `verify-email` domain-reject
3330
+ (`unprocessable_entity` / `AuthRejectionEnvelope`) shape — that
3331
+ would leak account-existence / verified-state, defeating the
3332
+ anti-enumeration guarantee. (Mirrors `forgot-password`.)
3333
+ content:
3334
+ application/json:
3335
+ schema:
3336
+ # Kept as a single-member `oneOf` (rather than a bare `$ref`) so
3337
+ # the flip from the planned-state 2-member union reads to oasdiff
3338
+ # as a covariant-safe `response-body-one-of-removed` (info), not
3339
+ # a `response-body-type-changed`. Room to re-add branches later.
3340
+ oneOf:
3341
+ - $ref: '#/components/schemas/ValidationErrorEnvelope'
3342
+ example:
3343
+ success: false
3344
+ error_type: validation_error
3345
+ error: "Validation failed"
3346
+ details:
3347
+ - field: "email"
3348
+ message: "This value is not a valid email address."
3349
+ '429':
3350
+ description: |
3351
+ Rate limit exceeded (too many resend requests in the current
3352
+ window). Carries a `Retry-After` response header.
3353
+ headers:
3354
+ Retry-After:
3355
+ description: Seconds to wait before retrying. Delta-seconds (RFC 9110).
3356
+ schema:
3357
+ type: integer
3358
+ minimum: 0
3359
+ example: 60
3360
+ content:
3361
+ application/json:
3362
+ schema:
3363
+ $ref: '#/components/schemas/ErrorEnvelope'
3364
+ '500':
3365
+ description: Internal server error.
3366
+ content:
3367
+ application/json:
3368
+ schema:
3369
+ $ref: '#/components/schemas/ErrorEnvelope'
3370
+
3220
3371
  /api/auth/forgot-password:
3221
3372
  post:
3222
3373
  summary: Request a password-reset email
@@ -3903,9 +4054,12 @@ paths:
3903
4054
  responses:
3904
4055
  '200':
3905
4056
  description: |
3906
- Profile updated. `name_changed` and `email_change_requested`
3907
- flag which mutations took effect; an email change is pending
3908
- confirmation rather than applied.
4057
+ Profile updated. `name_changed` reports whether the display name
4058
+ changed. `email_change_requested` signals the email-change flow
4059
+ was accepted and a confirmation dispatched to the new address — it
4060
+ is returned uniformly whether or not that address is already
4061
+ registered, so the response never discloses account existence. The
4062
+ email change is pending confirmation, not applied.
3909
4063
  content:
3910
4064
  application/json:
3911
4065
  schema:
@@ -3984,17 +4138,6 @@ paths:
3984
4138
  example:
3985
4139
  success: false
3986
4140
  error: "USER_NOT_FOUND"
3987
- '409':
3988
- description: |
3989
- The requested email is already claimed by another account
3990
- (`error: EMAIL_TAKEN`).
3991
- content:
3992
- application/json:
3993
- schema:
3994
- $ref: '#/components/schemas/ErrorEnvelope'
3995
- example:
3996
- success: false
3997
- error: "EMAIL_TAKEN"
3998
4141
  '422':
3999
4142
  description: |
4000
4143
  Structured input validation failure (`ValidationErrorEnvelope`,
@@ -5583,6 +5726,25 @@ components:
5583
5726
  const: upload
5584
5727
  file_id:
5585
5728
  $ref: '#/components/schemas/UuidV7'
5729
+ declared_duration_seconds:
5730
+ type:
5731
+ - number
5732
+ - "null"
5733
+ minimum: 0
5734
+ description: |
5735
+ OPTIONAL client-declared media duration in seconds, measured on the
5736
+ client **before** upload (e.g. the browser's
5737
+ `HTMLVideoElement.duration`). A **routing hint** for long-form
5738
+ classification only ([`frlwBuQ5`](https://trello.com/c/frlwBuQ5)):
5739
+ the server prefers its own authoritative media probe and falls back
5740
+ to this value **only when the async probe duration is null** (e.g.
5741
+ the probe has not completed at classification time). It never
5742
+ overrides a successful probe, and is not billed against — duration
5743
+ billing uses the probed value. Omit (or `null`) when unknown —
5744
+ **absent behaves exactly as today** (probe-only). Ignored for
5745
+ non-timed media. Only meaningful on an `upload` source (the one the
5746
+ client measured locally); other source leaves do not carry it.
5747
+ example: 187.5
5586
5748
 
5587
5749
  JobOutputSource:
5588
5750
  type: object
@@ -7409,51 +7571,72 @@ components:
7409
7571
  - account_deleted
7410
7572
  - account_deletion_expired
7411
7573
  - authentication_required
7574
+ - reauthentication_required
7412
7575
  - api_key_invalid
7413
- - api_key_revoked
7414
7576
  description: |
7415
7577
  Machine-readable discriminator for auth HTTP errors (401/403). Distinct
7416
7578
  from rate-limit 429 responses, which carry no `error_type` and use the
7417
7579
  plain `ErrorEnvelope` with a `Retry-After` header.
7418
7580
 
7419
- Values are emitted by three auth mechanisms on the server:
7581
+ Values are emitted by these auth mechanisms on the server:
7420
7582
 
7421
7583
  - **Login** (`POST /api/auth/login`) — password-based authentication.
7584
+ Emits `invalid_credentials` ONLY (all account-status failures
7585
+ collapse into it; see Mc6wiUzc).
7422
7586
  - **`ApiEntryPoint`** — challenge emitted on any protected route
7423
7587
  when no authenticated principal is present.
7424
7588
  - **`ApiKeyAuthenticator`** — validates `Authorization: Bearer <key>`
7425
7589
  headers on the `api` firewall.
7590
+ - **`AccountStatusEnforcerListener`** — per-request live-session
7591
+ enforcement (ticket e8eSElvD): returns `403 account_*` on an
7592
+ authenticated stateful request when the account is revoked
7593
+ mid-session.
7426
7594
 
7427
7595
  Per-value attribution:
7428
7596
 
7429
- - `invalid_credentials` (Login): wrong password, OR correct password on
7430
- an unverified account. The two cases are intentionally collapsed to
7431
- avoid leaking account existence on the machine-readable channel;
7432
- this keeps the login path consistent with the backend's registration
7433
- and password-reset flows, both of which are also anti-enumeration
7434
- (no existence leak on duplicate email or unknown account).
7435
- - `account_locked` (Login OR `ApiKeyAuthenticator`): account is in a
7436
- persisted locked state (e.g. set after repeated failures on the
7437
- server side). Can occur on both mechanisms when the underlying
7438
- account is locked, regardless of credential validity.
7439
- - `account_disabled` (Login OR `ApiKeyAuthenticator`): account has been
7440
- disabled by an administrator.
7441
- - `account_deleted` (Login OR `ApiKeyAuthenticator`): account has been
7442
- deleted.
7443
- - `account_deletion_expired` (Login OR `ApiKeyAuthenticator`): grace
7444
- period expired after a user-initiated deletion request.
7445
- - `authentication_required` (`ApiEntryPoint`): unauthenticated
7446
- request reached an endpoint that requires authentication.
7447
- Emitted as a 401 challenge; no credentials were presented or
7448
- the session is absent/expired. (Endpoint-level auth requirements
7449
- are not declared in this spec yet — tracked as a separate
7450
- housekeeping item to wire `security` requirements per route.)
7451
- - `api_key_invalid` (`ApiKeyAuthenticator`): API key not found, or the
7452
- key resolves to a user that does not exist. The two cases are
7453
- intentionally collapsed for anti-enumeration (same reasoning as
7454
- `invalid_credentials`).
7455
- - `api_key_revoked` (`ApiKeyAuthenticator`): API key was found but is
7456
- no longer active (`isActive() === false`).
7597
+ - `invalid_credentials` (Login): wrong password, correct password on an
7598
+ unverified account, OR any persisted account-status failure (locked /
7599
+ disabled / deleted / deletion-expired). **All collapsed into this one
7600
+ value** so login never leaks account existence or state
7601
+ (anti-enumeration; Mc6wiUzc) — consistent with the registration +
7602
+ password-reset flows. The `account_*` values below are therefore NOT
7603
+ emitted on login.
7604
+ - `account_locked` (`ApiKeyAuthenticator` OR `AccountStatusEnforcerListener`):
7605
+ account is in a persisted locked state. Emitted as `403` when a VALID
7606
+ API key's owner is locked, or when the live-session enforcer acts on a
7607
+ locked account — NOT on login (a login attempt against a locked
7608
+ account collapses to `401 invalid_credentials`). A valid key / live
7609
+ session only reveals the caller's OWN status, so this is not an
7610
+ enumeration oracle.
7611
+ - `account_disabled` (same surfaces): account disabled by an administrator.
7612
+ - `account_deleted` (same surfaces): account has been deleted.
7613
+ - `account_deletion_expired` (same surfaces): grace period expired after
7614
+ a user-initiated deletion request.
7615
+ - `authentication_required` (`ApiEntryPoint` OR `ApiKeyAuthenticator`
7616
+ fallback): **no usable credential** was resolved. Two surfaces —
7617
+ (a) `ApiEntryPoint` challenges an unauthenticated request that reached
7618
+ an endpoint requiring authentication (no credential / absent session);
7619
+ (b) `ApiKeyAuthenticator` falls back to this value for an
7620
+ otherwise-unmodelled bearer-auth failure. A session that is **present
7621
+ but stale/expired** is NOT this value — that is
7622
+ `reauthentication_required` (below). (Endpoint-level auth requirements
7623
+ are not declared in this spec yet — tracked as a separate housekeeping
7624
+ item to wire `security` requirements per route.)
7625
+ - `reauthentication_required`: a session credential was **present**
7626
+ on the request but is stale / no longer valid (expired, revoked,
7627
+ or its owner no longer resolves). Distinct from
7628
+ `authentication_required` (no credential presented at all): the
7629
+ caller *was* authenticated and must re-authenticate. Emitted as a
7630
+ 401 by endpoints that **fail closed** on a stale session rather
7631
+ than degrading to anonymous — e.g. `POST /api/workflows`
7632
+ (apxXxptO), which would otherwise silently create an anonymous,
7633
+ null-owner workflow. Clients should surface a re-auth prompt and
7634
+ retry, preserving in-progress work.
7635
+ - `api_key_invalid` (`ApiKeyAuthenticator`): API key not found, resolves
7636
+ to a user that does not exist, OR is no longer active (revoked). All
7637
+ cases are intentionally collapsed for anti-enumeration (same reasoning
7638
+ as `invalid_credentials`); the former distinct `api_key_revoked` value
7639
+ was removed in Mc6wiUzc.
7457
7640
 
7458
7641
  AuthErrorResponse:
7459
7642
  description: |
@@ -8574,6 +8757,23 @@ components:
8574
8757
  `long_form_preferred`); defaults to `auto` when omitted.
8575
8758
  Server is the final authority on routing — `class_hint`
8576
8759
  is advisory + policy-shaping, NOT a backend selector.
8760
+ notify:
8761
+ $ref: '#/components/schemas/NotifyConfig'
8762
+ description: |
8763
+ Optional per-job completion-notification config
8764
+ (channel-agnostic). Currently exposes the `email` channel: the
8765
+ API emails the configured recipients when the selected workflow
8766
+ events occur, with a **server-composed** presigned `/downloads`
8767
+ link to the results — the request carries recipients + event
8768
+ selection only.
8769
+
8770
+ **Advertised-ahead (contract-first, ticket
8771
+ [`IQtEwVET`](https://trello.com/c/IQtEwVET)):** the completion-
8772
+ notification dispatch engine is built separately; until it ships
8773
+ the API returns `feature_not_available` (422) for any `notify`
8774
+ use. Reuses the `CallbackEventType` vocabulary shared with
8775
+ `callback_events` (webhook) — email and webhook are two channels
8776
+ off one dispatch engine.
8577
8777
 
8578
8778
  JobDefinition:
8579
8779
  type: object
@@ -10224,10 +10424,13 @@ components:
10224
10424
  minimum: 0
10225
10425
  description: |
10226
10426
  OPTIONAL. Original input size in bytes — the left side of the
10227
- list-row savings readout. For multi-input jobs, the combined
10228
- size of all source inputs. Pair with `output_size_bytes` to
10229
- render "1.2 MB → 480 KB (↓60%)" without a drill-in. Absent when
10230
- not yet known or not applicable.
10427
+ list-row savings readout. This is the job's DIRECT / base
10428
+ originating-upload size (a single base input), **not** a recursive
10429
+ sum of all source inputs; it is omitted for jobs whose input is an
10430
+ upstream `job_output` (merge / derived jobs). Pair with
10431
+ `output_size_bytes` to render "1.2 MB → 480 KB (↓60%)" without a
10432
+ drill-in — a non-authoritative at-a-glance summary. Absent when not
10433
+ yet known or not applicable.
10231
10434
  example: 1258291
10232
10435
  output_size_bytes:
10233
10436
  type: integer
@@ -10575,12 +10778,14 @@ components:
10575
10778
  format: int64
10576
10779
  minimum: 0
10577
10780
  description: |
10578
- OPTIONAL. Original input size in bytes for this job (combined
10579
- source size for multi-input jobs). The drill-in mirror of
10580
- `WorkflowSummaryJob.input_size_bytes`; the input side of the
10581
- savings readout (output sizes remain on the per-operation
10582
- `OperationResult.size_bytes` / `GET /{id}/downloads`). OPTIONAL
10583
- for the same webhook-payload reason as `input_filename`.
10781
+ OPTIONAL. Original input size in bytes for this job — the job's
10782
+ DIRECT / base originating-upload size (a single base input),
10783
+ **not** a recursive sum of all source inputs; omitted for jobs
10784
+ whose input is an upstream `job_output` (merge / derived). The
10785
+ drill-in mirror of `WorkflowSummaryJob.input_size_bytes`; the input
10786
+ side of the savings readout (output sizes remain on the
10787
+ per-operation `OperationResult.size_bytes` / `GET /{id}/downloads`).
10788
+ OPTIONAL for the same webhook-payload reason as `input_filename`.
10584
10789
  example: 1258291
10585
10790
  processing_class:
10586
10791
  $ref: '#/components/schemas/ProcessingClass'
@@ -12677,6 +12882,86 @@ components:
12677
12882
  - workflow.partially_failed
12678
12883
  - operation.completed
12679
12884
 
12885
+ NotifyConfig:
12886
+ type: object
12887
+ x-availability: planned
12888
+ description: |
12889
+ Channel-agnostic per-job completion-notification config (ticket
12890
+ [`IQtEwVET`](https://trello.com/c/IQtEwVET)). Currently the `email`
12891
+ channel only; `webhook` folds onto the same dispatch engine later
12892
+ (today webhook is configured via the top-level `callback_url` /
12893
+ `callback_events`). **Advertised-ahead** — the API returns
12894
+ `feature_not_available` (422) for any `notify` use until the
12895
+ dispatch engine ships. `x-availability` is decorative per
12896
+ ADR-0001 §1.5; the API is the authority on the 422 gate.
12897
+
12898
+ An **empty `notify`** (object present but no channel set) is a
12899
+ no-op — the workflow runs normally with no notifications; it is
12900
+ neither an error nor a dispatch trigger. Omit `notify` entirely to
12901
+ say the same thing.
12902
+ properties:
12903
+ email:
12904
+ $ref: '#/components/schemas/EmailNotify'
12905
+ description: Email notification channel.
12906
+
12907
+ EmailNotify:
12908
+ type: object
12909
+ required:
12910
+ - to
12911
+ description: |
12912
+ Email-channel completion notification. When a subscribed workflow
12913
+ event occurs, the API emails each recipient in `to` a link to the
12914
+ workflow's results — a **server-composed, short-lived presigned URL**
12915
+ to the same downloadable outputs as `GET /api/workflows/{id}/downloads`.
12916
+ The request carries recipients + event selection ONLY: the link's
12917
+ target, contents, and expiry are determined server-side and can never
12918
+ be supplied or influenced by the caller.
12919
+
12920
+ The emailed link is a time-limited **bearer capability** — anyone who
12921
+ holds it (including anyone the email is forwarded to) can download
12922
+ those outputs until it expires; it grants no other account access and
12923
+ conveys no session. This is the same trust model as any presigned
12924
+ download URL.
12925
+
12926
+ **Anti-abuse (security).** Because `POST /api/workflows` is callable
12927
+ with `optional` auth, an unconstrained recipient list would be an open
12928
+ mail-relay / spam-amplification vector. Recipients are therefore
12929
+ subject to **server-side anti-abuse controls** — the API restricts who
12930
+ may be emailed (the exact recipient policy, e.g. the authenticated
12931
+ account's own verified address(es), is API/product-owned and enforced
12932
+ server-side, NOT a caller-supplied setting) and applies send-rate
12933
+ limits; a request whose recipients fall outside the allowed set is
12934
+ rejected. This is part of what the `planned` gate covers until the
12935
+ dispatch engine + its abuse controls ship.
12936
+ properties:
12937
+ to:
12938
+ type: array
12939
+ minItems: 1
12940
+ maxItems: 10
12941
+ description: |
12942
+ Recipient email addresses (1–10). At least one is required when
12943
+ `email` is present. Subject to the server-side recipient policy
12944
+ above — the API may reject or narrow recipients outside the
12945
+ allowed set (anti-abuse); a caller cannot email arbitrary third
12946
+ parties.
12947
+ items:
12948
+ type: string
12949
+ format: email
12950
+ events:
12951
+ type: array
12952
+ description: |
12953
+ Which workflow events trigger the email. Reuses the
12954
+ `CallbackEventType` vocabulary shared with `callback_events`
12955
+ (webhook) — the notify surface does NOT fork the event enum.
12956
+ Defaults to terminal events only (mirrors the `callback_events`
12957
+ default); `operation.completed` is opt-in for granular progress.
12958
+ items:
12959
+ $ref: '#/components/schemas/CallbackEventType'
12960
+ default:
12961
+ - "workflow.completed"
12962
+ - "workflow.failed"
12963
+ - "workflow.partially_failed"
12964
+
12680
12965
  WebhookPayload:
12681
12966
  type: object
12682
12967
  description: |
@@ -732,5 +732,5 @@
732
732
  "isAnimated": "maybe"
733
733
  }
734
734
  },
735
- "schema_version": "2.162.0"
735
+ "schema_version": "2.171.0"
736
736
  }