@giveitsmaller/contracts 0.61.0 → 0.62.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 (514) hide show
  1. package/accepted-options/accepted-options.json +1 -1
  2. package/accepted-options/image-output-routes.json +1 -1
  3. package/availability/availability.json +27 -6
  4. package/code-builder/code-builder-metadata.json +2 -2
  5. package/dist/openapi/models/AccountLimitEntry.d.ts +7 -5
  6. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  7. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  8. package/dist/openapi/models/AccountLimits.js +1 -1
  9. package/dist/openapi/models/AccountLimitsLimits.d.ts +7 -1
  10. package/dist/openapi/models/AccountLimitsLimits.js +3 -1
  11. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  12. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  17. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  18. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  19. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  20. package/dist/openapi/models/AuthErrorType.js +1 -1
  21. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  22. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  23. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  24. package/dist/openapi/models/AvailabilityValue.js +1 -1
  25. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  29. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  30. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  31. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  32. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  33. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  34. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  35. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  36. package/dist/openapi/models/CallbackEventType.js +1 -1
  37. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +46 -0
  38. package/dist/openapi/models/CancelAccountDeletion200Response.js +54 -0
  39. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +32 -0
  40. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +43 -0
  41. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  42. package/dist/openapi/models/CapabilityCondition.js +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  56. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  57. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  58. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  59. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  60. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  61. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  62. package/dist/openapi/models/CapabilityProduces.js +1 -1
  63. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  64. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  65. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  66. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  68. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  69. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  70. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  71. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  72. package/dist/openapi/models/CodegenSource.js +1 -1
  73. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  74. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  75. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  76. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  77. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  78. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  79. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  80. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  81. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +21 -4
  82. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  83. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  84. package/dist/openapi/models/CompositionPlan.js +1 -1
  85. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  86. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  87. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  88. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  89. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  90. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  91. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  92. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  93. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  94. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  95. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  96. package/dist/openapi/models/ConnectionSource.js +1 -1
  97. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  98. package/dist/openapi/models/ContactRequest.js +1 -1
  99. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  100. package/dist/openapi/models/ContactSubject.js +1 -1
  101. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  102. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  103. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  104. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  105. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  106. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  107. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  108. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  109. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  110. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  111. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  112. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  113. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  114. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  115. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  116. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  117. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  118. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  119. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  120. package/dist/openapi/models/CreditTransaction.js +1 -1
  121. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  122. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  123. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  124. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  125. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  126. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  127. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  128. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  129. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  130. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  131. package/dist/openapi/models/Delivery.d.ts +1 -1
  132. package/dist/openapi/models/Delivery.js +1 -1
  133. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  134. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  135. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  136. package/dist/openapi/models/DeliveryPlan.js +1 -1
  137. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  138. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  139. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  140. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  141. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  142. package/dist/openapi/models/DeliverySelection.js +1 -1
  143. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  144. package/dist/openapi/models/DownloadBundle.js +1 -1
  145. package/dist/openapi/models/DroppedOption.d.ts +1 -1
  146. package/dist/openapi/models/DroppedOption.js +1 -1
  147. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  148. package/dist/openapi/models/EmailNotify.js +1 -1
  149. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  150. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  151. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  152. package/dist/openapi/models/EndpointProjection.js +1 -1
  153. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  154. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  155. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  156. package/dist/openapi/models/EstimateQuality.js +1 -1
  157. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  158. package/dist/openapi/models/EstimateRange.js +1 -1
  159. package/dist/openapi/models/ExportAccountData200Response.d.ts +46 -0
  160. package/dist/openapi/models/ExportAccountData200Response.js +54 -0
  161. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +62 -0
  162. package/dist/openapi/models/ExportAccountData200ResponseData.js +55 -0
  163. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  164. package/dist/openapi/models/ExternalDestination.js +1 -1
  165. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  166. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  167. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  168. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  169. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  170. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  171. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  172. package/dist/openapi/models/ExternalImportToken.js +1 -1
  173. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  174. package/dist/openapi/models/ExternalSource.js +1 -1
  175. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  176. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  177. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  178. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  179. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  180. package/dist/openapi/models/FeatureViolation.js +1 -1
  181. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  182. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  183. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  184. package/dist/openapi/models/JobDefinition.js +1 -1
  185. package/dist/openapi/models/JobDownload.d.ts +1 -1
  186. package/dist/openapi/models/JobDownload.js +1 -1
  187. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  188. package/dist/openapi/models/JobInputV2.js +1 -1
  189. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  190. package/dist/openapi/models/JobMediaClass.js +1 -1
  191. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  192. package/dist/openapi/models/JobOutputSource.js +1 -1
  193. package/dist/openapi/models/JobResponse.d.ts +1 -1
  194. package/dist/openapi/models/JobResponse.js +1 -1
  195. package/dist/openapi/models/JobStatus.d.ts +1 -1
  196. package/dist/openapi/models/JobStatus.js +1 -1
  197. package/dist/openapi/models/JobType.d.ts +1 -1
  198. package/dist/openapi/models/JobType.js +1 -1
  199. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  200. package/dist/openapi/models/LivenessResponse.js +1 -1
  201. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  202. package/dist/openapi/models/LoginUser200Response.js +1 -1
  203. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  204. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  205. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  206. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  207. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  208. package/dist/openapi/models/LoginUser401Response.js +1 -1
  209. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  210. package/dist/openapi/models/LoginUserRequest.js +1 -1
  211. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  212. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  213. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  214. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  215. package/dist/openapi/models/MediaCategory.d.ts +31 -0
  216. package/dist/openapi/models/MediaCategory.js +49 -0
  217. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  218. package/dist/openapi/models/MetadataResponse.js +1 -1
  219. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  220. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  221. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  222. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  223. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  224. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  225. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  226. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  227. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  228. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  229. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  230. package/dist/openapi/models/MultiInputSource.js +1 -1
  231. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  232. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  233. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  234. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  235. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  236. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  237. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  238. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  239. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  240. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  241. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  242. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  243. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  244. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  245. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  246. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  247. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  248. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  249. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  250. package/dist/openapi/models/MultipartPartListing.js +1 -1
  251. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  252. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  253. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  254. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  255. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  256. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  257. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  258. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  259. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  260. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  261. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  262. package/dist/openapi/models/NotifyConfig.js +1 -1
  263. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  264. package/dist/openapi/models/OperationCapability.js +1 -1
  265. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  266. package/dist/openapi/models/OperationDefinition.js +1 -1
  267. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  268. package/dist/openapi/models/OperationDownload.js +1 -1
  269. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  270. package/dist/openapi/models/OperationInputModel.js +1 -1
  271. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  272. package/dist/openapi/models/OperationResponse.js +1 -1
  273. package/dist/openapi/models/OperationResult.d.ts +1 -1
  274. package/dist/openapi/models/OperationResult.js +1 -1
  275. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  276. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  277. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  278. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  279. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  280. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  281. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  282. package/dist/openapi/models/OperationStatus.js +1 -1
  283. package/dist/openapi/models/OperationType.d.ts +1 -1
  284. package/dist/openapi/models/OperationType.js +1 -1
  285. package/dist/openapi/models/OperationsSchemaResponse.d.ts +8 -1
  286. package/dist/openapi/models/OperationsSchemaResponse.js +4 -1
  287. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  288. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  289. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  290. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  291. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  292. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  293. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  294. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  295. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  296. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  297. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  298. package/dist/openapi/models/OptionSchema.js +1 -1
  299. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  300. package/dist/openapi/models/OutputProperties.js +1 -1
  301. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  302. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  303. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
  304. package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
  305. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  306. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  307. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  308. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  309. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  310. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  311. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  312. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  313. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  314. package/dist/openapi/models/ProcessingClass.js +1 -1
  315. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  316. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  317. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  318. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  319. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  320. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  321. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  322. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  323. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  324. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  325. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  326. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  327. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  328. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  329. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  330. package/dist/openapi/models/ProcessingPlan.js +1 -1
  331. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  332. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  333. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  334. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  335. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  336. package/dist/openapi/models/ReadinessResponse.js +1 -1
  337. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  338. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  339. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  340. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  341. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +46 -0
  342. package/dist/openapi/models/RequestAccountDeletion200Response.js +54 -0
  343. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +41 -0
  344. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +47 -0
  345. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +32 -0
  346. package/dist/openapi/models/RequestAccountDeletionRequest.js +43 -0
  347. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  348. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  349. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  350. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  351. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  352. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  353. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  354. package/dist/openapi/models/RetryResponse.js +1 -1
  355. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  356. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  357. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  358. package/dist/openapi/models/SseCompletionBase.js +1 -1
  359. package/dist/openapi/models/SseEventType.d.ts +1 -1
  360. package/dist/openapi/models/SseEventType.js +1 -1
  361. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  362. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  363. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  364. package/dist/openapi/models/SseJobFailedData.js +1 -1
  365. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  366. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  367. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  368. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  369. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  370. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  371. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  372. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  373. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  374. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  375. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  376. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  377. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  378. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  379. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  380. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  381. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  382. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  383. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  384. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  385. package/dist/openapi/models/TierDefaultLimits.d.ts +59 -0
  386. package/dist/openapi/models/TierDefaultLimits.js +47 -0
  387. package/dist/openapi/models/TierDefaults.d.ts +66 -0
  388. package/dist/openapi/models/TierDefaults.js +49 -0
  389. package/dist/openapi/models/TierDefaultsByAudience.d.ts +73 -0
  390. package/dist/openapi/models/TierDefaultsByAudience.js +60 -0
  391. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  392. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  393. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  394. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  395. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  396. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  397. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  398. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  399. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  400. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  401. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  402. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  403. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  404. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  405. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  406. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  407. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  408. package/dist/openapi/models/UploadFile403Response.js +1 -1
  409. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  410. package/dist/openapi/models/UploadFile422Response.js +1 -1
  411. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  412. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  413. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  414. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  415. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  416. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  417. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  418. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  419. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  420. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  421. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  422. package/dist/openapi/models/UploadResponse.js +1 -1
  423. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  424. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  425. package/dist/openapi/models/UploadSource.d.ts +1 -1
  426. package/dist/openapi/models/UploadSource.js +1 -1
  427. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  428. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  429. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  430. package/dist/openapi/models/UploadThresholds.js +1 -1
  431. package/dist/openapi/models/UserTier.d.ts +1 -1
  432. package/dist/openapi/models/UserTier.js +1 -1
  433. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  434. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  435. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  436. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  437. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  438. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  439. package/dist/openapi/models/WarningType.d.ts +1 -1
  440. package/dist/openapi/models/WarningType.js +1 -1
  441. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  442. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  443. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  444. package/dist/openapi/models/WebhookPayload.js +1 -1
  445. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  446. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  447. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  448. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  449. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  450. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  451. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  452. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  453. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  454. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  455. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  456. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  457. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  458. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  459. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  460. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  461. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  462. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  463. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  464. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  465. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  466. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  467. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  468. package/dist/openapi/models/WorkflowEdge.js +1 -1
  469. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  470. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  471. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  472. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  473. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  474. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  475. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  476. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  477. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  478. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  479. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  480. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  481. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  482. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  483. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  484. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  485. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  486. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  487. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  488. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  489. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  490. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  491. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  492. package/dist/openapi/models/WorkflowSource.js +1 -1
  493. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  494. package/dist/openapi/models/WorkflowStatus.js +1 -1
  495. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  496. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  497. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  498. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  499. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  500. package/dist/openapi/models/WorkflowSummary.js +1 -1
  501. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  502. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  503. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  504. package/dist/openapi/models/WorkflowWarning.js +1 -1
  505. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  506. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  507. package/dist/openapi/models/index.d.ts +11 -0
  508. package/dist/openapi/models/index.js +11 -0
  509. package/dist/openapi/runtime.d.ts +1 -1
  510. package/dist/openapi/runtime.js +1 -1
  511. package/openapi/api.yaml +642 -14
  512. package/operation-capabilities/operation-capabilities.json +1 -1
  513. package/operations/schemas/render_variants.yaml +28 -3
  514. package/package.json +1 -1
