@giveitsmaller/contracts 0.51.0 → 0.54.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 +38 -1
- package/accepted-options/image-output-routes.json +1 -1
- package/asyncapi/events.yaml +283 -14
- package/availability/availability.json +155 -2
- package/code-builder/code-builder-metadata.json +7236 -0
- package/dist/asyncapi/OperationType.d.ts +2 -1
- package/dist/asyncapi/OperationType.js +1 -0
- package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
- package/dist/openapi/models/AccountLimitEntry.js +1 -1
- package/dist/openapi/models/AccountLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
- package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSession.js +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/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 +13 -7
- 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 +4 -1
- package/dist/openapi/models/CompositionPlanOperation.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
- package/dist/openapi/models/ConnectionSource.d.ts +1 -1
- package/dist/openapi/models/ConnectionSource.js +1 -1
- package/dist/openapi/models/ContactRequest.d.ts +1 -1
- package/dist/openapi/models/ContactRequest.js +1 -1
- package/dist/openapi/models/ContactSubject.d.ts +1 -1
- package/dist/openapi/models/ContactSubject.js +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
- package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201Response.js +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
- package/dist/openapi/models/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 +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -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 +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +4 -1
- package/dist/openapi/models/OperationType.js +4 -1
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
- package/dist/openapi/models/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 +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
- 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 +26 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +3 -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 +19 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +3 -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 +16 -1
- package/dist/openapi/models/WorkflowSummary.js +3 -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/index.d.ts +2 -0
- package/dist/operations/index.js +2 -0
- package/dist/operations/transform.d.ts +57 -0
- package/dist/operations/transform.js +50 -0
- package/dist/operations/transform.metadata.d.ts +2 -0
- package/dist/operations/transform.metadata.js +77 -0
- package/openapi/api.yaml +73 -9
- package/operation-capabilities/operation-capabilities.json +126 -3
- package/operations/schemas/transform.yaml +196 -0
- package/package.json +5 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Auto-generated from transform.yaml -- do not edit
|
|
2
|
+
export var TransformImageRotate;
|
|
3
|
+
(function (TransformImageRotate) {
|
|
4
|
+
TransformImageRotate[TransformImageRotate["_0"] = 0] = "_0";
|
|
5
|
+
TransformImageRotate[TransformImageRotate["_90"] = 90] = "_90";
|
|
6
|
+
TransformImageRotate[TransformImageRotate["_180"] = 180] = "_180";
|
|
7
|
+
TransformImageRotate[TransformImageRotate["_270"] = 270] = "_270";
|
|
8
|
+
})(TransformImageRotate || (TransformImageRotate = {}));
|
|
9
|
+
export var TransformImageFlip;
|
|
10
|
+
(function (TransformImageFlip) {
|
|
11
|
+
TransformImageFlip["None"] = "none";
|
|
12
|
+
TransformImageFlip["Horizontal"] = "horizontal";
|
|
13
|
+
TransformImageFlip["Vertical"] = "vertical";
|
|
14
|
+
TransformImageFlip["Both"] = "both";
|
|
15
|
+
})(TransformImageFlip || (TransformImageFlip = {}));
|
|
16
|
+
export var TransformImageGifRotate;
|
|
17
|
+
(function (TransformImageGifRotate) {
|
|
18
|
+
TransformImageGifRotate[TransformImageGifRotate["_0"] = 0] = "_0";
|
|
19
|
+
TransformImageGifRotate[TransformImageGifRotate["_90"] = 90] = "_90";
|
|
20
|
+
TransformImageGifRotate[TransformImageGifRotate["_180"] = 180] = "_180";
|
|
21
|
+
TransformImageGifRotate[TransformImageGifRotate["_270"] = 270] = "_270";
|
|
22
|
+
})(TransformImageGifRotate || (TransformImageGifRotate = {}));
|
|
23
|
+
export var TransformImageGifFlip;
|
|
24
|
+
(function (TransformImageGifFlip) {
|
|
25
|
+
TransformImageGifFlip["None"] = "none";
|
|
26
|
+
TransformImageGifFlip["Horizontal"] = "horizontal";
|
|
27
|
+
TransformImageGifFlip["Vertical"] = "vertical";
|
|
28
|
+
TransformImageGifFlip["Both"] = "both";
|
|
29
|
+
})(TransformImageGifFlip || (TransformImageGifFlip = {}));
|
|
30
|
+
export var TransformVideoRotate;
|
|
31
|
+
(function (TransformVideoRotate) {
|
|
32
|
+
TransformVideoRotate[TransformVideoRotate["_0"] = 0] = "_0";
|
|
33
|
+
TransformVideoRotate[TransformVideoRotate["_90"] = 90] = "_90";
|
|
34
|
+
TransformVideoRotate[TransformVideoRotate["_180"] = 180] = "_180";
|
|
35
|
+
TransformVideoRotate[TransformVideoRotate["_270"] = 270] = "_270";
|
|
36
|
+
})(TransformVideoRotate || (TransformVideoRotate = {}));
|
|
37
|
+
export var TransformVideoFlip;
|
|
38
|
+
(function (TransformVideoFlip) {
|
|
39
|
+
TransformVideoFlip["None"] = "none";
|
|
40
|
+
TransformVideoFlip["Horizontal"] = "horizontal";
|
|
41
|
+
TransformVideoFlip["Vertical"] = "vertical";
|
|
42
|
+
TransformVideoFlip["Both"] = "both";
|
|
43
|
+
})(TransformVideoFlip || (TransformVideoFlip = {}));
|
|
44
|
+
export var TransformDocumentPdfRotate;
|
|
45
|
+
(function (TransformDocumentPdfRotate) {
|
|
46
|
+
TransformDocumentPdfRotate[TransformDocumentPdfRotate["_0"] = 0] = "_0";
|
|
47
|
+
TransformDocumentPdfRotate[TransformDocumentPdfRotate["_90"] = 90] = "_90";
|
|
48
|
+
TransformDocumentPdfRotate[TransformDocumentPdfRotate["_180"] = 180] = "_180";
|
|
49
|
+
TransformDocumentPdfRotate[TransformDocumentPdfRotate["_270"] = 270] = "_270";
|
|
50
|
+
})(TransformDocumentPdfRotate || (TransformDocumentPdfRotate = {}));
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Auto-generated from transform.yaml -- do not edit
|
|
2
|
+
export const transformMetadata = {
|
|
3
|
+
availability: 'planned',
|
|
4
|
+
features: {},
|
|
5
|
+
mime_groups: {
|
|
6
|
+
image: {
|
|
7
|
+
availability: 'planned',
|
|
8
|
+
processing_class: {},
|
|
9
|
+
per_mime_availability: {},
|
|
10
|
+
options: {
|
|
11
|
+
rotate: {
|
|
12
|
+
per_value_availability: {},
|
|
13
|
+
},
|
|
14
|
+
flip: {
|
|
15
|
+
per_value_availability: {},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
per_input_options: {},
|
|
19
|
+
},
|
|
20
|
+
image_gif: {
|
|
21
|
+
availability: 'planned',
|
|
22
|
+
processing_class: {},
|
|
23
|
+
per_mime_availability: {},
|
|
24
|
+
options: {
|
|
25
|
+
rotate: {
|
|
26
|
+
per_value_availability: {},
|
|
27
|
+
},
|
|
28
|
+
flip: {
|
|
29
|
+
per_value_availability: {},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
per_input_options: {},
|
|
33
|
+
},
|
|
34
|
+
video: {
|
|
35
|
+
processing_class: {
|
|
36
|
+
short_form: {
|
|
37
|
+
availability: 'planned',
|
|
38
|
+
constraints: {
|
|
39
|
+
max_input_duration: 'PT5M',
|
|
40
|
+
max_input_size_bytes: 524288000,
|
|
41
|
+
max_output_size_bytes: 524288000,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
long_form: {
|
|
45
|
+
availability: 'planned',
|
|
46
|
+
required_tier: 'pro',
|
|
47
|
+
constraints: {
|
|
48
|
+
max_input_duration: 'PT12H',
|
|
49
|
+
max_input_size_bytes: 5000000000,
|
|
50
|
+
max_output_size_bytes: 5000000000,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
per_mime_availability: {},
|
|
55
|
+
options: {
|
|
56
|
+
rotate: {
|
|
57
|
+
per_value_availability: {},
|
|
58
|
+
},
|
|
59
|
+
flip: {
|
|
60
|
+
per_value_availability: {},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
per_input_options: {},
|
|
64
|
+
},
|
|
65
|
+
document_pdf: {
|
|
66
|
+
availability: 'planned',
|
|
67
|
+
processing_class: {},
|
|
68
|
+
per_mime_availability: {},
|
|
69
|
+
options: {
|
|
70
|
+
rotate: {
|
|
71
|
+
per_value_availability: {},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
per_input_options: {},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
};
|
package/openapi/api.yaml
CHANGED
|
@@ -89,7 +89,7 @@ info:
|
|
|
89
89
|
of truth instead of hardcoding magic numbers. A runtime
|
|
90
90
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
91
91
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
92
|
-
version: 2.
|
|
92
|
+
version: 2.158.0
|
|
93
93
|
contact:
|
|
94
94
|
name: API Support
|
|
95
95
|
|
|
@@ -7187,7 +7187,7 @@ components:
|
|
|
7187
7187
|
exceeds the per-input ceiling (`max_input_size_bytes` /
|
|
7188
7188
|
`max_input_duration`). Applies to single-input operations
|
|
7189
7189
|
(compress, convert, thumbnail, text_watermark,
|
|
7190
|
-
audio_watermark) AND per-input checks on multi-input
|
|
7190
|
+
audio_watermark, transform) AND per-input checks on multi-input
|
|
7191
7191
|
operations with per-input caps (image_watermark,
|
|
7192
7192
|
custom_luma, audio_overlay).
|
|
7193
7193
|
- `combined_size_exceeds_long_form` /
|
|
@@ -7594,6 +7594,8 @@ components:
|
|
|
7594
7594
|
- split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` and `video` mime_groups (workers live on staging — shape-stable + opt-in, MUST NOT 422); video activates BOTH classes (`video.processing_class.short_form: beta` AND `long_form: beta` — `split-video-fargate` deployed + wired on staging but NOT yet proven end-to-end per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI); the first customer-path soak has not completed, the 4GB+ speed-up is unmeasured, and the long-form fan-out is flag-gated dark). The `image_gif` and `document_pdf` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
|
|
7595
7595
|
- passthrough: Inert lossless source operation. A single-input source job whose SOLE operation is `passthrough` emits its source bytes UNCHANGED — no compression, no Lambda. The API self-completes the job at publish (terminal output = the upload `{bucket, key}` unchanged). Its purpose is to feed an uploaded file into a multi-input operation LOSSLESSLY: because `JobInputV2.source` is narrowed to exclude upload-direct, an upload that must enter a `merge` / `archive` / `image_watermark` op enters via a `passthrough` source job referenced downstream by `{type: job_output, from: <id>}` — preserving billing / DAG / lineage. Distinct from `operations: []` (which keeps its implicit-compress meaning on a single-input upload job); `passthrough` is the EXPLICIT lossless path via the "non-empty `operations[]` without `compress` = compression opt-out" rule. Media-agnostic; no options. `availability: beta` — activated (the inputs[]-narrowing + passthrough self-complete mechanism is deployed API-side); workflow-create accepts `passthrough` source jobs and MUST NOT return `feature_not_available`. **Never published to SNS** — deliberately absent from the AsyncAPI routing enums (API self-completes; no `ops-passthrough` queue). Per ticket [`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta flip).
|
|
7596
7596
|
|
|
7597
|
+
- transform: Geometric/orientation transform — v1 = rotate (0/90/180/270) + flip (none/horizontal/vertical/both), ADR-0026. Single-input; `produces: same_as_input` (geometry preserves format/container). Chainable (NOT sole_op); canonical single-job chain order is `transform → convert → compress → thumbnail` (geometry before encode/derive so downstream width/height/fit refer to the final frame). Media groups: image (still jpeg/png/webp + animated `image_gif`), video (mp4/webm), document (PDF page-rotate only — no flip); audio not supported. ALL groups `availability: planned` (epic `fhiWebI0`) — workflow-create returns `feature_not_available` (422) until per-media Lambdas ship. A no-op transform (`rotate: 0` + `flip: none`) is rejected as `invalid_options`. The public operation type is `transform`; the API resolves an internal per-media SNS routing sub-type (`transform_image` / `transform_video` / `transform_document`) — those sub-types are routing-only and are NOT part of this public enum. Per ADR-0026.
|
|
7598
|
+
|
|
7597
7599
|
Both the legacy `thumbnail` value and the four sub-type values
|
|
7598
7600
|
are valid routing targets today during the thumbnail migration
|
|
7599
7601
|
window. See `asyncapi/events.yaml` for the full routing
|
|
@@ -7622,6 +7624,7 @@ components:
|
|
|
7622
7624
|
- video_watermark
|
|
7623
7625
|
- video_text_watermark
|
|
7624
7626
|
- split
|
|
7627
|
+
- transform
|
|
7625
7628
|
- passthrough
|
|
7626
7629
|
|
|
7627
7630
|
OperationInputModel:
|
|
@@ -7631,7 +7634,7 @@ components:
|
|
|
7631
7634
|
- single: One input file (compress, thumbnail, thumbnail_image,
|
|
7632
7635
|
thumbnail_video, thumbnail_document, thumbnail_office,
|
|
7633
7636
|
text_watermark, convert, audio_watermark,
|
|
7634
|
-
video_text_watermark, split, passthrough)
|
|
7637
|
+
video_text_watermark, split, transform, passthrough)
|
|
7635
7638
|
- multi: Multiple input files (merge, archive, image_watermark, custom_luma, audio_overlay, audio_to_video, video_watermark). audio_to_video is the first role-based op with an OPTIONAL role (min_inputs=1, max_inputs=2 — see `per_role_cardinality`); video_watermark is a fixed base+overlay pair (exactly one each, min_inputs=max_inputs=2) on video bases; image_watermark widened to base + 1–8 overlays (min 2 / max 9) with the multi_overlay_stack flip (2026-07-01).
|
|
7636
7639
|
enum:
|
|
7637
7640
|
- single
|
|
@@ -9408,12 +9411,18 @@ components:
|
|
|
9408
9411
|
description: |
|
|
9409
9412
|
The canonical pipeline spine (single mutated stream), as an
|
|
9410
9413
|
ordered list of `chain_group` stage names. The known image/AV
|
|
9411
|
-
spine is `
|
|
9412
|
-
→ `
|
|
9413
|
-
`derived` (fan-out:
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9414
|
+
spine is `transform` (geometry: rotate/flip) → `merge` (fan-in)
|
|
9415
|
+
→ `image_watermark` → `text_watermark` → `audio` → `encode`
|
|
9416
|
+
(terminal: convert+compress folded) → `derived` (fan-out:
|
|
9417
|
+
thumbnail/split). Informational — read per-op `chain_group` /
|
|
9418
|
+
`chain_position` for placement. The `transform` geometry stage
|
|
9419
|
+
(ADR-0026) runs FIRST — orientation before resize/encode so
|
|
9420
|
+
downstream width/height/fit refer to the final frame; its
|
|
9421
|
+
canonical single-job order is `transform → convert → compress →
|
|
9422
|
+
thumbnail`. It is `availability: planned` (epic `fhiWebI0`) — no
|
|
9423
|
+
transform nodes are produced until it activates. (Image
|
|
9424
|
+
resize/fit still live inside the `thumbnail` node — that is a
|
|
9425
|
+
separate stage from the `transform` op.)
|
|
9417
9426
|
|
|
9418
9427
|
**Open string, NOT a fixed enum** (mirrors
|
|
9419
9428
|
`ProcessingPlanJob.execution_pool`): the canonical model still
|
|
@@ -9493,6 +9502,9 @@ components:
|
|
|
9493
9502
|
`additionalProperties: false`; consumers MUST treat unknown
|
|
9494
9503
|
stage names as forward-compatible. The watermark stages are
|
|
9495
9504
|
**media-agnostic overlay stages**, not image-only. Known stages:
|
|
9505
|
+
- `transform`: geometry stage (rotate/flip) — covers the
|
|
9506
|
+
`transform` operation type. Runs first in the spine (ADR-0026);
|
|
9507
|
+
`availability: planned` until activation.
|
|
9496
9508
|
- `merge`: fan-in.
|
|
9497
9509
|
- `image_watermark`: raster/image-overlay watermark stage —
|
|
9498
9510
|
covers the `image_watermark` AND `video_watermark` operation
|
|
@@ -10077,6 +10089,22 @@ components:
|
|
|
10077
10089
|
commit, paused/resumed state change, etc.). The API
|
|
10078
10090
|
always emits this field; spec catches up to behaviour
|
|
10079
10091
|
shipping since `WorkflowController.php:178-179`.
|
|
10092
|
+
completed_at:
|
|
10093
|
+
type: string
|
|
10094
|
+
format: date-time
|
|
10095
|
+
description: |
|
|
10096
|
+
ISO-8601 timestamp at which the workflow reached a TERMINAL
|
|
10097
|
+
status (`completed` / `failed` / `partially_failed` /
|
|
10098
|
+
`cancelled` / `expired`) — the authoritative completion instant.
|
|
10099
|
+
Unlike `updated_at`, this does NOT move once set: a later
|
|
10100
|
+
credit-settlement (or any other post-terminal row update) bumps
|
|
10101
|
+
`updated_at` but never `completed_at`, so `completed_at` is the
|
|
10102
|
+
reliable basis for a run's wall-clock duration
|
|
10103
|
+
(`completed_at − created_at`).
|
|
10104
|
+
OPTIONAL (additive) — absent while the workflow is non-terminal
|
|
10105
|
+
(`pending` / `in_progress` / `paused_insufficient_credits`) and
|
|
10106
|
+
for legacy rows with no recorded completion instant. Per ticket
|
|
10107
|
+
[`gpXrJwuI`](https://trello.com/c/gpXrJwuI).
|
|
10080
10108
|
jobs:
|
|
10081
10109
|
type: array
|
|
10082
10110
|
items:
|
|
@@ -10248,6 +10276,19 @@ components:
|
|
|
10248
10276
|
type: string
|
|
10249
10277
|
format: date-time
|
|
10250
10278
|
description: ISO-8601 workflow-creation timestamp (the list sort key, DESC).
|
|
10279
|
+
completed_at:
|
|
10280
|
+
type: string
|
|
10281
|
+
format: date-time
|
|
10282
|
+
description: |
|
|
10283
|
+
ISO-8601 timestamp at which the workflow reached a TERMINAL
|
|
10284
|
+
status — the authoritative completion instant, stable once set (a
|
|
10285
|
+
later credit-settlement update never moves it, unlike a plain
|
|
10286
|
+
last-updated timestamp). The list row derives a run's wall-clock
|
|
10287
|
+
duration from `completed_at − created_at`.
|
|
10288
|
+
OPTIONAL (additive) — absent while the workflow is non-terminal
|
|
10289
|
+
and for legacy rows with no recorded completion instant. Mirrors
|
|
10290
|
+
`WorkflowStatusResponse.completed_at`. Per ticket
|
|
10291
|
+
[`gpXrJwuI`](https://trello.com/c/gpXrJwuI).
|
|
10251
10292
|
jobs:
|
|
10252
10293
|
type: array
|
|
10253
10294
|
items:
|
|
@@ -10806,6 +10847,29 @@ components:
|
|
|
10806
10847
|
$ref: '#/components/schemas/JobDownload'
|
|
10807
10848
|
bundle:
|
|
10808
10849
|
$ref: '#/components/schemas/DownloadBundle'
|
|
10850
|
+
retention_expires_at:
|
|
10851
|
+
type: string
|
|
10852
|
+
format: date-time
|
|
10853
|
+
description: |
|
|
10854
|
+
When this workflow's downloadable outputs are purged and the
|
|
10855
|
+
download links stop working (RFC 3339 / ISO-8601). Server-computed
|
|
10856
|
+
as the workflow's `created_at` plus the account's effective
|
|
10857
|
+
**download-retention window** (per-tier: free 7 days / paid 30 days
|
|
10858
|
+
/ enterprise custom — ticket
|
|
10859
|
+
[`G58ei6Z9`](https://trello.com/c/G58ei6Z9)). Lets consumers render
|
|
10860
|
+
a proactive "Downloads available until <date>" affordance without
|
|
10861
|
+
waiting for the list to empty.
|
|
10862
|
+
|
|
10863
|
+
**This is the retention (data-lifecycle) expiry, distinct from
|
|
10864
|
+
`bundle.expires_at`** — that field is the short-lived expiry of a
|
|
10865
|
+
single pre-signed bundle URL, whereas this is when the underlying
|
|
10866
|
+
deliverables themselves are removed.
|
|
10867
|
+
|
|
10868
|
+
Optional. **Absent** when not applicable — no retention window
|
|
10869
|
+
configured, or the workflow's outputs are not yet retained. The
|
|
10870
|
+
enterprise window is per-account (not a public constant), so this
|
|
10871
|
+
expiry cannot be derived client-side and is only available when the
|
|
10872
|
+
server emits it; consumers read it if present.
|
|
10809
10873
|
|
|
10810
10874
|
DownloadBundle:
|
|
10811
10875
|
type: object
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
{
|
|
105
105
|
"availability": "stable",
|
|
106
106
|
"constraint_id": "compress.video.target_size.container",
|
|
107
|
-
"message": "target_size encoding is mp4/MOV-only; not yet available for {
|
|
107
|
+
"message": "target_size encoding is mp4/MOV-only; not yet available for {output_container} output. Use crf.",
|
|
108
108
|
"when": {
|
|
109
109
|
"all": [
|
|
110
110
|
{
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"field": "compress.encoding_mode"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
|
-
"field": "
|
|
115
|
+
"field": "output_container",
|
|
116
116
|
"in": [
|
|
117
117
|
"webm",
|
|
118
118
|
"ogg"
|
|
@@ -214,6 +214,114 @@
|
|
|
214
214
|
]
|
|
215
215
|
},
|
|
216
216
|
"wire_code": "invalid_options"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"availability": "stable",
|
|
220
|
+
"constraint_id": "compress.video.codec_container.webm",
|
|
221
|
+
"message": "WebM output supports the vp9 or av1 codec; {compress.codec} is incompatible.",
|
|
222
|
+
"when": {
|
|
223
|
+
"all": [
|
|
224
|
+
{
|
|
225
|
+
"field": "output_container",
|
|
226
|
+
"in": [
|
|
227
|
+
"webm"
|
|
228
|
+
]
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"field": "compress.codec",
|
|
232
|
+
"isSet": true
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"field": "compress.codec",
|
|
236
|
+
"in": [
|
|
237
|
+
"h264",
|
|
238
|
+
"h265"
|
|
239
|
+
]
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
"wire_code": "invalid_options"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"availability": "stable",
|
|
247
|
+
"constraint_id": "compress.video.codec_container.mp4_mov",
|
|
248
|
+
"message": "MP4/MOV output supports the h264 or h265 codec; {compress.codec} is incompatible.",
|
|
249
|
+
"when": {
|
|
250
|
+
"all": [
|
|
251
|
+
{
|
|
252
|
+
"field": "output_container",
|
|
253
|
+
"in": [
|
|
254
|
+
"mp4",
|
|
255
|
+
"mov"
|
|
256
|
+
]
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"field": "compress.codec",
|
|
260
|
+
"isSet": true
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"field": "compress.codec",
|
|
264
|
+
"in": [
|
|
265
|
+
"vp9",
|
|
266
|
+
"av1"
|
|
267
|
+
]
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
"wire_code": "invalid_options"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"availability": "stable",
|
|
275
|
+
"constraint_id": "compress.video.audio_codec_container.webm",
|
|
276
|
+
"message": "WebM output supports opus or vorbis audio; {compress.audio_codec} is incompatible.",
|
|
277
|
+
"when": {
|
|
278
|
+
"all": [
|
|
279
|
+
{
|
|
280
|
+
"field": "output_container",
|
|
281
|
+
"in": [
|
|
282
|
+
"webm"
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"field": "compress.audio_codec",
|
|
287
|
+
"isSet": true
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"field": "compress.audio_codec",
|
|
291
|
+
"in": [
|
|
292
|
+
"aac"
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
"wire_code": "invalid_options"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"availability": "stable",
|
|
301
|
+
"constraint_id": "compress.video.audio_codec_container.mp4_mov",
|
|
302
|
+
"message": "MP4/MOV output supports aac or opus audio; {compress.audio_codec} is incompatible.",
|
|
303
|
+
"when": {
|
|
304
|
+
"all": [
|
|
305
|
+
{
|
|
306
|
+
"field": "output_container",
|
|
307
|
+
"in": [
|
|
308
|
+
"mp4",
|
|
309
|
+
"mov"
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"field": "compress.audio_codec",
|
|
314
|
+
"isSet": true
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"field": "compress.audio_codec",
|
|
318
|
+
"in": [
|
|
319
|
+
"vorbis"
|
|
320
|
+
]
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
"wire_code": "invalid_options"
|
|
217
325
|
}
|
|
218
326
|
],
|
|
219
327
|
"produces": {
|
|
@@ -454,6 +562,21 @@
|
|
|
454
562
|
},
|
|
455
563
|
"sole_op": false
|
|
456
564
|
},
|
|
565
|
+
"transform": {
|
|
566
|
+
"accepts": [
|
|
567
|
+
"document",
|
|
568
|
+
"image",
|
|
569
|
+
"video"
|
|
570
|
+
],
|
|
571
|
+
"availability": "planned",
|
|
572
|
+
"input": {
|
|
573
|
+
"model": "single"
|
|
574
|
+
},
|
|
575
|
+
"produces": {
|
|
576
|
+
"same_as_input": true
|
|
577
|
+
},
|
|
578
|
+
"sole_op": false
|
|
579
|
+
},
|
|
457
580
|
"video_text_watermark": {
|
|
458
581
|
"accepts": [
|
|
459
582
|
"video"
|
|
@@ -565,5 +688,5 @@
|
|
|
565
688
|
"isAnimated": "maybe"
|
|
566
689
|
}
|
|
567
690
|
},
|
|
568
|
-
"schema_version": "2.
|
|
691
|
+
"schema_version": "2.158.0"
|
|
569
692
|
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
schema_version: "2.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: transform
|
|
5
|
+
availability: planned
|
|
6
|
+
description: |
|
|
7
|
+
Apply a geometric / orientation transform to a media asset. **v1 supports
|
|
8
|
+
rotate + flip only** (orientation transforms) — it does NOT do crop, scale,
|
|
9
|
+
skew, or colour transforms. The name is deliberately `transform` (not
|
|
10
|
+
`orient`) to leave room for a future `crop` on the same op; do not read the
|
|
11
|
+
name as advertising arbitrary affine transforms. Full design + normative
|
|
12
|
+
order-of-operations, routing topology, chain order, media gating, and
|
|
13
|
+
billing model: ADR-0026.
|
|
14
|
+
|
|
15
|
+
**Params (per media group):**
|
|
16
|
+
- `rotate` — `0 | 90 | 180 | 270` degrees clockwise (default `0`).
|
|
17
|
+
- `flip` — `none | horizontal | vertical | both` mirror (default `none`).
|
|
18
|
+
`horizontal` = left↔right (the selfie/webcam mirror-correction),
|
|
19
|
+
`vertical` = top↔bottom, `both` = both axes.
|
|
20
|
+
|
|
21
|
+
**Normative order-of-operations (v1 has NO arbitrary sequence).** For a
|
|
22
|
+
single `transform` op the worker applies, in this fixed order:
|
|
23
|
+
1. (images) normalize display orientation from EXIF,
|
|
24
|
+
2. apply `rotate`,
|
|
25
|
+
3. apply `flip` in the FINAL (post-rotate) display axes,
|
|
26
|
+
4. (images) write pixels with the orientation tag reset/removed.
|
|
27
|
+
So `flip: horizontal` always means left↔right in the *visible result*, even
|
|
28
|
+
after a 90/270 rotate. See ADR-0026 §Order-of-operations.
|
|
29
|
+
|
|
30
|
+
**auto_orient coexistence.** `transform` reads the image honouring EXIF
|
|
31
|
+
orientation, applies rotate/flip, and emits normalized-orientation pixels —
|
|
32
|
+
so a downstream `compress`/`convert` `auto_orient` is a no-op. Raw
|
|
33
|
+
stored-pixel rotation that ignores EXIF is out of scope for v1.
|
|
34
|
+
|
|
35
|
+
**No-op is rejected at create.** A `transform` with `rotate: 0` AND
|
|
36
|
+
`flip: none` (for documents: `rotate: 0`) does nothing, so the API rejects
|
|
37
|
+
it as `invalid_options` at create — there is no billed, worker-dispatched
|
|
38
|
+
no-op (mirrors the API facade gate that rejects inert option combos). At
|
|
39
|
+
least one of `rotate`/`flip` must be non-default.
|
|
40
|
+
|
|
41
|
+
**Media scope (v1).** IMAGE **still-raster** (jpeg/png/webp) and animated
|
|
42
|
+
GIF; VIDEO (mp4/webm); DOCUMENT is PDF-rotate ONLY (no flip — the
|
|
43
|
+
`document_pdf` group offers `rotate` alone). AUDIO is intentionally absent
|
|
44
|
+
(no spatial geometry). SVG, HEIC/AVIF, and non-PDF documents
|
|
45
|
+
(Office/ODF/EPUB) are out of scope for v1 and are not advertised.
|
|
46
|
+
**Animated PNG (APNG) and animated WebP** are NOT covered by the
|
|
47
|
+
still-raster `image` group's activation proof — like animated GIF, a
|
|
48
|
+
pixel-baking geometry op would drop frames / animation metadata. Before the
|
|
49
|
+
`image` group flips stable the worker MUST either reject animated PNG/WebP
|
|
50
|
+
variants at probe or transform ALL frames + preserve animation metadata
|
|
51
|
+
(same bar as the `image_gif` group). Everything ships `availability:
|
|
52
|
+
planned` first and flips per media on worker capability-source proof
|
|
53
|
+
(ADR-0006) — each activation co-updates schema availability + AsyncAPI
|
|
54
|
+
routing + API OperationType/chain/pricing + the billing weight row together
|
|
55
|
+
(ADR-0026 §Rollout).
|
|
56
|
+
|
|
57
|
+
**Routing (thumbnail precedent).** The payload `operation_type` stays the
|
|
58
|
+
base value `transform`; the API publisher resolves the effective input MIME
|
|
59
|
+
to an SNS `operation_type` routing-attribute sub-type
|
|
60
|
+
(`transform_image` / `transform_video` / `transform_document`). Those
|
|
61
|
+
sub-types are ROUTING ATTRIBUTES ONLY — never persisted or public operation
|
|
62
|
+
types (they are absent from the OperationType payload enum). The
|
|
63
|
+
`document_pdf` group routes under `transform_document` (media-family level,
|
|
64
|
+
even though v1 is PDF-only). See ADR-0026 §Routing + asyncapi/events.yaml.
|
|
65
|
+
default: false
|
|
66
|
+
input_model: single
|
|
67
|
+
# Chains normally (ADR-0025: absent ≡ false; set explicitly to document intent).
|
|
68
|
+
# Canonical single-job order is transform -> convert -> compress -> thumbnail
|
|
69
|
+
# (ADR-0026): orientation runs before resize/encode so downstream width/height/fit
|
|
70
|
+
# refer to the final visual frame, and rotate never triggers a second video encode.
|
|
71
|
+
sole_op: false
|
|
72
|
+
|
|
73
|
+
mime_groups:
|
|
74
|
+
image:
|
|
75
|
+
# Still-raster first. availability:planned until the image worker
|
|
76
|
+
# (Rust `image` crate: fliph/flipv/rotate90/180/270 — already vendored for
|
|
77
|
+
# resize/thumbnail) is capability-proven, then flips stable per ADR-0006.
|
|
78
|
+
# STILL jpeg/png/webp only: animated PNG (APNG) + animated WebP are NOT
|
|
79
|
+
# covered by this group's still-raster proof (a pixel-bake drops frames /
|
|
80
|
+
# animation metadata) — they must be rejected at probe OR handled with
|
|
81
|
+
# all-frames + animation-metadata preservation (GIF bar) before the flip.
|
|
82
|
+
availability: planned
|
|
83
|
+
mimes:
|
|
84
|
+
- image/jpeg
|
|
85
|
+
- image/png
|
|
86
|
+
- image/webp
|
|
87
|
+
options:
|
|
88
|
+
rotate:
|
|
89
|
+
type: enum
|
|
90
|
+
value_type: integer
|
|
91
|
+
values: [0, 90, 180, 270]
|
|
92
|
+
default: 0
|
|
93
|
+
description: >-
|
|
94
|
+
Clockwise rotation in degrees. Applied BEFORE `flip` (see the
|
|
95
|
+
operation-level normative order-of-operations).
|
|
96
|
+
flip:
|
|
97
|
+
type: enum
|
|
98
|
+
values: [none, horizontal, vertical, both]
|
|
99
|
+
default: none
|
|
100
|
+
description: >-
|
|
101
|
+
Mirror the image. `horizontal` = left↔right, `vertical` = top↔bottom,
|
|
102
|
+
`both` = both axes. Applied AFTER `rotate`, in the final (post-rotate)
|
|
103
|
+
display axes, so `horizontal` always means left↔right in the visible
|
|
104
|
+
result.
|
|
105
|
+
|
|
106
|
+
image_gif:
|
|
107
|
+
# Animated GIF as a parallel planned group (mirrors image_watermark's
|
|
108
|
+
# image_gif). Only honest once the worker transforms ALL frames AND
|
|
109
|
+
# preserves animation metadata (frame delays, loop count, disposal);
|
|
110
|
+
# dispatch returns feature_not_available (422) until that ships. Do NOT
|
|
111
|
+
# flip stable on the still-raster proof alone.
|
|
112
|
+
availability: planned
|
|
113
|
+
mimes:
|
|
114
|
+
- image/gif
|
|
115
|
+
options:
|
|
116
|
+
rotate:
|
|
117
|
+
type: enum
|
|
118
|
+
value_type: integer
|
|
119
|
+
values: [0, 90, 180, 270]
|
|
120
|
+
default: 0
|
|
121
|
+
description: "Clockwise rotation in degrees (all frames). Applied before `flip`."
|
|
122
|
+
flip:
|
|
123
|
+
type: enum
|
|
124
|
+
values: [none, horizontal, vertical, both]
|
|
125
|
+
default: none
|
|
126
|
+
description: "Mirror all frames. Applied after `rotate`, in final display axes."
|
|
127
|
+
|
|
128
|
+
video:
|
|
129
|
+
# mp4/webm first (the FFmpeg containers we already decode AND encode).
|
|
130
|
+
# hflip/vflip + transpose bake into pixels → a real re-encode (no
|
|
131
|
+
# stream-copy shortcut), so it costs compute like any transcode (billing
|
|
132
|
+
# weight 10, ADR-0026). quicktime/mov and other containers follow the same
|
|
133
|
+
# decode-AND-encode proof discipline and are not advertised in v1.
|
|
134
|
+
mimes:
|
|
135
|
+
- video/mp4
|
|
136
|
+
- video/webm
|
|
137
|
+
processing_class:
|
|
138
|
+
# F8 long-form video tier (ADR-0011). Both classes ship planned; short_form
|
|
139
|
+
# is first-in-line to flip on the FFmpeg worker proof, long_form stays
|
|
140
|
+
# planned until the Fargate re-encode route is real and costed (ADR-0026).
|
|
141
|
+
short_form:
|
|
142
|
+
availability: planned
|
|
143
|
+
constraints:
|
|
144
|
+
max_input_duration: "PT5M"
|
|
145
|
+
max_input_size_bytes: 524288000
|
|
146
|
+
max_output_size_bytes: 524288000
|
|
147
|
+
long_form:
|
|
148
|
+
availability: planned
|
|
149
|
+
required_tier: pro
|
|
150
|
+
constraints: # baseline = Pro
|
|
151
|
+
max_input_duration: "PT12H"
|
|
152
|
+
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
153
|
+
max_output_size_bytes: 5000000000
|
|
154
|
+
per_tier_constraints:
|
|
155
|
+
max:
|
|
156
|
+
max_input_size_bytes: 50000000000 # 50 GB (Max self-serve band)
|
|
157
|
+
max_output_size_bytes: 50000000000
|
|
158
|
+
enterprise:
|
|
159
|
+
max_input_size_bytes: 120000000000 # 120 GB (Enterprise enforced ceiling)
|
|
160
|
+
max_output_size_bytes: 120000000000
|
|
161
|
+
options:
|
|
162
|
+
rotate:
|
|
163
|
+
type: enum
|
|
164
|
+
value_type: integer
|
|
165
|
+
values: [0, 90, 180, 270]
|
|
166
|
+
default: 0
|
|
167
|
+
description: >-
|
|
168
|
+
Clockwise rotation in degrees (FFmpeg `transpose`). Applied BEFORE
|
|
169
|
+
`flip`. Re-encodes the video.
|
|
170
|
+
flip:
|
|
171
|
+
type: enum
|
|
172
|
+
values: [none, horizontal, vertical, both]
|
|
173
|
+
default: none
|
|
174
|
+
description: >-
|
|
175
|
+
Mirror the video (FFmpeg `hflip` / `vflip`). `horizontal` = left↔right,
|
|
176
|
+
`vertical` = top↔bottom, `both` = both. Applied AFTER `rotate`, in the
|
|
177
|
+
final display axes. Re-encodes the video.
|
|
178
|
+
|
|
179
|
+
document_pdf:
|
|
180
|
+
# PDF-rotate ONLY (page rotation for scanned/phone PDFs). NO flip — mirror
|
|
181
|
+
# is not a clean promise for documents. Office/ODF/EPUB are NOT covered
|
|
182
|
+
# (page rotation there is not same_as_input). availability:planned,
|
|
183
|
+
# flips beta/stable separately on worker proof; routes under the
|
|
184
|
+
# media-family attribute transform_document (ADR-0026 §Routing).
|
|
185
|
+
availability: planned
|
|
186
|
+
mimes:
|
|
187
|
+
- application/pdf
|
|
188
|
+
options:
|
|
189
|
+
rotate:
|
|
190
|
+
type: enum
|
|
191
|
+
value_type: integer
|
|
192
|
+
values: [0, 90, 180, 270]
|
|
193
|
+
default: 0
|
|
194
|
+
description: >-
|
|
195
|
+
Clockwise page rotation in degrees, applied to the rendered page
|
|
196
|
+
orientation. `flip` is NOT offered for documents in v1.
|