@giveitsmaller/contracts 0.9.0 → 0.17.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 +647 -60
- package/availability/availability.json +318 -94
- package/dist/asyncapi/Failure.d.ts +2 -0
- package/dist/asyncapi/LongFormOperationType.d.ts +2 -1
- package/dist/asyncapi/LongFormOperationType.js +1 -0
- package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
- package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
- package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
- package/dist/asyncapi/OperationResultMetadata.js +1 -0
- package/dist/asyncapi/OperationType.d.ts +2 -1
- package/dist/asyncapi/OperationType.js +1 -0
- package/dist/asyncapi/PageIndexed.d.ts +1 -0
- package/dist/asyncapi/PositionIndexed.d.ts +1 -0
- package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
- package/dist/asyncapi/SourceEntry.d.ts +2 -0
- package/dist/asyncapi/Unindexed.d.ts +1 -0
- package/dist/asyncapi/index.d.ts +2 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
- package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
- package/dist/openapi/models/AuthErrorResponse.js +2 -2
- package/dist/openapi/models/AuthErrorType.d.ts +2 -2
- package/dist/openapi/models/AuthErrorType.js +2 -2
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
- package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
- package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
- package/dist/openapi/models/AvailabilityValue.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
- package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
- package/dist/openapi/models/ChangePasswordRequest.js +47 -0
- package/dist/openapi/models/CompositionPlan.d.ts +72 -0
- package/dist/openapi/models/CompositionPlan.js +53 -0
- package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
- package/dist/openapi/models/CompositionPlanJob.js +48 -0
- package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
- package/dist/openapi/models/CompositionPlanOperation.js +62 -0
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
- package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
- package/dist/openapi/models/ConnectionSource.d.ts +2 -2
- package/dist/openapi/models/ConnectionSource.js +2 -2
- 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/CreateApiKey201Response.d.ts +46 -0
- package/dist/openapi/models/CreateApiKey201Response.js +54 -0
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
- package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
- package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
- package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
- package/dist/openapi/models/CreditTransaction.d.ts +2 -2
- package/dist/openapi/models/CreditTransaction.js +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
- package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageResponse.js +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
- package/dist/openapi/models/Delivery.d.ts +2 -2
- package/dist/openapi/models/Delivery.js +2 -2
- package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
- package/dist/openapi/models/DeliveryOutputRef.js +2 -2
- package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlan.js +2 -2
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
- package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
- package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlanReason.js +2 -2
- package/dist/openapi/models/DeliverySelection.d.ts +6 -4
- package/dist/openapi/models/DeliverySelection.js +2 -2
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
- package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
- package/dist/openapi/models/EndpointProjection.d.ts +12 -3
- package/dist/openapi/models/EndpointProjection.js +2 -2
- package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
- package/dist/openapi/models/ErrorEnvelope.js +2 -2
- package/dist/openapi/models/EstimateQuality.d.ts +2 -2
- package/dist/openapi/models/EstimateQuality.js +2 -2
- package/dist/openapi/models/EstimateRange.d.ts +2 -2
- package/dist/openapi/models/EstimateRange.js +2 -2
- package/dist/openapi/models/ExternalDestination.d.ts +2 -2
- package/dist/openapi/models/ExternalDestination.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
- package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
- package/dist/openapi/models/ExternalImportRequest.js +2 -2
- package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
- package/dist/openapi/models/ExternalImportToken.js +2 -2
- package/dist/openapi/models/ExternalSource.d.ts +2 -2
- package/dist/openapi/models/ExternalSource.js +2 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +13 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
- package/dist/openapi/models/FeatureViolation.d.ts +2 -2
- package/dist/openapi/models/FeatureViolation.js +2 -2
- package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
- package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
- package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
- package/dist/openapi/models/JobDefinition.d.ts +20 -4
- package/dist/openapi/models/JobDefinition.js +2 -2
- package/dist/openapi/models/JobDownload.d.ts +2 -2
- package/dist/openapi/models/JobDownload.js +2 -2
- package/dist/openapi/models/JobInputV2.d.ts +13 -9
- package/dist/openapi/models/JobInputV2.js +5 -5
- package/dist/openapi/models/JobMediaClass.d.ts +34 -0
- package/dist/openapi/models/JobMediaClass.js +52 -0
- package/dist/openapi/models/JobOutputSource.d.ts +2 -2
- package/dist/openapi/models/JobOutputSource.js +2 -2
- package/dist/openapi/models/JobResponse.d.ts +2 -2
- package/dist/openapi/models/JobResponse.js +2 -2
- package/dist/openapi/models/JobStatus.d.ts +2 -2
- package/dist/openapi/models/JobStatus.js +2 -2
- 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 +2 -2
- package/dist/openapi/models/LoginUser200Response.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
- package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
- package/dist/openapi/models/LoginUserRequest.js +2 -2
- package/dist/openapi/models/MetadataResponse.d.ts +2 -2
- package/dist/openapi/models/MetadataResponse.js +2 -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 +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
- package/dist/openapi/models/MimeGroupSchema.js +5 -2
- package/dist/openapi/models/MultiInputSource.d.ts +41 -0
- package/dist/openapi/models/MultiInputSource.js +52 -0
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
- 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 +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
- package/dist/openapi/models/MultipartPartListing.js +2 -2
- package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignRequest.js +2 -2
- package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignResponse.js +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusResponse.js +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/OperationDefinition.d.ts +27 -2
- package/dist/openapi/models/OperationDefinition.js +11 -2
- package/dist/openapi/models/OperationDownload.d.ts +30 -2
- package/dist/openapi/models/OperationDownload.js +6 -2
- package/dist/openapi/models/OperationInputModel.d.ts +3 -3
- package/dist/openapi/models/OperationInputModel.js +3 -3
- package/dist/openapi/models/OperationResponse.d.ts +18 -2
- package/dist/openapi/models/OperationResponse.js +5 -2
- package/dist/openapi/models/OperationResult.d.ts +2 -2
- package/dist/openapi/models/OperationResult.js +2 -2
- package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
- package/dist/openapi/models/OperationResultMetadata.js +41 -0
- package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
- package/dist/openapi/models/OperationResultMetrics.js +2 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
- package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
- package/dist/openapi/models/OperationStatus.d.ts +2 -2
- package/dist/openapi/models/OperationStatus.js +2 -2
- package/dist/openapi/models/OperationType.d.ts +7 -4
- package/dist/openapi/models/OperationType.js +8 -5
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +32 -4
- package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
- package/dist/openapi/models/OptionSchema.d.ts +2 -2
- package/dist/openapi/models/OptionSchema.js +2 -2
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
- package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
- package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
- package/dist/openapi/models/PresignedUrlPart.js +2 -2
- package/dist/openapi/models/ProbePendingResponse.d.ts +13 -2
- package/dist/openapi/models/ProbePendingResponse.js +2 -2
- package/dist/openapi/models/ProcessingClass.d.ts +2 -2
- package/dist/openapi/models/ProcessingClass.js +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
- package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
- package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
- package/dist/openapi/models/ProcessingClassEntry.js +57 -0
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +13 -2
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
- package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassHint.js +2 -2
- package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassReason.js +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
- package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlan.js +2 -2
- package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlanJob.js +2 -2
- package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
- package/dist/openapi/models/ReEncodeDecision.js +2 -2
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
- package/dist/openapi/models/RegisterUser422Response.js +47 -0
- package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
- package/dist/openapi/models/RegisterUserRequest.js +47 -0
- package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
- package/dist/openapi/models/ResetPasswordRequest.js +47 -0
- package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
- package/dist/openapi/models/ResponseEnvelope.js +2 -2
- package/dist/openapi/models/RetryResponse.d.ts +2 -2
- package/dist/openapi/models/RetryResponse.js +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
- package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
- package/dist/openapi/models/SseCompletionBase.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 +2 -2
- package/dist/openapi/models/SseJobCompletedData.js +2 -2
- package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
- package/dist/openapi/models/SseJobFailedData.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
- package/dist/openapi/models/SseOperationCompletedData.js +2 -2
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
- package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
- package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
- package/dist/openapi/models/SseOperationFailedData.js +2 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
- package/dist/openapi/models/SseOperationProgressData.js +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
- package/dist/openapi/models/TierRestrictionKind.js +2 -2
- package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
- package/dist/openapi/models/TierRestrictionResponse.js +2 -2
- package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
- package/dist/openapi/models/UpdateProfile200Response.js +54 -0
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
- package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
- package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
- package/dist/openapi/models/UpdateProfile422Response.js +47 -0
- package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
- package/dist/openapi/models/UpdateProfileRequest.js +47 -0
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile403Response.js +2 -2
- package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile422Response.js +2 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
- package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
- package/dist/openapi/models/UploadProbeResponse.js +2 -2
- package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
- package/dist/openapi/models/UploadProbeStatus.js +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadResponse.d.ts +2 -2
- package/dist/openapi/models/UploadResponse.js +2 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadSource.d.ts +2 -2
- package/dist/openapi/models/UploadSource.js +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadThresholds.d.ts +2 -2
- package/dist/openapi/models/UploadThresholds.js +2 -2
- package/dist/openapi/models/UserTier.d.ts +2 -2
- package/dist/openapi/models/UserTier.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
- package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
- package/dist/openapi/models/VerifyEmailRequest.js +43 -0
- package/dist/openapi/models/WarningType.d.ts +2 -2
- package/dist/openapi/models/WarningType.js +2 -2
- package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
- package/dist/openapi/models/WebhookOperationContext.js +2 -2
- package/dist/openapi/models/WebhookPayload.d.ts +2 -2
- package/dist/openapi/models/WebhookPayload.js +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
- package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
- package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
- 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 +2 -2
- 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 +13 -2
- package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
- package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
- package/dist/openapi/models/WorkflowListResponse.js +50 -0
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
- package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
- package/dist/openapi/models/WorkflowProcessing.js +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSource.d.ts +7 -4
- package/dist/openapi/models/WorkflowSource.js +2 -2
- package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatus.js +2 -2
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
- package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
- package/dist/openapi/models/WorkflowSummary.js +57 -0
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
- package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
- package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarning.js +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
- package/dist/openapi/models/index.d.ts +31 -1
- package/dist/openapi/models/index.js +31 -1
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +2 -2
- package/dist/operations/compress.d.ts +0 -9
- package/dist/operations/compress.js +0 -6
- package/dist/operations/compress.metadata.js +4 -12
- package/dist/operations/index.d.ts +3 -0
- package/dist/operations/index.js +3 -0
- package/dist/operations/merge.d.ts +4 -0
- package/dist/operations/merge.metadata.js +12 -0
- package/dist/operations/passthrough.metadata.d.ts +2 -0
- package/dist/operations/passthrough.metadata.js +6 -0
- package/dist/operations/render_variants.d.ts +24 -0
- package/dist/operations/render_variants.js +14 -0
- package/dist/operations/render_variants.metadata.d.ts +2 -0
- package/dist/operations/render_variants.metadata.js +18 -0
- package/dist/operations/split.d.ts +8 -1
- package/dist/operations/split.js +5 -0
- package/dist/operations/split.metadata.js +19 -6
- package/openapi/api.yaml +2333 -241
- package/operations/schemas/archive.yaml +1 -1
- package/operations/schemas/audio_overlay.yaml +29 -13
- package/operations/schemas/audio_to_video.yaml +6 -5
- package/operations/schemas/audio_watermark.yaml +18 -16
- package/operations/schemas/compress.yaml +60 -35
- package/operations/schemas/convert.yaml +6 -1
- package/operations/schemas/custom_luma.yaml +18 -3
- package/operations/schemas/image_watermark.yaml +22 -7
- package/operations/schemas/merge.yaml +88 -35
- package/operations/schemas/passthrough.yaml +49 -0
- package/operations/schemas/render_variants.yaml +117 -0
- package/operations/schemas/split.yaml +78 -20
- package/operations/schemas/text_watermark.yaml +6 -6
- package/operations/schemas/thumbnail.yaml +1 -1
- package/operations/schemas/video_text_watermark.yaml +2 -2
- package/operations/schemas/video_watermark.yaml +7 -4
- package/package.json +3 -1
- package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
- package/dist/openapi/models/LogoutUser200Response.js +0 -53
- /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
|
@@ -75,10 +75,8 @@ operation:
|
|
|
75
75
|
depends_on: { output_type: video }
|
|
76
76
|
description: |
|
|
77
77
|
Transition effect between images in the slideshow output.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
`none` value is a sentinel ("no transition / hard cut"),
|
|
81
|
-
not an FFmpeg preset.
|
|
78
|
+
`none` means a hard cut with no transition. Some effects
|
|
79
|
+
are still rolling out — check their availability.
|
|
82
80
|
per_value_availability:
|
|
83
81
|
# Untagged values default to stable per ADR-0001 §1.4.
|
|
84
82
|
smoothleft: { availability: beta }
|
|
@@ -139,12 +137,27 @@ operation:
|
|
|
139
137
|
mimes:
|
|
140
138
|
- video/mp4
|
|
141
139
|
- video/webm
|
|
140
|
+
- video/quicktime
|
|
142
141
|
processing_class:
|
|
143
142
|
# F8 long-form video tier (per ticket I15-CONS). Merge uses
|
|
144
|
-
# alias class names
|
|
145
|
-
#
|
|
146
|
-
#
|
|
147
|
-
# when
|
|
143
|
+
# alias class names (short_form_concat / long_form_re_encode),
|
|
144
|
+
# but ROUTING (which class) is DURATION/SIZE-driven at
|
|
145
|
+
# create-plan, NOT concat-compatibility: the API resolver
|
|
146
|
+
# assigns long_form when summed input duration exceeds the
|
|
147
|
+
# short_form cap (PT5M) OR summed size exceeds 1 GiB; it has no
|
|
148
|
+
# per-input codec/pixfmt at create-plan to decide re-encode-need
|
|
149
|
+
# (MAVh1blw; api d363a4ab). re_encode-vs-stream-copy is a WORKER
|
|
150
|
+
# SUB-MODE WITHIN EACH class, not a long-form differentiator:
|
|
151
|
+
# short-form (filter_complex) re-encodes heterogeneous inputs +
|
|
152
|
+
# crossfade fine; long_form_re_encode (FFmpeg concat-demuxer)
|
|
153
|
+
# REQUIRES UNIFORM inputs and re-encodes them (e.g. uniform VP9 ->
|
|
154
|
+
# mp4). So long_form_re_encode = LONG-duration/size + uniform-but-
|
|
155
|
+
# not-stream-copyable. HETEROGENEOUS long merges (per-input codec
|
|
156
|
+
# mismatch at long duration) are the deferred Phase-3 gap (NOT
|
|
157
|
+
# built; concat-demuxer uniformity-rejects them). The earlier
|
|
158
|
+
# "a small merge can need long_form when inputs require
|
|
159
|
+
# re-encoding" claim was an over-claim describing a future
|
|
160
|
+
# two-trigger state — corrected here.
|
|
148
161
|
short_form_concat:
|
|
149
162
|
availability: stable
|
|
150
163
|
constraints:
|
|
@@ -183,9 +196,8 @@ operation:
|
|
|
183
196
|
custom, wipetl, wipetr, wipebl]
|
|
184
197
|
default: none
|
|
185
198
|
description: |
|
|
186
|
-
Default transition between clips.
|
|
187
|
-
|
|
188
|
-
per-value rollout state.
|
|
199
|
+
Default transition between clips. Some effects are still
|
|
200
|
+
rolling out — check their availability.
|
|
189
201
|
per_value_availability:
|
|
190
202
|
smoothleft: { availability: beta }
|
|
191
203
|
smoothright: { availability: beta }
|
|
@@ -291,33 +303,37 @@ operation:
|
|
|
291
303
|
depends_on: { re_encode_mode: [auto, always] }
|
|
292
304
|
per_value_depends_on:
|
|
293
305
|
target_size: { codec: [h264] }
|
|
306
|
+
# target_size is currently codec=h264 only — h265 / vp9 / av1
|
|
307
|
+
# each require a different encoder invocation and are tracked
|
|
308
|
+
# as separate per-codec Lambda follow-ups. The
|
|
309
|
+
# per_value_depends_on block above gates encoding_mode=target_size
|
|
310
|
+
# on codec ∈ [h264], so a request pairing target_size with
|
|
311
|
+
# {h265, vp9, av1} is rejected as invalid_options whether or not
|
|
312
|
+
# target_size_bytes is supplied — closing the gap left by the
|
|
313
|
+
# previous option-level depends_on (which only triggered when
|
|
314
|
+
# target_size_bytes was present). Per ticket bsV3FWM5.
|
|
294
315
|
description: |
|
|
295
|
-
CRF
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
`encoding_mode=target_size` itself on `codec ∈ [h264]`, so a request with
|
|
300
|
-
`encoding_mode=target_size + codec ∈ {h265, vp9, av1}` is rejected as
|
|
301
|
-
`invalid_options` regardless of whether `target_size_bytes` is supplied —
|
|
302
|
-
closing the gap left by the previous option-level `depends_on` (which only
|
|
303
|
-
triggered when `target_size_bytes` was present in the payload). Per ticket
|
|
304
|
-
[`bsV3FWM5`](https://trello.com/c/bsV3FWM5).
|
|
316
|
+
CRF aims for a quality level and lets the file size vary;
|
|
317
|
+
target_size aims for a fixed output file size. `target_size`
|
|
318
|
+
currently works with `codec=h264` only — a request pairing it
|
|
319
|
+
with another codec is rejected as `invalid_options`.
|
|
305
320
|
|
|
306
321
|
target_size_bytes:
|
|
307
322
|
type: integer
|
|
308
323
|
min: 1048576
|
|
309
324
|
depends_on: { re_encode_mode: [auto, always], encoding_mode: target_size }
|
|
325
|
+
# h264-only — the codec gate lives on
|
|
326
|
+
# encoding_mode.per_value_depends_on.target_size.codec (per ticket
|
|
327
|
+
# bsV3FWM5); this option's own depends_on no longer duplicates it.
|
|
328
|
+
# The practical floor below is enforced by the h264 encoder.
|
|
310
329
|
description: |
|
|
311
|
-
|
|
312
|
-
`encoding_mode=target_size
|
|
313
|
-
`encoding_mode.per_value_depends_on.target_size.codec` (per ticket
|
|
314
|
-
[`bsV3FWM5`](https://trello.com/c/bsV3FWM5)); this option's own
|
|
315
|
-
`depends_on` no longer duplicates it.
|
|
330
|
+
Target file size in bytes (minimum 1 MiB). Required when
|
|
331
|
+
`encoding_mode=target_size`, which is h264-only.
|
|
316
332
|
|
|
317
|
-
Practical floor:
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
333
|
+
Practical floor: if the target works out to less than
|
|
334
|
+
~100 kbps of video (after subtracting the ~160 kbps AAC audio
|
|
335
|
+
track over the merged duration), the encoder floors it and the
|
|
336
|
+
resulting file will not honour the requested `target_size_bytes`.
|
|
321
337
|
Publishers targeting very small outputs should size accordingly.
|
|
322
338
|
|
|
323
339
|
per_input_options:
|
|
@@ -373,6 +389,24 @@ operation:
|
|
|
373
389
|
max: 5.0
|
|
374
390
|
depends_on: { transition: crossfade }
|
|
375
391
|
description: "Override crossfade duration for this join point"
|
|
392
|
+
trim_start:
|
|
393
|
+
type: float
|
|
394
|
+
min: 0
|
|
395
|
+
description: |
|
|
396
|
+
Trim from beginning in seconds (per-input). Applied to this
|
|
397
|
+
input BEFORE any transition/crossfade. Matches the
|
|
398
|
+
`compress` trim semantic. No `max` — the upper bound is the
|
|
399
|
+
input's own duration, enforced by the worker, not statically
|
|
400
|
+
bounded here.
|
|
401
|
+
trim_end:
|
|
402
|
+
type: float
|
|
403
|
+
min: 0
|
|
404
|
+
description: |
|
|
405
|
+
Trim from end in seconds (per-input). Applied to this input
|
|
406
|
+
BEFORE any transition/crossfade. Matches the `compress` trim
|
|
407
|
+
semantic. No `max` — the upper bound is the input's own
|
|
408
|
+
duration, enforced by the worker, not statically bounded
|
|
409
|
+
here.
|
|
376
410
|
|
|
377
411
|
audio:
|
|
378
412
|
# Audio transition catalog is intentionally separate from the
|
|
@@ -404,12 +438,13 @@ operation:
|
|
|
404
438
|
# xfade catalog on merge.image / merge.video.
|
|
405
439
|
values: [none, crossfade]
|
|
406
440
|
default: none
|
|
441
|
+
# Audio-only catalog (acrossfade-backed); see FORMAT.md §"Audio
|
|
442
|
+
# vs visual transition catalogs (merge)" for the additions
|
|
443
|
+
# policy. Future values are added with per_value_availability
|
|
444
|
+
# per ADR-0001 §1.4.
|
|
407
445
|
description: |
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
transition catalogs (merge)" for additions policy. Future
|
|
411
|
-
values (e.g. `fade_curve` variants) will be added with
|
|
412
|
-
`per_value_availability` per ADR-0001 §1.4.
|
|
446
|
+
Transition between audio clips. `none` joins them with a
|
|
447
|
+
hard cut; `crossfade` blends one into the next.
|
|
413
448
|
crossfade_duration:
|
|
414
449
|
type: float
|
|
415
450
|
min: 0
|
|
@@ -448,3 +483,21 @@ operation:
|
|
|
448
483
|
min: 0
|
|
449
484
|
max: 10.0
|
|
450
485
|
description: "Override gap duration for this join point"
|
|
486
|
+
trim_start:
|
|
487
|
+
type: float
|
|
488
|
+
min: 0
|
|
489
|
+
description: |
|
|
490
|
+
Trim from beginning in seconds (per-input). Applied to this
|
|
491
|
+
input BEFORE any transition/crossfade. Matches the
|
|
492
|
+
`compress` trim semantic. No `max` — the upper bound is the
|
|
493
|
+
input's own duration, enforced by the worker, not statically
|
|
494
|
+
bounded here.
|
|
495
|
+
trim_end:
|
|
496
|
+
type: float
|
|
497
|
+
min: 0
|
|
498
|
+
description: |
|
|
499
|
+
Trim from end in seconds (per-input). Applied to this input
|
|
500
|
+
BEFORE any transition/crossfade. Matches the `compress` trim
|
|
501
|
+
semantic. No `max` — the upper bound is the input's own
|
|
502
|
+
duration, enforced by the worker, not statically bounded
|
|
503
|
+
here.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
schema_version: "1.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: passthrough
|
|
5
|
+
availability: beta
|
|
6
|
+
description: |
|
|
7
|
+
Inert lossless source operation. A single-input source job whose
|
|
8
|
+
SOLE operation is `passthrough` emits its source bytes UNCHANGED —
|
|
9
|
+
no compression, no transformation, no Lambda dispatch. The API
|
|
10
|
+
self-completes the job at workflow-create/publish time: the job's
|
|
11
|
+
terminal output IS the upload's `{bucket, key}` unchanged.
|
|
12
|
+
|
|
13
|
+
**Purpose.** Lets an uploaded file enter a multi-input operation
|
|
14
|
+
(`merge` / `archive` / `image_watermark` / etc.) LOSSLESSLY. Since
|
|
15
|
+
V2 narrows `JobInputV2.source` to exclude upload-direct (`MultiInputSource`
|
|
16
|
+
— job_output / external_import / connection only), an upload that
|
|
17
|
+
must feed a multi-input op enters via a `passthrough` source job
|
|
18
|
+
referenced downstream by `{ type: job_output, from: <id> }`. This
|
|
19
|
+
preserves billing / DAG / lineage that direct upload-in-inputs[]
|
|
20
|
+
would bypass.
|
|
21
|
+
|
|
22
|
+
**Distinct from `operations: []`.** An empty `operations[]` on a
|
|
23
|
+
single-input upload job KEEPS its implicit-compress meaning (see
|
|
24
|
+
`POST /api/workflows` description). `passthrough` is the EXPLICIT
|
|
25
|
+
lossless opt-out chosen via the existing rule "non-empty
|
|
26
|
+
`operations[]` without `compress` = compression opt-out" — it is a
|
|
27
|
+
sole, named operation, not an empty chain.
|
|
28
|
+
|
|
29
|
+
**Never published to SNS.** Because the API self-completes the job
|
|
30
|
+
at publish, `passthrough` is INTENTIONALLY absent from the AsyncAPI
|
|
31
|
+
routing enums (`OperationType`, `OperationRequestAttributes.operation_type`)
|
|
32
|
+
and has no `ops-passthrough` queue. It never appears on the wire as
|
|
33
|
+
a request message.
|
|
34
|
+
|
|
35
|
+
Media-agnostic (no `mime_groups`): it accepts any uploaded MIME and
|
|
36
|
+
copies it verbatim, so there are no per-MIME options or constraints.
|
|
37
|
+
`availability: beta` — the API self-completion path is LIVE (the
|
|
38
|
+
inputs[]-narrowing + passthrough self-complete mechanism is deployed),
|
|
39
|
+
so workflow-create accepts `passthrough` source jobs and MUST NOT
|
|
40
|
+
return `feature_not_available`. Activated per ticket
|
|
41
|
+
[`4som89Uh`](https://trello.com/c/4som89Uh) + ADR-0004 (planned→beta
|
|
42
|
+
flip; self-complete code deployed API-side).
|
|
43
|
+
default: false
|
|
44
|
+
input_model: single
|
|
45
|
+
|
|
46
|
+
# DELIBERATELY absent from the operation chain matrix
|
|
47
|
+
# (docs/matrices/operation-chains.md). passthrough is a sole-op source
|
|
48
|
+
# node, not a chainable transform — with no `mime_groups` it produces
|
|
49
|
+
# zero matrix rows, which is correct: nothing chains onto or after it.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
schema_version: "2.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: render_variants
|
|
5
|
+
# Generate N resized/re-encoded image variants from ONE decoded source in a
|
|
6
|
+
# single operation (image fan-out). Per spike GA2kiRY8 / epic nksLtV28,
|
|
7
|
+
# ticket w3EwzHYd. Worker = the shared convert image-encode stack + FitMode
|
|
8
|
+
# (lambdas-confirmed reuse: image_convert.rs encode + domain/thumbnailer.rs).
|
|
9
|
+
#
|
|
10
|
+
# availability: planned — the worker (lambdas 08q0ySAc) + its SNS subscription
|
|
11
|
+
# (terraform MNuDYJaY) are downstream of this contract, so the server returns
|
|
12
|
+
# `feature_not_available` (422) until they are live. The planned -> beta flip
|
|
13
|
+
# is a SEPARATE lockstep cut once the worker + wire are up (the two-gate rule;
|
|
14
|
+
# never flip beta ahead of the publisher). Source MIMEs are jpeg/png/webp only
|
|
15
|
+
# — AVIF is encode-only in the worker stack (decode unsupported), so it is a
|
|
16
|
+
# valid `output_format` target but NOT a source input.
|
|
17
|
+
description: "Generate multiple resized / re-encoded image variants from a single source image in one operation (image fan-out)."
|
|
18
|
+
availability: planned
|
|
19
|
+
input_model: single
|
|
20
|
+
|
|
21
|
+
mime_groups:
|
|
22
|
+
image:
|
|
23
|
+
availability: planned
|
|
24
|
+
mimes:
|
|
25
|
+
- image/jpeg
|
|
26
|
+
- image/png
|
|
27
|
+
- image/webp
|
|
28
|
+
options:
|
|
29
|
+
targets:
|
|
30
|
+
type: array
|
|
31
|
+
required: true
|
|
32
|
+
minItems: 1
|
|
33
|
+
maxItems: 20
|
|
34
|
+
# Each target is encoded independently from the single decoded
|
|
35
|
+
# source. Width/height are individually optional at the type level;
|
|
36
|
+
# the cross-field rule (fit crop/scale => BOTH required; fit max =>
|
|
37
|
+
# at least one) is worker-enforced and rejected as `invalid_options`,
|
|
38
|
+
# not expressed structurally here (the option DSL has no per-item
|
|
39
|
+
# conditional-required primitive). Documented in prose below.
|
|
40
|
+
description: |
|
|
41
|
+
One output variant per entry (max 20). Each variant is resized /
|
|
42
|
+
re-encoded independently from the single decoded source; the
|
|
43
|
+
operation succeeds or fails **atomically** — there are no partial
|
|
44
|
+
outputs. Each result output echoes its target's `id` back as
|
|
45
|
+
`target_id` so callers can map outputs to the variants they asked
|
|
46
|
+
for.
|
|
47
|
+
|
|
48
|
+
Dimensions: `fit: max` needs at least one of `width` / `height`
|
|
49
|
+
(aspect preserved, output may be smaller than the box). `fit: crop`
|
|
50
|
+
and `fit: scale` require BOTH `width` and `height` (they produce an
|
|
51
|
+
exact-size output). A target whose dimensions exceed the source is
|
|
52
|
+
rejected (`invalid_options`) unless `allow_upscale: true`.
|
|
53
|
+
items:
|
|
54
|
+
type: object
|
|
55
|
+
required:
|
|
56
|
+
- id
|
|
57
|
+
properties:
|
|
58
|
+
id:
|
|
59
|
+
type: string
|
|
60
|
+
pattern: '^[A-Za-z0-9._-]+$'
|
|
61
|
+
maxLength: 64
|
|
62
|
+
# `id` must be unique within the array — this is the addressing
|
|
63
|
+
# key, so duplicates would map two outputs to one `target_id`.
|
|
64
|
+
# JSON Schema `uniqueItems` only catches wholesale-identical
|
|
65
|
+
# target objects, not same-`id`-different-dims; the worker
|
|
66
|
+
# rejects duplicate ids as `invalid_options` (worker-enforced,
|
|
67
|
+
# like the dimension rules).
|
|
68
|
+
description: |
|
|
69
|
+
Caller-assigned identifier, unique within the array
|
|
70
|
+
(duplicate ids are rejected as `invalid_options`). Echoed
|
|
71
|
+
verbatim as `target_id` on the matching result output — the
|
|
72
|
+
addressing contract.
|
|
73
|
+
width:
|
|
74
|
+
type: integer
|
|
75
|
+
minimum: 1
|
|
76
|
+
maximum: 16384
|
|
77
|
+
description: "Target width in pixels. Required together with height for fit crop/scale; for fit max, at least one of width/height is required."
|
|
78
|
+
height:
|
|
79
|
+
type: integer
|
|
80
|
+
minimum: 1
|
|
81
|
+
maximum: 16384
|
|
82
|
+
description: "Target height in pixels. Required together with width for fit crop/scale; for fit max, at least one of width/height is required."
|
|
83
|
+
fit:
|
|
84
|
+
type: string
|
|
85
|
+
enum:
|
|
86
|
+
- max
|
|
87
|
+
- crop
|
|
88
|
+
- scale
|
|
89
|
+
default: max
|
|
90
|
+
description: |
|
|
91
|
+
Resize mode. max = fit within the box, aspect preserved
|
|
92
|
+
(output may be smaller); needs at least one dimension.
|
|
93
|
+
crop = fill and trim to exact width x height. scale = force
|
|
94
|
+
exact width x height. crop and scale require both dimensions.
|
|
95
|
+
quality:
|
|
96
|
+
type: integer
|
|
97
|
+
minimum: 1
|
|
98
|
+
maximum: 100
|
|
99
|
+
default: 85
|
|
100
|
+
description: "Encode quality (lossy formats only — jpeg / webp / avif). Accepted but ignored for png (lossless)."
|
|
101
|
+
output_format:
|
|
102
|
+
type: string
|
|
103
|
+
enum:
|
|
104
|
+
- jpeg
|
|
105
|
+
- png
|
|
106
|
+
- webp
|
|
107
|
+
- avif
|
|
108
|
+
description: "Output format for this variant. When omitted, the source format is preserved."
|
|
109
|
+
background:
|
|
110
|
+
type: string
|
|
111
|
+
pattern: '^#[0-9A-Fa-f]{6}$'
|
|
112
|
+
default: "#FFFFFF"
|
|
113
|
+
description: "Background colour (hex #RRGGBB), applied only when flattening a transparent source into an opaque format (e.g. a PNG with alpha rendered to JPEG). Ignored otherwise."
|
|
114
|
+
allow_upscale:
|
|
115
|
+
type: boolean
|
|
116
|
+
default: false
|
|
117
|
+
description: "When false (default), a target whose dimensions exceed the source is rejected (`invalid_options`). Set true to permit upscaling. fit max never upscales."
|
|
@@ -9,14 +9,19 @@ operation:
|
|
|
9
9
|
into N outputs per the per-mime-group catalog. Mirrors the
|
|
10
10
|
`merge` / `convert` catalog-split-by-mime-group pattern.
|
|
11
11
|
|
|
12
|
-
**Three modes** (audio + video; the mode discriminator
|
|
13
|
-
|
|
12
|
+
**Three shared modes** (audio + video; the mode discriminator
|
|
13
|
+
gates which option applies per the `depends_on` rules in this
|
|
14
14
|
schema):
|
|
15
15
|
- `interval`: split every N numeric-seconds.
|
|
16
16
|
- `count`: split into N equal-duration pieces (integer 2..=200).
|
|
17
17
|
- `cut_points`: explicit cut points in numeric-seconds (strictly
|
|
18
18
|
increasing, no duplicates, each > 0 and < probed duration).
|
|
19
19
|
|
|
20
|
+
**Plus an audio-only `silence` mode** (`beta`, gated by the
|
|
21
|
+
`silence_mode_audio` feature): cut at detected silence gaps via
|
|
22
|
+
the worker's ffmpeg `silencedetect` filter. Video stays
|
|
23
|
+
three-mode.
|
|
24
|
+
|
|
20
25
|
**GIF + PDF use range-based selection** instead of three modes:
|
|
21
26
|
- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`
|
|
22
27
|
enum {png,webp,jpg}.
|
|
@@ -34,6 +39,8 @@ operation:
|
|
|
34
39
|
- `interval`: `ceil(probed_duration / interval) <= 200`
|
|
35
40
|
- `count`: enforced by the option's `min: 2 max: 200` range
|
|
36
41
|
- `cut_points`: `cut_points.len() + 1 <= 200`
|
|
42
|
+
- `silence` (audio): resolved segment count (detected gaps + 1)
|
|
43
|
+
`<= 200`; preflight rejects as `invalid_options` (422)
|
|
37
44
|
- PDF: resolved page count after expansion `<= 200`
|
|
38
45
|
(cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))
|
|
39
46
|
- GIF: resolved frame count after expansion `<= 200`
|
|
@@ -59,12 +66,16 @@ operation:
|
|
|
59
66
|
via `processing_class`). No schema-side discriminator beyond MIME
|
|
60
67
|
detection + `processing_class`.
|
|
61
68
|
|
|
62
|
-
`availability: beta` for the `audio`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
`
|
|
66
|
-
(
|
|
67
|
-
|
|
69
|
+
`availability: beta` for the `audio` and `video` mime_groups
|
|
70
|
+
(workers live on staging — shape-stable + opt-in, MUST NOT 422).
|
|
71
|
+
Video activates **both classes**: `video.processing_class.short_form`
|
|
72
|
+
AND `long_form` are `beta` — the `split-video-fargate` worker is proven
|
|
73
|
+
on staging (4GB+ HEVC input → keyframe-aligned segments;
|
|
74
|
+
[`rcwvUKhI`](https://trello.com/c/rcwvUKhI)). The `image_gif` and
|
|
75
|
+
`document_pdf` mime_groups stay `availability: planned` until their
|
|
76
|
+
cross-repo Lambda workers ship ([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)
|
|
77
|
+
+ lambdas L1); dispatch returns `feature_not_available` (422) for the
|
|
78
|
+
still-planned groups/classes until then.
|
|
68
79
|
|
|
69
80
|
Per ADR-0014.
|
|
70
81
|
default: false
|
|
@@ -72,13 +83,14 @@ operation:
|
|
|
72
83
|
|
|
73
84
|
features:
|
|
74
85
|
silence_mode_audio:
|
|
75
|
-
availability:
|
|
86
|
+
availability: beta
|
|
76
87
|
description: |
|
|
77
88
|
Silence-detect cut mode for audio (`mode: silence` —
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
server-side silence detection in the audio split worker).
|
|
90
|
+
`beta`: shape-stable + opt-in. The worker is built; the mode
|
|
91
|
+
ships dark until the API regenerates enum validation to accept
|
|
92
|
+
`mode: silence`. The `silence` enum value carries a matching
|
|
93
|
+
`per_value_availability: beta` on `audio.mode`.
|
|
82
94
|
|
|
83
95
|
mime_groups:
|
|
84
96
|
# Animated GIF base — parallel mime_group naming follows the
|
|
@@ -161,13 +173,17 @@ operation:
|
|
|
161
173
|
options:
|
|
162
174
|
mode:
|
|
163
175
|
type: enum
|
|
164
|
-
values: [interval, count, cut_points]
|
|
176
|
+
values: [interval, count, cut_points, silence]
|
|
165
177
|
default: interval
|
|
178
|
+
per_value_availability:
|
|
179
|
+
silence: { availability: beta }
|
|
166
180
|
description: |
|
|
167
181
|
Split strategy:
|
|
168
182
|
- `interval`: cut every `interval` seconds.
|
|
169
183
|
- `count`: cut into `count` equal-duration pieces.
|
|
170
184
|
- `cut_points`: cut at explicit timestamps.
|
|
185
|
+
- `silence`: cut at detected silence gaps (audio-only,
|
|
186
|
+
`beta` via the `silence_mode_audio` feature gate).
|
|
171
187
|
|
|
172
188
|
interval:
|
|
173
189
|
type: float
|
|
@@ -212,37 +228,79 @@ operation:
|
|
|
212
228
|
200-output cap declaratively. Only valid when
|
|
213
229
|
`mode: cut_points`.
|
|
214
230
|
|
|
231
|
+
silence_threshold_db:
|
|
232
|
+
type: float
|
|
233
|
+
max: 0.0
|
|
234
|
+
default: -50.0
|
|
235
|
+
depends_on: { mode: silence }
|
|
236
|
+
# Maps to the worker's silence-detection noise floor.
|
|
237
|
+
description: |
|
|
238
|
+
Noise floor below which audio counts as silence, in dBFS
|
|
239
|
+
(negative; 0.0 = full scale). Strictly negative in
|
|
240
|
+
practice; `max: 0.0` is the declarative ceiling (a 0 dB
|
|
241
|
+
"silence" floor is degenerate, like the strict bounds
|
|
242
|
+
documented in prose for `cut_points`). Only valid when
|
|
243
|
+
`mode: silence`.
|
|
244
|
+
|
|
245
|
+
silence_min_duration:
|
|
246
|
+
type: float
|
|
247
|
+
min: 0.001
|
|
248
|
+
default: 0.75
|
|
249
|
+
depends_on: { mode: silence }
|
|
250
|
+
# Maps to the worker's silence-detection minimum-duration parameter.
|
|
251
|
+
description: |
|
|
252
|
+
Minimum duration of a silence gap, in numeric seconds
|
|
253
|
+
(sub-second allowed), before it is treated as a cut point.
|
|
254
|
+
`min: 0.001` is the strict-positive sub-second idiom
|
|
255
|
+
(cf. `interval`). Only valid when `mode: silence`.
|
|
256
|
+
|
|
257
|
+
silence_handling:
|
|
258
|
+
type: enum
|
|
259
|
+
values: [keep_at_end]
|
|
260
|
+
default: keep_at_end
|
|
261
|
+
depends_on: { mode: silence }
|
|
262
|
+
description: |
|
|
263
|
+
How detected silence is handled at segment boundaries.
|
|
264
|
+
`keep_at_end`: trailing silence stays appended to the
|
|
265
|
+
preceding segment (no separate silence-only outputs).
|
|
266
|
+
Only valid when `mode: silence`.
|
|
267
|
+
|
|
215
268
|
precision:
|
|
216
269
|
type: enum
|
|
217
270
|
values: [fast, exact]
|
|
218
271
|
default: fast
|
|
272
|
+
# Don't use "keyframe" language here — that's video-only;
|
|
273
|
+
# audio drift is packet-boundary.
|
|
219
274
|
description: |
|
|
220
275
|
Cut precision. Under `fast`, audio cuts are
|
|
221
276
|
packet-boundary approximate (drift bounded by codec
|
|
222
277
|
packet size — typically <= 23ms for AAC, <= 26ms for
|
|
223
278
|
MP3). Under `exact`, the Lambda re-encodes to align cuts
|
|
224
279
|
precisely at the requested timestamps (slower, larger
|
|
225
|
-
output, but sample-accurate).
|
|
226
|
-
— that's video-only; audio drift is packet-boundary.
|
|
280
|
+
output, but sample-accurate).
|
|
227
281
|
|
|
228
282
|
# Video base — same three modes + precision + processing_class.
|
|
229
283
|
# Long-form routes to `split-video-fargate` (same OperationType,
|
|
230
284
|
# different worker per `processing_class`).
|
|
231
285
|
video:
|
|
232
|
-
availability:
|
|
286
|
+
availability: beta
|
|
233
287
|
mimes:
|
|
234
288
|
- video/mp4
|
|
235
289
|
- video/webm
|
|
290
|
+
- video/quicktime
|
|
236
291
|
processing_class:
|
|
237
292
|
short_form:
|
|
238
|
-
availability:
|
|
293
|
+
availability: beta
|
|
239
294
|
constraints:
|
|
240
295
|
max_input_duration: "PT5M"
|
|
241
296
|
max_input_size_bytes: 524288000
|
|
242
297
|
max_output_size_bytes: 524288000
|
|
243
298
|
long_form:
|
|
244
|
-
#
|
|
245
|
-
|
|
299
|
+
# planned -> beta (rcwvUKhI): split-video-fargate worker proven on
|
|
300
|
+
# staging (4GB+ HEVC -> keyframe-aligned segments). Routes per
|
|
301
|
+
# ADR-0014 §D10 — same split OperationType, dedicated stream-copy
|
|
302
|
+
# segmenter binary (NOT the long-form compress worker).
|
|
303
|
+
availability: beta
|
|
246
304
|
required_tier: pro
|
|
247
305
|
constraints: # baseline = Pro
|
|
248
306
|
max_input_duration: "PT12H"
|
|
@@ -25,10 +25,10 @@ operation:
|
|
|
25
25
|
text:
|
|
26
26
|
type: string
|
|
27
27
|
required: true
|
|
28
|
+
# Rendered with the bundled Liberation Sans (SIL OFL); a single
|
|
29
|
+
# text overlay is capped at 4 megapixels before rendering fails.
|
|
28
30
|
description: |
|
|
29
|
-
Watermark text. Must be non-empty.
|
|
30
|
-
Liberation Sans (SIL OFL). A single text overlay is capped
|
|
31
|
-
at 4 megapixels before rendering fails.
|
|
31
|
+
Watermark text. Must be non-empty.
|
|
32
32
|
|
|
33
33
|
font_size:
|
|
34
34
|
type: float
|
|
@@ -59,11 +59,11 @@ operation:
|
|
|
59
59
|
min: -360.0
|
|
60
60
|
max: 360.0
|
|
61
61
|
default: -45.0
|
|
62
|
+
# Tiled canvas is capped at 25 megapixels pre-rotation with a
|
|
63
|
+
# 5000 px maximum side length.
|
|
62
64
|
description: |
|
|
63
65
|
Rotation angle in degrees. Default -45° suits tiled mode
|
|
64
|
-
(angled diagonal pattern). Clamped to range.
|
|
65
|
-
capped at 25 megapixels pre-rotation with 5000 px maximum
|
|
66
|
-
side length.
|
|
66
|
+
(angled diagonal pattern). Clamped to range.
|
|
67
67
|
|
|
68
68
|
watermark_mode:
|
|
69
69
|
type: enum
|
|
@@ -58,9 +58,9 @@ operation:
|
|
|
58
58
|
text:
|
|
59
59
|
type: string
|
|
60
60
|
required: true
|
|
61
|
+
# Rendered with the bundled Liberation Sans (SIL OFL).
|
|
61
62
|
description: |
|
|
62
|
-
Watermark text. Must be non-empty.
|
|
63
|
-
Liberation Sans (SIL OFL).
|
|
63
|
+
Watermark text. Must be non-empty.
|
|
64
64
|
|
|
65
65
|
font_size:
|
|
66
66
|
type: float
|
|
@@ -4,12 +4,15 @@ operation:
|
|
|
4
4
|
type: video_watermark
|
|
5
5
|
availability: beta
|
|
6
6
|
description: |
|
|
7
|
-
Apply an image overlay
|
|
7
|
+
Apply an image overlay onto a base video
|
|
8
8
|
asset using FFmpeg's `overlay` filter. Multi-input role-based:
|
|
9
9
|
exactly one input with `role: base` (the source video) + exactly
|
|
10
|
-
one with `role: overlay` (the watermark image).
|
|
11
|
-
|
|
12
|
-
`
|
|
10
|
+
one with `role: overlay` (the watermark image). Each input is a
|
|
11
|
+
`MultiInputSource` — an external_import handle, a vault connection,
|
|
12
|
+
or an upstream `job_output` (uploads are NOT referenced directly
|
|
13
|
+
inside inputs[]). To use an uploaded base or overlay, feed it through
|
|
14
|
+
a `passthrough` source job and reference it via `{ type: job_output,
|
|
15
|
+
from: <id> }` (per ticket 4som89Uh).
|
|
13
16
|
|
|
14
17
|
**Dedicated operation, not an extension of `image_watermark`.**
|
|
15
18
|
`image_watermark` is pure-Rust/no-FFmpeg and handles
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@giveitsmaller/contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Generated contract types for GISL (Give It Smaller)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
"./operations/schemas/custom_luma.yaml": "./operations/schemas/custom_luma.yaml",
|
|
36
36
|
"./operations/schemas/image_watermark.yaml": "./operations/schemas/image_watermark.yaml",
|
|
37
37
|
"./operations/schemas/merge.yaml": "./operations/schemas/merge.yaml",
|
|
38
|
+
"./operations/schemas/passthrough.yaml": "./operations/schemas/passthrough.yaml",
|
|
39
|
+
"./operations/schemas/render_variants.yaml": "./operations/schemas/render_variants.yaml",
|
|
38
40
|
"./operations/schemas/split.yaml": "./operations/schemas/split.yaml",
|
|
39
41
|
"./operations/schemas/text_watermark.yaml": "./operations/schemas/text_watermark.yaml",
|
|
40
42
|
"./operations/schemas/thumbnail.yaml": "./operations/schemas/thumbnail.yaml",
|