package/openapi/api.yaml CHANGED
@@ -89,15 +89,28 @@ 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.189.0
92
+ version: 2.191.0
93
93
  contact:
94
94
  name: API Support
95
95
 
96
+ # The production host was ABSENT from this block entirely until 2026-08-11 —
97
+ # for EVERY endpoint, not just one. That was not merely untidy: prod's SSE
98
+ # consumer fell back to the wrong host precisely because the correct one lived
99
+ # only in deployment config, where nothing could catch the divergence. A host
100
+ # that exists only in an env var is a convention; a host declared here is a fact
101
+ # every generated client picks up.
102
+ #
103
+ # The staging/prod asymmetry is DELIBERATE and must not be "tidied": prod sets
104
+ # `environment_subdomain` to empty, so the domain base IS the root; staging sets
105
+ # it to `staging`, hence the extra label. Values resolved from terraform code by
106
+ # the terraform session, not from anyone's memory.
96
107
  servers:
97
108
  - url: http://localhost:8080
98
109
  description: Local development
99
110
  - url: https://api.staging.giveitsmaller.com
100
111
  description: Staging environment
112
+ - url: https://api.giveitsmaller.com
113
+ description: Production environment
101
114
 
102
115
  tags:
103
116
  - name: Upload
@@ -1164,9 +1177,30 @@ paths:
1164
1177
  NOT inline per-operation `result_metadata` or output details (avoids
1165
1178
  N×M×K payload blow-up). Drill in via `GET /api/workflows/{id}/status`
