@giveitsmaller/contracts 0.5.0 → 0.8.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 (337) hide show
  1. package/asyncapi/events.yaml +278 -4
  2. package/availability/availability.json +190 -12
  3. package/dist/asyncapi/AnonymousSchema_253.d.ts +5 -0
  4. package/dist/asyncapi/AnonymousSchema_253.js +6 -0
  5. package/dist/asyncapi/LongFormJobMessage.d.ts +10 -0
  6. package/dist/asyncapi/LongFormJobMessage.js +1 -0
  7. package/dist/asyncapi/index.d.ts +2 -0
  8. package/dist/asyncapi/index.js +1 -0
  9. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  10. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  11. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  12. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  13. package/dist/openapi/models/AuthErrorResponse.d.ts +9 -6
  14. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  15. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  16. package/dist/openapi/models/AuthErrorType.js +2 -2
  17. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  18. package/dist/openapi/models/AvailabilityValue.js +2 -2
  19. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +2 -2
  20. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  21. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  22. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  23. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  24. package/dist/openapi/models/CallbackEventType.js +2 -2
  25. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  26. package/dist/openapi/models/ConnectionSource.js +2 -2
  27. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  28. package/dist/openapi/models/ContactRequest.js +2 -2
  29. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  30. package/dist/openapi/models/ContactSubject.js +2 -2
  31. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  32. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  33. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  34. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  35. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  36. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  37. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  38. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  39. package/dist/openapi/models/CreditTransaction.d.ts +2 -2
  40. package/dist/openapi/models/CreditTransaction.js +2 -2
  41. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  42. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  43. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  44. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  45. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  46. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  47. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  48. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  49. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  50. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  51. package/dist/openapi/models/Delivery.d.ts +16 -3
  52. package/dist/openapi/models/Delivery.js +2 -2
  53. package/dist/openapi/models/DeliveryOutputRef.d.ts +2 -2
  54. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  55. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  56. package/dist/openapi/models/DeliveryPlan.js +2 -2
  57. package/dist/openapi/models/DeliveryPlanOutput.d.ts +2 -2
  58. package/dist/openapi/models/DeliveryPlanOutput.js +2 -2
  59. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  60. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  61. package/dist/openapi/models/DeliverySelection.d.ts +2 -2
  62. package/dist/openapi/models/DeliverySelection.js +2 -2
  63. package/dist/openapi/models/EndpointProjection.d.ts +98 -0
  64. package/dist/openapi/models/EndpointProjection.js +78 -0
  65. package/dist/openapi/models/ErrorEnvelope.d.ts +9 -6
  66. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  67. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  68. package/dist/openapi/models/EstimateQuality.js +2 -2
  69. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  70. package/dist/openapi/models/EstimateRange.js +2 -2
  71. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  72. package/dist/openapi/models/ExternalDestination.js +2 -2
  73. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  74. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  75. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  76. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  77. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  78. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  79. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  80. package/dist/openapi/models/ExternalImportToken.js +2 -2
  81. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  82. package/dist/openapi/models/ExternalSource.js +2 -2
  83. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +9 -6
  84. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  85. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +9 -6
  86. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  87. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  88. package/dist/openapi/models/FeatureViolation.js +2 -2
  89. package/dist/openapi/models/JobDefinition.d.ts +2 -2
  90. package/dist/openapi/models/JobDefinition.js +2 -2
  91. package/dist/openapi/models/JobDownload.d.ts +2 -2
  92. package/dist/openapi/models/JobDownload.js +2 -2
  93. package/dist/openapi/models/JobInputV2.d.ts +2 -2
  94. package/dist/openapi/models/JobInputV2.js +2 -2
  95. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  96. package/dist/openapi/models/JobOutputSource.js +2 -2
  97. package/dist/openapi/models/JobResponse.d.ts +2 -2
  98. package/dist/openapi/models/JobResponse.js +2 -2
  99. package/dist/openapi/models/JobStatus.d.ts +2 -2
  100. package/dist/openapi/models/JobStatus.js +2 -2
  101. package/dist/openapi/models/JobType.d.ts +2 -2
  102. package/dist/openapi/models/JobType.js +2 -2
  103. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  104. package/dist/openapi/models/LivenessResponse.js +2 -2
  105. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  106. package/dist/openapi/models/LoginUser200Response.js +2 -2
  107. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  108. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  109. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  110. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  111. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  112. package/dist/openapi/models/LoginUserRequest.js +2 -2
  113. package/dist/openapi/models/LogoutUser200Response.d.ts +2 -2
  114. package/dist/openapi/models/LogoutUser200Response.js +2 -2
  115. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  116. package/dist/openapi/models/MetadataResponse.js +2 -2
  117. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  118. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  119. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  120. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  121. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  122. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  123. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  124. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  125. package/dist/openapi/models/MimeGroupSchema.d.ts +2 -2
  126. package/dist/openapi/models/MimeGroupSchema.js +2 -2
  127. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  128. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  129. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  130. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  131. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  132. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  133. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  134. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  135. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  136. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  137. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  138. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  139. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  140. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  141. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  142. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  143. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  144. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  145. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  146. package/dist/openapi/models/MultipartPartListing.js +2 -2
  147. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  148. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  149. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  150. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  151. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  152. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  153. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  154. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  155. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  156. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  157. package/dist/openapi/models/OperationDefinition.d.ts +2 -2
  158. package/dist/openapi/models/OperationDefinition.js +2 -2
  159. package/dist/openapi/models/OperationDownload.d.ts +2 -2
  160. package/dist/openapi/models/OperationDownload.js +2 -2
  161. package/dist/openapi/models/OperationInputModel.d.ts +2 -2
  162. package/dist/openapi/models/OperationInputModel.js +2 -2
  163. package/dist/openapi/models/OperationResponse.d.ts +2 -2
  164. package/dist/openapi/models/OperationResponse.js +2 -2
  165. package/dist/openapi/models/OperationResult.d.ts +2 -2
  166. package/dist/openapi/models/OperationResult.js +2 -2
  167. package/dist/openapi/models/OperationResultMetrics.d.ts +21 -2
  168. package/dist/openapi/models/OperationResultMetrics.js +7 -2
  169. package/dist/openapi/models/OperationSchemaDefinition.d.ts +2 -2
  170. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  171. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  172. package/dist/openapi/models/OperationStatus.js +2 -2
  173. package/dist/openapi/models/OperationType.d.ts +2 -2
  174. package/dist/openapi/models/OperationType.js +2 -2
  175. package/dist/openapi/models/OperationsSchemaResponse.d.ts +30 -2
  176. package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
  177. package/dist/openapi/models/OptionSchema.d.ts +23 -2
  178. package/dist/openapi/models/OptionSchema.js +6 -3
  179. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  180. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  181. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  182. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  183. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  184. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  185. package/dist/openapi/models/ProbePendingResponse.d.ts +9 -6
  186. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  187. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  188. package/dist/openapi/models/ProcessingClass.js +2 -2
  189. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  190. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  191. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +9 -6
  192. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  193. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  194. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  195. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  196. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  197. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  198. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  199. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  200. package/dist/openapi/models/ProcessingPlan.js +2 -2
  201. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  202. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  203. package/dist/openapi/models/ReEncodeDecision.d.ts +38 -0
  204. package/dist/openapi/models/ReEncodeDecision.js +56 -0
  205. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  206. package/dist/openapi/models/ReadinessResponse.js +2 -2
  207. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  208. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  209. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  210. package/dist/openapi/models/RetryResponse.js +2 -2
  211. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  212. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  213. package/dist/openapi/models/SseCompletionBase.d.ts +63 -0
  214. package/dist/openapi/models/SseCompletionBase.js +50 -0
  215. package/dist/openapi/models/SseEventType.d.ts +2 -2
  216. package/dist/openapi/models/SseEventType.js +2 -2
  217. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  218. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  219. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  220. package/dist/openapi/models/SseJobFailedData.js +2 -2
  221. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  222. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  223. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  224. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  225. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +6 -8
  226. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  227. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  228. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  229. package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
  230. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  231. package/dist/openapi/models/SseOperationCompletionResult.d.ts +42 -2
  232. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  233. package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
  234. package/dist/openapi/models/SseOperationFailedData.js +2 -2
  235. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  236. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  237. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +6 -9
  238. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  239. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  240. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  241. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  242. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  243. package/dist/openapi/models/TierRestrictionResponse.d.ts +9 -6
  244. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  245. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  246. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  247. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +9 -6
  248. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  249. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  250. package/dist/openapi/models/UploadFile403Response.js +2 -2
  251. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  252. package/dist/openapi/models/UploadFile422Response.js +2 -2
  253. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +16 -5
  254. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  255. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
  256. package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
  257. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  258. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  259. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  260. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  261. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  262. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  263. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  264. package/dist/openapi/models/UploadResponse.js +2 -2
  265. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +9 -6
  266. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  267. package/dist/openapi/models/UploadSource.d.ts +2 -2
  268. package/dist/openapi/models/UploadSource.js +2 -2
  269. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  270. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  271. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  272. package/dist/openapi/models/UploadThresholds.js +2 -2
  273. package/dist/openapi/models/UserTier.d.ts +2 -2
  274. package/dist/openapi/models/UserTier.js +2 -2
  275. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +6 -3
  276. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  277. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  278. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  279. package/dist/openapi/models/WarningType.d.ts +2 -2
  280. package/dist/openapi/models/WarningType.js +2 -2
  281. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  282. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  283. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  284. package/dist/openapi/models/WebhookPayload.js +2 -2
  285. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
  286. package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
  287. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  288. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  289. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  290. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  291. package/dist/openapi/models/WorkflowCreateRequest.d.ts +2 -2
  292. package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
  293. package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
  294. package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
  295. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  296. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  297. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  298. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  299. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  300. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  301. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  302. package/dist/openapi/models/WorkflowEdge.js +2 -2
  303. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +9 -6
  304. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  305. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  306. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  307. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  308. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  309. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  310. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  311. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  312. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  313. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  314. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  315. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  316. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  317. package/dist/openapi/models/WorkflowSource.d.ts +2 -2
  318. package/dist/openapi/models/WorkflowSource.js +2 -2
  319. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  320. package/dist/openapi/models/WorkflowStatus.js +2 -2
  321. package/dist/openapi/models/WorkflowStatusResponse.d.ts +2 -2
  322. package/dist/openapi/models/WorkflowStatusResponse.js +2 -2
  323. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  324. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  325. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  326. package/dist/openapi/models/WorkflowWarning.js +2 -2
  327. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  328. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  329. package/dist/openapi/models/index.d.ts +3 -0
  330. package/dist/openapi/models/index.js +3 -0
  331. package/dist/openapi/runtime.d.ts +2 -2
  332. package/dist/openapi/runtime.js +2 -2
  333. package/openapi/api.yaml +429 -49
  334. package/operations/schemas/compress.yaml +0 -3
  335. package/operations/schemas/convert.yaml +14 -1
  336. package/operations/schemas/merge.yaml +14 -10
  337. package/package.json +1 -1
