@giveitsmaller/contracts 0.4.0 → 0.7.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 +706 -83
- 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/EndpointProjection.d.ts +98 -0
- package/dist/openapi/models/EndpointProjection.js +78 -0
- 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 +29 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +4 -1
- package/dist/openapi/models/OptionSchema.d.ts +2 -1
- package/dist/openapi/models/OptionSchema.js +3 -2
- 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/SseCompletionBase.d.ts +63 -0
- package/dist/openapi/models/SseCompletionBase.js +50 -0
- 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 +73 -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 +100 -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 +69 -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 +11 -0
- package/dist/openapi/models/index.js +11 -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 +772 -72
- package/operations/schemas/audio_to_video.yaml +122 -0
- package/operations/schemas/compress.yaml +0 -3
- package/operations/schemas/convert.yaml +14 -1
- 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
package/asyncapi/events.yaml
CHANGED
|
@@ -17,15 +17,21 @@ info:
|
|
|
17
17
|
compression Lambda handles `compress` for exactly one media type.
|
|
18
18
|
- **`gisl-{env}-{region}-operations`** — non-compression operations
|
|
19
19
|
(thumbnail, image_watermark, text_watermark, merge, archive, convert,
|
|
20
|
-
custom_luma, audio_overlay, audio_watermark
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
custom_luma, audio_overlay, audio_watermark, audio_to_video,
|
|
21
|
+
video_watermark, video_text_watermark, split). Filter attribute:
|
|
22
|
+
`operation_type`. Subscriptions: one queue per operation type,
|
|
23
|
+
plus four thumbnail sub-type queues during the migration window.
|
|
24
|
+
`custom_luma`, `audio_overlay`, `audio_watermark`,
|
|
25
|
+
`audio_to_video`, `video_watermark`, `video_text_watermark`, and
|
|
26
|
+
`split` are `availability: planned` (per
|
|
27
|
+
[I29](https://trello.com/c/EPUE5Vs1) +
|
|
25
28
|
[I19](https://trello.com/c/Xr3Z4GBF) +
|
|
26
|
-
[I20](https://trello.com/c/omiCq7Vn)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
[I20](https://trello.com/c/omiCq7Vn) +
|
|
30
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) +
|
|
31
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) +
|
|
32
|
+
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu)) — their queues are
|
|
33
|
+
declared but receive no traffic until Lambda ships.
|
|
34
|
+
`audio_watermark` additionally requires `enterprise` tier.
|
|
29
35
|
|
|
30
36
|
**Publisher branching rule** (implemented in `compression_api`'s
|
|
31
37
|
`AwsSnsOperationPublisherAdapter` under Option A):
|
|
@@ -159,7 +165,7 @@ channels:
|
|
|
159
165
|
address: gisl-{env}-{region}-operations
|
|
160
166
|
description: |
|
|
161
167
|
SNS topic where the API publishes **non-compression** operation
|
|
162
|
-
requests (thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark). Filter
|
|
168
|
+
requests (thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark, audio_to_video, video_watermark, video_text_watermark, split). Filter
|
|
163
169
|
attribute: `operation_type` (single-attribute filter policy).
|
|
164
170
|
Subscriptions fan out to per-operation-type queues, keyed by
|
|
165
171
|
`operation_type` value.
|
|
@@ -184,6 +190,23 @@ channels:
|
|
|
184
190
|
(gated by `availability: planned` until Lambda ships per
|
|
185
191
|
[I19](https://trello.com/c/Xr3Z4GBF) — same `feature_not_
|
|
186
192
|
available` 422 gating)
|
|
193
|
+
- `operation_type = audio_to_video` -> `ops-audio-to-video` queue
|
|
194
|
+
(gated by `availability: planned` until Lambda ships per
|
|
195
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) — same
|
|
196
|
+
`feature_not_available` 422 gating)
|
|
197
|
+
- `operation_type = video_watermark` -> `ops-video-watermark`
|
|
198
|
+
queue (gated by `availability: planned` until Lambda ships per
|
|
199
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — same gating)
|
|
200
|
+
- `operation_type = video_text_watermark` ->
|
|
201
|
+
`ops-video-text-watermark` queue (gated by
|
|
202
|
+
`availability: planned` until Lambda ships per
|
|
203
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — same gating)
|
|
204
|
+
- `operation_type = split` -> `ops-split` queue (gated by
|
|
205
|
+
`availability: planned` until Lambda ships per
|
|
206
|
+
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu) — same gating;
|
|
207
|
+
long-form video splits route via `processing_class` to the
|
|
208
|
+
`split-video-fargate` worker, same OperationType, different
|
|
209
|
+
worker)
|
|
187
210
|
- `operation_type = audio_watermark` -> `ops-audio-watermark`
|
|
188
211
|
queue (gated by `availability: planned` +
|
|
189
212
|
`required_tier: enterprise` per
|
|
@@ -435,13 +458,15 @@ channels:
|
|
|
435
458
|
(per JobInputV2.role). Backed by the operation-image-watermark
|
|
436
459
|
Lambda (cross-repo X1 retirement target).
|
|
437
460
|
|
|
438
|
-
Stable today for image bases (jpeg/png/webp). Animated GIF
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
461
|
+
Stable today for image bases (jpeg/png/webp). Animated GIF is
|
|
462
|
+
advertised in `image_watermark.yaml` as `planned` via the
|
|
463
|
+
`image_gif` mime_group (per I5 — Trello AKZiOXnd); the publisher
|
|
464
|
+
MAY route that `media_group` value to this queue once Lambda
|
|
465
|
+
support ships. Until then the API returns `feature_not_available`
|
|
466
|
+
(422) at workflow-create time and those messages do not reach the
|
|
467
|
+
queue. Video bases are NOT routed here — they go to
|
|
468
|
+
`ops-video-watermark` for the dedicated `video_watermark`
|
|
469
|
+
operation per ADR-0013. Per ADR-0004 + I4-CONS + I5 + ADR-0013.
|
|
445
470
|
parameters:
|
|
446
471
|
env:
|
|
447
472
|
description: Environment (local, stg, prod)
|
|
@@ -578,6 +603,132 @@ channels:
|
|
|
578
603
|
operationRequest:
|
|
579
604
|
$ref: '#/components/messages/OperationRequestMessage'
|
|
580
605
|
|
|
606
|
+
opsAudioToVideo:
|
|
607
|
+
address: gisl-{env}-{region}-ops-audio-to-video
|
|
608
|
+
description: |
|
|
609
|
+
SQS queue for audio_to_video operations (produce video from an
|
|
610
|
+
audio input + optional still image overlay). Subscribed to the
|
|
611
|
+
`operations` SNS topic with filter
|
|
612
|
+
`operation_type = audio_to_video`. Multi-input role-based with
|
|
613
|
+
role asymmetry (Path B with `role: base` audio REQUIRED +
|
|
614
|
+
`role: overlay` image OPTIONAL — see `per_role_cardinality`
|
|
615
|
+
on the operation schema).
|
|
616
|
+
|
|
617
|
+
`availability: planned` per the operation schema; the API
|
|
618
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
619
|
+
until the Lambda ships, so traffic does not reach this queue
|
|
620
|
+
today. Backed by the `operation-audio-to-video` Lambda
|
|
621
|
+
(cross-repo follow-up — lambdas pre-launch epic Wave A).
|
|
622
|
+
|
|
623
|
+
Per ADR-0004 + ADR-0015
|
|
624
|
+
([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
|
|
625
|
+
parameters:
|
|
626
|
+
env:
|
|
627
|
+
description: Environment (local, stg, prod)
|
|
628
|
+
region:
|
|
629
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
630
|
+
messages:
|
|
631
|
+
operationRequest:
|
|
632
|
+
$ref: '#/components/messages/OperationRequestMessage'
|
|
633
|
+
|
|
634
|
+
opsSplit:
|
|
635
|
+
address: gisl-{env}-{region}-ops-split
|
|
636
|
+
description: |
|
|
637
|
+
SQS queue for split operations (fan one input file into N
|
|
638
|
+
outputs across GIF / PDF / audio / video MIME families).
|
|
639
|
+
Subscribed to the `operations` SNS topic with filter
|
|
640
|
+
`operation_type = split`. Single-input — `media_group` derives
|
|
641
|
+
from the input MIME prefix per the existing single-input rule
|
|
642
|
+
(no operation-specific conditional needed in
|
|
643
|
+
OperationRequestAttributes).
|
|
644
|
+
|
|
645
|
+
`availability: planned` per the operation schema; the API
|
|
646
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
647
|
+
until the Lambda ships, so traffic does not reach this queue
|
|
648
|
+
today. Backed by the `operation-split` Lambda (cross-repo
|
|
649
|
+
follow-up — lambdas pre-launch epic Wave A, ticket
|
|
650
|
+
[DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
|
|
651
|
+
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
652
|
+
|
|
653
|
+
**Long-form video splits** route to a separate
|
|
654
|
+
`split-video-fargate` worker via `processing_class` (same
|
|
655
|
+
OperationType, different worker — mirrors the
|
|
656
|
+
`compress` / `compress-video-fargate` topology). The schema
|
|
657
|
+
uses the standard processing_class short_form/long_form block
|
|
658
|
+
on the video mime_group; no schema-side discriminator beyond
|
|
659
|
+
MIME detection.
|
|
660
|
+
|
|
661
|
+
Per ADR-0004 + ADR-0014.
|
|
662
|
+
parameters:
|
|
663
|
+
env:
|
|
664
|
+
description: Environment (local, stg, prod)
|
|
665
|
+
region:
|
|
666
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
667
|
+
messages:
|
|
668
|
+
operationRequest:
|
|
669
|
+
$ref: '#/components/messages/OperationRequestMessage'
|
|
670
|
+
|
|
671
|
+
opsVideoWatermark:
|
|
672
|
+
address: gisl-{env}-{region}-ops-video-watermark
|
|
673
|
+
description: |
|
|
674
|
+
SQS queue for video_watermark operations (image overlay onto a
|
|
675
|
+
base video via FFmpeg's `overlay` filter). Subscribed to the
|
|
676
|
+
`operations` SNS topic with filter
|
|
677
|
+
`operation_type = video_watermark`. Multi-input role-based
|
|
678
|
+
(Path B with `role: base` video + `role: overlay` image,
|
|
679
|
+
exactly one of each per `per_role_cardinality`).
|
|
680
|
+
|
|
681
|
+
`availability: planned` per the operation schema; the API
|
|
682
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
683
|
+
until the Lambda ships, so traffic does not reach this queue
|
|
684
|
+
today. Backed by the `operation-video-watermark` Lambda (cross-
|
|
685
|
+
repo follow-up — lambdas pre-launch epic Wave A, ticket
|
|
686
|
+
[DbpJpVtm](https://trello.com/c/DbpJpVtm)).
|
|
687
|
+
|
|
688
|
+
Distinct from `image_watermark` (pure-Rust image-only) — see
|
|
689
|
+
ADR-0013 for the split rationale. Audio stream-copy passthrough.
|
|
690
|
+
|
|
691
|
+
Per ADR-0004 + ADR-0013
|
|
692
|
+
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
693
|
+
parameters:
|
|
694
|
+
env:
|
|
695
|
+
description: Environment (local, stg, prod)
|
|
696
|
+
region:
|
|
697
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
698
|
+
messages:
|
|
699
|
+
operationRequest:
|
|
700
|
+
$ref: '#/components/messages/OperationRequestMessage'
|
|
701
|
+
|
|
702
|
+
opsVideoTextWatermark:
|
|
703
|
+
address: gisl-{env}-{region}-ops-video-text-watermark
|
|
704
|
+
description: |
|
|
705
|
+
SQS queue for video_text_watermark operations (text overlay
|
|
706
|
+
onto a base video via FFmpeg's `drawtext` filter). Subscribed
|
|
707
|
+
to the `operations` SNS topic with filter
|
|
708
|
+
`operation_type = video_text_watermark`. Single-input — text
|
|
709
|
+
and styling come from options.
|
|
710
|
+
|
|
711
|
+
`availability: planned` per the operation schema; the API
|
|
712
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
713
|
+
until the Lambda ships, so traffic does not reach this queue
|
|
714
|
+
today. Backed by the `operation-video-text-watermark` Lambda
|
|
715
|
+
(cross-repo follow-up — lambdas pre-launch epic Wave A,
|
|
716
|
+
ticket [mQdunjv6](https://trello.com/c/mQdunjv6)).
|
|
717
|
+
|
|
718
|
+
Distinct from `text_watermark` (pure-Rust image drawtext) —
|
|
719
|
+
see ADR-0013. Audio stream-copy passthrough.
|
|
720
|
+
|
|
721
|
+
Per ADR-0004 + ADR-0013
|
|
722
|
+
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
723
|
+
parameters:
|
|
724
|
+
env:
|
|
725
|
+
description: Environment (local, stg, prod)
|
|
726
|
+
region:
|
|
727
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
728
|
+
messages:
|
|
729
|
+
operationRequest:
|
|
730
|
+
$ref: '#/components/messages/OperationRequestMessage'
|
|
731
|
+
|
|
581
732
|
opsAudioWatermark:
|
|
582
733
|
address: gisl-{env}-{region}-ops-audio-watermark
|
|
583
734
|
description: |
|
|
@@ -744,6 +895,62 @@ channels:
|
|
|
744
895
|
region:
|
|
745
896
|
description: AWS region abbreviation (euw1, use1, etc.)
|
|
746
897
|
|
|
898
|
+
opsAudioToVideoDlq:
|
|
899
|
+
address: gisl-{env}-{region}-ops-audio-to-video-dlq
|
|
900
|
+
description: |
|
|
901
|
+
DLQ for failed audio_to_video operations (per ticket
|
|
902
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) / ADR-0015).
|
|
903
|
+
Messages land here after 5 failed processing attempts. No
|
|
904
|
+
traffic reaches this queue while audio_to_video is
|
|
905
|
+
`availability: planned`.
|
|
906
|
+
parameters:
|
|
907
|
+
env:
|
|
908
|
+
description: Environment (local, stg, prod)
|
|
909
|
+
region:
|
|
910
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
911
|
+
|
|
912
|
+
opsVideoWatermarkDlq:
|
|
913
|
+
address: gisl-{env}-{region}-ops-video-watermark-dlq
|
|
914
|
+
description: |
|
|
915
|
+
DLQ for failed video_watermark operations (per ticket
|
|
916
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) / ADR-0013).
|
|
917
|
+
Messages land here after 5 failed processing attempts. No
|
|
918
|
+
traffic reaches this queue while video_watermark is
|
|
919
|
+
`availability: planned`.
|
|
920
|
+
parameters:
|
|
921
|
+
env:
|
|
922
|
+
description: Environment (local, stg, prod)
|
|
923
|
+
region:
|
|
924
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
925
|
+
|
|
926
|
+
opsVideoTextWatermarkDlq:
|
|
927
|
+
address: gisl-{env}-{region}-ops-video-text-watermark-dlq
|
|
928
|
+
description: |
|
|
929
|
+
DLQ for failed video_text_watermark operations (per ticket
|
|
930
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) / ADR-0013).
|
|
931
|
+
Messages land here after 5 failed processing attempts. No
|
|
932
|
+
traffic reaches this queue while video_text_watermark is
|
|
933
|
+
`availability: planned`.
|
|
934
|
+
parameters:
|
|
935
|
+
env:
|
|
936
|
+
description: Environment (local, stg, prod)
|
|
937
|
+
region:
|
|
938
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
939
|
+
|
|
940
|
+
opsSplitDlq:
|
|
941
|
+
address: gisl-{env}-{region}-ops-split-dlq
|
|
942
|
+
description: |
|
|
943
|
+
DLQ for failed split operations (per ticket
|
|
944
|
+
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu) / ADR-0014).
|
|
945
|
+
Messages land here after 5 failed processing attempts. No
|
|
946
|
+
traffic reaches this queue while split is `availability:
|
|
947
|
+
planned`.
|
|
948
|
+
parameters:
|
|
949
|
+
env:
|
|
950
|
+
description: Environment (local, stg, prod)
|
|
951
|
+
region:
|
|
952
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
953
|
+
|
|
747
954
|
# ============================================
|
|
748
955
|
# UPLOAD PROBE (per ticket vBlEurU7 + M2 Epic SrHwuvIl)
|
|
749
956
|
# ============================================
|
|
@@ -944,7 +1151,8 @@ operations:
|
|
|
944
1151
|
operation where `operation_type != compress` — that is, thumbnail
|
|
945
1152
|
(including the four sub-type values during the migration window),
|
|
946
1153
|
image_watermark, text_watermark, merge, archive, convert,
|
|
947
|
-
custom_luma, audio_overlay, audio_watermark
|
|
1154
|
+
custom_luma, audio_overlay, audio_watermark, audio_to_video,
|
|
1155
|
+
video_watermark, video_text_watermark, split. The target SNS
|
|
948
1156
|
topic filters subscriptions on `operation_type` alone.
|
|
949
1157
|
|
|
950
1158
|
**Message attributes set on this branch:** `{operation_type,
|
|
@@ -1187,6 +1395,85 @@ operations:
|
|
|
1187
1395
|
messages:
|
|
1188
1396
|
- $ref: '#/channels/opsAudioOverlay/messages/operationRequest'
|
|
1189
1397
|
|
|
1398
|
+
consumeSplitOperation:
|
|
1399
|
+
action: receive
|
|
1400
|
+
channel:
|
|
1401
|
+
$ref: '#/channels/opsSplit'
|
|
1402
|
+
summary: Process split operation
|
|
1403
|
+
description: |
|
|
1404
|
+
The `operation-split` Lambda (cross-repo follow-up — lambdas
|
|
1405
|
+
pre-launch epic Wave A, not yet shipped) consumes split
|
|
1406
|
+
requests routed by `operation_type=split`. Single-input —
|
|
1407
|
+
`media_group` derives from the input MIME prefix per the
|
|
1408
|
+
existing single-input rule. `availability: planned`; the API
|
|
1409
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
1410
|
+
until the Lambda ships, so traffic does not reach this channel
|
|
1411
|
+
today. Long-form video splits route to a separate
|
|
1412
|
+
`split-video-fargate` worker via `processing_class`.
|
|
1413
|
+
Per ADR-0004 + ADR-0014
|
|
1414
|
+
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
1415
|
+
messages:
|
|
1416
|
+
- $ref: '#/channels/opsSplit/messages/operationRequest'
|
|
1417
|
+
|
|
1418
|
+
consumeVideoWatermarkOperation:
|
|
1419
|
+
action: receive
|
|
1420
|
+
channel:
|
|
1421
|
+
$ref: '#/channels/opsVideoWatermark'
|
|
1422
|
+
summary: Process video_watermark operation
|
|
1423
|
+
description: |
|
|
1424
|
+
The `operation-video-watermark` Lambda (cross-repo follow-up —
|
|
1425
|
+
lambdas pre-launch epic Wave A, not yet shipped) consumes
|
|
1426
|
+
video_watermark requests routed by
|
|
1427
|
+
`operation_type=video_watermark`. Multi-input role-based with
|
|
1428
|
+
`role: base` video + `role: overlay` image (exactly one of
|
|
1429
|
+
each per `per_role_cardinality`). `availability: planned`; the
|
|
1430
|
+
API rejects workflow-create with `feature_not_available` (422)
|
|
1431
|
+
until the Lambda ships, so traffic does not reach this channel
|
|
1432
|
+
today.
|
|
1433
|
+
Per ADR-0004 + ADR-0013
|
|
1434
|
+
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
1435
|
+
messages:
|
|
1436
|
+
- $ref: '#/channels/opsVideoWatermark/messages/operationRequest'
|
|
1437
|
+
|
|
1438
|
+
consumeVideoTextWatermarkOperation:
|
|
1439
|
+
action: receive
|
|
1440
|
+
channel:
|
|
1441
|
+
$ref: '#/channels/opsVideoTextWatermark'
|
|
1442
|
+
summary: Process video_text_watermark operation
|
|
1443
|
+
description: |
|
|
1444
|
+
The `operation-video-text-watermark` Lambda (cross-repo
|
|
1445
|
+
follow-up — lambdas pre-launch epic Wave A, not yet shipped)
|
|
1446
|
+
consumes video_text_watermark requests routed by
|
|
1447
|
+
`operation_type=video_text_watermark`. Single-input — text
|
|
1448
|
+
and styling come from options (no `role` field on the source
|
|
1449
|
+
entry). `availability: planned`; the API rejects workflow-
|
|
1450
|
+
create with `feature_not_available` (422) until the Lambda
|
|
1451
|
+
ships, so traffic does not reach this channel today.
|
|
1452
|
+
Per ADR-0004 + ADR-0013
|
|
1453
|
+
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
1454
|
+
messages:
|
|
1455
|
+
- $ref: '#/channels/opsVideoTextWatermark/messages/operationRequest'
|
|
1456
|
+
|
|
1457
|
+
consumeAudioToVideoOperation:
|
|
1458
|
+
action: receive
|
|
1459
|
+
channel:
|
|
1460
|
+
$ref: '#/channels/opsAudioToVideo'
|
|
1461
|
+
summary: Process audio_to_video operation
|
|
1462
|
+
description: |
|
|
1463
|
+
The `operation-audio-to-video` Lambda (cross-repo follow-up —
|
|
1464
|
+
lambdas pre-launch epic Wave A, not yet shipped) consumes
|
|
1465
|
+
audio_to_video requests routed by
|
|
1466
|
+
`operation_type=audio_to_video`. Multi-input role-based with
|
|
1467
|
+
role asymmetry (Path B with `role: base` audio REQUIRED +
|
|
1468
|
+
`role: overlay` image OPTIONAL per `per_role_cardinality`).
|
|
1469
|
+
`availability: planned`; the API rejects workflow-create with
|
|
1470
|
+
`feature_not_available` (422) until the Lambda ships, so
|
|
1471
|
+
traffic does not reach this channel today.
|
|
1472
|
+
Per ADR-0004 + ADR-0015
|
|
1473
|
+
([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
|
|
1474
|
+
messages:
|
|
1475
|
+
- $ref: '#/channels/opsAudioToVideo/messages/operationRequest'
|
|
1476
|
+
|
|
1190
1477
|
consumeAudioWatermarkOperation:
|
|
1191
1478
|
action: receive
|
|
1192
1479
|
channel:
|
|
@@ -1401,17 +1688,19 @@ components:
|
|
|
1401
1688
|
Message sent by the API to request processing of any
|
|
1402
1689
|
**non-compression** operation (thumbnail, image_watermark,
|
|
1403
1690
|
text_watermark, merge, archive, convert, custom_luma,
|
|
1404
|
-
audio_overlay, audio_watermark
|
|
1405
|
-
|
|
1406
|
-
`
|
|
1691
|
+
audio_overlay, audio_watermark, audio_to_video,
|
|
1692
|
+
video_watermark, video_text_watermark). Published to the
|
|
1693
|
+
`operations` SNS topic; routed by the single-attribute
|
|
1694
|
+
filter `operation_type` to one of the ops-family queues.
|
|
1407
1695
|
|
|
1408
1696
|
**SNS Message Attributes:**
|
|
1409
1697
|
- `operation_type`: always present. Values: `thumbnail`,
|
|
1410
1698
|
`thumbnail_image`, `thumbnail_video`, `thumbnail_document`,
|
|
1411
1699
|
`thumbnail_office`, `image_watermark`, `text_watermark`,
|
|
1412
1700
|
`merge`, `archive`, `convert`, `custom_luma`,
|
|
1413
|
-
`audio_overlay`, `audio_watermark
|
|
1414
|
-
|
|
1701
|
+
`audio_overlay`, `audio_watermark`, `audio_to_video`,
|
|
1702
|
+
`video_watermark`, `video_text_watermark`. Used by SNS as
|
|
1703
|
+
the filter attribute on the `operations` topic.
|
|
1415
1704
|
- `media_group`: informational metadata, present for every
|
|
1416
1705
|
operation except `archive` (which is media-agnostic). Values:
|
|
1417
1706
|
`image`, `video`, `audio`, `document`. **Not** used by SNS as
|
|
@@ -1430,12 +1719,17 @@ components:
|
|
|
1430
1719
|
`required_tier: enterprise` so workflow-create rejects with
|
|
1431
1720
|
422 + 403 today.
|
|
1432
1721
|
- Multi-input operations (merge, archive, image_watermark,
|
|
1433
|
-
custom_luma, audio_overlay): use `sources`
|
|
1434
|
-
additionally requires `output_type`.
|
|
1435
|
-
custom_luma,
|
|
1436
|
-
`JobInputV2.role`.
|
|
1437
|
-
|
|
1438
|
-
|
|
1722
|
+
custom_luma, audio_overlay, audio_to_video): use `sources`
|
|
1723
|
+
array. Merge additionally requires `output_type`.
|
|
1724
|
+
image_watermark, custom_luma, audio_overlay, and
|
|
1725
|
+
audio_to_video use `role` per `JobInputV2.role`.
|
|
1726
|
+
audio_to_video has role asymmetry — REQUIRED `base` (audio)
|
|
1727
|
+
+ OPTIONAL `overlay` (image 0..1) per
|
|
1728
|
+
`per_role_cardinality`; sum-of-role-minima drives the
|
|
1729
|
+
minimum `sources` count (1 for audio_to_video; 2 for all
|
|
1730
|
+
other role-based ops today). custom_luma, audio_overlay,
|
|
1731
|
+
and audio_to_video are `availability: planned` so
|
|
1732
|
+
workflow-create rejects with 422 today.
|
|
1439
1733
|
|
|
1440
1734
|
**Migration window note.** During the thumbnail sub-type
|
|
1441
1735
|
migration, both `operation_type=thumbnail` (legacy) and
|
|
@@ -2151,6 +2445,14 @@ components:
|
|
|
2151
2445
|
`required_tier: enterprise` per
|
|
2152
2446
|
[I20](https://trello.com/c/omiCq7Vn), so this constraint is
|
|
2153
2447
|
contract-defined but not exercised today.
|
|
2448
|
+
- For `operation_type = audio_to_video`, `media_group` must
|
|
2449
|
+
equal `audio` (derived from the `base` role input MIME
|
|
2450
|
+
prefix per ADR-0015 — the operation is multi-input
|
|
2451
|
+
role-based with role asymmetry: required audio base +
|
|
2452
|
+
optional image overlay; routing follows the `base` role).
|
|
2453
|
+
The operation is `availability: planned` per
|
|
2454
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN), so this
|
|
2455
|
+
constraint is contract-defined but not exercised today.
|
|
2154
2456
|
- For `operation_type = image_watermark`, `media_group` must
|
|
2155
2457
|
equal `image` while only the stable `image` mime_group is
|
|
2156
2458
|
dispatchable. The schema declares `image_gif` and `video`
|
|
@@ -2190,6 +2492,10 @@ components:
|
|
|
2190
2492
|
- custom_luma
|
|
2191
2493
|
- audio_overlay
|
|
2192
2494
|
- audio_watermark
|
|
2495
|
+
- audio_to_video
|
|
2496
|
+
- video_watermark
|
|
2497
|
+
- video_text_watermark
|
|
2498
|
+
- split
|
|
2193
2499
|
media_group:
|
|
2194
2500
|
type: string
|
|
2195
2501
|
description: |
|
|
@@ -2286,6 +2592,30 @@ components:
|
|
|
2286
2592
|
properties:
|
|
2287
2593
|
media_group:
|
|
2288
2594
|
const: document
|
|
2595
|
+
- if:
|
|
2596
|
+
properties:
|
|
2597
|
+
operation_type:
|
|
2598
|
+
const: audio_to_video
|
|
2599
|
+
then:
|
|
2600
|
+
properties:
|
|
2601
|
+
media_group:
|
|
2602
|
+
const: audio
|
|
2603
|
+
- if:
|
|
2604
|
+
properties:
|
|
2605
|
+
operation_type:
|
|
2606
|
+
const: video_watermark
|
|
2607
|
+
then:
|
|
2608
|
+
properties:
|
|
2609
|
+
media_group:
|
|
2610
|
+
const: video
|
|
2611
|
+
- if:
|
|
2612
|
+
properties:
|
|
2613
|
+
operation_type:
|
|
2614
|
+
const: video_text_watermark
|
|
2615
|
+
then:
|
|
2616
|
+
properties:
|
|
2617
|
+
media_group:
|
|
2618
|
+
const: video
|
|
2289
2619
|
|
|
2290
2620
|
# ============================================
|
|
2291
2621
|
# OPERATION REQUEST PAYLOAD SCHEMA (shared by both messages)
|
|
@@ -2304,10 +2634,11 @@ components:
|
|
|
2304
2634
|
`file_type` is required.
|
|
2305
2635
|
|
|
2306
2636
|
**Multi-input operations** (merge, archive, image_watermark,
|
|
2307
|
-
custom_luma, audio_overlay): use `sources`
|
|
2308
|
-
has `bucket` + `key`. Merge entries may
|
|
2309
|
-
overrides (e.g. transition type). Merge
|
|
2310
|
-
`output_type`. custom_luma
|
|
2637
|
+
custom_luma, audio_overlay, audio_to_video): use `sources`
|
|
2638
|
+
array. Each entry has `bucket` + `key`. Merge entries may
|
|
2639
|
+
include per-input overrides (e.g. transition type). Merge
|
|
2640
|
+
also requires `output_type`. custom_luma, audio_overlay, and
|
|
2641
|
+
audio_to_video are
|
|
2311
2642
|
`availability: planned` so workflow-create rejects with 422
|
|
2312
2643
|
today; the wire shape is contract-defined.
|
|
2313
2644
|
|
|
@@ -2331,6 +2662,8 @@ components:
|
|
|
2331
2662
|
- text_watermark
|
|
2332
2663
|
- convert
|
|
2333
2664
|
- audio_watermark
|
|
2665
|
+
- video_text_watermark
|
|
2666
|
+
- split
|
|
2334
2667
|
then:
|
|
2335
2668
|
required:
|
|
2336
2669
|
- file_type
|
|
@@ -2339,7 +2672,7 @@ components:
|
|
|
2339
2672
|
- if:
|
|
2340
2673
|
properties:
|
|
2341
2674
|
operation_type:
|
|
2342
|
-
enum: [merge, archive, image_watermark, custom_luma, audio_overlay]
|
|
2675
|
+
enum: [merge, archive, image_watermark, custom_luma, audio_overlay, audio_to_video, video_watermark]
|
|
2343
2676
|
then:
|
|
2344
2677
|
required:
|
|
2345
2678
|
- sources
|
|
@@ -2404,16 +2737,24 @@ components:
|
|
|
2404
2737
|
type: array
|
|
2405
2738
|
description: |
|
|
2406
2739
|
Input files for multi-input operations (merge, archive,
|
|
2407
|
-
image_watermark, custom_luma, audio_overlay
|
|
2408
|
-
specifies an S3 location.
|
|
2409
|
-
(concatenation order). Per-input
|
|
2410
|
-
transition) can be inlined on each entry.
|
|
2740
|
+
image_watermark, custom_luma, audio_overlay,
|
|
2741
|
+
audio_to_video). Each entry specifies an S3 location.
|
|
2742
|
+
Order matters for merge (concatenation order). Per-input
|
|
2743
|
+
overrides (e.g. transition) can be inlined on each entry.
|
|
2411
2744
|
Role-based multi-input operations (image_watermark,
|
|
2412
|
-
custom_luma, audio_overlay) require a
|
|
2413
|
-
on each entry — see `SourceEntry.role`.
|
|
2745
|
+
custom_luma, audio_overlay, audio_to_video) require a
|
|
2746
|
+
`role` discriminator on each entry — see `SourceEntry.role`.
|
|
2747
|
+
|
|
2748
|
+
**Minimum source count = sum of role minima** declared in
|
|
2749
|
+
the operation's `per_role_cardinality` (per ticket
|
|
2750
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) ADR-0015).
|
|
2751
|
+
`audio_to_video` requires 1 source (`base` audio;
|
|
2752
|
+
`overlay` optional, 0..1); all other role-based ops
|
|
2753
|
+
require 2+ today. The schema floor here is `minItems: 1`
|
|
2754
|
+
to admit the audio_to_video case.
|
|
2414
2755
|
items:
|
|
2415
2756
|
$ref: '#/components/schemas/SourceEntry'
|
|
2416
|
-
minItems:
|
|
2757
|
+
minItems: 1
|
|
2417
2758
|
|
|
2418
2759
|
# Output
|
|
2419
2760
|
output_bucket:
|
|
@@ -3413,6 +3754,51 @@ components:
|
|
|
3413
3754
|
today. Pairs with `POST /api/audio-watermark/decode` for
|
|
3414
3755
|
own-watermarks-only extraction. Per ADR-0004 + I20 (Trello
|
|
3415
3756
|
omiCq7Vn).
|
|
3757
|
+
- `audio_to_video`: Produce a video from an audio input plus an
|
|
3758
|
+
OPTIONAL still image overlay (multi-input role-based with
|
|
3759
|
+
the first OPTIONAL role on the contract — `role: base`
|
|
3760
|
+
audio required, `role: overlay` image 0..1 per
|
|
3761
|
+
`per_role_cardinality`). When overlay is omitted, the video
|
|
3762
|
+
uses a solid background colour. `availability: planned` per
|
|
3763
|
+
the operation schema; the API rejects workflow-create with
|
|
3764
|
+
`feature_not_available` (422) until the Lambda ships, so
|
|
3765
|
+
traffic does not reach SNS today. `media_group` is derived
|
|
3766
|
+
from the `base` role input MIME prefix per ADR-0015 (always
|
|
3767
|
+
`audio` for audio_to_video). Routes via
|
|
3768
|
+
`operation_type=audio_to_video` to `ops-audio-to-video`.
|
|
3769
|
+
Per ADR-0004 + ADR-0015 ([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
|
|
3770
|
+
- `video_watermark`: Apply an image overlay onto a base video
|
|
3771
|
+
via FFmpeg's `overlay` filter. Multi-input role-based
|
|
3772
|
+
(`role: base` video + `role: overlay` image, exactly one
|
|
3773
|
+
of each per `per_role_cardinality { base: 1/1, overlay:
|
|
3774
|
+
1/1 }`). Re-encode required; audio stream-copy passthrough.
|
|
3775
|
+
Distinct from `image_watermark` (pure-Rust/image-only —
|
|
3776
|
+
see ADR-0013). `availability: planned`; routes via
|
|
3777
|
+
`operation_type=video_watermark` to `ops-video-watermark`.
|
|
3778
|
+
Per ADR-0004 + ADR-0013
|
|
3779
|
+
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
3780
|
+
- `video_text_watermark`: Render a text overlay onto a base
|
|
3781
|
+
video via FFmpeg's `drawtext` filter. Single-input — text
|
|
3782
|
+
and styling in options. Same `watermark_mode` (single/
|
|
3783
|
+
tiled) + `anchor` + `margin` vocab as `text_watermark`.
|
|
3784
|
+
Re-encode required; audio stream-copy passthrough.
|
|
3785
|
+
Distinct from `text_watermark` (image-only drawtext path
|
|
3786
|
+
— see ADR-0013). `availability: planned`; routes via
|
|
3787
|
+
`operation_type=video_text_watermark` to
|
|
3788
|
+
`ops-video-text-watermark`. Per ADR-0004 + ADR-0013.
|
|
3789
|
+
- `split`: Fan one input file into N outputs across GIF /
|
|
3790
|
+
PDF / audio / video MIME families. Single-input per-mime-
|
|
3791
|
+
group catalog (mode discriminator for audio + video;
|
|
3792
|
+
frame_range REQUIRED for GIF; page_range OR page_groups
|
|
3793
|
+
for PDF). 200-output hard cap per ADR-0009 §D5; output
|
|
3794
|
+
naming output-001..output-200. Long-form video routes to
|
|
3795
|
+
a separate `split-video-fargate` worker via
|
|
3796
|
+
`processing_class`. `media_group` derives from the input
|
|
3797
|
+
MIME prefix per the existing single-input rule (no
|
|
3798
|
+
operation-specific conditional needed). `availability:
|
|
3799
|
+
planned`; routes via `operation_type=split` to `ops-split`.
|
|
3800
|
+
Per ADR-0004 + ADR-0014
|
|
3801
|
+
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
3416
3802
|
enum:
|
|
3417
3803
|
- compress
|
|
3418
3804
|
- thumbnail
|
|
@@ -3424,6 +3810,10 @@ components:
|
|
|
3424
3810
|
- custom_luma
|
|
3425
3811
|
- audio_overlay
|
|
3426
3812
|
- audio_watermark
|
|
3813
|
+
- audio_to_video
|
|
3814
|
+
- video_watermark
|
|
3815
|
+
- video_text_watermark
|
|
3816
|
+
- split
|
|
3427
3817
|
|
|
3428
3818
|
MediaGroup:
|
|
3429
3819
|
type: string
|
|
@@ -3448,6 +3838,10 @@ components:
|
|
|
3448
3838
|
- output_type=video -> video
|
|
3449
3839
|
- output_type=audio -> audio
|
|
3450
3840
|
|
|
3841
|
+
For multi-input role-based operations with role asymmetry
|
|
3842
|
+
(audio_to_video), derived from the `base` role input MIME prefix
|
|
3843
|
+
per ADR-0015 — audio_to_video always emits `media_group: audio`.
|
|
3844
|
+
|
|
3451
3845
|
Omitted from the SNS attributes for archive (media-agnostic). The
|
|
3452
3846
|
four thumbnail sub-types map to media_group as follows:
|
|
3453
3847
|
- thumbnail_image -> image
|
|
@@ -3489,6 +3883,22 @@ components:
|
|
|
3489
3883
|
- `audio_overlay`: REQUIRED — exactly one `base` + one
|
|
3490
3884
|
`overlay` per job (per ticket I19); reuses
|
|
3491
3885
|
`image_watermark`'s role values.
|
|
3886
|
+
- `audio_to_video`: REQUIRED `base` (audio source); OPTIONAL
|
|
3887
|
+
`overlay` (still image, 0..1). FIRST role-based op with
|
|
3888
|
+
an OPTIONAL role — see `per_role_cardinality` on the
|
|
3889
|
+
operation schema for the machine-readable cardinality
|
|
3890
|
+
declaration (per ticket
|
|
3891
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) / ADR-0015).
|
|
3892
|
+
Reuses `base` + `overlay` role values already declared
|
|
3893
|
+
for `image_watermark` / `audio_overlay`.
|
|
3894
|
+
- `video_watermark`: REQUIRED `base` (video source); REQUIRED
|
|
3895
|
+
`overlay` (watermark image). Exactly one of each per
|
|
3896
|
+
`per_role_cardinality { base: 1/1, overlay: 1/1 }`. First
|
|
3897
|
+
non-introductory adoption of the `per_role_cardinality`
|
|
3898
|
+
vocab (per ticket
|
|
3899
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) / ADR-0013).
|
|
3900
|
+
`video_text_watermark` is single-input (text in options;
|
|
3901
|
+
no `role` field applies).
|
|
3492
3902
|
- `merge` / `archive`: omit (all inputs share the same
|
|
3493
3903
|
role). Future operations may widen this enum.
|
|
3494
3904
|
|
|
@@ -3496,7 +3906,11 @@ components:
|
|
|
3496
3906
|
per ticket QokFw8VR. The OpenAPI side at `JobInputV2.role`
|
|
3497
3907
|
remains an inline enum today — symmetric extraction tracked
|
|
3498
3908
|
as a follow-up; value-set parity is verified by inspection
|
|
3499
|
-
(both lists must remain identical).
|
|
3909
|
+
(both lists must remain identical). The
|
|
3910
|
+
`scripts/check-per-role-cardinality.py` anti-drift check
|
|
3911
|
+
takes this AsyncAPI named enum as the authoritative source
|
|
3912
|
+
for cardinality-key membership checks until the OpenAPI
|
|
3913
|
+
side is extracted.
|
|
3500
3914
|
enum:
|
|
3501
3915
|
- base
|
|
3502
3916
|
- overlay
|