@giveitsmaller/contracts 0.8.0 → 0.16.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 +806 -173
- package/availability/availability.json +355 -98
- package/dist/asyncapi/Failure.d.ts +2 -0
- package/dist/asyncapi/LongFormJobMessage.d.ts +4 -3
- package/dist/asyncapi/LongFormOperationType.d.ts +5 -0
- package/dist/asyncapi/LongFormOperationType.js +6 -0
- package/dist/asyncapi/LongFormProcessingClass.d.ts +4 -0
- package/dist/asyncapi/LongFormProcessingClass.js +5 -0
- package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
- package/dist/asyncapi/{NotificationsOperationsQueue.d.ts → NotificationsJobsQueue.d.ts} +2 -2
- package/dist/asyncapi/OperationResultMetadata.d.ts +4 -0
- package/dist/asyncapi/OperationResultMetadata.js +1 -0
- package/dist/asyncapi/OperationType.d.ts +2 -1
- package/dist/asyncapi/OperationType.js +1 -0
- package/dist/asyncapi/PageIndexed.d.ts +1 -0
- package/dist/asyncapi/PositionIndexed.d.ts +1 -0
- package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
- package/dist/asyncapi/SourceEntry.d.ts +4 -0
- package/dist/asyncapi/Unindexed.d.ts +1 -0
- package/dist/asyncapi/index.d.ts +4 -2
- package/dist/asyncapi/index.js +2 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
- package/dist/openapi/models/AuthErrorResponse.d.ts +13 -2
- package/dist/openapi/models/AuthErrorResponse.js +2 -2
- package/dist/openapi/models/AuthErrorType.d.ts +2 -2
- package/dist/openapi/models/AuthErrorType.js +2 -2
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +126 -0
- package/dist/openapi/models/AuthRejectionEnvelope.js +72 -0
- package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
- package/dist/openapi/models/AvailabilityValue.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +13 -2
- package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/ChangePasswordRequest.d.ts +38 -0
- package/dist/openapi/models/ChangePasswordRequest.js +47 -0
- package/dist/openapi/models/CompositionPlan.d.ts +72 -0
- package/dist/openapi/models/CompositionPlan.js +53 -0
- package/dist/openapi/models/CompositionPlanJob.d.ts +39 -0
- package/dist/openapi/models/CompositionPlanJob.js +48 -0
- package/dist/openapi/models/CompositionPlanOperation.d.ts +116 -0
- package/dist/openapi/models/CompositionPlanOperation.js +62 -0
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +46 -0
- package/dist/openapi/models/ConfirmEmailChange200Response.js +54 -0
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +32 -0
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +43 -0
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +32 -0
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +43 -0
- package/dist/openapi/models/ConnectionSource.d.ts +2 -2
- package/dist/openapi/models/ConnectionSource.js +2 -2
- package/dist/openapi/models/ContactRequest.d.ts +2 -2
- package/dist/openapi/models/ContactRequest.js +2 -2
- package/dist/openapi/models/ContactSubject.d.ts +2 -2
- package/dist/openapi/models/ContactSubject.js +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
- package/dist/openapi/models/CreateApiKey201Response.d.ts +46 -0
- package/dist/openapi/models/CreateApiKey201Response.js +54 -0
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +56 -0
- package/dist/openapi/models/CreateApiKey201ResponseData.js +59 -0
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +32 -0
- package/dist/openapi/models/CreateApiKeyRequest.js +43 -0
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +7 -3
- package/dist/openapi/models/CreateExternalImport422Response.js +18 -22
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +11 -3
- package/dist/openapi/models/CreateWorkflow422Response.js +28 -36
- package/dist/openapi/models/CreditTransaction.d.ts +2 -2
- package/dist/openapi/models/CreditTransaction.js +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
- package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageResponse.js +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
- package/dist/openapi/models/Delivery.d.ts +2 -2
- package/dist/openapi/models/Delivery.js +2 -2
- package/dist/openapi/models/DeliveryOutputRef.d.ts +9 -2
- package/dist/openapi/models/DeliveryOutputRef.js +2 -2
- package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlan.js +2 -2
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +17 -2
- package/dist/openapi/models/DeliveryPlanOutput.js +4 -2
- package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlanReason.js +2 -2
- package/dist/openapi/models/DeliverySelection.d.ts +6 -4
- package/dist/openapi/models/DeliverySelection.js +2 -2
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +58 -0
- package/dist/openapi/models/EmptySuccessEnvelope.js +53 -0
- package/dist/openapi/models/EndpointProjection.d.ts +12 -3
- package/dist/openapi/models/EndpointProjection.js +2 -2
- package/dist/openapi/models/ErrorEnvelope.d.ts +13 -2
- package/dist/openapi/models/ErrorEnvelope.js +2 -2
- package/dist/openapi/models/EstimateQuality.d.ts +2 -2
- package/dist/openapi/models/EstimateQuality.js +2 -2
- package/dist/openapi/models/EstimateRange.d.ts +2 -2
- package/dist/openapi/models/EstimateRange.js +2 -2
- package/dist/openapi/models/ExternalDestination.d.ts +2 -2
- package/dist/openapi/models/ExternalDestination.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
- package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
- package/dist/openapi/models/ExternalImportRequest.js +2 -2
- package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
- package/dist/openapi/models/ExternalImportToken.js +2 -2
- package/dist/openapi/models/ExternalSource.d.ts +2 -2
- package/dist/openapi/models/ExternalSource.js +2 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +19 -9
- package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +13 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
- package/dist/openapi/models/FeatureViolation.d.ts +2 -2
- package/dist/openapi/models/FeatureViolation.js +2 -2
- package/dist/openapi/models/ForgotPasswordRequest.d.ts +32 -0
- package/dist/openapi/models/ForgotPasswordRequest.js +43 -0
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +65 -0
- package/dist/openapi/models/ImageEncodeCapabilities.js +55 -0
- package/dist/openapi/models/JobDefinition.d.ts +27 -8
- package/dist/openapi/models/JobDefinition.js +2 -2
- package/dist/openapi/models/JobDownload.d.ts +2 -2
- package/dist/openapi/models/JobDownload.js +2 -2
- package/dist/openapi/models/JobInputV2.d.ts +13 -9
- package/dist/openapi/models/JobInputV2.js +5 -5
- package/dist/openapi/models/JobMediaClass.d.ts +34 -0
- package/dist/openapi/models/JobMediaClass.js +52 -0
- package/dist/openapi/models/JobOutputSource.d.ts +2 -2
- package/dist/openapi/models/JobOutputSource.js +2 -2
- package/dist/openapi/models/JobResponse.d.ts +24 -2
- package/dist/openapi/models/JobResponse.js +5 -2
- package/dist/openapi/models/JobStatus.d.ts +2 -2
- package/dist/openapi/models/JobStatus.js +2 -2
- package/dist/openapi/models/JobType.d.ts +2 -2
- package/dist/openapi/models/JobType.js +2 -2
- package/dist/openapi/models/LivenessResponse.d.ts +2 -2
- package/dist/openapi/models/LivenessResponse.js +2 -2
- package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
- package/dist/openapi/models/LoginUser200Response.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
- package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
- package/dist/openapi/models/LoginUserRequest.js +2 -2
- package/dist/openapi/models/MetadataResponse.d.ts +2 -2
- package/dist/openapi/models/MetadataResponse.js +2 -2
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
- package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExif.js +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MimeGroupSchema.d.ts +37 -2
- package/dist/openapi/models/MimeGroupSchema.js +5 -2
- package/dist/openapi/models/MultiInputSource.d.ts +41 -0
- package/dist/openapi/models/MultiInputSource.js +52 -0
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
- package/dist/openapi/models/MultipartPartListing.js +2 -2
- package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignRequest.js +2 -2
- package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignResponse.js +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusResponse.js +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/OperationDefinition.d.ts +27 -2
- package/dist/openapi/models/OperationDefinition.js +11 -2
- package/dist/openapi/models/OperationDownload.d.ts +30 -2
- package/dist/openapi/models/OperationDownload.js +6 -2
- package/dist/openapi/models/OperationInputModel.d.ts +3 -3
- package/dist/openapi/models/OperationInputModel.js +3 -3
- package/dist/openapi/models/OperationResponse.d.ts +18 -2
- package/dist/openapi/models/OperationResponse.js +5 -2
- package/dist/openapi/models/OperationResult.d.ts +2 -2
- package/dist/openapi/models/OperationResult.js +2 -2
- package/dist/openapi/models/OperationResultMetadata.d.ts +48 -0
- package/dist/openapi/models/OperationResultMetadata.js +41 -0
- package/dist/openapi/models/OperationResultMetrics.d.ts +16 -3
- package/dist/openapi/models/OperationResultMetrics.js +2 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +6 -5
- package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
- package/dist/openapi/models/OperationStatus.d.ts +2 -2
- package/dist/openapi/models/OperationStatus.js +2 -2
- package/dist/openapi/models/OperationType.d.ts +19 -14
- package/dist/openapi/models/OperationType.js +20 -15
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +39 -4
- package/dist/openapi/models/OperationsSchemaResponse.js +8 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +55 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +42 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +40 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +45 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +45 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +43 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +33 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +42 -0
- package/dist/openapi/models/OptionSchema.d.ts +2 -2
- package/dist/openapi/models/OptionSchema.js +2 -2
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
- package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
- package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
- package/dist/openapi/models/PresignedUrlPart.js +2 -2
- package/dist/openapi/models/ProbePendingResponse.d.ts +20 -8
- package/dist/openapi/models/ProbePendingResponse.js +2 -2
- package/dist/openapi/models/ProcessingClass.d.ts +2 -2
- package/dist/openapi/models/ProcessingClass.js +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +69 -0
- package/dist/openapi/models/ProcessingClassConstraints.js +49 -0
- package/dist/openapi/models/ProcessingClassEntry.d.ts +93 -0
- package/dist/openapi/models/ProcessingClassEntry.js +57 -0
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +19 -6
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
- package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassHint.js +2 -2
- package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassReason.js +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
- package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlan.js +2 -2
- package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlanJob.js +2 -2
- package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
- package/dist/openapi/models/ReEncodeDecision.js +2 -2
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/RegisterUser422Response.d.ts +27 -0
- package/dist/openapi/models/RegisterUser422Response.js +47 -0
- package/dist/openapi/models/RegisterUserRequest.d.ts +38 -0
- package/dist/openapi/models/RegisterUserRequest.js +47 -0
- package/dist/openapi/models/ResetPasswordRequest.d.ts +38 -0
- package/dist/openapi/models/ResetPasswordRequest.js +47 -0
- package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
- package/dist/openapi/models/ResponseEnvelope.js +2 -2
- package/dist/openapi/models/RetryResponse.d.ts +2 -2
- package/dist/openapi/models/RetryResponse.js +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
- package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
- package/dist/openapi/models/SseCompletionBase.js +2 -2
- package/dist/openapi/models/SseEventType.d.ts +2 -2
- package/dist/openapi/models/SseEventType.js +2 -2
- package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
- package/dist/openapi/models/SseJobCompletedData.js +2 -2
- package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
- package/dist/openapi/models/SseJobFailedData.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +17 -3
- package/dist/openapi/models/SseOperationCompletedData.js +2 -2
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
- package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
- package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
- package/dist/openapi/models/SseOperationFailedData.js +2 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +4 -3
- package/dist/openapi/models/SseOperationProgressData.js +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
- package/dist/openapi/models/TierRestrictionKind.js +2 -2
- package/dist/openapi/models/TierRestrictionResponse.d.ts +13 -2
- package/dist/openapi/models/TierRestrictionResponse.js +2 -2
- package/dist/openapi/models/UpdateProfile200Response.d.ts +46 -0
- package/dist/openapi/models/UpdateProfile200Response.js +54 -0
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +71 -0
- package/dist/openapi/models/UpdateProfile200ResponseData.js +67 -0
- package/dist/openapi/models/UpdateProfile422Response.d.ts +27 -0
- package/dist/openapi/models/UpdateProfile422Response.js +47 -0
- package/dist/openapi/models/UpdateProfileRequest.d.ts +44 -0
- package/dist/openapi/models/UpdateProfileRequest.js +47 -0
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +13 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile403Response.js +2 -2
- package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile422Response.js +2 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
- package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
- package/dist/openapi/models/UploadProbeResponse.js +2 -2
- package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
- package/dist/openapi/models/UploadProbeStatus.js +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadResponse.d.ts +2 -2
- package/dist/openapi/models/UploadResponse.js +2 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +13 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadSource.d.ts +2 -2
- package/dist/openapi/models/UploadSource.js +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadThresholds.d.ts +2 -2
- package/dist/openapi/models/UploadThresholds.js +2 -2
- package/dist/openapi/models/UserTier.d.ts +2 -2
- package/dist/openapi/models/UserTier.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +32 -5
- package/dist/openapi/models/ValidationErrorEnvelope.js +12 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
- package/dist/openapi/models/VerifyEmailRequest.d.ts +32 -0
- package/dist/openapi/models/VerifyEmailRequest.js +43 -0
- package/dist/openapi/models/WarningType.d.ts +2 -2
- package/dist/openapi/models/WarningType.js +2 -2
- package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
- package/dist/openapi/models/WebhookOperationContext.js +2 -2
- package/dist/openapi/models/WebhookPayload.d.ts +2 -2
- package/dist/openapi/models/WebhookPayload.js +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +64 -4
- package/dist/openapi/models/WorkflowCreateRequest.js +10 -6
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +24 -2
- package/dist/openapi/models/WorkflowCreateResponse.js +5 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
- package/dist/openapi/models/WorkflowEdge.js +2 -2
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +13 -2
- package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
- package/dist/openapi/models/WorkflowListResponse.d.ts +50 -0
- package/dist/openapi/models/WorkflowListResponse.js +50 -0
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +54 -0
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
- package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
- package/dist/openapi/models/WorkflowProcessing.js +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSource.d.ts +7 -4
- package/dist/openapi/models/WorkflowSource.js +2 -2
- package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatus.js +2 -2
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +21 -2
- package/dist/openapi/models/WorkflowStatusResponse.js +5 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSummary.d.ts +60 -0
- package/dist/openapi/models/WorkflowSummary.js +57 -0
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +57 -0
- package/dist/openapi/models/WorkflowSummaryJob.js +57 -0
- package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarning.js +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
- package/dist/openapi/models/index.d.ts +35 -1
- package/dist/openapi/models/index.js +35 -1
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +2 -2
- package/dist/operations/audio_to_video.metadata.js +1 -1
- package/dist/operations/compress.d.ts +0 -9
- package/dist/operations/compress.js +0 -6
- package/dist/operations/compress.metadata.js +4 -12
- package/dist/operations/index.d.ts +3 -0
- package/dist/operations/index.js +3 -0
- package/dist/operations/merge.d.ts +4 -0
- package/dist/operations/merge.metadata.js +12 -3
- package/dist/operations/passthrough.metadata.d.ts +2 -0
- package/dist/operations/passthrough.metadata.js +6 -0
- package/dist/operations/render_variants.d.ts +24 -0
- package/dist/operations/render_variants.js +14 -0
- package/dist/operations/render_variants.metadata.d.ts +2 -0
- package/dist/operations/render_variants.metadata.js +18 -0
- package/dist/operations/split.d.ts +8 -1
- package/dist/operations/split.js +5 -0
- package/dist/operations/split.metadata.js +22 -5
- package/dist/operations/video_watermark.metadata.js +2 -2
- package/openapi/api.yaml +2566 -288
- package/operations/schemas/archive.yaml +1 -1
- package/operations/schemas/audio_overlay.yaml +29 -13
- package/operations/schemas/audio_to_video.yaml +12 -9
- package/operations/schemas/audio_watermark.yaml +18 -16
- package/operations/schemas/compress.yaml +34 -32
- package/operations/schemas/custom_luma.yaml +21 -7
- package/operations/schemas/image_watermark.yaml +22 -7
- package/operations/schemas/merge.yaml +94 -41
- package/operations/schemas/passthrough.yaml +49 -0
- package/operations/schemas/render_variants.yaml +117 -0
- package/operations/schemas/split.yaml +76 -15
- package/operations/schemas/text_watermark.yaml +6 -6
- package/operations/schemas/thumbnail.yaml +1 -1
- package/operations/schemas/video_text_watermark.yaml +2 -2
- package/operations/schemas/video_watermark.yaml +20 -9
- package/package.json +3 -1
- package/dist/asyncapi/AnonymousSchema_253.d.ts +0 -5
- package/dist/asyncapi/AnonymousSchema_253.js +0 -6
- package/dist/openapi/models/LogoutUser200Response.d.ts +0 -50
- package/dist/openapi/models/LogoutUser200Response.js +0 -53
- /package/dist/asyncapi/{NotificationsOperationsQueue.js → NotificationsJobsQueue.js} +0 -0
package/asyncapi/events.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
asyncapi: 3.0.0
|
|
2
2
|
info:
|
|
3
3
|
title: GISL Compression Events
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.18.0
|
|
5
5
|
description: |
|
|
6
6
|
Asynchronous event contracts for the GISL (Give It Smaller) compression service.
|
|
7
7
|
|
|
@@ -21,16 +21,21 @@ info:
|
|
|
21
21
|
video_watermark, video_text_watermark, split). Filter attribute:
|
|
22
22
|
`operation_type`. Subscriptions: one queue per operation type,
|
|
23
23
|
plus four thumbnail sub-type queues during the migration window.
|
|
24
|
-
`custom_luma`, `audio_overlay`, `audio_watermark`,
|
|
25
|
-
`
|
|
26
|
-
|
|
27
|
-
[I29](https://trello.com/c/EPUE5Vs1) +
|
|
24
|
+
`custom_luma`, `audio_overlay`, `audio_watermark`, and
|
|
25
|
+
`video_text_watermark` are `availability: planned`
|
|
26
|
+
(per [I29](https://trello.com/c/EPUE5Vs1) +
|
|
28
27
|
[I19](https://trello.com/c/Xr3Z4GBF) +
|
|
29
28
|
[I20](https://trello.com/c/omiCq7Vn) +
|
|
30
|
-
[`
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh)) — their queues are
|
|
30
|
+
declared but receive no traffic until Lambda ships. `split` is
|
|
31
|
+
`availability: beta` for its `audio` and `video` mime_groups
|
|
32
|
+
(workers live on staging — [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
|
|
33
|
+
video short-form only — `long_form` / `split-video-fargate` stays
|
|
34
|
+
planned); its `image_gif` and `document_pdf` mime_groups stay
|
|
35
|
+
`availability: planned`.
|
|
36
|
+
`audio_to_video` and `video_watermark` are `availability: beta`
|
|
37
|
+
(Wave A activation [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
|
|
38
|
+
backends live; the API accepts + publishes, traffic flows).
|
|
34
39
|
`audio_watermark` additionally requires `enterprise` tier.
|
|
35
40
|
|
|
36
41
|
**Publisher branching rule** (implemented in `compression_api`'s
|
|
@@ -54,15 +59,17 @@ info:
|
|
|
54
59
|
**Thumbnail migration window.** The terraform topology has both the
|
|
55
60
|
legacy `ops-thumbnail` queue and four new sub-type queues
|
|
56
61
|
(`ops-thumbnail-{image,video,document,office}`) live simultaneously.
|
|
57
|
-
The API publisher
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
The API publisher emits the four sub-type values (`thumbnail_image`,
|
|
63
|
+
`thumbnail_video`, `thumbnail_document`, `thumbnail_office`) on the
|
|
64
|
+
SNS `operation_type` attribute, resolved from each operation's
|
|
65
|
+
effective input MIME; the legacy `operation_type=thumbnail` attribute
|
|
66
|
+
is retained as a valid routing target during the migration window but
|
|
67
|
+
is no longer emitted. Both routing targets are documented in this
|
|
68
|
+
contract because both remain valid during the migration.
|
|
62
69
|
|
|
63
70
|
**Notifications (Lambda -> API).** Lambda functions publish progress
|
|
64
71
|
and result notifications to the FIFO SNS topic
|
|
65
|
-
`gisl-{env}-{region}-notifications-
|
|
72
|
+
`gisl-{env}-{region}-notifications-jobs.fifo`. The API consumes
|
|
66
73
|
from the corresponding FIFO SQS queue via a Raw Message Delivery
|
|
67
74
|
subscription. This notification path is unchanged from previous
|
|
68
75
|
releases.
|
|
@@ -191,27 +198,37 @@ channels:
|
|
|
191
198
|
[I19](https://trello.com/c/Xr3Z4GBF) — same `feature_not_
|
|
192
199
|
available` 422 gating)
|
|
193
200
|
- `operation_type = audio_to_video` -> `ops-audio-to-video` queue
|
|
194
|
-
(
|
|
195
|
-
[`SlluxMBN`](https://trello.com/c/SlluxMBN)
|
|
196
|
-
`
|
|
201
|
+
(`availability: beta` — Wave A activated per
|
|
202
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) +
|
|
203
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4); backend live, traffic
|
|
204
|
+
flows)
|
|
197
205
|
- `operation_type = video_watermark` -> `ops-video-watermark`
|
|
198
|
-
queue (
|
|
199
|
-
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh)
|
|
206
|
+
queue (`availability: beta` — Wave A activated per
|
|
207
|
+
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) +
|
|
208
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4); backend live)
|
|
200
209
|
- `operation_type = video_text_watermark` ->
|
|
201
210
|
`ops-video-text-watermark` queue (gated by
|
|
202
211
|
`availability: planned` until Lambda ships per
|
|
203
212
|
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) — same gating)
|
|
204
|
-
- `operation_type = split` -> `ops-split` queue (
|
|
205
|
-
`availability:
|
|
206
|
-
|
|
213
|
+
- `operation_type = split` -> `ops-split` queue (the `audio` and
|
|
214
|
+
`video` mime_groups are `availability: beta` — audio + short-form
|
|
215
|
+
video split traffic reaches this queue; `image_gif` /
|
|
216
|
+
`document_pdf` stay `availability: planned` until their Lambdas
|
|
217
|
+
ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
|
|
207
218
|
long-form video splits route via `processing_class` to the
|
|
208
|
-
`split-video-fargate` worker
|
|
209
|
-
worker)
|
|
219
|
+
`split-video-fargate` worker — same OperationType, different
|
|
220
|
+
worker — and stay `availability: planned` until it ships)
|
|
210
221
|
- `operation_type = audio_watermark` -> `ops-audio-watermark`
|
|
211
222
|
queue (gated by `availability: planned` +
|
|
212
223
|
`required_tier: enterprise` per
|
|
213
224
|
[I20](https://trello.com/c/omiCq7Vn) — same 422 gating, plus
|
|
214
225
|
a 403 `feature_tier_restricted` for non-enterprise callers)
|
|
226
|
+
- `operation_type = render_variants` -> `ops-render-variants`
|
|
227
|
+
queue (gated by `availability: planned` until the worker +
|
|
228
|
+
SNS subscription ship per
|
|
229
|
+
[`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
|
|
230
|
+
[`MNuDYJaY`](https://trello.com/c/MNuDYJaY) — same
|
|
231
|
+
`feature_not_available` 422 gating)
|
|
215
232
|
|
|
216
233
|
The API's Option A publisher sets `operation_type` as the filter
|
|
217
234
|
attribute and additionally sets `media_group` as an **informational**
|
|
@@ -223,9 +240,11 @@ channels:
|
|
|
223
240
|
|
|
224
241
|
**Thumbnail migration window.** The legacy `ops-thumbnail` queue and
|
|
225
242
|
the four sub-type queues are all live simultaneously. The API
|
|
226
|
-
publisher
|
|
227
|
-
|
|
228
|
-
|
|
243
|
+
publisher emits the four sub-type values on the SNS `operation_type`
|
|
244
|
+
attribute (resolved from effective input MIME); the legacy
|
|
245
|
+
`operation_type=thumbnail` attribute is retained as a valid routing
|
|
246
|
+
target but is no longer emitted. Both paths are valid routing
|
|
247
|
+
targets today.
|
|
229
248
|
parameters:
|
|
230
249
|
env:
|
|
231
250
|
description: Environment (local, stg, prod)
|
|
@@ -245,6 +264,12 @@ channels:
|
|
|
245
264
|
SQS queue for image compression jobs.
|
|
246
265
|
Subscribed to the `job-requests` SNS topic with filter
|
|
247
266
|
`job_type = image`. Handles `compress` only for image inputs.
|
|
267
|
+
bindings:
|
|
268
|
+
sqs:
|
|
269
|
+
queue:
|
|
270
|
+
name: gisl-{env}-{region}-jobs-image
|
|
271
|
+
fifoQueue: false
|
|
272
|
+
bindingVersion: '0.2.0'
|
|
248
273
|
parameters:
|
|
249
274
|
env:
|
|
250
275
|
description: Environment (local, stg, prod)
|
|
@@ -260,6 +285,12 @@ channels:
|
|
|
260
285
|
SQS queue for video compression jobs.
|
|
261
286
|
Subscribed to the `job-requests` SNS topic with filter
|
|
262
287
|
`job_type = video`. Handles `compress` only for video inputs.
|
|
288
|
+
bindings:
|
|
289
|
+
sqs:
|
|
290
|
+
queue:
|
|
291
|
+
name: gisl-{env}-{region}-jobs-video
|
|
292
|
+
fifoQueue: false
|
|
293
|
+
bindingVersion: '0.2.0'
|
|
263
294
|
parameters:
|
|
264
295
|
env:
|
|
265
296
|
description: Environment (local, stg, prod)
|
|
@@ -275,6 +306,12 @@ channels:
|
|
|
275
306
|
SQS queue for audio compression jobs.
|
|
276
307
|
Subscribed to the `job-requests` SNS topic with filter
|
|
277
308
|
`job_type = audio`. Handles `compress` only for audio inputs.
|
|
309
|
+
bindings:
|
|
310
|
+
sqs:
|
|
311
|
+
queue:
|
|
312
|
+
name: gisl-{env}-{region}-jobs-audio
|
|
313
|
+
fifoQueue: false
|
|
314
|
+
bindingVersion: '0.2.0'
|
|
278
315
|
parameters:
|
|
279
316
|
env:
|
|
280
317
|
description: Environment (local, stg, prod)
|
|
@@ -290,6 +327,12 @@ channels:
|
|
|
290
327
|
SQS queue for document compression jobs.
|
|
291
328
|
Subscribed to the `job-requests` SNS topic with filter
|
|
292
329
|
`job_type = document`. Handles `compress` only for document inputs.
|
|
330
|
+
bindings:
|
|
331
|
+
sqs:
|
|
332
|
+
queue:
|
|
333
|
+
name: gisl-{env}-{region}-jobs-document
|
|
334
|
+
fifoQueue: false
|
|
335
|
+
bindingVersion: '0.2.0'
|
|
293
336
|
parameters:
|
|
294
337
|
env:
|
|
295
338
|
description: Environment (local, stg, prod)
|
|
@@ -350,12 +393,20 @@ channels:
|
|
|
350
393
|
Subscribed to the `operations` SNS topic with filter
|
|
351
394
|
`operation_type = thumbnail`.
|
|
352
395
|
|
|
353
|
-
**Migration window**: This is the legacy routing target
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
`thumbnail_document`, `thumbnail_office`)
|
|
396
|
+
**Migration window**: This is the legacy routing target. It is
|
|
397
|
+
retained as a valid routing target (via `operation_type=thumbnail`)
|
|
398
|
+
and handles thumbnail requests for all media types, but the API
|
|
399
|
+
publisher no longer emits it — the publisher now emits the four
|
|
400
|
+
sub-type values (`thumbnail_image`, `thumbnail_video`,
|
|
401
|
+
`thumbnail_document`, `thumbnail_office`), resolved from each
|
|
402
|
+
operation's effective input MIME. Retirement of this legacy queue
|
|
403
|
+
follows once no traffic remains.
|
|
404
|
+
bindings:
|
|
405
|
+
sqs:
|
|
406
|
+
queue:
|
|
407
|
+
name: gisl-{env}-{region}-ops-thumbnail
|
|
408
|
+
fifoQueue: false
|
|
409
|
+
bindingVersion: '0.2.0'
|
|
359
410
|
parameters:
|
|
360
411
|
env:
|
|
361
412
|
description: Environment (local, stg, prod)
|
|
@@ -373,9 +424,16 @@ channels:
|
|
|
373
424
|
`operation_type = thumbnail_image`. Backed by the Rust image
|
|
374
425
|
thumbnail Lambda (`operation-thumbnail-image`).
|
|
375
426
|
|
|
376
|
-
|
|
377
|
-
`operation_type=
|
|
378
|
-
|
|
427
|
+
Receives traffic for image inputs — the API publisher emits
|
|
428
|
+
`operation_type=thumbnail_image` on the SNS attribute (resolved from
|
|
429
|
+
the operation's effective input MIME); the payload `operation_type`
|
|
430
|
+
field stays `thumbnail`.
|
|
431
|
+
bindings:
|
|
432
|
+
sqs:
|
|
433
|
+
queue:
|
|
434
|
+
name: gisl-{env}-{region}-ops-thumbnail-image
|
|
435
|
+
fifoQueue: false
|
|
436
|
+
bindingVersion: '0.2.0'
|
|
379
437
|
parameters:
|
|
380
438
|
env:
|
|
381
439
|
description: Environment (local, stg, prod)
|
|
@@ -393,9 +451,16 @@ channels:
|
|
|
393
451
|
`operation_type = thumbnail_video`. Backed by the FFmpeg video
|
|
394
452
|
thumbnail Lambda (`operation-thumbnail-video`).
|
|
395
453
|
|
|
396
|
-
|
|
397
|
-
`operation_type=
|
|
398
|
-
|
|
454
|
+
Receives traffic for video inputs — the API publisher emits
|
|
455
|
+
`operation_type=thumbnail_video` on the SNS attribute (resolved from
|
|
456
|
+
the operation's effective input MIME); the payload `operation_type`
|
|
457
|
+
field stays `thumbnail`.
|
|
458
|
+
bindings:
|
|
459
|
+
sqs:
|
|
460
|
+
queue:
|
|
461
|
+
name: gisl-{env}-{region}-ops-thumbnail-video
|
|
462
|
+
fifoQueue: false
|
|
463
|
+
bindingVersion: '0.2.0'
|
|
399
464
|
parameters:
|
|
400
465
|
env:
|
|
401
466
|
description: Environment (local, stg, prod)
|
|
@@ -413,10 +478,16 @@ channels:
|
|
|
413
478
|
`operation_type = thumbnail_document`. Backed by the Ghostscript
|
|
414
479
|
document thumbnail Lambda (`operation-thumbnail-document`).
|
|
415
480
|
|
|
416
|
-
|
|
417
|
-
`operation_type=
|
|
418
|
-
|
|
419
|
-
|
|
481
|
+
Receives traffic for PDF/EPUB inputs — the API publisher emits
|
|
482
|
+
`operation_type=thumbnail_document` on the SNS attribute (resolved
|
|
483
|
+
from the operation's effective input MIME); the payload
|
|
484
|
+
`operation_type` field stays `thumbnail`.
|
|
485
|
+
bindings:
|
|
486
|
+
sqs:
|
|
487
|
+
queue:
|
|
488
|
+
name: gisl-{env}-{region}-ops-thumbnail-document
|
|
489
|
+
fifoQueue: false
|
|
490
|
+
bindingVersion: '0.2.0'
|
|
420
491
|
parameters:
|
|
421
492
|
env:
|
|
422
493
|
description: Environment (local, stg, prod)
|
|
@@ -435,10 +506,16 @@ channels:
|
|
|
435
506
|
`operation_type = thumbnail_office`. Backed by the LibreOffice
|
|
436
507
|
thumbnail Lambda (`operation-thumbnail-office`).
|
|
437
508
|
|
|
438
|
-
|
|
439
|
-
`operation_type=
|
|
440
|
-
|
|
441
|
-
|
|
509
|
+
Receives traffic for office-document inputs — the API publisher
|
|
510
|
+
emits `operation_type=thumbnail_office` on the SNS attribute
|
|
511
|
+
(resolved from the operation's effective input MIME); the payload
|
|
512
|
+
`operation_type` field stays `thumbnail`.
|
|
513
|
+
bindings:
|
|
514
|
+
sqs:
|
|
515
|
+
queue:
|
|
516
|
+
name: gisl-{env}-{region}-ops-thumbnail-office
|
|
517
|
+
fifoQueue: false
|
|
518
|
+
bindingVersion: '0.2.0'
|
|
442
519
|
parameters:
|
|
443
520
|
env:
|
|
444
521
|
description: Environment (local, stg, prod)
|
|
@@ -467,6 +544,12 @@ channels:
|
|
|
467
544
|
queue. Video bases are NOT routed here — they go to
|
|
468
545
|
`ops-video-watermark` for the dedicated `video_watermark`
|
|
469
546
|
operation per ADR-0013. Per ADR-0004 + I4-CONS + I5 + ADR-0013.
|
|
547
|
+
bindings:
|
|
548
|
+
sqs:
|
|
549
|
+
queue:
|
|
550
|
+
name: gisl-{env}-{region}-ops-image-watermark
|
|
551
|
+
fifoQueue: false
|
|
552
|
+
bindingVersion: '0.2.0'
|
|
470
553
|
parameters:
|
|
471
554
|
env:
|
|
472
555
|
description: Environment (local, stg, prod)
|
|
@@ -485,6 +568,12 @@ channels:
|
|
|
485
568
|
(Liberation Sans) — supports `single` (one label at anchor) and
|
|
486
569
|
`tiled` (Cinavia-style angled fill) modes. Backed by the
|
|
487
570
|
operation-text-watermark Lambda. Per ADR-0004 + I4-CONS.
|
|
571
|
+
bindings:
|
|
572
|
+
sqs:
|
|
573
|
+
queue:
|
|
574
|
+
name: gisl-{env}-{region}-ops-text-watermark
|
|
575
|
+
fifoQueue: false
|
|
576
|
+
bindingVersion: '0.2.0'
|
|
488
577
|
parameters:
|
|
489
578
|
env:
|
|
490
579
|
description: Environment (local, stg, prod)
|
|
@@ -504,6 +593,12 @@ channels:
|
|
|
504
593
|
concat) — the `output_type` field on the request determines the
|
|
505
594
|
encoding path internally, not the routing. Image collage and PDF
|
|
506
595
|
concatenation are not supported by the V1 Lambda.
|
|
596
|
+
bindings:
|
|
597
|
+
sqs:
|
|
598
|
+
queue:
|
|
599
|
+
name: gisl-{env}-{region}-ops-merge
|
|
600
|
+
fifoQueue: false
|
|
601
|
+
bindingVersion: '0.2.0'
|
|
507
602
|
parameters:
|
|
508
603
|
env:
|
|
509
604
|
description: Environment (local, stg, prod)
|
|
@@ -520,6 +615,12 @@ channels:
|
|
|
520
615
|
Subscribed to the `operations` SNS topic with filter
|
|
521
616
|
`operation_type = archive`. Media-agnostic: accepts mixed input
|
|
522
617
|
types. Backed by the archive Lambda (`operation-archive`).
|
|
618
|
+
bindings:
|
|
619
|
+
sqs:
|
|
620
|
+
queue:
|
|
621
|
+
name: gisl-{env}-{region}-ops-archive
|
|
622
|
+
fifoQueue: false
|
|
623
|
+
bindingVersion: '0.2.0'
|
|
523
624
|
parameters:
|
|
524
625
|
env:
|
|
525
626
|
description: Environment (local, stg, prod)
|
|
@@ -537,6 +638,12 @@ channels:
|
|
|
537
638
|
`operation_type = convert`. Handles format conversion across all
|
|
538
639
|
media types (image, video, audio, document). Backed by the convert
|
|
539
640
|
Lambda (`operation-convert`).
|
|
641
|
+
bindings:
|
|
642
|
+
sqs:
|
|
643
|
+
queue:
|
|
644
|
+
name: gisl-{env}-{region}-ops-convert
|
|
645
|
+
fifoQueue: false
|
|
646
|
+
bindingVersion: '0.2.0'
|
|
540
647
|
parameters:
|
|
541
648
|
env:
|
|
542
649
|
description: Environment (local, stg, prod)
|
|
@@ -562,6 +669,12 @@ channels:
|
|
|
562
669
|
`operation-custom-luma` Lambda (cross-repo follow-up; not yet
|
|
563
670
|
shipped).
|
|
564
671
|
Per ADR-0004 + I29 (Trello EPUE5Vs1).
|
|
672
|
+
bindings:
|
|
673
|
+
sqs:
|
|
674
|
+
queue:
|
|
675
|
+
name: gisl-{env}-{region}-ops-custom-luma
|
|
676
|
+
fifoQueue: false
|
|
677
|
+
bindingVersion: '0.2.0'
|
|
565
678
|
parameters:
|
|
566
679
|
env:
|
|
567
680
|
description: Environment (local, stg, prod)
|
|
@@ -594,6 +707,12 @@ channels:
|
|
|
594
707
|
/ "audio branding".
|
|
595
708
|
|
|
596
709
|
Per ADR-0004 + I19 (Trello Xr3Z4GBF).
|
|
710
|
+
bindings:
|
|
711
|
+
sqs:
|
|
712
|
+
queue:
|
|
713
|
+
name: gisl-{env}-{region}-ops-audio-overlay
|
|
714
|
+
fifoQueue: false
|
|
715
|
+
bindingVersion: '0.2.0'
|
|
597
716
|
parameters:
|
|
598
717
|
env:
|
|
599
718
|
description: Environment (local, stg, prod)
|
|
@@ -614,14 +733,20 @@ channels:
|
|
|
614
733
|
`role: overlay` image OPTIONAL — see `per_role_cardinality`
|
|
615
734
|
on the operation schema).
|
|
616
735
|
|
|
617
|
-
`availability:
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
736
|
+
`availability: beta` per the operation schema (Wave A activated,
|
|
737
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
|
|
738
|
+
publishes, so traffic flows to this queue (MUST NOT 422). Backed
|
|
739
|
+
by the `operation-audio-to-video` Lambda (live; lambdas pre-launch
|
|
740
|
+
epic Wave A).
|
|
622
741
|
|
|
623
742
|
Per ADR-0004 + ADR-0015
|
|
624
743
|
([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
|
|
744
|
+
bindings:
|
|
745
|
+
sqs:
|
|
746
|
+
queue:
|
|
747
|
+
name: gisl-{env}-{region}-ops-audio-to-video
|
|
748
|
+
fifoQueue: false
|
|
749
|
+
bindingVersion: '0.2.0'
|
|
625
750
|
parameters:
|
|
626
751
|
env:
|
|
627
752
|
description: Environment (local, stg, prod)
|
|
@@ -642,10 +767,13 @@ channels:
|
|
|
642
767
|
(no operation-specific conditional needed in
|
|
643
768
|
OperationRequestAttributes).
|
|
644
769
|
|
|
645
|
-
`availability:
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
770
|
+
`availability: beta` for the `audio` and `video` mime_groups
|
|
771
|
+
(workers live on staging — audio + short-form video split traffic
|
|
772
|
+
reaches this queue; video `long_form` / `split-video-fargate` stays
|
|
773
|
+
planned); the `image_gif` and `document_pdf` mime_groups stay
|
|
774
|
+
`availability: planned`, and the API rejects their
|
|
775
|
+
workflow-create with `feature_not_available` (422) until those
|
|
776
|
+
Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
|
|
649
777
|
follow-up — lambdas pre-launch epic Wave A, ticket
|
|
650
778
|
[DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
|
|
651
779
|
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
@@ -659,6 +787,12 @@ channels:
|
|
|
659
787
|
MIME detection.
|
|
660
788
|
|
|
661
789
|
Per ADR-0004 + ADR-0014.
|
|
790
|
+
bindings:
|
|
791
|
+
sqs:
|
|
792
|
+
queue:
|
|
793
|
+
name: gisl-{env}-{region}-ops-split
|
|
794
|
+
fifoQueue: false
|
|
795
|
+
bindingVersion: '0.2.0'
|
|
662
796
|
parameters:
|
|
663
797
|
env:
|
|
664
798
|
description: Environment (local, stg, prod)
|
|
@@ -678,11 +812,12 @@ channels:
|
|
|
678
812
|
(Path B with `role: base` video + `role: overlay` image,
|
|
679
813
|
exactly one of each per `per_role_cardinality`).
|
|
680
814
|
|
|
681
|
-
`availability:
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
815
|
+
`availability: beta` per the operation schema (Wave A activated,
|
|
816
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
|
|
817
|
+
publishes, so traffic flows to this queue (MUST NOT 422). The
|
|
818
|
+
`short_form` processing class is beta; `long_form` stays planned
|
|
819
|
+
(no live Fargate worker). Backed by the `operation-video-watermark`
|
|
820
|
+
Lambda (live; lambdas pre-launch epic Wave A, ticket
|
|
686
821
|
[DbpJpVtm](https://trello.com/c/DbpJpVtm)).
|
|
687
822
|
|
|
688
823
|
Distinct from `image_watermark` (pure-Rust image-only) — see
|
|
@@ -690,6 +825,12 @@ channels:
|
|
|
690
825
|
|
|
691
826
|
Per ADR-0004 + ADR-0013
|
|
692
827
|
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
828
|
+
bindings:
|
|
829
|
+
sqs:
|
|
830
|
+
queue:
|
|
831
|
+
name: gisl-{env}-{region}-ops-video-watermark
|
|
832
|
+
fifoQueue: false
|
|
833
|
+
bindingVersion: '0.2.0'
|
|
693
834
|
parameters:
|
|
694
835
|
env:
|
|
695
836
|
description: Environment (local, stg, prod)
|
|
@@ -720,6 +861,12 @@ channels:
|
|
|
720
861
|
|
|
721
862
|
Per ADR-0004 + ADR-0013
|
|
722
863
|
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
864
|
+
bindings:
|
|
865
|
+
sqs:
|
|
866
|
+
queue:
|
|
867
|
+
name: gisl-{env}-{region}-ops-video-text-watermark
|
|
868
|
+
fifoQueue: false
|
|
869
|
+
bindingVersion: '0.2.0'
|
|
723
870
|
parameters:
|
|
724
871
|
env:
|
|
725
872
|
description: Environment (local, stg, prod)
|
|
@@ -754,6 +901,37 @@ channels:
|
|
|
754
901
|
own-watermarks-only extraction (declared in `openapi/api.yaml`).
|
|
755
902
|
|
|
756
903
|
Per ADR-0004 + I20 (Trello omiCq7Vn).
|
|
904
|
+
bindings:
|
|
905
|
+
sqs:
|
|
906
|
+
queue:
|
|
907
|
+
name: gisl-{env}-{region}-ops-audio-watermark
|
|
908
|
+
fifoQueue: false
|
|
909
|
+
bindingVersion: '0.2.0'
|
|
910
|
+
parameters:
|
|
911
|
+
env:
|
|
912
|
+
description: Environment (local, stg, prod)
|
|
913
|
+
region:
|
|
914
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
915
|
+
messages:
|
|
916
|
+
operationRequest:
|
|
917
|
+
$ref: '#/components/messages/OperationRequestMessage'
|
|
918
|
+
|
|
919
|
+
opsRenderVariants:
|
|
920
|
+
address: gisl-{env}-{region}-ops-render-variants
|
|
921
|
+
description: |
|
|
922
|
+
SQS queue for render_variants operations (image fan-out — one
|
|
923
|
+
source image to N resized / re-encoded variants). Subscribed to the
|
|
924
|
+
`operations` SNS topic with filter `operation_type = render_variants`.
|
|
925
|
+
Backed by the render_variants Lambda (`operation-render-variants`).
|
|
926
|
+
No traffic reaches this queue while render_variants is
|
|
927
|
+
`availability: planned` (per ticket w3EwzHYd — same `feature_not_
|
|
928
|
+
available` 422 gating until the worker + this subscription ship).
|
|
929
|
+
bindings:
|
|
930
|
+
sqs:
|
|
931
|
+
queue:
|
|
932
|
+
name: gisl-{env}-{region}-ops-render-variants
|
|
933
|
+
fifoQueue: false
|
|
934
|
+
bindingVersion: '0.2.0'
|
|
757
935
|
parameters:
|
|
758
936
|
env:
|
|
759
937
|
description: Environment (local, stg, prod)
|
|
@@ -895,14 +1073,26 @@ channels:
|
|
|
895
1073
|
region:
|
|
896
1074
|
description: AWS region abbreviation (euw1, use1, etc.)
|
|
897
1075
|
|
|
1076
|
+
opsRenderVariantsDlq:
|
|
1077
|
+
address: gisl-{env}-{region}-ops-render-variants-dlq
|
|
1078
|
+
description: |
|
|
1079
|
+
DLQ for failed render_variants operations (per ticket w3EwzHYd).
|
|
1080
|
+
Messages land here after 5 failed processing attempts. No traffic
|
|
1081
|
+
reaches this queue while render_variants is `availability: planned`.
|
|
1082
|
+
parameters:
|
|
1083
|
+
env:
|
|
1084
|
+
description: Environment (local, stg, prod)
|
|
1085
|
+
region:
|
|
1086
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1087
|
+
|
|
898
1088
|
opsAudioToVideoDlq:
|
|
899
1089
|
address: gisl-{env}-{region}-ops-audio-to-video-dlq
|
|
900
1090
|
description: |
|
|
901
1091
|
DLQ for failed audio_to_video operations (per ticket
|
|
902
1092
|
[`SlluxMBN`](https://trello.com/c/SlluxMBN) / ADR-0015).
|
|
903
|
-
Messages land here after 5 failed processing attempts.
|
|
904
|
-
|
|
905
|
-
|
|
1093
|
+
Messages land here after 5 failed processing attempts.
|
|
1094
|
+
audio_to_video is `availability: beta` (Wave A activated) so
|
|
1095
|
+
this queue now receives real failures.
|
|
906
1096
|
parameters:
|
|
907
1097
|
env:
|
|
908
1098
|
description: Environment (local, stg, prod)
|
|
@@ -914,9 +1104,9 @@ channels:
|
|
|
914
1104
|
description: |
|
|
915
1105
|
DLQ for failed video_watermark operations (per ticket
|
|
916
1106
|
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh) / ADR-0013).
|
|
917
|
-
Messages land here after 5 failed processing attempts.
|
|
918
|
-
|
|
919
|
-
|
|
1107
|
+
Messages land here after 5 failed processing attempts.
|
|
1108
|
+
video_watermark is `availability: beta` (Wave A activated) so
|
|
1109
|
+
this queue now receives real failures.
|
|
920
1110
|
parameters:
|
|
921
1111
|
env:
|
|
922
1112
|
description: Environment (local, stg, prod)
|
|
@@ -942,9 +1132,10 @@ channels:
|
|
|
942
1132
|
description: |
|
|
943
1133
|
DLQ for failed split operations (per ticket
|
|
944
1134
|
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu) / ADR-0014).
|
|
945
|
-
Messages land here after 5 failed processing attempts.
|
|
946
|
-
|
|
947
|
-
|
|
1135
|
+
Messages land here after 5 failed processing attempts. Live for
|
|
1136
|
+
the `split` `audio` + `video` mime_groups (now `availability: beta`,
|
|
1137
|
+
video short-form only); the `image_gif` and `document_pdf` groups
|
|
1138
|
+
stay `availability: planned` and carry no traffic yet.
|
|
948
1139
|
parameters:
|
|
949
1140
|
env:
|
|
950
1141
|
description: Environment (local, stg, prod)
|
|
@@ -997,6 +1188,12 @@ channels:
|
|
|
997
1188
|
|
|
998
1189
|
Standard (non-FIFO) — each probe request is independent; no
|
|
999
1190
|
ordering guarantees are required across uploads.
|
|
1191
|
+
bindings:
|
|
1192
|
+
sqs:
|
|
1193
|
+
queue:
|
|
1194
|
+
name: gisl-{env}-{region}-upload-probe
|
|
1195
|
+
fifoQueue: false
|
|
1196
|
+
bindingVersion: '0.2.0'
|
|
1000
1197
|
parameters:
|
|
1001
1198
|
env:
|
|
1002
1199
|
description: Environment (local, stg, prod)
|
|
@@ -1037,6 +1234,12 @@ channels:
|
|
|
1037
1234
|
The sync `POST /api/uploads/{id}/probe` path does not publish
|
|
1038
1235
|
here — sync results are returned inline via the Lambda
|
|
1039
1236
|
RequestResponse return value.
|
|
1237
|
+
bindings:
|
|
1238
|
+
sqs:
|
|
1239
|
+
queue:
|
|
1240
|
+
name: gisl-{env}-{region}-upload-probe-completions
|
|
1241
|
+
fifoQueue: false
|
|
1242
|
+
bindingVersion: '0.2.0'
|
|
1040
1243
|
parameters:
|
|
1041
1244
|
env:
|
|
1042
1245
|
description: Environment (local, stg, prod)
|
|
@@ -1063,8 +1266,8 @@ channels:
|
|
|
1063
1266
|
# NOTIFICATIONS (Lambda -> API)
|
|
1064
1267
|
# ============================================
|
|
1065
1268
|
|
|
1066
|
-
|
|
1067
|
-
address: gisl-{env}-{region}-notifications-
|
|
1269
|
+
notificationsJobsTopic:
|
|
1270
|
+
address: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1068
1271
|
description: |
|
|
1069
1272
|
FIFO SNS topic where Lambdas publish all operation notifications (progress and results).
|
|
1070
1273
|
API subscribes via FIFO SQS with Raw Message Delivery enabled.
|
|
@@ -1072,6 +1275,13 @@ channels:
|
|
|
1072
1275
|
**FIFO Publishing Requirements:**
|
|
1073
1276
|
- MessageGroupId: Use operation_id (ensures ordering per operation)
|
|
1074
1277
|
- MessageDeduplicationId: Not required (content-based deduplication enabled)
|
|
1278
|
+
bindings:
|
|
1279
|
+
sns:
|
|
1280
|
+
name: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1281
|
+
ordering:
|
|
1282
|
+
type: FIFO
|
|
1283
|
+
contentBasedDeduplication: true
|
|
1284
|
+
bindingVersion: '0.1.0'
|
|
1075
1285
|
parameters:
|
|
1076
1286
|
env:
|
|
1077
1287
|
description: Environment (local, stg, prod)
|
|
@@ -1083,15 +1293,21 @@ channels:
|
|
|
1083
1293
|
operationResult:
|
|
1084
1294
|
$ref: '#/components/messages/OperationResultMessage'
|
|
1085
1295
|
|
|
1086
|
-
|
|
1087
|
-
address: gisl-{env}-{region}-notifications-
|
|
1296
|
+
notificationsJobsQueue:
|
|
1297
|
+
address: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1088
1298
|
description: |
|
|
1089
|
-
FIFO SQS queue subscribed to notifications-
|
|
1299
|
+
FIFO SQS queue subscribed to notifications-jobs SNS topic.
|
|
1090
1300
|
Receives both OperationProgress and OperationResult messages.
|
|
1091
1301
|
Raw Message Delivery enabled (no SNS envelope).
|
|
1092
1302
|
|
|
1093
1303
|
FIFO ensures message ordering per operation (operation_id used as MessageGroupId).
|
|
1094
1304
|
This guarantees OperationProgress messages arrive before OperationResult.
|
|
1305
|
+
bindings:
|
|
1306
|
+
sqs:
|
|
1307
|
+
queue:
|
|
1308
|
+
name: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1309
|
+
fifoQueue: true
|
|
1310
|
+
bindingVersion: '0.2.0'
|
|
1095
1311
|
parameters:
|
|
1096
1312
|
env:
|
|
1097
1313
|
description: Environment (local, stg, prod)
|
|
@@ -1103,8 +1319,8 @@ channels:
|
|
|
1103
1319
|
operationResult:
|
|
1104
1320
|
$ref: '#/components/messages/OperationResultMessage'
|
|
1105
1321
|
|
|
1106
|
-
|
|
1107
|
-
address: gisl-{env}-{region}-notifications-
|
|
1322
|
+
notificationsJobsDlq:
|
|
1323
|
+
address: gisl-{env}-{region}-notifications-jobs-dlq.fifo
|
|
1108
1324
|
description: DLQ for failed notification processing. Messages land here after 5 failed processing attempts.
|
|
1109
1325
|
parameters:
|
|
1110
1326
|
env:
|
|
@@ -1137,6 +1353,12 @@ channels:
|
|
|
1137
1353
|
shared `JobRequestMessage` across the per-media `jobs-*` queues); per-queue
|
|
1138
1354
|
`operation_type` is a publisher invariant documented here, not a separate
|
|
1139
1355
|
message schema.
|
|
1356
|
+
bindings:
|
|
1357
|
+
sqs:
|
|
1358
|
+
queue:
|
|
1359
|
+
name: gisl-{env}-{region}-ops-compress-video-longform
|
|
1360
|
+
fifoQueue: false
|
|
1361
|
+
bindingVersion: '0.2.0'
|
|
1140
1362
|
parameters:
|
|
1141
1363
|
env:
|
|
1142
1364
|
description: Environment (local, stg, prod)
|
|
@@ -1167,6 +1389,12 @@ channels:
|
|
|
1167
1389
|
`LongFormJobMessage` enum permits `{compress, merge}`; per-queue
|
|
1168
1390
|
`operation_type` is a publisher invariant documented here, not a separate
|
|
1169
1391
|
schema).
|
|
1392
|
+
bindings:
|
|
1393
|
+
sqs:
|
|
1394
|
+
queue:
|
|
1395
|
+
name: gisl-{env}-{region}-ops-merge-video-longform-reencode
|
|
1396
|
+
fifoQueue: false
|
|
1397
|
+
bindingVersion: '0.2.0'
|
|
1170
1398
|
parameters:
|
|
1171
1399
|
env:
|
|
1172
1400
|
description: Environment (local, stg, prod)
|
|
@@ -1247,6 +1475,12 @@ operations:
|
|
|
1247
1475
|
action: receive
|
|
1248
1476
|
channel:
|
|
1249
1477
|
$ref: '#/channels/jobsImage'
|
|
1478
|
+
bindings:
|
|
1479
|
+
sqs:
|
|
1480
|
+
queues:
|
|
1481
|
+
- name: gisl-{env}-{region}-jobs-image
|
|
1482
|
+
fifoQueue: false
|
|
1483
|
+
bindingVersion: '0.2.0'
|
|
1250
1484
|
summary: Process image compression job
|
|
1251
1485
|
description: |
|
|
1252
1486
|
The image compression Lambda consumes jobs for image inputs.
|
|
@@ -1261,6 +1495,12 @@ operations:
|
|
|
1261
1495
|
action: receive
|
|
1262
1496
|
channel:
|
|
1263
1497
|
$ref: '#/channels/jobsVideo'
|
|
1498
|
+
bindings:
|
|
1499
|
+
sqs:
|
|
1500
|
+
queues:
|
|
1501
|
+
- name: gisl-{env}-{region}-jobs-video
|
|
1502
|
+
fifoQueue: false
|
|
1503
|
+
bindingVersion: '0.2.0'
|
|
1264
1504
|
summary: Process video compression job
|
|
1265
1505
|
description: |
|
|
1266
1506
|
The video compression Lambda consumes jobs for video inputs.
|
|
@@ -1274,6 +1514,12 @@ operations:
|
|
|
1274
1514
|
action: receive
|
|
1275
1515
|
channel:
|
|
1276
1516
|
$ref: '#/channels/jobsAudio'
|
|
1517
|
+
bindings:
|
|
1518
|
+
sqs:
|
|
1519
|
+
queues:
|
|
1520
|
+
- name: gisl-{env}-{region}-jobs-audio
|
|
1521
|
+
fifoQueue: false
|
|
1522
|
+
bindingVersion: '0.2.0'
|
|
1277
1523
|
summary: Process audio compression job
|
|
1278
1524
|
description: |
|
|
1279
1525
|
The audio compression Lambda consumes jobs for audio inputs.
|
|
@@ -1287,6 +1533,12 @@ operations:
|
|
|
1287
1533
|
action: receive
|
|
1288
1534
|
channel:
|
|
1289
1535
|
$ref: '#/channels/jobsDocument'
|
|
1536
|
+
bindings:
|
|
1537
|
+
sqs:
|
|
1538
|
+
queues:
|
|
1539
|
+
- name: gisl-{env}-{region}-jobs-document
|
|
1540
|
+
fifoQueue: false
|
|
1541
|
+
bindingVersion: '0.2.0'
|
|
1290
1542
|
summary: Process document compression job
|
|
1291
1543
|
description: |
|
|
1292
1544
|
The document compression Lambda consumes jobs for document inputs.
|
|
@@ -1304,13 +1556,20 @@ operations:
|
|
|
1304
1556
|
action: receive
|
|
1305
1557
|
channel:
|
|
1306
1558
|
$ref: '#/channels/opsThumbnail'
|
|
1559
|
+
bindings:
|
|
1560
|
+
sqs:
|
|
1561
|
+
queues:
|
|
1562
|
+
- name: gisl-{env}-{region}-ops-thumbnail
|
|
1563
|
+
fifoQueue: false
|
|
1564
|
+
bindingVersion: '0.2.0'
|
|
1307
1565
|
summary: Process legacy thumbnail operation
|
|
1308
1566
|
description: |
|
|
1309
1567
|
The legacy thumbnail Lambda consumes thumbnail requests routed
|
|
1310
1568
|
by `operation_type=thumbnail`. Handles thumbnail generation for
|
|
1311
|
-
all media types in a single Lambda.
|
|
1312
|
-
|
|
1313
|
-
|
|
1569
|
+
all media types in a single Lambda. Retained as a valid routing
|
|
1570
|
+
target during the migration window, but the API publisher no
|
|
1571
|
+
longer emits `operation_type=thumbnail` (it emits the four
|
|
1572
|
+
sub-type values); this queue is retired once no traffic remains.
|
|
1314
1573
|
messages:
|
|
1315
1574
|
- $ref: '#/channels/opsThumbnail/messages/operationRequest'
|
|
1316
1575
|
|
|
@@ -1318,11 +1577,17 @@ operations:
|
|
|
1318
1577
|
action: receive
|
|
1319
1578
|
channel:
|
|
1320
1579
|
$ref: '#/channels/opsThumbnailImage'
|
|
1580
|
+
bindings:
|
|
1581
|
+
sqs:
|
|
1582
|
+
queues:
|
|
1583
|
+
- name: gisl-{env}-{region}-ops-thumbnail-image
|
|
1584
|
+
fifoQueue: false
|
|
1585
|
+
bindingVersion: '0.2.0'
|
|
1321
1586
|
summary: Process image thumbnail operation
|
|
1322
1587
|
description: |
|
|
1323
1588
|
The image thumbnail Lambda consumes thumbnail requests routed by
|
|
1324
1589
|
`operation_type=thumbnail_image`. Backed by a Rust image crate.
|
|
1325
|
-
|
|
1590
|
+
Receives traffic for image inputs — see channel description.
|
|
1326
1591
|
messages:
|
|
1327
1592
|
- $ref: '#/channels/opsThumbnailImage/messages/operationRequest'
|
|
1328
1593
|
|
|
@@ -1330,11 +1595,17 @@ operations:
|
|
|
1330
1595
|
action: receive
|
|
1331
1596
|
channel:
|
|
1332
1597
|
$ref: '#/channels/opsThumbnailVideo'
|
|
1598
|
+
bindings:
|
|
1599
|
+
sqs:
|
|
1600
|
+
queues:
|
|
1601
|
+
- name: gisl-{env}-{region}-ops-thumbnail-video
|
|
1602
|
+
fifoQueue: false
|
|
1603
|
+
bindingVersion: '0.2.0'
|
|
1333
1604
|
summary: Process video thumbnail operation
|
|
1334
1605
|
description: |
|
|
1335
1606
|
The video thumbnail Lambda consumes thumbnail requests routed by
|
|
1336
|
-
`operation_type=thumbnail_video`. Backed by FFmpeg.
|
|
1337
|
-
|
|
1607
|
+
`operation_type=thumbnail_video`. Backed by FFmpeg. Receives
|
|
1608
|
+
traffic for video inputs — see channel description.
|
|
1338
1609
|
messages:
|
|
1339
1610
|
- $ref: '#/channels/opsThumbnailVideo/messages/operationRequest'
|
|
1340
1611
|
|
|
@@ -1342,11 +1613,18 @@ operations:
|
|
|
1342
1613
|
action: receive
|
|
1343
1614
|
channel:
|
|
1344
1615
|
$ref: '#/channels/opsThumbnailDocument'
|
|
1616
|
+
bindings:
|
|
1617
|
+
sqs:
|
|
1618
|
+
queues:
|
|
1619
|
+
- name: gisl-{env}-{region}-ops-thumbnail-document
|
|
1620
|
+
fifoQueue: false
|
|
1621
|
+
bindingVersion: '0.2.0'
|
|
1345
1622
|
summary: Process document thumbnail operation
|
|
1346
1623
|
description: |
|
|
1347
1624
|
The document (PDF/EPUB) thumbnail Lambda consumes thumbnail
|
|
1348
1625
|
requests routed by `operation_type=thumbnail_document`. Backed by
|
|
1349
|
-
Ghostscript.
|
|
1626
|
+
Ghostscript. Receives traffic for PDF/EPUB inputs — see channel
|
|
1627
|
+
description.
|
|
1350
1628
|
messages:
|
|
1351
1629
|
- $ref: '#/channels/opsThumbnailDocument/messages/operationRequest'
|
|
1352
1630
|
|
|
@@ -1354,12 +1632,18 @@ operations:
|
|
|
1354
1632
|
action: receive
|
|
1355
1633
|
channel:
|
|
1356
1634
|
$ref: '#/channels/opsThumbnailOffice'
|
|
1635
|
+
bindings:
|
|
1636
|
+
sqs:
|
|
1637
|
+
queues:
|
|
1638
|
+
- name: gisl-{env}-{region}-ops-thumbnail-office
|
|
1639
|
+
fifoQueue: false
|
|
1640
|
+
bindingVersion: '0.2.0'
|
|
1357
1641
|
summary: Process office document thumbnail operation
|
|
1358
1642
|
description: |
|
|
1359
1643
|
The office document (DOCX/XLSX/PPTX/ODT/ODS/ODP) thumbnail Lambda
|
|
1360
1644
|
consumes thumbnail requests routed by
|
|
1361
|
-
`operation_type=thumbnail_office`. Backed by LibreOffice.
|
|
1362
|
-
|
|
1645
|
+
`operation_type=thumbnail_office`. Backed by LibreOffice. Receives
|
|
1646
|
+
traffic for office-document inputs — see channel description.
|
|
1363
1647
|
messages:
|
|
1364
1648
|
- $ref: '#/channels/opsThumbnailOffice/messages/operationRequest'
|
|
1365
1649
|
|
|
@@ -1367,6 +1651,12 @@ operations:
|
|
|
1367
1651
|
action: receive
|
|
1368
1652
|
channel:
|
|
1369
1653
|
$ref: '#/channels/opsImageWatermark'
|
|
1654
|
+
bindings:
|
|
1655
|
+
sqs:
|
|
1656
|
+
queues:
|
|
1657
|
+
- name: gisl-{env}-{region}-ops-image-watermark
|
|
1658
|
+
fifoQueue: false
|
|
1659
|
+
bindingVersion: '0.2.0'
|
|
1370
1660
|
summary: Process image_watermark operation
|
|
1371
1661
|
description: |
|
|
1372
1662
|
The operation-image-watermark Lambda consumes image_watermark
|
|
@@ -1385,6 +1675,12 @@ operations:
|
|
|
1385
1675
|
action: receive
|
|
1386
1676
|
channel:
|
|
1387
1677
|
$ref: '#/channels/opsTextWatermark'
|
|
1678
|
+
bindings:
|
|
1679
|
+
sqs:
|
|
1680
|
+
queues:
|
|
1681
|
+
- name: gisl-{env}-{region}-ops-text-watermark
|
|
1682
|
+
fifoQueue: false
|
|
1683
|
+
bindingVersion: '0.2.0'
|
|
1388
1684
|
summary: Process text_watermark operation
|
|
1389
1685
|
description: |
|
|
1390
1686
|
The operation-text-watermark Lambda consumes text_watermark
|
|
@@ -1398,6 +1694,12 @@ operations:
|
|
|
1398
1694
|
action: receive
|
|
1399
1695
|
channel:
|
|
1400
1696
|
$ref: '#/channels/opsMerge'
|
|
1697
|
+
bindings:
|
|
1698
|
+
sqs:
|
|
1699
|
+
queues:
|
|
1700
|
+
- name: gisl-{env}-{region}-ops-merge
|
|
1701
|
+
fifoQueue: false
|
|
1702
|
+
bindingVersion: '0.2.0'
|
|
1401
1703
|
summary: Process merge operation
|
|
1402
1704
|
description: |
|
|
1403
1705
|
The merge Lambda consumes merge requests routed by
|
|
@@ -1413,6 +1715,12 @@ operations:
|
|
|
1413
1715
|
action: receive
|
|
1414
1716
|
channel:
|
|
1415
1717
|
$ref: '#/channels/opsArchive'
|
|
1718
|
+
bindings:
|
|
1719
|
+
sqs:
|
|
1720
|
+
queues:
|
|
1721
|
+
- name: gisl-{env}-{region}-ops-archive
|
|
1722
|
+
fifoQueue: false
|
|
1723
|
+
bindingVersion: '0.2.0'
|
|
1416
1724
|
summary: Process archive operation
|
|
1417
1725
|
description: |
|
|
1418
1726
|
The archive Lambda consumes archive requests routed by
|
|
@@ -1425,6 +1733,12 @@ operations:
|
|
|
1425
1733
|
action: receive
|
|
1426
1734
|
channel:
|
|
1427
1735
|
$ref: '#/channels/opsConvert'
|
|
1736
|
+
bindings:
|
|
1737
|
+
sqs:
|
|
1738
|
+
queues:
|
|
1739
|
+
- name: gisl-{env}-{region}-ops-convert
|
|
1740
|
+
fifoQueue: false
|
|
1741
|
+
bindingVersion: '0.2.0'
|
|
1428
1742
|
summary: Process convert operation
|
|
1429
1743
|
description: |
|
|
1430
1744
|
The convert Lambda consumes convert requests routed by
|
|
@@ -1437,6 +1751,12 @@ operations:
|
|
|
1437
1751
|
action: receive
|
|
1438
1752
|
channel:
|
|
1439
1753
|
$ref: '#/channels/opsCustomLuma'
|
|
1754
|
+
bindings:
|
|
1755
|
+
sqs:
|
|
1756
|
+
queues:
|
|
1757
|
+
- name: gisl-{env}-{region}-ops-custom-luma
|
|
1758
|
+
fifoQueue: false
|
|
1759
|
+
bindingVersion: '0.2.0'
|
|
1440
1760
|
summary: Process custom_luma operation
|
|
1441
1761
|
description: |
|
|
1442
1762
|
The `operation-custom-luma` Lambda (cross-repo follow-up — not
|
|
@@ -1454,6 +1774,12 @@ operations:
|
|
|
1454
1774
|
action: receive
|
|
1455
1775
|
channel:
|
|
1456
1776
|
$ref: '#/channels/opsAudioOverlay'
|
|
1777
|
+
bindings:
|
|
1778
|
+
sqs:
|
|
1779
|
+
queues:
|
|
1780
|
+
- name: gisl-{env}-{region}-ops-audio-overlay
|
|
1781
|
+
fifoQueue: false
|
|
1782
|
+
bindingVersion: '0.2.0'
|
|
1457
1783
|
summary: Process audio_overlay operation
|
|
1458
1784
|
description: |
|
|
1459
1785
|
The `operation-audio-overlay` Lambda (cross-repo follow-up —
|
|
@@ -1472,16 +1798,27 @@ operations:
|
|
|
1472
1798
|
action: receive
|
|
1473
1799
|
channel:
|
|
1474
1800
|
$ref: '#/channels/opsSplit'
|
|
1801
|
+
bindings:
|
|
1802
|
+
sqs:
|
|
1803
|
+
queues:
|
|
1804
|
+
- name: gisl-{env}-{region}-ops-split
|
|
1805
|
+
fifoQueue: false
|
|
1806
|
+
bindingVersion: '0.2.0'
|
|
1475
1807
|
summary: Process split operation
|
|
1476
1808
|
description: |
|
|
1477
|
-
The `operation-split` Lambda (
|
|
1478
|
-
|
|
1479
|
-
|
|
1809
|
+
The `operation-split` Lambda (lambdas pre-launch epic Wave A)
|
|
1810
|
+
consumes split requests routed by `operation_type=split`. Its
|
|
1811
|
+
`audio` + short-form `video` paths are live on staging (lambdas
|
|
1812
|
+
#161 / [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); the
|
|
1813
|
+
`image_gif` / `document_pdf` workers (and video `long_form` via
|
|
1814
|
+
`split-video-fargate`) remain a cross-repo follow-up. Single-input —
|
|
1480
1815
|
`media_group` derives from the input MIME prefix per the
|
|
1481
|
-
existing single-input rule. `availability:
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1816
|
+
existing single-input rule. `availability: beta` for the `audio`
|
|
1817
|
+
and `video` (short-form) mime_groups (workers live on staging); the
|
|
1818
|
+
`image_gif` and `document_pdf` mime_groups stay `availability:
|
|
1819
|
+
planned`, and the API rejects their workflow-create with
|
|
1820
|
+
`feature_not_available` (422) until those Lambdas ship.
|
|
1821
|
+
Long-form video splits route to a separate
|
|
1485
1822
|
`split-video-fargate` worker via `processing_class`.
|
|
1486
1823
|
Per ADR-0004 + ADR-0014
|
|
1487
1824
|
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
@@ -1492,17 +1829,23 @@ operations:
|
|
|
1492
1829
|
action: receive
|
|
1493
1830
|
channel:
|
|
1494
1831
|
$ref: '#/channels/opsVideoWatermark'
|
|
1832
|
+
bindings:
|
|
1833
|
+
sqs:
|
|
1834
|
+
queues:
|
|
1835
|
+
- name: gisl-{env}-{region}-ops-video-watermark
|
|
1836
|
+
fifoQueue: false
|
|
1837
|
+
bindingVersion: '0.2.0'
|
|
1495
1838
|
summary: Process video_watermark operation
|
|
1496
1839
|
description: |
|
|
1497
1840
|
The `operation-video-watermark` Lambda (cross-repo follow-up —
|
|
1498
|
-
lambdas pre-launch epic Wave A,
|
|
1841
|
+
lambdas pre-launch epic Wave A, live) consumes
|
|
1499
1842
|
video_watermark requests routed by
|
|
1500
1843
|
`operation_type=video_watermark`. Multi-input role-based with
|
|
1501
1844
|
`role: base` video + `role: overlay` image (exactly one of
|
|
1502
|
-
each per `per_role_cardinality`). `availability:
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1845
|
+
each per `per_role_cardinality`). `availability: beta` (Wave A
|
|
1846
|
+
activated, [`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API
|
|
1847
|
+
accepts + publishes (MUST NOT 422), so traffic flows to this
|
|
1848
|
+
channel. `short_form` is beta; `long_form` stays planned.
|
|
1506
1849
|
Per ADR-0004 + ADR-0013
|
|
1507
1850
|
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
1508
1851
|
messages:
|
|
@@ -1512,6 +1855,12 @@ operations:
|
|
|
1512
1855
|
action: receive
|
|
1513
1856
|
channel:
|
|
1514
1857
|
$ref: '#/channels/opsVideoTextWatermark'
|
|
1858
|
+
bindings:
|
|
1859
|
+
sqs:
|
|
1860
|
+
queues:
|
|
1861
|
+
- name: gisl-{env}-{region}-ops-video-text-watermark
|
|
1862
|
+
fifoQueue: false
|
|
1863
|
+
bindingVersion: '0.2.0'
|
|
1515
1864
|
summary: Process video_text_watermark operation
|
|
1516
1865
|
description: |
|
|
1517
1866
|
The `operation-video-text-watermark` Lambda (cross-repo
|
|
@@ -1531,17 +1880,23 @@ operations:
|
|
|
1531
1880
|
action: receive
|
|
1532
1881
|
channel:
|
|
1533
1882
|
$ref: '#/channels/opsAudioToVideo'
|
|
1883
|
+
bindings:
|
|
1884
|
+
sqs:
|
|
1885
|
+
queues:
|
|
1886
|
+
- name: gisl-{env}-{region}-ops-audio-to-video
|
|
1887
|
+
fifoQueue: false
|
|
1888
|
+
bindingVersion: '0.2.0'
|
|
1534
1889
|
summary: Process audio_to_video operation
|
|
1535
1890
|
description: |
|
|
1536
1891
|
The `operation-audio-to-video` Lambda (cross-repo follow-up —
|
|
1537
|
-
lambdas pre-launch epic Wave A,
|
|
1892
|
+
lambdas pre-launch epic Wave A, live) consumes
|
|
1538
1893
|
audio_to_video requests routed by
|
|
1539
1894
|
`operation_type=audio_to_video`. Multi-input role-based with
|
|
1540
1895
|
role asymmetry (Path B with `role: base` audio REQUIRED +
|
|
1541
1896
|
`role: overlay` image OPTIONAL per `per_role_cardinality`).
|
|
1542
|
-
`availability:
|
|
1543
|
-
`
|
|
1544
|
-
traffic
|
|
1897
|
+
`availability: beta` (Wave A activated,
|
|
1898
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4)): the API accepts +
|
|
1899
|
+
publishes (MUST NOT 422), so traffic flows to this channel.
|
|
1545
1900
|
Per ADR-0004 + ADR-0015
|
|
1546
1901
|
([`SlluxMBN`](https://trello.com/c/SlluxMBN)).
|
|
1547
1902
|
messages:
|
|
@@ -1551,6 +1906,12 @@ operations:
|
|
|
1551
1906
|
action: receive
|
|
1552
1907
|
channel:
|
|
1553
1908
|
$ref: '#/channels/opsAudioWatermark'
|
|
1909
|
+
bindings:
|
|
1910
|
+
sqs:
|
|
1911
|
+
queues:
|
|
1912
|
+
- name: gisl-{env}-{region}-ops-audio-watermark
|
|
1913
|
+
fifoQueue: false
|
|
1914
|
+
bindingVersion: '0.2.0'
|
|
1554
1915
|
summary: Process audio_watermark operation
|
|
1555
1916
|
description: |
|
|
1556
1917
|
The `operation-audio-watermark` Lambda (cross-repo follow-up —
|
|
@@ -1565,6 +1926,29 @@ operations:
|
|
|
1565
1926
|
messages:
|
|
1566
1927
|
- $ref: '#/channels/opsAudioWatermark/messages/operationRequest'
|
|
1567
1928
|
|
|
1929
|
+
consumeRenderVariantsOperation:
|
|
1930
|
+
action: receive
|
|
1931
|
+
channel:
|
|
1932
|
+
$ref: '#/channels/opsRenderVariants'
|
|
1933
|
+
bindings:
|
|
1934
|
+
sqs:
|
|
1935
|
+
queues:
|
|
1936
|
+
- name: gisl-{env}-{region}-ops-render-variants
|
|
1937
|
+
fifoQueue: false
|
|
1938
|
+
bindingVersion: '0.2.0'
|
|
1939
|
+
summary: Process render_variants operation
|
|
1940
|
+
description: |
|
|
1941
|
+
The `operation-render-variants` Lambda (cross-repo follow-up —
|
|
1942
|
+
not yet shipped) consumes render_variants requests routed by
|
|
1943
|
+
`operation_type=render_variants`. Single-input image fan-out (one
|
|
1944
|
+
source image to N resized / re-encoded variants). `availability:
|
|
1945
|
+
planned`; the API rejects workflow-create with
|
|
1946
|
+
`feature_not_available` (422) until the Lambda + this subscription
|
|
1947
|
+
ship, so traffic does not reach this channel today. Per ticket
|
|
1948
|
+
w3EwzHYd.
|
|
1949
|
+
messages:
|
|
1950
|
+
- $ref: '#/channels/opsRenderVariants/messages/operationRequest'
|
|
1951
|
+
|
|
1568
1952
|
# ============================================
|
|
1569
1953
|
# NOTIFICATION OPERATIONS
|
|
1570
1954
|
# ============================================
|
|
@@ -1572,37 +1956,67 @@ operations:
|
|
|
1572
1956
|
publishOperationProgress:
|
|
1573
1957
|
action: send
|
|
1574
1958
|
channel:
|
|
1575
|
-
$ref: '#/channels/
|
|
1959
|
+
$ref: '#/channels/notificationsJobsTopic'
|
|
1960
|
+
# Operation-level SNS binding: Microcks reads OPERATION bindings (not
|
|
1961
|
+
# the channel binding) for protocol detection — without it the SEND op
|
|
1962
|
+
# registers under Microcks' Kafka default and SNS conformance can't
|
|
1963
|
+
# bind. The cli@6.0.0-bundled SNS 0.1.0 schema requires a non-empty
|
|
1964
|
+
# consumers[] EVEN on send ops (the "consumers only for receive" rule
|
|
1965
|
+
# is 1.0.0, which cli rejects), so we declare the topic's real consumer
|
|
1966
|
+
# — the API FIFO SQS queue with raw message delivery. bindingVersion
|
|
1967
|
+
# 0.1.0 mirrors the channel pin. Per z7VkTNmN producer pillar.
|
|
1968
|
+
bindings:
|
|
1969
|
+
sns:
|
|
1970
|
+
consumers:
|
|
1971
|
+
- protocol: sqs
|
|
1972
|
+
endpoint:
|
|
1973
|
+
name: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1974
|
+
rawMessageDelivery: true
|
|
1975
|
+
bindingVersion: '0.1.0'
|
|
1576
1976
|
summary: Publish operation progress update
|
|
1577
1977
|
description: |
|
|
1578
1978
|
Lambda publishes progress updates during operation processing.
|
|
1579
1979
|
These are lightweight messages for real-time status tracking.
|
|
1580
1980
|
messages:
|
|
1581
|
-
- $ref: '#/channels/
|
|
1981
|
+
- $ref: '#/channels/notificationsJobsTopic/messages/operationProgress'
|
|
1582
1982
|
|
|
1583
1983
|
publishOperationResult:
|
|
1584
1984
|
action: send
|
|
1585
1985
|
channel:
|
|
1586
|
-
$ref: '#/channels/
|
|
1986
|
+
$ref: '#/channels/notificationsJobsTopic'
|
|
1987
|
+
bindings:
|
|
1988
|
+
sns:
|
|
1989
|
+
consumers:
|
|
1990
|
+
- protocol: sqs
|
|
1991
|
+
endpoint:
|
|
1992
|
+
name: gisl-{env}-{region}-notifications-jobs.fifo
|
|
1993
|
+
rawMessageDelivery: true
|
|
1994
|
+
bindingVersion: '0.1.0'
|
|
1587
1995
|
summary: Publish operation result
|
|
1588
1996
|
description: |
|
|
1589
1997
|
Lambda publishes the final result when operation completes or fails.
|
|
1590
1998
|
This is a terminal message with full details.
|
|
1591
1999
|
messages:
|
|
1592
|
-
- $ref: '#/channels/
|
|
2000
|
+
- $ref: '#/channels/notificationsJobsTopic/messages/operationResult'
|
|
1593
2001
|
|
|
1594
2002
|
consumeOperationNotifications:
|
|
1595
2003
|
action: receive
|
|
1596
2004
|
channel:
|
|
1597
|
-
$ref: '#/channels/
|
|
2005
|
+
$ref: '#/channels/notificationsJobsQueue'
|
|
2006
|
+
bindings:
|
|
2007
|
+
sqs:
|
|
2008
|
+
queues:
|
|
2009
|
+
- name: gisl-{env}-{region}-notifications-jobs.fifo
|
|
2010
|
+
fifoQueue: true
|
|
2011
|
+
bindingVersion: '0.2.0'
|
|
1598
2012
|
summary: Consume operation notifications
|
|
1599
2013
|
description: |
|
|
1600
2014
|
API worker consumes both progress and result notifications from SQS.
|
|
1601
2015
|
- OperationProgress: Update Redis cache for real-time status (forwarded to frontend via SSE)
|
|
1602
2016
|
- OperationResult: Update database Operation entity, derive Job/Workflow status
|
|
1603
2017
|
messages:
|
|
1604
|
-
- $ref: '#/channels/
|
|
1605
|
-
- $ref: '#/channels/
|
|
2018
|
+
- $ref: '#/channels/notificationsJobsQueue/messages/operationProgress'
|
|
2019
|
+
- $ref: '#/channels/notificationsJobsQueue/messages/operationResult'
|
|
1606
2020
|
|
|
1607
2021
|
# ============================================
|
|
1608
2022
|
# UPLOAD-PROBE OPERATIONS (per ticket vBlEurU7)
|
|
@@ -1631,6 +2045,12 @@ operations:
|
|
|
1631
2045
|
action: receive
|
|
1632
2046
|
channel:
|
|
1633
2047
|
$ref: '#/channels/uploadProbeQueue'
|
|
2048
|
+
bindings:
|
|
2049
|
+
sqs:
|
|
2050
|
+
queues:
|
|
2051
|
+
- name: gisl-{env}-{region}-upload-probe
|
|
2052
|
+
fifoQueue: false
|
|
2053
|
+
bindingVersion: '0.2.0'
|
|
1634
2054
|
summary: Consume an upload-probe request (async branch)
|
|
1635
2055
|
description: |
|
|
1636
2056
|
The upload-probe Lambda consumes from the SQS queue subscribed
|
|
@@ -1648,6 +2068,12 @@ operations:
|
|
|
1648
2068
|
action: send
|
|
1649
2069
|
channel:
|
|
1650
2070
|
$ref: '#/channels/uploadProbeCompletionsQueue'
|
|
2071
|
+
bindings:
|
|
2072
|
+
sqs:
|
|
2073
|
+
queues:
|
|
2074
|
+
- name: gisl-{env}-{region}-upload-probe-completions
|
|
2075
|
+
fifoQueue: false
|
|
2076
|
+
bindingVersion: '0.2.0'
|
|
1651
2077
|
summary: Publish an upload-probe completion (async branch)
|
|
1652
2078
|
description: |
|
|
1653
2079
|
The upload-probe Lambda publishes the result of the async
|
|
@@ -1669,6 +2095,12 @@ operations:
|
|
|
1669
2095
|
action: receive
|
|
1670
2096
|
channel:
|
|
1671
2097
|
$ref: '#/channels/uploadProbeCompletionsQueue'
|
|
2098
|
+
bindings:
|
|
2099
|
+
sqs:
|
|
2100
|
+
queues:
|
|
2101
|
+
- name: gisl-{env}-{region}-upload-probe-completions
|
|
2102
|
+
fifoQueue: false
|
|
2103
|
+
bindingVersion: '0.2.0'
|
|
1672
2104
|
summary: Consume an upload-probe completion (async branch)
|
|
1673
2105
|
description: |
|
|
1674
2106
|
The API consumer worker reads completions from this queue and
|
|
@@ -1687,6 +2119,12 @@ operations:
|
|
|
1687
2119
|
action: send
|
|
1688
2120
|
channel:
|
|
1689
2121
|
$ref: '#/channels/longformCompressVideo'
|
|
2122
|
+
bindings:
|
|
2123
|
+
sqs:
|
|
2124
|
+
queues:
|
|
2125
|
+
- name: gisl-{env}-{region}-ops-compress-video-longform
|
|
2126
|
+
fifoQueue: false
|
|
2127
|
+
bindingVersion: '0.2.0'
|
|
1690
2128
|
summary: Publish a long-form video compression claim-check.
|
|
1691
2129
|
description: |
|
|
1692
2130
|
The API (`SqsLongFormOperationPublisherAdapter`) writes the full job
|
|
@@ -1700,6 +2138,12 @@ operations:
|
|
|
1700
2138
|
action: send
|
|
1701
2139
|
channel:
|
|
1702
2140
|
$ref: '#/channels/longformMergeVideoReencode'
|
|
2141
|
+
bindings:
|
|
2142
|
+
sqs:
|
|
2143
|
+
queues:
|
|
2144
|
+
- name: gisl-{env}-{region}-ops-merge-video-longform-reencode
|
|
2145
|
+
fifoQueue: false
|
|
2146
|
+
bindingVersion: '0.2.0'
|
|
1703
2147
|
summary: Publish a long-form merge re-encode claim-check.
|
|
1704
2148
|
description: |
|
|
1705
2149
|
As `publishLongFormCompressVideo`, for `operation_type = merge`
|
|
@@ -1715,6 +2159,12 @@ operations:
|
|
|
1715
2159
|
action: receive
|
|
1716
2160
|
channel:
|
|
1717
2161
|
$ref: '#/channels/longformCompressVideo'
|
|
2162
|
+
bindings:
|
|
2163
|
+
sqs:
|
|
2164
|
+
queues:
|
|
2165
|
+
- name: gisl-{env}-{region}-ops-compress-video-longform
|
|
2166
|
+
fifoQueue: false
|
|
2167
|
+
bindingVersion: '0.2.0'
|
|
1718
2168
|
summary: Consume a long-form video compression claim-check.
|
|
1719
2169
|
description: |
|
|
1720
2170
|
A terraform-owned launcher (EventBridge Pipe, filter=none -> launcher
|
|
@@ -1729,6 +2179,12 @@ operations:
|
|
|
1729
2179
|
action: receive
|
|
1730
2180
|
channel:
|
|
1731
2181
|
$ref: '#/channels/longformMergeVideoReencode'
|
|
2182
|
+
bindings:
|
|
2183
|
+
sqs:
|
|
2184
|
+
queues:
|
|
2185
|
+
- name: gisl-{env}-{region}-ops-merge-video-longform-reencode
|
|
2186
|
+
fifoQueue: false
|
|
2187
|
+
bindingVersion: '0.2.0'
|
|
1732
2188
|
summary: Consume a long-form merge re-encode claim-check.
|
|
1733
2189
|
description: |
|
|
1734
2190
|
As `consumeLongFormCompressVideo`, for `operation_type = merge`
|
|
@@ -1820,7 +2276,7 @@ components:
|
|
|
1820
2276
|
**non-compression** operation (thumbnail, image_watermark,
|
|
1821
2277
|
text_watermark, merge, archive, convert, custom_luma,
|
|
1822
2278
|
audio_overlay, audio_watermark, audio_to_video,
|
|
1823
|
-
video_watermark, video_text_watermark). Published to the
|
|
2279
|
+
video_watermark, video_text_watermark, split). Published to the
|
|
1824
2280
|
`operations` SNS topic; routed by the single-attribute
|
|
1825
2281
|
filter `operation_type` to one of the ops-family queues.
|
|
1826
2282
|
|
|
@@ -1830,8 +2286,8 @@ components:
|
|
|
1830
2286
|
`thumbnail_office`, `image_watermark`, `text_watermark`,
|
|
1831
2287
|
`merge`, `archive`, `convert`, `custom_luma`,
|
|
1832
2288
|
`audio_overlay`, `audio_watermark`, `audio_to_video`,
|
|
1833
|
-
`video_watermark`, `video_text_watermark`. Used by
|
|
1834
|
-
the filter attribute on the `operations` topic.
|
|
2289
|
+
`video_watermark`, `video_text_watermark`, `split`. Used by
|
|
2290
|
+
SNS as the filter attribute on the `operations` topic.
|
|
1835
2291
|
- `media_group`: informational metadata, present for every
|
|
1836
2292
|
operation except `archive` (which is media-agnostic). Values:
|
|
1837
2293
|
`image`, `video`, `audio`, `document`. **Not** used by SNS as
|
|
@@ -1840,7 +2296,8 @@ components:
|
|
|
1840
2296
|
|
|
1841
2297
|
**Input models:**
|
|
1842
2298
|
- Single-input operations (thumbnail, text_watermark, convert,
|
|
1843
|
-
audio_watermark): use
|
|
2299
|
+
audio_watermark, video_text_watermark, split): use
|
|
2300
|
+
`source_bucket` + `source_key`.
|
|
1844
2301
|
`file_type` required. For `thumbnail`, the SNS
|
|
1845
2302
|
`operation_type` attribute is permitted to carry a per-media
|
|
1846
2303
|
sub-type value for routing (see `OperationRequestAttributes`
|
|
@@ -1850,23 +2307,29 @@ components:
|
|
|
1850
2307
|
`required_tier: enterprise` so workflow-create rejects with
|
|
1851
2308
|
422 + 403 today.
|
|
1852
2309
|
- Multi-input operations (merge, archive, image_watermark,
|
|
1853
|
-
custom_luma, audio_overlay, audio_to_video):
|
|
1854
|
-
array. Merge additionally requires `output_type`.
|
|
1855
|
-
image_watermark, custom_luma, audio_overlay,
|
|
1856
|
-
|
|
2310
|
+
custom_luma, audio_overlay, audio_to_video, video_watermark):
|
|
2311
|
+
use `sources` array. Merge additionally requires `output_type`.
|
|
2312
|
+
image_watermark, custom_luma, audio_overlay, audio_to_video,
|
|
2313
|
+
and video_watermark use `role` per `JobInputV2.role`.
|
|
1857
2314
|
audio_to_video has role asymmetry — REQUIRED `base` (audio)
|
|
1858
2315
|
+ OPTIONAL `overlay` (image 0..1) per
|
|
1859
2316
|
`per_role_cardinality`; sum-of-role-minima drives the
|
|
1860
2317
|
minimum `sources` count (1 for audio_to_video; 2 for all
|
|
1861
|
-
other role-based ops today). custom_luma
|
|
1862
|
-
|
|
1863
|
-
|
|
2318
|
+
other role-based ops today). custom_luma and audio_overlay
|
|
2319
|
+
are `availability: planned` so workflow-create rejects with
|
|
2320
|
+
422 today (audio_to_video and video_watermark are now `beta` —
|
|
2321
|
+
Wave A activated).
|
|
1864
2322
|
|
|
1865
2323
|
**Migration window note.** During the thumbnail sub-type
|
|
1866
2324
|
migration, both `operation_type=thumbnail` (legacy) and
|
|
1867
2325
|
`operation_type=thumbnail_{image,video,document,office}` (new)
|
|
1868
|
-
are valid routing targets. The API publisher
|
|
1869
|
-
|
|
2326
|
+
are valid routing targets. The API publisher emits the per-media
|
|
2327
|
+
sub-type value on the SNS `operation_type` attribute (resolved
|
|
2328
|
+
from the operation's effective input MIME); the payload
|
|
2329
|
+
`operation_type` field always remains `thumbnail`. The legacy
|
|
2330
|
+
bare `thumbnail` attribute value is retained as a valid routing
|
|
2331
|
+
target during the migration window but is no longer emitted by
|
|
2332
|
+
the publisher.
|
|
1870
2333
|
contentType: application/json
|
|
1871
2334
|
headers:
|
|
1872
2335
|
$ref: '#/components/schemas/OperationRequestAttributes'
|
|
@@ -2623,9 +3086,10 @@ components:
|
|
|
2623
3086
|
prefix per ADR-0015 — the operation is multi-input
|
|
2624
3087
|
role-based with role asymmetry: required audio base +
|
|
2625
3088
|
optional image overlay; routing follows the `base` role).
|
|
2626
|
-
The operation is `availability:
|
|
2627
|
-
[`SlluxMBN`](https://trello.com/c/SlluxMBN)
|
|
2628
|
-
|
|
3089
|
+
The operation is `availability: beta` per
|
|
3090
|
+
[`SlluxMBN`](https://trello.com/c/SlluxMBN) +
|
|
3091
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4) (Wave A activated),
|
|
3092
|
+
so this constraint is exercised on live traffic.
|
|
2629
3093
|
- For `operation_type = image_watermark`, `media_group` must
|
|
2630
3094
|
equal `image` while only the stable `image` mime_group is
|
|
2631
3095
|
dispatchable. The schema declares `image_gif` and `video`
|
|
@@ -2651,6 +3115,13 @@ components:
|
|
|
2651
3115
|
Operation type used as the SNS filter attribute on the
|
|
2652
3116
|
`operations` topic. The sole routing key for non-compression
|
|
2653
3117
|
traffic.
|
|
3118
|
+
|
|
3119
|
+
**`passthrough` is deliberately excluded** from this enum: a
|
|
3120
|
+
`passthrough` operation never goes on the wire. The API
|
|
3121
|
+
self-completes a passthrough source job at publish (terminal
|
|
3122
|
+
output = the upload bytes unchanged), so nothing is published
|
|
3123
|
+
to SNS and there is no `ops-passthrough` queue. Per ticket
|
|
3124
|
+
`4som89Uh`.
|
|
2654
3125
|
enum:
|
|
2655
3126
|
- thumbnail
|
|
2656
3127
|
- thumbnail_image
|
|
@@ -2669,6 +3140,7 @@ components:
|
|
|
2669
3140
|
- video_watermark
|
|
2670
3141
|
- video_text_watermark
|
|
2671
3142
|
- split
|
|
3143
|
+
- render_variants
|
|
2672
3144
|
media_group:
|
|
2673
3145
|
type: string
|
|
2674
3146
|
description: |
|
|
@@ -2803,17 +3275,18 @@ components:
|
|
|
2803
3275
|
API to SNS, consumed by Lambda from SQS.
|
|
2804
3276
|
|
|
2805
3277
|
**Single-input operations** (compress, thumbnail, text_watermark,
|
|
2806
|
-
convert): use
|
|
2807
|
-
`file_type` is
|
|
3278
|
+
convert, audio_watermark, video_text_watermark, split): use
|
|
3279
|
+
`source_bucket` + `source_key` for the input file. `file_type` is
|
|
3280
|
+
required.
|
|
2808
3281
|
|
|
2809
3282
|
**Multi-input operations** (merge, archive, image_watermark,
|
|
2810
|
-
custom_luma, audio_overlay, audio_to_video):
|
|
2811
|
-
array. Each entry has `bucket` + `key`. Merge
|
|
2812
|
-
include per-input overrides (e.g. transition type).
|
|
2813
|
-
also requires `output_type`. custom_luma
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
3283
|
+
custom_luma, audio_overlay, audio_to_video, video_watermark):
|
|
3284
|
+
use `sources` array. Each entry has `bucket` + `key`. Merge
|
|
3285
|
+
entries may include per-input overrides (e.g. transition type).
|
|
3286
|
+
Merge also requires `output_type`. custom_luma and audio_overlay
|
|
3287
|
+
are `availability: planned` so workflow-create rejects with 422
|
|
3288
|
+
today (audio_to_video + video_watermark are now `beta` — Wave A
|
|
3289
|
+
activated, backends live); the wire shape is contract-defined.
|
|
2817
3290
|
|
|
2818
3291
|
Note: `media_group` is **not** a field in this payload. It exists
|
|
2819
3292
|
only as an SNS MessageAttribute on the non-compression branch; on
|
|
@@ -2825,6 +3298,11 @@ components:
|
|
|
2825
3298
|
- operation_type
|
|
2826
3299
|
- output_bucket
|
|
2827
3300
|
- output_key_prefix
|
|
3301
|
+
# No `passthrough` branch below: a passthrough source job is
|
|
3302
|
+
# self-completed by the API at publish (output = upload bytes
|
|
3303
|
+
# unchanged) and is never published as an OperationRequest message,
|
|
3304
|
+
# so it has no single-input/multi-input required-field branch here.
|
|
3305
|
+
# Per ticket 4som89Uh.
|
|
2828
3306
|
allOf:
|
|
2829
3307
|
- if:
|
|
2830
3308
|
properties:
|
|
@@ -2837,6 +3315,7 @@ components:
|
|
|
2837
3315
|
- audio_watermark
|
|
2838
3316
|
- video_text_watermark
|
|
2839
3317
|
- split
|
|
3318
|
+
- render_variants
|
|
2840
3319
|
then:
|
|
2841
3320
|
required:
|
|
2842
3321
|
- file_type
|
|
@@ -2911,12 +3390,13 @@ components:
|
|
|
2911
3390
|
description: |
|
|
2912
3391
|
Input files for multi-input operations (merge, archive,
|
|
2913
3392
|
image_watermark, custom_luma, audio_overlay,
|
|
2914
|
-
audio_to_video). Each entry specifies an
|
|
2915
|
-
Order matters for merge (concatenation order).
|
|
2916
|
-
overrides (e.g. transition) can be inlined on each
|
|
2917
|
-
Role-based multi-input operations (image_watermark,
|
|
2918
|
-
custom_luma, audio_overlay, audio_to_video)
|
|
2919
|
-
`role` discriminator on each entry — see
|
|
3393
|
+
audio_to_video, video_watermark). Each entry specifies an
|
|
3394
|
+
S3 location. Order matters for merge (concatenation order).
|
|
3395
|
+
Per-input overrides (e.g. transition) can be inlined on each
|
|
3396
|
+
entry. Role-based multi-input operations (image_watermark,
|
|
3397
|
+
custom_luma, audio_overlay, audio_to_video, video_watermark)
|
|
3398
|
+
require a `role` discriminator on each entry — see
|
|
3399
|
+
`SourceEntry.role`.
|
|
2920
3400
|
|
|
2921
3401
|
**Minimum source count = sum of role minima** declared in
|
|
2922
3402
|
the operation's `per_role_cardinality` (per ticket
|
|
@@ -3036,30 +3516,16 @@ components:
|
|
|
3036
3516
|
description: Unique operation identifier (UUID v7).
|
|
3037
3517
|
example: "018f9c42-5d6b-7481-b3df-9fd0a0a5e200"
|
|
3038
3518
|
operation_type:
|
|
3039
|
-
|
|
3040
|
-
enum:
|
|
3041
|
-
- compress
|
|
3042
|
-
- merge
|
|
3043
|
-
description: |
|
|
3044
|
-
Coarse operation verb for the long-form job. Deliberately a
|
|
3045
|
-
call-site subset of `OperationType` — only the long-form classes
|
|
3046
|
-
the API actually publishes today (`compress`, `merge`). NOT the
|
|
3047
|
-
full `OperationType` enum (which would over-promise the wire).
|
|
3519
|
+
$ref: '#/components/schemas/LongFormOperationType'
|
|
3048
3520
|
processing_class:
|
|
3049
|
-
|
|
3050
|
-
const: long_form
|
|
3051
|
-
description: |
|
|
3052
|
-
Logical processing class — always the literal `long_form` on this
|
|
3053
|
-
wire (never `short_form` / `blocked`; those exist only on the
|
|
3054
|
-
upload-probe response and HTTP plan surfaces). The launcher forks
|
|
3055
|
-
on this field; do not confuse it with the backend worker identity,
|
|
3056
|
-
which stays off the wire per `schemas/FORMAT.md` §F8.
|
|
3521
|
+
$ref: '#/components/schemas/LongFormProcessingClass'
|
|
3057
3522
|
|
|
3058
3523
|
SourceEntry:
|
|
3059
3524
|
type: object
|
|
3060
3525
|
description: |
|
|
3061
3526
|
A single source file for multi-input operations (merge,
|
|
3062
|
-
archive, image_watermark, custom_luma, audio_overlay
|
|
3527
|
+
archive, image_watermark, custom_luma, audio_overlay,
|
|
3528
|
+
audio_to_video, video_watermark).
|
|
3063
3529
|
Provides the S3 location, optional per-input overrides, and
|
|
3064
3530
|
the `role` discriminator for role-based multi-input
|
|
3065
3531
|
operations.
|
|
@@ -3082,9 +3548,79 @@ components:
|
|
|
3082
3548
|
transition:
|
|
3083
3549
|
type: string
|
|
3084
3550
|
description: |
|
|
3085
|
-
Per-input transition override for
|
|
3086
|
-
|
|
3551
|
+
Per-input transition override for the join point before this
|
|
3552
|
+
input. Applies to both video and audio merge — see the
|
|
3553
|
+
per-media per-input transition catalogs in
|
|
3554
|
+
`schemas/operations/merge.yaml`
|
|
3555
|
+
(`merge.video.per_input_options` / `merge.audio.per_input_options`),
|
|
3556
|
+
which the API validates against. Overrides the global
|
|
3557
|
+
`options.transition` for this join point.
|
|
3087
3558
|
example: "none"
|
|
3559
|
+
crossfade_duration:
|
|
3560
|
+
type: number
|
|
3561
|
+
minimum: 0
|
|
3562
|
+
maximum: 10.0
|
|
3563
|
+
description: |
|
|
3564
|
+
Per-input crossfade duration override, in seconds, for the
|
|
3565
|
+
join point before this input. Overrides the global
|
|
3566
|
+
`options.crossfade_duration` for this join point. Per the
|
|
3567
|
+
`depends_on` on `merge.*.per_input_options.crossfade_duration`
|
|
3568
|
+
(which resolves against the sibling per-input option, see
|
|
3569
|
+
FORMAT.md), this takes effect only when this input's own
|
|
3570
|
+
`transition` override is `crossfade` — pair it with
|
|
3571
|
+
`transition: crossfade` on the same entry; it does NOT key off
|
|
3572
|
+
the global `options.transition`. Mirrors
|
|
3573
|
+
`merge.*.per_input_options.crossfade_duration` in
|
|
3574
|
+
`schemas/operations/merge.yaml` — the API validates this
|
|
3575
|
+
per-input value but, until this slot existed, dropped it at the
|
|
3576
|
+
wire boundary (the slot lets the merge Lambda's audio path
|
|
3577
|
+
honour it). The 0–10s bound here is a broad transport envelope;
|
|
3578
|
+
the effective per-media limits (video crossfade `0.1`–`5.0`,
|
|
3579
|
+
audio `0`–`10`) are enforced by the per-mime-group
|
|
3580
|
+
operation-options schema in `merge.yaml`, which the API
|
|
3581
|
+
validates against before publishing.
|
|
3582
|
+
example: 1.0
|
|
3583
|
+
gap_duration:
|
|
3584
|
+
type: number
|
|
3585
|
+
minimum: 0
|
|
3586
|
+
maximum: 10.0
|
|
3587
|
+
description: |
|
|
3588
|
+
Per-input silence/gap duration override, in seconds, inserted
|
|
3589
|
+
before this input at the join point. Overrides the global
|
|
3590
|
+
`options.gap_duration` for this join point. Mirrors
|
|
3591
|
+
`merge.audio.per_input_options.gap_duration` in
|
|
3592
|
+
`schemas/operations/merge.yaml` (no transition dependency) —
|
|
3593
|
+
added alongside `crossfade_duration` so the API does not
|
|
3594
|
+
silently drop this sibling per-input audio override at the wire
|
|
3595
|
+
boundary.
|
|
3596
|
+
example: 0.5
|
|
3597
|
+
trim_start:
|
|
3598
|
+
type: number
|
|
3599
|
+
minimum: 0
|
|
3600
|
+
description: |
|
|
3601
|
+
Per-input trim from the beginning, in seconds, applied to
|
|
3602
|
+
this input BEFORE the transition/crossfade step. Mirrors
|
|
3603
|
+
`merge.{video,audio}.per_input_options.trim_start` in
|
|
3604
|
+
`schemas/operations/merge.yaml`; same "trim from beginning"
|
|
3605
|
+
semantic as `compress` trim. No `maximum` — the upper bound
|
|
3606
|
+
is the input's own duration, enforced by the worker, not
|
|
3607
|
+
statically bounded at the wire. Wire slot added so the API
|
|
3608
|
+
does not drop this per-input override at the boundary
|
|
3609
|
+
(mirrors the crossfade_duration/gap_duration precedent).
|
|
3610
|
+
example: 1.5
|
|
3611
|
+
trim_end:
|
|
3612
|
+
type: number
|
|
3613
|
+
minimum: 0
|
|
3614
|
+
description: |
|
|
3615
|
+
Per-input trim from the end, in seconds, applied to this
|
|
3616
|
+
input BEFORE the transition/crossfade step. Mirrors
|
|
3617
|
+
`merge.{video,audio}.per_input_options.trim_end` in
|
|
3618
|
+
`schemas/operations/merge.yaml`; same "trim from end"
|
|
3619
|
+
semantic as `compress` trim. No `maximum` — bounded by the
|
|
3620
|
+
input's own duration at the worker, not statically. Wire
|
|
3621
|
+
slot added so the API does not drop this per-input override
|
|
3622
|
+
at the boundary.
|
|
3623
|
+
example: 2.0
|
|
3088
3624
|
|
|
3089
3625
|
# ============================================
|
|
3090
3626
|
# OPERATION PROGRESS SCHEMA
|
|
@@ -3151,8 +3687,9 @@ components:
|
|
|
3151
3687
|
`phase_input_index`. For single-input operations (most
|
|
3152
3688
|
ops) `phase_total_inputs: 1` and `phase_input_index: 1`
|
|
3153
3689
|
during the relevant phase. For multi-input merge,
|
|
3154
|
-
archive, image_watermark, custom_luma,
|
|
3155
|
-
this matches the
|
|
3690
|
+
archive, image_watermark, custom_luma, audio_overlay,
|
|
3691
|
+
audio_to_video, and video_watermark, this matches the
|
|
3692
|
+
inputs[] count. Per ticket I27.
|
|
3156
3693
|
example: 4
|
|
3157
3694
|
|
|
3158
3695
|
# ============================================
|
|
@@ -3329,6 +3866,8 @@ components:
|
|
|
3329
3866
|
|
|
3330
3867
|
metrics:
|
|
3331
3868
|
$ref: '#/components/schemas/OperationMetrics'
|
|
3869
|
+
result_metadata:
|
|
3870
|
+
$ref: '#/components/schemas/OperationResultMetadata'
|
|
3332
3871
|
|
|
3333
3872
|
# Failure fields
|
|
3334
3873
|
error_code:
|
|
@@ -3348,6 +3887,32 @@ components:
|
|
|
3348
3887
|
description: Progress percentage when the operation failed (failed only)
|
|
3349
3888
|
example: 10
|
|
3350
3889
|
|
|
3890
|
+
OperationResultMetadata:
|
|
3891
|
+
type: object
|
|
3892
|
+
additionalProperties: false
|
|
3893
|
+
description: |
|
|
3894
|
+
Whitelisted, named operation-level result metadata — a **CLOSED**
|
|
3895
|
+
set of declared keys carried on the wire result (Lambda → API). The
|
|
3896
|
+
API persists only declared keys and serves only declared keys (a
|
|
3897
|
+
whitelist projection on the read side), never the raw bag, so
|
|
3898
|
+
internal diagnostics never leak. New keys are **additive named
|
|
3899
|
+
cuts**. Twin of the OpenAPI `OperationResultMetadata` (wire ↔ read
|
|
3900
|
+
parity — same named-prop shape). Distinct from the deliverable
|
|
3901
|
+
output (`output_key` / `outputs[]`): small per-operation metadata,
|
|
3902
|
+
not the file. Per ticket EurbZLMH (B1).
|
|
3903
|
+
properties:
|
|
3904
|
+
watermark_id:
|
|
3905
|
+
type: string
|
|
3906
|
+
format: uuid
|
|
3907
|
+
description: |
|
|
3908
|
+
UUIDv7 of the watermark embedded by an `audio_watermark`
|
|
3909
|
+
operation (for later decode/verify). **Display-only / not yet
|
|
3910
|
+
populated** — gated on the audio_watermark Lambda (EvPl5fkH, B3)
|
|
3911
|
+
+ the watermark registry (B2, deferred). The field + whitelist
|
|
3912
|
+
ship now (additive) so the pipeline + read projection land
|
|
3913
|
+
without a later contract bump; absent until B3 is live.
|
|
3914
|
+
example: "018f9c42-5d6b-7481-b3df-9fd0a0a5e112"
|
|
3915
|
+
|
|
3351
3916
|
OperationResultOutputEntry:
|
|
3352
3917
|
type: object
|
|
3353
3918
|
description: |
|
|
@@ -3373,9 +3938,11 @@ components:
|
|
|
3373
3938
|
not: { required: [page_index] }
|
|
3374
3939
|
- title: Unindexed
|
|
3375
3940
|
description: |
|
|
3376
|
-
Output without
|
|
3377
|
-
|
|
3378
|
-
|
|
3941
|
+
Output without a page/position indexing field. Covers legacy
|
|
3942
|
+
single-output entries AND `render_variants` variant outputs (the
|
|
3943
|
+
latter carry the optional `target_id` correlation field — the
|
|
3944
|
+
image-fan-out addressing contract — but are not page/position
|
|
3945
|
+
indexed). Per ADR-0009 §D2.
|
|
3379
3946
|
not:
|
|
3380
3947
|
anyOf:
|
|
3381
3948
|
- required: [page_index]
|
|
@@ -3412,6 +3979,18 @@ components:
|
|
|
3412
3979
|
strip, chapter split). Mutually exclusive with `page_index`.
|
|
3413
3980
|
Per ADR-0009 §D2.
|
|
3414
3981
|
example: 0
|
|
3982
|
+
target_id:
|
|
3983
|
+
type: string
|
|
3984
|
+
pattern: '^[A-Za-z0-9._-]+$'
|
|
3985
|
+
maxLength: 64
|
|
3986
|
+
description: |
|
|
3987
|
+
The caller-assigned `id` of the `render_variants` target that
|
|
3988
|
+
produced this output, echoed verbatim — the addressing contract
|
|
3989
|
+
for image fan-out. Carried on the `Unindexed` branch (variant
|
|
3990
|
+
outputs are not page/position indexed); no operation emits
|
|
3991
|
+
`target_id` together with `page_index` / `position`. Per ticket
|
|
3992
|
+
`w3EwzHYd`.
|
|
3993
|
+
example: "thumb-2x"
|
|
3415
3994
|
|
|
3416
3995
|
# ============================================
|
|
3417
3996
|
# WORKFLOW STATE CHANGED (per ticket I24)
|
|
@@ -4033,10 +4612,10 @@ components:
|
|
|
4033
4612
|
the first OPTIONAL role on the contract — `role: base`
|
|
4034
4613
|
audio required, `role: overlay` image 0..1 per
|
|
4035
4614
|
`per_role_cardinality`). When overlay is omitted, the video
|
|
4036
|
-
uses a solid background colour. `availability:
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
traffic
|
|
4615
|
+
uses a solid background colour. `availability: beta` (Wave A,
|
|
4616
|
+
[`c3uthIP4`](https://trello.com/c/c3uthIP4)) — the Lambda
|
|
4617
|
+
backend is live, so the API accepts + publishes (MUST NOT 422);
|
|
4618
|
+
traffic flows to SNS. `media_group` is derived
|
|
4040
4619
|
from the `base` role input MIME prefix per ADR-0015 (always
|
|
4041
4620
|
`audio` for audio_to_video). Routes via
|
|
4042
4621
|
`operation_type=audio_to_video` to `ops-audio-to-video`.
|
|
@@ -4047,7 +4626,9 @@ components:
|
|
|
4047
4626
|
of each per `per_role_cardinality { base: 1/1, overlay:
|
|
4048
4627
|
1/1 }`). Re-encode required; audio stream-copy passthrough.
|
|
4049
4628
|
Distinct from `image_watermark` (pure-Rust/image-only —
|
|
4050
|
-
see ADR-0013). `availability:
|
|
4629
|
+
see ADR-0013). `availability: beta` (Wave A, `c3uthIP4` —
|
|
4630
|
+
Lambda backend live; `short_form` beta, `long_form` stays
|
|
4631
|
+
`planned`); routes via
|
|
4051
4632
|
`operation_type=video_watermark` to `ops-video-watermark`.
|
|
4052
4633
|
Per ADR-0004 + ADR-0013
|
|
4053
4634
|
([`4NrRPCgh`](https://trello.com/c/4NrRPCgh)).
|
|
@@ -4069,10 +4650,20 @@ components:
|
|
|
4069
4650
|
a separate `split-video-fargate` worker via
|
|
4070
4651
|
`processing_class`. `media_group` derives from the input
|
|
4071
4652
|
MIME prefix per the existing single-input rule (no
|
|
4072
|
-
operation-specific conditional needed). `availability:
|
|
4073
|
-
|
|
4653
|
+
operation-specific conditional needed). `availability: beta`
|
|
4654
|
+
for the `audio` and `video` (short-form) mime_groups
|
|
4655
|
+
(`image_gif` / `document_pdf` and video `long_form` stay
|
|
4656
|
+
`planned`); routes via `operation_type=split`
|
|
4657
|
+
to `ops-split`.
|
|
4074
4658
|
Per ADR-0004 + ADR-0014
|
|
4075
4659
|
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
4660
|
+
|
|
4661
|
+
Note: the `passthrough` OpenAPI operation is **deliberately
|
|
4662
|
+
absent** from this payload enum. A passthrough source job is
|
|
4663
|
+
self-completed by the API at publish (its output is the upload
|
|
4664
|
+
bytes unchanged) and is never dispatched as an
|
|
4665
|
+
`OperationRequest` message — so it carries no wire payload and
|
|
4666
|
+
needs no SNS routing value. Per ticket `4som89Uh`.
|
|
4076
4667
|
enum:
|
|
4077
4668
|
- compress
|
|
4078
4669
|
- thumbnail
|
|
@@ -4088,6 +4679,7 @@ components:
|
|
|
4088
4679
|
- video_watermark
|
|
4089
4680
|
- video_text_watermark
|
|
4090
4681
|
- split
|
|
4682
|
+
- render_variants
|
|
4091
4683
|
|
|
4092
4684
|
MediaGroup:
|
|
4093
4685
|
type: string
|
|
@@ -4208,6 +4800,47 @@ components:
|
|
|
4208
4800
|
- stream_copy
|
|
4209
4801
|
- re_encode
|
|
4210
4802
|
|
|
4803
|
+
LongFormOperationType:
|
|
4804
|
+
type: string
|
|
4805
|
+
description: |
|
|
4806
|
+
Coarse operation verb for the long-form claim-check job
|
|
4807
|
+
(`LongFormJobMessage.operation_type`). Deliberately a call-site
|
|
4808
|
+
**subset** of `OperationType` — only the long-form classes the API
|
|
4809
|
+
actually publishes today (`compress`, `merge`). NOT the full
|
|
4810
|
+
`OperationType` enum (which would over-promise the wire). Future
|
|
4811
|
+
long-form publishers (e.g. `split` per
|
|
4812
|
+
[`rcwvUKhI`](https://trello.com/c/rcwvUKhI)) widen this enum when
|
|
4813
|
+
they ship.
|
|
4814
|
+
|
|
4815
|
+
Named-schema form lifted from inline at
|
|
4816
|
+
`LongFormJobMessage.operation_type` per ticket
|
|
4817
|
+
[`A3DyuYUd`](https://trello.com/c/A3DyuYUd) — generated SDK bindings
|
|
4818
|
+
emit a stable typed name instead of an `AnonymousSchema_N`
|
|
4819
|
+
placeholder.
|
|
4820
|
+
enum:
|
|
4821
|
+
- compress
|
|
4822
|
+
- merge
|
|
4823
|
+
|
|
4824
|
+
LongFormProcessingClass:
|
|
4825
|
+
type: string
|
|
4826
|
+
description: |
|
|
4827
|
+
Logical processing class on the long-form claim-check wire
|
|
4828
|
+
(`LongFormJobMessage.processing_class`) — always the literal
|
|
4829
|
+
`long_form` (never `short_form` / `blocked`; those exist only on the
|
|
4830
|
+
upload-probe response and HTTP plan surfaces). The launcher forks on
|
|
4831
|
+
this field; do not confuse it with the backend worker identity, which
|
|
4832
|
+
stays off the wire per `schemas/FORMAT.md` §F8.
|
|
4833
|
+
|
|
4834
|
+
A single-value enum (not a JSON-Schema `const`): named + `enum` is the
|
|
4835
|
+
repo's proven typed-codegen form (mirrors `JobInputRole` /
|
|
4836
|
+
`ReEncodeDecision`), whereas `const` degraded to an unconstrained
|
|
4837
|
+
`String` in SDK generators. Lifted from inline at
|
|
4838
|
+
`LongFormJobMessage.processing_class` per ticket
|
|
4839
|
+
[`A3DyuYUd`](https://trello.com/c/A3DyuYUd). Single-member enum
|
|
4840
|
+
validates identically to the prior `const long_form`.
|
|
4841
|
+
enum:
|
|
4842
|
+
- long_form
|
|
4843
|
+
|
|
4211
4844
|
ProgressStatus:
|
|
4212
4845
|
type: string
|
|
4213
4846
|
description: |
|