package/openapi/api.yaml CHANGED
@@ -42,13 +42,27 @@ info:
42
42
  `message_key`. Machine-readable fields (`error`, enum values, status
43
43
  codes) stay canonical English.
44
44
 
45
+ - **Currently committed locales:** `en-GB` only (per ticket
46
+ [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier
47
+ shape (`Accept-Language` + `Content-Language` + `Vary` headers +
48
+ `locale` envelope field + `message_key` + `message_params`) is
49
+ stable and exercised; the **catalog** of translated `message`
50
+ strings is en-GB-only at runtime today. Additional locales (e.g.
51
+ `pt-PT`) will be advertised by name when their catalogs ship —
52
+ the request/response carrier shape does NOT change when a new
53
+ locale lands. Treat unrequested locales as "machine-code +
54
+ `message_key` path is committed; localised `message` prose is
55
+ not" until this prose enumerates them by name.
45
56
  - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value
46
57
  negotiation supported). The server selects the best-match locale
47
- from its supported list; falls back to `en-GB` when no match.
58
+ from its supported list; falls back to `en-GB` when no match
59
+ which, until additional catalogs land, is every non-`en-GB`
60
+ `Accept-Language`.
48
61
  - **Response:** `Content-Language: <locale>` echo on every localised
49
62
  response; `Vary: Accept-Language` on every response (CDN/cache
50
63
  correctness — different `Accept-Language` requests produce
51
- different responses).
64
+ different responses). `Vary` is emitted unconditionally so the
65
+ header contract does not flip when a second locale ships.
52
66
  - **Fallback locale:** `en-GB` (also the canonical locale for
53
67
  `message_key` translations and English `message` prose).
54
68
  - **SDK guidance:** switch on `error` (machine code) for typed
@@ -75,7 +89,7 @@ info:
75
89
  of truth instead of hardcoding magic numbers. A runtime
76
90
  `GET /api/uploads/limits` endpoint for dynamic discovery
77
91
  (per-tier / per-environment overrides) is a deferred follow-up.
78
- version: 2.15.3
92
+ version: 2.21.0
79
93
  contact:
80
94
  name: API Support
81
95
 
@@ -103,6 +117,14 @@ tags:
103
117
  - name: AudioWatermark
104
118
  description: Steganographic audio watermark embed and decode
105
119
 
