@giveitsmaller/contracts 0.70.0 → 0.73.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/README.md +2 -2
- package/accepted-options/accepted-options.json +1 -1
- package/accepted-options/image-output-routes.json +1 -1
- package/asyncapi/events.yaml +133 -69
- package/availability/availability.json +33 -45
- package/code-builder/code-builder-metadata.json +55 -66
- package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
- 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 +1 -1
- package/dist/openapi/models/AccountLimitsLimits.js +1 -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 +3 -2
- 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/AuthenticatedIdentity.d.ts +1 -1
- package/dist/openapi/models/AuthenticatedIdentity.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 +3 -2
- 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 +1 -1
- package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
- 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 +1 -1
- 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 +3 -2
- 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/EndpointProjectionServersInner.d.ts +1 -1
- package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +3 -2
- 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 +1 -1
- package/dist/openapi/models/ExportAccountData200Response.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
- 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 +3 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +3 -2
- 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/GetProfile200Response.d.ts +1 -1
- package/dist/openapi/models/GetProfile200Response.js +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.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 +3 -2
- 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 +8 -4
- 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/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 +26 -13
- 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 +4 -3
- 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 +5 -5
- package/dist/openapi/models/OperationType.js +5 -5
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +1 -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 +3 -2
- 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 +3 -2
- 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 +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
- 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/SseConnectionLimitResponse.d.ts +174 -0
- package/dist/openapi/models/SseConnectionLimitResponse.js +65 -0
- 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/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +3 -2
- 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 +3 -2
- 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 +7 -4
- package/dist/openapi/models/UploadProbeProcessingClass.js +7 -4
- 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 +3 -2
- 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 +3 -2
- 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 +1 -0
- package/dist/openapi/models/index.js +1 -0
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/audio_overlay.metadata.js +0 -2
- package/dist/operations/audio_to_video.metadata.js +1 -1
- package/dist/operations/compress.metadata.js +0 -1
- package/dist/operations/convert.metadata.js +0 -1
- package/dist/operations/custom_luma.metadata.js +0 -3
- package/dist/operations/merge.metadata.js +0 -1
- package/dist/operations/split.metadata.js +0 -1
- package/dist/operations/thumbnail.metadata.js +0 -1
- package/dist/operations/transform.metadata.js +0 -1
- package/dist/operations/video_text_watermark.metadata.js +0 -1
- package/dist/operations/video_watermark.metadata.js +2 -3
- package/openapi/README.md +1 -1
- package/openapi/api.yaml +229 -64
- package/operation-capabilities/operation-capabilities.json +3 -3
- package/operations/schemas/audio_overlay.yaml +2 -4
- package/operations/schemas/audio_to_video.yaml +25 -5
- package/operations/schemas/compress.yaml +9 -2
- package/operations/schemas/convert.yaml +1 -2
- package/operations/schemas/custom_luma.yaml +5 -7
- package/operations/schemas/merge.yaml +1 -2
- package/operations/schemas/split.yaml +154 -2
- package/operations/schemas/thumbnail.yaml +1 -2
- package/operations/schemas/transform.yaml +1 -2
- package/operations/schemas/video_text_watermark.yaml +72 -12
- package/operations/schemas/video_watermark.yaml +61 -24
- package/package.json +3 -3
package/openapi/api.yaml
CHANGED
|
@@ -89,7 +89,7 @@ info:
|
|
|
89
89
|
of truth instead of hardcoding magic numbers. A runtime
|
|
90
90
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
91
91
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
92
|
-
version: 2.
|
|
92
|
+
version: 2.208.0
|
|
93
93
|
contact:
|
|
94
94
|
name: API Support
|
|
95
95
|
|
|
@@ -1044,10 +1044,12 @@ paths:
|
|
|
1044
1044
|
|
|
1045
1045
|
**Tier scoping.** The probe respects the caller's tier — the
|
|
1046
1046
|
`processing_class_pre_assignment` reflects the same logic
|
|
1047
|
-
F8.1 upload-side gating uses (per ticket I15-CONS),
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1047
|
+
F8.1 upload-side gating uses (per ticket I15-CONS), which
|
|
1048
|
+
honours a class's `required_tier`. **Since 2026-09-23 no callable
|
|
1049
|
+
video class carries one** (decision 26, `jLuZvlJe`; only the
|
|
1050
|
+
`planned` `audio_watermark` keeps `enterprise`), so for every
|
|
1051
|
+
callable class the pre-assignment depends on the file's duration
|
|
1052
|
+
and size, not on the caller's tier.
|
|
1051
1053
|
|
|
1052
1054
|
**Idempotent.** Probing the same file_id twice returns the
|
|
1053
1055
|
same `probed_at` timestamp + result (cached server-side per
|
|
@@ -1138,22 +1140,6 @@ paths:
|
|
|
1138
1140
|
container: "mov"
|
|
1139
1141
|
probed_at: "2026-04-26T13:50:00Z"
|
|
1140
1142
|
processing_class_pre_assignment: "blocked"
|
|
1141
|
-
blocked_by_tier:
|
|
1142
|
-
summary: Free-tier caller probes a long-form clip
|
|
1143
|
-
value:
|
|
1144
|
-
success: true
|
|
1145
|
-
data:
|
|
1146
|
-
file_id: "019539ab-1111-7000-8000-000000000005"
|
|
1147
|
-
probe_status: "ok"
|
|
1148
|
-
media_metadata:
|
|
1149
|
-
duration_seconds: 5400
|
|
1150
|
-
width: 1920
|
|
1151
|
-
height: 1080
|
|
1152
|
-
codec: "h264"
|
|
1153
|
-
container: "mp4"
|
|
1154
|
-
audio_layout: "stereo"
|
|
1155
|
-
probed_at: "2026-04-26T13:50:00Z"
|
|
1156
|
-
processing_class_pre_assignment: "blocked"
|
|
1157
1143
|
'401':
|
|
1158
1144
|
description: Authentication required.
|
|
1159
1145
|
content:
|
|
@@ -1810,8 +1796,8 @@ paths:
|
|
|
1810
1796
|
required_action: "add_credits"
|
|
1811
1797
|
links:
|
|
1812
1798
|
top_up: "https://giveitsmaller.com/account/billing/top-up"
|
|
1813
|
-
|
|
1814
|
-
summary: Free tier;
|
|
1799
|
+
upgrade_plan_free_tier:
|
|
1800
|
+
summary: Free tier; the API judged the tier allowance too small for this workload (a balance outcome, not a capability gate)
|
|
1815
1801
|
value:
|
|
1816
1802
|
success: false
|
|
1817
1803
|
error: "Workflow requires more credits than the free tier provides."
|
|
@@ -2080,8 +2066,10 @@ paths:
|
|
|
2080
2066
|
|
|
2081
2067
|
1. **Long-form concurrency cap** — the caller already holds the
|
|
2082
2068
|
maximum number of concurrent in-flight long-form (Fargate)
|
|
2083
|
-
workflows their tier permits (
|
|
2084
|
-
|
|
2069
|
+
workflows their tier permits (per-tier values are the API's
|
|
2070
|
+
`UserTier.maxConcurrentLongFormJobs` and are not restated
|
|
2071
|
+
here — the restated copy said Free was uncapped while the
|
|
2072
|
+
API capped it). Body is `LongFormConcurrencyLimitResponse`:
|
|
2085
2073
|
`error: LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED`, `message_key:
|
|
2086
2074
|
job.long_form_concurrency_exceeded`, a `links.upgrade` CTA,
|
|
2087
2075
|
and **no `Retry-After`** — the limit clears when an in-flight
|
|
@@ -2889,19 +2877,105 @@ paths:
|
|
|
2889
2877
|
went too fast; a caller who has opened nothing and is refused
|
|
2890
2878
|
because the pool is full has not, and sending them to a slow-down
|
|
2891
2879
|
remedy is a lie. That case is `503`.
|
|
2880
|
+
|
|
2881
|
+
🔴 **THE LIMIT: 5 OPEN STREAMS PER CALLER** (owner ruling
|
|
2882
|
+
2026-09-23, tickets [`2nZAmfxH`](https://trello.com/c/2nZAmfxH) /
|
|
2883
|
+
[`rLCBjojv`](https://trello.com/c/rLCBjojv)).
|
|
2884
|
+
|
|
2885
|
+
- **Who "the caller" is.** An authenticated user — every stream
|
|
2886
|
+
that user holds counts, across sessions and API keys. An
|
|
2887
|
+
anonymous caller is counted per anonymous session.
|
|
2888
|
+
⛔ **The anonymous key MUST be server-derived, never from
|
|
2889
|
+
client-supplied state** (a cookie or header the reader can drop
|
|
2890
|
+
or rotate) — otherwise a capability-only reader mints fresh
|
|
2891
|
+
slots per connection and the limit does not exist for anonymous
|
|
2892
|
+
callers.
|
|
2893
|
+
⚠️ **What that key is TODAY: the verified capability, i.e. per
|
|
2894
|
+
anonymous WORKFLOW.** An anonymous workflow persists only its
|
|
2895
|
+
capability-token hash, not the session that created it, so "per
|
|
2896
|
+
anonymous session" cannot yet be derived server-side. An
|
|
2897
|
+
anonymous caller with several workflows therefore holds up to
|
|
2898
|
+
the limit on EACH; the start-rate limiter and the global `503`
|
|
2899
|
+
still bound the total. The key widens to the anonymous session
|
|
2900
|
+
when the API persists an anonymous principal at create — that is
|
|
2901
|
+
an API change, not a contract one.
|
|
2902
|
+
- **What counts.** A stream occupies a slot from the moment it is
|
|
2903
|
+
accepted (`200`) until it closes, for any reason. Streams are
|
|
2904
|
+
counted, not starts — this is the limit `events_stream`'s start
|
|
2905
|
+
RATE cannot express (see `503`).
|
|
2906
|
+
- **Admission is an ATOMIC check-and-reserve, before the `200`.**
|
|
2907
|
+
Checking the count and incrementing it as separate steps lets a
|
|
2908
|
+
burst of concurrent requests all observe free capacity and open
|
|
2909
|
+
more than the limit. A reservation whose stream then fails to
|
|
2910
|
+
start MUST be released.
|
|
2911
|
+
- **What is refused.** The request that would open the sixth
|
|
2912
|
+
stream. **A held stream is never evicted to make room** — the
|
|
2913
|
+
caller's existing streams are unaffected.
|
|
2914
|
+
- **A crash cannot lock a caller out.** Slots are held in a shared
|
|
2915
|
+
counter whose entries EXPIRE: a slot whose stream died without
|
|
2916
|
+
closing cleanly is released at the latest when its entry
|
|
2917
|
+
expires. The expiry is the server's to choose; it is the
|
|
2918
|
+
longest a caller can be refused for streams that no longer
|
|
2919
|
+
exist.
|
|
2920
|
+
- ⛔ **An entry MUST NOT expire while its stream is still open.**
|
|
2921
|
+
Either the expiry is at least the stream's maximum lifetime (the
|
|
2922
|
+
server's stream deadline), or the holder refreshes the entry
|
|
2923
|
+
while it streams. Otherwise a caller holding streams past the
|
|
2924
|
+
expiry regains slots it is still using, and the limit silently
|
|
2925
|
+
becomes "5 per expiry window" instead of "5 open".
|
|
2926
|
+
|
|
2927
|
+
⚠️ **Refusal ends the ATTEMPT, never the workflow.** The workflow
|
|
2928
|
+
keeps running and `/status` keeps answering; a caller refused a
|
|
2929
|
+
stream loses only the push channel, not the result.
|
|
2930
|
+
|
|
2931
|
+
📌 **TWO `429`s SHARE THIS STATUS, discriminated by `error`:**
|
|
2932
|
+
`SSE_CONNECTION_LIMIT_EXCEEDED` (the open-stream limit above,
|
|
2933
|
+
carrying `open_streams` / `max_streams`) and the generic
|
|
2934
|
+
`TOO_MANY_REQUESTS` from the `events_stream` start-RATE limiter — a
|
|
2935
|
+
plain `ErrorEnvelope`, which validates against the same schema
|
|
2936
|
+
because the two count fields are required only on the first. Both
|
|
2937
|
+
carry `Retry-After` and the same obligation below.
|
|
2938
|
+
|
|
2939
|
+
🔴 **A BROWSER CANNOT READ `Retry-After` UNLESS IT IS EXPOSED.**
|
|
2940
|
+
It is not a CORS-safelisted response header (Fetch Standard,
|
|
2941
|
+
§CORS-safelisted response-header name), and the stream hosts are
|
|
2942
|
+
cross-origin to the frontend. ⇒ **Every refusal on this endpoint
|
|
2943
|
+
(`429` and `503`), as delivered to a browser, MUST carry the same
|
|
2944
|
+
CORS headers as a `200` from that host AND
|
|
2945
|
+
`Access-Control-Expose-Headers: Retry-After`.** Without the first
|
|
2946
|
+
the browser cannot read the status; without the second it reads
|
|
2947
|
+
the status and not the delay — and the consumer obligation below
|
|
2948
|
+
becomes impossible to meet. The obligation is on whatever layer
|
|
2949
|
+
sets CORS for the stream host, not only on the application.
|
|
2892
2950
|
headers:
|
|
2893
2951
|
Retry-After:
|
|
2894
|
-
|
|
2952
|
+
required: true
|
|
2953
|
+
description: |
|
|
2954
|
+
Seconds to wait. Delta-seconds, not an HTTP-date. **Always
|
|
2955
|
+
sent on this status**, and exposed to browsers (see
|
|
2956
|
+
`Access-Control-Expose-Headers` above).
|
|
2957
|
+
|
|
2958
|
+
**CONSUMER OBLIGATION** ([`rLCBjojv`](https://trello.com/c/rLCBjojv)):
|
|
2959
|
+
a client receiving this status **MUST NOT** request another
|
|
2960
|
+
stream for this caller before `Retry-After` has elapsed, and
|
|
2961
|
+
**MUST NOT** treat it as a transport error to be retried on
|
|
2962
|
+
its own schedule — it is a deliberate refusal. The client
|
|
2963
|
+
**MAY** follow the workflow over `/status` meanwhile; that
|
|
2964
|
+
endpoint's own rate limits govern it, and `Retry-After` here
|
|
2965
|
+
governs only the next stream request.
|
|
2895
2966
|
schema:
|
|
2896
2967
|
type: integer
|
|
2968
|
+
minimum: 0
|
|
2897
2969
|
content:
|
|
2898
2970
|
application/json:
|
|
2899
2971
|
schema:
|
|
2900
|
-
$ref: '#/components/schemas/
|
|
2972
|
+
$ref: '#/components/schemas/SseConnectionLimitResponse'
|
|
2901
2973
|
example:
|
|
2902
2974
|
success: false
|
|
2903
2975
|
error: SSE_CONNECTION_LIMIT_EXCEEDED
|
|
2904
2976
|
message: Too many open event streams for this caller.
|
|
2977
|
+
open_streams: 5
|
|
2978
|
+
max_streams: 5
|
|
2905
2979
|
'503':
|
|
2906
2980
|
description: |
|
|
2907
2981
|
**Global stream capacity is exhausted — nothing about this caller.**
|
|
@@ -2989,13 +3063,17 @@ paths:
|
|
|
2989
3063
|
read "not a storm" out of this section; it says the per-client cost
|
|
2990
3064
|
is bounded and says nothing about the fleet.**
|
|
2991
3065
|
|
|
2992
|
-
📌 **WHAT A REFUSED
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
3066
|
+
📌 **WHAT A REFUSED CLIENT MUST DO IS NOW SPECIFIED** — on the
|
|
3067
|
+
`Retry-After` header of this status and of `429`
|
|
3068
|
+
([`rLCBjojv`](https://trello.com/c/rLCBjojv), decided with the
|
|
3069
|
+
owner's stream-cap ruling of 2026-09-23): no further stream request
|
|
3070
|
+
before `Retry-After` elapses, never retried as a transport error,
|
|
3071
|
+
and `/status` polling permitted under that endpoint's own limits.
|
|
3072
|
+
⚠️ **`Retry-After` governs the next STREAM request, not a poll
|
|
3073
|
+
interval.** Falling back to polling is still load, merely cheaper,
|
|
3074
|
+
and the measured behaviour above is what a client does TODAY; a
|
|
3075
|
+
client that treats refusal as a transport error does not yet meet
|
|
3076
|
+
the obligation.
|
|
2999
3077
|
|
|
3000
3078
|
📌 **THE POPULATIONS SPLIT BY READER KIND, NOT BY
|
|
3001
3079
|
BROWSER-VERSUS-NOT.** The WHATWG rule covers **native
|
|
@@ -3018,11 +3096,19 @@ paths:
|
|
|
3018
3096
|
endpoint would not notice.
|
|
3019
3097
|
headers:
|
|
3020
3098
|
Retry-After:
|
|
3099
|
+
required: true
|
|
3021
3100
|
description: |
|
|
3022
3101
|
Seconds to wait before retrying. Delta-seconds, not an
|
|
3023
|
-
HTTP-date. **Also unreadable by `EventSource`** — see
|
|
3102
|
+
HTTP-date. **Always sent on this status. Also unreadable by a native `EventSource`** — see
|
|
3103
|
+
above; a `fetch`-based reader can read it.
|
|
3104
|
+
|
|
3105
|
+
**CONSUMER OBLIGATION** — the same as on `429`: no further
|
|
3106
|
+
stream request before `Retry-After` has elapsed, never retried
|
|
3107
|
+
as a transport error; `/status` polling permitted under that
|
|
3108
|
+
endpoint's own limits.
|
|
3024
3109
|
schema:
|
|
3025
3110
|
type: integer
|
|
3111
|
+
minimum: 0
|
|
3026
3112
|
content:
|
|
3027
3113
|
application/json:
|
|
3028
3114
|
schema:
|
|
@@ -6780,7 +6866,8 @@ components:
|
|
|
6780
6866
|
404 response + ADR-0016 Amendment.
|
|
6781
6867
|
- `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED` (429) — caller already
|
|
6782
6868
|
holds the maximum concurrent in-flight long-form workflows
|
|
6783
|
-
their tier permits (
|
|
6869
|
+
their tier permits (values: the API's
|
|
6870
|
+
`UserTier.maxConcurrentLongFormJobs`, not restated here).
|
|
6784
6871
|
DISTINCT from an infra rate-limit 429: carries no
|
|
6785
6872
|
`Retry-After` (it clears on workflow completion) and adds a
|
|
6786
6873
|
`links.upgrade` CTA. `message_key:
|
|
@@ -7221,6 +7308,14 @@ components:
|
|
|
7221
7308
|
PerMimeAvailability:
|
|
7222
7309
|
type: object
|
|
7223
7310
|
description: |
|
|
7311
|
+
**CLOSED TO NEW DECLARATIONS since 2026-09-18** ([`DquOfy7f`](https://trello.com/c/DquOfy7f)).
|
|
7312
|
+
Retained for compatibility only: no cell declares it, and
|
|
7313
|
+
`scripts/check-per-mime-availability.py` fails on any
|
|
7314
|
+
declaration. The API does not enforce it and the SDKs do not
|
|
7315
|
+
gate on it, so a differentiated MIME MUST use a parallel
|
|
7316
|
+
mime_group instead. The description below records what the
|
|
7317
|
+
field meant when it was open.
|
|
7318
|
+
|
|
7224
7319
|
Map of MIME-type → `PerValueAvailabilityEntry`. Attached to a
|
|
7225
7320
|
mime_group's `per_mime_availability` field when individual
|
|
7226
7321
|
MIMEs within the same `mimes:` list ship at different
|
|
@@ -7240,8 +7335,9 @@ components:
|
|
|
7240
7335
|
remains the right tool when the differentiated subset has
|
|
7241
7336
|
materially different option shape (animated GIF
|
|
7242
7337
|
watermarking, video-base watermarking, etc.). This
|
|
7243
|
-
primitive
|
|
7244
|
-
an otherwise-homogeneous mime list
|
|
7338
|
+
primitive WAS for pure availability differentiation within
|
|
7339
|
+
an otherwise-homogeneous mime list; since the closure above,
|
|
7340
|
+
that case uses a parallel mime_group too.
|
|
7245
7341
|
additionalProperties:
|
|
7246
7342
|
$ref: '#/components/schemas/PerValueAvailabilityEntry'
|
|
7247
7343
|
|
|
@@ -8378,14 +8474,64 @@ components:
|
|
|
8378
8474
|
format: uri
|
|
8379
8475
|
description: Top-up deep link.
|
|
8380
8476
|
|
|
8477
|
+
SseConnectionLimitResponse:
|
|
8478
|
+
type: object
|
|
8479
|
+
description: |
|
|
8480
|
+
`429` body for `GET /api/workflows/{id}/events` when the caller already
|
|
8481
|
+
holds the maximum number of open event streams
|
|
8482
|
+
(`SSE_CONNECTION_LIMIT_EXCEEDED`). The limit, who counts as the caller,
|
|
8483
|
+
and the consumer obligation are on that response. Carries the two
|
|
8484
|
+
counts the SDK taxonomy's `metadataSchema` names (`openStreams` /
|
|
8485
|
+
`maxStreams` after camelCase lowering), so a client can say "5 of 5
|
|
8486
|
+
streams open" without restating the limit.
|
|
8487
|
+
|
|
8488
|
+
**Both count fields are REQUIRED when `error` is
|
|
8489
|
+
`SSE_CONNECTION_LIMIT_EXCEEDED` and absent otherwise**, enforced by the
|
|
8490
|
+
`if`/`then`/`else` branch below rather than a plain `required` list,
|
|
8491
|
+
because the endpoint's other `429` — `TOO_MANY_REQUESTS` from the
|
|
8492
|
+
start-rate limiter — is the plain `ErrorEnvelope` subset of this shape
|
|
8493
|
+
and must validate against it too.
|
|
8494
|
+
allOf:
|
|
8495
|
+
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
8496
|
+
- type: object
|
|
8497
|
+
properties:
|
|
8498
|
+
open_streams:
|
|
8499
|
+
type: integer
|
|
8500
|
+
minimum: 0
|
|
8501
|
+
description: Streams this caller holds open at the moment of refusal.
|
|
8502
|
+
max_streams:
|
|
8503
|
+
type: integer
|
|
8504
|
+
minimum: 1
|
|
8505
|
+
description: |
|
|
8506
|
+
The caller's open-stream limit. **Read the limit from here,
|
|
8507
|
+
not from prose** — it is the server's value at refusal time.
|
|
8508
|
+
# The two 429 branches, machine-enforced (codex, #515 round 4): the
|
|
8509
|
+
# counts are REQUIRED on the stream-limit refusal and FORBIDDEN on any
|
|
8510
|
+
# other code (the start-rate limiter's plain TOO_MANY_REQUESTS).
|
|
8511
|
+
- if:
|
|
8512
|
+
required: [error]
|
|
8513
|
+
properties:
|
|
8514
|
+
error:
|
|
8515
|
+
const: SSE_CONNECTION_LIMIT_EXCEEDED
|
|
8516
|
+
then:
|
|
8517
|
+
required: [open_streams, max_streams]
|
|
8518
|
+
else:
|
|
8519
|
+
not:
|
|
8520
|
+
anyOf:
|
|
8521
|
+
- required: [open_streams]
|
|
8522
|
+
- required: [max_streams]
|
|
8523
|
+
|
|
8381
8524
|
LongFormConcurrencyLimitResponse:
|
|
8382
8525
|
type: object
|
|
8383
8526
|
description: |
|
|
8384
8527
|
`429` response body for `POST /api/workflows` when the caller
|
|
8385
8528
|
already holds the maximum number of concurrent in-flight
|
|
8386
8529
|
long-form (Fargate) workflows their tier permits
|
|
8387
|
-
(`UserTier.maxConcurrentLongFormJobs
|
|
8388
|
-
|
|
8530
|
+
(`UserTier.maxConcurrentLongFormJobs`, owned by the API and not
|
|
8531
|
+
restated here: an earlier copy said Free was uncapped and had no
|
|
8532
|
+
long-form access, while the API capped Free at a value of its own
|
|
8533
|
+
— and since 2026-09-23 every tier reaches long-form, decision 26,
|
|
8534
|
+
`jLuZvlJe`). Carried
|
|
8389
8535
|
on a `429` but DISTINCT from an infrastructure rate-limit `429`:
|
|
8390
8536
|
|
|
8391
8537
|
- `error` is the stable code `LONG_FORM_CONCURRENCY_LIMIT_EXCEEDED`
|
|
@@ -9714,12 +9860,12 @@ components:
|
|
|
9714
9860
|
- merge: Concatenate/combine multiple files into one (images, video, audio). Multi-input. Image inputs merge into animated GIF or slideshow video; image collage/grid and PDF concatenation are not supported by the V1 Lambda.
|
|
9715
9861
|
- archive: Bundle files into ZIP/tar.gz (all types). Multi-input.
|
|
9716
9862
|
- convert: Change file format (all types)
|
|
9717
|
-
- custom_luma: Apply a caller-uploaded luma matte to a base video for a custom luma-matte transition effect. Multi-input (`role: base` + `role: transition_mask`). `availability: planned`
|
|
9863
|
+
- custom_luma: Apply a caller-uploaded luma matte to a base video for a custom luma-matte transition effect. Multi-input (`role: base` + `role: transition_mask`). `availability: planned` (no tier gate); dispatch returns `feature_not_available` (422) until Lambda ships. Distinct from FFmpeg `xfade=custom` (which is an expression, not an operation). Per ticket I29 (Trello EPUE5Vs1).
|
|
9718
9864
|
- audio_overlay: Mix a secondary audio asset over a primary audio or video base (DJ tags, podcast intros/outros, station IDs, jingles). Multi-input (`role: base` + `role: overlay`). `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. **NOT** the same as `audio_watermark` — that operation is steganographic (imperceptible identifier embedded for ownership tracking), tracked separately by I20. Per ticket I19 (Trello Xr3Z4GBF).
|
|
9719
9865
|
- audio_watermark: Embed a steganographic forensic watermark into an audio asset (or a video's audio track) — Cinavia / Resemble PerTh territory. Single-input. `availability: planned` + `required_tier: enterprise`; dispatch returns `feature_not_available` (422) until Lambda ships. Pairs with `POST /api/audio-watermark/decode` for own-watermarks-only extraction. Per ticket I20 (Trello omiCq7Vn).
|
|
9720
|
-
- audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability:
|
|
9721
|
-
- video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability:
|
|
9722
|
-
- video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned
|
|
9866
|
+
- audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability: planned` — WITHDRAWN 2026-09-15: measured 0.300 s of encode per second of output PLUS A 7 s FIXED COST, so the advertised PT2H needs 2167 s against a 900 s platform maximum (0.300 x 7200 alone is 2160 — the intercept is what makes the figure 2167, and a consumer dividing 600 by 0.300 gets a 2000 s in-flight boundary where the real one is 1976 s). Returns `feature_not_available` (422) at workflow-create. An already-accepted workflow is not cancelled (availability is checked at create) and fails only when its output duration exceeds ~1976 s ON THE INPUT THE RATE WAS MEASURED WITH (a real photographic 1080p still plus looped real audio), where 0.300 s per second plus a 7 s fixed cost reaches the worker's 600 s cap — the 60 s and 120 s measured cells both COMPLETED. The driver is the STILL'S RESOLUTION, not duration alone: a 4K still is roughly 4x the rate (unmeasured), which would put the boundary near a quarter of that, and this schema places no constraint on the overlay's resolution. Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) + ADR-0015 (introduces `per_role_cardinality` vocab).
|
|
9867
|
+
- video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability: planned` — WITHDRAWN 2026-09-15, operation AND `short_form`: a real 1080p source at the advertised PT5M / 500 MB was killed at 606 s by the worker's 600 s encode cap, no output. Returns `feature_not_available` (422) at workflow-create; an already-accepted workflow is not cancelled and fails only if it exceeds that cap; the 606 s kill is ONE measured point and nothing measured says where the boundary is. `long_form` and `multi_overlay_stack` were already `planned`. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
|
|
9868
|
+
- video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned` — WITHDRAWN 2026-09-15, operation AND `short_form`: a real 1080p source at the advertised PT5M was killed at 604 s by the worker's 600 s encode cap. Returns `feature_not_available` (422) at workflow-create. ⚠️ This entry previously read "until Lambda ships", which was wrong in a way that mattered: the worker SHIPPED and runs — it is the CEILING that cannot be served. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
|
|
9723
9869
|
- split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` and `video` mime_groups (workers live on staging — shape-stable + opt-in, MUST NOT 422); video activates BOTH classes (`video.processing_class.short_form: beta` AND `long_form: beta` — `split-video-fargate` deployed + wired on staging but NOT yet proven end-to-end per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path soak has not completed, the 4GB+ speed-up is unmeasured, and the long-form fan-out is flag-gated dark). The `image_gif` and `document_pdf` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
|
|
9724
9870
|
- passthrough: Inert lossless source operation. A single-input source job whose SOLE operation is `passthrough` emits its source bytes UNCHANGED — no compression, no Lambda. The API self-completes the job at publish (terminal output = the upload `{bucket, key}` unchanged). Its purpose is to feed an uploaded file into a multi-input operation LOSSLESSLY: because `JobInputV2.source` is narrowed to exclude upload-direct, an upload that must enter a `merge` / `archive` / `image_watermark` op enters via a `passthrough` source job referenced downstream by `{type: job_output, from: <id>}` — preserving billing / DAG / lineage. Distinct from `operations: []` (which keeps its implicit-compress meaning on a single-input upload job); `passthrough` is the EXPLICIT lossless path via the "non-empty `operations[]` without `compress` = compression opt-out" rule. Media-agnostic; no options. `availability: beta` — activated (the inputs[]-narrowing + passthrough self-complete mechanism is deployed API-side); workflow-create accepts `passthrough` source jobs and MUST NOT return `feature_not_available`. **Never published to SNS** — deliberately absent from the AsyncAPI routing enums (API self-completes; no `ops-passthrough` queue). Per ticket [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta flip).
|
|
9725
9871
|
|
|
@@ -10950,9 +11096,11 @@ components:
|
|
|
10950
11096
|
planned` so workflow-create returns 422 until Lambda
|
|
10951
11097
|
ships), `audio_overlay` (joined via ticket
|
|
10952
11098
|
[I19](https://trello.com/c/Xr3Z4GBF) — same `planned`
|
|
10953
|
-
gating), and `audio_to_video` + `video_watermark`
|
|
10954
|
-
|
|
10955
|
-
|
|
11099
|
+
gating), and `audio_to_video` + `video_watermark`
|
|
11100
|
+
(WITHDRAWN 2026-09-15 — `availability: planned`; the backends
|
|
11101
|
+
are live but cannot serve the advertised ceilings, so
|
|
11102
|
+
workflow-create returns `feature_not_available` 422). The
|
|
11103
|
+
multi-input
|
|
10956
11104
|
shape is contract-defined for all entries.
|
|
10957
11105
|
- if:
|
|
10958
11106
|
properties:
|
|
@@ -12016,9 +12164,12 @@ components:
|
|
|
12016
12164
|
gating (per ticket I15-CONS) — reflects what the server
|
|
12017
12165
|
would route this file to under the caller's current tier.
|
|
12018
12166
|
`blocked` is emitted when no tier-permitted pool exists for
|
|
12019
|
-
the file
|
|
12020
|
-
or
|
|
12021
|
-
|
|
12167
|
+
the file — any caller probing a `corrupt` /
|
|
12168
|
+
`unsupported_codec` file, or a caller below a class's
|
|
12169
|
+
`required_tier`. Since 2026-09-23 (decision 26) the only
|
|
12170
|
+
video classes still carrying one are `audio_watermark`'s
|
|
12171
|
+
(`enterprise`, both `planned`), so the tier branch is
|
|
12172
|
+
unreachable for every callable video class.
|
|
12022
12173
|
# CLOSED. It GATES AN AFFORDANCE: `blocked` is a hard stop and the others
|
|
12023
12174
|
# predict routing. An unrecognised class cannot be safely treated as routable —
|
|
12024
12175
|
# a consumer guessing would offer an upload the server will refuse. A new
|
|
@@ -15103,9 +15254,10 @@ components:
|
|
|
15103
15254
|
Operation-level minimum subscription tier. Optional — when
|
|
15104
15255
|
absent, the operation is available to all callers regardless
|
|
15105
15256
|
of tier. Per ADR-0001 §1.3 (tier and availability are
|
|
15106
|
-
orthogonal axes). First operation-level consumer
|
|
15257
|
+
orthogonal axes). First operation-level consumer was
|
|
15107
15258
|
`custom_luma` (`required_tier: pro`) per
|
|
15108
|
-
[I29 `EPUE5Vs1`](https://trello.com/c/EPUE5Vs1)
|
|
15259
|
+
[I29 `EPUE5Vs1`](https://trello.com/c/EPUE5Vs1); that gate was
|
|
15260
|
+
dropped 2026-09-23 under decision 26 (owner ruling, `jLuZvlJe`). SDK + frontend
|
|
15109
15261
|
consumers gate UI on this value alongside `availability` to
|
|
15110
15262
|
hide higher-tier features for lower-tier callers; the
|
|
15111
15263
|
runtime returns `feature_tier_restricted` (403) on
|
|
@@ -15226,18 +15378,31 @@ components:
|
|
|
15226
15378
|
per_mime_availability:
|
|
15227
15379
|
$ref: '#/components/schemas/PerMimeAvailability'
|
|
15228
15380
|
description: |
|
|
15229
|
-
|
|
15230
|
-
[`
|
|
15231
|
-
|
|
15232
|
-
`scripts/check-per-mime-availability.py`
|
|
15233
|
-
|
|
15234
|
-
|
|
15235
|
-
|
|
15236
|
-
|
|
15237
|
-
`
|
|
15238
|
-
|
|
15239
|
-
|
|
15240
|
-
|
|
15381
|
+
CLOSED TO NEW DECLARATIONS since 2026-09-18, ticket
|
|
15382
|
+
[`DquOfy7f`](https://trello.com/c/DquOfy7f). No mime_group
|
|
15383
|
+
declares this field and none may:
|
|
15384
|
+
`scripts/check-per-mime-availability.py` REFUSES any
|
|
15385
|
+
declaration, anywhere, at any depth. Expect this map to be
|
|
15386
|
+
absent or empty on every group.
|
|
15387
|
+
|
|
15388
|
+
USE A PARALLEL `mime_group` INSTEAD. A group-level
|
|
15389
|
+
`planned` is enforced at create by the API's 422 gate;
|
|
15390
|
+
this map is NOT enforced anywhere. `compression_api`
|
|
15391
|
+
round-trips it raw; the SDK generators parse and publish
|
|
15392
|
+
it but nothing gates on it (`sdk_exposure` composes
|
|
15393
|
+
op/group/option/value and has no per-MIME level); only the
|
|
15394
|
+
frontend UI resolves it. So a declared value would be
|
|
15395
|
+
served by the API, published to SDK consumers as metadata
|
|
15396
|
+
their own gating ignores, and honoured only in one UI.
|
|
15397
|
+
|
|
15398
|
+
The field itself is RETAINED, not removed: the shape is
|
|
15399
|
+
already published and deleting it would break the four
|
|
15400
|
+
consuming repos. Keys, if any were ever present, MUST be a
|
|
15401
|
+
subset of `mimes[]`, and absent keys mean
|
|
15402
|
+
`availability: stable`. Runtime emission was to land with
|
|
15403
|
+
[I3](https://trello.com/c/eCWIpug8); that roadmap is
|
|
15404
|
+
closed. See `schemas/FORMAT.md`
|
|
15405
|
+
§`per_mime_availability`.
|
|
15241
15406
|
max_input_size_bytes:
|
|
15242
15407
|
type: integer
|
|
15243
15408
|
format: int64
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"accepts": [
|
|
52
52
|
"audio"
|
|
53
53
|
],
|
|
54
|
-
"availability": "
|
|
54
|
+
"availability": "planned",
|
|
55
55
|
"input": {
|
|
56
56
|
"max": 2,
|
|
57
57
|
"min": 1,
|
|
@@ -638,7 +638,7 @@
|
|
|
638
638
|
"accepts": [
|
|
639
639
|
"video"
|
|
640
640
|
],
|
|
641
|
-
"availability": "
|
|
641
|
+
"availability": "planned",
|
|
642
642
|
"input": {
|
|
643
643
|
"max": 2,
|
|
644
644
|
"min": 2,
|
|
@@ -732,5 +732,5 @@
|
|
|
732
732
|
"isAnimated": "maybe"
|
|
733
733
|
}
|
|
734
734
|
},
|
|
735
|
-
"schema_version": "2.
|
|
735
|
+
"schema_version": "2.208.0"
|
|
736
736
|
}
|
|
@@ -96,8 +96,7 @@ operation:
|
|
|
96
96
|
# Stays planned (CON-1 flips only compress.video.long_form +
|
|
97
97
|
# merge.video.long_form_re_encode). Per-tier caps per ADR-0011.
|
|
98
98
|
availability: planned
|
|
99
|
-
|
|
100
|
-
constraints: # baseline = Pro
|
|
99
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
101
100
|
max_input_duration: "PT12H"
|
|
102
101
|
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
103
102
|
max_output_size_bytes: 5000000000
|
|
@@ -282,8 +281,7 @@ operation:
|
|
|
282
281
|
# Stays planned (CON-1 flips only compress.video.long_form +
|
|
283
282
|
# merge.video.long_form_re_encode). Per-tier caps per ADR-0011.
|
|
284
283
|
availability: planned
|
|
285
|
-
|
|
286
|
-
constraints: # baseline = Pro
|
|
284
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
287
285
|
max_input_duration: "PT12H"
|
|
288
286
|
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
289
287
|
max_output_size_bytes: 5000000000
|
|
@@ -2,7 +2,7 @@ schema_version: "2.0.0"
|
|
|
2
2
|
|
|
3
3
|
operation:
|
|
4
4
|
type: audio_to_video
|
|
5
|
-
availability:
|
|
5
|
+
availability: planned
|
|
6
6
|
description: |
|
|
7
7
|
Produce a video from an audio input plus an OPTIONAL still image
|
|
8
8
|
overlay. Use cases: podcast → YouTube uploads, audio-only tracks
|
|
@@ -26,10 +26,30 @@ operation:
|
|
|
26
26
|
A lower framerate plus still-image tuning keeps file size tiny
|
|
27
27
|
when the overlay is a still image (the common case).
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
`availability: planned` — withdrawn 2026-09-15. Measured encode cost is
|
|
30
|
+
0.300 s per second of output PLUS A 7 s FIXED COST, so the advertised PT2H
|
|
31
|
+
needs 2167 s against a 900 s platform maximum. ⚠️ The 7 s is not a rounding
|
|
32
|
+
detail: 0.300 x 7200 alone is 2160, and a consumer dividing 600 by 0.300
|
|
33
|
+
derives a 2000 s in-flight boundary where the real one is ~1976 s. Workflow-create returns `feature_not_available` (422).
|
|
34
|
+
|
|
35
|
+
⚠️ An already-accepted workflow is NOT cancelled — availability is checked at
|
|
36
|
+
create — and it is NOT thereby doomed. ⛔ DO NOT READ THIS AS "in-flight work
|
|
37
|
+
fails": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH
|
|
38
|
+
OUTPUT, which is precisely why the evidence is arithmetic rather than a kill.
|
|
39
|
+
What fails is an accepted workflow whose OUTPUT DURATION exceeds ~1976 s
|
|
40
|
+
⚠️ ON THE INPUT THE RATE WAS MEASURED WITH — a real photographic 1080p STILL
|
|
41
|
+
plus looped real audio — the point at which 0.300 s/s plus the 7 s fixed cost
|
|
42
|
+
reaches the 600 s cap. ⛔ THE DRIVER IS THE STILL'S RESOLUTION, NOT THE
|
|
43
|
+
DURATION ALONE: a 4K still is roughly 4x the rate (recorded as UNMEASURED),
|
|
44
|
+
which would put the boundary near a quarter of that figure, and this schema
|
|
45
|
+
places NO constraint on the overlay's resolution. Other still resolutions and
|
|
46
|
+
other output settings are likewise unmeasured, and the contract does not
|
|
47
|
+
claim which direction they move —
|
|
48
|
+
and what the caller then sees is NOT SETTLED — see the CHANGELOG entry for
|
|
49
|
+
2.203.0; this contract does not pin a worker's error classification. Measured figures and the conditions for re-listing are in the
|
|
50
|
+
CHANGELOG entry for 2.203.0 — the only one of the two records that is
|
|
51
|
+
PUBLISHED (`schemas/manifest-divergence-register.yaml` is working material
|
|
52
|
+
for the drift gate and is not in the npm tarball).
|
|
33
53
|
|
|
34
54
|
default: false
|
|
35
55
|
input_model: multi
|
|
@@ -1041,9 +1041,16 @@ operation:
|
|
|
1041
1041
|
# (pure 300s duration + 256MiB size floor), and the eligibility gate
|
|
1042
1042
|
# treats beta==stable (only `planned` differs) — API-confirmed.
|
|
1043
1043
|
# Per-tier caps per D3.
|
|
1044
|
+
#
|
|
1045
|
+
# NO `required_tier` (owner ruling 2026-09-23, jLuZvlJe, under
|
|
1046
|
+
# decision 26): capability is limited by quota and credits, never by
|
|
1047
|
+
# hiding it. The `pro` gate this carried was never enforced by the API
|
|
1048
|
+
# and outlived the decision that opened every file type to every tier.
|
|
1049
|
+
# A lower tier's per-account upload cap
|
|
1050
|
+
# (`limits.max_upload_size_bytes`) still refuses first — that is the
|
|
1051
|
+
# quota, and it is a separate, request-level limit.
|
|
1044
1052
|
availability: stable
|
|
1045
|
-
|
|
1046
|
-
constraints: # baseline = Pro (lowest permitted tier)
|
|
1053
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
1047
1054
|
max_input_duration: "PT12H"
|
|
1048
1055
|
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
1049
1056
|
max_output_size_bytes: 5000000000
|
|
@@ -307,8 +307,7 @@ operation:
|
|
|
307
307
|
# merge.video.long_form_re_encode). Per-tier caps per ADR-0011 —
|
|
308
308
|
# advertised shape; availability gates execution off (422).
|
|
309
309
|
availability: planned
|
|
310
|
-
|
|
311
|
-
constraints: # baseline = Pro
|
|
310
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
312
311
|
max_input_duration: "PT12H"
|
|
313
312
|
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
314
313
|
max_output_size_bytes: 5000000000
|
|
@@ -3,12 +3,12 @@ schema_version: "2.0.0"
|
|
|
3
3
|
operation:
|
|
4
4
|
type: custom_luma
|
|
5
5
|
availability: planned
|
|
6
|
-
required_tier: pro
|
|
7
6
|
description: |
|
|
8
7
|
Apply a caller-uploaded luma matte (transition-mask) over a base
|
|
9
8
|
video to produce a custom luma-matte transition effect. Inspired
|
|
10
9
|
by Cloudinary's deprecated luma-matte custom transitions and
|
|
11
|
-
intended as a
|
|
10
|
+
intended as a creative feature, metered by credits like every
|
|
11
|
+
other operation (no tier gate — decision 26, 2026-09-23).
|
|
12
12
|
|
|
13
13
|
**NOT** related to the `xfade=custom` expression-mode transition
|
|
14
14
|
parameter. The `merge.transition.custom` value is tagged `planned`
|
|
@@ -52,13 +52,12 @@ operation:
|
|
|
52
52
|
- video/webm
|
|
53
53
|
processing_class:
|
|
54
54
|
# F8 long-form video tier (per ticket I15-CONS). custom_luma
|
|
55
|
-
# is itself `availability: planned`
|
|
56
|
-
#
|
|
55
|
+
# is itself `availability: planned` at the operation level
|
|
56
|
+
# (no tier gate — decision 26, owner ruling 2026-09-23); the per-class shape lands now to
|
|
57
57
|
# keep SDK/sidecar shape forward-compatible when the operation
|
|
58
58
|
# ships.
|
|
59
59
|
short_form:
|
|
60
60
|
availability: planned
|
|
61
|
-
required_tier: pro
|
|
62
61
|
constraints:
|
|
63
62
|
max_input_duration: "PT5M"
|
|
64
63
|
max_input_size_bytes: 524288000
|
|
@@ -68,8 +67,7 @@ operation:
|
|
|
68
67
|
# merge.video.long_form_re_encode). Per-tier caps per ADR-0011 —
|
|
69
68
|
# advertised shape; availability gates execution off (422).
|
|
70
69
|
availability: planned
|
|
71
|
-
|
|
72
|
-
constraints: # baseline = Pro
|
|
70
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
73
71
|
max_input_duration: "PT12H"
|
|
74
72
|
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
75
73
|
max_output_size_bytes: 5000000000
|
|
@@ -190,8 +190,7 @@ operation:
|
|
|
190
190
|
# max_total_duration (24h single-pass budget, SPIKE-0); size is the
|
|
191
191
|
# per-tier secondary cap.
|
|
192
192
|
availability: stable
|
|
193
|
-
|
|
194
|
-
constraints: # baseline = Pro (lowest permitted)
|
|
193
|
+
constraints: # baseline = every tier without a per_tier_constraints override
|
|
195
194
|
max_total_duration: "PT24H" # 24h (was PT12H) — binding Enterprise ceiling
|
|
196
195
|
max_total_input_size_bytes: 5000000000 # 5 GB combined (Pro)
|
|
197
196
|
per_tier_constraints:
|