@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.
- package/accepted-options/accepted-options.json +1 -1
- package/accepted-options/image-output-routes.json +1 -1
- package/availability/availability.json +27 -6
- package/code-builder/code-builder-metadata.json +2 -2
- package/dist/openapi/models/AccountLimitEntry.d.ts +7 -5
- package/dist/openapi/models/AccountLimitEntry.js +1 -1
- package/dist/openapi/models/AccountLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsLimits.d.ts +7 -1
- package/dist/openapi/models/AccountLimitsLimits.js +3 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
- package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSession.js +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +46 -0
- package/dist/openapi/models/CancelAccountDeletion200Response.js +54 -0
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +32 -0
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +43 -0
- package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
- package/dist/openapi/models/CapabilityCondition.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
- package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
- package/dist/openapi/models/CapabilityConstraint.js +1 -1
- package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
- package/dist/openapi/models/CapabilityInputSpec.js +1 -1
- package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
- package/dist/openapi/models/CapabilityProduces.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
- package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ChangePasswordRequest.js +1 -1
- package/dist/openapi/models/CodegenSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSource.js +1 -1
- package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceInput.js +1 -1
- package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJob.js +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
- package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceOperation.js +1 -1
- package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +21 -4
- package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
- package/dist/openapi/models/CompositionPlan.d.ts +1 -1
- package/dist/openapi/models/CompositionPlan.js +1 -1
- package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanJob.js +1 -1
- package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanOperation.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
- package/dist/openapi/models/ConnectionSource.d.ts +1 -1
- package/dist/openapi/models/ConnectionSource.js +1 -1
- package/dist/openapi/models/ContactRequest.d.ts +1 -1
- package/dist/openapi/models/ContactRequest.js +1 -1
- package/dist/openapi/models/ContactSubject.d.ts +1 -1
- package/dist/openapi/models/ContactSubject.js +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
- package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201Response.js +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
- package/dist/openapi/models/CreditTransaction.d.ts +1 -1
- package/dist/openapi/models/CreditTransaction.js +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageResponse.js +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
- package/dist/openapi/models/Delivery.d.ts +1 -1
- package/dist/openapi/models/Delivery.js +1 -1
- package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
- package/dist/openapi/models/DeliveryOutputRef.js +1 -1
- package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlan.js +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
- package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanReason.js +1 -1
- package/dist/openapi/models/DeliverySelection.d.ts +1 -1
- package/dist/openapi/models/DeliverySelection.js +1 -1
- package/dist/openapi/models/DownloadBundle.d.ts +1 -1
- package/dist/openapi/models/DownloadBundle.js +1 -1
- package/dist/openapi/models/DroppedOption.d.ts +1 -1
- package/dist/openapi/models/DroppedOption.js +1 -1
- package/dist/openapi/models/EmailNotify.d.ts +1 -1
- package/dist/openapi/models/EmailNotify.js +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
- package/dist/openapi/models/EndpointProjection.d.ts +1 -1
- package/dist/openapi/models/EndpointProjection.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/ExportAccountData200Response.d.ts +46 -0
- package/dist/openapi/models/ExportAccountData200Response.js +54 -0
- package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +62 -0
- package/dist/openapi/models/ExportAccountData200ResponseData.js +55 -0
- package/dist/openapi/models/ExternalDestination.d.ts +1 -1
- package/dist/openapi/models/ExternalDestination.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
- package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
- package/dist/openapi/models/ExternalImportRequest.js +1 -1
- package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
- package/dist/openapi/models/ExternalImportToken.js +1 -1
- package/dist/openapi/models/ExternalSource.d.ts +1 -1
- package/dist/openapi/models/ExternalSource.js +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
- package/dist/openapi/models/FeatureViolation.d.ts +1 -1
- package/dist/openapi/models/FeatureViolation.js +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
- package/dist/openapi/models/JobDefinition.d.ts +1 -1
- package/dist/openapi/models/JobDefinition.js +1 -1
- package/dist/openapi/models/JobDownload.d.ts +1 -1
- package/dist/openapi/models/JobDownload.js +1 -1
- package/dist/openapi/models/JobInputV2.d.ts +1 -1
- package/dist/openapi/models/JobInputV2.js +1 -1
- package/dist/openapi/models/JobMediaClass.d.ts +1 -1
- package/dist/openapi/models/JobMediaClass.js +1 -1
- package/dist/openapi/models/JobOutputSource.d.ts +1 -1
- package/dist/openapi/models/JobOutputSource.js +1 -1
- package/dist/openapi/models/JobResponse.d.ts +1 -1
- package/dist/openapi/models/JobResponse.js +1 -1
- package/dist/openapi/models/JobStatus.d.ts +1 -1
- package/dist/openapi/models/JobStatus.js +1 -1
- package/dist/openapi/models/JobType.d.ts +1 -1
- package/dist/openapi/models/JobType.js +1 -1
- package/dist/openapi/models/LivenessResponse.d.ts +1 -1
- package/dist/openapi/models/LivenessResponse.js +1 -1
- package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser200Response.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
- package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser401Response.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/MediaCategory.d.ts +31 -0
- package/dist/openapi/models/MediaCategory.js +49 -0
- package/dist/openapi/models/MetadataResponse.d.ts +1 -1
- package/dist/openapi/models/MetadataResponse.js +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
- package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExif.js +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
- package/dist/openapi/models/MimeGroupSchema.js +1 -1
- package/dist/openapi/models/MultiInputSource.d.ts +1 -1
- package/dist/openapi/models/MultiInputSource.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
- package/dist/openapi/models/MultipartPartListing.js +1 -1
- package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignRequest.js +1 -1
- package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignResponse.js +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusResponse.js +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/NotifyConfig.d.ts +1 -1
- package/dist/openapi/models/NotifyConfig.js +1 -1
- package/dist/openapi/models/OperationCapability.d.ts +1 -1
- package/dist/openapi/models/OperationCapability.js +1 -1
- package/dist/openapi/models/OperationDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationDefinition.js +1 -1
- package/dist/openapi/models/OperationDownload.d.ts +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -1
- package/dist/openapi/models/OperationInputModel.d.ts +1 -1
- package/dist/openapi/models/OperationInputModel.js +1 -1
- package/dist/openapi/models/OperationResponse.d.ts +1 -1
- package/dist/openapi/models/OperationResponse.js +1 -1
- package/dist/openapi/models/OperationResult.d.ts +1 -1
- package/dist/openapi/models/OperationResult.js +1 -1
- package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetadata.js +1 -1
- package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +1 -1
- package/dist/openapi/models/OperationType.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +8 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +4 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
- package/dist/openapi/models/OptionSchema.d.ts +1 -1
- package/dist/openapi/models/OptionSchema.js +1 -1
- package/dist/openapi/models/OutputProperties.d.ts +1 -1
- package/dist/openapi/models/OutputProperties.js +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
- package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
- package/dist/openapi/models/PresignedUrlPart.js +1 -1
- package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
- package/dist/openapi/models/ProbePendingResponse.js +1 -1
- package/dist/openapi/models/ProcessingClass.d.ts +1 -1
- package/dist/openapi/models/ProcessingClass.js +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
- package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntry.js +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
- package/dist/openapi/models/ReEncodeDecision.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
- package/dist/openapi/models/RegisterUser422Response.js +1 -1
- package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
- package/dist/openapi/models/RegisterUserRequest.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +46 -0
- package/dist/openapi/models/RequestAccountDeletion200Response.js +54 -0
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +41 -0
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +47 -0
- package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +32 -0
- package/dist/openapi/models/RequestAccountDeletionRequest.js +43 -0
- package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
- package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ResetPasswordRequest.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
- package/dist/openapi/models/SseCompletionBase.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
- package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletedData.js +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/TierDefaultLimits.d.ts +59 -0
- package/dist/openapi/models/TierDefaultLimits.js +47 -0
- package/dist/openapi/models/TierDefaults.d.ts +66 -0
- package/dist/openapi/models/TierDefaults.js +49 -0
- package/dist/openapi/models/TierDefaultsByAudience.d.ts +73 -0
- package/dist/openapi/models/TierDefaultsByAudience.js +60 -0
- package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionResponse.js +1 -1
- package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200Response.js +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
- package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile422Response.js +1 -1
- package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
- package/dist/openapi/models/UpdateProfileRequest.js +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile403Response.js +1 -1
- package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile422Response.js +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
- package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeResponse.js +1 -1
- package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
- package/dist/openapi/models/UploadProbeStatus.js +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadResponse.d.ts +1 -1
- package/dist/openapi/models/UploadResponse.js +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadSource.d.ts +1 -1
- package/dist/openapi/models/UploadSource.js +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadThresholds.d.ts +1 -1
- package/dist/openapi/models/UploadThresholds.js +1 -1
- package/dist/openapi/models/UserTier.d.ts +1 -1
- package/dist/openapi/models/UserTier.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
- package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
- package/dist/openapi/models/VerifyEmailRequest.js +1 -1
- package/dist/openapi/models/WarningType.d.ts +1 -1
- package/dist/openapi/models/WarningType.js +1 -1
- package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
- package/dist/openapi/models/WebhookOperationContext.js +1 -1
- package/dist/openapi/models/WebhookPayload.d.ts +1 -1
- package/dist/openapi/models/WebhookPayload.js +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
- package/dist/openapi/models/WorkflowEdge.js +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
- package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowListResponse.js +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
- package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
- package/dist/openapi/models/WorkflowProcessing.js +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSource.d.ts +1 -1
- package/dist/openapi/models/WorkflowSource.js +1 -1
- package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatus.js +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummary.js +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
- package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarning.js +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
- package/dist/openapi/models/index.d.ts +11 -0
- package/dist/openapi/models/index.js +11 -0
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/openapi/api.yaml +642 -14
- package/operation-capabilities/operation-capabilities.json +1 -1
- package/operations/schemas/render_variants.yaml +28 -3
- 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.
|
|
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).
|
|
1168
|
-
|
|
1169
|
-
|
|
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
|
|
6773
|
-
|
|
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
|
|
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.
|
|
11474
|
-
bytes or storage key
|
|
11475
|
-
|
|
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
|
|
12856
|
-
|
|
12857
|
-
|
|
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'
|