120
+ # Spec-root default per ADR-0016 D2: anonymous-OK unless overridden
121
+ # per-operation. Every inbound operation declares an explicit `security:`
122
+ # block (one of `[]`, `[{bearerAuth: []}, {sessionAuth: []}]`, or
123
+ # `[{}, {bearerAuth: []}, {sessionAuth: []}]`) so the contract is
124
+ # self-documenting — `[]` here protects against future endpoints that
125
+ # accidentally inherit a stricter default.
126
+ security: []
127
+
106
128
  paths:
107
129
  # ============================================
108
130
  # UPLOAD ENDPOINTS
@@ -122,6 +144,7 @@ paths:
122
144
  (10 MB). Files above this size MUST use the multipart upload flow
123
145
  instead (`POST /api/uploads/multipart/initiate`).
124
146
  operationId: uploadFile
147
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; auth attribution if present)
125
148
  tags:
126
149
  - Upload
127
150
  requestBody:
@@ -321,6 +344,7 @@ paths:
321
344
 
322
345
  After all parts are uploaded to S3, call the complete endpoint to finalise.
323
346
  operationId: multipartInitiate
347
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-tolerant; manifest.userId pinned to caller if authed)
324
348
  tags:
325
349
  - Upload
326
350
  requestBody:
@@ -455,6 +479,8 @@ paths:
455
479
  rule and additionally refuse anonymous-initiated sessions
456
480
  outright (returning 403 `MULTIPART_SESSION_AUTH_REQUIRED`).
457
481
  operationId: multipartComplete
482
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-tolerant; ownership-scoped per HxUmVr3Y when manifest.userId set)
483
+ x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
458
484
  tags:
459
485
  - Upload
460
486
  requestBody:
@@ -550,6 +576,8 @@ paths:
550
576
  Completion-readiness is client-derived (walk all pages, compare
551
577
  the count of returned parts to `total_parts`).
552
578
  operationId: multipartStatus
579
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected with MULTIPART_SESSION_AUTH_REQUIRED — see ErrorCode.authentication_required prose)
580
+ x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
553
581
  tags:
554
582
  - Upload
555
583
  parameters:
@@ -674,6 +702,8 @@ paths:
674
702
  **Authentication required.** Same `MULTIPART_SESSION_*` codes
675
703
  apply as on `/status`.
676
704
  operationId: multipartPresign
705
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected; resume-only endpoint)
706
+ x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
677
707
  tags:
678
708
  - Upload
679
709
  parameters:
@@ -793,6 +823,8 @@ paths:
793
823
  **Authentication required.** Same `MULTIPART_SESSION_*` codes
794
824
  apply as on `/status` and `/presign`.
795
825
  operationId: multipartKeepalive
826
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected; resume-only endpoint)
827
+ x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
796
828
  tags:
797
829
  - Upload
798
830
  parameters:
@@ -868,6 +900,8 @@ paths:
868
900
  - **Audio:** duration, bitrate, channels, sample_rate, codec
869
901
  - **Documents:** page_count, dimensions (for PDF)
870
902
  operationId: getUploadMetadata
903
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to caller's session/identity)
904
+ x-identity-scoped: true # ownership-scoped per ADR-0016 D3
871
905
  tags:
872
906
  - Upload
873
907
  parameters:
@@ -955,6 +989,8 @@ paths:
955
989
  same `probed_at` timestamp + result (cached server-side per
956
990
  upload).
957
991
  operationId: probeUpload
992
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set; ownership-scoped)
993
+ x-identity-scoped: true # ownership-scoped per ADR-0016 D3
958
994
  tags:
959
995
  - Upload
960
996
  x-availability: planned
@@ -1173,6 +1209,8 @@ paths:
1173
1209
  idempotency-key wire shape for retried reservation attempts
1174
1210
  is deferred per ADR-0001 §1.7 row 5.
1175
1211
  operationId: createWorkflow
1212
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK on free-tier baseline; auth required for tier-gated operations)
1213
+ x-identity-scoped: true # request body dereferences upload file_ids — cross-identity references return 403 per ADR-0016 D3 (NOTE: §D4 ADR sample showed identity_scoped: false; B3 audit flipped to true per §D3 principle — SDK-acked 2026-05-28)
1176
1214
  tags:
1177
1215
  - Workflow
1178
1216
  requestBody:
@@ -1656,6 +1694,8 @@ paths:
1656
1694
  Each operation includes its current progress and, when completed, its result
1657
1695
  (download URL, size, metrics).
1658
1696
  operationId: getWorkflowStatus
1697
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
1698
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
1659
1699
  tags:
1660
1700
  - Workflow
1661
1701
  parameters:
@@ -1737,6 +1777,8 @@ paths:
1737
1777
  Each job's operations are listed with their output files and pre-signed
1738
1778
  download URLs.
1739
1779
  operationId: getWorkflowDownloads
1780
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
1781
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
1740
1782
  tags:
1741
1783
  - Workflow
1742
1784
  parameters:
@@ -1839,6 +1881,8 @@ paths:
1839
1881
  (the `id:` and `event:` lines) is transport-level and intentionally
1840
1882
  **not** schema-described.
1841
1883
  operationId: streamWorkflowEvents
1884
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
1885
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
1842
1886
  tags:
1843
1887
  - Workflow
1844
1888
  parameters:
@@ -1902,6 +1946,8 @@ paths:
1902
1946
  cancel response is the binding "no further reservations
1903
1947
  will be made" signal.
1904
1948
  operationId: cancelWorkflow
1949
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
1950
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
1905
1951
  tags:
1906
1952
  - Workflow
1907
1953
  parameters:
@@ -2004,6 +2050,8 @@ paths:
2004
2050
  a 409 (no-op — the workflow is already running, terminal,
2005
2051
  or cancelled).
2006
2052
  operationId: resumeWorkflow
2053
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
2054
+ x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
2007
2055
  tags:
2008
2056
  - Workflow
2009
2057
  parameters:
@@ -2125,6 +2173,7 @@ paths:
2125
2173
  on `OptionSchema` (ticket I17). Clients should use these to build
2126
2174
  dynamic forms with availability-aware UX.
2127
2175
  operationId: getOperationsSchema
2176
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK returns free-tier baseline; auth tier-scopes the response)
2128
2177
  tags:
2129
2178
  - Operations
2130
2179
  parameters:
@@ -2150,7 +2199,7 @@ paths:
2150
2199
  still fresh. Strong-ETag comparison.
2151
2200
  schema:
2152
2201
  type: string
2153
- example: '"v2-pro-47"'
2202
+ example: '"v2-pro-49"'
2154
2203
  - name: If-Modified-Since
2155
2204
  in: header
2156
2205
  required: false
@@ -2183,7 +2232,7 @@ paths:
2183
2232
  Strong entity tag. Clients send `If-None-Match: <etag>`
