@giveitsmaller/contracts 0.2.3 → 0.3.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/asyncapi/events.yaml +1777 -172
- package/availability/availability.json +2403 -0
- package/dist/asyncapi/AnonymousSchema_13.d.ts +6 -0
- package/dist/asyncapi/AnonymousSchema_13.js +7 -0
- package/dist/asyncapi/AnonymousSchema_152.d.ts +5 -0
- package/dist/asyncapi/AnonymousSchema_152.js +6 -0
- package/dist/asyncapi/Failure.d.ts +25 -0
- package/dist/asyncapi/Failure.js +1 -0
- package/dist/asyncapi/JobInputRole.d.ts +6 -0
- package/dist/asyncapi/JobInputRole.js +7 -0
- package/dist/asyncapi/MergeOutputType.d.ts +1 -3
- package/dist/asyncapi/MergeOutputType.js +0 -2
- package/dist/asyncapi/MultiOutputCompletion.d.ts +25 -0
- package/dist/asyncapi/MultiOutputCompletion.js +1 -0
- package/dist/asyncapi/NotificationsOperationsQueue.d.ts +4 -2
- package/dist/asyncapi/OperationMetrics.d.ts +3 -0
- package/dist/asyncapi/OperationProgress.d.ts +2 -0
- package/dist/asyncapi/OperationResult.d.ts +4 -19
- package/dist/asyncapi/OperationType.d.ts +6 -6
- package/dist/asyncapi/OperationType.js +5 -5
- package/dist/asyncapi/PageIndexed.d.ts +8 -0
- package/dist/asyncapi/PageIndexed.js +1 -0
- package/dist/asyncapi/PositionIndexed.d.ts +8 -0
- package/dist/asyncapi/PositionIndexed.js +1 -0
- package/dist/asyncapi/ProgressStatus.d.ts +3 -0
- package/dist/asyncapi/ProgressStatus.js +3 -0
- package/dist/asyncapi/ReEncodeDecision.d.ts +5 -0
- package/dist/asyncapi/ReEncodeDecision.js +6 -0
- package/dist/asyncapi/SingleOutputCompletion.d.ts +25 -0
- package/dist/asyncapi/SingleOutputCompletion.js +1 -0
- package/dist/asyncapi/SourceEntry.d.ts +2 -1
- package/dist/asyncapi/Unindexed.d.ts +8 -0
- package/dist/asyncapi/Unindexed.js +1 -0
- package/dist/asyncapi/UploadProbeCompletion.d.ts +16 -0
- package/dist/asyncapi/UploadProbeCompletion.js +1 -0
- package/dist/asyncapi/UploadProbeMediaMetadata.d.ts +18 -0
- package/dist/asyncapi/UploadProbeMediaMetadata.js +1 -0
- package/dist/asyncapi/UploadProbeProcessingClass.d.ts +6 -0
- package/dist/asyncapi/UploadProbeProcessingClass.js +7 -0
- package/dist/asyncapi/UploadProbeRequest.d.ts +10 -0
- package/dist/asyncapi/UploadProbeRequest.js +1 -0
- package/dist/asyncapi/UploadProbeStatus.d.ts +7 -0
- package/dist/asyncapi/UploadProbeStatus.js +8 -0
- package/dist/asyncapi/index.d.ts +13 -0
- package/dist/asyncapi/index.js +4 -0
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +64 -0
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +53 -0
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +80 -0
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +64 -0
- package/dist/openapi/models/AuthErrorResponse.d.ts +116 -0
- package/dist/openapi/models/AuthErrorResponse.js +66 -0
- package/dist/openapi/models/AuthErrorType.d.ts +73 -0
- package/dist/openapi/models/AuthErrorType.js +91 -0
- package/dist/openapi/models/AvailabilityValue.d.ts +43 -0
- package/dist/openapi/models/AvailabilityValue.js +61 -0
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +157 -0
- package/dist/openapi/models/BalanceExhaustedResponse.js +86 -0
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +38 -0
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +43 -0
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/ConnectionSource.d.ts +64 -0
- package/dist/openapi/models/ConnectionSource.js +57 -0
- package/dist/openapi/models/ContactRequest.d.ts +2 -2
- package/dist/openapi/models/ContactRequest.js +2 -2
- package/dist/openapi/models/ContactSubject.d.ts +2 -2
- package/dist/openapi/models/ContactSubject.js +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +24 -0
- package/dist/openapi/models/CreateExternalImport403Response.js +58 -0
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +23 -0
- package/dist/openapi/models/CreateWorkflow422Response.js +51 -0
- package/dist/openapi/models/CreditTransaction.d.ts +186 -0
- package/dist/openapi/models/CreditTransaction.js +100 -0
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +46 -0
- package/dist/openapi/models/CreditTransactionSourceBucket.js +64 -0
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +84 -0
- package/dist/openapi/models/CreditsBalanceResponse.js +68 -0
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +54 -0
- package/dist/openapi/models/CreditsUsageResponse.d.ts +51 -0
- package/dist/openapi/models/CreditsUsageResponse.js +56 -0
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +54 -0
- package/dist/openapi/models/Delivery.d.ts +98 -0
- package/dist/openapi/models/Delivery.js +65 -0
- package/dist/openapi/models/DeliveryOutputRef.d.ts +44 -0
- package/dist/openapi/models/DeliveryOutputRef.js +45 -0
- package/dist/openapi/models/DeliveryPlan.d.ts +77 -0
- package/dist/openapi/models/DeliveryPlan.js +72 -0
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +53 -0
- package/dist/openapi/models/DeliveryPlanOutput.js +52 -0
- package/dist/openapi/models/DeliveryPlanReason.d.ts +35 -0
- package/dist/openapi/models/DeliveryPlanReason.js +53 -0
- package/dist/openapi/models/DeliverySelection.d.ts +62 -0
- package/dist/openapi/models/DeliverySelection.js +54 -0
- package/dist/openapi/models/ErrorEnvelope.d.ts +83 -5
- package/dist/openapi/models/ErrorEnvelope.js +10 -2
- package/dist/openapi/models/EstimateQuality.d.ts +34 -0
- package/dist/openapi/models/EstimateQuality.js +52 -0
- package/dist/openapi/models/EstimateRange.d.ts +48 -0
- package/dist/openapi/models/EstimateRange.js +51 -0
- package/dist/openapi/models/ExternalDestination.d.ts +41 -0
- package/dist/openapi/models/ExternalDestination.js +47 -0
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +49 -0
- package/dist/openapi/models/ExternalImportCreatedResponse.js +51 -0
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +54 -0
- package/dist/openapi/models/ExternalImportRequest.d.ts +92 -0
- package/dist/openapi/models/ExternalImportRequest.js +61 -0
- package/dist/openapi/models/ExternalImportToken.d.ts +51 -0
- package/dist/openapi/models/ExternalImportToken.js +53 -0
- package/dist/openapi/models/ExternalSource.d.ts +31 -0
- package/dist/openapi/models/ExternalSource.js +47 -0
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +140 -0
- package/dist/openapi/models/FeatureNotAvailableResponse.js +76 -0
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +135 -0
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +76 -0
- package/dist/openapi/models/FeatureViolation.d.ts +108 -0
- package/dist/openapi/models/FeatureViolation.js +63 -0
- package/dist/openapi/models/JobDefinition.d.ts +125 -14
- package/dist/openapi/models/JobDefinition.js +25 -4
- package/dist/openapi/models/JobDownload.d.ts +2 -2
- package/dist/openapi/models/JobDownload.js +2 -2
- package/dist/openapi/models/JobInputV2.d.ts +89 -0
- package/dist/openapi/models/JobInputV2.js +56 -0
- package/dist/openapi/models/JobOutputSource.d.ts +57 -0
- package/dist/openapi/models/JobOutputSource.js +55 -0
- package/dist/openapi/models/JobResponse.d.ts +2 -2
- package/dist/openapi/models/JobResponse.js +2 -2
- package/dist/openapi/models/JobStatus.d.ts +17 -8
- package/dist/openapi/models/JobStatus.js +17 -8
- package/dist/openapi/models/JobType.d.ts +2 -2
- package/dist/openapi/models/JobType.js +2 -2
- package/dist/openapi/models/LivenessResponse.d.ts +2 -2
- package/dist/openapi/models/LivenessResponse.js +2 -2
- package/dist/openapi/models/LoginUser200Response.d.ts +46 -0
- package/dist/openapi/models/LoginUser200Response.js +54 -0
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +33 -0
- package/dist/openapi/models/LoginUser200ResponseData.js +44 -0
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +50 -0
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +51 -0
- package/dist/openapi/models/LoginUserRequest.d.ts +38 -0
- package/dist/openapi/models/LoginUserRequest.js +47 -0
- package/dist/openapi/models/LogoutUser200Response.d.ts +50 -0
- package/dist/openapi/models/LogoutUser200Response.js +53 -0
- package/dist/openapi/models/MetadataResponse.d.ts +13 -2
- package/dist/openapi/models/MetadataResponse.js +6 -2
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
- package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExif.js +3 -3
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MimeGroupSchema.d.ts +46 -2
- package/dist/openapi/models/MimeGroupSchema.js +11 -2
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +3 -3
- package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +7 -4
- package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +56 -0
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +45 -0
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +19 -3
- package/dist/openapi/models/MultipartInitiateResponse.js +7 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/OperationDefinition.d.ts +2 -2
- package/dist/openapi/models/OperationDefinition.js +2 -2
- package/dist/openapi/models/OperationDownload.d.ts +2 -2
- package/dist/openapi/models/OperationDownload.js +2 -2
- package/dist/openapi/models/OperationInputModel.d.ts +4 -4
- package/dist/openapi/models/OperationInputModel.js +4 -4
- package/dist/openapi/models/OperationResponse.d.ts +2 -2
- package/dist/openapi/models/OperationResponse.js +2 -2
- package/dist/openapi/models/OperationResult.d.ts +2 -2
- package/dist/openapi/models/OperationResult.js +2 -2
- package/dist/openapi/models/OperationResultMetrics.d.ts +2 -2
- package/dist/openapi/models/OperationResultMetrics.js +2 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +52 -5
- package/dist/openapi/models/OperationSchemaDefinition.js +10 -6
- package/dist/openapi/models/OperationStatus.d.ts +2 -2
- package/dist/openapi/models/OperationStatus.js +2 -2
- package/dist/openapi/models/OperationType.d.ts +17 -5
- package/dist/openapi/models/OperationType.js +18 -6
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +70 -10
- package/dist/openapi/models/OperationsSchemaResponse.js +17 -2
- package/dist/openapi/models/OptionSchema.d.ts +42 -4
- package/dist/openapi/models/OptionSchema.js +12 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +80 -0
- package/dist/openapi/models/PerValueAvailabilityEntry.js +53 -0
- package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
- package/dist/openapi/models/PresignedUrlPart.js +3 -3
- package/dist/openapi/models/ProcessingClass.d.ts +35 -0
- package/dist/openapi/models/ProcessingClass.js +53 -0
- package/dist/openapi/models/ProcessingClassHint.d.ts +36 -0
- package/dist/openapi/models/ProcessingClassHint.js +54 -0
- package/dist/openapi/models/ProcessingClassReason.d.ts +46 -0
- package/dist/openapi/models/ProcessingClassReason.js +64 -0
- package/dist/openapi/models/ProcessingPlan.d.ts +70 -0
- package/dist/openapi/models/ProcessingPlan.js +49 -0
- package/dist/openapi/models/ProcessingPlanJob.d.ts +81 -0
- package/dist/openapi/models/ProcessingPlanJob.js +71 -0
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
- package/dist/openapi/models/ResponseEnvelope.js +2 -2
- package/dist/openapi/models/RetryResponse.d.ts +5 -5
- package/dist/openapi/models/RetryResponse.js +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
- package/dist/openapi/models/SseEventType.d.ts +2 -2
- package/dist/openapi/models/SseEventType.js +2 -2
- package/dist/openapi/models/SseJobCompletedData.d.ts +3 -3
- package/dist/openapi/models/SseJobCompletedData.js +2 -2
- package/dist/openapi/models/SseJobFailedData.d.ts +3 -3
- package/dist/openapi/models/SseJobFailedData.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +4 -4
- package/dist/openapi/models/SseOperationCompletedData.js +2 -2
- package/dist/openapi/models/SseOperationFailedData.d.ts +3 -3
- package/dist/openapi/models/SseOperationFailedData.js +2 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +61 -3
- package/dist/openapi/models/SseOperationProgressData.js +22 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +26 -4
- package/dist/openapi/models/SseWorkflowTerminalData.js +4 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +33 -0
- package/dist/openapi/models/TierRestrictionKind.js +51 -0
- package/dist/openapi/models/TierRestrictionResponse.d.ts +154 -0
- package/dist/openapi/models/TierRestrictionResponse.js +83 -0
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +70 -0
- package/dist/openapi/models/UploadConstraintsApplied.js +57 -0
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +136 -0
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +82 -0
- package/dist/openapi/models/UploadFile403Response.d.ts +27 -0
- package/dist/openapi/models/UploadFile403Response.js +47 -0
- package/dist/openapi/models/UploadFile422Response.d.ts +27 -0
- package/dist/openapi/models/UploadFile422Response.js +47 -0
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +172 -0
- package/dist/openapi/models/UploadProbeMediaMetadata.js +69 -0
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +33 -0
- package/dist/openapi/models/UploadProbeProcessingClass.js +51 -0
- package/dist/openapi/models/UploadProbeResponse.d.ts +58 -0
- package/dist/openapi/models/UploadProbeResponse.js +58 -0
- package/dist/openapi/models/UploadProbeStatus.d.ts +41 -0
- package/dist/openapi/models/UploadProbeStatus.js +59 -0
- package/dist/openapi/models/UploadResponse.d.ts +17 -3
- package/dist/openapi/models/UploadResponse.js +7 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +136 -0
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +82 -0
- package/dist/openapi/models/UploadSource.d.ts +48 -0
- package/dist/openapi/models/UploadSource.js +53 -0
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadThresholds.d.ts +119 -0
- package/dist/openapi/models/UploadThresholds.js +79 -0
- package/dist/openapi/models/UserTier.d.ts +41 -0
- package/dist/openapi/models/UserTier.js +59 -0
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +51 -4
- package/dist/openapi/models/ValidationErrorEnvelope.js +10 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +37 -4
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +6 -2
- package/dist/openapi/models/WarningType.d.ts +48 -0
- package/dist/openapi/models/WarningType.js +66 -0
- package/dist/openapi/models/WebhookOperationContext.d.ts +3 -3
- package/dist/openapi/models/WebhookOperationContext.js +2 -2
- package/dist/openapi/models/WebhookPayload.d.ts +2 -2
- package/dist/openapi/models/WebhookPayload.js +3 -3
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +36 -0
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +54 -0
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +66 -0
- package/dist/openapi/models/WorkflowCancelResponse.js +62 -0
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +54 -0
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +39 -5
- package/dist/openapi/models/WorkflowCreateRequest.js +11 -5
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +63 -2
- package/dist/openapi/models/WorkflowCreateResponse.js +21 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
- package/dist/openapi/models/WorkflowEdge.js +2 -2
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +126 -0
- package/dist/openapi/models/WorkflowExpiredResponse.js +75 -0
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +30 -0
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +48 -0
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +99 -0
- package/dist/openapi/models/WorkflowPausedDetail.js +65 -0
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +47 -0
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +45 -0
- package/dist/openapi/models/WorkflowProcessing.d.ts +36 -0
- package/dist/openapi/models/WorkflowProcessing.js +42 -0
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +55 -0
- package/dist/openapi/models/WorkflowResumeResponse.js +57 -0
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +54 -0
- package/dist/openapi/models/WorkflowSource.d.ts +40 -0
- package/dist/openapi/models/WorkflowSource.js +57 -0
- package/dist/openapi/models/WorkflowStatus.d.ts +31 -8
- package/dist/openapi/models/WorkflowStatus.js +32 -9
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +34 -2
- package/dist/openapi/models/WorkflowStatusResponse.js +13 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +3 -3
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowWarning.d.ts +119 -0
- package/dist/openapi/models/WorkflowWarning.js +63 -0
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +29 -0
- package/dist/openapi/models/WorkflowWarningSeverity.js +47 -0
- package/dist/openapi/models/index.d.ts +75 -3
- package/dist/openapi/models/index.js +75 -3
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +17 -2
- package/dist/operations/archive.metadata.d.ts +2 -0
- package/dist/operations/archive.metadata.js +13 -0
- package/dist/operations/audio_overlay.d.ts +48 -0
- package/dist/operations/audio_overlay.js +19 -0
- package/dist/operations/audio_overlay.metadata.d.ts +2 -0
- package/dist/operations/audio_overlay.metadata.js +167 -0
- package/dist/operations/audio_watermark.d.ts +42 -0
- package/dist/operations/audio_watermark.js +37 -0
- package/dist/operations/audio_watermark.metadata.d.ts +2 -0
- package/dist/operations/audio_watermark.metadata.js +94 -0
- package/dist/operations/compress.metadata.d.ts +2 -0
- package/dist/operations/compress.metadata.js +205 -0
- package/dist/operations/convert.metadata.d.ts +2 -0
- package/dist/operations/convert.metadata.js +85 -0
- package/dist/operations/custom_luma.d.ts +7 -0
- package/dist/operations/custom_luma.js +2 -0
- package/dist/operations/custom_luma.metadata.d.ts +2 -0
- package/dist/operations/custom_luma.metadata.js +49 -0
- package/dist/operations/image_watermark.d.ts +54 -0
- package/dist/operations/image_watermark.js +37 -0
- package/dist/operations/image_watermark.metadata.d.ts +2 -0
- package/dist/operations/image_watermark.metadata.js +97 -0
- package/dist/operations/index.d.ts +16 -1
- package/dist/operations/index.js +16 -1
- package/dist/operations/merge.d.ts +111 -31
- package/dist/operations/merge.js +106 -20
- package/dist/operations/merge.metadata.d.ts +2 -0
- package/dist/operations/merge.metadata.js +385 -0
- package/dist/operations/metadata-types.d.ts +47 -0
- package/dist/operations/metadata-types.js +2 -0
- package/dist/operations/text_watermark.d.ts +31 -0
- package/dist/operations/text_watermark.js +22 -0
- package/dist/operations/text_watermark.metadata.d.ts +2 -0
- package/dist/operations/text_watermark.metadata.js +46 -0
- package/dist/operations/thumbnail.metadata.d.ts +2 -0
- package/dist/operations/thumbnail.metadata.js +88 -0
- package/openapi/api.yaml +5070 -449
- package/operations/schemas/audio_overlay.yaml +397 -0
- package/operations/schemas/audio_watermark.yaml +184 -0
- package/operations/schemas/compress.yaml +20 -3
- package/operations/schemas/convert.yaml +18 -3
- package/operations/schemas/custom_luma.yaml +109 -0
- package/operations/schemas/image_watermark.yaml +280 -0
- package/operations/schemas/merge.yaml +295 -66
- package/operations/schemas/text_watermark.yaml +147 -0
- package/operations/schemas/thumbnail.yaml +15 -0
- package/package.json +10 -4
- package/operations/schemas/watermark.yaml +0 -87
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
schema_version: "1.0
|
|
1
|
+
schema_version: "2.1.0"
|
|
2
2
|
|
|
3
3
|
operation:
|
|
4
4
|
type: merge
|
|
@@ -10,11 +10,13 @@ operation:
|
|
|
10
10
|
# All merge operations route to the single `ops-merge` Lambda via
|
|
11
11
|
# `operation_type=merge` on the `operations` SNS topic. The
|
|
12
12
|
# `output_type` field below is read by the merge Lambda to decide
|
|
13
|
-
# the internal encoding path (
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
13
|
+
# the internal encoding path (animated GIF, video slideshow/concat,
|
|
14
|
+
# audio concat), not to influence SNS routing. The V1 Lambda does
|
|
15
|
+
# NOT support image collage/grid or PDF concatenation — those
|
|
16
|
+
# `output_type` values are absent from the allowlist. The API
|
|
17
|
+
# publisher additionally sets `media_group` as an informational SNS
|
|
18
|
+
# attribute on non-archive operations, but it is not used as a
|
|
19
|
+
# routing filter.
|
|
18
20
|
|
|
19
21
|
mime_groups:
|
|
20
22
|
image:
|
|
@@ -28,46 +30,9 @@ operation:
|
|
|
28
30
|
options:
|
|
29
31
|
output_type:
|
|
30
32
|
type: enum
|
|
31
|
-
values: [
|
|
32
|
-
|
|
33
|
-
description: "Result format:
|
|
34
|
-
# --- Options for output_type: image ---
|
|
35
|
-
layout:
|
|
36
|
-
type: enum
|
|
37
|
-
values: [grid, horizontal, vertical]
|
|
38
|
-
default: grid
|
|
39
|
-
depends_on: { output_type: image }
|
|
40
|
-
description: "How to arrange images in the collage"
|
|
41
|
-
columns:
|
|
42
|
-
type: integer
|
|
43
|
-
min: 1
|
|
44
|
-
max: 10
|
|
45
|
-
depends_on: { output_type: image }
|
|
46
|
-
description: "Number of columns in grid layout. Omit for auto (square-ish grid based on input count)."
|
|
47
|
-
resize_mode:
|
|
48
|
-
type: enum
|
|
49
|
-
values: [fit, fill, none]
|
|
50
|
-
default: fit
|
|
51
|
-
depends_on: { output_type: image }
|
|
52
|
-
description: "How to handle images of different sizes"
|
|
53
|
-
spacing:
|
|
54
|
-
type: integer
|
|
55
|
-
min: 0
|
|
56
|
-
max: 100
|
|
57
|
-
default: 0
|
|
58
|
-
depends_on: { output_type: image }
|
|
59
|
-
description: "Pixel spacing between images"
|
|
60
|
-
background:
|
|
61
|
-
type: string
|
|
62
|
-
default: "transparent"
|
|
63
|
-
depends_on: { output_type: image }
|
|
64
|
-
description: "Background color for spacing/padding (CSS color or 'transparent')"
|
|
65
|
-
image_format:
|
|
66
|
-
type: enum
|
|
67
|
-
values: [jpeg, png, webp]
|
|
68
|
-
default: png
|
|
69
|
-
depends_on: { output_type: image }
|
|
70
|
-
description: "Output image format for the collage"
|
|
33
|
+
values: [gif, video]
|
|
34
|
+
required: true
|
|
35
|
+
description: "Result format: animated GIF or slideshow video. No default — caller must pick explicitly (image/collage and document/PDF concat are not supported by the V1 merge Lambda)."
|
|
71
36
|
# --- Options for output_type: gif ---
|
|
72
37
|
delay:
|
|
73
38
|
type: integer
|
|
@@ -93,10 +58,62 @@ operation:
|
|
|
93
58
|
description: "Seconds each image is displayed"
|
|
94
59
|
transition:
|
|
95
60
|
type: enum
|
|
96
|
-
|
|
61
|
+
# Catalog from FFmpeg 7.1.1 xfade filter (per ADR-0007). The
|
|
62
|
+
# `none` value is a sentinel meaning "no transition / hard
|
|
63
|
+
# cut" — Lambda short-circuits the xfade filter chain rather
|
|
64
|
+
# than passing it through. All other values map directly to
|
|
65
|
+
# FFmpeg `xfade` filter `transition=` parameter.
|
|
66
|
+
values: [none, fade, fadeblack, fadewhite, dissolve,
|
|
67
|
+
wipeleft, wiperight, wipeup, wipedown, crossfade,
|
|
68
|
+
smoothleft, smoothright, smoothup, smoothdown,
|
|
69
|
+
circleopen, circleclose, circlecrop, rectcrop,
|
|
70
|
+
slideleft, slideright, slideup, slidedown,
|
|
71
|
+
radial, diagtl, diagtr, diagbl,
|
|
72
|
+
pixelize, hlslice, vlslice, hblur, distance, squeezeh,
|
|
73
|
+
custom, wipetl, wipetr, wipebl]
|
|
97
74
|
default: none
|
|
98
75
|
depends_on: { output_type: video }
|
|
99
|
-
description:
|
|
76
|
+
description: |
|
|
77
|
+
Transition effect between images in the slideshow output.
|
|
78
|
+
Catalog from FFmpeg 7.1.1 xfade filter (per ADR-0007). See
|
|
79
|
+
per_value_availability for per-value rollout state. The
|
|
80
|
+
`none` value is a sentinel ("no transition / hard cut"),
|
|
81
|
+
not an FFmpeg preset.
|
|
82
|
+
per_value_availability:
|
|
83
|
+
# Untagged values default to stable per ADR-0001 §1.4.
|
|
84
|
+
smoothleft: { availability: beta }
|
|
85
|
+
smoothright: { availability: beta }
|
|
86
|
+
smoothup: { availability: beta }
|
|
87
|
+
smoothdown: { availability: beta }
|
|
88
|
+
circleopen: { availability: beta }
|
|
89
|
+
circleclose: { availability: beta }
|
|
90
|
+
circlecrop: { availability: beta }
|
|
91
|
+
rectcrop: { availability: beta }
|
|
92
|
+
slideleft: { availability: beta }
|
|
93
|
+
slideright: { availability: beta }
|
|
94
|
+
slideup: { availability: beta }
|
|
95
|
+
slidedown: { availability: beta }
|
|
96
|
+
radial: { availability: beta }
|
|
97
|
+
diagtl: { availability: beta }
|
|
98
|
+
diagtr: { availability: beta }
|
|
99
|
+
diagbl: { availability: beta }
|
|
100
|
+
pixelize: { availability: experimental }
|
|
101
|
+
hlslice: { availability: experimental }
|
|
102
|
+
vlslice: { availability: experimental }
|
|
103
|
+
hblur: { availability: experimental }
|
|
104
|
+
distance: { availability: experimental }
|
|
105
|
+
squeezeh: { availability: experimental }
|
|
106
|
+
# `custom` is `planned` indefinitely as an advisory — for
|
|
107
|
+
# caller-uploaded luma-matte transitions, use the dedicated
|
|
108
|
+
# `custom_luma` operation (multi-input with role: base +
|
|
109
|
+
# transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
|
|
110
|
+
# xfade=custom is an expression-mode parameter, not the
|
|
111
|
+
# shape callers want; the dedicated operation is the
|
|
112
|
+
# supported path.
|
|
113
|
+
custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
|
|
114
|
+
wipetl: { availability: planned, eta: "2026-Q3" }
|
|
115
|
+
wipetr: { availability: planned, eta: "2026-Q3" }
|
|
116
|
+
wipebl: { availability: planned, eta: "2026-Q3" }
|
|
100
117
|
transition_duration:
|
|
101
118
|
type: float
|
|
102
119
|
min: 0.1
|
|
@@ -122,12 +139,81 @@ operation:
|
|
|
122
139
|
mimes:
|
|
123
140
|
- video/mp4
|
|
124
141
|
- video/webm
|
|
142
|
+
processing_class:
|
|
143
|
+
# F8 long-form video tier (per ticket I15-CONS). Merge uses
|
|
144
|
+
# alias class names because its differentiator is concat-
|
|
145
|
+
# compatibility (I16-CONS re_encode_mode) rather than just
|
|
146
|
+
# size/duration — a small merge can still need long_form
|
|
147
|
+
# when inputs require re-encoding.
|
|
148
|
+
short_form_concat:
|
|
149
|
+
availability: stable
|
|
150
|
+
constraints:
|
|
151
|
+
max_total_duration: "PT5M"
|
|
152
|
+
max_total_input_size_bytes: 1073741824 # 1 GiB combined
|
|
153
|
+
long_form_re_encode:
|
|
154
|
+
availability: planned
|
|
155
|
+
required_tier: pro
|
|
156
|
+
constraints:
|
|
157
|
+
max_total_duration: "PT12H"
|
|
158
|
+
max_total_input_size_bytes: 21474836480
|
|
125
159
|
options:
|
|
160
|
+
output_type:
|
|
161
|
+
type: enum
|
|
162
|
+
values: [video]
|
|
163
|
+
required: false
|
|
164
|
+
description: "Output format for video merge (concatenation). Currently fixed at 'video'. Optional — API injects this default post-validation so callers may omit it."
|
|
126
165
|
transition:
|
|
127
166
|
type: enum
|
|
128
|
-
|
|
167
|
+
# Same catalog + per_value_availability as merge.image.transition.
|
|
168
|
+
# Catalog from FFmpeg 7.1.1 xfade filter (per ADR-0007). The
|
|
169
|
+
# `none` value is a sentinel ("no transition / hard cut").
|
|
170
|
+
values: [none, fade, fadeblack, fadewhite, dissolve,
|
|
171
|
+
wipeleft, wiperight, wipeup, wipedown, crossfade,
|
|
172
|
+
smoothleft, smoothright, smoothup, smoothdown,
|
|
173
|
+
circleopen, circleclose, circlecrop, rectcrop,
|
|
174
|
+
slideleft, slideright, slideup, slidedown,
|
|
175
|
+
radial, diagtl, diagtr, diagbl,
|
|
176
|
+
pixelize, hlslice, vlslice, hblur, distance, squeezeh,
|
|
177
|
+
custom, wipetl, wipetr, wipebl]
|
|
129
178
|
default: none
|
|
130
|
-
description:
|
|
179
|
+
description: |
|
|
180
|
+
Default transition between clips. Catalog from FFmpeg 7.1.1
|
|
181
|
+
xfade filter (per ADR-0007). See per_value_availability for
|
|
182
|
+
per-value rollout state.
|
|
183
|
+
per_value_availability:
|
|
184
|
+
smoothleft: { availability: beta }
|
|
185
|
+
smoothright: { availability: beta }
|
|
186
|
+
smoothup: { availability: beta }
|
|
187
|
+
smoothdown: { availability: beta }
|
|
188
|
+
circleopen: { availability: beta }
|
|
189
|
+
circleclose: { availability: beta }
|
|
190
|
+
circlecrop: { availability: beta }
|
|
191
|
+
rectcrop: { availability: beta }
|
|
192
|
+
slideleft: { availability: beta }
|
|
193
|
+
slideright: { availability: beta }
|
|
194
|
+
slideup: { availability: beta }
|
|
195
|
+
slidedown: { availability: beta }
|
|
196
|
+
radial: { availability: beta }
|
|
197
|
+
diagtl: { availability: beta }
|
|
198
|
+
diagtr: { availability: beta }
|
|
199
|
+
diagbl: { availability: beta }
|
|
200
|
+
pixelize: { availability: experimental }
|
|
201
|
+
hlslice: { availability: experimental }
|
|
202
|
+
vlslice: { availability: experimental }
|
|
203
|
+
hblur: { availability: experimental }
|
|
204
|
+
distance: { availability: experimental }
|
|
205
|
+
squeezeh: { availability: experimental }
|
|
206
|
+
# `custom` is `planned` indefinitely as an advisory — for
|
|
207
|
+
# caller-uploaded luma-matte transitions, use the dedicated
|
|
208
|
+
# `custom_luma` operation (multi-input with role: base +
|
|
209
|
+
# transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
|
|
210
|
+
# xfade=custom is an expression-mode parameter, not the
|
|
211
|
+
# shape callers want; the dedicated operation is the
|
|
212
|
+
# supported path.
|
|
213
|
+
custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
|
|
214
|
+
wipetl: { availability: planned, eta: "2026-Q3" }
|
|
215
|
+
wipetr: { availability: planned, eta: "2026-Q3" }
|
|
216
|
+
wipebl: { availability: planned, eta: "2026-Q3" }
|
|
131
217
|
crossfade_duration:
|
|
132
218
|
type: float
|
|
133
219
|
min: 0.1
|
|
@@ -139,11 +225,138 @@ operation:
|
|
|
139
225
|
type: boolean
|
|
140
226
|
default: true
|
|
141
227
|
description: "Normalize audio levels across all clips"
|
|
228
|
+
|
|
229
|
+
re_encode_mode:
|
|
230
|
+
type: enum
|
|
231
|
+
values: [auto, always, never]
|
|
232
|
+
default: auto
|
|
233
|
+
description: |
|
|
234
|
+
Re-encode policy for video concat.
|
|
235
|
+
- `auto`: probe inputs and choose stream-copy concat (when
|
|
236
|
+
codec/container/timebase/framerate/resolution/pixel-format
|
|
237
|
+
match) or full re-encode.
|
|
238
|
+
- `always`: force re-encode (use when caller wants
|
|
239
|
+
normalised output options).
|
|
240
|
+
- `never`: return 422 `REQUIRES_REENCODE` if inputs are not
|
|
241
|
+
concat-compatible.
|
|
242
|
+
Compatibility algorithm is server-side and deliberately
|
|
243
|
+
opaque (per plan v5 §F8.2). The actual path taken is
|
|
244
|
+
reported on `OperationMetrics.re_encode_decision`.
|
|
245
|
+
|
|
246
|
+
codec:
|
|
247
|
+
type: enum
|
|
248
|
+
values: [h264, h265, vp9, av1]
|
|
249
|
+
default: h264
|
|
250
|
+
depends_on: { re_encode_mode: [auto, always] }
|
|
251
|
+
description: |
|
|
252
|
+
Output codec when merge re-encodes. Inert when stream-copy
|
|
253
|
+
concat is selected (re_encode_mode=auto + compatible inputs).
|
|
254
|
+
per_value_availability:
|
|
255
|
+
# AV1 encoder presence in mwader/static-ffmpeg:7.1.1 needs
|
|
256
|
+
# anti-drift confirmation per ADR-0006; tagged beta until
|
|
257
|
+
# I32 strict mode confirms.
|
|
258
|
+
av1: { availability: beta }
|
|
259
|
+
|
|
260
|
+
crf:
|
|
261
|
+
type: integer
|
|
262
|
+
min: 0
|
|
263
|
+
max: 51
|
|
264
|
+
default: 23
|
|
265
|
+
depends_on: { re_encode_mode: [auto, always], encoding_mode: crf }
|
|
266
|
+
description: "Constant Rate Factor when encoding_mode=crf. Lower = higher quality / larger file."
|
|
267
|
+
|
|
268
|
+
preset:
|
|
269
|
+
type: enum
|
|
270
|
+
values: [ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow]
|
|
271
|
+
default: medium
|
|
272
|
+
depends_on: { re_encode_mode: [auto, always] }
|
|
273
|
+
description: "Encoder speed/compression trade-off when re-encoding."
|
|
274
|
+
|
|
275
|
+
target_resolution:
|
|
276
|
+
type: string
|
|
277
|
+
pattern: '^\d+x\d+$'
|
|
278
|
+
depends_on: { re_encode_mode: [auto, always] }
|
|
279
|
+
description: "Output dimensions WxH (e.g. \"1920x1080\"). Omit to inherit from inputs."
|
|
280
|
+
|
|
281
|
+
encoding_mode:
|
|
282
|
+
type: enum
|
|
283
|
+
values: [crf, target_size]
|
|
284
|
+
default: crf
|
|
285
|
+
depends_on: { re_encode_mode: [auto, always] }
|
|
286
|
+
description: |
|
|
287
|
+
CRF (quality-targeted) vs target_size (two-pass to fixed file size).
|
|
288
|
+
`target_size` is currently `codec=h264` only — libx265 / libvpx-vp9 / libsvtav1 each
|
|
289
|
+
require a different two-pass invocation and are tracked as separate per-codec
|
|
290
|
+
Lambda follow-ups. The contract narrows `target_size_bytes.depends_on` with
|
|
291
|
+
`codec: [h264]`, which rejects `encoding_mode=target_size + codec ∈ {h265, vp9, av1}`
|
|
292
|
+
as `invalid_options` **when `target_size_bytes` is present in the request**. Fully
|
|
293
|
+
gating `encoding_mode=target_size` itself on codec (so that omitting
|
|
294
|
+
`target_size_bytes` is also rejected) awaits a `per_value_depends_on` schema
|
|
295
|
+
vocab extension (ticket bsV3FWM5); Lambda continues to catch the residual
|
|
296
|
+
`target_size + non-h264 + no target_size_bytes` case in the meantime.
|
|
297
|
+
|
|
298
|
+
target_size_bytes:
|
|
299
|
+
type: integer
|
|
300
|
+
min: 1048576
|
|
301
|
+
depends_on: { re_encode_mode: [auto, always], encoding_mode: target_size, codec: [h264] }
|
|
302
|
+
description: |
|
|
303
|
+
Two-pass target file size in bytes (minimum 1 MiB). Required when
|
|
304
|
+
`encoding_mode=target_size`. h264-only today; see `encoding_mode` description
|
|
305
|
+
for per-codec rollout status.
|
|
306
|
+
|
|
307
|
+
Practical floor: a ~100 kbps post-AAC video bitrate (i.e. `target_size_bytes`
|
|
308
|
+
corresponding to less than ~100 kbps of video after subtracting the 160 kbps
|
|
309
|
+
AAC audio track over the merged duration) is silently floored by libx264 and
|
|
310
|
+
the resulting file will not honour the requested `target_size_bytes`.
|
|
311
|
+
Publishers targeting very small outputs should size accordingly.
|
|
312
|
+
|
|
142
313
|
per_input_options:
|
|
143
314
|
transition:
|
|
144
315
|
type: enum
|
|
145
|
-
|
|
146
|
-
|
|
316
|
+
# Same catalog as global transition; mirrors per_value_availability.
|
|
317
|
+
values: [none, fade, fadeblack, fadewhite, dissolve,
|
|
318
|
+
wipeleft, wiperight, wipeup, wipedown, crossfade,
|
|
319
|
+
smoothleft, smoothright, smoothup, smoothdown,
|
|
320
|
+
circleopen, circleclose, circlecrop, rectcrop,
|
|
321
|
+
slideleft, slideright, slideup, slidedown,
|
|
322
|
+
radial, diagtl, diagtr, diagbl,
|
|
323
|
+
pixelize, hlslice, vlslice, hblur, distance, squeezeh,
|
|
324
|
+
custom, wipetl, wipetr, wipebl]
|
|
325
|
+
description: "Override transition for the join point preceding this input."
|
|
326
|
+
per_value_availability:
|
|
327
|
+
smoothleft: { availability: beta }
|
|
328
|
+
smoothright: { availability: beta }
|
|
329
|
+
smoothup: { availability: beta }
|
|
330
|
+
smoothdown: { availability: beta }
|
|
331
|
+
circleopen: { availability: beta }
|
|
332
|
+
circleclose: { availability: beta }
|
|
333
|
+
circlecrop: { availability: beta }
|
|
334
|
+
rectcrop: { availability: beta }
|
|
335
|
+
slideleft: { availability: beta }
|
|
336
|
+
slideright: { availability: beta }
|
|
337
|
+
slideup: { availability: beta }
|
|
338
|
+
slidedown: { availability: beta }
|
|
339
|
+
radial: { availability: beta }
|
|
340
|
+
diagtl: { availability: beta }
|
|
341
|
+
diagtr: { availability: beta }
|
|
342
|
+
diagbl: { availability: beta }
|
|
343
|
+
pixelize: { availability: experimental }
|
|
344
|
+
hlslice: { availability: experimental }
|
|
345
|
+
vlslice: { availability: experimental }
|
|
346
|
+
hblur: { availability: experimental }
|
|
347
|
+
distance: { availability: experimental }
|
|
348
|
+
squeezeh: { availability: experimental }
|
|
349
|
+
# `custom` is `planned` indefinitely as an advisory — for
|
|
350
|
+
# caller-uploaded luma-matte transitions, use the dedicated
|
|
351
|
+
# `custom_luma` operation (multi-input with role: base +
|
|
352
|
+
# transition_mask) per ticket I29 (EPUE5Vs1). FFmpeg's
|
|
353
|
+
# xfade=custom is an expression-mode parameter, not the
|
|
354
|
+
# shape callers want; the dedicated operation is the
|
|
355
|
+
# supported path.
|
|
356
|
+
custom: { availability: planned, documentation_url: "https://trello.com/c/EPUE5Vs1" }
|
|
357
|
+
wipetl: { availability: planned, eta: "2026-Q3" }
|
|
358
|
+
wipetr: { availability: planned, eta: "2026-Q3" }
|
|
359
|
+
wipebl: { availability: planned, eta: "2026-Q3" }
|
|
147
360
|
crossfade_duration:
|
|
148
361
|
type: float
|
|
149
362
|
min: 0.1
|
|
@@ -152,6 +365,15 @@ operation:
|
|
|
152
365
|
description: "Override crossfade duration for this join point"
|
|
153
366
|
|
|
154
367
|
audio:
|
|
368
|
+
# Audio transition catalog is intentionally separate from the
|
|
369
|
+
# visual xfade catalog used by merge.image / merge.video — audio
|
|
370
|
+
# uses FFmpeg's `acrossfade` filter, which is fundamentally
|
|
371
|
+
# different from `xfade` (visual). The two catalogs share no
|
|
372
|
+
# values and SDK codegen treats them as distinct enum types.
|
|
373
|
+
# See FORMAT.md §"Audio vs visual transition catalogs (merge)"
|
|
374
|
+
# for the convention and the rules for adding values to either
|
|
375
|
+
# catalog. Per ticket I18 (Trello FVuNcRJa) — visual-vs-audio
|
|
376
|
+
# enum split codification.
|
|
155
377
|
mimes:
|
|
156
378
|
- audio/mpeg
|
|
157
379
|
- audio/aac
|
|
@@ -159,11 +381,25 @@ operation:
|
|
|
159
381
|
- audio/ogg
|
|
160
382
|
- audio/flac
|
|
161
383
|
options:
|
|
384
|
+
output_type:
|
|
385
|
+
type: enum
|
|
386
|
+
values: [audio]
|
|
387
|
+
required: false
|
|
388
|
+
description: "Output format for audio merge (concatenation). Currently fixed at 'audio'. Optional — API injects this default post-validation so callers may omit it."
|
|
162
389
|
transition:
|
|
163
390
|
type: enum
|
|
391
|
+
# audio_transition catalog (per ticket I18, FORMAT.md §"Audio
|
|
392
|
+
# vs visual transition catalogs"). Backed by FFmpeg's
|
|
393
|
+
# `acrossfade` filter; values share no ground with the visual
|
|
394
|
+
# xfade catalog on merge.image / merge.video.
|
|
164
395
|
values: [none, crossfade]
|
|
165
396
|
default: none
|
|
166
|
-
description:
|
|
397
|
+
description: |
|
|
398
|
+
Default transition between clips. Audio-only catalog
|
|
399
|
+
(acrossfade-backed); see FORMAT.md §"Audio vs visual
|
|
400
|
+
transition catalogs (merge)" for additions policy. Future
|
|
401
|
+
values (e.g. `fade_curve` variants) will be added with
|
|
402
|
+
`per_value_availability` per ADR-0001 §1.4.
|
|
167
403
|
crossfade_duration:
|
|
168
404
|
type: float
|
|
169
405
|
min: 0
|
|
@@ -184,8 +420,13 @@ operation:
|
|
|
184
420
|
per_input_options:
|
|
185
421
|
transition:
|
|
186
422
|
type: enum
|
|
423
|
+
# Mirrors merge.audio.options.transition; same audio_transition
|
|
424
|
+
# catalog. Per ticket I18.
|
|
187
425
|
values: [none, crossfade]
|
|
188
|
-
description:
|
|
426
|
+
description: |
|
|
427
|
+
Override transition for the join point preceding this
|
|
428
|
+
input. Audio-only catalog (acrossfade-backed); see
|
|
429
|
+
FORMAT.md §"Audio vs visual transition catalogs (merge)".
|
|
189
430
|
crossfade_duration:
|
|
190
431
|
type: float
|
|
191
432
|
min: 0
|
|
@@ -197,15 +438,3 @@ operation:
|
|
|
197
438
|
min: 0
|
|
198
439
|
max: 10.0
|
|
199
440
|
description: "Override gap duration for this join point"
|
|
200
|
-
|
|
201
|
-
document:
|
|
202
|
-
mimes:
|
|
203
|
-
- application/pdf
|
|
204
|
-
options:
|
|
205
|
-
page_range:
|
|
206
|
-
type: string
|
|
207
|
-
description: "Default page range per input, e.g. '1-3,5'. Null = all pages."
|
|
208
|
-
per_input_options:
|
|
209
|
-
page_range:
|
|
210
|
-
type: string
|
|
211
|
-
description: "Override page range for this specific input document"
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
schema_version: "2.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: text_watermark
|
|
5
|
+
description: |
|
|
6
|
+
Render a text overlay onto an image using bundled Liberation Sans
|
|
7
|
+
(SIL OFL). Single-input — text comes from options, not from a file
|
|
8
|
+
input. Source capped at 25 megapixels (V1 watermark precedent
|
|
9
|
+
retained). Per ADR-0004 §"V2 JobDefinition" + plan v5 §F1.
|
|
10
|
+
|
|
11
|
+
Two rendering modes:
|
|
12
|
+
- `single`: one label rendered at the anchor + margin position.
|
|
13
|
+
- `tiled`: text tiled across the source image (Cinavia / Adobe Stock
|
|
14
|
+
pattern); rotation default -45° and tile_spacing controls density.
|
|
15
|
+
default: false
|
|
16
|
+
input_model: single
|
|
17
|
+
|
|
18
|
+
mime_groups:
|
|
19
|
+
image:
|
|
20
|
+
mimes:
|
|
21
|
+
- image/jpeg
|
|
22
|
+
- image/png
|
|
23
|
+
- image/webp
|
|
24
|
+
options:
|
|
25
|
+
text:
|
|
26
|
+
type: string
|
|
27
|
+
required: true
|
|
28
|
+
description: |
|
|
29
|
+
Watermark text. Must be non-empty. Rendered with bundled
|
|
30
|
+
Liberation Sans (SIL OFL). A single text overlay is capped
|
|
31
|
+
at 4 megapixels before rendering fails.
|
|
32
|
+
|
|
33
|
+
font_size:
|
|
34
|
+
type: float
|
|
35
|
+
min: 8.0
|
|
36
|
+
max: 512.0
|
|
37
|
+
default: 48.0
|
|
38
|
+
description: Font size in pixels. Clamped to range.
|
|
39
|
+
|
|
40
|
+
color:
|
|
41
|
+
type: string
|
|
42
|
+
default: "#FFFFFF80"
|
|
43
|
+
pattern: '^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$'
|
|
44
|
+
description: |
|
|
45
|
+
Text colour as hex RGB (#RRGGBB) or RGBA (#RRGGBBAA).
|
|
46
|
+
Default is white with 50% alpha.
|
|
47
|
+
|
|
48
|
+
font_family:
|
|
49
|
+
type: enum
|
|
50
|
+
values:
|
|
51
|
+
- liberation_sans
|
|
52
|
+
default: liberation_sans
|
|
53
|
+
description: |
|
|
54
|
+
Font family. V2.0 ships with bundled Liberation Sans only;
|
|
55
|
+
user-uploaded fonts are a future extension (separate ticket).
|
|
56
|
+
|
|
57
|
+
rotation:
|
|
58
|
+
type: float
|
|
59
|
+
min: -360.0
|
|
60
|
+
max: 360.0
|
|
61
|
+
default: -45.0
|
|
62
|
+
description: |
|
|
63
|
+
Rotation angle in degrees. Default -45° suits tiled mode
|
|
64
|
+
(angled diagonal pattern). Clamped to range. Tiled canvas is
|
|
65
|
+
capped at 25 megapixels pre-rotation with 5000 px maximum
|
|
66
|
+
side length.
|
|
67
|
+
|
|
68
|
+
watermark_mode:
|
|
69
|
+
type: enum
|
|
70
|
+
values: [single, tiled]
|
|
71
|
+
default: single
|
|
72
|
+
description: |
|
|
73
|
+
Rendering mode:
|
|
74
|
+
- `single`: one label placed at the anchor + margin offset.
|
|
75
|
+
- `tiled`: repeated tiles across the entire source image at
|
|
76
|
+
the rotation angle.
|
|
77
|
+
|
|
78
|
+
tile_spacing:
|
|
79
|
+
type: integer
|
|
80
|
+
min: 0
|
|
81
|
+
max: 1000
|
|
82
|
+
depends_on: { watermark_mode: tiled }
|
|
83
|
+
description: |
|
|
84
|
+
Spacing between tiled labels in pixels. Defaults to font_size
|
|
85
|
+
when omitted. Only applies when watermark_mode is tiled.
|
|
86
|
+
|
|
87
|
+
anchor:
|
|
88
|
+
type: enum
|
|
89
|
+
values:
|
|
90
|
+
- top_left
|
|
91
|
+
- top_center
|
|
92
|
+
- top_right
|
|
93
|
+
- center_left
|
|
94
|
+
- center
|
|
95
|
+
- center_right
|
|
96
|
+
- bottom_left
|
|
97
|
+
- bottom_center
|
|
98
|
+
- bottom_right
|
|
99
|
+
default: bottom_right
|
|
100
|
+
description: |
|
|
101
|
+
9-grid anchor position. For watermark_mode: single, the text
|
|
102
|
+
label is placed at this anchor + margin_x/margin_y offset.
|
|
103
|
+
For watermark_mode: tiled, anchor is ignored (tiles fill the
|
|
104
|
+
source image).
|
|
105
|
+
|
|
106
|
+
margin_x:
|
|
107
|
+
type: string
|
|
108
|
+
pattern: '^\d+(\.\d+)?(px|%)$'
|
|
109
|
+
default: "0px"
|
|
110
|
+
description: |
|
|
111
|
+
Horizontal offset from the anchor as pixels (e.g. "40px") or
|
|
112
|
+
percentage of base width (e.g. "5%"). Direction is
|
|
113
|
+
anchor-relative. Ignored when watermark_mode: tiled.
|
|
114
|
+
|
|
115
|
+
**`anchor: center` exception** (watermark_mode: single only).
|
|
116
|
+
When the anchor is `center` the centre is the centre — there
|
|
117
|
+
is no anchor-relative direction. Non-zero `margin_x`
|
|
118
|
+
(anything other than the default `"0px"` or the equivalent
|
|
119
|
+
`"0%"`) combined with `anchor: center` is rejected by the
|
|
120
|
+
API at workflow-create time as `invalid_options` (HTTP 422).
|
|
121
|
+
To nudge a roughly-centred label, pick a peripheral anchor
|
|
122
|
+
(e.g. `top_left`) and use `margin_x` / `margin_y` to
|
|
123
|
+
position it. Not applicable to watermark_mode: tiled, where
|
|
124
|
+
anchor + margin are ignored entirely.
|
|
125
|
+
|
|
126
|
+
margin_y:
|
|
127
|
+
type: string
|
|
128
|
+
pattern: '^\d+(\.\d+)?(px|%)$'
|
|
129
|
+
default: "0px"
|
|
130
|
+
description: |
|
|
131
|
+
Vertical offset from the anchor as pixels or percentage of
|
|
132
|
+
base height. Ignored when watermark_mode: tiled.
|
|
133
|
+
|
|
134
|
+
**`anchor: center` exception** (watermark_mode: single only).
|
|
135
|
+
Same rejection rule as `margin_x` — non-zero `margin_y` with
|
|
136
|
+
`anchor: center` is rejected by the API at workflow-create
|
|
137
|
+
time as `invalid_options` (HTTP 422).
|
|
138
|
+
|
|
139
|
+
opacity:
|
|
140
|
+
type: float
|
|
141
|
+
min: 0.0
|
|
142
|
+
max: 1.0
|
|
143
|
+
default: 1.0
|
|
144
|
+
description: |
|
|
145
|
+
Text overlay opacity. Default 1.0 — the alpha channel of
|
|
146
|
+
`color` already encodes transparency, so opacity is usually
|
|
147
|
+
left at 1.0 and transparency is set via the color hex.
|
|
@@ -46,6 +46,21 @@ operation:
|
|
|
46
46
|
- video/mp4
|
|
47
47
|
- video/webm
|
|
48
48
|
- video/ogg
|
|
49
|
+
processing_class:
|
|
50
|
+
# F8 long-form video tier (per ticket I15-CONS). Thumbnail
|
|
51
|
+
# extracts a single frame, so size/duration caps reflect
|
|
52
|
+
# input file scanning rather than full processing time.
|
|
53
|
+
short_form:
|
|
54
|
+
availability: stable
|
|
55
|
+
constraints:
|
|
56
|
+
max_input_duration: "PT5M"
|
|
57
|
+
max_input_size_bytes: 524288000
|
|
58
|
+
long_form:
|
|
59
|
+
availability: planned
|
|
60
|
+
required_tier: pro
|
|
61
|
+
constraints:
|
|
62
|
+
max_input_duration: "PT12H"
|
|
63
|
+
max_input_size_bytes: 21474836480
|
|
49
64
|
options:
|
|
50
65
|
timestamp:
|
|
51
66
|
type: string
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@giveitsmaller/contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Generated contract types for GISL (Give It Smaller)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -25,18 +25,24 @@
|
|
|
25
25
|
},
|
|
26
26
|
"./openapi/api.yaml": "./openapi/api.yaml",
|
|
27
27
|
"./asyncapi/events.yaml": "./asyncapi/events.yaml",
|
|
28
|
+
"./availability/availability.json": "./availability/availability.json",
|
|
28
29
|
"./operations/schemas/archive.yaml": "./operations/schemas/archive.yaml",
|
|
30
|
+
"./operations/schemas/audio_overlay.yaml": "./operations/schemas/audio_overlay.yaml",
|
|
31
|
+
"./operations/schemas/audio_watermark.yaml": "./operations/schemas/audio_watermark.yaml",
|
|
29
32
|
"./operations/schemas/compress.yaml": "./operations/schemas/compress.yaml",
|
|
30
33
|
"./operations/schemas/convert.yaml": "./operations/schemas/convert.yaml",
|
|
34
|
+
"./operations/schemas/custom_luma.yaml": "./operations/schemas/custom_luma.yaml",
|
|
35
|
+
"./operations/schemas/image_watermark.yaml": "./operations/schemas/image_watermark.yaml",
|
|
31
36
|
"./operations/schemas/merge.yaml": "./operations/schemas/merge.yaml",
|
|
32
|
-
"./operations/schemas/
|
|
33
|
-
"./operations/schemas/
|
|
37
|
+
"./operations/schemas/text_watermark.yaml": "./operations/schemas/text_watermark.yaml",
|
|
38
|
+
"./operations/schemas/thumbnail.yaml": "./operations/schemas/thumbnail.yaml"
|
|
34
39
|
},
|
|
35
40
|
"files": [
|
|
36
41
|
"dist/",
|
|
37
42
|
"openapi/api.yaml",
|
|
38
43
|
"asyncapi/events.yaml",
|
|
39
|
-
"operations/schemas/"
|
|
44
|
+
"operations/schemas/",
|
|
45
|
+
"availability/availability.json"
|
|
40
46
|
],
|
|
41
47
|
"scripts": {
|
|
42
48
|
"build": "tsc",
|