@giveitsmaller/contracts 0.82.0 → 0.84.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/anonymous-policy.yaml +55 -18
- package/asyncapi/README.md +1 -1
- package/asyncapi/events.yaml +121 -31
- package/availability/availability.json +6 -6
- package/code-builder/code-builder-metadata.json +7 -7
- package/dist/asyncapi/AnonymousSchema_286.d.ts +4 -0
- package/dist/asyncapi/AnonymousSchema_286.js +5 -0
- package/dist/asyncapi/LongFormProcessingClass.d.ts +2 -1
- package/dist/asyncapi/LongFormProcessingClass.js +1 -0
- package/dist/asyncapi/OperationMetrics.d.ts +2 -0
- package/dist/asyncapi/index.d.ts +1 -0
- package/dist/asyncapi/index.js +1 -0
- 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/AnonymousLimitExceededResponse.d.ts +157 -0
- package/dist/openapi/models/AnonymousLimitExceededResponse.js +95 -0
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +1 -1
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +1 -1
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +42 -7
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +13 -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/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 +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 +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/CheckoutSessionStatusResponse.d.ts +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponse.js +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponseData.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 +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow403Response.d.ts +4 -1
- package/dist/openapi/models/CreateWorkflow403Response.js +6 -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 +2 -2
- 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 +22 -2
- package/dist/openapi/models/DroppedOption.js +3 -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 +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 +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/ExportAccountData200ResponseDataBilling.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.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 +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/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 +41 -1
- package/dist/openapi/models/JobResponse.js +7 -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 +13 -1
- package/dist/openapi/models/LivenessResponse.js +3 -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/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/OperationMessageParamsValue.d.ts +1 -1
- package/dist/openapi/models/OperationMessageParamsValue.js +1 -1
- package/dist/openapi/models/OperationResponse.d.ts +4 -2
- 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 +37 -1
- package/dist/openapi/models/OperationResultMetadata.js +9 -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 +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 +7 -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/ProcessingClassEntryInputUniformity.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntryInputUniformity.js +1 -1
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.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 +11 -8
- 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/ResolutionBand.d.ts +1 -1
- package/dist/openapi/models/ResolutionBand.js +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.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 +1 -1
- package/dist/openapi/models/SseConnectionLimitResponse.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/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 +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/openapi/README.md +1 -1
- package/openapi/api.yaml +363 -38
- package/operation-capabilities/operation-capabilities.json +1 -2
- package/operations/schemas/compress.yaml +16 -11
- package/package.json +6 -4
- package/pricing-policy.yaml +82 -0
package/openapi/api.yaml
CHANGED
|
@@ -103,7 +103,7 @@ info:
|
|
|
103
103
|
of truth instead of hardcoding magic numbers. A runtime
|
|
104
104
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
105
105
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
106
|
-
version: 2.
|
|
106
|
+
version: 2.219.0
|
|
107
107
|
contact:
|
|
108
108
|
name: API Support
|
|
109
109
|
|
|
@@ -1472,9 +1472,20 @@ paths:
|
|
|
1472
1472
|
immutable ledger transaction is written in the same DB
|
|
1473
1473
|
transaction as the workflow row; the response's
|
|
1474
1474
|
`processing_plan` reflects the same estimate the reservation
|
|
1475
|
-
was sized against.
|
|
1476
|
-
|
|
1477
|
-
|
|
1475
|
+
was sized against. **Callers pay only for successful results,
|
|
1476
|
+
per job** (owner decisions 610(4) and 635; the policy is data in
|
|
1477
|
+
`schemas/pricing-policy.yaml`). Each job that completes is charged;
|
|
1478
|
+
a job that fails after its retries is refunded, as is cancelled
|
|
1479
|
+
work (a workflow paused for credits has its reservation released at
|
|
1480
|
+
the pause and reserved again on resume), so a `partially_failed`
|
|
1481
|
+
workflow is charged for the jobs that completed. A long-form fan-out is settled
|
|
1482
|
+
at what it actually used and the difference is refunded. Uploading
|
|
1483
|
+
is free; an operation on a larger input costs more, through the
|
|
1484
|
+
size surcharge in that file. Refunds are separate ledger rows
|
|
1485
|
+
referencing the reservation via `reference_id`. ⚠️ **Contract-first:**
|
|
1486
|
+
until api ships the per-job change, the API refunds the WHOLE
|
|
1487
|
+
reservation when any job fails, so a `partially_failed` workflow is
|
|
1488
|
+
charged nothing (`pricing-policy.yaml` `charge.api_today`). The
|
|
1478
1489
|
idempotency-key wire shape for retried reservation attempts
|
|
1479
1490
|
is deferred per ADR-0001 §1.7 row 5.
|
|
1480
1491
|
operationId: createWorkflow
|
|
@@ -1580,7 +1591,11 @@ paths:
|
|
|
1580
1591
|
- type: compress
|
|
1581
1592
|
responses:
|
|
1582
1593
|
'201':
|
|
1583
|
-
description:
|
|
1594
|
+
description: |
|
|
1595
|
+
Workflow created. A long video `compress` that the API runs as an
|
|
1596
|
+
internal fan-out appears as ONE job with ONE `compress` operation
|
|
1597
|
+
whose id is the one `/status` and SSE report; see **LONG-FORM
|
|
1598
|
+
FAN-OUT: ONE PUBLIC ROW** on `GET /api/workflows/{id}/events`.
|
|
1584
1599
|
content:
|
|
1585
1600
|
application/json:
|
|
1586
1601
|
schema:
|
|
@@ -1813,13 +1828,31 @@ paths:
|
|
|
1813
1828
|
credential) requested an operation outside the anonymous
|
|
1814
1829
|
allow-list. `operation` names the first such operation.
|
|
1815
1830
|
A register-wall: signing in is the remedy, not upgrading.
|
|
1816
|
-
- `anonymous_quota_exhausted`:
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1831
|
+
- `anonymous_quota_exhausted`: this create would cost more
|
|
1832
|
+
credits than the caller's per-IP allowance has left in the
|
|
1833
|
+
rolling 24 hours (`schemas/anonymous-policy.yaml`
|
|
1834
|
+
`allowance`). Also a register-wall. Carries `allowance`,
|
|
1835
|
+
`remaining` and `cost`, and `Retry-After` unless the request
|
|
1836
|
+
costs more than the whole allowance.
|
|
1837
|
+
- `anonymous_limit_exceeded`: an anonymous caller's input
|
|
1838
|
+
exceeds a guest-only limit (today: video duration). Also a
|
|
1839
|
+
register-wall.
|
|
1840
|
+
|
|
1841
|
+
The anonymous walls are checked BEFORE the workflow is
|
|
1842
|
+
built, and none consumes the caller's anonymous
|
|
1843
|
+
allowance. An authenticated caller never receives any.
|
|
1844
|
+
headers:
|
|
1845
|
+
Retry-After:
|
|
1846
|
+
required: false
|
|
1847
|
+
description: |
|
|
1848
|
+
Present only on `anonymous_quota_exhausted`, and only when
|
|
1849
|
+
the request's `cost` fits the `allowance` at all: seconds
|
|
1850
|
+
until enough of the caller's rolling 24 h credit window
|
|
1851
|
+
frees up for it. Delta-seconds (RFC 9110). Signing in
|
|
1852
|
+
remains the immediate remedy.
|
|
1853
|
+
schema:
|
|
1854
|
+
type: integer
|
|
1855
|
+
minimum: 0
|
|
1823
1856
|
content:
|
|
1824
1857
|
application/json:
|
|
1825
1858
|
schema:
|
|
@@ -1828,6 +1861,7 @@ paths:
|
|
|
1828
1861
|
- $ref: '#/components/schemas/FeatureTierRestrictedResponse'
|
|
1829
1862
|
- $ref: '#/components/schemas/AnonymousOperationNotAllowedResponse'
|
|
1830
1863
|
- $ref: '#/components/schemas/AnonymousQuotaExhaustedResponse'
|
|
1864
|
+
- $ref: '#/components/schemas/AnonymousLimitExceededResponse'
|
|
1831
1865
|
discriminator:
|
|
1832
1866
|
propertyName: error_type
|
|
1833
1867
|
mapping:
|
|
@@ -1835,6 +1869,7 @@ paths:
|
|
|
1835
1869
|
feature_tier_restricted: '#/components/schemas/FeatureTierRestrictedResponse'
|
|
1836
1870
|
anonymous_operation_not_allowed: '#/components/schemas/AnonymousOperationNotAllowedResponse'
|
|
1837
1871
|
anonymous_quota_exhausted: '#/components/schemas/AnonymousQuotaExhaustedResponse'
|
|
1872
|
+
anonymous_limit_exceeded: '#/components/schemas/AnonymousLimitExceededResponse'
|
|
1838
1873
|
examples:
|
|
1839
1874
|
feature_tier_restricted:
|
|
1840
1875
|
summary: Free tier referencing a Pro-tier operation
|
|
@@ -1866,6 +1901,21 @@ paths:
|
|
|
1866
1901
|
message: "Sign up to keep compressing."
|
|
1867
1902
|
message_key: "error.anonymous_quota_exhausted"
|
|
1868
1903
|
locale: "en-GB"
|
|
1904
|
+
allowance: 30
|
|
1905
|
+
remaining: 2
|
|
1906
|
+
cost: 5
|
|
1907
|
+
anonymous_limit_exceeded:
|
|
1908
|
+
summary: Anonymous caller's video is longer than the guest cap
|
|
1909
|
+
value:
|
|
1910
|
+
success: false
|
|
1911
|
+
error: "ANONYMOUS_LIMIT_EXCEEDED"
|
|
1912
|
+
error_type: "anonymous_limit_exceeded"
|
|
1913
|
+
message: "Sign up to process videos longer than a minute."
|
|
1914
|
+
message_key: "error.anonymous_limit_exceeded"
|
|
1915
|
+
locale: "en-GB"
|
|
1916
|
+
limit: "video_duration_seconds"
|
|
1917
|
+
actual: 95
|
|
1918
|
+
maximum: 60
|
|
1869
1919
|
'402':
|
|
1870
1920
|
description: |
|
|
1871
1921
|
Credit reservation failed (per ticket
|
|
@@ -2069,7 +2119,12 @@ paths:
|
|
|
2069
2119
|
Optional, best-effort. Present only on the
|
|
2070
2120
|
`probe_pending` branch — suggested seconds to wait
|
|
2071
2121
|
before re-polling the upload probe and retrying the
|
|
2072
|
-
workflow.
|
|
2122
|
+
workflow. **A guest (no credential) cannot poll the probe**
|
|
2123
|
+
(`POST /api/uploads/{id}/probe` requires sign-in): it retries
|
|
2124
|
+
the create itself. A `probe_pending` refusal does not count
|
|
2125
|
+
against the guest per-minute create limit and reserves no
|
|
2126
|
+
guest allowance credits (`schemas/anonymous-policy.yaml`
|
|
2127
|
+
`video`). Delta-seconds (RFC 9110), mirroring the 429
|
|
2073
2128
|
login path's `Retry-After` convention. Absent until the
|
|
2074
2129
|
server-side probe-staleness bound (API `e1Idv6UL`)
|
|
2075
2130
|
lands; consumers MUST treat absence as "retry on your
|
|
@@ -2292,6 +2347,12 @@ paths:
|
|
|
2292
2347
|
Retrieve the current status of a workflow with nested job and operation breakdown.
|
|
2293
2348
|
Each operation includes its current progress and, when completed, its result
|
|
2294
2349
|
(download URL, size, metrics).
|
|
2350
|
+
|
|
2351
|
+
A long video `compress` that the API runs as an internal fan-out
|
|
2352
|
+
(split, segments, concat) appears here as ONE job with ONE `compress`
|
|
2353
|
+
operation. See **LONG-FORM FAN-OUT: ONE PUBLIC ROW** on
|
|
2354
|
+
`GET /api/workflows/{id}/events`, which is normative for this
|
|
2355
|
+
endpoint too.
|
|
2295
2356
|
operationId: getWorkflowStatus
|
|
2296
2357
|
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
|
|
2297
2358
|
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
@@ -2538,6 +2599,15 @@ paths:
|
|
|
2538
2599
|
schema:
|
|
2539
2600
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
2540
2601
|
|
|
2602
|
+
# LONG-FORM FAN-OUT fold (section in the description below), read from
|
|
2603
|
+
# compression_api main 2a8dd8d5, paths under compression/src/Jobs/:
|
|
2604
|
+
# fold + public ids: Domain/Service/FanOutClusterFolder.php:22-47,218-239,332-354,452-545
|
|
2605
|
+
# ids: Domain/Service/FanOutNodeIdFactory.php:82-94,176-196
|
|
2606
|
+
# public op shape: Domain/ValueObject/FanOutPublicOperation.php:45,85-87
|
|
2607
|
+
# SSE frames: Application/Service/WorkflowSseService.php:333-350,563-671
|
|
2608
|
+
# create 201 row: Presentation/Http/Controller/WorkflowController.php:543-589,725-740
|
|
2609
|
+
# fallback path: Application/Service/LongFormFanOutBuilder.php:784-830
|
|
2610
|
+
# concat auto-retry: Infrastructure/Messaging/Handler/OperationResultHandler.php:712-730
|
|
2541
2611
|
/api/workflows/{id}/events:
|
|
2542
2612
|
get:
|
|
2543
2613
|
summary: Stream workflow events (SSE)
|
|
@@ -2845,6 +2915,80 @@ paths:
|
|
|
2845
2915
|
(the `id:` and `event:` lines) is transport-level and intentionally
|
|
2846
2916
|
**not** schema-described.
|
|
2847
2917
|
|
|
2918
|
+
### LONG-FORM FAN-OUT: ONE PUBLIC ROW
|
|
2919
|
+
|
|
2920
|
+
This section is normative for **every read surface**; the `/status`
|
|
2921
|
+
and create-201 descriptions point here rather than restate it.
|
|
2922
|
+
|
|
2923
|
+
The API may run a long video `compress` as an internal fan-out: one
|
|
2924
|
+
`split` job, then N parallel segment `compress` jobs, then a
|
|
2925
|
+
stream-copy concat (`merge`). It applies only to a root job holding a
|
|
2926
|
+
single `compress`, and only one such job per workflow. Today the API
|
|
2927
|
+
also requires that no other job depends on it; a client must not rely
|
|
2928
|
+
on that: if a fanned-out job has dependants, they read the joined
|
|
2929
|
+
output, exactly as they would read the job's output unsplit.
|
|
2930
|
+
**Clients never see the fan-out.** The API folds it into
|
|
2931
|
+
ONE public job with ONE public operation on the create 201,
|
|
2932
|
+
`GET /status` and this stream, and into ONE job row on
|
|
2933
|
+
`GET /api/workflows` (whose rows carry no operations; read the
|
|
2934
|
+
operation from `/status`). On `GET /downloads` the joined file is
|
|
2935
|
+
listed under the original `job_ref` with operation `compress`, when
|
|
2936
|
+
it is delivered at all: only once it is complete, only if the
|
|
2937
|
+
delivery selection includes that job, and only while retained. The
|
|
2938
|
+
internal jobs and operations do not appear on any surface, and this
|
|
2939
|
+
stream sends no frame for them.
|
|
2940
|
+
|
|
2941
|
+
| field | value |
|
|
2942
|
+
|---|---|
|
|
2943
|
+
| `job_ref` / `ref` | the client's **original** job ref, on every surface and every path below |
|
|
2944
|
+
| `job_id` | one server-chosen id for the public job, the same before and after the split expands |
|
|
2945
|
+
| `operation_id` / `operations[0].id` | one server-chosen id, the same on the 201, `/status` and this stream, before and after the split expands (exceptions below) |
|
|
2946
|
+
| `type` | `compress` (never `split` or `merge`), including the output-name marker |
|
|
2947
|
+
| `processing_class` (`/status`, `processing_plan`) | `long_form` |
|
|
2948
|
+
| `depends_on` | `[]` |
|
|
2949
|
+
| outputs | exactly one: the joined file |
|
|
2950
|
+
|
|
2951
|
+
**On this stream** the public operation gets zero or more
|
|
2952
|
+
`operation.progress` frames, then ONE `operation.completed` or ONE
|
|
2953
|
+
`operation.failed`, then ONE `job.completed` or `job.failed` for the
|
|
2954
|
+
public job. A failure can arrive with no progress frame before it,
|
|
2955
|
+
so the terminal frame may be the first one. These frames
|
|
2956
|
+
carry **no `id:` line**. `operation.completed` carries no
|
|
2957
|
+
`result_metadata`, and its `result` stays optional as on every
|
|
2958
|
+
`SseOperationCompletedData`: when it is absent, read the output from
|
|
2959
|
+
`GET /downloads`. `job.failed` can arrive in a later frame batch
|
|
2960
|
+
than `operation.failed`.
|
|
2961
|
+
|
|
2962
|
+
**Progress** is weighted by phase: split 10, segments 80 (shared
|
|
2963
|
+
equally), concat 10. Until the split finishes and the segments exist,
|
|
2964
|
+
it **stays at or below 10**: a long bar at 10% is the split running,
|
|
2965
|
+
not a stall. On this stream it never decreases within one connection.
|
|
2966
|
+
`GET /status` reads a snapshot per poll and can dip briefly between
|
|
2967
|
+
polls. Clients that must not show a backwards bar hold their own
|
|
2968
|
+
maximum per `job_ref`.
|
|
2969
|
+
|
|
2970
|
+
**Failure.** Any failed segment fails the whole public operation. The
|
|
2971
|
+
reported `error_code` is the causing failure; a `never_started`
|
|
2972
|
+
collateral code is reported only when there is no causing one.
|
|
2973
|
+
|
|
2974
|
+
**The operation id is NOT stable in two cases. Key the row on
|
|
2975
|
+
`job_ref`, which is.**
|
|
2976
|
+
1. **Unsplittable input.** When the split finds the file cannot be
|
|
2977
|
+
split, the API runs one plain long-form `compress` instead. It has
|
|
2978
|
+
a **new** `job_id` and `operation_id`, under the same `job_ref`.
|
|
2979
|
+
The first id gets no terminal frame. Its progress starts again
|
|
2980
|
+
from 0, so a bar keyed on `job_ref` goes back from 10 to 0 once.
|
|
2981
|
+
2. **Automatic retry of the concat step.** The retry is a new
|
|
2982
|
+
operation with a new id, and the public row then shows that id.
|
|
2983
|
+
User retries (`POST /api/operations/{id}/retry`) are refused for
|
|
2984
|
+
the internal operations.
|
|
2985
|
+
|
|
2986
|
+
**Downloads.** Before the split finishes the public job's
|
|
2987
|
+
`/downloads` row lists no files; while segments run it can be
|
|
2988
|
+
absent; it lists the one output once the concat completes. On the
|
|
2989
|
+
unsplittable path there is no concat: the fallback `compress` job
|
|
2990
|
+
is an ordinary row and lists its output when it completes.
|
|
2991
|
+
|
|
2848
2992
|
### AUTH ON THE STREAM HOST: the CREDENTIAL decides, not the caller
|
|
2849
2993
|
|
|
2850
2994
|
**Two axes, and conflating them is what made two earlier versions of this
|
|
@@ -6193,12 +6337,12 @@ paths:
|
|
|
6193
6337
|
value:
|
|
6194
6338
|
success: true
|
|
6195
6339
|
data:
|
|
6196
|
-
monthly_balance:
|
|
6340
|
+
monthly_balance: 800
|
|
6197
6341
|
purchased_balance: 5000
|
|
6198
|
-
overdraft_limit:
|
|
6342
|
+
overdraft_limit: 200
|
|
6199
6343
|
overdraft_debt: 0
|
|
6200
|
-
available_credits:
|
|
6201
|
-
monthly_allowance:
|
|
6344
|
+
available_credits: 6000
|
|
6345
|
+
monthly_allowance: 1000
|
|
6202
6346
|
tier: pro
|
|
6203
6347
|
pro_overdrafted:
|
|
6204
6348
|
summary: Pro tier in overdraft (monthly + purchased exhausted)
|
|
@@ -6207,10 +6351,10 @@ paths:
|
|
|
6207
6351
|
data:
|
|
6208
6352
|
monthly_balance: 0
|
|
6209
6353
|
purchased_balance: 0
|
|
6210
|
-
overdraft_limit:
|
|
6211
|
-
overdraft_debt:
|
|
6212
|
-
available_credits:
|
|
6213
|
-
monthly_allowance:
|
|
6354
|
+
overdraft_limit: 200
|
|
6355
|
+
overdraft_debt: 150
|
|
6356
|
+
available_credits: 50
|
|
6357
|
+
monthly_allowance: 1000
|
|
6214
6358
|
tier: pro
|
|
6215
6359
|
'401':
|
|
6216
6360
|
description: Authentication required.
|
|
@@ -8251,7 +8395,10 @@ components:
|
|
|
8251
8395
|
overdraft_debt:
|
|
8252
8396
|
type: integer
|
|
8253
8397
|
minimum: 0
|
|
8254
|
-
description:
|
|
8398
|
+
description: >-
|
|
8399
|
+
Credits currently owed against the overdraft pool. Repaid one
|
|
8400
|
+
credit for one credit from the next monthly grant, on every
|
|
8401
|
+
plan (`schemas/pricing-policy.yaml` `overdraft.repayment_ratio`).
|
|
8255
8402
|
available_credits:
|
|
8256
8403
|
type: integer
|
|
8257
8404
|
description: |
|
|
@@ -9773,19 +9920,36 @@ components:
|
|
|
9773
9920
|
AnonymousQuotaExhaustedResponse:
|
|
9774
9921
|
description: |
|
|
9775
9922
|
403 from `POST /api/workflows` when an ANONYMOUS caller (no
|
|
9776
|
-
credential)
|
|
9777
|
-
|
|
9778
|
-
`
|
|
9923
|
+
credential) asks for a workflow that would cost more CREDITS than
|
|
9924
|
+
its per-IP allowance has left in the rolling 24 hours
|
|
9925
|
+
(`schemas/anonymous-policy.yaml` `allowance`, priced with the same
|
|
9926
|
+
operation weights as a signed-in caller). The request is refused
|
|
9927
|
+
whole; nothing runs. A register-wall, distinct from the generic
|
|
9928
|
+
`429`: the remedy is signing in.
|
|
9929
|
+
|
|
9930
|
+
The recovery figures are REQUIRED fields of this envelope, not
|
|
9931
|
+
localisation parameters (`ErrorEnvelope.message_params` excludes
|
|
9932
|
+
cost numbers): `allowance`, `remaining` and `cost`, in credits.
|
|
9933
|
+
|
|
9934
|
+
Two cases, told apart by `cost` against `allowance`:
|
|
9935
|
+
- `cost <= allowance`: waiting helps. The response carries
|
|
9936
|
+
`Retry-After`, the seconds until enough of the window frees up.
|
|
9937
|
+
- `cost > allowance`: the request can NEVER fit a guest window
|
|
9938
|
+
(the body is not bounded to the allowance). No `Retry-After`;
|
|
9939
|
+
only signing in, or a smaller request, helps.
|
|
9779
9940
|
|
|
9780
9941
|
Mirrors `compression_api`'s `WorkflowController` register-wall
|
|
9781
|
-
(`JobsErrorCode::AnonymousQuotaExhausted`).
|
|
9782
|
-
|
|
9783
|
-
request does not use
|
|
9942
|
+
(`JobsErrorCode::AnonymousQuotaExhausted`). Credits are charged
|
|
9943
|
+
only by a workflow that is actually created, and released on
|
|
9944
|
+
failure, so a refused request does not use any up.
|
|
9784
9945
|
allOf:
|
|
9785
9946
|
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
9786
9947
|
- type: object
|
|
9787
9948
|
required:
|
|
9788
9949
|
- error_type
|
|
9950
|
+
- allowance
|
|
9951
|
+
- remaining
|
|
9952
|
+
- cost
|
|
9789
9953
|
properties:
|
|
9790
9954
|
error:
|
|
9791
9955
|
enum:
|
|
@@ -9795,6 +9959,64 @@ components:
|
|
|
9795
9959
|
type: string
|
|
9796
9960
|
enum:
|
|
9797
9961
|
- anonymous_quota_exhausted
|
|
9962
|
+
allowance:
|
|
9963
|
+
type: integer
|
|
9964
|
+
minimum: 0
|
|
9965
|
+
description: Credits per rolling 24 h for this IP (the policy value).
|
|
9966
|
+
remaining:
|
|
9967
|
+
type: integer
|
|
9968
|
+
minimum: 0
|
|
9969
|
+
description: Credits left in the window when the request was refused.
|
|
9970
|
+
cost:
|
|
9971
|
+
type: integer
|
|
9972
|
+
minimum: 1
|
|
9973
|
+
description: |
|
|
9974
|
+
What this request would have charged. When it exceeds
|
|
9975
|
+
`allowance`, the request can never fit and `Retry-After`
|
|
9976
|
+
is absent.
|
|
9977
|
+
AnonymousLimitExceededResponse:
|
|
9978
|
+
description: |
|
|
9979
|
+
403 from `POST /api/workflows` when an ANONYMOUS caller's input
|
|
9980
|
+
exceeds a guest-only limit declared in
|
|
9981
|
+
`schemas/anonymous-policy.yaml`. Today the one such limit is the
|
|
9982
|
+
video duration cap (`video.max_duration_seconds`), measured on the
|
|
9983
|
+
upload probe's duration; the create waits for the probe first. A
|
|
9984
|
+
register-wall: signing in lifts the guest limit (the signed-in
|
|
9985
|
+
caller's ordinary class ceilings then apply). Not a
|
|
9986
|
+
processing-class refusal: no class or tier ceiling is involved.
|
|
9987
|
+
allOf:
|
|
9988
|
+
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
9989
|
+
- type: object
|
|
9990
|
+
required:
|
|
9991
|
+
- error_type
|
|
9992
|
+
- limit
|
|
9993
|
+
- actual
|
|
9994
|
+
- maximum
|
|
9995
|
+
properties:
|
|
9996
|
+
error:
|
|
9997
|
+
enum:
|
|
9998
|
+
- ANONYMOUS_LIMIT_EXCEEDED
|
|
9999
|
+
error_type:
|
|
10000
|
+
description: Discriminator for the 403 oneOf. Always `anonymous_limit_exceeded` for this envelope.
|
|
10001
|
+
type: string
|
|
10002
|
+
enum:
|
|
10003
|
+
- anonymous_limit_exceeded
|
|
10004
|
+
limit:
|
|
10005
|
+
description: |
|
|
10006
|
+
Which guest limit was exceeded. OPEN: a consumer that does
|
|
10007
|
+
not know a value shows the envelope's localised message.
|
|
10008
|
+
type: string
|
|
10009
|
+
x-enum-openness: open
|
|
10010
|
+
enum:
|
|
10011
|
+
- video_duration_seconds
|
|
10012
|
+
actual:
|
|
10013
|
+
type: integer
|
|
10014
|
+
minimum: 0
|
|
10015
|
+
description: The input's value, in the unit `limit` names (seconds, rounded up).
|
|
10016
|
+
maximum:
|
|
10017
|
+
type: integer
|
|
10018
|
+
minimum: 0
|
|
10019
|
+
description: The guest limit, from `schemas/anonymous-policy.yaml`.
|
|
9798
10020
|
FeatureViolation:
|
|
9799
10021
|
type: object
|
|
9800
10022
|
description: |
|
|
@@ -9914,7 +10136,12 @@ components:
|
|
|
9914
10136
|
(`ok` → re-`POST /api/workflows` the same request; `corrupt` /
|
|
9915
10137
|
`unsupported_codec` → surface the probe error, do not retry).
|
|
9916
10138
|
The `Retry-After` response header (when present) carries the
|
|
9917
|
-
suggested delay in seconds before the next poll/retry.
|
|
10139
|
+
suggested delay in seconds before the next poll/retry. **A guest
|
|
10140
|
+
(no credential) cannot poll**: the probe endpoint requires
|
|
10141
|
+
sign-in, so a guest re-`POST`s the same create on `Retry-After`
|
|
10142
|
+
or its own backoff; the refusal does not count against its
|
|
10143
|
+
per-minute create limit or allowance
|
|
10144
|
+
(`schemas/anonymous-policy.yaml` `video`).
|
|
9918
10145
|
|
|
9919
10146
|
Delivered alongside `ValidationErrorEnvelope`,
|
|
9920
10147
|
`FeatureNotAvailableResponse`, and
|
|
@@ -12372,13 +12599,16 @@ components:
|
|
|
12372
12599
|
dropped_options:
|
|
12373
12600
|
type: array
|
|
12374
12601
|
description: |
|
|
12375
|
-
Options
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12602
|
+
Options holding their DEFAULT (supplied by the server, or
|
|
12603
|
+
sent by the client equal to the schema default, which reads as
|
|
12604
|
+
defaulted — `schemas/FORMAT.md` "Container-conditional
|
|
12605
|
+
defaults") that were then REMOVED or SUBSTITUTED, because the
|
|
12606
|
+
resolved execution path or output container cannot honour
|
|
12607
|
+
them. **Never contains a caller's choice** — a value that
|
|
12608
|
+
differs from the default and cannot be honoured is refused
|
|
12609
|
+
(`422 feature_not_available` / `invalid_options`), not
|
|
12610
|
+
dropped. That split is the whole rule: a caller who asked for
|
|
12611
|
+
nothing is not punished for our default; a caller who asked for
|
|
12382
12612
|
something is told.
|
|
12383
12613
|
|
|
12384
12614
|
**Why this field exists at all.** Dropping a defaulted
|
|
@@ -12400,7 +12630,8 @@ components:
|
|
|
12400
12630
|
DroppedOption:
|
|
12401
12631
|
type: object
|
|
12402
12632
|
description: |
|
|
12403
|
-
One server-supplied
|
|
12633
|
+
One defaulted option (server-supplied, or sent equal to its
|
|
12634
|
+
schema default) removed or substituted before dispatch.
|
|
12404
12635
|
**Names the THING, the WHY and the PATH** — the three parts a
|
|
12405
12636
|
caller needs to act, and the three a single interpolated string
|
|
12406
12637
|
would fuse into something unparseable.
|
|
@@ -12447,12 +12678,29 @@ components:
|
|
|
12447
12678
|
caller on a guessed class is the same error as asserting
|
|
12448
12679
|
a measurement never taken**, so an unmeasured basis
|
|
12449
12680
|
degrades to a drop and never to a 422.
|
|
12681
|
+
- `container_incompatible_default` — the option held its
|
|
12682
|
+
schema default (omitted, or sent equal to the default),
|
|
12683
|
+
and the output container cannot carry that value, so the
|
|
12684
|
+
container's own default was applied instead; the applied
|
|
12685
|
+
value is in `resolved_value` (e.g. `codec` `h264` on a
|
|
12686
|
+
WebM output → `vp9`; `audio_codec` `copy` of AAC into
|
|
12687
|
+
WebM → `opus`). See `schemas/FORMAT.md`
|
|
12688
|
+
"Container-conditional defaults". Contract-first (api
|
|
12689
|
+
`PSJ1vBC7`).
|
|
12450
12690
|
|
|
12451
12691
|
The class token is deliberately NOT interpolated into this
|
|
12452
12692
|
string: the reason and the path are separate fields because
|
|
12453
12693
|
a fused `not_available_on_<class>` is unparseable and
|
|
12454
12694
|
duplicates `processing_class`.
|
|
12455
12695
|
example: unavailable_on_processing_class
|
|
12696
|
+
resolved_value:
|
|
12697
|
+
type: string
|
|
12698
|
+
description: |
|
|
12699
|
+
OPTIONAL. The value the server applied in place of the
|
|
12700
|
+
dropped one, when it substituted a value rather than
|
|
12701
|
+
removing the option (`reason: container_incompatible_default`).
|
|
12702
|
+
Absent for a plain drop.
|
|
12703
|
+
example: vp9
|
|
12456
12704
|
|
|
12457
12705
|
ProcessingPlan:
|
|
12458
12706
|
type: object
|
|
@@ -13958,6 +14206,43 @@ components:
|
|
|
13958
14206
|
`input_filename`. Ticket [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)
|
|
13959
14207
|
(FE before→after size, workflow-view launch ask).
|
|
13960
14208
|
example: 491520
|
|
14209
|
+
input_uploaded_at:
|
|
14210
|
+
type: string
|
|
14211
|
+
format: date-time
|
|
14212
|
+
description: |
|
|
14213
|
+
OPTIONAL. When the server finished receiving the job's input
|
|
14214
|
+
upload: a single-shot upload's accept, or a multipart
|
|
14215
|
+
`complete`. For a job with several uploaded inputs (e.g. a
|
|
14216
|
+
merge), the LATEST of them, since the job cannot start before
|
|
14217
|
+
its last input arrives; inputs that are not uploads (another
|
|
14218
|
+
job's output, an import) are ignored. Absent when the job has no
|
|
14219
|
+
uploaded input, and until the API records it. Card
|
|
14220
|
+
[`6EOlMAz4`](https://trello.com/c/6EOlMAz4) (e2e performance
|
|
14221
|
+
baseline, owner decisions 630/635): with `started_at` and
|
|
14222
|
+
`completed_at` it separates upload, queue and processing time on
|
|
14223
|
+
the server clock. Contract-first: api populates it in a
|
|
14224
|
+
follow-up; a client must treat absence as "not recorded".
|
|
14225
|
+
example: "2026-09-29T21:00:00Z"
|
|
14226
|
+
started_at:
|
|
14227
|
+
type: string
|
|
14228
|
+
format: date-time
|
|
14229
|
+
description: |
|
|
14230
|
+
OPTIONAL. When the job's first operation started processing (the
|
|
14231
|
+
first progress report from a worker). Absent while the job is
|
|
14232
|
+
queued, and for a job that never started. Server clock. See
|
|
14233
|
+
`input_uploaded_at`.
|
|
14234
|
+
example: "2026-09-29T21:00:04Z"
|
|
14235
|
+
completed_at:
|
|
14236
|
+
type: string
|
|
14237
|
+
format: date-time
|
|
14238
|
+
description: |
|
|
14239
|
+
OPTIONAL. When the job reached a terminal `JobStatus`
|
|
14240
|
+
(`completed` or `failed`), on the server clock. Absent while
|
|
14241
|
+
the job is not terminal.
|
|
14242
|
+
`completed_at - started_at` is the job's EXECUTION SPAN: for a
|
|
14243
|
+
chain of operations it includes any wait between them, so it is
|
|
14244
|
+
not pure processing time. See `input_uploaded_at`.
|
|
14245
|
+
example: "2026-09-29T21:00:19Z"
|
|
13961
14246
|
processing_class:
|
|
13962
14247
|
$ref: '#/components/schemas/ProcessingClass'
|
|
13963
14248
|
description: |
|
|
@@ -14067,7 +14352,9 @@ components:
|
|
|
14067
14352
|
`invalid_format` (input type unsupported),
|
|
14068
14353
|
`format_mismatch` (declared MIME ≠ content),
|
|
14069
14354
|
`decode_failed` (input unreadable/corrupt),
|
|
14070
|
-
`output_too_large` (output exceeded the size limit
|
|
14355
|
+
`output_too_large` (output exceeded the size limit; NOT for a
|
|
14356
|
+
same-format `compress`, which returns the original with
|
|
14357
|
+
`already_optimal` instead — owner decision 645(4)),
|
|
14071
14358
|
`missing_source` (source not found — fail-fast),
|
|
14072
14359
|
`invalid_key` (storage key invalid),
|
|
14073
14360
|
`processing_failed` (non-specific processing failure),
|
|
@@ -14166,7 +14453,35 @@ components:
|
|
|
14166
14453
|
"already optimised", not as "same size". On an ordinary result it
|
|
14167
14454
|
is absent or `false`; treat the two the same. Projected by the API from the wire
|
|
14168
14455
|
`OperationMetrics.already_optimal` (ticket `roNRMilt`).
|
|
14456
|
+
**Charged nothing** (owner decision 645(4),
|
|
14457
|
+
`schemas/pricing-policy.yaml` `charge.not_charged`): the
|
|
14458
|
+
operation's cost is refunded; other operations in the job are
|
|
14459
|
+
charged as usual. Applies to a completed `compress` on the
|
|
14460
|
+
resolved `same_format` route (`output_format` original, absent, or
|
|
14461
|
+
equal to the input's format; not the format-change facade, where
|
|
14462
|
+
the original is not what was asked for). A same-format compress
|
|
14463
|
+
that cannot shrink the file returns this, never `output_too_large`.
|
|
14464
|
+
⚠️ **Today this holds for SHORT-FORM compress only.** Long-form
|
|
14465
|
+
compress still fails `output_too_large` until lambdas ships its
|
|
14466
|
+
long-form copy path; do not promise "already optimised" or "no
|
|
14467
|
+
charge" for a long-form file before then. Contract-first: until api
|
|
14468
|
+
ships, the operation is charged (`charge.not_charged_api_today`).
|
|
14469
|
+
`already_optimal_kind` says which kind of "already optimised" it
|
|
14470
|
+
was.
|
|
14169
14471
|
example: true
|
|
14472
|
+
already_optimal_kind:
|
|
14473
|
+
type: string
|
|
14474
|
+
enum: [not_smaller]
|
|
14475
|
+
description: |
|
|
14476
|
+
OPTIONAL, only with `already_optimal: true`: WHY the original was
|
|
14477
|
+
returned. `not_smaller` — the file was compressed and the result
|
|
14478
|
+
was not smaller, so there is no quality trade-off to explain. It
|
|
14479
|
+
is the only kind any worker produces today (no production path
|
|
14480
|
+
declines to encode an efficient source). Absent, or a value you do
|
|
14481
|
+
not know: show neutral "already optimised" copy.
|
|
14482
|
+
Contract-first (card `cDZuuyg8`): projected from the wire
|
|
14483
|
+
`OperationMetrics.already_optimal_kind` once workers emit it.
|
|
14484
|
+
example: not_smaller
|
|
14170
14485
|
estimated_saving_pct:
|
|
14171
14486
|
type: number
|
|
14172
14487
|
minimum: 0
|
|
@@ -17057,6 +17372,16 @@ components:
|
|
|
17057
17372
|
app:
|
|
17058
17373
|
type: boolean
|
|
17059
17374
|
description: Application is running
|
|
17375
|
+
build:
|
|
17376
|
+
type: string
|
|
17377
|
+
description: |
|
|
17378
|
+
OPTIONAL. The release the running image was built as (the API's
|
|
17379
|
+
`APP_VERSION`, e.g. `1.15.2-rc.1`; `dev` for a local build;
|
|
17380
|
+
`unknown` when unset). Unauthenticated on purpose: a timing run
|
|
17381
|
+
reads it before and after, so a code-only deploy in the middle
|
|
17382
|
+
of the run is detectable (card `6EOlMAz4`, e2e performance
|
|
17383
|
+
baseline). Opaque: compare for equality, do not parse.
|
|
17384
|
+
example: "1.15.2-rc.1"
|
|
17060
17385
|
|
|
17061
17386
|
ReadinessResponse:
|
|
17062
17387
|
type: object
|
|
@@ -1217,9 +1217,10 @@ operation:
|
|
|
1217
1217
|
Output container. original = keep the input container (default, same-format
|
|
1218
1218
|
compression). Other values change the container as part of the same job, keeping
|
|
1219
1219
|
the size cap. When set, the RESOLVED target container determines the valid
|
|
1220
|
-
codec/audio_codec/faststart sets — an absent
|
|
1221
|
-
|
|
1222
|
-
|
|
1220
|
+
codec/audio_codec/faststart sets — an absent or default-equal value (sent equal
|
|
1221
|
+
to its default counts as the default) resolves to a container-valid one (e.g.
|
|
1222
|
+
webm -> vp9), is never rejected, and is reported in dropped_options; only a
|
|
1223
|
+
NON-default incompatible value is rejected.
|
|
1223
1224
|
codec:
|
|
1224
1225
|
type: enum
|
|
1225
1226
|
values: [h264, h265, vp9, av1]
|
|
@@ -1241,8 +1242,10 @@ operation:
|
|
|
1241
1242
|
the input container): for a container that cannot carry it (e.g. WebM, which
|
|
1242
1243
|
carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9).
|
|
1243
1244
|
A DEFAULT value is never rejected — including an explicit `output_format: webm`
|
|
1244
|
-
left at the default `h264` (resolves to vp9, not rejected)
|
|
1245
|
-
|
|
1245
|
+
left at the default `h264` (resolves to vp9, not rejected). A value equal to the
|
|
1246
|
+
default counts as the default even when sent, and the substitution is reported
|
|
1247
|
+
in dropped_options. Only a NON-default codec the container cannot carry is
|
|
1248
|
+
rejected (e.g. h265 on WebM).
|
|
1246
1249
|
encoding_mode:
|
|
1247
1250
|
type: enum
|
|
1248
1251
|
values: [crf, target_size]
|
|
@@ -1395,9 +1398,9 @@ operation:
|
|
|
1395
1398
|
Move the MP4/MOV moov atom to the front so the file starts playing before it is
|
|
1396
1399
|
fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL
|
|
1397
1400
|
against the RESOLVED output container (the explicit `output_format` if set, else
|
|
1398
|
-
the input):
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
+
the input): on a container with no moov atom (e.g. WebM) the default (true),
|
|
1402
|
+
omitted or sent, is dropped and reported in dropped_options — never a rejection.
|
|
1403
|
+
false there asks for nothing and is accepted.
|
|
1401
1404
|
audio_codec:
|
|
1402
1405
|
type: enum
|
|
1403
1406
|
values: [aac, opus, vorbis, copy]
|
|
@@ -1422,9 +1425,11 @@ operation:
|
|
|
1422
1425
|
the container, an absent/default audio_codec resolves to a container-valid codec
|
|
1423
1426
|
via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream —
|
|
1424
1427
|
a DEFAULT is never rejected (the exact per-container resolution, incl. ogg
|
|
1425
|
-
vorbis-vs-opus, is an output_format stable-flip prerequisite).
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
+
vorbis-vs-opus, is an output_format stable-flip prerequisite). `copy` sent
|
|
1429
|
+
explicitly counts as the default: if the source audio cannot be copied into the
|
|
1430
|
+
target container it is re-encoded to the container default (webm -> opus) and
|
|
1431
|
+
reported in dropped_options. A NON-default codec the resolved container cannot
|
|
1432
|
+
carry (e.g. aac on a webm target) is rejected.
|
|
1428
1433
|
audio_bitrate:
|
|
1429
1434
|
type: enum
|
|
1430
1435
|
value_type: integer
|