2184
2233
  on subsequent requests to revalidate; the server returns
2185
2234
  `304 Not Modified` when the response is still fresh.
2186
- example: '"v2-pro-47"'
2235
+ example: '"v2-pro-49"'
2187
2236
  Last-Modified:
2188
2237
  schema:
2189
2238
  type: string
@@ -2201,7 +2250,7 @@ paths:
2201
2250
  summary: Full schema (truncated for brevity)
2202
2251
  value:
2203
2252
  schema_version: "2.0.0"
2204
- capabilities_version: 47
2253
+ capabilities_version: 49
2205
2254
  generated_at: "2026-04-26T09:00:00Z"
2206
2255
  user_tier: "pro"
2207
2256
  operations:
@@ -2264,7 +2313,7 @@ paths:
2264
2313
  ETag:
2265
2314
  schema:
2266
2315
  type: string
2267
- example: '"v2-pro-47"'
2316
+ example: '"v2-pro-49"'
2268
2317
  Last-Modified:
2269
2318
  schema:
2270
2319
  type: string
@@ -2287,6 +2336,8 @@ paths:
2287
2336
  The original failed operation is marked as `retried` and a new operation with
2288
2337
  a new ID is created in `pending` state.
2289
2338
  operationId: retryOperation
2339
+ security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to operation owner)
2340
+ x-identity-scoped: true # operation-ownership-scoped per ADR-0016 D3
2290
2341
  tags:
2291
2342
  - Operations
2292
2343
  parameters:
@@ -2340,6 +2391,7 @@ paths:
2340
2391
  summary: Liveness probe
2341
2392
  description: Kubernetes liveness probe endpoint
2342
2393
  operationId: liveness
2394
+ security: [] # anonymous (k8s probe — auth irrelevant)
2343
2395
  tags:
2344
2396
  - Health
2345
2397
  responses:
@@ -2357,6 +2409,7 @@ paths:
2357
2409
  summary: Readiness probe
2358
2410
  description: Kubernetes readiness probe endpoint - checks database and cache connectivity
2359
2411
  operationId: readiness
2412
+ security: [] # anonymous (k8s probe — auth irrelevant)
2360
2413
  tags:
2361
2414
  - Health
2362
2415
  responses:
@@ -2393,6 +2446,7 @@ paths:
2393
2446
  - `429` — infrastructure rate-limit (too many attempts in the current
2394
2447
  window). Distinct from `account_locked`, which is persisted state.
2395
2448
  operationId: loginUser
2449
+ security: [] # anonymous (entry point — you're logging in, no creds yet)
2396
2450
  tags:
2397
2451
  - Auth
2398
2452
  requestBody:
@@ -2580,6 +2634,8 @@ paths:
2580
2634
  endpoint since `AuthController.php:19-22`; this declaration
2581
2635
  catches the contract up).
2582
2636
  operationId: logoutUser
2637
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (logout requires an authenticated principal to invalidate)
2638
+ x-identity-scoped: true # identity-bound (caller's own session) per ADR-0016 D3 — by symmetry with credits/balance per §D4 sample
2583
2639
  tags:
2584
2640
  - Auth
2585
2641
  responses:
@@ -2674,6 +2730,14 @@ paths:
2674
2730
  per ADR-0001 §1.3); the runtime endpoint returns `404` until
2675
2731
  cross-repo wiring lands.
2676
2732
  operationId: createExternalImport
2733
+ # Auth: REQUIRED defensively. Endpoint is availability:planned (no
2734
+ # controller yet); but the endpoint stores encrypted server-side
2735
+ # secrets (bearer URLs, passwords) and anon-callable secret
2736
+ # storage is almost certainly wrong. Locking the contract here
2737
+ # while we still own the source of truth; runtime tightens to
2738
+ # match when the controller lands. Per ADR-0016 / karen review
2739
+ # on yN309QVb-B2.
2740
+ security: [{bearerAuth: []}, {sessionAuth: []}]
2677
2741
  x-availability: planned
2678
2742
  tags:
2679
2743
  - Upload
@@ -2780,6 +2844,7 @@ paths:
2780
2844
  `feature_not_available` (422) until the Lambda lands. Per
2781
2845
  Tension 1 (ADR-0001 §1.3).
2782
2846
  operationId: decodeAudioWatermark
2847
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set; tier-gated runtime call)
2783
2848
  tags:
2784
2849
  - AudioWatermark
2785
2850
  x-availability: planned
@@ -2877,6 +2942,8 @@ paths:
2877
2942
  SDKs gate UI on `available_credits` for the spend-now affordance
2878
2943
  and on `tier` for tier-upgrade prompts.
2879
2944
  operationId: getCreditsBalance
