@giveitsmaller/contracts 0.48.0 → 0.51.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 +31 -54
- package/accepted-options/image-output-routes.json +12 -22
- package/asyncapi/events.yaml +41 -11
- package/availability/availability.json +146 -265
- 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/BillingCheckoutRequest.d.ts +75 -0
- package/dist/openapi/models/BillingCheckoutRequest.js +64 -0
- package/dist/openapi/models/BillingCheckoutSession.d.ts +42 -0
- package/dist/openapi/models/BillingCheckoutSession.js +47 -0
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +54 -0
- 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/CreateBillingCheckoutSession422Response.d.ts +23 -0
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +51 -0
- 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 +2 -2
- package/dist/openapi/models/OperationInputModel.js +2 -2
- 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 +22 -56
- package/dist/openapi/models/WorkflowCreditSummary.js +4 -24
- 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/models/index.d.ts +4 -0
- package/dist/openapi/models/index.js +4 -0
- 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 +10 -42
- package/dist/operations/convert.d.ts +3 -6
- package/dist/operations/convert.js +2 -5
- package/dist/operations/convert.metadata.js +1 -15
- package/dist/operations/image_watermark.d.ts +19 -0
- package/dist/operations/image_watermark.js +12 -0
- package/dist/operations/image_watermark.metadata.js +5 -4
- 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 +349 -63
- package/operation-capabilities/operation-capabilities.json +53 -3
- package/operations/schemas/compress.yaml +142 -139
- package/operations/schemas/convert.yaml +39 -42
- package/operations/schemas/image_watermark.yaml +140 -31
- 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": 162,
|
|
3
3
|
"endpoints": {
|
|
4
4
|
"DELETE /api/auth/api-keys/{apiKeyId}": {
|
|
5
5
|
"auth": "required",
|
|
@@ -169,6 +169,13 @@
|
|
|
169
169
|
"operation_id": "verifyEmail",
|
|
170
170
|
"required_tier": null
|
|
171
171
|
},
|
|
172
|
+
"POST /api/billing/checkout": {
|
|
173
|
+
"auth": "required",
|
|
174
|
+
"availability": "stable",
|
|
175
|
+
"identity_scoped": true,
|
|
176
|
+
"operation_id": "createBillingCheckoutSession",
|
|
177
|
+
"required_tier": null
|
|
178
|
+
},
|
|
172
179
|
"POST /api/contact": {
|
|
173
180
|
"auth": "anonymous",
|
|
174
181
|
"availability": "stable",
|
|
@@ -960,14 +967,6 @@
|
|
|
960
967
|
"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
968
|
"type": "boolean"
|
|
962
969
|
},
|
|
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
970
|
"quality": {
|
|
972
971
|
"default": 50,
|
|
973
972
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -990,14 +989,6 @@
|
|
|
990
989
|
"application/vnd.oasis.opendocument.presentation"
|
|
991
990
|
],
|
|
992
991
|
"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
992
|
"quality": {
|
|
1002
993
|
"default": 50,
|
|
1003
994
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -1026,14 +1017,6 @@
|
|
|
1026
1017
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
1027
1018
|
],
|
|
1028
1019
|
"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
1020
|
"quality": {
|
|
1038
1021
|
"default": 50,
|
|
1039
1022
|
"description": "Compression quality (1 = smallest, 100 = best). The only document compression option supported today.",
|
|
@@ -1183,26 +1166,6 @@
|
|
|
1183
1166
|
"min": 1,
|
|
1184
1167
|
"type": "integer"
|
|
1185
1168
|
},
|
|
1186
|
-
"keep_metadata": {
|
|
1187
|
-
"availability": "planned",
|
|
1188
|
-
"depends_on": {
|
|
1189
|
-
"metadata": "strip"
|
|
1190
|
-
},
|
|
1191
|
-
"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).",
|
|
1192
|
-
"honored_on": [
|
|
1193
|
-
"same_format"
|
|
1194
|
-
],
|
|
1195
|
-
"items": {
|
|
1196
|
-
"enum": [
|
|
1197
|
-
"copyright",
|
|
1198
|
-
"gps",
|
|
1199
|
-
"date"
|
|
1200
|
-
],
|
|
1201
|
-
"type": "string"
|
|
1202
|
-
},
|
|
1203
|
-
"type": "array",
|
|
1204
|
-
"uniqueItems": true
|
|
1205
|
-
},
|
|
1206
1169
|
"metadata": {
|
|
1207
1170
|
"default": "strip",
|
|
1208
1171
|
"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.",
|
|
@@ -1263,7 +1226,6 @@
|
|
|
1263
1226
|
}
|
|
1264
1227
|
},
|
|
1265
1228
|
"image_avif": {
|
|
1266
|
-
"availability": "beta",
|
|
1267
1229
|
"max_output_pixels": 16000000,
|
|
1268
1230
|
"mimes": [
|
|
1269
1231
|
"image/avif"
|
|
@@ -1289,9 +1251,8 @@
|
|
|
1289
1251
|
"type": "integer"
|
|
1290
1252
|
},
|
|
1291
1253
|
"color_profile": {
|
|
1292
|
-
"availability": "planned",
|
|
1293
1254
|
"default": "keep",
|
|
1294
|
-
"description": "Colour-profile handling \u2014 a dedicated control, separate from `metadata` so that stripping metadata never silently shifts colours. `keep` (default) = preserve the
|
|
1255
|
+
"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.",
|
|
1295
1256
|
"honored_on": [
|
|
1296
1257
|
"same_format",
|
|
1297
1258
|
"format_change"
|
|
@@ -1305,14 +1266,15 @@
|
|
|
1305
1266
|
},
|
|
1306
1267
|
"encoding_mode": {
|
|
1307
1268
|
"default": "quality",
|
|
1308
|
-
"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.",
|
|
1269
|
+
"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.",
|
|
1309
1270
|
"honored_on": [
|
|
1310
1271
|
"same_format"
|
|
1311
1272
|
],
|
|
1312
1273
|
"type": "enum",
|
|
1313
1274
|
"values": [
|
|
1314
1275
|
"quality",
|
|
1315
|
-
"target_size"
|
|
1276
|
+
"target_size",
|
|
1277
|
+
"auto_quality"
|
|
1316
1278
|
]
|
|
1317
1279
|
},
|
|
1318
1280
|
"fit": {
|
|
@@ -1393,6 +1355,23 @@
|
|
|
1393
1355
|
"min": 1,
|
|
1394
1356
|
"type": "integer"
|
|
1395
1357
|
},
|
|
1358
|
+
"quality_preset": {
|
|
1359
|
+
"default": "good",
|
|
1360
|
+
"depends_on": {
|
|
1361
|
+
"encoding_mode": "auto_quality"
|
|
1362
|
+
},
|
|
1363
|
+
"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`).",
|
|
1364
|
+
"honored_on": [
|
|
1365
|
+
"same_format"
|
|
1366
|
+
],
|
|
1367
|
+
"type": "enum",
|
|
1368
|
+
"values": [
|
|
1369
|
+
"best",
|
|
1370
|
+
"good",
|
|
1371
|
+
"fair",
|
|
1372
|
+
"low"
|
|
1373
|
+
]
|
|
1374
|
+
},
|
|
1396
1375
|
"target_size_bytes": {
|
|
1397
1376
|
"depends_on": {
|
|
1398
1377
|
"encoding_mode": "target_size"
|
|
@@ -1459,14 +1438,15 @@
|
|
|
1459
1438
|
},
|
|
1460
1439
|
"encoding_mode": {
|
|
1461
1440
|
"default": "quality",
|
|
1462
|
-
"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.",
|
|
1441
|
+
"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.",
|
|
1463
1442
|
"honored_on": [
|
|
1464
1443
|
"same_format"
|
|
1465
1444
|
],
|
|
1466
1445
|
"type": "enum",
|
|
1467
1446
|
"values": [
|
|
1468
1447
|
"quality",
|
|
1469
|
-
"target_size"
|
|
1448
|
+
"target_size",
|
|
1449
|
+
"auto_quality"
|
|
1470
1450
|
]
|
|
1471
1451
|
},
|
|
1472
1452
|
"fit": {
|
|
@@ -1498,26 +1478,6 @@
|
|
|
1498
1478
|
"min": 1,
|
|
1499
1479
|
"type": "integer"
|
|
1500
1480
|
},
|
|
1501
|
-
"keep_metadata": {
|
|
1502
|
-
"availability": "planned",
|
|
1503
|
-
"depends_on": {
|
|
1504
|
-
"metadata": "strip"
|
|
1505
|
-
},
|
|
1506
|
-
"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).",
|
|
1507
|
-
"honored_on": [
|
|
1508
|
-
"same_format"
|
|
1509
|
-
],
|
|
1510
|
-
"items": {
|
|
1511
|
-
"enum": [
|
|
1512
|
-
"copyright",
|
|
1513
|
-
"gps",
|
|
1514
|
-
"date"
|
|
1515
|
-
],
|
|
1516
|
-
"type": "string"
|
|
1517
|
-
},
|
|
1518
|
-
"type": "array",
|
|
1519
|
-
"uniqueItems": true
|
|
1520
|
-
},
|
|
1521
1481
|
"lossless": {
|
|
1522
1482
|
"default": false,
|
|
1523
1483
|
"depends_on": {
|
|
@@ -1587,6 +1547,23 @@
|
|
|
1587
1547
|
"min": 1,
|
|
1588
1548
|
"type": "integer"
|
|
1589
1549
|
},
|
|
1550
|
+
"quality_preset": {
|
|
1551
|
+
"default": "good",
|
|
1552
|
+
"depends_on": {
|
|
1553
|
+
"encoding_mode": "auto_quality"
|
|
1554
|
+
},
|
|
1555
|
+
"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`).",
|
|
1556
|
+
"honored_on": [
|
|
1557
|
+
"same_format"
|
|
1558
|
+
],
|
|
1559
|
+
"type": "enum",
|
|
1560
|
+
"values": [
|
|
1561
|
+
"best",
|
|
1562
|
+
"good",
|
|
1563
|
+
"fair",
|
|
1564
|
+
"low"
|
|
1565
|
+
]
|
|
1566
|
+
},
|
|
1590
1567
|
"target_size_bytes": {
|
|
1591
1568
|
"depends_on": {
|
|
1592
1569
|
"encoding_mode": "target_size"
|
|
@@ -1668,35 +1645,6 @@
|
|
|
1668
1645
|
"min": 1,
|
|
1669
1646
|
"type": "integer"
|
|
1670
1647
|
},
|
|
1671
|
-
"keep_metadata": {
|
|
1672
|
-
"availability": "planned",
|
|
1673
|
-
"depends_on": {
|
|
1674
|
-
"metadata": "strip"
|
|
1675
|
-
},
|
|
1676
|
-
"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).",
|
|
1677
|
-
"honored_on": [
|
|
1678
|
-
"same_format"
|
|
1679
|
-
],
|
|
1680
|
-
"items": {
|
|
1681
|
-
"enum": [
|
|
1682
|
-
"copyright",
|
|
1683
|
-
"gps",
|
|
1684
|
-
"date"
|
|
1685
|
-
],
|
|
1686
|
-
"type": "string"
|
|
1687
|
-
},
|
|
1688
|
-
"type": "array",
|
|
1689
|
-
"uniqueItems": true
|
|
1690
|
-
},
|
|
1691
|
-
"lossy": {
|
|
1692
|
-
"availability": "planned",
|
|
1693
|
-
"default": false,
|
|
1694
|
-
"description": "Lossy PNG palette quantization \u2014 a large saving for flat-colour PNGs. `planned` \u2014 not yet supported.",
|
|
1695
|
-
"honored_on": [
|
|
1696
|
-
"same_format"
|
|
1697
|
-
],
|
|
1698
|
-
"type": "boolean"
|
|
1699
|
-
},
|
|
1700
1648
|
"metadata": {
|
|
1701
1649
|
"default": "strip",
|
|
1702
1650
|
"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.",
|
|
@@ -1746,7 +1694,7 @@
|
|
|
1746
1694
|
},
|
|
1747
1695
|
"quality": {
|
|
1748
1696
|
"default": 80,
|
|
1749
|
-
"description": "Compression quality (1 = smallest file, 100 = best quality
|
|
1697
|
+
"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.",
|
|
1750
1698
|
"honored_on": [
|
|
1751
1699
|
"same_format"
|
|
1752
1700
|
],
|
|
@@ -1806,16 +1754,6 @@
|
|
|
1806
1754
|
"auto",
|
|
1807
1755
|
"smallest"
|
|
1808
1756
|
]
|
|
1809
|
-
},
|
|
1810
|
-
"quality": {
|
|
1811
|
-
"default": 80,
|
|
1812
|
-
"description": "Compression quality (1 = smallest file, 100 = best quality).",
|
|
1813
|
-
"honored_on": [
|
|
1814
|
-
"same_format"
|
|
1815
|
-
],
|
|
1816
|
-
"max": 100,
|
|
1817
|
-
"min": 1,
|
|
1818
|
-
"type": "integer"
|
|
1819
1757
|
}
|
|
1820
1758
|
}
|
|
1821
1759
|
},
|
|
@@ -1836,16 +1774,11 @@
|
|
|
1836
1774
|
},
|
|
1837
1775
|
"color_profile": {
|
|
1838
1776
|
"default": "keep",
|
|
1839
|
-
"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).
|
|
1777
|
+
"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).",
|
|
1840
1778
|
"honored_on": [
|
|
1841
1779
|
"same_format",
|
|
1842
1780
|
"format_change"
|
|
1843
1781
|
],
|
|
1844
|
-
"per_value_availability": {
|
|
1845
|
-
"srgb": {
|
|
1846
|
-
"availability": "planned"
|
|
1847
|
-
}
|
|
1848
|
-
},
|
|
1849
1782
|
"type": "enum",
|
|
1850
1783
|
"values": [
|
|
1851
1784
|
"keep",
|
|
@@ -1855,14 +1788,15 @@
|
|
|
1855
1788
|
},
|
|
1856
1789
|
"encoding_mode": {
|
|
1857
1790
|
"default": "quality",
|
|
1858
|
-
"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.",
|
|
1791
|
+
"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.",
|
|
1859
1792
|
"honored_on": [
|
|
1860
1793
|
"same_format"
|
|
1861
1794
|
],
|
|
1862
1795
|
"type": "enum",
|
|
1863
1796
|
"values": [
|
|
1864
1797
|
"quality",
|
|
1865
|
-
"target_size"
|
|
1798
|
+
"target_size",
|
|
1799
|
+
"auto_quality"
|
|
1866
1800
|
]
|
|
1867
1801
|
},
|
|
1868
1802
|
"fit": {
|
|
@@ -1894,26 +1828,6 @@
|
|
|
1894
1828
|
"min": 1,
|
|
1895
1829
|
"type": "integer"
|
|
1896
1830
|
},
|
|
1897
|
-
"keep_metadata": {
|
|
1898
|
-
"availability": "planned",
|
|
1899
|
-
"depends_on": {
|
|
1900
|
-
"metadata": "strip"
|
|
1901
|
-
},
|
|
1902
|
-
"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).",
|
|
1903
|
-
"honored_on": [
|
|
1904
|
-
"same_format"
|
|
1905
|
-
],
|
|
1906
|
-
"items": {
|
|
1907
|
-
"enum": [
|
|
1908
|
-
"copyright",
|
|
1909
|
-
"gps",
|
|
1910
|
-
"date"
|
|
1911
|
-
],
|
|
1912
|
-
"type": "string"
|
|
1913
|
-
},
|
|
1914
|
-
"type": "array",
|
|
1915
|
-
"uniqueItems": true
|
|
1916
|
-
},
|
|
1917
1831
|
"lossless": {
|
|
1918
1832
|
"default": false,
|
|
1919
1833
|
"depends_on": {
|
|
@@ -1975,6 +1889,23 @@
|
|
|
1975
1889
|
"min": 1,
|
|
1976
1890
|
"type": "integer"
|
|
1977
1891
|
},
|
|
1892
|
+
"quality_preset": {
|
|
1893
|
+
"default": "good",
|
|
1894
|
+
"depends_on": {
|
|
1895
|
+
"encoding_mode": "auto_quality"
|
|
1896
|
+
},
|
|
1897
|
+
"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`).",
|
|
1898
|
+
"honored_on": [
|
|
1899
|
+
"same_format"
|
|
1900
|
+
],
|
|
1901
|
+
"type": "enum",
|
|
1902
|
+
"values": [
|
|
1903
|
+
"best",
|
|
1904
|
+
"good",
|
|
1905
|
+
"fair",
|
|
1906
|
+
"low"
|
|
1907
|
+
]
|
|
1908
|
+
},
|
|
1978
1909
|
"target_size_bytes": {
|
|
1979
1910
|
"depends_on": {
|
|
1980
1911
|
"encoding_mode": "target_size"
|
|
@@ -2399,17 +2330,6 @@
|
|
|
2399
2330
|
"min": 1,
|
|
2400
2331
|
"type": "integer"
|
|
2401
2332
|
}
|
|
2402
|
-
},
|
|
2403
|
-
"per_mime_availability": {
|
|
2404
|
-
"image/avif": {
|
|
2405
|
-
"availability": "beta"
|
|
2406
|
-
},
|
|
2407
|
-
"image/heic": {
|
|
2408
|
-
"availability": "beta"
|
|
2409
|
-
},
|
|
2410
|
-
"image/heif": {
|
|
2411
|
-
"availability": "beta"
|
|
2412
|
-
}
|
|
2413
2333
|
}
|
|
2414
2334
|
},
|
|
2415
2335
|
"image_gif": {
|
|
@@ -2507,19 +2427,6 @@
|
|
|
2507
2427
|
"min": 1,
|
|
2508
2428
|
"type": "integer"
|
|
2509
2429
|
},
|
|
2510
|
-
"metadata": {
|
|
2511
|
-
"availability": "planned",
|
|
2512
|
-
"default": "strip",
|
|
2513
|
-
"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.",
|
|
2514
|
-
"honored_on": [
|
|
2515
|
-
"format_change"
|
|
2516
|
-
],
|
|
2517
|
-
"type": "enum",
|
|
2518
|
-
"values": [
|
|
2519
|
-
"strip",
|
|
2520
|
-
"keep"
|
|
2521
|
-
]
|
|
2522
|
-
},
|
|
2523
2430
|
"output_format": {
|
|
2524
2431
|
"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.",
|
|
2525
2432
|
"required": true,
|
|
@@ -2634,7 +2541,9 @@
|
|
|
2634
2541
|
"output_format": [
|
|
2635
2542
|
"mp4",
|
|
2636
2543
|
"webm",
|
|
2637
|
-
"ogg"
|
|
2544
|
+
"ogg",
|
|
2545
|
+
"mov",
|
|
2546
|
+
"mkv"
|
|
2638
2547
|
]
|
|
2639
2548
|
},
|
|
2640
2549
|
"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",
|
|
@@ -2687,14 +2596,16 @@
|
|
|
2687
2596
|
"type": "integer"
|
|
2688
2597
|
},
|
|
2689
2598
|
"output_format": {
|
|
2690
|
-
"description": "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette) \u2014 not caller-selectable.",
|
|
2599
|
+
"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.",
|
|
2691
2600
|
"required": true,
|
|
2692
2601
|
"type": "enum",
|
|
2693
2602
|
"values": [
|
|
2694
2603
|
"mp4",
|
|
2695
2604
|
"webm",
|
|
2696
2605
|
"ogg",
|
|
2697
|
-
"gif"
|
|
2606
|
+
"gif",
|
|
2607
|
+
"mov",
|
|
2608
|
+
"mkv"
|
|
2698
2609
|
]
|
|
2699
2610
|
},
|
|
2700
2611
|
"trim_end": {
|
|
@@ -2703,7 +2614,7 @@
|
|
|
2703
2614
|
"type": "float"
|
|
2704
2615
|
},
|
|
2705
2616
|
"trim_start": {
|
|
2706
|
-
"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
|
|
2617
|
+
"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",
|
|
2707
2618
|
"min": 0,
|
|
2708
2619
|
"type": "float"
|
|
2709
2620
|
},
|
|
@@ -2844,15 +2755,15 @@
|
|
|
2844
2755
|
},
|
|
2845
2756
|
"image_watermark": {
|
|
2846
2757
|
"default": false,
|
|
2847
|
-
"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
|
|
2758
|
+
"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",
|
|
2848
2759
|
"features": {
|
|
2849
2760
|
"multi_overlay_stack": {
|
|
2850
|
-
"availability": "
|
|
2851
|
-
"description": "
|
|
2761
|
+
"availability": "stable",
|
|
2762
|
+
"description": "Stack up to 8 overlay inputs on one base image, each with its own\nplacement via the `overlays[]` array option (index-aligned to the\noverlay-role sources; see the `image` group's `overlays` option).\n`overlays[]` is mutually exclusive with the flat single-overlay options,\nwhich remain the 1-overlay back-compat path.\n\n**Base-format scope: multi-overlay (`overlays[]`) is on the `image`\ngroup (jpeg/png/webp) ONLY** \u2014 the format the worker proved. The\nstable `image_tiff` / `image_bmp` bases support the SINGLE-overlay flat\noptions but NOT `overlays[]` yet (multi-overlay on those bases needs its\nown worker proof \u2014 a base-format extension, separate from the group's\nstable single-overlay flip). GIF / video bases remain out of scope.\n\nThe op-level `input` max 9 / `per_role_cardinality` overlay `{1,8}` is\nthe MAXIMUM (the jpeg/png/webp base); input-cardinality has no per-mime-\ngroup primitive, so a `>1`-overlay request on a tiff/bmp base \u2014 which\nhas no `overlays[]` to place the extra overlays \u2014 is rejected as\n`invalid_options` (API + worker). Effective per-base overlay count:\njpeg/png/webp = 1\u20138, tiff/bmp = 1.\n"
|
|
2852
2763
|
}
|
|
2853
2764
|
},
|
|
2854
2765
|
"input_model": "multi",
|
|
2855
|
-
"max_inputs":
|
|
2766
|
+
"max_inputs": 9,
|
|
2856
2767
|
"mime_groups": {
|
|
2857
2768
|
"image": {
|
|
2858
2769
|
"mimes": [
|
|
@@ -2900,11 +2811,61 @@
|
|
|
2900
2811
|
"description": "Optional overlay width as either pixels (e.g. \"200px\") or\npercentage of base image width (e.g. \"30%\"). Aspect ratio is\npreserved. Omit to use the original overlay size.\n",
|
|
2901
2812
|
"pattern": "^\\d+(\\.\\d+)?(px|%)$",
|
|
2902
2813
|
"type": "string"
|
|
2814
|
+
},
|
|
2815
|
+
"overlays": {
|
|
2816
|
+
"description": "Per-overlay placement for the multi-overlay stack \u2014 one entry per\noverlay source, INDEX-ALIGNED: `overlays[i]` applies to overlay\nsource `i`. Stacks up to 8 overlays on one base\n(`features.multi_overlay_stack`). `len(overlays)` MUST equal the\nnumber of overlay-role sources (worker-enforced; `invalid_options`\notherwise).\n\n**Z-order = array index (painter's order, bottom \u2192 top).** Overlays\nare composited in array/source order: `overlays[0]` first (bottom),\nthen `overlays[1]`, \u2026 `overlays[N-1]` LAST (on top). Where two\noverlays overlap, the higher index wins. There is no per-overlay\n`z` field \u2014 the index IS the z-order. (Deterministic in the worker;\nidentical per-frame for animated-WebP bases.)\n\n**Mutually exclusive with the flat single-overlay options**\n(`anchor` / `margin_x` / `margin_y` / `opacity` / `overlay_width`):\na request that sets BOTH `overlays[]` and any flat option is\nrejected as `invalid_options` (API create-validation + worker) \u2014\nthere is no silent precedence. Use the flat options for the\nsingle-overlay path, `overlays[]` for the multi path.\n\nLIVE (flipped `planned` -> stable 2026-07-01 on the lambdas worker\nproof, co-landed with `input` max 2 -> 9 + `per_role_cardinality`\noverlay `{1,8}` + api's overlays[] validation & FNA-gate removal).\nThe single-overlay FLAT options remain the 1-overlay back-compat path.\n",
|
|
2817
|
+
"items": {
|
|
2818
|
+
"properties": {
|
|
2819
|
+
"anchor": {
|
|
2820
|
+
"default": "bottom_right",
|
|
2821
|
+
"description": "9-grid anchor position on the base image (per-overlay; see the flat `anchor`).",
|
|
2822
|
+
"enum": [
|
|
2823
|
+
"top_left",
|
|
2824
|
+
"top_center",
|
|
2825
|
+
"top_right",
|
|
2826
|
+
"center_left",
|
|
2827
|
+
"center",
|
|
2828
|
+
"center_right",
|
|
2829
|
+
"bottom_left",
|
|
2830
|
+
"bottom_center",
|
|
2831
|
+
"bottom_right"
|
|
2832
|
+
],
|
|
2833
|
+
"type": "string"
|
|
2834
|
+
},
|
|
2835
|
+
"margin_x": {
|
|
2836
|
+
"default": "0px",
|
|
2837
|
+
"description": "Horizontal offset from the anchor (px or % of base width), anchor-relative (see the flat `margin_x`).",
|
|
2838
|
+
"pattern": "^\\d+(\\.\\d+)?(px|%)$",
|
|
2839
|
+
"type": "string"
|
|
2840
|
+
},
|
|
2841
|
+
"margin_y": {
|
|
2842
|
+
"default": "0px",
|
|
2843
|
+
"description": "Vertical offset from the anchor (px or % of base height), anchor-relative (see the flat `margin_y`).",
|
|
2844
|
+
"pattern": "^\\d+(\\.\\d+)?(px|%)$",
|
|
2845
|
+
"type": "string"
|
|
2846
|
+
},
|
|
2847
|
+
"opacity": {
|
|
2848
|
+
"default": 0.5,
|
|
2849
|
+
"description": "Overlay opacity (0 transparent .. 1 opaque), clamped.",
|
|
2850
|
+
"maximum": 1,
|
|
2851
|
+
"minimum": 0,
|
|
2852
|
+
"type": "number"
|
|
2853
|
+
},
|
|
2854
|
+
"overlay_width": {
|
|
2855
|
+
"description": "Optional overlay width (px or % of base width); aspect preserved. Omit for original size.",
|
|
2856
|
+
"pattern": "^\\d+(\\.\\d+)?(px|%)$",
|
|
2857
|
+
"type": "string"
|
|
2858
|
+
}
|
|
2859
|
+
},
|
|
2860
|
+
"type": "object"
|
|
2861
|
+
},
|
|
2862
|
+
"maxItems": 8,
|
|
2863
|
+
"minItems": 1,
|
|
2864
|
+
"type": "array"
|
|
2903
2865
|
}
|
|
2904
2866
|
}
|
|
2905
2867
|
},
|
|
2906
2868
|
"image_bmp": {
|
|
2907
|
-
"availability": "planned",
|
|
2908
2869
|
"mimes": [
|
|
2909
2870
|
"image/bmp"
|
|
2910
2871
|
],
|
|
@@ -3000,7 +2961,6 @@
|
|
|
3000
2961
|
}
|
|
3001
2962
|
},
|
|
3002
2963
|
"image_tiff": {
|
|
3003
|
-
"availability": "planned",
|
|
3004
2964
|
"mimes": [
|
|
3005
2965
|
"image/tiff"
|
|
3006
2966
|
],
|
|
@@ -3055,7 +3015,7 @@
|
|
|
3055
3015
|
"min": 1
|
|
3056
3016
|
},
|
|
3057
3017
|
"overlay": {
|
|
3058
|
-
"max":
|
|
3018
|
+
"max": 8,
|
|
3059
3019
|
"min": 1
|
|
3060
3020
|
}
|
|
3061
3021
|
},
|
|
@@ -4173,7 +4133,7 @@
|
|
|
4173
4133
|
},
|
|
4174
4134
|
"text_watermark": {
|
|
4175
4135
|
"default": false,
|
|
4176
|
-
"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
|
|
4136
|
+
"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",
|
|
4177
4137
|
"input_model": "single",
|
|
4178
4138
|
"mime_groups": {
|
|
4179
4139
|
"image": {
|
|
@@ -4272,7 +4232,6 @@
|
|
|
4272
4232
|
}
|
|
4273
4233
|
},
|
|
4274
4234
|
"image_bmp": {
|
|
4275
|
-
"availability": "planned",
|
|
4276
4235
|
"mimes": [
|
|
4277
4236
|
"image/bmp"
|
|
4278
4237
|
],
|
|
@@ -4366,7 +4325,6 @@
|
|
|
4366
4325
|
}
|
|
4367
4326
|
},
|
|
4368
4327
|
"image_tiff": {
|
|
4369
|
-
"availability": "planned",
|
|
4370
4328
|
"mimes": [
|
|
4371
4329
|
"image/tiff"
|
|
4372
4330
|
],
|
|
@@ -4501,10 +4459,9 @@
|
|
|
4501
4459
|
]
|
|
4502
4460
|
},
|
|
4503
4461
|
"height": {
|
|
4504
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP).",
|
|
4462
|
+
"description": "Target height in pixels (1-16384; width*height <= 16MP). Optional \u2014 see `width` for the omitted-default behaviour.",
|
|
4505
4463
|
"max": 16384,
|
|
4506
4464
|
"min": 1,
|
|
4507
|
-
"required": true,
|
|
4508
4465
|
"type": "integer"
|
|
4509
4466
|
},
|
|
4510
4467
|
"page": {
|
|
@@ -4539,10 +4496,9 @@
|
|
|
4539
4496
|
]
|
|
4540
4497
|
},
|
|
4541
4498
|
"width": {
|
|
4542
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP).",
|
|
4499
|
+
"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).",
|
|
4543
4500
|
"max": 16384,
|
|
4544
4501
|
"min": 1,
|
|
4545
|
-
"required": true,
|
|
4546
4502
|
"type": "integer"
|
|
4547
4503
|
}
|
|
4548
4504
|
}
|
|
@@ -4589,10 +4545,9 @@
|
|
|
4589
4545
|
]
|
|
4590
4546
|
},
|
|
4591
4547
|
"height": {
|
|
4592
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize
|
|
4548
|
+
"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.",
|
|
4593
4549
|
"max": 16384,
|
|
4594
4550
|
"min": 1,
|
|
4595
|
-
"required": true,
|
|
4596
4551
|
"type": "integer"
|
|
4597
4552
|
},
|
|
4598
4553
|
"quality": {
|
|
@@ -4600,91 +4555,19 @@
|
|
|
4600
4555
|
"depends_on": {
|
|
4601
4556
|
"format": [
|
|
4602
4557
|
"jpg",
|
|
4603
|
-
"webp"
|
|
4604
|
-
|
|
4605
|
-
},
|
|
4606
|
-
"description": "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless).",
|
|
4607
|
-
"max": 100,
|
|
4608
|
-
"min": 1,
|
|
4609
|
-
"type": "integer"
|
|
4610
|
-
},
|
|
4611
|
-
"width": {
|
|
4612
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4613
|
-
"max": 16384,
|
|
4614
|
-
"min": 1,
|
|
4615
|
-
"required": true,
|
|
4616
|
-
"type": "integer"
|
|
4617
|
-
}
|
|
4618
|
-
},
|
|
4619
|
-
"per_mime_availability": {
|
|
4620
|
-
"image/avif": {
|
|
4621
|
-
"availability": "beta"
|
|
4622
|
-
},
|
|
4623
|
-
"image/heic": {
|
|
4624
|
-
"availability": "beta"
|
|
4625
|
-
}
|
|
4626
|
-
}
|
|
4627
|
-
},
|
|
4628
|
-
"image_svg": {
|
|
4629
|
-
"availability": "planned",
|
|
4630
|
-
"max_output_pixels": 16000000,
|
|
4631
|
-
"mimes": [
|
|
4632
|
-
"image/svg+xml"
|
|
4633
|
-
],
|
|
4634
|
-
"options": {
|
|
4635
|
-
"background": {
|
|
4636
|
-
"depends_on": {
|
|
4637
|
-
"format": "jpg"
|
|
4638
|
-
},
|
|
4639
|
-
"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.",
|
|
4640
|
-
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
4641
|
-
"type": "string"
|
|
4642
|
-
},
|
|
4643
|
-
"fit": {
|
|
4644
|
-
"default": "crop",
|
|
4645
|
-
"description": "Resize mode",
|
|
4646
|
-
"type": "enum",
|
|
4647
|
-
"values": [
|
|
4648
|
-
"max",
|
|
4649
|
-
"crop",
|
|
4650
|
-
"scale"
|
|
4651
|
-
]
|
|
4652
|
-
},
|
|
4653
|
-
"format": {
|
|
4654
|
-
"default": "jpg",
|
|
4655
|
-
"description": "Output format for the thumbnail",
|
|
4656
|
-
"type": "enum",
|
|
4657
|
-
"values": [
|
|
4658
|
-
"jpg",
|
|
4659
|
-
"png",
|
|
4660
|
-
"webp"
|
|
4661
|
-
]
|
|
4662
|
-
},
|
|
4663
|
-
"height": {
|
|
4664
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4665
|
-
"max": 16384,
|
|
4666
|
-
"min": 1,
|
|
4667
|
-
"required": true,
|
|
4668
|
-
"type": "integer"
|
|
4669
|
-
},
|
|
4670
|
-
"quality": {
|
|
4671
|
-
"default": 85,
|
|
4672
|
-
"depends_on": {
|
|
4673
|
-
"format": [
|
|
4674
|
-
"jpg",
|
|
4675
|
-
"webp"
|
|
4558
|
+
"webp",
|
|
4559
|
+
"png"
|
|
4676
4560
|
]
|
|
4677
4561
|
},
|
|
4678
|
-
"description": "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file.
|
|
4562
|
+
"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.",
|
|
4679
4563
|
"max": 100,
|
|
4680
4564
|
"min": 1,
|
|
4681
4565
|
"type": "integer"
|
|
4682
4566
|
},
|
|
4683
4567
|
"width": {
|
|
4684
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview.",
|
|
4568
|
+
"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.",
|
|
4685
4569
|
"max": 16384,
|
|
4686
4570
|
"min": 1,
|
|
4687
|
-
"required": true,
|
|
4688
4571
|
"type": "integer"
|
|
4689
4572
|
}
|
|
4690
4573
|
}
|
|
@@ -4718,10 +4601,9 @@
|
|
|
4718
4601
|
]
|
|
4719
4602
|
},
|
|
4720
4603
|
"height": {
|
|
4721
|
-
"description": "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number.",
|
|
4604
|
+
"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.",
|
|
4722
4605
|
"max": 16384,
|
|
4723
4606
|
"min": 1,
|
|
4724
|
-
"required": true,
|
|
4725
4607
|
"type": "integer"
|
|
4726
4608
|
},
|
|
4727
4609
|
"quality": {
|
|
@@ -4743,10 +4625,9 @@
|
|
|
4743
4625
|
"type": "string"
|
|
4744
4626
|
},
|
|
4745
4627
|
"width": {
|
|
4746
|
-
"description": "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number.",
|
|
4628
|
+
"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).",
|
|
4747
4629
|
"max": 16384,
|
|
4748
4630
|
"min": 1,
|
|
4749
|
-
"required": true,
|
|
4750
4631
|
"type": "integer"
|
|
4751
4632
|
}
|
|
4752
4633
|
},
|
|
@@ -5015,7 +4896,7 @@
|
|
|
5015
4896
|
"sole_op": true
|
|
5016
4897
|
}
|
|
5017
4898
|
},
|
|
5018
|
-
"schema_version": "2.
|
|
4899
|
+
"schema_version": "2.152.0",
|
|
5019
4900
|
"source_commit": null,
|
|
5020
4901
|
"user_tier": null,
|
|
5021
4902
|
"workflow_features": {
|