@giveitsmaller/contracts 0.4.0 → 0.5.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 +455 -41
- package/availability/availability.json +527 -78
- package/dist/asyncapi/OperationType.d.ts +5 -1
- package/dist/asyncapi/OperationType.js +4 -0
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/ConnectionSource.d.ts +1 -1
- package/dist/openapi/models/ConnectionSource.js +1 -1
- package/dist/openapi/models/ContactRequest.d.ts +1 -1
- package/dist/openapi/models/ContactRequest.js +1 -1
- package/dist/openapi/models/ContactSubject.d.ts +1 -1
- package/dist/openapi/models/ContactSubject.js +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +3 -2
- package/dist/openapi/models/CreateWorkflow422Response.js +8 -1
- package/dist/openapi/models/CreditTransaction.d.ts +1 -1
- package/dist/openapi/models/CreditTransaction.js +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageResponse.js +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
- package/dist/openapi/models/Delivery.d.ts +1 -1
- package/dist/openapi/models/Delivery.js +1 -1
- package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
- package/dist/openapi/models/DeliveryOutputRef.js +1 -1
- package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlan.js +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
- package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanReason.js +1 -1
- package/dist/openapi/models/DeliverySelection.d.ts +1 -1
- package/dist/openapi/models/DeliverySelection.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/ExternalDestination.d.ts +1 -1
- package/dist/openapi/models/ExternalDestination.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
- package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
- package/dist/openapi/models/ExternalImportRequest.js +1 -1
- package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
- package/dist/openapi/models/ExternalImportToken.js +1 -1
- package/dist/openapi/models/ExternalSource.d.ts +1 -1
- package/dist/openapi/models/ExternalSource.js +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
- package/dist/openapi/models/FeatureViolation.d.ts +1 -1
- package/dist/openapi/models/FeatureViolation.js +1 -1
- package/dist/openapi/models/JobDefinition.d.ts +17 -6
- package/dist/openapi/models/JobDefinition.js +1 -1
- package/dist/openapi/models/JobDownload.d.ts +1 -1
- package/dist/openapi/models/JobDownload.js +1 -1
- package/dist/openapi/models/JobInputV2.d.ts +16 -1
- package/dist/openapi/models/JobInputV2.js +1 -1
- package/dist/openapi/models/JobOutputSource.d.ts +1 -1
- package/dist/openapi/models/JobOutputSource.js +1 -1
- package/dist/openapi/models/JobResponse.d.ts +1 -1
- package/dist/openapi/models/JobResponse.js +1 -1
- package/dist/openapi/models/JobStatus.d.ts +1 -1
- package/dist/openapi/models/JobStatus.js +1 -1
- package/dist/openapi/models/JobType.d.ts +1 -1
- package/dist/openapi/models/JobType.js +1 -1
- package/dist/openapi/models/LivenessResponse.d.ts +1 -1
- package/dist/openapi/models/LivenessResponse.js +1 -1
- package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser200Response.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/LogoutUser200Response.d.ts +1 -1
- package/dist/openapi/models/LogoutUser200Response.js +1 -1
- package/dist/openapi/models/MetadataResponse.d.ts +1 -1
- package/dist/openapi/models/MetadataResponse.js +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
- package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExif.js +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
- package/dist/openapi/models/MimeGroupSchema.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
- package/dist/openapi/models/MultipartPartListing.js +1 -1
- package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignRequest.js +1 -1
- package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignResponse.js +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusResponse.js +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/OperationDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationDefinition.js +1 -1
- package/dist/openapi/models/OperationDownload.d.ts +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -1
- package/dist/openapi/models/OperationInputModel.d.ts +4 -3
- package/dist/openapi/models/OperationInputModel.js +4 -3
- package/dist/openapi/models/OperationResponse.d.ts +1 -1
- package/dist/openapi/models/OperationResponse.js +1 -1
- package/dist/openapi/models/OperationResult.d.ts +1 -1
- package/dist/openapi/models/OperationResult.js +1 -1
- package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +23 -2
- package/dist/openapi/models/OperationSchemaDefinition.js +4 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +10 -2
- package/dist/openapi/models/OperationType.js +11 -3
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
- package/dist/openapi/models/OptionSchema.d.ts +1 -1
- package/dist/openapi/models/OptionSchema.js +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +47 -0
- package/dist/openapi/models/PerRoleCardinalityEntry.js +47 -0
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
- package/dist/openapi/models/PresignedUrlPart.js +1 -1
- package/dist/openapi/models/ProbePendingResponse.d.ts +171 -0
- package/dist/openapi/models/ProbePendingResponse.js +75 -0
- package/dist/openapi/models/ProcessingClass.d.ts +1 -1
- package/dist/openapi/models/ProcessingClass.js +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +60 -0
- package/dist/openapi/models/SseMultiOutputCompletion.js +51 -0
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +38 -0
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +43 -0
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +75 -0
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +61 -0
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +74 -0
- package/dist/openapi/models/SseMultiOutputResultEntry.js +51 -0
- package/dist/openapi/models/SseOperationCompletedData.d.ts +4 -4
- package/dist/openapi/models/SseOperationCompletedData.js +4 -4
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +60 -0
- package/dist/openapi/models/SseOperationCompletionResult.js +47 -0
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +72 -0
- package/dist/openapi/models/SseSingleOutputCompletion.js +62 -0
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionResponse.js +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile403Response.js +1 -1
- package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile422Response.js +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
- package/dist/openapi/models/UploadProbeResponse.d.ts +4 -2
- package/dist/openapi/models/UploadProbeResponse.js +1 -1
- package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
- package/dist/openapi/models/UploadProbeStatus.js +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +56 -0
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +54 -0
- package/dist/openapi/models/UploadResponse.d.ts +1 -1
- package/dist/openapi/models/UploadResponse.js +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadSource.d.ts +1 -1
- package/dist/openapi/models/UploadSource.js +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadThresholds.d.ts +1 -1
- package/dist/openapi/models/UploadThresholds.js +1 -1
- package/dist/openapi/models/UserTier.d.ts +1 -1
- package/dist/openapi/models/UserTier.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
- package/dist/openapi/models/WarningType.d.ts +1 -1
- package/dist/openapi/models/WarningType.js +1 -1
- package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
- package/dist/openapi/models/WebhookOperationContext.js +1 -1
- package/dist/openapi/models/WebhookPayload.d.ts +1 -1
- package/dist/openapi/models/WebhookPayload.js +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
- package/dist/openapi/models/WorkflowEdge.js +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
- package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
- package/dist/openapi/models/WorkflowProcessing.js +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSource.d.ts +1 -1
- package/dist/openapi/models/WorkflowSource.js +1 -1
- package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatus.js +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarning.js +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
- package/dist/openapi/models/index.d.ts +9 -0
- package/dist/openapi/models/index.js +9 -0
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/audio_to_video.d.ts +20 -0
- package/dist/operations/audio_to_video.js +17 -0
- package/dist/operations/audio_to_video.metadata.d.ts +2 -0
- package/dist/operations/audio_to_video.metadata.js +29 -0
- package/dist/operations/image_watermark.d.ts +0 -18
- package/dist/operations/image_watermark.js +0 -12
- package/dist/operations/image_watermark.metadata.js +0 -41
- package/dist/operations/index.d.ts +8 -0
- package/dist/operations/index.js +8 -0
- package/dist/operations/metadata-types.d.ts +17 -0
- package/dist/operations/split.d.ts +50 -0
- package/dist/operations/split.js +34 -0
- package/dist/operations/split.metadata.d.ts +2 -0
- package/dist/operations/split.metadata.js +103 -0
- package/dist/operations/video_text_watermark.d.ts +31 -0
- package/dist/operations/video_text_watermark.js +22 -0
- package/dist/operations/video_text_watermark.metadata.d.ts +2 -0
- package/dist/operations/video_text_watermark.metadata.js +65 -0
- package/dist/operations/video_watermark.d.ts +18 -0
- package/dist/operations/video_watermark.js +13 -0
- package/dist/operations/video_watermark.metadata.d.ts +2 -0
- package/dist/operations/video_watermark.metadata.js +52 -0
- package/openapi/api.yaml +523 -72
- package/operations/schemas/audio_to_video.yaml +122 -0
- package/operations/schemas/image_watermark.yaml +15 -103
- package/operations/schemas/split.yaml +309 -0
- package/operations/schemas/thumbnail.yaml +7 -1
- package/operations/schemas/video_text_watermark.yaml +174 -0
- package/operations/schemas/video_watermark.yaml +136 -0
- package/package.json +8 -3
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
schema_version: "2.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: audio_to_video
|
|
5
|
+
availability: planned
|
|
6
|
+
description: |
|
|
7
|
+
Produce a video from an audio input plus an OPTIONAL still image
|
|
8
|
+
overlay. Use cases: podcast → YouTube uploads, audio-only tracks
|
|
9
|
+
that need a video container for platforms requiring it, branded
|
|
10
|
+
audio releases with a static cover image.
|
|
11
|
+
|
|
12
|
+
**Role asymmetry.** First role-based operation on the contract
|
|
13
|
+
with an OPTIONAL role — REQUIRED `base` (audio source) +
|
|
14
|
+
OPTIONAL `overlay` (still image, 0..1). When `overlay` is
|
|
15
|
+
omitted, the video uses a solid `background_color`. The
|
|
16
|
+
machine-readable cardinality lives in `per_role_cardinality`
|
|
17
|
+
on this schema (per ADR-0015). API consumption site:
|
|
18
|
+
`OperationInputRoleValidator` (rule table) consumed by
|
|
19
|
+
`SchemaValidationService.php` in `compression_api`.
|
|
20
|
+
|
|
21
|
+
**Input vs output asymmetry.** The single `mime_groups.audio`
|
|
22
|
+
block keys the INPUT MIME family (the `base` role input is
|
|
23
|
+
audio). The OUTPUT is always video — `output_format` controls
|
|
24
|
+
the container; `mime_groups` is NOT the output type. Mirrors
|
|
25
|
+
the `audio_overlay.video` group pattern (input-keyed).
|
|
26
|
+
|
|
27
|
+
Re-encode required (audio → video composition always re-encodes).
|
|
28
|
+
Lower framerate + FFmpeg `-tune stillimage` keeps file size
|
|
29
|
+
tiny when the overlay is a still image (the common case).
|
|
30
|
+
|
|
31
|
+
Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) +
|
|
32
|
+
ADR-0015. `availability: planned` until the cross-repo Lambda
|
|
33
|
+
support ships; the API rejects workflow-create with
|
|
34
|
+
`feature_not_available` (422) until then.
|
|
35
|
+
|
|
36
|
+
default: false
|
|
37
|
+
input_model: multi
|
|
38
|
+
min_inputs: 1
|
|
39
|
+
max_inputs: 2
|
|
40
|
+
|
|
41
|
+
# Per-role input-count constraints — first role-based op with
|
|
42
|
+
# an OPTIONAL role. See ADR-0015 for the vocab primitive.
|
|
43
|
+
# Arithmetic-consistency rule (CI-checked):
|
|
44
|
+
# - sum(role.min) == min_inputs (1 + 0 = 1)
|
|
45
|
+
# - sum(role.max) == max_inputs (1 + 1 = 2)
|
|
46
|
+
per_role_cardinality:
|
|
47
|
+
base:
|
|
48
|
+
min: 1
|
|
49
|
+
max: 1
|
|
50
|
+
overlay:
|
|
51
|
+
min: 0
|
|
52
|
+
max: 1
|
|
53
|
+
|
|
54
|
+
mime_groups:
|
|
55
|
+
audio:
|
|
56
|
+
# INPUT MIME family for the `base` role. Output is video via
|
|
57
|
+
# `output_format` — NOT determined by this mime_group key.
|
|
58
|
+
mimes:
|
|
59
|
+
- audio/mpeg
|
|
60
|
+
- audio/aac
|
|
61
|
+
- audio/wav
|
|
62
|
+
- audio/x-wav
|
|
63
|
+
- audio/flac
|
|
64
|
+
- audio/ogg
|
|
65
|
+
- audio/opus
|
|
66
|
+
- audio/x-m4a
|
|
67
|
+
options:
|
|
68
|
+
output_resolution:
|
|
69
|
+
type: enum
|
|
70
|
+
values: [hd_720p, fhd_1080p, sd_480p]
|
|
71
|
+
default: hd_720p
|
|
72
|
+
description: |
|
|
73
|
+
Output video resolution. `hd_720p` = 1280×720 (default),
|
|
74
|
+
`fhd_1080p` = 1920×1080, `sd_480p` = 854×480. Choose
|
|
75
|
+
lower for small file size; higher when the overlay image
|
|
76
|
+
quality warrants it.
|
|
77
|
+
background_color:
|
|
78
|
+
type: string
|
|
79
|
+
default: "#000000"
|
|
80
|
+
description: |
|
|
81
|
+
Hex `#RRGGBB` solid background colour. Used only when
|
|
82
|
+
`overlay` is omitted (no image input). When an `overlay`
|
|
83
|
+
image is provided, the background colour is invisible
|
|
84
|
+
behind the image (subject to `image_fit`).
|
|
85
|
+
image_fit:
|
|
86
|
+
type: enum
|
|
87
|
+
values: [contain, cover, stretch]
|
|
88
|
+
default: contain
|
|
89
|
+
description: |
|
|
90
|
+
How to fit the overlay image into the output frame.
|
|
91
|
+
`contain` = letterbox (preserve aspect ratio, may show
|
|
92
|
+
background); `cover` = crop (fill the frame, may crop
|
|
93
|
+
the image); `stretch` = distort to fit (preserves no
|
|
94
|
+
aspect ratio). Default `contain` preserves the image
|
|
95
|
+
aesthetic.
|
|
96
|
+
framerate:
|
|
97
|
+
type: integer
|
|
98
|
+
min: 1
|
|
99
|
+
max: 60
|
|
100
|
+
default: 2
|
|
101
|
+
description: |
|
|
102
|
+
Output video framerate. Default `2` fps — combined with
|
|
103
|
+
FFmpeg `-tune stillimage`, keeps the file size tiny for
|
|
104
|
+
the common case of a single still overlay. Raise for
|
|
105
|
+
animated overlays (not supported in V1 — overlay must be
|
|
106
|
+
a still image) or platform requirements (e.g. YouTube
|
|
107
|
+
recommends 24+ fps; some platforms accept lower).
|
|
108
|
+
output_format:
|
|
109
|
+
type: enum
|
|
110
|
+
values: [mp4]
|
|
111
|
+
default: mp4
|
|
112
|
+
description: |
|
|
113
|
+
Output container format. V1 supports `mp4` only. Future
|
|
114
|
+
additions (webm, mov) await Lambda follow-up.
|
|
115
|
+
|
|
116
|
+
# NOTE: role-MIME constraint (base MUST be audio, overlay MUST be
|
|
117
|
+
# image) is documented in prose only for V1. ADR-0015 records this
|
|
118
|
+
# as future-work — a `per_role_mime_compat` vocab primitive can be
|
|
119
|
+
# added when a second role-based op needs the asymmetry (today
|
|
120
|
+
# only audio_to_video has it). The API edge validator enforces
|
|
121
|
+
# the role→MIME constraint at workflow-create time per the prose
|
|
122
|
+
# contract.
|
|
@@ -10,11 +10,15 @@ operation:
|
|
|
10
10
|
per WorkflowSource (ticket I10).
|
|
11
11
|
|
|
12
12
|
Stable today for static-image bases (image/jpeg, image/png,
|
|
13
|
-
image/webp); animated GIF
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
image/webp); animated GIF bases are advertised as `planned` via
|
|
14
|
+
the parallel `image_gif` mime_group — schema is contract-defined,
|
|
15
|
+
dispatch returns `feature_not_available` (422) until Lambda
|
|
16
|
+
support ships. Per Tension 1 (ADR-0001) + plan v5 §F4 round 6.
|
|
17
|
+
|
|
18
|
+
**Video bases are NOT supported by `image_watermark`.** Use the
|
|
19
|
+
dedicated `video_watermark` operation
|
|
20
|
+
(`schemas/operations/video_watermark.yaml`) which routes through
|
|
21
|
+
FFmpeg overlay + re-encode. Per ADR-0013.
|
|
18
22
|
|
|
19
23
|
**Audio is explicitly NOT supported.** For audio overlay (DJ tags,
|
|
20
24
|
podcast intros, jingles), use the `audio_overlay` operation
|
|
@@ -22,7 +26,7 @@ operation:
|
|
|
22
26
|
`availability: planned`).
|
|
23
27
|
|
|
24
28
|
Source capped at 25 megapixels for image bases (V1 watermark
|
|
25
|
-
precedent retained); per-frame caps for GIF
|
|
29
|
+
precedent retained); per-frame caps for animated GIF bases will be
|
|
26
30
|
defined when the corresponding Lambda support ships.
|
|
27
31
|
Per ADR-0004 §"V2 JobDefinition" + plan v5 §F1.
|
|
28
32
|
default: false
|
|
@@ -188,100 +192,8 @@ operation:
|
|
|
188
192
|
width. Aspect ratio preserved. Omit to use the original
|
|
189
193
|
overlay size.
|
|
190
194
|
|
|
191
|
-
# Video base
|
|
192
|
-
#
|
|
193
|
-
#
|
|
194
|
-
#
|
|
195
|
-
#
|
|
196
|
-
video:
|
|
197
|
-
availability: planned
|
|
198
|
-
mimes:
|
|
199
|
-
- video/mp4
|
|
200
|
-
- video/webm
|
|
201
|
-
processing_class:
|
|
202
|
-
# F8 long-form tier (per ticket I15-CONS Decisions §2). Both
|
|
203
|
-
# classes `planned` because the video mime_group itself is
|
|
204
|
-
# `planned` at the group level. Forward-compatible with future
|
|
205
|
-
# Lambda activation.
|
|
206
|
-
short_form:
|
|
207
|
-
availability: planned
|
|
208
|
-
constraints:
|
|
209
|
-
max_input_duration: "PT5M"
|
|
210
|
-
max_input_size_bytes: 524288000
|
|
211
|
-
max_output_size_bytes: 524288000
|
|
212
|
-
long_form:
|
|
213
|
-
# Stays planned (CON-1 flips only compress.video.long_form +
|
|
214
|
-
# merge.video.long_form_re_encode). Per-tier caps per ADR-0011 —
|
|
215
|
-
# advertised shape; availability gates execution off (422).
|
|
216
|
-
availability: planned
|
|
217
|
-
required_tier: pro
|
|
218
|
-
constraints: # baseline = Pro
|
|
219
|
-
max_input_duration: "PT12H"
|
|
220
|
-
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
221
|
-
max_output_size_bytes: 5000000000
|
|
222
|
-
per_tier_constraints:
|
|
223
|
-
enterprise:
|
|
224
|
-
max_input_size_bytes: 120000000000 # 120 GB (Enterprise enforced ceiling)
|
|
225
|
-
max_output_size_bytes: 120000000000
|
|
226
|
-
options:
|
|
227
|
-
anchor:
|
|
228
|
-
type: enum
|
|
229
|
-
values:
|
|
230
|
-
- top_left
|
|
231
|
-
- top_center
|
|
232
|
-
- top_right
|
|
233
|
-
- center_left
|
|
234
|
-
- center
|
|
235
|
-
- center_right
|
|
236
|
-
- bottom_left
|
|
237
|
-
- bottom_center
|
|
238
|
-
- bottom_right
|
|
239
|
-
default: bottom_right
|
|
240
|
-
description: |
|
|
241
|
-
9-grid anchor position on each video frame. Same semantics
|
|
242
|
-
as the `image` group.
|
|
243
|
-
|
|
244
|
-
margin_x:
|
|
245
|
-
type: string
|
|
246
|
-
pattern: '^\d+(\.\d+)?(px|%)$'
|
|
247
|
-
default: "0px"
|
|
248
|
-
description: |
|
|
249
|
-
Horizontal offset from the anchor in pixels or percentage of
|
|
250
|
-
video frame width. Anchor-relative; positive moves toward
|
|
251
|
-
the frame centre.
|
|
252
|
-
|
|
253
|
-
**`anchor: center` exception.** Same rejection rule as the
|
|
254
|
-
`image` mime_group — non-zero `margin_x` with
|
|
255
|
-
`anchor: center` is rejected by the API at workflow-create
|
|
256
|
-
time as `invalid_options` (HTTP 422).
|
|
257
|
-
|
|
258
|
-
margin_y:
|
|
259
|
-
type: string
|
|
260
|
-
pattern: '^\d+(\.\d+)?(px|%)$'
|
|
261
|
-
default: "0px"
|
|
262
|
-
description: |
|
|
263
|
-
Vertical offset from the anchor in pixels or percentage of
|
|
264
|
-
video frame height. Anchor-relative; positive moves toward
|
|
265
|
-
the frame centre.
|
|
266
|
-
|
|
267
|
-
**`anchor: center` exception.** Same rejection rule as the
|
|
268
|
-
`image` mime_group — non-zero `margin_y` with
|
|
269
|
-
`anchor: center` is rejected by the API at workflow-create
|
|
270
|
-
time as `invalid_options` (HTTP 422).
|
|
271
|
-
|
|
272
|
-
opacity:
|
|
273
|
-
type: float
|
|
274
|
-
min: 0.0
|
|
275
|
-
max: 1.0
|
|
276
|
-
default: 0.5
|
|
277
|
-
description: |
|
|
278
|
-
Overlay opacity (0 = fully transparent, 1 = fully opaque).
|
|
279
|
-
Clamped to range.
|
|
280
|
-
|
|
281
|
-
overlay_width:
|
|
282
|
-
type: string
|
|
283
|
-
pattern: '^\d+(\.\d+)?(px|%)$'
|
|
284
|
-
description: |
|
|
285
|
-
Optional overlay width as pixels or percentage of video
|
|
286
|
-
frame width. Aspect ratio preserved. Omit to use the
|
|
287
|
-
original overlay size.
|
|
195
|
+
# Video base mime_group REMOVED per ADR-0013 — video watermarking
|
|
196
|
+
# is now owned by the dedicated `video_watermark` operation
|
|
197
|
+
# (`schemas/operations/video_watermark.yaml`). The previous
|
|
198
|
+
# `availability: planned` advertising had no consumers; the
|
|
199
|
+
# dedicated operation is the canonical landing site.
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
schema_version: "2.0.0"
|
|
2
|
+
|
|
3
|
+
operation:
|
|
4
|
+
type: split
|
|
5
|
+
availability: planned
|
|
6
|
+
description: |
|
|
7
|
+
Fan one input file into N outputs across GIF, PDF, audio, and
|
|
8
|
+
video MIME families. Single-input — one input file per job, fanned
|
|
9
|
+
into N outputs per the per-mime-group catalog. Mirrors the
|
|
10
|
+
`merge` / `convert` catalog-split-by-mime-group pattern.
|
|
11
|
+
|
|
12
|
+
**Three modes** (audio + video; the mode discriminator gates which
|
|
13
|
+
of the three options applies per the `depends_on` rules in this
|
|
14
|
+
schema):
|
|
15
|
+
- `interval`: split every N numeric-seconds.
|
|
16
|
+
- `count`: split into N equal-duration pieces (integer 2..=200).
|
|
17
|
+
- `cut_points`: explicit cut points in numeric-seconds (strictly
|
|
18
|
+
increasing, no duplicates, each > 0 and < probed duration).
|
|
19
|
+
|
|
20
|
+
**GIF + PDF use range-based selection** instead of three modes:
|
|
21
|
+
- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`
|
|
22
|
+
enum {png,webp,jpg}.
|
|
23
|
+
- PDF (`document_pdf`): `page_range` OR `page_groups` (mutually
|
|
24
|
+
exclusive per `depends_on`).
|
|
25
|
+
|
|
26
|
+
**Wire format**: numeric seconds (floats allowed for sub-second
|
|
27
|
+
precision). NOT ISO 8601 duration strings. Matches FFmpeg /
|
|
28
|
+
Cloudinary / Shotstack / AWS MediaConvert conventions.
|
|
29
|
+
|
|
30
|
+
**200-output hard cap** per ADR-0009 §D5
|
|
31
|
+
(`OperationResult.outputs[].maxItems: 200`). Preflight rejects
|
|
32
|
+
requests exceeding this BEFORE work as `invalid_options` (422).
|
|
33
|
+
Cap math by mode:
|
|
34
|
+
- `interval`: `ceil(probed_duration / interval) <= 200`
|
|
35
|
+
- `count`: enforced by the option's `min: 2 max: 200` range
|
|
36
|
+
- `cut_points`: `cut_points.len() + 1 <= 200`
|
|
37
|
+
- PDF: resolved page count after expansion `<= 200`
|
|
38
|
+
(cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))
|
|
39
|
+
- GIF: resolved frame count after expansion `<= 200`
|
|
40
|
+
|
|
41
|
+
**Output naming**: 3-digit zero-padded — `output-001` ..
|
|
42
|
+
`output-200`. Matches the convert PDF→N precedent.
|
|
43
|
+
|
|
44
|
+
**Output envelope binding** (per ADR-0014 + ADR-0009 §D2):
|
|
45
|
+
- `image_gif`: `PositionIndexed` (frame stream-position 0-based
|
|
46
|
+
ordinal)
|
|
47
|
+
- `document_pdf`: `PageIndexed` (1-based gapless page index)
|
|
48
|
+
- `audio`: `PositionIndexed` (cut stream-position ordinal)
|
|
49
|
+
- `video`: `PositionIndexed` (cut stream-position ordinal)
|
|
50
|
+
|
|
51
|
+
**`precision` flag** (audio + video only): `fast` (default) =
|
|
52
|
+
packet-boundary approximate cuts; `exact` = re-encode-aligned
|
|
53
|
+
precise cuts. Mime_group scoping is the gate — precision does
|
|
54
|
+
NOT apply to GIF or PDF (frame extraction is exact and PDF page
|
|
55
|
+
selection is exact by definition).
|
|
56
|
+
|
|
57
|
+
**Long-form video** routes to a separate `split-video-fargate`
|
|
58
|
+
Lambda (same `split` OperationType, different worker; routing
|
|
59
|
+
via `processing_class`). No schema-side discriminator beyond MIME
|
|
60
|
+
detection + `processing_class`.
|
|
61
|
+
|
|
62
|
+
`availability: planned` until the cross-repo Lambda support ships
|
|
63
|
+
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + lambdas L1).
|
|
64
|
+
Dispatch returns `feature_not_available` (422) until then.
|
|
65
|
+
|
|
66
|
+
Per ADR-0014.
|
|
67
|
+
default: false
|
|
68
|
+
input_model: single
|
|
69
|
+
|
|
70
|
+
features:
|
|
71
|
+
silence_mode_audio:
|
|
72
|
+
availability: planned
|
|
73
|
+
description: |
|
|
74
|
+
Silence-detect cut mode for audio (`mode: silence` —
|
|
75
|
+
Cinavia/Resemble territory, server-side silence detection).
|
|
76
|
+
OUT of V1 (Lambda support not yet shipped); declared as a
|
|
77
|
+
future-work feature here so SDK consumers see the gate.
|
|
78
|
+
Picked up as a separate post-launch ticket.
|
|
79
|
+
|
|
80
|
+
mime_groups:
|
|
81
|
+
# Animated GIF base — parallel mime_group naming follows the
|
|
82
|
+
# `image_gif` precedent established by `image_watermark.image_gif`.
|
|
83
|
+
image_gif:
|
|
84
|
+
mimes:
|
|
85
|
+
- image/gif
|
|
86
|
+
options:
|
|
87
|
+
frame_range:
|
|
88
|
+
type: string
|
|
89
|
+
required: true
|
|
90
|
+
pattern: '^\d+-\d+$'
|
|
91
|
+
description: |
|
|
92
|
+
Frame range as `start-end` integer pair (e.g. "1-100").
|
|
93
|
+
REQUIRED in V1 — no silent default. Without explicit
|
|
94
|
+
range, a 30-second GIF at 24 fps = 720 frames would blow
|
|
95
|
+
the 200-output cap on every input. Both start and end are
|
|
96
|
+
1-based, inclusive. Resolved frame count MUST be <= 200
|
|
97
|
+
(`invalid_options` 422 if exceeded).
|
|
98
|
+
|
|
99
|
+
output_format:
|
|
100
|
+
type: enum
|
|
101
|
+
values: [png, webp, jpg]
|
|
102
|
+
default: png
|
|
103
|
+
description: |
|
|
104
|
+
Output image format for each extracted frame. Aspect ratio
|
|
105
|
+
and dimensions preserved from the source GIF.
|
|
106
|
+
|
|
107
|
+
# PDF base — page-split via qpdf or pdftk equivalent.
|
|
108
|
+
document_pdf:
|
|
109
|
+
mimes:
|
|
110
|
+
- application/pdf
|
|
111
|
+
options:
|
|
112
|
+
mode:
|
|
113
|
+
type: enum
|
|
114
|
+
values: [page_range, page_groups]
|
|
115
|
+
default: page_range
|
|
116
|
+
description: |
|
|
117
|
+
PDF split strategy:
|
|
118
|
+
- `page_range`: select pages via a range expression.
|
|
119
|
+
- `page_groups`: group N pages per output.
|
|
120
|
+
|
|
121
|
+
page_range:
|
|
122
|
+
type: string
|
|
123
|
+
pattern: '^\d+(-\d+)?(,\d+(-\d+)?)*$'
|
|
124
|
+
required: true
|
|
125
|
+
depends_on: { mode: page_range }
|
|
126
|
+
description: |
|
|
127
|
+
Page-range expression (e.g. "1-5", "1,3,5-7", "10-20").
|
|
128
|
+
1-based inclusive. Required when `mode: page_range`.
|
|
129
|
+
Resolved page count MUST be <= 200 (`invalid_options`
|
|
130
|
+
422 if exceeded — cross-ref
|
|
131
|
+
[`WgCqnMRa`](https://trello.com/c/WgCqnMRa)).
|
|
132
|
+
|
|
133
|
+
page_groups:
|
|
134
|
+
type: integer
|
|
135
|
+
min: 2
|
|
136
|
+
max: 200
|
|
137
|
+
required: true
|
|
138
|
+
depends_on: { mode: page_groups }
|
|
139
|
+
description: |
|
|
140
|
+
Group N pages per output (e.g. `page_groups: 5` on a
|
|
141
|
+
50-page PDF produces 10 outputs of 5 pages each).
|
|
142
|
+
Required when `mode: page_groups`. The page-count cap
|
|
143
|
+
applies to the resolved group count: `ceil(total_pages /
|
|
144
|
+
page_groups) <= 200`.
|
|
145
|
+
|
|
146
|
+
# Audio base — three modes + precision flag.
|
|
147
|
+
audio:
|
|
148
|
+
mimes:
|
|
149
|
+
- audio/mpeg
|
|
150
|
+
- audio/aac
|
|
151
|
+
- audio/ogg
|
|
152
|
+
- audio/flac
|
|
153
|
+
- audio/wav
|
|
154
|
+
- audio/mp4
|
|
155
|
+
options:
|
|
156
|
+
mode:
|
|
157
|
+
type: enum
|
|
158
|
+
values: [interval, count, cut_points]
|
|
159
|
+
default: interval
|
|
160
|
+
description: |
|
|
161
|
+
Split strategy:
|
|
162
|
+
- `interval`: cut every `interval` seconds.
|
|
163
|
+
- `count`: cut into `count` equal-duration pieces.
|
|
164
|
+
- `cut_points`: cut at explicit timestamps.
|
|
165
|
+
|
|
166
|
+
interval:
|
|
167
|
+
type: float
|
|
168
|
+
min: 0.001
|
|
169
|
+
required: true
|
|
170
|
+
depends_on: { mode: interval }
|
|
171
|
+
description: |
|
|
172
|
+
Cut interval in numeric seconds (float, sub-second
|
|
173
|
+
allowed). `ceil(probed_duration / interval) <= 200`
|
|
174
|
+
preflight rule applies. Only valid when `mode: interval`.
|
|
175
|
+
|
|
176
|
+
count:
|
|
177
|
+
type: integer
|
|
178
|
+
min: 2
|
|
179
|
+
max: 200
|
|
180
|
+
required: true
|
|
181
|
+
depends_on: { mode: count }
|
|
182
|
+
description: |
|
|
183
|
+
Number of equal-duration output pieces. Range 2..=200
|
|
184
|
+
enforced declaratively (1 = no-op, rejected;
|
|
185
|
+
cap = 200-output ceiling). Only valid when `mode: count`.
|
|
186
|
+
|
|
187
|
+
cut_points:
|
|
188
|
+
type: array
|
|
189
|
+
items:
|
|
190
|
+
type: number
|
|
191
|
+
exclusiveMinimum: 0
|
|
192
|
+
minItems: 1
|
|
193
|
+
maxItems: 199
|
|
194
|
+
uniqueItems: true
|
|
195
|
+
required: true
|
|
196
|
+
depends_on: { mode: cut_points }
|
|
197
|
+
description: |
|
|
198
|
+
Cut points in numeric seconds (float, sub-second allowed).
|
|
199
|
+
Array entries; NOT a comma-separated string. MUST be
|
|
200
|
+
strictly increasing (preflight-validated against probe);
|
|
201
|
+
each entry > 0 and < probed duration. `uniqueItems: true`
|
|
202
|
+
catches accidental duplicates at the OpenAPI layer; strict
|
|
203
|
+
monotonicity and the < probed-duration bound are
|
|
204
|
+
preflight-checked at workflow-create. Output count =
|
|
205
|
+
`cut_points.length + 1`; `maxItems: 199` expresses the
|
|
206
|
+
200-output cap declaratively. Only valid when
|
|
207
|
+
`mode: cut_points`.
|
|
208
|
+
|
|
209
|
+
precision:
|
|
210
|
+
type: enum
|
|
211
|
+
values: [fast, exact]
|
|
212
|
+
default: fast
|
|
213
|
+
description: |
|
|
214
|
+
Cut precision. Under `fast`, audio cuts are
|
|
215
|
+
packet-boundary approximate (drift bounded by codec
|
|
216
|
+
packet size — typically <= 23ms for AAC, <= 26ms for
|
|
217
|
+
MP3). Under `exact`, the Lambda re-encodes to align cuts
|
|
218
|
+
precisely at the requested timestamps (slower, larger
|
|
219
|
+
output, but sample-accurate). Avoid "keyframe" language
|
|
220
|
+
— that's video-only; audio drift is packet-boundary.
|
|
221
|
+
|
|
222
|
+
# Video base — same three modes + precision + processing_class.
|
|
223
|
+
# Long-form routes to `split-video-fargate` (same OperationType,
|
|
224
|
+
# different worker per `processing_class`).
|
|
225
|
+
video:
|
|
226
|
+
mimes:
|
|
227
|
+
- video/mp4
|
|
228
|
+
- video/webm
|
|
229
|
+
processing_class:
|
|
230
|
+
short_form:
|
|
231
|
+
availability: planned
|
|
232
|
+
constraints:
|
|
233
|
+
max_input_duration: "PT5M"
|
|
234
|
+
max_input_size_bytes: 524288000
|
|
235
|
+
max_output_size_bytes: 524288000
|
|
236
|
+
long_form:
|
|
237
|
+
# Routes to split-video-fargate worker per ADR-0014.
|
|
238
|
+
availability: planned
|
|
239
|
+
required_tier: pro
|
|
240
|
+
constraints: # baseline = Pro
|
|
241
|
+
max_input_duration: "PT12H"
|
|
242
|
+
max_input_size_bytes: 5000000000 # 5 GB (Pro)
|
|
243
|
+
max_output_size_bytes: 5000000000
|
|
244
|
+
per_tier_constraints:
|
|
245
|
+
enterprise:
|
|
246
|
+
max_input_size_bytes: 120000000000 # 120 GB
|
|
247
|
+
max_output_size_bytes: 120000000000
|
|
248
|
+
options:
|
|
249
|
+
mode:
|
|
250
|
+
type: enum
|
|
251
|
+
values: [interval, count, cut_points]
|
|
252
|
+
default: interval
|
|
253
|
+
description: |
|
|
254
|
+
Split strategy:
|
|
255
|
+
- `interval`: cut every `interval` seconds.
|
|
256
|
+
- `count`: cut into `count` equal-duration pieces.
|
|
257
|
+
- `cut_points`: cut at explicit timestamps.
|
|
258
|
+
|
|
259
|
+
interval:
|
|
260
|
+
type: float
|
|
261
|
+
min: 0.001
|
|
262
|
+
required: true
|
|
263
|
+
depends_on: { mode: interval }
|
|
264
|
+
description: |
|
|
265
|
+
Cut interval in numeric seconds. `ceil(probed_duration /
|
|
266
|
+
interval) <= 200`. Only valid when `mode: interval`.
|
|
267
|
+
|
|
268
|
+
count:
|
|
269
|
+
type: integer
|
|
270
|
+
min: 2
|
|
271
|
+
max: 200
|
|
272
|
+
required: true
|
|
273
|
+
depends_on: { mode: count }
|
|
274
|
+
description: |
|
|
275
|
+
Number of equal-duration output pieces. Range 2..=200.
|
|
276
|
+
Only valid when `mode: count`.
|
|
277
|
+
|
|
278
|
+
cut_points:
|
|
279
|
+
type: array
|
|
280
|
+
items:
|
|
281
|
+
type: number
|
|
282
|
+
exclusiveMinimum: 0
|
|
283
|
+
minItems: 1
|
|
284
|
+
maxItems: 199
|
|
285
|
+
uniqueItems: true
|
|
286
|
+
required: true
|
|
287
|
+
depends_on: { mode: cut_points }
|
|
288
|
+
description: |
|
|
289
|
+
Cut points in numeric seconds (float, sub-second allowed).
|
|
290
|
+
Array entries; NOT a comma-separated string. Strictly
|
|
291
|
+
increasing (preflight-validated against probe); each entry
|
|
292
|
+
> 0 and < probed duration. `uniqueItems: true` catches
|
|
293
|
+
accidental duplicates at the OpenAPI layer; strict
|
|
294
|
+
monotonicity and the < probed-duration bound are
|
|
295
|
+
preflight-checked at workflow-create. Output count =
|
|
296
|
+
`cut_points.length + 1`; `maxItems: 199` expresses the
|
|
297
|
+
200-output cap declaratively. Only valid when
|
|
298
|
+
`mode: cut_points`.
|
|
299
|
+
|
|
300
|
+
precision:
|
|
301
|
+
type: enum
|
|
302
|
+
values: [fast, exact]
|
|
303
|
+
default: fast
|
|
304
|
+
description: |
|
|
305
|
+
Cut precision. Under `fast`, video cuts are keyframe-
|
|
306
|
+
aligned (drift bounded by GOP size — typically up to 1-2
|
|
307
|
+
seconds depending on encoder). Under `exact`, the Lambda
|
|
308
|
+
re-encodes to align cuts precisely at the requested
|
|
309
|
+
timestamps (slower, larger output, but frame-accurate).
|
|
@@ -117,7 +117,13 @@ operation:
|
|
|
117
117
|
min: 1
|
|
118
118
|
default: 1
|
|
119
119
|
depends_on: { source: page }
|
|
120
|
-
description:
|
|
120
|
+
description: >-
|
|
121
|
+
1-based index of the printed page to render, after print-layout
|
|
122
|
+
pagination is applied. For office formats this is the page in the
|
|
123
|
+
LibreOffice PDF export — NOT a 1:1 sheet/slide index: a spreadsheet
|
|
124
|
+
sheet may span multiple printed pages and multi-sheet workbooks
|
|
125
|
+
paginate their sheets in order. For PDF inputs it is the PDF page
|
|
126
|
+
number directly.
|
|
121
127
|
width:
|
|
122
128
|
type: integer
|
|
123
129
|
min: 1
|