2945
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (identity-scoped to caller's wallet)
2946
+ x-identity-scoped: true # caller's wallet — per ADR-0016 §D4 sample
2880
2947
  tags:
2881
2948
  - Billing
2882
2949
  responses:
@@ -2956,13 +3023,18 @@ paths:
2956
3023
 
2957
3024
  Default page is 20 transactions, ordered most-recent-first.
2958
3025
  operationId: getCreditsUsage
3026
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (identity-scoped to caller's usage history)
3027
+ x-identity-scoped: true # caller's usage history — per ADR-0016 D3
2959
3028
  tags:
2960
3029
  - Billing
2961
3030
  parameters:
2962
3031
  - name: limit
2963
3032
  in: query
2964
3033
  required: false
2965
- description: Page size. Server may reject larger values with 400.
3034
+ description: |
3035
+ Page size. Server may reject invalid `limit` / `offset`
3036
+ with `422 VALIDATION_FAILED` (per project-wide query-param
3037
+ validation convention).
2966
3038
  schema:
2967
3039
  type: integer
2968
3040
  minimum: 1
@@ -2971,7 +3043,9 @@ paths:
2971
3043
  - name: offset
2972
3044
  in: query
2973
3045
  required: false
2974
- description: Page offset (zero-based).
3046
+ description: |
3047
+ Page offset (zero-based). Server may reject invalid
3048
+ `limit` / `offset` with `422 VALIDATION_FAILED`.
2975
3049
  schema:
2976
3050
  type: integer
2977
3051
  minimum: 0
@@ -3094,21 +3168,33 @@ paths:
3094
3168
  total: 47
3095
3169
  limit: 20
3096
3170
  offset: 0
3097
- '400':
3098
- description: Invalid pagination parameters (limit out of range, offset negative).
3171
+ '401':
3172
+ description: Authentication required.
3099
3173
  content:
3100
3174
  application/json:
3101
3175
  schema:
3102
3176
  $ref: '#/components/schemas/ErrorEnvelope'
3103
- example:
3104
- success: false
3105
- error: "limit must be between 1 and 100"
3106
- '401':
3107
- description: Authentication required.
3177
+ '422':
3178
+ description: |
3179
+ Invalid pagination parameters (`limit` out of range,
3180
+ `offset` negative). Per the project-wide query-param
3181
+ validation convention: the API runtime translates parameter
3182
+ constraint violations into `ValidationErrorEnvelope` with
3183
+ `error: "VALIDATION_FAILED"` and structured `details[]`
3184
+ describing each rejected parameter. Replaces the prior
3185
+ `400 ErrorEnvelope` shape — wire change landed via
3186
+ [`gCfdFhdo`](https://trello.com/c/gCfdFhdo) on the API side
3187
+ (contracts caught up via [`d4rJzTcU`](https://trello.com/c/d4rJzTcU)).
3108
3188
  content:
3109
3189
  application/json:
3110
3190
  schema:
3111
- $ref: '#/components/schemas/ErrorEnvelope'
3191
+ $ref: '#/components/schemas/ValidationErrorEnvelope'
3192
+ example:
3193
+ success: false
3194
+ error: "VALIDATION_FAILED"
3195
+ details:
3196
+ - field: "limit"
3197
+ message: "limit must be between 1 and 100"
3112
3198
  '429':
3113
3199
  description: Rate limit exceeded
3114
3200
  content:
@@ -3139,6 +3225,7 @@ paths:
3139
3225
  On success, returns 204 with no body. The API sends the message via its
3140
3226
  configured delivery channel (e.g. email, queue).
3141
3227
  operationId: submitContact
3228
+ security: [] # anonymous (public contact form)
3142
3229
  tags:
3143
3230
  - Contact
3144
3231
  requestBody:
@@ -3225,6 +3312,38 @@ webhooks:
3225
3312
  description: Callback acknowledged (no body)
3226
3313
 
3227
3314
  components:
3315
+ # Per ADR-0016: auth presence is modeled with OpenAPI-native
3316
+ # `security` / `securitySchemes` (NOT a custom `auth:` field) so codegen,
3317
+ # spectral, and oasdiff understand it natively. Two schemes — the same
3318
+ # Symfony `api` firewall accepts BOTH a bearer API-key and a login-session
3319
+ # cookie. Per-operation `security:` blocks OR the two schemes for the
3320
+ # three idioms (anonymous / required / optional). Spec root carries
3321
+ # `security: []` default (anonymous-OK); per-operation overrides flip
3322
+ # the requirement.
3323
+ securitySchemes:
3324
+ bearerAuth:
3325
+ type: http
3326
+ scheme: bearer
3327
+ description: |
3328
+ API-key bearer authentication. The `ApiKeyAuthenticator`
3329
+ (Symfony `api` firewall) validates
3330
+ `Authorization: Bearer <api-key>` per the prose under
3331
+ `ErrorCode.authentication_required`.
3332
+ sessionAuth:
3333
+ type: apiKey
3334
+ in: cookie
3335
+ name: PHPSESSID
3336
+ description: |
3337
+ Login-session cookie authentication. The `ApiEntryPoint`
3338
+ (Symfony `api` firewall) recognises an authenticated session
3339
+ when the cookie is present and the session has a valid
3340
+ principal. Set by `POST /api/auth/login`; cleared by
3341
+ `POST /api/auth/logout`. Cookie name `PHPSESSID` follows the
3342
+ Symfony / PHP default — no `framework.session.name` override
3343
+ in `compression/config/packages/framework.yaml` as of v2.16.6
3344
+ verification. Update this declaration if the API repo ever
3345
+ adds a `session.name` override.
3346
+
3228
3347
  schemas:
3229
3348
  # ============================================
3230
3349
  # SHARED PRIMITIVES
@@ -3332,10 +3451,13 @@ components:
3332
3451
  type: string
3333
3452
  description: |
3334
3453
  BCP 47 locale tag echoing the resolved `Content-Language`
3335
- response header value (e.g. `en-GB`, `pt-BR`, `ja-JP`).
3336
- Lets the SDK confirm which locale the server selected
3337
- when the request used q-value negotiation across multiple
3338
- `Accept-Language` values.
3454
+ response header value. Currently always `en-GB` (the only
3455
+ committed locale per `info.description` Localisation block
3456
+ + ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6));
3457
+ additional values will appear here when their catalogs
3458
+ ship. Lets the SDK confirm which locale the server
3459
+ selected when the request used q-value negotiation across
3460
+ multiple `Accept-Language` values.
3339
3461
  example: "en-GB"
3340
3462
  message_params:
3341
3463
  type: object
@@ -3379,7 +3501,10 @@ components:
3379
3501
  (generic option/value validation failure), `REQUIRES_REENCODE`
3380
3502
  (per ticket I16-CONS — `merge.video` with
3381
3503
  `re_encode_mode: never` and incompatible inputs; caller
3382
- resolves by switching to `re_encode_mode: auto` or `always`).
3504
+ resolves by switching to `re_encode_mode: auto` or `always`),
3505
+ `VALIDATION_FAILED` (request/query-param validation failure
3506
+ per the project-wide convention — e.g. `GET /api/v2/credits/usage`
3507
+ invalid `limit`/`offset`).
3383
3508
  SDKs duck-type on this field for typed error-branch helpers.
3384
3509
  message:
3385
3510
  type: string
@@ -3450,6 +3575,26 @@ components:
3450
3575
  `ErrorEnvelope.message_params`. Excludes cost
3451
3576
  numbers.
3452
3577
 
3578
+ ReEncodeDecision:
3579
+ type: string
3580
+ description: |
3581
+ Path chosen for `merge.video` when `re_encode_mode=auto`.
3582
+ Server reports the actual path so callers can see why
3583
+ `auto` took the slow path. Absent for non-`merge.video`
3584
+ operations and for `merge.video` when `re_encode_mode` is
3585
+ `always` or `never` (path was caller-fixed). Per ticket
3586
+ I16-CONS (Trello 7nCZXEru).
3587
+
3588
+ Mirrors the AsyncAPI `ReEncodeDecision` (and
3589
+ `OperationMetrics.re_encode_decision`); exposed on the REST
3590
+ `OperationResult.metrics` per ticket zS4e9CI2 so the SDK
3591
+ customer path carries the same signal as the SSE/message
3592
+ surface. Cross-spec enum parity is verified by
3593
+ `tests/test_asyncapi_named_schemas.py`.
3594
+ enum:
3595
+ - stream_copy
3596
+ - re_encode
3597
+
3453
3598
  # ============================================
3454
3599
  # AVAILABILITY METADATA (decorative)
3455
3600
  # ============================================
@@ -6543,8 +6688,19 @@ components:
6543
6688
  - explicit
6544
6689
  per_value_availability:
6545
6690
  terminal: { availability: stable }
6546
- all_outputs: { availability: beta }
6547
- explicit: { availability: beta }
6691
+ all_outputs: { availability: planned }
6692
+ explicit: { availability: planned }
6693
+ # Availability flipped beta → planned per ticket
6694
+ # [`co0CERtJ`](https://trello.com/c/co0CERtJ) — the API
6695
+ # runtime currently 422s every non-default `selection.type`
6696
+ # with `feature_not_available`, which per the
6697
+ # `info.description` availability taxonomy IS the `planned`
6698
+ # behaviour (`stable`/`beta` MUST NOT 422). When the API
6699
+ # threads the request-level `delivery.selection` shape, this
6700
+ # flips back. Terminal stays `stable` because the runtime
6701
+ # honours it as the implicit default (`DeliveryPlanComputer`
6702
+ # computes terminal selection regardless of whether the
6703
+ # caller supplied a `delivery` block).
6548
6704
  refs:
6549
6705
  type: array
6550
6706
  description: |
@@ -6571,7 +6727,20 @@ components:
6571
6727
  properties:
6572
6728
  mode:
6573
6729
  type: string
6574
- description: Delivery mode.
6730
+ description: |
6731
+ Delivery mode. `individual` is the only committed value
6732
+ today (per ticket [`co0CERtJ`](https://trello.com/c/co0CERtJ)).
6733
+ `bundle` and `both` are `planned`: the API runtime returns
6734
+ `422 feature_not_available` for any non-`individual` value,
6735
+ which per the `info.description` availability taxonomy is
6736
+ the `planned` behaviour (`stable`/`beta` MUST NOT 422).
6737
+
6738
+ For workflows that need a packaged output today, compose
6739
+ a terminal `archive` job whose `sources` are
6740
+ `JobOutputSource` refs to the upstream jobs — `archive` is
6741
+ the canonical output-bundler per ADR-0017. `delivery.mode:
6742
+ bundle` is the deferred post-launch ergonomic sugar that
6743
+ will reuse the same `archive` runtime under the hood.
6575
6744
  enum:
6576
6745
  - individual
6577
6746
  - bundle
@@ -6579,8 +6748,8 @@ components:
6579
6748
  default: individual
6580
6749
  per_value_availability:
6581
6750
  individual: { availability: stable }
6582
- bundle: { availability: stable }
6583
- both: { availability: beta }
6751
+ bundle: { availability: planned }
6752
+ both: { availability: planned }
6584
6753
  bundle_format:
6585
6754
  type: string
6586
6755
  enum:
@@ -6611,6 +6780,11 @@ components:
6611
6780
  description: |
6612
6781
  How to pick outputs. Default `terminal` (leaves only).
6613
6782
  example:
6783
+ # Spec example uses `bundle` to document the deferred (planned)
6784
+ # shape end-to-end — see Delivery.mode per_value_availability
6785
+ # for the runtime state. For workflows that need packaged
6786
+ # output today, compose a terminal `archive` job whose
6787
+ # `sources` are `JobOutputSource` refs (ADR-0017).
6614
6788
  mode: bundle
6615
6789
  bundle_format: zip
6616
6790
  bundle_filename: "compressed-photos"
@@ -6980,12 +7154,22 @@ components:
6980
7154
  description: Container-reported duration (audio + video).
6981
7155
  width:
6982
7156
  type: integer
7157
+ format: int64
6983
7158
  minimum: 1
6984
- description: Pixel width (image + video; best-effort document).
7159
+ description: |
7160
+ Pixel width (image + video; best-effort document). Declared
7161
+ `int64` so Rust SDK generators emit `i64` instead of the
7162
+ default `i32`; `i32` is fine for everything ffmpeg/libcaesium
7163
+ handles today but the format hint keeps the door open for
7164
+ scientific / RAW imagery without future SDK churn (per
7165
+ ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
6985
7166
  height:
6986
7167
  type: integer
7168
+ format: int64
6987
7169
  minimum: 1
6988
- description: Pixel height (image + video; best-effort document).
7170
+ description: |
7171
+ Pixel height (image + video; best-effort document). See
7172
+ `width` for the `format: int64` rationale.
6989
7173
  codec:
6990
7174
  type: string
6991
7175
  description: |
@@ -7020,12 +7204,16 @@ components:
7020
7204
  `29.97`, `23.976`).
7021
7205
  bitrate_bps:
7022
7206
  type: integer
7207
+ format: int64
7023
7208
  minimum: 0
7024
7209
  description: |
7025
7210
  Overall stream bitrate, **bits per second**. Units in
7026
7211
  the field name, mirroring `duration_seconds`, so SDKs
7027
7212
  avoid the kbps-vs-bps guessing trap. Container-reported
7028
- for video + audio.
7213
+ for video + audio. Declared `int64` so Rust SDK
7214
+ generators emit `i64` instead of `i32`; `i32` caps at
7215
+ ~2.1 Gbps which is tight for future 4K/8K/RAW workloads
7216
+ (per ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
7029
7217
  audio_layout:
7030
7218
  type: string
7031
7219
  description: |
@@ -7486,6 +7674,21 @@ components:
7486
7674
  duration_ms:
7487
7675
  type: integer
7488
7676
  description: Processing time in milliseconds
7677
+ re_encode_decision:
7678
+ # Mirrors AsyncAPI OperationMetrics.re_encode_decision so the
7679
+ # REST result surface (SDK customer path) carries the same
7680
+ # merge.video stream-copy-vs-re-encode signal as the SSE/message
7681
+ # channel. Per ticket zS4e9CI2 (unblocks e2e aDFI1FgT).
7682
+ $ref: '#/components/schemas/ReEncodeDecision'
7683
+ re_encode_reason:
7684
+ type: string
7685
+ description: |
7686
+ Advisory explanation for `re_encode_decision` (e.g.
7687
+ `all_inputs_compatible`, `explicit_always_mode`,
7688
+ `input_codec_mismatch`, `input_framerate_mismatch`).
7689
+ Free-form string — not an enum — so the Lambda can emit
7690
+ human-readable diagnostics that evolve without contract
7691
+ changes. Mirrors `OperationMetrics.re_encode_reason`.
7489
7692
 
7490
7693
  # ============================================
7491
7694
  # WORKFLOW DOWNLOAD SCHEMAS
@@ -7752,6 +7955,63 @@ components:
7752
7955
  discriminator-based dispatch reads the snake_case wire key directly
7753
7956
  (`switch (json['result_kind'])`), avoiding the case-mismatch bug
7754
7957
  entirely.
7958
+
7959
+ **v2.16.1 attempted PHP-template fix (superseded by v2.16.5).**
7960
+ The v2.16.1 cut introduced the shared `SseCompletionBase`
7961
+ schema declaring `result_kind: { enum: [single, multi] }` (both
7962
+ literal values together) and had the branch wrappers
7963
+ allOf-merge it. The intent was to fix the v2.15.3 design where
7964
+ `result_kind` was declared only as `enum: [single]` /
7965
+ `enum: [multi]` inside each branch's inline `allOf` block —
7966
+ which made the openapi-generator PHP template flatten only one
7967
+ branch's enum into `getResultKindAllowableValues()`. The
7968
+ v2.16.1 verification at the time confirmed PHP emitted both
7969
+ values, but against the v2.15.3-generated tree, not against a
7970
+ fresh v2.16.1 regen. SDKs later caught (via codex on the
7971
+ v2.16.3 regen, surfaced by ChSmslxj) that v2.16.1's shared-base
7972
+ fix did NOT actually propagate through the PHP template — the
7973
+ template visits each oneOf branch's allOf and only flattens the
7974
+ per-branch single-value enum, NOT the shared base's full-union
7975
+ enum. PHP root model still emitted `RESULT_KIND_MULTI` only
7976
+ (the second branch's value). SseCompletionBase is RETAINED in
7977
+ v2.16.5 for documentation + JSON Schema branch identification
7978
+ + consumers that traverse the allOf chain, but on its own it
7979
+ is NOT load-bearing for PHP correctness.
7980
+
7981
+ **v2.16.5 ChSmslxj PHP-template fix (load-bearing).**
7982
+ Declares `result_kind` with the full `enum: [single, multi]`
7983
+ directly on the ROOT `SseOperationCompletionResult` schema as
7984
+ a sibling of `oneOf` and `discriminator` (with `type: object`
7985
+ + `required: [result_kind]`). The openapi-generator PHP
7986
+ template flattens this root enum cleanly into
7987
+ `getResultKindAllowableValues()`, emitting both
7988
+ `RESULT_KIND_SINGLE` and `RESULT_KIND_MULTI`. The triple
7989
+ declaration (root + SseCompletionBase + per-branch wrappers)
7990
+ is harmless redundancy: the root carries the full union for
7991
+ the PHP template; SseCompletionBase carries the full union
7992
+ for allOf-chain consumers; per-branch wrappers pin to a
7993
+ single literal value for OpenAPI discriminator semantics +
7994
+ JSON Schema branch identification. TypeScript dispatch is
7995
+ unchanged (`switch (json['result_kind'])` reads the
7996
+ snake_case wire key directly — verified on openapi-generator-
7997
+ cli v7.21.0).
7998
+ type: object
7999
+ required:
8000
+ - result_kind
8001
+ properties:
8002
+ result_kind:
8003
+ type: string
8004
+ enum: [single, multi]
8005
+ description: |
8006
+ Discriminator field. The full `[single, multi]` enum is
8007
+ declared directly on the root (this object) so the
8008
+ openapi-generator PHP template flattens both literal
8009
+ values into `getResultKindAllowableValues()` per
8010
+ ChSmslxj. Also declared on the shared `SseCompletionBase`
8011
+ (retained for consumers that traverse the allOf chain)
8012
+ and on each per-branch wrapper (single-value enum pinning
8013
+ the branch). The triple declaration is harmless redundancy
8014
+ necessary for PHP template flattening.
7755
8015
  oneOf:
7756
8016
  - $ref: '#/components/schemas/SseSingleOutputCompletion'
7757
8017
  - $ref: '#/components/schemas/SseMultiOutputCompletionWithKind'
@@ -7761,46 +8021,71 @@ components:
7761
8021
  single: '#/components/schemas/SseSingleOutputCompletion'
7762
8022
  multi: '#/components/schemas/SseMultiOutputCompletionWithKind'
7763
8023
 
8024
+ SseCompletionBase:
8025
+ type: object
8026
+ description: |
8027
+ Shared base schema for the two `SseOperationCompletionResult`
8028
+ branches. Declares the `result_kind` discriminator field as a
8029
+ `[single, multi]` enum with both literal values, then each branch
8030
+ wrapper allOf-merges this base + its body schema.
8031
+
8032
+ **Rationale (v2.16.1):** the v2.15.3 design declared `result_kind`
8033
+ as a single-value `enum [single]` / `enum [multi]` inside each
8034
+ branch's inline `allOf` block. The openapi-generator PHP template
8035
+ for this shape flattens only the FIRST branch's discriminator enum
8036
+ into the root `getResultKindAllowableValues()` list, so PHP
8037
+ deserialisation rejects the other branch's wire value as invalid.
8038
+ Promoting `result_kind` to a shared base with the full union
8039
+ `enum [single, multi]` makes PHP accept both values; the
8040
+ per-branch `enum [single]` / `enum [multi]` (kept on the wrappers
8041
+ for JSON Schema-level branch identification + OpenAPI
8042
+ discriminator semantics) does not regress. TypeScript dispatch
8043
+ continues to use `switch (json['result_kind'])` — confirmed by
8044
+ codegen verification on openapi-generator-cli v7.21.0.
8045
+ required:
8046
+ - result_kind
8047
+ properties:
8048
+ result_kind:
8049
+ type: string
8050
+ enum: [single, multi]
8051
+ description: |
8052
+ Discriminator field on `SseOperationCompletionResult`. The
8053
+ API SSE serializer emits `"single"` for single-output
8054
+ completion payloads and `"multi"` for multi-output payloads;
8055
+ generated SDK dispatch routes on this value to pick the
8056
+ correct branch deserializer.
8057
+
7764
8058
  SseSingleOutputCompletion:
7765
8059
  description: |
7766
8060
  Single-output branch of `SseOperationCompletionResult` — wraps
7767
- `OperationResult` with a `result_kind: "single"` discriminator field
7768
- so the openapi-generator dispatch can route by wire-format key
7769
- (`result_kind`) rather than by structural property presence.
7770
- See `SseOperationCompletionResult` description for the rationale.
8061
+ `OperationResult` + the shared `SseCompletionBase` + pins
8062
+ `result_kind` to the literal `"single"`. See
8063
+ `SseOperationCompletionResult` description for the rationale +
8064
+ codegen-quirk context.
7771
8065
  allOf:
7772
8066
  - $ref: '#/components/schemas/OperationResult'
8067
+ - $ref: '#/components/schemas/SseCompletionBase'
7773
8068
  - type: object
7774
- required:
7775
- - result_kind
7776
8069
  properties:
7777
8070
  result_kind:
7778
8071
  type: string
7779
8072
  enum: [single]
7780
- description: |
7781
- Discriminator. Always the literal `"single"` for this branch.
7782
- Emitted by the API SSE serializer; consumed by
7783
- `SseOperationCompletionResult` dispatch.
7784
8073
 
7785
8074
  SseMultiOutputCompletionWithKind:
7786
8075
  description: |
7787
8076
  Multi-output branch of `SseOperationCompletionResult` — wraps
7788
- `SseMultiOutputCompletion` with a `result_kind: "multi"` discriminator
7789
- field. See `SseOperationCompletionResult` description for the
7790
- rationale.
8077
+ `SseMultiOutputCompletion` + the shared `SseCompletionBase` +
8078
+ pins `result_kind` to the literal `"multi"`. See
8079
+ `SseOperationCompletionResult` description for the rationale +
8080
+ codegen-quirk context.
7791
8081
  allOf:
7792
8082
  - $ref: '#/components/schemas/SseMultiOutputCompletion'
8083
+ - $ref: '#/components/schemas/SseCompletionBase'
7793
8084
  - type: object
7794
- required:
7795
- - result_kind
7796
8085
  properties:
7797
8086
  result_kind:
7798
8087
  type: string
7799
8088
  enum: [multi]
7800
- description: |
7801
- Discriminator. Always the literal `"multi"` for this branch.
7802
- Emitted by the API SSE serializer; consumed by
7803
- `SseOperationCompletionResult` dispatch.
7804
8089
 
7805
8090
  SseMultiOutputCompletion:
7806
8091
  type: object
@@ -8115,6 +8400,84 @@ components:
8115
8400
  availability metadata per I1 / I17).
8116
8401
  additionalProperties:
8117
8402
  $ref: '#/components/schemas/OperationSchemaDefinition'
8403
+ endpoints:
8404
+ type: object
8405
+ description: |
8406
+ Flat per-endpoint auth/identity projection per
8407
+ [ADR-0016](../docs/decisions/0016-per-endpoint-auth-identity-modeling.md)
8408
+ §D4. Keys are `<METHOD> <PATH>` literals (e.g.
8409
+ `"POST /api/workflows"`); values declare the auth axis +
8410
+ identity-scoping + reserved tier/availability slots +
8411
+ operation_id for SDK ergonomic-layer consumption.
8412
+
8413
+ Webhook operations are EXCLUDED per ADR-0016 §D5 — outbound
8414
+ HMAC-signed callbacks use a separate auth model.
8415
+
8416
+ **Optional in the wire envelope** to keep the runtime
8417
+ endpoint's mirroring obligation incremental: the
8418
+ committed sidecar (yN309QVb-B3 / v2.17.0+) emits this
8419
+ block authoritatively; the runtime `GET /api/operations/
8420
+ schema` MAY mirror it once the API team's runtime
8421
+ generator catches up. Consumers MUST tolerate absent
8422
+ `endpoints` from the runtime endpoint (read the sidecar
8423
+ instead) and MUST tolerate present `endpoints` from
8424
+ either source.
8425
+ additionalProperties:
8426
+ $ref: '#/components/schemas/EndpointProjection'
8427
+
8428
+ EndpointProjection:
8429
+ type: object
8430
+ description: |
8431
+ Per-endpoint projection entry per ADR-0016 §D4. Five fields;
8432
+ `required_tier` and `availability` at endpoint level are
8433
+ reserved/null today (operation-level `required_tier` continues
8434
+ to flow via `operations.*.required_tier`; every shipped
8435
+ endpoint is currently `availability: stable`).
8436
+ required:
8437
+ - auth
8438
+ - identity_scoped
8439
+ - required_tier
8440
+ - availability
8441
+ - operation_id
8442
+ properties:
8443
+ auth:
8444
+ type: string
8445
+ enum: [anonymous, optional, required]
8446
+ description: |
8447
+ 3-value projection of the operation's `security:` block:
8448
+ `anonymous` (`security: []`), `optional` (`security`
8449
+ contains the empty requirement `{}`), `required`
8450
+ (otherwise).
8451
+ identity_scoped:
8452
+ type: boolean
8453
+ description: |
8454
+ Value of the `x-identity-scoped` vendor extension on the
8455
+ operation (default `false`). True iff the operation
8456
+ targets an identity-bound resource and cross-identity
8457
+ access returns 403 — OR acts on the caller's implicit
8458
+ identity-scoped data (credits balance, own session).
8459
+ required_tier:
8460
+ description: |
8461
+ Endpoint-level entitlement gate. Reserved/null today —
8462
+ operation-level `required_tier` flows via
8463
+ `operations.*.required_tier` and is NOT duplicated here.
8464
+ oneOf:
8465
+ - $ref: '#/components/schemas/UserTier'
8466
+ - type: 'null'
8467
+ availability:
8468
+ type: string
8469
+ enum: [stable, beta, experimental, planned, deprecated]
8470
+ description: |
8471
+ Endpoint-level availability tag. Currently always
8472
+ `"stable"` for shipped endpoints. Reserved for future
8473
+ `planned` / `deprecated` endpoint-level annotation.
8474
+ operation_id:
8475
+ type: string
8476
+ description: |
8477
+ OpenAPI `operationId` for the operation. SDK code
8478
+ generators anchor on this for method naming; including
8479
+ it in the sidecar saves a round-trip to `openapi/api.yaml`.
8480
+ Per the SDK ask at ADR-0016 B1 sign-off.
8118
8481
 
8119
8482
  OperationSchemaDefinition:
8120
8483
  type: object
@@ -8291,6 +8654,7 @@ components:
8291
8654
  - boolean
8292
8655
  - enum
8293
8656
  - string
8657
+ - array
8294
8658
  description:
8295
8659
  type: string
8296
8660
  description: Human-readable description
@@ -8335,6 +8699,22 @@ components:
8335
8699
  by `make check-per-value-availability` (CI guard, ticket
8336
8700
  [I17 `0gwtwCav`](https://trello.com/c/0gwtwCav)). Runtime
8337
8701
  emission lands with I3.
8702
+ per_value_depends_on:
8703
+ type: object
8704
+ description: |
8705
+ Per-enum-value cross-field constraint map, only meaningful
8706
+ when `type: enum`. Keys MUST be a subset of `values[]`;
8707
+ each entry value is a `depends_on`-shaped condition mapping
8708
+ that the named enum value REQUIRES. Distinct from
8709
+ option-level `depends_on` (which gates applicability with
8710
+ silent-ignore semantics); `per_value_depends_on` rejects
8711
+ the request with `invalid_options` when the named value is
8712
+ chosen and the condition is not met. Verified by
8713
+ `make check-per-value-depends-on` (CI guard, ticket
8714
+ [`bsV3FWM5`](https://trello.com/c/bsV3FWM5)). Runtime
8715
+ emission ships verbatim alongside other availability
8716
+ metadata. See `schemas/FORMAT.md` §per_value_depends_on.
8717
+ additionalProperties: true
8338
8718
  min:
8339
8719
  type: number
8340
8720
  description: Minimum value (for integer/float types)