@giveitsmaller/contracts 0.47.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accepted-options/accepted-options.json +29 -53
- package/accepted-options/image-output-routes.json +20 -30
- package/asyncapi/events.yaml +32 -6
- package/availability/availability.json +94 -269
- package/dist/asyncapi/OperationMetrics.d.ts +2 -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/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.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/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/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/EmptySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
- package/dist/openapi/models/EndpointProjection.d.ts +1 -1
- package/dist/openapi/models/EndpointProjection.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/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/ForgotPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ForgotPasswordRequest.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/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/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 +27 -4
- package/dist/openapi/models/OperationDownload.js +5 -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 +28 -5
- package/dist/openapi/models/OperationResultMetrics.js +5 -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 +3 -3
- package/dist/openapi/models/OperationType.js +3 -3
- 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/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/PerRoleCardinalityEntry.d.ts +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
- package/dist/openapi/models/PresignedUrlPart.js +1 -1
- package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
- package/dist/openapi/models/ProbePendingResponse.js +1 -1
- package/dist/openapi/models/ProcessingClass.d.ts +1 -1
- package/dist/openapi/models/ProcessingClass.js +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
- package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntry.js +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
- package/dist/openapi/models/ReEncodeDecision.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
- package/dist/openapi/models/RegisterUser422Response.js +1 -1
- package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
- package/dist/openapi/models/RegisterUserRequest.js +1 -1
- package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ResetPasswordRequest.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
- package/dist/openapi/models/SseCompletionBase.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
- package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletedData.js +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/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/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/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/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/compress.d.ts +27 -12
- package/dist/operations/compress.js +24 -0
- package/dist/operations/compress.metadata.js +15 -44
- package/dist/operations/convert.d.ts +3 -6
- package/dist/operations/convert.js +2 -5
- package/dist/operations/convert.metadata.js +1 -17
- package/dist/operations/image_watermark.metadata.js +0 -2
- package/dist/operations/text_watermark.metadata.js +0 -2
- package/dist/operations/thumbnail.d.ts +6 -24
- package/dist/operations/thumbnail.js +0 -12
- package/dist/operations/thumbnail.metadata.js +0 -33
- package/openapi/api.yaml +50 -10
- package/operation-capabilities/operation-capabilities.json +12 -2
- package/operations/schemas/compress.yaml +156 -146
- package/operations/schemas/convert.yaml +53 -52
- package/operations/schemas/image_watermark.yaml +19 -18
- package/operations/schemas/text_watermark.yaml +17 -17
- package/operations/schemas/thumbnail.yaml +40 -77
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"capabilities_version":
|
|
2
|
+
"capabilities_version": 160,
|
|
3
3
|
"endpoints": {
|
|
4
4
|
"DELETE /api/auth/api-keys/{apiKeyId}": {
|
|
5
5
|
"auth": "required",
|
|
@@ -960,14 +960,6 @@
|
|
|
960
960
|
"description": "Subset embedded fonts to only include glyphs used in the document. Significant size reduction for books with large font files. `planned` \u2014 not yet supported.",
|
|
961
961
|
"type": "boolean"
|
|
962
962
|
},
|
|
963
|
-
"image_quality": {
|
|
964
|
-
"availability": "planned",
|
|
965
|
-
"default": 80,
|
|
966
|
-
"description": "Recompress embedded images at this quality level. `planned` \u2014 not yet supported (use `quality`).",
|
|
967
|
-
"max": 100,
|
|
968
|
-
"min": 1,
|
|
969
|
-
"type": "integer"
|
|
970
|
-
},
|
|
971
963
|
"quality": {
|
|
972
964
|
"default": 50,
|
|
973
965
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -990,14 +982,6 @@
|
|
|
990
982
|
"application/vnd.oasis.opendocument.presentation"
|
|
991
983
|
],
|
|
992
984
|
"options": {
|
|
993
|
-
"image_quality": {
|
|
994
|
-
"availability": "planned",
|
|
995
|
-
"default": 80,
|
|
996
|
-
"description": "Recompress embedded images at this quality level. `planned` \u2014 not yet supported (use `quality`).",
|
|
997
|
-
"max": 100,
|
|
998
|
-
"min": 1,
|
|
999
|
-
"type": "integer"
|
|
1000
|
-
},
|
|
1001
985
|
"quality": {
|
|
1002
986
|
"default": 50,
|
|
1003
987
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -1026,14 +1010,6 @@
|
|
|
1026
1010
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
1027
1011
|
],
|
|
1028
1012
|
"options": {
|
|
1029
|
-
"image_quality": {
|
|
1030
|
-
"availability": "planned",
|
|
1031
|
-
"default": 80,
|
|
1032
|
-
"description": "Recompress embedded images at this quality level (1 = smallest, 100 = best). `planned` \u2014 not yet supported (use `quality`).",
|
|
1033
|
-
"max": 100,
|
|
1034
|
-
"min": 1,
|
|
1035
|
-
"type": "integer"
|
|
1036
|
-
},
|
|
1037
1013
|
"quality": {
|
|
1038
1014
|
"default": 50,
|
|
1039
1015
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -1136,13 +1112,17 @@
|
|
|
1136
1112
|
"type": "boolean"
|
|
1137
1113
|
},
|
|
1138
1114
|
"color_profile": {
|
|
1139
|
-
"availability": "planned",
|
|
1140
1115
|
"default": "keep",
|
|
1141
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve the
|
|
1116
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop \u2014 for TIFF inputs the gamut is baked to sRGB; GIF carries no profile so this is a no-op); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile (smallest \u2014 only when the consumer manages colour itself). On compress `srgb` is `planned` for this group (the sRGB pixel transform is wired for JPEG/PNG only so far); `keep` and `strip` are live.",
|
|
1142
1117
|
"honored_on": [
|
|
1143
1118
|
"same_format",
|
|
1144
1119
|
"format_change"
|
|
1145
1120
|
],
|
|
1121
|
+
"per_value_availability": {
|
|
1122
|
+
"srgb": {
|
|
1123
|
+
"availability": "planned"
|
|
1124
|
+
}
|
|
1125
|
+
},
|
|
1146
1126
|
"type": "enum",
|
|
1147
1127
|
"values": [
|
|
1148
1128
|
"keep",
|
|
@@ -1179,26 +1159,6 @@
|
|
|
1179
1159
|
"min": 1,
|
|
1180
1160
|
"type": "integer"
|
|
1181
1161
|
},
|
|
1182
|
-
"keep_metadata": {
|
|
1183
|
-
"availability": "planned",
|
|
1184
|
-
"depends_on": {
|
|
1185
|
-
"metadata": "strip"
|
|
1186
|
-
},
|
|
1187
|
-
"description": "Selectively keep only certain metadata categories and strip the rest \u2014 refines `metadata: strip`. Allowed categories: `copyright`, `gps` (location), `date` (capture time); combinable. `planned` \u2014 selective keep is not yet supported (use `metadata: keep` to preserve everything).",
|
|
1188
|
-
"honored_on": [
|
|
1189
|
-
"same_format"
|
|
1190
|
-
],
|
|
1191
|
-
"items": {
|
|
1192
|
-
"enum": [
|
|
1193
|
-
"copyright",
|
|
1194
|
-
"gps",
|
|
1195
|
-
"date"
|
|
1196
|
-
],
|
|
1197
|
-
"type": "string"
|
|
1198
|
-
},
|
|
1199
|
-
"type": "array",
|
|
1200
|
-
"uniqueItems": true
|
|
1201
|
-
},
|
|
1202
1162
|
"metadata": {
|
|
1203
1163
|
"default": "strip",
|
|
1204
1164
|
"description": "Metadata handling. `strip` = remove all EXIF/IPTC/XMP (default). `keep` = preserve EXIF, colour profile, and XMP. `all` is a DEPRECATED alias of `strip` (kept for older callers; emits Deprecation/Sunset headers \u2014 migrate to `strip`). Any other value is rejected.",
|
|
@@ -1259,7 +1219,6 @@
|
|
|
1259
1219
|
}
|
|
1260
1220
|
},
|
|
1261
1221
|
"image_avif": {
|
|
1262
|
-
"availability": "beta",
|
|
1263
1222
|
"max_output_pixels": 16000000,
|
|
1264
1223
|
"mimes": [
|
|
1265
1224
|
"image/avif"
|
|
@@ -1285,9 +1244,8 @@
|
|
|
1285
1244
|
"type": "integer"
|
|
1286
1245
|
},
|
|
1287
1246
|
"color_profile": {
|
|
1288
|
-
"availability": "planned",
|
|
1289
1247
|
"default": "keep",
|
|
1290
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve the
|
|
1248
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop \u2014 for AVIF the gamut is baked to sRGB); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile (smallest \u2014 only when the consumer manages colour itself). All three values are live on compress AVIF \u2014 `srgb` flipped planned->stable 2026-06-30 on the lambdas proof (wide-gamut-p3-icc.avif: srgb bakes untagged, whole-image RMSE 0.041 / 92% pixels shifted vs strip). Note: on AVIF `keep` and `srgb` both bake the gamut to sRGB by design, so keep_px == srgb_px; the proving inequality is srgb != strip, which holds.",
|
|
1291
1249
|
"honored_on": [
|
|
1292
1250
|
"same_format",
|
|
1293
1251
|
"format_change"
|
|
@@ -1301,14 +1259,15 @@
|
|
|
1301
1259
|
},
|
|
1302
1260
|
"encoding_mode": {
|
|
1303
1261
|
"default": "quality",
|
|
1304
|
-
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller. AVIF encoding is slower, so the search is bounded and may stop slightly above the budget.",
|
|
1262
|
+
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller. `auto_quality` = hit a named perceptual-quality target (set via `quality_preset`) and let the worker pick the encoder quality that meets it \u2014 the perceptual twin of `target_size` (which targets bytes); the result reports the chosen quality. AVIF encoding is slower, so the search is bounded and may stop slightly above the budget.",
|
|
1305
1263
|
"honored_on": [
|
|
1306
1264
|
"same_format"
|
|
1307
1265
|
],
|
|
1308
1266
|
"type": "enum",
|
|
1309
1267
|
"values": [
|
|
1310
1268
|
"quality",
|
|
1311
|
-
"target_size"
|
|
1269
|
+
"target_size",
|
|
1270
|
+
"auto_quality"
|
|
1312
1271
|
]
|
|
1313
1272
|
},
|
|
1314
1273
|
"fit": {
|
|
@@ -1389,6 +1348,23 @@
|
|
|
1389
1348
|
"min": 1,
|
|
1390
1349
|
"type": "integer"
|
|
1391
1350
|
},
|
|
1351
|
+
"quality_preset": {
|
|
1352
|
+
"default": "good",
|
|
1353
|
+
"depends_on": {
|
|
1354
|
+
"encoding_mode": "auto_quality"
|
|
1355
|
+
},
|
|
1356
|
+
"description": "Named perceptual-quality target for `encoding_mode: auto_quality` (best > good > fair > low; `good` is the default). The worker runs a perceptual-target search and picks the encoder quality that meets the named tier \u2014 the wire carries the NAME only, so the tier\u2192target mapping stays worker-internal and calibration-tunable without a contract change. Requires `encoding_mode: auto_quality`. The achieved perceptual score is reported on the result as `metrics.measured_quality` (+ `metrics.quality_metric`).",
|
|
1357
|
+
"honored_on": [
|
|
1358
|
+
"same_format"
|
|
1359
|
+
],
|
|
1360
|
+
"type": "enum",
|
|
1361
|
+
"values": [
|
|
1362
|
+
"best",
|
|
1363
|
+
"good",
|
|
1364
|
+
"fair",
|
|
1365
|
+
"low"
|
|
1366
|
+
]
|
|
1367
|
+
},
|
|
1392
1368
|
"target_size_bytes": {
|
|
1393
1369
|
"depends_on": {
|
|
1394
1370
|
"encoding_mode": "target_size"
|
|
@@ -1441,7 +1417,7 @@
|
|
|
1441
1417
|
},
|
|
1442
1418
|
"color_profile": {
|
|
1443
1419
|
"default": "keep",
|
|
1444
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (
|
|
1420
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile (smallest \u2014 only when the consumer manages colour itself).",
|
|
1445
1421
|
"honored_on": [
|
|
1446
1422
|
"same_format",
|
|
1447
1423
|
"format_change"
|
|
@@ -1455,14 +1431,15 @@
|
|
|
1455
1431
|
},
|
|
1456
1432
|
"encoding_mode": {
|
|
1457
1433
|
"default": "quality",
|
|
1458
|
-
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller.",
|
|
1434
|
+
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller. `auto_quality` = hit a named perceptual-quality target (set via `quality_preset`) and let the worker pick the encoder quality that meets it \u2014 the perceptual twin of `target_size` (which targets bytes); the result reports the chosen quality.",
|
|
1459
1435
|
"honored_on": [
|
|
1460
1436
|
"same_format"
|
|
1461
1437
|
],
|
|
1462
1438
|
"type": "enum",
|
|
1463
1439
|
"values": [
|
|
1464
1440
|
"quality",
|
|
1465
|
-
"target_size"
|
|
1441
|
+
"target_size",
|
|
1442
|
+
"auto_quality"
|
|
1466
1443
|
]
|
|
1467
1444
|
},
|
|
1468
1445
|
"fit": {
|
|
@@ -1494,26 +1471,6 @@
|
|
|
1494
1471
|
"min": 1,
|
|
1495
1472
|
"type": "integer"
|
|
1496
1473
|
},
|
|
1497
|
-
"keep_metadata": {
|
|
1498
|
-
"availability": "planned",
|
|
1499
|
-
"depends_on": {
|
|
1500
|
-
"metadata": "strip"
|
|
1501
|
-
},
|
|
1502
|
-
"description": "Selectively keep only certain metadata categories and strip the rest \u2014 refines `metadata: strip`. Allowed categories: `copyright`, `gps` (location), `date` (capture time); combinable. `planned` \u2014 selective keep is not yet supported (use `metadata: keep` to preserve everything).",
|
|
1503
|
-
"honored_on": [
|
|
1504
|
-
"same_format"
|
|
1505
|
-
],
|
|
1506
|
-
"items": {
|
|
1507
|
-
"enum": [
|
|
1508
|
-
"copyright",
|
|
1509
|
-
"gps",
|
|
1510
|
-
"date"
|
|
1511
|
-
],
|
|
1512
|
-
"type": "string"
|
|
1513
|
-
},
|
|
1514
|
-
"type": "array",
|
|
1515
|
-
"uniqueItems": true
|
|
1516
|
-
},
|
|
1517
1474
|
"lossless": {
|
|
1518
1475
|
"default": false,
|
|
1519
1476
|
"depends_on": {
|
|
@@ -1583,6 +1540,23 @@
|
|
|
1583
1540
|
"min": 1,
|
|
1584
1541
|
"type": "integer"
|
|
1585
1542
|
},
|
|
1543
|
+
"quality_preset": {
|
|
1544
|
+
"default": "good",
|
|
1545
|
+
"depends_on": {
|
|
1546
|
+
"encoding_mode": "auto_quality"
|
|
1547
|
+
},
|
|
1548
|
+
"description": "Named perceptual-quality target for `encoding_mode: auto_quality` (best > good > fair > low; `good` is the default). The worker runs a perceptual-target search and picks the encoder quality that meets the named tier \u2014 the wire carries the NAME only, so the tier\u2192target mapping stays worker-internal and calibration-tunable without a contract change. Requires `encoding_mode: auto_quality`. The achieved perceptual score is reported on the result as `metrics.measured_quality` (+ `metrics.quality_metric`).",
|
|
1549
|
+
"honored_on": [
|
|
1550
|
+
"same_format"
|
|
1551
|
+
],
|
|
1552
|
+
"type": "enum",
|
|
1553
|
+
"values": [
|
|
1554
|
+
"best",
|
|
1555
|
+
"good",
|
|
1556
|
+
"fair",
|
|
1557
|
+
"low"
|
|
1558
|
+
]
|
|
1559
|
+
},
|
|
1586
1560
|
"target_size_bytes": {
|
|
1587
1561
|
"depends_on": {
|
|
1588
1562
|
"encoding_mode": "target_size"
|
|
@@ -1623,7 +1597,7 @@
|
|
|
1623
1597
|
},
|
|
1624
1598
|
"color_profile": {
|
|
1625
1599
|
"default": "keep",
|
|
1626
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (
|
|
1600
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile (smallest \u2014 only when the consumer manages colour itself).",
|
|
1627
1601
|
"honored_on": [
|
|
1628
1602
|
"same_format",
|
|
1629
1603
|
"format_change"
|
|
@@ -1664,35 +1638,6 @@
|
|
|
1664
1638
|
"min": 1,
|
|
1665
1639
|
"type": "integer"
|
|
1666
1640
|
},
|
|
1667
|
-
"keep_metadata": {
|
|
1668
|
-
"availability": "planned",
|
|
1669
|
-
"depends_on": {
|
|
1670
|
-
"metadata": "strip"
|
|
1671
|
-
},
|
|
1672
|
-
"description": "Selectively keep only certain metadata categories and strip the rest \u2014 refines `metadata: strip`. Allowed categories: `copyright`, `gps` (location), `date` (capture time); combinable. `planned` \u2014 selective keep is not yet supported (use `metadata: keep` to preserve everything).",
|
|
1673
|
-
"honored_on": [
|
|
1674
|
-
"same_format"
|
|
1675
|
-
],
|
|
1676
|
-
"items": {
|
|
1677
|
-
"enum": [
|
|
1678
|
-
"copyright",
|
|
1679
|
-
"gps",
|
|
1680
|
-
"date"
|
|
1681
|
-
],
|
|
1682
|
-
"type": "string"
|
|
1683
|
-
},
|
|
1684
|
-
"type": "array",
|
|
1685
|
-
"uniqueItems": true
|
|
1686
|
-
},
|
|
1687
|
-
"lossy": {
|
|
1688
|
-
"availability": "planned",
|
|
1689
|
-
"default": false,
|
|
1690
|
-
"description": "Lossy PNG palette quantization \u2014 a large saving for flat-colour PNGs. `planned` \u2014 not yet supported.",
|
|
1691
|
-
"honored_on": [
|
|
1692
|
-
"same_format"
|
|
1693
|
-
],
|
|
1694
|
-
"type": "boolean"
|
|
1695
|
-
},
|
|
1696
1641
|
"metadata": {
|
|
1697
1642
|
"default": "strip",
|
|
1698
1643
|
"description": "Metadata handling. `strip` = remove all EXIF/IPTC/XMP (default). `keep` = preserve EXIF, colour profile, and XMP. `all` is a DEPRECATED alias of `strip` (kept for older callers; emits Deprecation/Sunset headers \u2014 migrate to `strip`). Any other value is rejected.",
|
|
@@ -1742,7 +1687,7 @@
|
|
|
1742
1687
|
},
|
|
1743
1688
|
"quality": {
|
|
1744
1689
|
"default": 80,
|
|
1745
|
-
"description": "Compression quality (1 = smallest file, 100 = best quality
|
|
1690
|
+
"description": "Compression quality (1-100). For PNG this is the SINGLE lossy/lossless control: `quality` < 100 applies lossy palette quantization (imagequant \u2014 licence-cleared for our server-side SaaS backend, `kkajDFXD`; the value is the quantization level), while `quality: 100` keeps the PNG lossless (oxipng optimisation only \u2014 tune the lossless effort via `optimization_level`). 1 = smallest file, 100 = best quality / lossless. There is no separate lossy/lossless toggle for PNG \u2014 it is purely quality-driven.",
|
|
1746
1691
|
"honored_on": [
|
|
1747
1692
|
"same_format"
|
|
1748
1693
|
],
|
|
@@ -1802,16 +1747,6 @@
|
|
|
1802
1747
|
"auto",
|
|
1803
1748
|
"smallest"
|
|
1804
1749
|
]
|
|
1805
|
-
},
|
|
1806
|
-
"quality": {
|
|
1807
|
-
"default": 80,
|
|
1808
|
-
"description": "Compression quality (1 = smallest file, 100 = best quality).",
|
|
1809
|
-
"honored_on": [
|
|
1810
|
-
"same_format"
|
|
1811
|
-
],
|
|
1812
|
-
"max": 100,
|
|
1813
|
-
"min": 1,
|
|
1814
|
-
"type": "integer"
|
|
1815
1750
|
}
|
|
1816
1751
|
}
|
|
1817
1752
|
},
|
|
@@ -1832,16 +1767,11 @@
|
|
|
1832
1767
|
},
|
|
1833
1768
|
"color_profile": {
|
|
1834
1769
|
"default": "keep",
|
|
1835
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (
|
|
1770
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the output format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile (smallest \u2014 only when the consumer manages colour itself). All three values are live on the WebP same-format route \u2014 the sRGB pixel transform is staging-proven (lambdas compression-image git-13b5000: srgb output untagged + a real pixel shift vs strip).",
|
|
1836
1771
|
"honored_on": [
|
|
1837
1772
|
"same_format",
|
|
1838
1773
|
"format_change"
|
|
1839
1774
|
],
|
|
1840
|
-
"per_value_availability": {
|
|
1841
|
-
"srgb": {
|
|
1842
|
-
"availability": "planned"
|
|
1843
|
-
}
|
|
1844
|
-
},
|
|
1845
1775
|
"type": "enum",
|
|
1846
1776
|
"values": [
|
|
1847
1777
|
"keep",
|
|
@@ -1851,14 +1781,15 @@
|
|
|
1851
1781
|
},
|
|
1852
1782
|
"encoding_mode": {
|
|
1853
1783
|
"default": "quality",
|
|
1854
|
-
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller.",
|
|
1784
|
+
"description": "Compression mode. `quality` = the `quality` slider drives the encode (default). `target_size` = automatically find the highest quality that fits a byte budget (set via `target_size_bytes`); if the budget can't be met even at the lowest quality, the closest result is returned, and the original is kept if re-encoding wouldn't be smaller. `auto_quality` = hit a named perceptual-quality target (set via `quality_preset`) and let the worker pick the encoder quality that meets it \u2014 the perceptual twin of `target_size` (which targets bytes); the result reports the chosen quality.",
|
|
1855
1785
|
"honored_on": [
|
|
1856
1786
|
"same_format"
|
|
1857
1787
|
],
|
|
1858
1788
|
"type": "enum",
|
|
1859
1789
|
"values": [
|
|
1860
1790
|
"quality",
|
|
1861
|
-
"target_size"
|
|
1791
|
+
"target_size",
|
|
1792
|
+
"auto_quality"
|
|
1862
1793
|
]
|
|
1863
1794
|
},
|
|
1864
1795
|
"fit": {
|
|
@@ -1890,26 +1821,6 @@
|
|
|
1890
1821
|
"min": 1,
|
|
1891
1822
|
"type": "integer"
|
|
1892
1823
|
},
|
|
1893
|
-
"keep_metadata": {
|
|
1894
|
-
"availability": "planned",
|
|
1895
|
-
"depends_on": {
|
|
1896
|
-
"metadata": "strip"
|
|
1897
|
-
},
|
|
1898
|
-
"description": "Selectively keep only certain metadata categories and strip the rest \u2014 refines `metadata: strip`. Allowed categories: `copyright`, `gps` (location), `date` (capture time); combinable. `planned` \u2014 selective keep is not yet supported (use `metadata: keep` to preserve everything).",
|
|
1899
|
-
"honored_on": [
|
|
1900
|
-
"same_format"
|
|
1901
|
-
],
|
|
1902
|
-
"items": {
|
|
1903
|
-
"enum": [
|
|
1904
|
-
"copyright",
|
|
1905
|
-
"gps",
|
|
1906
|
-
"date"
|
|
1907
|
-
],
|
|
1908
|
-
"type": "string"
|
|
1909
|
-
},
|
|
1910
|
-
"type": "array",
|
|
1911
|
-
"uniqueItems": true
|
|
1912
|
-
},
|
|
1913
1824
|
"lossless": {
|
|
1914
1825
|
"default": false,
|
|
1915
1826
|
"depends_on": {
|
|
@@ -1971,6 +1882,23 @@
|
|
|
1971
1882
|
"min": 1,
|
|
1972
1883
|
"type": "integer"
|
|
1973
1884
|
},
|
|
1885
|
+
"quality_preset": {
|
|
1886
|
+
"default": "good",
|
|
1887
|
+
"depends_on": {
|
|
1888
|
+
"encoding_mode": "auto_quality"
|
|
1889
|
+
},
|
|
1890
|
+
"description": "Named perceptual-quality target for `encoding_mode: auto_quality` (best > good > fair > low; `good` is the default). The worker runs a perceptual-target search and picks the encoder quality that meets the named tier \u2014 the wire carries the NAME only, so the tier\u2192target mapping stays worker-internal and calibration-tunable without a contract change. Requires `encoding_mode: auto_quality`. The achieved perceptual score is reported on the result as `metrics.measured_quality` (+ `metrics.quality_metric`).",
|
|
1891
|
+
"honored_on": [
|
|
1892
|
+
"same_format"
|
|
1893
|
+
],
|
|
1894
|
+
"type": "enum",
|
|
1895
|
+
"values": [
|
|
1896
|
+
"best",
|
|
1897
|
+
"good",
|
|
1898
|
+
"fair",
|
|
1899
|
+
"low"
|
|
1900
|
+
]
|
|
1901
|
+
},
|
|
1974
1902
|
"target_size_bytes": {
|
|
1975
1903
|
"depends_on": {
|
|
1976
1904
|
"encoding_mode": "target_size"
|
|
@@ -2304,9 +2232,8 @@
|
|
|
2304
2232
|
"type": "string"
|
|
2305
2233
|
},
|
|
2306
2234
|
"color_profile": {
|
|
2307
|
-
"availability": "planned",
|
|
2308
2235
|
"default": "keep",
|
|
2309
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve the
|
|
2236
|
+
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve your colours: embed the ICC profile where the target format can carry one, otherwise convert to sRGB and bake the colours in so they survive (never a silent drop); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default; CMYK/grayscale best-effort); `strip` = drop the profile. The worker reads the input ICC for every accepted raster input (JPEG/PNG/WebP/TIFF, plus HEIF/AVIF via the ISO-BMFF `colr` box).",
|
|
2310
2237
|
"honored_on": [
|
|
2311
2238
|
"format_change"
|
|
2312
2239
|
],
|
|
@@ -2396,17 +2323,6 @@
|
|
|
2396
2323
|
"min": 1,
|
|
2397
2324
|
"type": "integer"
|
|
2398
2325
|
}
|
|
2399
|
-
},
|
|
2400
|
-
"per_mime_availability": {
|
|
2401
|
-
"image/avif": {
|
|
2402
|
-
"availability": "beta"
|
|
2403
|
-
},
|
|
2404
|
-
"image/heic": {
|
|
2405
|
-
"availability": "beta"
|
|
2406
|
-
},
|
|
2407
|
-
"image/heif": {
|
|
2408
|
-
"availability": "beta"
|
|
2409
|
-
}
|
|
2410
2326
|
}
|
|
2411
2327
|
},
|
|
2412
2328
|
"image_gif": {
|
|
@@ -2445,7 +2361,6 @@
|
|
|
2445
2361
|
"type": "string"
|
|
2446
2362
|
},
|
|
2447
2363
|
"color_profile": {
|
|
2448
|
-
"availability": "planned",
|
|
2449
2364
|
"default": "keep",
|
|
2450
2365
|
"depends_on": {
|
|
2451
2366
|
"output_format": [
|
|
@@ -2457,7 +2372,7 @@
|
|
|
2457
2372
|
"tiff"
|
|
2458
2373
|
]
|
|
2459
2374
|
},
|
|
2460
|
-
"description": "Colour-profile handling \u2014 `keep` (default) = preserve the
|
|
2375
|
+
"description": "Colour-profile handling \u2014 `keep` (default) = preserve your colours (embed where the target carries an ICC, else bake to sRGB; a no-op for the GIF input itself, which carries no profile); `srgb` = convert to sRGB (transform pixels to sRGB, emit untagged \u2014 no embedded ICC, the web default); `strip` = drop the profile. Scoped to the STILL-IMAGE targets only \u2014 the video targets (mp4/webm) carry no colour profile, so this is not accepted for a gif\u2192video output.",
|
|
2461
2376
|
"honored_on": [
|
|
2462
2377
|
"format_change"
|
|
2463
2378
|
],
|
|
@@ -2505,19 +2420,6 @@
|
|
|
2505
2420
|
"min": 1,
|
|
2506
2421
|
"type": "integer"
|
|
2507
2422
|
},
|
|
2508
|
-
"metadata": {
|
|
2509
|
-
"availability": "planned",
|
|
2510
|
-
"default": "strip",
|
|
2511
|
-
"description": "Metadata handling for the still-image targets. `planned` \u2014 metadata is not yet preserved across a format change. The video targets carry no EXIF/IPTC/XMP.",
|
|
2512
|
-
"honored_on": [
|
|
2513
|
-
"format_change"
|
|
2514
|
-
],
|
|
2515
|
-
"type": "enum",
|
|
2516
|
-
"values": [
|
|
2517
|
-
"strip",
|
|
2518
|
-
"keep"
|
|
2519
|
-
]
|
|
2520
|
-
},
|
|
2521
2423
|
"output_format": {
|
|
2522
2424
|
"description": "Target format. The still-image targets (jpeg/png/webp/avif/gif/tiff) take the first frame / rasterise. `mp4` / `webm` are the GIF\u2192VIDEO transcode targets \u2014 the animated GIF becomes a muted, play-once video (`mp4` = H.264, plays everywhere; `webm` = VP9, smaller), typically far smaller than the original GIF. GIFs are silent (no audio stream); the GIF infinite-loop becomes a playback attribute (`<video loop>`) the player sets, NOT baked into the file.",
|
|
2523
2425
|
"required": true,
|
|
@@ -2632,7 +2534,9 @@
|
|
|
2632
2534
|
"output_format": [
|
|
2633
2535
|
"mp4",
|
|
2634
2536
|
"webm",
|
|
2635
|
-
"ogg"
|
|
2537
|
+
"ogg",
|
|
2538
|
+
"mov",
|
|
2539
|
+
"mkv"
|
|
2636
2540
|
]
|
|
2637
2541
|
},
|
|
2638
2542
|
"description": "CRF (Constant Rate Factor): 0 = lossless/best, 51 = worst. Lower = higher quality + larger file (the inverse of image `quality`). Video outputs only \u2014 NOT applicable to a `gif` output (frame extraction has no CRF). An explicit `crf` on a `gif` output is rejected as `invalid_options` at workflow-create (the API enforces this `depends_on`); FE/SDK prune it pre-submit.\n",
|
|
@@ -2685,14 +2589,16 @@
|
|
|
2685
2589
|
"type": "integer"
|
|
2686
2590
|
},
|
|
2687
2591
|
"output_format": {
|
|
2688
|
-
"description": "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette) \u2014 not caller-selectable.",
|
|
2592
|
+
"description": "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette, mov->H.264, mkv->H.264) \u2014 not caller-selectable.",
|
|
2689
2593
|
"required": true,
|
|
2690
2594
|
"type": "enum",
|
|
2691
2595
|
"values": [
|
|
2692
2596
|
"mp4",
|
|
2693
2597
|
"webm",
|
|
2694
2598
|
"ogg",
|
|
2695
|
-
"gif"
|
|
2599
|
+
"gif",
|
|
2600
|
+
"mov",
|
|
2601
|
+
"mkv"
|
|
2696
2602
|
]
|
|
2697
2603
|
},
|
|
2698
2604
|
"trim_end": {
|
|
@@ -2701,7 +2607,7 @@
|
|
|
2701
2607
|
"type": "float"
|
|
2702
2608
|
},
|
|
2703
2609
|
"trim_start": {
|
|
2704
|
-
"description": "Trim from beginning in seconds (absent = from the start). The clip is cut before transcoding \u2014 the user's \"trim a video then make a GIF\" path. The kept clip is [`trim_start`, input_duration \u2212 `trim_end`]. Live for all video outputs
|
|
2610
|
+
"description": "Trim from beginning in seconds (absent = from the start). The clip is cut before transcoding \u2014 the user's \"trim a video then make a GIF\" path. The kept clip is [`trim_start`, input_duration \u2212 `trim_end`]. Live for all video outputs.\n",
|
|
2705
2611
|
"min": 0,
|
|
2706
2612
|
"type": "float"
|
|
2707
2613
|
},
|
|
@@ -2842,7 +2748,7 @@
|
|
|
2842
2748
|
},
|
|
2843
2749
|
"image_watermark": {
|
|
2844
2750
|
"default": false,
|
|
2845
|
-
"description": "Apply an image overlay onto a base media\nasset. Multi-input: exactly one input with role: base (the source\nasset) + exactly one with role: overlay (the watermark). Each input\nis an external_import handle, a vault\nconnection, or an upstream `job_output` (uploads are NOT referenced\ndirectly inside inputs[]). To use an uploaded base or overlay, feed\nit through a `passthrough` source job and reference that job via\n`{ type: job_output, from: <id> }` (per ticket 4som89Uh).\n\nStable today for static-image bases (image/jpeg, image/png,\nimage/webp); animated GIF bases are advertised as `planned` via\nthe parallel `image_gif` mime_group \u2014 schema is contract-defined,\ndispatch returns `feature_not_available` (422) until backend\nsupport ships.\n\nTIFF (image/tiff) and BMP (image/bmp) bases are
|
|
2751
|
+
"description": "Apply an image overlay onto a base media\nasset. Multi-input: exactly one input with role: base (the source\nasset) + exactly one with role: overlay (the watermark). Each input\nis an external_import handle, a vault\nconnection, or an upstream `job_output` (uploads are NOT referenced\ndirectly inside inputs[]). To use an uploaded base or overlay, feed\nit through a `passthrough` source job and reference that job via\n`{ type: job_output, from: <id> }` (per ticket 4som89Uh).\n\nStable today for static-image bases (image/jpeg, image/png,\nimage/webp); animated GIF bases are advertised as `planned` via\nthe parallel `image_gif` mime_group \u2014 schema is contract-defined,\ndispatch returns `feature_not_available` (422) until backend\nsupport ships.\n\nTIFF (image/tiff) and BMP (image/bmp) bases are now `stable` too\n(flipped planned->stable 2026-06-30 on the lambdas staging proof,\nUANjD38A / #296) via the parallel `image_tiff` / `image_bmp`\nmime_groups. Because watermark output mirrors the input format\n(`produces: same_as_input`), advertising a base format is only honest\nwhen the worker can both decode AND encode it \u2014 which holds for\nTIFF/BMP but not for HEIC/AVIF (no encoder) or SVG (cannot re-emit svg\nfrom a rasterised composite); those stay out of scope.\n\n**Video bases are NOT supported by `image_watermark`.** Use the\ndedicated `video_watermark` operation\n(`schemas/operations/video_watermark.yaml`), which overlays and\nre-encodes the video.\n\n**Audio is explicitly NOT supported.** For audio overlay (DJ tags,\npodcast intros, jingles), use the `audio_overlay` operation\n(declared in schemas/operations/audio_overlay.yaml at\n`availability: planned`).\n\nSource capped at 100 megapixels for image bases; per-frame caps for\nanimated GIF bases will be defined when the corresponding backend\nsupport ships.\n",
|
|
2846
2752
|
"features": {
|
|
2847
2753
|
"multi_overlay_stack": {
|
|
2848
2754
|
"availability": "planned",
|
|
@@ -2902,7 +2808,6 @@
|
|
|
2902
2808
|
}
|
|
2903
2809
|
},
|
|
2904
2810
|
"image_bmp": {
|
|
2905
|
-
"availability": "planned",
|
|
2906
2811
|
"mimes": [
|
|
2907
2812
|
"image/bmp"
|
|
2908
2813
|
],
|
|
@@ -2998,7 +2903,6 @@
|
|
|
2998
2903
|
}
|
|
2999
2904
|
},
|
|
3000
2905
|
"image_tiff": {
|
|
3001
|
-
"availability": "planned",
|
|
3002
2906
|
"mimes": [
|
|
3003
2907
|
"image/tiff"
|
|
3004
2908
|
],
|
|
@@ -4171,7 +4075,7 @@
|
|
|
4171
4075
|
},
|
|
4172
4076
|
"text_watermark": {
|
|
4173
4077
|
"default": false,
|
|
4174
|
-
"description": "Render a text overlay onto an image using bundled Liberation Sans\n(SIL OFL). Single-input \u2014 text comes from options, not from a file\ninput. Source capped at 100 megapixels in `single` mode. `tiled`\nmode keeps the 25-megapixel canvas bound (see `tile_spacing` /\n`watermark_mode`).\n\nTwo rendering modes:\n- `single`: one label rendered at the anchor + margin position.\n- `tiled`: text tiled across the source image (Cinavia / Adobe Stock\n pattern); rotation default -45\u00b0 and tile_spacing controls density.\n\nStable today for image/jpeg, image/png, image/webp inputs. TIFF\n(image/tiff) and BMP (image/bmp) inputs are
|
|
4078
|
+
"description": "Render a text overlay onto an image using bundled Liberation Sans\n(SIL OFL). Single-input \u2014 text comes from options, not from a file\ninput. Source capped at 100 megapixels in `single` mode. `tiled`\nmode keeps the 25-megapixel canvas bound (see `tile_spacing` /\n`watermark_mode`).\n\nTwo rendering modes:\n- `single`: one label rendered at the anchor + margin position.\n- `tiled`: text tiled across the source image (Cinavia / Adobe Stock\n pattern); rotation default -45\u00b0 and tile_spacing controls density.\n\nStable today for image/jpeg, image/png, image/webp inputs. TIFF\n(image/tiff) and BMP (image/bmp) inputs are now `stable` too (flipped\nplanned->stable 2026-06-30 on the lambdas staging proof, UANjD38A /\n#296) via the parallel `image_tiff` / `image_bmp` mime_groups. Output\nmirrors the input format (`produces: same_as_input`), so a format is\nonly advertised when the worker can both decode AND encode it;\nHEIC/AVIF (no encoder) and SVG (cannot re-emit svg from a rasterised\ncomposite) stay out of scope.\n",
|
|
4175
4079
|
"input_model": "single",
|
|
4176
4080
|
"mime_groups": {
|
|
4177
4081
|
"image": {
|
|
@@ -4270,7 +4174,6 @@
|
|
|
4270
4174
|
}
|
|
4271
4175
|
},
|
|
4272
4176
|
"image_bmp": {
|
|
4273
|
-
"availability": "planned",
|
|
4274
4177
|
"mimes": [
|
|
4275
4178
|
"image/bmp"
|
|
4276
4179
|
],
|
|
@@ -4364,7 +4267,6 @@
|
|
|
4364
4267
|
}
|
|
4365
4268
|
},
|
|
4366
4269
|
"image_tiff": {
|
|
4367
|
-
"availability": "planned",
|
|
4368
4270
|
"mimes": [
|
|
4369
4271
|
"image/tiff"
|
|
4370
4272
|
],
|
|
@@ -4499,10 +4401,9 @@
|
|
|
4499
4401
|
]
|
|
4500
4402
|
},
|
|
4501
4403
|
"height": {
|
|
4502
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP).",
|
|
4404
|
+
"description": "Target height in pixels (1-16384; width*height <= 16MP). Optional \u2014 see `width` for the omitted-default behaviour.",
|
|
4503
4405
|
"max": 16384,
|
|
4504
4406
|
"min": 1,
|
|
4505
|
-
"required": true,
|
|
4506
4407
|
"type": "integer"
|
|
4507
4408
|
},
|
|
4508
4409
|
"page": {
|
|
@@ -4537,10 +4438,9 @@
|
|
|
4537
4438
|
]
|
|
4538
4439
|
},
|
|
4539
4440
|
"width": {
|
|
4540
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP).",
|
|
4441
|
+
"description": "Target width in pixels (1-16384; width*height <= 16MP). Optional \u2014 when omitted the server applies an aspect-preserving default (both omitted \u2192 longest edge 320px; only one of width/height provided \u2192 the other is derived from the source aspect ratio).",
|
|
4541
4442
|
"max": 16384,
|
|
4542
4443
|
"min": 1,
|
|
4543
|
-
"required": true,
|
|
4544
4444
|
"type": "integer"
|
|
4545
4445
|
}
|
|
4546
4446
|
}
|
|
@@ -4587,10 +4487,9 @@
|
|
|
4587
4487
|
]
|
|
4588
4488
|
},
|
|
4589
4489
|
"height": {
|
|
4590
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize
|
|
4490
|
+
"description": "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize. Optional \u2014 see `width` for the omitted-default (aspect-preserving) behaviour.",
|
|
4591
4491
|
"max": 16384,
|
|
4592
4492
|
"min": 1,
|
|
4593
|
-
"required": true,
|
|
4594
4493
|
"type": "integer"
|
|
4595
4494
|
},
|
|
4596
4495
|
"quality": {
|
|
@@ -4598,91 +4497,19 @@
|
|
|
4598
4497
|
"depends_on": {
|
|
4599
4498
|
"format": [
|
|
4600
4499
|
"jpg",
|
|
4601
|
-
"webp"
|
|
4602
|
-
|
|
4603
|
-
},
|
|
4604
|
-
"description": "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless).",
|
|
4605
|
-
"max": 100,
|
|
4606
|
-
"min": 1,
|
|
4607
|
-
"type": "integer"
|
|
4608
|
-
},
|
|
4609
|
-
"width": {
|
|
4610
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4611
|
-
"max": 16384,
|
|
4612
|
-
"min": 1,
|
|
4613
|
-
"required": true,
|
|
4614
|
-
"type": "integer"
|
|
4615
|
-
}
|
|
4616
|
-
},
|
|
4617
|
-
"per_mime_availability": {
|
|
4618
|
-
"image/avif": {
|
|
4619
|
-
"availability": "beta"
|
|
4620
|
-
},
|
|
4621
|
-
"image/heic": {
|
|
4622
|
-
"availability": "beta"
|
|
4623
|
-
}
|
|
4624
|
-
}
|
|
4625
|
-
},
|
|
4626
|
-
"image_svg": {
|
|
4627
|
-
"availability": "planned",
|
|
4628
|
-
"max_output_pixels": 16000000,
|
|
4629
|
-
"mimes": [
|
|
4630
|
-
"image/svg+xml"
|
|
4631
|
-
],
|
|
4632
|
-
"options": {
|
|
4633
|
-
"background": {
|
|
4634
|
-
"depends_on": {
|
|
4635
|
-
"format": "jpg"
|
|
4636
|
-
},
|
|
4637
|
-
"description": "Background colour as a 6-digit hex (`#RRGGBB`, e.g. `#ffffff`) for a transparent image (e.g. PNG/WebP with alpha) resized to an opaque JPG thumbnail \u2014 the alpha-flatten fill colour. Mirrors convert.image.background. HEX ONLY: a non-hex value (e.g. a CSS named colour) is rejected rather than advertising an inert free-form string. When omitted, transparency is flattened onto white. JPG output only: PNG/WebP keep alpha, so the flatten (and this option) do not apply.",
|
|
4638
|
-
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
4639
|
-
"type": "string"
|
|
4640
|
-
},
|
|
4641
|
-
"fit": {
|
|
4642
|
-
"default": "crop",
|
|
4643
|
-
"description": "Resize mode",
|
|
4644
|
-
"type": "enum",
|
|
4645
|
-
"values": [
|
|
4646
|
-
"max",
|
|
4647
|
-
"crop",
|
|
4648
|
-
"scale"
|
|
4649
|
-
]
|
|
4650
|
-
},
|
|
4651
|
-
"format": {
|
|
4652
|
-
"default": "jpg",
|
|
4653
|
-
"description": "Output format for the thumbnail",
|
|
4654
|
-
"type": "enum",
|
|
4655
|
-
"values": [
|
|
4656
|
-
"jpg",
|
|
4657
|
-
"png",
|
|
4658
|
-
"webp"
|
|
4659
|
-
]
|
|
4660
|
-
},
|
|
4661
|
-
"height": {
|
|
4662
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4663
|
-
"max": 16384,
|
|
4664
|
-
"min": 1,
|
|
4665
|
-
"required": true,
|
|
4666
|
-
"type": "integer"
|
|
4667
|
-
},
|
|
4668
|
-
"quality": {
|
|
4669
|
-
"default": 85,
|
|
4670
|
-
"depends_on": {
|
|
4671
|
-
"format": [
|
|
4672
|
-
"jpg",
|
|
4673
|
-
"webp"
|
|
4500
|
+
"webp",
|
|
4501
|
+
"png"
|
|
4674
4502
|
]
|
|
4675
4503
|
},
|
|
4676
|
-
"description": "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file.
|
|
4504
|
+
"description": "Output quality for lossy thumbnail formats (jpg / webp / png): higher = better quality, larger file. For PNG, `quality` < 100 applies lossy palette quantization (imagequant \u2014 transparency preserved); `quality: 100` keeps the PNG lossless. Per-format effective default (server-resolved when `quality` is unset, per ADR-0020 D1): PNG \u2192 70 (more aggressive \u2014 thumbnails target small files), jpg/webp \u2192 85. The schema `default` is the nominal jpg/webp value (85); the FE shows 70 as the initial PNG slider value.",
|
|
4677
4505
|
"max": 100,
|
|
4678
4506
|
"min": 1,
|
|
4679
4507
|
"type": "integer"
|
|
4680
4508
|
},
|
|
4681
4509
|
"width": {
|
|
4682
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4510
|
+
"description": "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview. Optional \u2014 when omitted the server applies an aspect-preserving default (both omitted \u2192 longest edge 320px; only one of width/height provided \u2192 the other is derived from the source aspect ratio), so non-square images are never distorted.",
|
|
4683
4511
|
"max": 16384,
|
|
4684
4512
|
"min": 1,
|
|
4685
|
-
"required": true,
|
|
4686
4513
|
"type": "integer"
|
|
4687
4514
|
}
|
|
4688
4515
|
}
|
|
@@ -4716,10 +4543,9 @@
|
|
|
4716
4543
|
]
|
|
4717
4544
|
},
|
|
4718
4545
|
"height": {
|
|
4719
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number.",
|
|
4546
|
+
"description": "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number. Optional \u2014 see `width` for the omitted-default behaviour.",
|
|
4720
4547
|
"max": 16384,
|
|
4721
4548
|
"min": 1,
|
|
4722
|
-
"required": true,
|
|
4723
4549
|
"type": "integer"
|
|
4724
4550
|
},
|
|
4725
4551
|
"quality": {
|
|
@@ -4741,10 +4567,9 @@
|
|
|
4741
4567
|
"type": "string"
|
|
4742
4568
|
},
|
|
4743
4569
|
"width": {
|
|
4744
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number.",
|
|
4570
|
+
"description": "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number. Optional \u2014 when omitted the server applies an aspect-preserving default (both omitted \u2192 longest edge 320px; only one of width/height provided \u2192 the other is derived from the source aspect ratio).",
|
|
4745
4571
|
"max": 16384,
|
|
4746
4572
|
"min": 1,
|
|
4747
|
-
"required": true,
|
|
4748
4573
|
"type": "integer"
|
|
4749
4574
|
}
|
|
4750
4575
|
},
|
|
@@ -5013,7 +4838,7 @@
|
|
|
5013
4838
|
"sole_op": true
|
|
5014
4839
|
}
|
|
5015
4840
|
},
|
|
5016
|
-
"schema_version": "2.
|
|
4841
|
+
"schema_version": "2.148.0",
|
|
5017
4842
|
"source_commit": null,
|
|
5018
4843
|
"user_tier": null,
|
|
5019
4844
|
"workflow_features": {
|