1166
1179
  (per-op detail incl. `result_metadata`) and
1167
- `GET /api/workflows/{id}/downloads` (deliverables). Rows persist until
1168
- GDPR purge — workflows whose 24h download window has expired are still
1169
- listed. Per ticket [`nLK1IO1k`](https://trello.com/c/nLK1IO1k) (A1).
1180
+ `GET /api/workflows/{id}/downloads` (deliverables).
1181
+
1182
+ **Rows persist until GDPR purge — a workflow whose outputs have been
1183
+ retention-purged is STILL LISTED.** So a row appearing here does not
1184
+ imply its deliverables are still downloadable; read
1185
+ `retention_expires_at` on the downloads response for that.
1186
+
1187
+ ⚠️ **This sentence used to say "whose 24h download window has expired".
1188
+ That figure was WRONG and was the only place in this spec it appeared.**
1189
+ The download-retention window is **per-tier — free 7 days / paid 30
1190
+ days / enterprise custom** — computed from the workflow's `created_at`
1191
+ and reported as `retention_expires_at` on
1192
+ `GET /api/workflows/{id}/downloads`
1193
+ ([`G58ei6Z9`](https://trello.com/c/G58ei6Z9)). The stale clause almost
1194
+ certainly predates that field and nobody re-read it when the field
1195
+ landed.
1196
+ **It mattered because THREE clocks are involved and this was the one in
1197
+ the casually-read place:** `bundle.expires_at` is the short-lived
1198
+ pre-signed URL expiry (**access**), `retention_expires_at` is when the
1199
+ deliverables are removed (**data**), and the workflow's own
1200
+ `expires_at` is a record TTL on the paused path. **A download link
1201
+ expiring does not mean the object is gone** — a distinction this spec
1202
+ states correctly on `retention_expires_at` and used to contradict here.
1203
+ Per ticket [`nLK1IO1k`](https://trello.com/c/nLK1IO1k) (A1).
1170
1204
  operationId: listWorkflows
1171
1205
  security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 — user-scoped list, no anonymous access)
1172
1206
  x-identity-scoped: true # caller's own workflows — implicit identity-scoped, per ADR-0016 D3 (cf. credits/usage)
@@ -3996,6 +4030,402 @@ paths:
3996
4030
  schema:
3997
4031
  $ref: '#/components/schemas/ErrorEnvelope'
3998
4032
 
4033
+ /api/auth/account:
4034
+ delete:
4035
+ summary: Request deletion of the authenticated user's account
4036
+ # THE CONTRACT IS CATCHING UP TO SHIPPED BEHAVIOUR. Every status code,
4037
+ # error code and wire key below was read from the implementation
4038
+ # (AccountDeletionController + its feature tests), not designed here.
4039
+ #
4040
+ # ⚠️ WHAT HAPPENS TO STORED OUTPUTS IS DELIBERATELY NOT DECLARED. There
4041
+ # is a confirmed retention defect under a fleet-wide fix freeze, and a
4042
+ # deletion GUARANTEE is the one claim this repo must not lead the
4043
+ # implementation on: `planned` assumes the caller gets a refusal it can
4044
+ # see, and a retention gap refuses nothing. Declaring removal before
4045
+ # removal works would put a false claim on a privacy path. Tracked on
4046
+ # ticket [`NSIPubON`](https://trello.com/c/NSIPubON) as a USER decision,
4047
+ # alongside what happens to purchased credits.
4048
+ description: |
4049
+ Requests deletion of the caller's own account. **This is a request,
4050
+ not an immediate deletion** — it opens a **30-day grace period**
4051
+ during which `POST /api/auth/account/cancel-deletion` reverses it.
4052
+
4053
+ Re-verifies the caller's password: `current_password` is required.
4054
+
4055
+ **Deletion is REFUSED while the account has workflows in progress**
4056
+ (`409 WORKFLOWS_IN_PROGRESS`). A client must be prepared for that
4057
+ branch — it is not an error state the user can resolve by retrying
4058
+ immediately, and it is the answer to "what happens to my in-flight
4059
+ work": nothing, because the deletion does not start.
4060
+
4061
+ **Side effect a caller cannot otherwise discover:** a successful
4062
+ request **revokes the account's API keys immediately**, before the
4063
+ grace period elapses, and reports how many in `api_keys_revoked`.
4064
+ Cancelling the deletion does **not** restore them.
4065
+
4066
+ Hard deletion runs after grace expiry and is **not exposed to
4067
+ callers**; the terminal states surface as the `account_deleted` and
4068
+ `account_deletion_expired` error codes on subsequent requests.
4069
+ operationId: requestAccountDeletion
4070
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (authenticated principal)
4071
+ x-identity-scoped: true # identity-bound (caller's own account)
4072
+ tags:
4073
+ - Auth
4074
+ requestBody:
4075
+ required: true
4076
+ content:
4077
+ application/json:
4078
+ schema:
4079
+ type: object
4080
+ required:
4081
+ - current_password
4082
+ properties:
4083
+ current_password:
4084
+ type: string
4085
+ minLength: 1
4086
+ example:
4087
+ current_password: "s3cretpw"
4088
+ responses:
4089
+ '200':
4090
+ description: |
4091
+ Deletion requested; the 30-day grace period has started.
4092
+ content:
4093
+ application/json:
4094
+ schema:
4095
+ type: object
4096
+ additionalProperties: false
4097
+ required:
4098
+ - success
4099
+ - data
4100
+ properties:
4101
+ success:
4102
+ type: boolean
4103
+ enum: [true]
4104
+ data:
4105
+ type: object
4106
+ additionalProperties: false
4107
+ required:
4108
+ - message
4109
+ - api_keys_revoked
4110
+ properties:
4111
+ message:
4112
+ type: string
4113
+ description: Human-readable confirmation naming the grace period.
4114
+ api_keys_revoked:
4115
+ type: integer
4116
+ minimum: 0
4117
+ description: |
4118
+ How many of the account's API keys were revoked by
4119
+ this request. Revocation is **immediate** and is
4120
+ **not** undone by cancelling the deletion.
4121
+ example:
4122
+ success: true
4123
+ data:
4124
+ message: "Account deletion requested. You have 30 days to cancel."
4125
+ api_keys_revoked: 2
4126
+ '403':
4127
+ description: |
4128
+ The supplied `current_password` is incorrect
4129
+ (`error: INVALID_PASSWORD`, `error_type: invalid_password`).
4130
+ content:
4131
+ application/json:
4132
+ schema:
4133
+ $ref: '#/components/schemas/ErrorEnvelope'
4134
+ example:
4135
+ success: false
4136
+ error: "INVALID_PASSWORD"
4137
+ error_type: "invalid_password"
4138
+ message: "Current password is incorrect."
4139
+ '409':
4140
+ description: |
4141
+ Two distinct conflicts, discriminated by `error_type`:
4142
+
4143
+ - `already_requested` (`error: ALREADY_REQUESTED`) — a deletion
4144
+ request is already open for this account.
4145
+ - `workflows_in_progress` (`error: WORKFLOWS_IN_PROGRESS`) — the
4146
+ account has running workflows and deletion is refused until
4147
+ they reach a terminal state.
4148
+ content:
4149
+ application/json:
4150
+ schema:
4151
+ $ref: '#/components/schemas/ErrorEnvelope'
4152
+ example:
4153
+ success: false
4154
+ error: "WORKFLOWS_IN_PROGRESS"
4155
+ error_type: "workflows_in_progress"
4156
+ '401':
4157
+ description: No authenticated principal.
4158
+ content:
4159
+ application/json:
4160
+ schema:
4161
+ $ref: '#/components/schemas/ErrorEnvelope'
4162
+ example:
4163
+ success: false
4164
+ error: "AUTHENTICATION_REQUIRED"
4165
+ error_type: "authentication_required"
4166
+ message: "Authentication required."
4167
+ '404':
4168
+ description: |
4169
+ The authenticated principal no longer resolves to a stored user
4170
+ (`error: USER_NOT_FOUND`).
4171
+ content:
4172
+ application/json:
4173
+ schema:
4174
+ $ref: '#/components/schemas/ErrorEnvelope'
4175
+ example:
4176
+ success: false
4177
+ error: "USER_NOT_FOUND"
4178
+ '422':
4179
+ description: |
4180
+ Structured input validation failure — e.g. a blank
4181
+ `current_password`. `details[].field` carries the wire key
4182
+ `current_password`.
4183
+ content:
4184
+ application/json:
4185
+ schema:
4186
+ $ref: '#/components/schemas/ValidationErrorEnvelope'
4187
+ example:
4188
+ success: false
4189
+ error_type: validation_error
4190
+ error: "Validation failed"
4191
+ details:
4192
+ - field: "current_password"
4193
+ message: "Current password is required."
4194
+ '429':
4195
+ description: |
4196
+ Rate limit exceeded — the deletion request has its own per-user
4197
+ hourly limiter, separate from the cancel limiter. Carries a
4198
+ `Retry-After` response header.
4199
+ headers:
4200
+ Retry-After:
4201
+ description: Seconds to wait before retrying. Delta-seconds (RFC 9110).
4202
+ schema:
4203
+ type: integer
4204
+ minimum: 0
4205
+ example: 60
4206
+ content:
4207
+ application/json:
4208
+ schema:
4209
+ $ref: '#/components/schemas/ErrorEnvelope'
4210
+
4211
+ /api/auth/account/cancel-deletion:
4212
+ post:
4213
+ summary: Cancel a pending account-deletion request
4214
+ description: |
4215
+ Reverses a deletion request while the **30-day grace period** is
4216
+ still open. Takes no request body — the caller's identity is the
4217
+ whole input.
4218
+
4219
+ **`410 Gone` is the expiry signal** and is the only way a client
4220
+ learns the grace period has run out. Distinguish it from `409`: a
4221
+ `409` means there was never a request to cancel, a `410` means there
4222
+ was one and it is too late.
4223
+
4224
+ **API keys revoked by the deletion request are NOT restored.**
4225
+ operationId: cancelAccountDeletion
4226
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (authenticated principal)
4227
+ x-identity-scoped: true # identity-bound (caller's own account)
4228
+ tags:
4229
+ - Auth
4230
+ responses:
4231
+ '200':
4232
+ description: The pending deletion request was cancelled.
4233
+ content:
4234
+ application/json:
4235
+ schema:
4236
+ type: object
4237
+ additionalProperties: false
4238
+ required:
4239
+ - success
4240
+ - data
4241
+ properties:
4242
+ success:
4243
+ type: boolean
4244
+ enum: [true]
4245
+ data:
4246
+ type: object
4247
+ additionalProperties: false
4248
+ required:
4249
+ - message
4250
+ properties:
4251
+ message:
4252
+ type: string
4253
+ example:
4254
+ success: true
4255
+ data:
4256
+ message: "Account deletion has been cancelled."
4257
+ '409':
4258
+ description: |
4259
+ No deletion request is open for this account
4260
+ (`error: NO_DELETION_REQUEST`, `error_type: no_deletion_request`).
4261
+ content:
4262
+ application/json:
4263
+ schema:
4264
+ $ref: '#/components/schemas/ErrorEnvelope'
4265
+ example:
4266
+ success: false
4267
+ error: "NO_DELETION_REQUEST"
4268
+ error_type: "no_deletion_request"
4269
+ '410':
4270
+ description: |
4271
+ The 30-day grace period has expired and the deletion can no
4272
+ longer be cancelled (`error: GRACE_PERIOD_EXPIRED`,
4273
+ `error_type: grace_period_expired`). **This is the expiry
4274
+ signal** — see also the `account_deletion_expired` error code.
4275
+ content:
4276
+ application/json:
4277
+ schema:
4278
+ $ref: '#/components/schemas/ErrorEnvelope'
4279
+ example:
4280
+ success: false
4281
+ error: "GRACE_PERIOD_EXPIRED"
4282
+ error_type: "grace_period_expired"
4283
+ '401':
4284
+ description: No authenticated principal.
4285
+ content:
4286
+ application/json:
4287
+ schema:
4288
+ $ref: '#/components/schemas/ErrorEnvelope'
4289
+ example:
4290
+ success: false
4291
+ error: "AUTHENTICATION_REQUIRED"
4292
+ error_type: "authentication_required"
4293
+ message: "Authentication required."
4294
+ '404':
4295
+ description: |
4296
+ The authenticated principal no longer resolves to a stored user
4297
+ (`error: USER_NOT_FOUND`).
4298
+ content:
4299
+ application/json:
4300
+ schema:
4301
+ $ref: '#/components/schemas/ErrorEnvelope'
4302
+ example:
4303
+ success: false
4304
+ error: "USER_NOT_FOUND"
4305
+ '429':
4306
+ description: |
4307
+ Rate limit exceeded — the cancel path has its own per-user hourly
4308
+ limiter, separate from the deletion-request limiter. Carries a
4309
+ `Retry-After` response header.
4310
+ headers:
4311
+ Retry-After:
4312
+ description: Seconds to wait before retrying. Delta-seconds (RFC 9110).
4313
+ schema:
4314
+ type: integer
4315
+ minimum: 0
4316
+ example: 60
4317
+ content:
4318
+ application/json:
4319
+ schema:
4320
+ $ref: '#/components/schemas/ErrorEnvelope'
4321
+
4322
+ /api/auth/account/export:
4323
+ get:
4324
+ summary: Export the authenticated user's data (GDPR)
4325
+ description: |
4326
+ Returns the account's stored data as JSON: `profile`, `uploads`,
4327
+ `workflows`, `api_keys` and `billing`, plus an `exported_at`
4328
+ timestamp.
4329
+
4330
+ **The response carries the account's full PII**, so the server sets
4331
+ `Cache-Control: no-store` — **not** merely `no-cache`. A client MUST
4332
+ NOT write this payload to shared or persistent storage.
4333
+
4334
+ Independent of the deletion flow: exporting neither starts nor
4335
+ cancels a deletion.
4336
+ operationId: exportAccountData
4337
+ security: [{bearerAuth: []}, {sessionAuth: []}] # required (authenticated principal)
4338
+ x-identity-scoped: true # identity-bound (caller's own data)
4339
+ tags:
4340
+ - Auth
4341
+ responses:
4342
+ '200':
4343
+ description: |
4344
+ The account's exported data. The per-section payload shapes are
4345
+ **deliberately not pinned here** — they are a data dump for the
4346
+ account holder, not an integration surface, and pinning them
4347
+ would freeze internal record shapes into this contract.
4348
+ headers:
4349
+ Cache-Control:
4350
+ description: Always `no-store` — the payload carries full PII.
4351
+ schema:
4352
+ type: string
4353
+ example: "no-store"
4354
+ content:
4355
+ application/json:
4356
+ schema:
4357
+ type: object
4358
+ additionalProperties: false
4359
+ required:
4360
+ - success
4361
+ - data
4362
+ properties:
4363
+ success:
4364
+ type: boolean
4365
+ enum: [true]
4366
+ data:
4367
+ type: object
4368
+ required:
4369
+ - exported_at
4370
+ - profile
4371
+ properties:
4372
+ exported_at:
4373
+ type: string
4374
+ format: date-time
4375
+ profile:
4376
+ type: object
4377
+ uploads:
4378
+ type: array
4379
+ items:
4380
+ type: object
4381
+ workflows:
4382
+ type: array
4383
+ items:
4384
+ type: object
4385
+ api_keys:
4386
+ type: array
4387
+ items:
4388
+ type: object
4389
+ billing:
4390
+ type: object
4391
+ '401':
4392
+ description: No authenticated principal.
4393
+ content:
4394
+ application/json:
4395
+ schema:
4396
+ $ref: '#/components/schemas/ErrorEnvelope'
4397
+ example:
4398
+ success: false
4399
+ error: "AUTHENTICATION_REQUIRED"
4400
+ error_type: "authentication_required"
4401
+ message: "Authentication required."
4402
+ '404':
4403
+ description: |
4404
+ The authenticated principal no longer resolves to a stored user
4405
+ (`error: USER_NOT_FOUND`).
4406
+ content:
4407
+ application/json:
4408
+ schema:
4409
+ $ref: '#/components/schemas/ErrorEnvelope'
4410
+ example:
4411
+ success: false
4412
+ error: "USER_NOT_FOUND"
4413
+ '429':
4414
+ description: |
4415
+ Data-export rate limit reached. Carries a `Retry-After` response
4416
+ header.
4417
+ headers:
4418
+ Retry-After:
4419
+ description: Seconds to wait before retrying. Delta-seconds (RFC 9110).
4420
+ schema:
4421
+ type: integer
4422
+ minimum: 0
4423
+ example: 60
4424
+ content:
4425
+ application/json:
4426
+ schema:
4427
+ $ref: '#/components/schemas/ErrorEnvelope'
4428
+
3999
4429
  /api/auth/confirm-email-change:
4000
4430
  post:
4001
4431
  summary: Confirm a pending email-address change
@@ -5185,6 +5615,18 @@ paths:
5185
5615
  operationId: createBillingCheckoutSession
5186
5616
  security: [{bearerAuth: []}, {sessionAuth: []}] # required (IS_AUTHENTICATED_FULLY; anonymous/partial sessions → 401)
5187
5617
  x-identity-scoped: true # the checkout session is created for the authenticated caller
5618
+ # DOWNGRADE, and it clears standing policies 3 and 4 by MEASUREMENT
5619
+ # rather than by absence of evidence: e2e drove this endpoint on staging
5620
+ # 2026-08-11 and got 422 `feature_not_available` with
5621
+ # `availability: planned`, WITH CONTROLS — unauthenticated gives 401 and
5622
+ # GET gives 405, so the 422 is the feature gate and not a bad payload or
5623
+ # a missing route. api confirmed `STRIPE_CHECKOUT_ENABLED=false` and five
5624
+ # empty price IDs on the live task definition.
5625
+ #
5626
+ # Flipping this back to `stable` is an UPGRADE and is covered by the
5627
+ # standing freeze (hub, 2026-08-11): no availability upgrade to `stable`
5628
+ # before launch without an explicit per-flip ruling.
5629
+ x-availability: planned
5188
5630
  tags:
5189
5631
  - Billing
5190
5632
  requestBody:
@@ -6751,6 +7193,138 @@ components:
6751
7193
  $ref: '#/components/schemas/AccountLimitEntry'
6752
7194
  max_total_input_size_bytes:
6753
7195
  $ref: '#/components/schemas/AccountLimitEntry'
7196
+ max_duration_seconds:
7197
+ # OPTIONAL in this expand step; NOT in `required` above until
7198
+ # api emits it. Unit is SECONDS — carried by the key name, per
7199
+ # AccountLimitEntry.
7200
+ $ref: '#/components/schemas/AccountLimitEntry'
7201
+
7202
+ MediaCategory:
7203
+ type: string
7204
+ enum: [image, video, audio, document]
7205
+ description: |
7206
+ Coarse input media family, as used by the tier-default surface.
7207
+ **Not** a MIME type and **not** an operation `mime_group` — those are
7208
+ finer-grained and live in the operation schemas. This vocabulary
7209
+ exists so a client can filter a file picker without enumerating MIMEs.
7210
+
7211
+ TierDefaults:
7212
+ type: object
7213
+ additionalProperties: false
7214
+ description: |
7215
+ The **published default limits**, readable by an ANONYMOUS caller.
7216
+
7217
+ **Why this exists separately from `GET /api/v2/account/limits`:** that
7218
+ endpoint is per-account and override-aware, so it requires auth and
7219
+ returns `401` to an anonymous caller — **correctly**, because
7220
+ `effective` / `tier_default` / `overridden` is meaningless without an
7221
+ account. What a logged-out visitor needs is the **tier defaults**,
7222
+ which are not per-account. This publishes AS DATA what the `UserTier`
7223
+ description already publishes as prose.
7224
+
7225
+ **The server is authoritative for the values.** This contract declares
7226
+ the SHAPE; the numbers are computed per environment and per tier
7227
+ model, and a client MUST read them here rather than hard-coding a
7228
+ table (the drift this field exists to end).
7229
+ required:
7230
+ - media_categories
7231
+ - by_audience
7232
+ properties:
7233
+ media_categories:
7234
+ type: array
7235
+ minItems: 1
7236
+ uniqueItems: true
7237
+ items:
7238
+ $ref: '#/components/schemas/MediaCategory'
7239
+ description: |
7240
+ The input media families available **to every audience,
7241
+ including anonymous**. Declared ONCE, not per-tier, because it
7242
+ does not vary — hub decision 25 made audio universal, and there
7243
+ is now no tier boundary at which the category axis changes.
7244
+
7245
+ ⚠️ **Deliberately NOT a per-audience allow-list.** A structure
7246
+ with one row per tier, every row identical, is a gate whose every
7247
+ row is open — it reads as an entitlement mechanism while
7248
+ encoding no entitlement, and the next reader maintains it as
7249
+ though it did. If a future tier DOES restrict categories, this
7250
+ field moves into `by_audience` in a deliberate change, and that
7251
+ change is where the restriction gets argued.
7252
+ by_audience:
7253
+ type: object
7254
+ additionalProperties: false
7255
+ description: |
7256
+ The limits that genuinely DO vary, keyed by audience. Contains
7257
+ only axes with real variance; an axis that is uniform belongs
7258
+ beside `media_categories`, not here.
7259
+
7260
+ **`anonymous` is a key here but deliberately NOT a `UserTier`
7261
+ value.** `UserTier` is a subscription tier and anonymous is the
7262
+ ABSENCE of one — putting it in that enum would place a
7263
+ non-subscription value inside the ordering that drives upgrade
7264
+ prompts (`free < pro < max < enterprise`), where it has no
7265
+ position.
7266
+ ⚠️ **And keeping them distinct is not pedantry — the conflation
7267
+ has already shipped once.** This endpoint's `user_tier`
7268
+ description used to say anonymous callers "receive the `free`
7269
+ tier baseline view", which became false the moment the two were
7270
+ allowed to differ. **A vocabulary that cannot express the
7271
+ difference invites prose asserting they are the same.**
7272
+ required:
7273
+ - anonymous
7274
+ - free
7275
+ - pro
7276
+ - max
7277
+ - enterprise
7278
+ properties:
7279
+ anonymous:
7280
+ $ref: '#/components/schemas/TierDefaultLimits'
7281
+ free:
7282
+ $ref: '#/components/schemas/TierDefaultLimits'
7283
+ pro:
7284
+ $ref: '#/components/schemas/TierDefaultLimits'
7285
+ max:
7286
+ $ref: '#/components/schemas/TierDefaultLimits'
7287
+ enterprise:
7288
+ $ref: '#/components/schemas/TierDefaultLimits'
7289
+
7290
+ TierDefaultLimits:
7291
+ type: object
7292
+ additionalProperties: false
7293
+ description: |
7294
+ One audience's default limits. **Defaults, not entitlements** — a
7295
+ specific account may carry an override, which only
7296
+ `GET /api/v2/account/limits` can report.
7297
+ required:
7298
+ - max_upload_size_bytes
7299
+ - max_duration_seconds
7300
+ properties:
7301
+ max_upload_size_bytes:
7302
+ type: integer
7303
+ format: int64
7304
+ minimum: 1
7305
+ description: |
7306
+ Per-FILE upload cap. Same axis as
7307
+ `AccountLimits.limits.max_upload_size_bytes`.
7308
+
7309
+ ⚠️ **A client MUST NOT treat this as the only size bound.** The
7310
+ per-operation processing ceilings (`max_input_size_bytes` in the
7311
+ operation schemas) are a **different axis and a different
7312
+ number**, and can be SMALLER than this cap — an upload that
7313
+ succeeds may still be rejected at operation time. A picker that
7314
+ shows one number without the other will let a user pick a file
7315
+ the product cannot process.
7316
+ max_duration_seconds:
7317
+ type: [integer, "null"]
7318
+ minimum: 0
7319
+ description: |
7320
+ Per-upload duration cap for time-based media. `null` where the
7321
+ audience has no duration cap.
7322
+
7323
+ ⚠️ **DISTINCT from `processing_class.short_form.max_input_duration`
7324
+ (`PT5M`) in the operation schemas, which it may numerically
7325
+ equal.** That is the short-form/long-form PROCESSING boundary and
7326
+ applies to every audience; this is an entitlement. Two concepts,
7327
+ one integer — read this one for entitlement.
6754
7328
 
6755
7329
  AccountLimitEntry:
6756
7330
  type: object
@@ -6769,14 +7343,16 @@ components:
6769
7343
  type: integer
6770
7344
  minimum: 1
6771
7345
  description: |
6772
- The cap in force for this account, in bytes
6773
- (`override ?? tier_default`).
7346
+ The cap in force for this account (`override ?? tier_default`),
7347
+ **in this limit's own unit** — bytes for the `*_bytes` keys,
7348
+ seconds for the `*_seconds` keys. **The unit is carried by the
7349
+ key name, not by this field.**
6774
7350
  tier_default:
6775
7351
  type: integer
6776
7352
  minimum: 1
6777
7353
  description: |
6778
- The tier's default cap for this limit, in bytes (already public
6779
- via the tier model).
7354
+ The tier's default cap for this limit, in the same unit as
7355
+ `effective` (already public via the tier model).
6780
7356
  overridden:
6781
7357
  type: boolean
6782
7358
  description: |
@@ -11468,11 +12044,50 @@ components:
11468
12044
 
11469
12045
  CodegenUploadPlaceholder:
11470
12046
  type: object
12047
+ # ⚠️ THIS DESCRIPTION USED TO SAY "the original upload is
12048
+ # consumed/expired". THAT WAS FALSE, and it contradicted this contract's
12049
+ # own schema: `UploadSource` accepts `{type: upload, file_id}` at
12050
+ # workflow-create, so a client reading the schema builds file reuse while
12051
+ # a client reading this sentence concludes it cannot work. Both shipped,
12052
+ # in the same published artefact.
12053
+ #
12054
+ # Corrected 2026-08-12 from api's code read: NOTHING marks an upload
12055
+ # consumed — no column, no flag, no state — nothing deletes it when a
12056
+ # workflow completes, and the `uploads` row is independent of workflow
12057
+ # lifecycle. An upload is REUSABLE.
12058
+ #
12059
+ # ⚠️ THE UPLOAD LIFETIME IS STILL UNDECLARED AND IS DELIBERATELY NOT
12060
+ # INVENTED HERE. The only true sense in which an upload "expires" is the
12061
+ # stored bytes ageing out of the input bucket, which is a storage
12062
+ # lifecycle and not currently a contract concept at all. That number is
12063
+ # terraform's measurement; it has been relayed to this session as 3 days
12064
+ # and NEITHER api NOR this session has verified it, so it is not written
12065
+ # into the contract. Asked of terraform 2026-08-12; lands as a follow-up
12066
+ # if and only if they confirm it AND confirm staging and prod agree —
12067
+ # this contract has no environment axis, so a lifetime true in one
12068
+ # environment and false in the other cannot be expressed honestly.
11471
12069
  description: |
11472
12070
  Stand-in for a user UPLOAD source in a replay projection — descriptive
11473
- metadata so a consumer can re-prompt for an equivalent file. NOT the
11474
- bytes or storage key (the original upload is consumed/expired), so it is
11475
- deliberately NOT a re-submittable `UploadSource`.
12071
+ metadata so a consumer can re-prompt for an equivalent file. Carries
12072
+ NOT the bytes or the storage key, only the descriptive fields below.
12073
+
12074
+ **This placeholder is about what the PROJECTION carries, not about
12075
+ whether the upload still exists.** An upload is **not** consumed by
12076
+ being used: nothing marks it spent, and referencing the same `file_id`
12077
+ again at `POST /api/workflows` via `UploadSource` is valid — that is
12078
+ how a caller re-runs a file with different settings, or runs a
12079
+ different operation on it.
12080
+
12081
+ The projection omits the `file_id` because a replay snippet is meant to
12082
+ be re-runnable by **any** reader, including one who never held that
12083
+ upload; it is a code sample, not a resume token.
12084
+
12085
+ ⚠️ **How long an upload remains referenceable is NOT declared by this
12086
+ contract.** The stored bytes are subject to an input-bucket retention
12087
+ lifecycle that this spec does not state, so a caller MUST be prepared
12088
+ for a `file_id` that was valid to stop being usable, and MUST NOT infer
12089
+ a lifetime from the workflow `expires_at` TTL — **those are different
12090
+ clocks on different objects, and the workflow one is longer.**
11476
12091
  required:
11477
12092
  - kind
11478
12093
  properties:
@@ -12849,12 +13464,25 @@ components:
12849
13464
  - type: string
12850
13465
  - type: 'null'
12851
13466
  example: "production"
13467
+ tier_defaults:
13468
+ # Anonymous-readable. Declared here rather than on
13469
+ # /api/v2/account/limits because that surface is per-account and
13470
+ # override-aware, so it 401s an anonymous caller — correctly.
13471
+ $ref: '#/components/schemas/TierDefaults'
12852
13472
  user_tier:
12853
13473
  description: |
12854
13474
  Tier of the calling user. Anonymous (unauthenticated) callers
12855
- see `null` on the wire and receive the `free` tier baseline
12856
- view. Used by clients to render upgrade prompts on tier-gated
12857
- features.
13475
+ see `null` on the wire. Used by clients to render upgrade
13476
+ prompts on tier-gated features.
13477
+
13478
+ ⚠️ **`null` does NOT mean "the free tier".** This description
13479
+ previously said anonymous callers "receive the `free` tier
13480
+ baseline view"; that stopped being true when the anonymous and
13481
+ free limits were allowed to differ (hub decisions 22 + 25 —
13482
+ anonymous carries a shorter duration entitlement than a
13483
+ signed-in free user). **Anonymous is the ABSENCE of a tier, not
13484
+ the lowest one.** Read `tier_defaults.by_audience.anonymous`
13485
+ for what an unauthenticated caller may actually do.
12858
13486
  oneOf:
12859
13487
  - $ref: '#/components/schemas/UserTier'
12860
13488
  - type: 'null'