@giveitsmaller/contracts 0.73.0 → 0.78.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/README.md +2 -2
- package/accepted-options/accepted-options.json +1 -1
- package/accepted-options/image-output-routes.json +16 -2
- package/asyncapi/README.md +1 -1
- package/asyncapi/events.yaml +353 -90
- package/availability/availability.json +142 -45
- package/code-builder/code-builder-metadata.json +205 -45
- package/dist/asyncapi/AnonymousSchema_217.d.ts +6 -0
- package/dist/asyncapi/AnonymousSchema_217.js +7 -0
- package/dist/asyncapi/ErrorCode.d.ts +1 -0
- package/dist/asyncapi/ErrorCode.js +1 -0
- package/dist/asyncapi/Failure.d.ts +3 -0
- package/dist/asyncapi/LongFormJobMessage.d.ts +1 -0
- package/dist/asyncapi/MultiOutputCompletion.d.ts +3 -0
- package/dist/asyncapi/OperationMetrics.d.ts +2 -0
- package/dist/asyncapi/SingleOutputCompletion.d.ts +3 -0
- package/dist/asyncapi/UploadProbeMediaMetadata.d.ts +14 -0
- package/dist/asyncapi/index.d.ts +1 -0
- package/dist/asyncapi/index.js +1 -0
- package/dist/openapi/models/AccountLimitEntry.d.ts +2 -2
- package/dist/openapi/models/AccountLimitEntry.js +2 -2
- package/dist/openapi/models/AccountLimits.d.ts +2 -2
- package/dist/openapi/models/AccountLimits.js +2 -2
- package/dist/openapi/models/AccountLimitsLimits.d.ts +14 -2
- package/dist/openapi/models/AccountLimitsLimits.js +6 -2
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +2 -2
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +145 -0
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +82 -0
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +131 -0
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +77 -0
- 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 +14 -5
- 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 +2 -2
- package/dist/openapi/models/AuthRejectionEnvelope.js +2 -2
- package/dist/openapi/models/AuthenticatedIdentity.d.ts +2 -2
- package/dist/openapi/models/AuthenticatedIdentity.js +2 -2
- package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
- package/dist/openapi/models/AvailabilityValue.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +14 -5
- 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/BillingCheckoutRequest.d.ts +2 -2
- package/dist/openapi/models/BillingCheckoutRequest.js +2 -2
- package/dist/openapi/models/BillingCheckoutSession.d.ts +2 -2
- package/dist/openapi/models/BillingCheckoutSession.js +2 -2
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +2 -2
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +2 -2
- package/dist/openapi/models/CancelAccountDeletion200Response.js +2 -2
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +2 -2
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +2 -2
- package/dist/openapi/models/CapabilityCondition.d.ts +2 -2
- package/dist/openapi/models/CapabilityCondition.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf1.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf2.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf3.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf4.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf5.js +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +2 -2
- package/dist/openapi/models/CapabilityConditionOneOf6.js +2 -2
- package/dist/openapi/models/CapabilityConstraint.d.ts +2 -2
- package/dist/openapi/models/CapabilityConstraint.js +2 -2
- package/dist/openapi/models/CapabilityInputSpec.d.ts +2 -2
- package/dist/openapi/models/CapabilityInputSpec.js +2 -2
- package/dist/openapi/models/CapabilityProduces.d.ts +2 -2
- package/dist/openapi/models/CapabilityProduces.js +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf.d.ts +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf.js +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf1.js +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +2 -2
- package/dist/openapi/models/CapabilityProducesOneOf2.js +2 -2
- package/dist/openapi/models/ChangePasswordRequest.d.ts +2 -2
- package/dist/openapi/models/ChangePasswordRequest.js +2 -2
- package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +46 -0
- package/dist/openapi/models/CheckoutSessionStatusResponse.js +54 -0
- package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +50 -0
- package/dist/openapi/models/CheckoutSessionStatusResponseData.js +55 -0
- package/dist/openapi/models/CodegenSource.d.ts +5 -4
- package/dist/openapi/models/CodegenSource.js +2 -2
- package/dist/openapi/models/CodegenSourceInput.d.ts +2 -2
- package/dist/openapi/models/CodegenSourceInput.js +2 -2
- package/dist/openapi/models/CodegenSourceJob.d.ts +2 -2
- package/dist/openapi/models/CodegenSourceJob.js +2 -2
- package/dist/openapi/models/CodegenSourceJobSource.d.ts +2 -2
- package/dist/openapi/models/CodegenSourceJobSource.js +2 -2
- package/dist/openapi/models/CodegenSourceOperation.d.ts +2 -2
- package/dist/openapi/models/CodegenSourceOperation.js +2 -2
- package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +2 -2
- package/dist/openapi/models/CodegenUploadPlaceholder.js +2 -2
- package/dist/openapi/models/CompositionPlan.d.ts +2 -2
- package/dist/openapi/models/CompositionPlan.js +2 -2
- package/dist/openapi/models/CompositionPlanJob.d.ts +2 -2
- package/dist/openapi/models/CompositionPlanJob.js +2 -2
- package/dist/openapi/models/CompositionPlanOperation.d.ts +2 -2
- package/dist/openapi/models/CompositionPlanOperation.js +2 -2
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +2 -2
- package/dist/openapi/models/ConfirmEmailChange200Response.js +2 -2
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +2 -2
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +2 -2
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +2 -2
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +2 -2
- 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 +2 -2
- package/dist/openapi/models/CreateApiKey201Response.js +2 -2
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +2 -2
- package/dist/openapi/models/CreateApiKey201ResponseData.js +2 -2
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +2 -2
- package/dist/openapi/models/CreateApiKeyRequest.js +2 -2
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +2 -2
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
- package/dist/openapi/models/CreateWorkflow401Response.d.ts +14 -5
- package/dist/openapi/models/CreateWorkflow401Response.js +2 -2
- package/dist/openapi/models/CreateWorkflow403Response.d.ts +33 -0
- package/dist/openapi/models/CreateWorkflow403Response.js +57 -0
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
- package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
- package/dist/openapi/models/CreditTransaction.d.ts +22 -12
- 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 +2 -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 +2 -2
- package/dist/openapi/models/DeliveryPlanOutput.js +2 -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 +2 -2
- package/dist/openapi/models/DeliverySelection.js +2 -2
- package/dist/openapi/models/DownloadBundle.d.ts +2 -2
- package/dist/openapi/models/DownloadBundle.js +2 -2
- package/dist/openapi/models/DroppedOption.d.ts +2 -2
- package/dist/openapi/models/DroppedOption.js +2 -2
- package/dist/openapi/models/EmailNotify.d.ts +2 -2
- package/dist/openapi/models/EmailNotify.js +2 -2
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/EmptySuccessEnvelope.js +2 -2
- package/dist/openapi/models/EndpointProjection.d.ts +2 -2
- package/dist/openapi/models/EndpointProjection.js +2 -2
- package/dist/openapi/models/EndpointProjectionServersInner.d.ts +2 -2
- package/dist/openapi/models/EndpointProjectionServersInner.js +2 -2
- package/dist/openapi/models/ErrorEnvelope.d.ts +14 -5
- 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/ExportAccountData200Response.d.ts +2 -2
- package/dist/openapi/models/ExportAccountData200Response.js +2 -2
- package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +5 -4
- package/dist/openapi/models/ExportAccountData200ResponseData.js +5 -4
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.d.ts +36 -0
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +42 -0
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +58 -0
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.js +62 -0
- 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 +14 -5
- package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +14 -5
- 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/GetProfile200Response.d.ts +2 -2
- package/dist/openapi/models/GetProfile200Response.js +2 -2
- package/dist/openapi/models/GetProfile200ResponseData.d.ts +2 -2
- package/dist/openapi/models/GetProfile200ResponseData.js +2 -2
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +2 -2
- package/dist/openapi/models/ImageEncodeCapabilities.js +2 -2
- package/dist/openapi/models/JobDefinition.d.ts +2 -2
- 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 +2 -2
- package/dist/openapi/models/JobInputV2.js +2 -2
- package/dist/openapi/models/JobMediaClass.d.ts +2 -2
- package/dist/openapi/models/JobMediaClass.js +2 -2
- package/dist/openapi/models/JobOutputSource.d.ts +2 -2
- package/dist/openapi/models/JobOutputSource.js +2 -2
- package/dist/openapi/models/JobResponse.d.ts +2 -2
- package/dist/openapi/models/JobResponse.js +2 -2
- package/dist/openapi/models/JobStatus.d.ts +2 -2
- package/dist/openapi/models/JobStatus.js +2 -2
- package/dist/openapi/models/JobType.d.ts +2 -2
- package/dist/openapi/models/JobType.js +2 -2
- package/dist/openapi/models/LivenessResponse.d.ts +2 -2
- package/dist/openapi/models/LivenessResponse.js +2 -2
- package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
- package/dist/openapi/models/LoginUser200Response.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
- package/dist/openapi/models/LoginUser401Response.d.ts +14 -5
- package/dist/openapi/models/LoginUser401Response.js +2 -2
- package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
- package/dist/openapi/models/LoginUserRequest.js +2 -2
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +14 -5
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +2 -2
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +2 -2
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.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 +39 -3
- package/dist/openapi/models/MimeGroupSchema.js +12 -2
- package/dist/openapi/models/MultiInputSource.d.ts +2 -2
- package/dist/openapi/models/MultiInputSource.js +2 -2
- 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/NotifyConfig.d.ts +9 -5
- package/dist/openapi/models/NotifyConfig.js +2 -2
- package/dist/openapi/models/OperationCapability.d.ts +2 -2
- package/dist/openapi/models/OperationCapability.js +2 -2
- package/dist/openapi/models/OperationDefinition.d.ts +2 -2
- package/dist/openapi/models/OperationDefinition.js +2 -2
- package/dist/openapi/models/OperationDownload.d.ts +6 -2
- package/dist/openapi/models/OperationDownload.js +2 -2
- package/dist/openapi/models/OperationInputModel.d.ts +2 -2
- package/dist/openapi/models/OperationInputModel.js +2 -2
- package/dist/openapi/models/OperationMessageParamsValue.d.ts +25 -0
- package/dist/openapi/models/OperationMessageParamsValue.js +31 -0
- package/dist/openapi/models/OperationResponse.d.ts +36 -2
- package/dist/openapi/models/OperationResponse.js +8 -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 +29 -3
- package/dist/openapi/models/OperationResultMetadata.js +6 -2
- package/dist/openapi/models/OperationResultMetrics.d.ts +4 -4
- package/dist/openapi/models/OperationResultMetrics.js +2 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +5 -6
- 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 +10 -4
- package/dist/openapi/models/OperationType.js +10 -4
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponse.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +2 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +2 -2
- package/dist/openapi/models/OptionSchema.d.ts +40 -3
- package/dist/openapi/models/OptionSchema.js +10 -2
- package/dist/openapi/models/OutputProperties.d.ts +2 -2
- package/dist/openapi/models/OutputProperties.js +2 -2
- package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +2 -2
- package/dist/openapi/models/OutputPropertiesIsAnimated.js +2 -2
- package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +2 -2
- package/dist/openapi/models/PerClassAvailabilityEntry.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 +14 -5
- 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 +13 -2
- package/dist/openapi/models/ProcessingClassBandViolation.js +5 -2
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassConstraints.js +2 -2
- package/dist/openapi/models/ProcessingClassEntry.d.ts +16 -2
- package/dist/openapi/models/ProcessingClassEntry.js +8 -2
- package/dist/openapi/models/ProcessingClassEntryInputUniformity.d.ts +65 -0
- package/dist/openapi/models/ProcessingClassEntryInputUniformity.js +57 -0
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.d.ts +66 -0
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.js +56 -0
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +14 -5
- 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 +15 -2
- package/dist/openapi/models/ProcessingPlanJob.js +5 -2
- package/dist/openapi/models/ReEncodeDecision.d.ts +19 -8
- package/dist/openapi/models/ReEncodeDecision.js +19 -8
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/RegisterUser422Response.d.ts +2 -2
- package/dist/openapi/models/RegisterUser422Response.js +2 -2
- package/dist/openapi/models/RegisterUserRequest.d.ts +2 -2
- package/dist/openapi/models/RegisterUserRequest.js +2 -2
- package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +2 -2
- package/dist/openapi/models/RequestAccountDeletion200Response.js +2 -2
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +2 -2
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +2 -2
- package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +2 -2
- package/dist/openapi/models/RequestAccountDeletionRequest.js +2 -2
- package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +2 -2
- package/dist/openapi/models/ResendVerificationEmailRequest.js +2 -2
- package/dist/openapi/models/ResetPasswordRequest.d.ts +2 -2
- package/dist/openapi/models/ResetPasswordRequest.js +2 -2
- package/dist/openapi/models/ResolutionBand.d.ts +44 -0
- package/dist/openapi/models/ResolutionBand.js +62 -0
- package/dist/openapi/models/ResolutionBandCeiling.d.ts +68 -0
- package/dist/openapi/models/ResolutionBandCeiling.js +57 -0
- package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +32 -0
- package/dist/openapi/models/ResolutionBandCeilingConstraints.js +41 -0
- package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +48 -0
- package/dist/openapi/models/ResolutionBandCeilingDerivation.js +51 -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/SseConnectionLimitResponse.d.ts +14 -5
- package/dist/openapi/models/SseConnectionLimitResponse.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 +6 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
- 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 +33 -2
- package/dist/openapi/models/SseOperationFailedData.js +8 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
- package/dist/openapi/models/SseOperationProgressData.js +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
- package/dist/openapi/models/TierRestrictionKind.js +2 -2
- package/dist/openapi/models/TierRestrictionResponse.d.ts +14 -5
- package/dist/openapi/models/TierRestrictionResponse.js +2 -2
- package/dist/openapi/models/UpdateProfile200Response.d.ts +2 -2
- package/dist/openapi/models/UpdateProfile200Response.js +2 -2
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +2 -2
- package/dist/openapi/models/UpdateProfile200ResponseData.js +2 -2
- package/dist/openapi/models/UpdateProfile422Response.d.ts +2 -2
- package/dist/openapi/models/UpdateProfile422Response.js +2 -2
- package/dist/openapi/models/UpdateProfileRequest.d.ts +2 -2
- package/dist/openapi/models/UpdateProfileRequest.js +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +14 -5
- 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 +107 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.js +36 -2
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +4 -6
- package/dist/openapi/models/UploadProbeProcessingClass.js +4 -6
- 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 +14 -5
- 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 +19 -8
- package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
- package/dist/openapi/models/VerifyEmailRequest.d.ts +2 -2
- package/dist/openapi/models/VerifyEmailRequest.js +2 -2
- 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/WorkflowArchiveResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowArchiveResponse.js +2 -2
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +7 -6
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +7 -6
- 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 +11 -14
- package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCreditSummary.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreditSummary.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 +14 -5
- package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
- package/dist/openapi/models/WorkflowListResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowListResponse.js +2 -2
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +18 -6
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +19 -7
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +6 -5
- package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +7 -5
- 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/WorkflowRestoreResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowRestoreResponse.js +2 -2
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.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 +2 -2
- package/dist/openapi/models/WorkflowSource.js +2 -2
- package/dist/openapi/models/WorkflowStatus.d.ts +10 -5
- package/dist/openapi/models/WorkflowStatus.js +10 -5
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +5 -3
- package/dist/openapi/models/WorkflowStatusResponse.js +2 -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 +2 -2
- package/dist/openapi/models/WorkflowSummary.js +2 -2
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +2 -2
- package/dist/openapi/models/WorkflowSummaryJob.js +2 -2
- 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 +14 -0
- package/dist/openapi/models/index.js +14 -0
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +2 -2
- package/dist/operations/archive.metadata.js +1 -0
- package/dist/operations/audio_overlay.metadata.js +1 -0
- package/dist/operations/audio_to_video.metadata.js +1 -0
- package/dist/operations/audio_watermark.metadata.js +4 -9
- package/dist/operations/custom_luma.metadata.js +1 -0
- package/dist/operations/image_watermark.metadata.js +1 -0
- package/dist/operations/merge.metadata.js +1 -0
- package/dist/operations/metadata-types.d.ts +2 -0
- package/dist/operations/split.metadata.js +12 -3
- package/dist/operations/text_watermark.metadata.js +1 -0
- package/dist/operations/video_text_watermark.metadata.js +2 -0
- package/dist/operations/video_watermark.metadata.js +1 -0
- package/openapi/README.md +1 -1
- package/openapi/api.yaml +1089 -172
- package/operation-capabilities/operation-capabilities.json +129 -1
- package/operations/schemas/audio_watermark.yaml +34 -33
- package/operations/schemas/compress.yaml +295 -177
- package/operations/schemas/convert.yaml +11 -0
- package/operations/schemas/merge.yaml +35 -1
- package/operations/schemas/split.yaml +144 -88
- package/operations/schemas/thumbnail.yaml +34 -26
- package/operations/schemas/video_text_watermark.yaml +112 -47
- package/operations/schemas/video_watermark.yaml +33 -28
- package/package.json +3 -3
package/asyncapi/events.yaml
CHANGED
|
@@ -5,6 +5,9 @@ info:
|
|
|
5
5
|
description: |
|
|
6
6
|
Asynchronous event contracts for the GISL (Give It Smaller) compression service.
|
|
7
7
|
|
|
8
|
+
Free-text string fields carry `x-string-vocabulary` (`open` / `advisory` /
|
|
9
|
+
`none`), defined in `openapi/api.yaml` `info.description` (ticket Q79yjcFF).
|
|
10
|
+
|
|
8
11
|
**Architecture Overview — Dual-Family SNS Topology**
|
|
9
12
|
|
|
10
13
|
The API publishes operation requests to **two** SNS topics, split by semantic
|
|
@@ -41,12 +44,15 @@ info:
|
|
|
41
44
|
`availability: beta` for its `audio` and `video` mime_groups
|
|
42
45
|
(workers live on staging — [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
|
|
43
46
|
video activates BOTH classes — `long_form` / `split-video-fargate`
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
stays `beta` until a PRODUCTION `customer_path` run is recorded in
|
|
48
|
+
`availability/prod-verification-log.yaml` per
|
|
49
|
+
[`rcwvUKhI`](https://trello.com/c/rcwvUKhI) — worker-direct staging runs
|
|
50
|
+
up to 3.99 GiB are recorded in the staging log as partial evidence
|
|
51
|
+
only; fan-out admission is the API's
|
|
52
|
+
`LONGFORM_FANOUT_ADMISSION_ENABLED`, set per environment in
|
|
53
|
+
compression_terraform, and not restated here);
|
|
47
54
|
its `image_gif` and `document_pdf` mime_groups stay
|
|
48
55
|
`availability: planned`.
|
|
49
|
-
`audio_watermark` additionally requires `enterprise` tier.
|
|
50
56
|
|
|
51
57
|
**Publisher branching rule** (implemented in `compression_api`'s
|
|
52
58
|
`AwsSnsOperationPublisherAdapter` under Option A):
|
|
@@ -91,19 +97,28 @@ info:
|
|
|
91
97
|
`compression-document`. Each handles `compress` only for its media
|
|
92
98
|
type.
|
|
93
99
|
- **Operations family** (non-compression), routed by `operation_type`:
|
|
94
|
-
`operation-thumbnail` (legacy, retiring after migration),
|
|
95
100
|
`operation-thumbnail-image`, `operation-thumbnail-video`,
|
|
96
101
|
`operation-thumbnail-document`, `operation-thumbnail-office`,
|
|
97
102
|
`operation-image-watermark`, `operation-text-watermark`,
|
|
98
|
-
`operation-
|
|
99
|
-
`operation-
|
|
100
|
-
`operation-
|
|
101
|
-
`operation-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
`operation-video-watermark`, `operation-video-text-watermark`,
|
|
104
|
+
`operation-audio-to-video`, `operation-merge`, `operation-split`,
|
|
105
|
+
`operation-archive`, `operation-convert`,
|
|
106
|
+
`operation-render-variants` (its operation is still `planned`).
|
|
107
|
+
This list is asserted against compression_lambdas'
|
|
108
|
+
`scripts/build-deploy-matrix.py` roster by
|
|
109
|
+
`tests/test_asyncapi_lambda_inventory_matches_roster.py`; the
|
|
110
|
+
`upload-probe` Lambda is in that roster too but is not
|
|
111
|
+
`operation_type`-routed.
|
|
112
|
+
- **Retired**: the legacy bare `operation-thumbnail` — retired on
|
|
113
|
+
staging and absent from the roster (terraform still names a prod-only
|
|
114
|
+
instance; contracts card `NMKIN5LE`).
|
|
115
|
+
- **Declared but not shipped** (no worker in the roster):
|
|
116
|
+
`operation-custom-luma` (planned per ticket I29),
|
|
117
|
+
`operation-audio-overlay` (planned per ticket I19),
|
|
118
|
+
`operation-audio-watermark` (planned per ticket I20),
|
|
104
119
|
`operation-transform-image`, `operation-transform-video`,
|
|
105
120
|
`operation-transform-document` (all planned per epic fhiWebI0 /
|
|
106
|
-
ADR-0026
|
|
121
|
+
ADR-0026).
|
|
107
122
|
|
|
108
123
|
**Message Types**
|
|
109
124
|
|
|
@@ -234,19 +249,19 @@ channels:
|
|
|
234
249
|
ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
|
|
235
250
|
long-form video splits route via `processing_class` to the
|
|
236
251
|
`split-video-fargate` worker — same OperationType, different
|
|
237
|
-
worker — now also `availability: beta` (
|
|
238
|
-
|
|
252
|
+
worker — now also `availability: beta` (stays beta until a
|
|
253
|
+
production `customer_path` run is recorded in the prod verification log))
|
|
239
254
|
- `operation_type = audio_watermark` -> `ops-audio-watermark`
|
|
240
|
-
queue (gated by `availability: planned`
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
a 403 `feature_tier_restricted` for non-enterprise callers)
|
|
255
|
+
queue (gated by `availability: planned` per
|
|
256
|
+
[I20](https://trello.com/c/omiCq7Vn) — same 422 gating; no
|
|
257
|
+
tier gate since 2026-09-23)
|
|
244
258
|
- `operation_type = render_variants` -> `ops-render-variants`
|
|
245
|
-
queue (
|
|
246
|
-
|
|
259
|
+
queue (the `operation-render-variants` worker exists; gated by
|
|
260
|
+
`availability: planned` until its staging proof is recorded and it
|
|
261
|
+
is deployed to production, and
|
|
262
|
+
refused by the API until it gains an `OperationType` case — per
|
|
247
263
|
[`w3EwzHYd`](https://trello.com/c/w3EwzHYd) /
|
|
248
|
-
[`MNuDYJaY`](https://trello.com/c/MNuDYJaY)
|
|
249
|
-
`feature_not_available` 422 gating)
|
|
264
|
+
[`MNuDYJaY`](https://trello.com/c/MNuDYJaY))
|
|
250
265
|
- `operation_type = transform_image` -> `ops-transform-image` queue
|
|
251
266
|
- `operation_type = transform_video` -> `ops-transform-video` queue
|
|
252
267
|
- `operation_type = transform_document` -> `ops-transform-document`
|
|
@@ -1014,11 +1029,10 @@ channels:
|
|
|
1014
1029
|
`operation_type = audio_watermark`. Single-input.
|
|
1015
1030
|
|
|
1016
1031
|
Both mime_groups (`audio`, `video` — embed in video's audio
|
|
1017
|
-
track) are `availability: planned`
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
callers, so traffic does not reach this queue today. Backed
|
|
1032
|
+
track) are `availability: planned` per the operation schema;
|
|
1033
|
+
the API rejects workflow-create with `feature_not_available`
|
|
1034
|
+
(422) until the Lambda ships, so traffic does not reach this
|
|
1035
|
+
queue today. Backed
|
|
1022
1036
|
by the `operation-audio-watermark` Lambda (cross-repo follow-up;
|
|
1023
1037
|
not yet shipped).
|
|
1024
1038
|
|
|
@@ -1053,8 +1067,8 @@ channels:
|
|
|
1053
1067
|
`operations` SNS topic with filter `operation_type = render_variants`.
|
|
1054
1068
|
Backed by the render_variants Lambda (`operation-render-variants`).
|
|
1055
1069
|
No traffic reaches this queue while render_variants is
|
|
1056
|
-
`availability: planned`
|
|
1057
|
-
|
|
1070
|
+
`availability: planned` and the API has no `OperationType` case for
|
|
1071
|
+
it (per ticket w3EwzHYd).
|
|
1058
1072
|
bindings:
|
|
1059
1073
|
sqs:
|
|
1060
1074
|
queue:
|
|
@@ -1222,7 +1236,7 @@ channels:
|
|
|
1222
1236
|
DLQ for failed audio_watermark operations (per ticket I20).
|
|
1223
1237
|
Messages land here after 5 failed processing attempts. No
|
|
1224
1238
|
traffic reaches this queue while audio_watermark is
|
|
1225
|
-
`availability: planned
|
|
1239
|
+
`availability: planned`.
|
|
1226
1240
|
parameters:
|
|
1227
1241
|
env:
|
|
1228
1242
|
description: Environment (local, stg, prod)
|
|
@@ -2087,9 +2101,9 @@ operations:
|
|
|
2087
2101
|
consumes split requests routed by `operation_type=split`. Its
|
|
2088
2102
|
`audio` + short-form `video` paths are live on staging (lambdas
|
|
2089
2103
|
#161 / [`vKI0CFDu`](https://trello.com/c/vKI0CFDu)); video
|
|
2090
|
-
`long_form` (via `split-video-fargate`) is now also `beta
|
|
2091
|
-
|
|
2092
|
-
|
|
2104
|
+
`long_form` (via `split-video-fargate`) is now also `beta`, and
|
|
2105
|
+
stays beta until a production `customer_path` run is recorded in the
|
|
2106
|
+
prod verification log; the `image_gif` / `document_pdf` workers remain a cross-repo
|
|
2093
2107
|
follow-up. Single-input —
|
|
2094
2108
|
`media_group` derives from the input MIME prefix per the
|
|
2095
2109
|
existing single-input rule. `availability: beta` for the `audio`
|
|
@@ -2218,11 +2232,9 @@ operations:
|
|
|
2218
2232
|
The `operation-audio-watermark` Lambda (cross-repo follow-up —
|
|
2219
2233
|
not yet shipped) consumes audio_watermark requests routed by
|
|
2220
2234
|
`operation_type=audio_watermark`. Single-input. Both mime_groups
|
|
2221
|
-
(`audio`, `video`) are `availability: planned
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
403 `feature_tier_restricted` for non-enterprise callers, so
|
|
2225
|
-
traffic does not reach this channel today.
|
|
2235
|
+
(`audio`, `video`) are `availability: planned`; the API rejects
|
|
2236
|
+
workflow-create with `feature_not_available` (422) until the
|
|
2237
|
+
Lambda ships, so traffic does not reach this channel today.
|
|
2226
2238
|
Per ADR-0004 + I20 (Trello omiCq7Vn).
|
|
2227
2239
|
messages:
|
|
2228
2240
|
- $ref: '#/channels/opsAudioWatermark/messages/operationRequest'
|
|
@@ -2239,14 +2251,14 @@ operations:
|
|
|
2239
2251
|
bindingVersion: '0.2.0'
|
|
2240
2252
|
summary: Process render_variants operation
|
|
2241
2253
|
description: |
|
|
2242
|
-
The `operation-render-variants` Lambda
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
w3EwzHYd.
|
|
2254
|
+
The `operation-render-variants` Lambda consumes render_variants
|
|
2255
|
+
requests routed by `operation_type=render_variants`. Single-input
|
|
2256
|
+
image fan-out (one source image to N resized / re-encoded variants).
|
|
2257
|
+
`availability: planned` until its staging proof is recorded (lambdas
|
|
2258
|
+
`px2OKk42`) AND it is deployed to production — availability has no
|
|
2259
|
+
environment axis. The API refuses a create naming `render_variants` until
|
|
2260
|
+
it gains an `OperationType` case for it (api `uDW3k2Gw`), so no
|
|
2261
|
+
traffic reaches this channel until then. Per ticket w3EwzHYd.
|
|
2250
2262
|
messages:
|
|
2251
2263
|
- $ref: '#/channels/opsRenderVariants/messages/operationRequest'
|
|
2252
2264
|
|
|
@@ -2646,9 +2658,8 @@ components:
|
|
|
2646
2658
|
sub-type value for routing (see `OperationRequestAttributes`
|
|
2647
2659
|
and the migration-window note below); the payload
|
|
2648
2660
|
`operation_type` field always remains `thumbnail`.
|
|
2649
|
-
`audio_watermark` is `availability: planned`
|
|
2650
|
-
|
|
2651
|
-
422 + 403 today.
|
|
2661
|
+
`audio_watermark` is `availability: planned` so
|
|
2662
|
+
workflow-create rejects with 422 today.
|
|
2652
2663
|
- Multi-input operations (merge, archive, image_watermark,
|
|
2653
2664
|
custom_luma, audio_overlay, audio_to_video, video_watermark):
|
|
2654
2665
|
use `sources` array. Merge additionally requires `output_type`.
|
|
@@ -3450,8 +3461,7 @@ components:
|
|
|
3450
3461
|
- For `operation_type = audio_watermark`, `media_group` must
|
|
3451
3462
|
equal `audio` or `video` (audio_watermark supports both —
|
|
3452
3463
|
embedding into an audio asset or into a video's audio
|
|
3453
|
-
track). Both mime_groups are `availability: planned`
|
|
3454
|
-
`required_tier: enterprise` per
|
|
3464
|
+
track). Both mime_groups are `availability: planned` per
|
|
3455
3465
|
[I20](https://trello.com/c/omiCq7Vn), so this constraint is
|
|
3456
3466
|
contract-defined but not exercised today.
|
|
3457
3467
|
- For `operation_type = audio_to_video`, `media_group` must
|
|
@@ -3887,9 +3897,11 @@ components:
|
|
|
3887
3897
|
— both staging-proven 2026-07-07 (Form-B ADR-0006). Only
|
|
3888
3898
|
`split.video.long_form` remains `availability: beta`
|
|
3889
3899
|
(per [`rcwvUKhI`](https://trello.com/c/rcwvUKhI), worker
|
|
3890
|
-
`split-video-fargate`
|
|
3891
|
-
|
|
3892
|
-
fan-out
|
|
3900
|
+
`split-video-fargate`) until a production `customer_path` run is
|
|
3901
|
+
recorded in `availability/prod-verification-log.yaml` (worker-direct
|
|
3902
|
+
staging runs are partial evidence only); fan-out admission is the API's
|
|
3903
|
+
`LONGFORM_FANOUT_ADMISSION_ENABLED`, set per environment in
|
|
3904
|
+
compression_terraform. `audio_overlay` long-form
|
|
3893
3905
|
(reserve-name-only, no queue) is NOT yet produced and is therefore
|
|
3894
3906
|
absent from this enum; it gets added when its publisher ships.
|
|
3895
3907
|
|
|
@@ -3935,6 +3947,19 @@ components:
|
|
|
3935
3947
|
$ref: '#/components/schemas/LongFormOperationType'
|
|
3936
3948
|
processing_class:
|
|
3937
3949
|
$ref: '#/components/schemas/LongFormProcessingClass'
|
|
3950
|
+
traceparent:
|
|
3951
|
+
type: string
|
|
3952
|
+
pattern: '^00-(?!0{32})[0-9a-f]{32}-(?!0{16})[0-9a-f]{16}-[0-9a-f]{2}$'
|
|
3953
|
+
description: |
|
|
3954
|
+
OPTIONAL W3C Trace Context `traceparent` (version `00`) of the
|
|
3955
|
+
producer's span, so the long-form task joins the producer's trace.
|
|
3956
|
+
The launcher forwards a well-formed value to the Fargate task as the
|
|
3957
|
+
environment variable `GISL_CL_PARENT_TRACEPARENT`. An all-zero
|
|
3958
|
+
trace-id or parent-id is invalid (W3C), and so is any other version.
|
|
3959
|
+
A malformed or absent value is IGNORED: the job runs without the
|
|
3960
|
+
parent trace and never fails for it. Producers: the API's long-form
|
|
3961
|
+
publisher and lambdas' republish. Ticket JiqICJWX (terraform #502).
|
|
3962
|
+
example: "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
|
|
3938
3963
|
|
|
3939
3964
|
SourceEntry:
|
|
3940
3965
|
type: object
|
|
@@ -4168,9 +4193,13 @@ components:
|
|
|
4168
4193
|
2. **A `completed` never supersedes another `completed`.** Keep the
|
|
4169
4194
|
first; a second is a duplicate delivery of the same outcome.
|
|
4170
4195
|
3. **Two `failed` results are NOT ordered by this contract.** Keep the
|
|
4171
|
-
first `error_code` and record that another arrived.
|
|
4172
|
-
below
|
|
4173
|
-
|
|
4196
|
+
first `error_code` and record that another arrived. `attempt`
|
|
4197
|
+
(below) does NOT order them: it is per SQS message, and a DLQ
|
|
4198
|
+
redrive starts a new message.
|
|
4199
|
+
4. **A consumer MUST surface a second terminal, never drop it
|
|
4200
|
+
silently** — count it, log it or alarm on it. Rules 1–3 decide the
|
|
4201
|
+
STATE; a producer emitting contradictory terminals must still be
|
|
4202
|
+
visible.
|
|
4174
4203
|
|
|
4175
4204
|
### Supersession replaces the WHOLE result, not just the status
|
|
4176
4205
|
|
|
@@ -4210,12 +4239,13 @@ components:
|
|
|
4210
4239
|
and by nothing else. Using metrics to arbitrate would make the answer
|
|
4211
4240
|
depend on how long a machine happened to take.
|
|
4212
4241
|
|
|
4213
|
-
### 🔴 THE MISSING FIELD, RECORDED AS A FINDING
|
|
4242
|
+
### 🔴 THE MISSING ORDERING FIELD, RECORDED AS A FINDING
|
|
4214
4243
|
|
|
4215
4244
|
**There is no producer-stamped ordering field on `OperationResult`
|
|
4216
|
-
today.** No
|
|
4217
|
-
|
|
4218
|
-
|
|
4245
|
+
today.** No durable per-operation counter, no producer timestamp, no
|
|
4246
|
+
sequence number. The optional `attempt` (declared 2026-09-25, below)
|
|
4247
|
+
says which DELIVERY of one SQS message produced a result; it is not
|
|
4248
|
+
durable per `operation_id`, so it is diagnostic and NOT an ordering key.
|
|
4219
4249
|
|
|
4220
4250
|
That absence is why rule 3 exists: **two failures cannot be ordered, and
|
|
4221
4251
|
the contract does not pretend otherwise.** Telling consumers to fall back
|
|
@@ -4223,17 +4253,33 @@ components:
|
|
|
4223
4253
|
transport property, and a rule that reads it as producer intent is wrong
|
|
4224
4254
|
in a way no consumer can detect.
|
|
4225
4255
|
|
|
4226
|
-
**The field this needs is an `attempt` counter** —
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
the
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4256
|
+
**The field this needs is an `attempt` counter** — per `operation_id`,
|
|
4257
|
+
stamped by the producer — because it does not depend on a clock, and
|
|
4258
|
+
two invocations are tens of minutes apart in wall time (27–81 minutes
|
|
4259
|
+
of visibility timeout, measured above) but ADJACENT in attempt number.
|
|
4260
|
+
|
|
4261
|
+
**`attempt` is DECLARED (2026-09-25, card `HPXNdNqp`), OPTIONAL, and
|
|
4262
|
+
DIAGNOSTIC.** `compression_lambdas` confirmed both paths can emit it:
|
|
4263
|
+
the Lambda path from the SQS record's `ApproximateReceiveCount`
|
|
4264
|
+
(1-based), the Fargate path from `GISL_CL_JOB_ATTEMPT` + 1. It is a
|
|
4265
|
+
HINT for the log line rule 4 requires: two terminals with DIFFERENT
|
|
4266
|
+
values came from different deliveries. EQUAL values prove nothing (a
|
|
4267
|
+
launcher redelivery repeats a value, and the terminal event itself can
|
|
4268
|
+
be delivered twice), so a consumer cannot use it to classify a pair
|
|
4269
|
+
as harmless.
|
|
4270
|
+
|
|
4271
|
+
⛔ **It is NOT an ordering key, and no rule above reads it.** Its
|
|
4272
|
+
meaning depends on the path, so values from different paths or
|
|
4273
|
+
across a redrive are not comparable:
|
|
4274
|
+
- **Lambda:** the SQS receive count of one message. A DLQ redrive
|
|
4275
|
+
makes a NEW message whose count starts again, so a later
|
|
4276
|
+
invocation can carry a LOWER value.
|
|
4277
|
+
- **Fargate:** a retry counter carried in the message body, so it
|
|
4278
|
+
survives a redrive, but a launcher redelivery of the same message
|
|
4279
|
+
repeats the value. Ordering two faileds needs a counter that is durable
|
|
4280
|
+
per `operation_id` across redrives; none exists, so rule 3 stands.
|
|
4281
|
+
(An earlier draft of this change let `attempt` order faileds; codex
|
|
4282
|
+
review found the redrive reset, and it was withdrawn before merge.)
|
|
4237
4283
|
|
|
4238
4284
|
### 🔴 THE PARENT IS NOT COVERED BY THIS RULE, AND THAT IS A GAP
|
|
4239
4285
|
|
|
@@ -4353,6 +4399,17 @@ components:
|
|
|
4353
4399
|
$ref: '#/components/schemas/OperationType'
|
|
4354
4400
|
status:
|
|
4355
4401
|
$ref: '#/components/schemas/ResultStatus'
|
|
4402
|
+
attempt:
|
|
4403
|
+
type: integer
|
|
4404
|
+
minimum: 1
|
|
4405
|
+
description: |
|
|
4406
|
+
OPTIONAL, DIAGNOSTIC, 1-based. Which attempt produced this result,
|
|
4407
|
+
with path-specific meaning: on Lambda the SQS receive count (it
|
|
4408
|
+
restarts after a DLQ redrive), on Fargate a retry counter carried
|
|
4409
|
+
in the message (it survives a redrive but repeats on a launcher
|
|
4410
|
+
redelivery). MUST NOT be used to order results; see "THE MISSING
|
|
4411
|
+
ORDERING FIELD" above. Card `HPXNdNqp`.
|
|
4412
|
+
example: 1
|
|
4356
4413
|
|
|
4357
4414
|
# Shared success field (both single- and multi-output)
|
|
4358
4415
|
output_bucket:
|
|
@@ -4471,6 +4528,10 @@ components:
|
|
|
4471
4528
|
type: string
|
|
4472
4529
|
description: Human-readable error message (failed only)
|
|
4473
4530
|
example: "Unsupported file format: image/bmp"
|
|
4531
|
+
message_key:
|
|
4532
|
+
$ref: '#/components/schemas/OperationMessageKey'
|
|
4533
|
+
message_params:
|
|
4534
|
+
$ref: '#/components/schemas/OperationMessageParams'
|
|
4474
4535
|
is_retryable:
|
|
4475
4536
|
type: boolean
|
|
4476
4537
|
description: Whether the operation could be retried (failed only)
|
|
@@ -4482,6 +4543,34 @@ components:
|
|
|
4482
4543
|
description: Progress percentage when the operation failed (failed only)
|
|
4483
4544
|
example: 10
|
|
4484
4545
|
|
|
4546
|
+
OperationMessageKey:
|
|
4547
|
+
type: string
|
|
4548
|
+
x-string-vocabulary: open
|
|
4549
|
+
pattern: '^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$'
|
|
4550
|
+
description: |
|
|
4551
|
+
Stable, never-localised key REFINING `error_code` on a failed
|
|
4552
|
+
operation, so a client can show specific, localised copy (e.g.
|
|
4553
|
+
`thumbnail.epub.no_cover`). OPTIONAL, failed only. Every value is
|
|
4554
|
+
declared, with the codes it may accompany and its parameters, in
|
|
4555
|
+
`schemas/operation-message-keys.yaml` (the one registry). A client
|
|
4556
|
+
that does not know a key, or receives one whose registry
|
|
4557
|
+
`error_codes` do not include this `error_code`, ignores the key and
|
|
4558
|
+
falls back to the `error_code` headline;
|
|
4559
|
+
retry is still decided from the code. Ticket U7GQhjhX.
|
|
4560
|
+
example: "thumbnail.epub.no_cover"
|
|
4561
|
+
|
|
4562
|
+
OperationMessageParams:
|
|
4563
|
+
type: object
|
|
4564
|
+
additionalProperties:
|
|
4565
|
+
type: [string, integer, number, boolean]
|
|
4566
|
+
description: |
|
|
4567
|
+
Interpolation values for `message_key`, named and typed in
|
|
4568
|
+
`schemas/operation-message-keys.yaml`. JSON scalars only (string,
|
|
4569
|
+
integer, number, boolean) — no nested objects. Absent when the key
|
|
4570
|
+
declares no parameters (`params: {}`), and carries exactly the
|
|
4571
|
+
registry's parameters otherwise. Never carries free-text
|
|
4572
|
+
diagnostics; those stay in `error_message`.
|
|
4573
|
+
|
|
4485
4574
|
OperationResultMetadata:
|
|
4486
4575
|
type: object
|
|
4487
4576
|
additionalProperties: false
|
|
@@ -4492,7 +4581,10 @@ components:
|
|
|
4492
4581
|
whitelist projection on the read side), never the raw bag, so
|
|
4493
4582
|
internal diagnostics never leak. New keys are **additive named
|
|
4494
4583
|
cuts**. Twin of the OpenAPI `OperationResultMetadata` (wire ↔ read
|
|
4495
|
-
parity — same named-prop shape)
|
|
4584
|
+
parity — same named-prop shape), except that the REST twin also
|
|
4585
|
+
serves `already_optimal` / `estimated_saving_pct`, projected from
|
|
4586
|
+
`OperationMetrics` (the worker emits them there). Distinct from the
|
|
4587
|
+
deliverable
|
|
4496
4588
|
output (`output_key` / `outputs[]`): small per-operation metadata,
|
|
4497
4589
|
not the file. Per ticket EurbZLMH (B1).
|
|
4498
4590
|
properties:
|
|
@@ -4581,6 +4673,10 @@ components:
|
|
|
4581
4673
|
selected pages (`1,2,3,4,5,8`) — gapless ONLY for a full conversion.
|
|
4582
4674
|
Mutually exclusive with `position`. Normative semantics:
|
|
4583
4675
|
ADR-0009 §D2.
|
|
4676
|
+
For a `split` of a PDF with `mode: page_groups`, each output holds
|
|
4677
|
+
a GROUP of pages and `page_index` is the group's FIRST source
|
|
4678
|
+
page; the group covers `page_index` .. `page_index + page_groups
|
|
4679
|
+
- 1`, and the last group ends at the document's last page.
|
|
4584
4680
|
example: 1
|
|
4585
4681
|
position:
|
|
4586
4682
|
type: integer
|
|
@@ -4671,10 +4767,11 @@ components:
|
|
|
4671
4767
|
format: date-time
|
|
4672
4768
|
reason:
|
|
4673
4769
|
type: string
|
|
4770
|
+
x-string-vocabulary: advisory
|
|
4674
4771
|
description: |
|
|
4675
4772
|
Optional advisory reason. Free-form string; not enumerated.
|
|
4676
4773
|
Examples: `all jobs completed successfully`,
|
|
4677
|
-
`
|
|
4774
|
+
`no active reservation at a publish boundary` (when
|
|
4678
4775
|
transitioning to `paused_insufficient_credits`),
|
|
4679
4776
|
`caller requested cancel`, `paused_insufficient_credits
|
|
4680
4777
|
past expires_at`, `dispatch timeout`.
|
|
@@ -4698,6 +4795,14 @@ components:
|
|
|
4698
4795
|
Operation-specific metrics. Content varies by operation type.
|
|
4699
4796
|
All metrics include duration_ms. Compression includes size/ratio.
|
|
4700
4797
|
Merge includes input count. Archive includes file count and total size.
|
|
4798
|
+
# estimated_saving_pct only means something on an already-optimal result.
|
|
4799
|
+
if:
|
|
4800
|
+
required: [estimated_saving_pct]
|
|
4801
|
+
then:
|
|
4802
|
+
required: [already_optimal]
|
|
4803
|
+
properties:
|
|
4804
|
+
already_optimal:
|
|
4805
|
+
const: true
|
|
4701
4806
|
properties:
|
|
4702
4807
|
original_size_bytes:
|
|
4703
4808
|
type: integer
|
|
@@ -4757,6 +4862,7 @@ components:
|
|
|
4757
4862
|
example: 0.9501
|
|
4758
4863
|
quality_metric:
|
|
4759
4864
|
type: string
|
|
4865
|
+
x-string-vocabulary: advisory
|
|
4760
4866
|
description: |
|
|
4761
4867
|
The perceptual metric that produced `measured_quality` — a FREE-FORM
|
|
4762
4868
|
string (NOT an enum) so the worker can change or upgrade the metric
|
|
@@ -4786,15 +4892,16 @@ components:
|
|
|
4786
4892
|
$ref: '#/components/schemas/ReEncodeDecision'
|
|
4787
4893
|
re_encode_reason:
|
|
4788
4894
|
type: string
|
|
4895
|
+
x-string-vocabulary: advisory
|
|
4789
4896
|
description: |
|
|
4790
4897
|
Advisory explanation for `re_encode_decision` (e.g.
|
|
4791
|
-
`
|
|
4792
|
-
`
|
|
4898
|
+
`compatible_inputs`, `always_mode_forces_re_encode`,
|
|
4899
|
+
`input_video_codec_mismatch`, `long_form_stream_copy`).
|
|
4793
4900
|
Free-form string — not an enum — so the Lambda can emit
|
|
4794
4901
|
human-readable diagnostics that evolve without contract
|
|
4795
4902
|
churn (compatibility-probe algorithm stays opaque per
|
|
4796
4903
|
plan v5 §F8.2). Per ticket I16-CONS.
|
|
4797
|
-
example:
|
|
4904
|
+
example: input_video_codec_mismatch
|
|
4798
4905
|
# COGS AWS-cost metrics (ticket 2cacyYNE) — the real per-op AWS-cost
|
|
4799
4906
|
# inputs the API's COGS record consumes (emitted by lambdas yJe65EMa,
|
|
4800
4907
|
# surfaced by api MWssQbFS), replacing the wall-clock/bytes COGS proxy
|
|
@@ -4848,6 +4955,35 @@ components:
|
|
|
4848
4955
|
`memory_mb`. Present for long-form (Fargate) ops once the worker
|
|
4849
4956
|
emits it.
|
|
4850
4957
|
example: 45000
|
|
4958
|
+
# Already-optimal passthrough (roNRMilt, FE lZVjFFTA). A compress that
|
|
4959
|
+
# does not shrink the file (or is declined before encoding because the
|
|
4960
|
+
# source is already efficient) is a SUCCESS returning the ORIGINAL
|
|
4961
|
+
# bytes with compression_ratio 1.0 — never a failure. These keys let
|
|
4962
|
+
# the API tell the user WHY. The API projects both onto the REST
|
|
4963
|
+
# `OperationResultMetadata` (same names); diagnostic evidence such as
|
|
4964
|
+
# `source_bpp` / `threshold_bpp` stays wire-only and is never served.
|
|
4965
|
+
already_optimal:
|
|
4966
|
+
type: boolean
|
|
4967
|
+
description: |
|
|
4968
|
+
`true` when the stored output IS the original input, unchanged,
|
|
4969
|
+
because compressing it would not have made it smaller. Set by the
|
|
4970
|
+
compression processor itself, never by an individual worker's
|
|
4971
|
+
extras. Absent or `false` on an ordinary compression; consumers
|
|
4972
|
+
treat the two the same.
|
|
4973
|
+
example: true
|
|
4974
|
+
estimated_saving_pct:
|
|
4975
|
+
type: number
|
|
4976
|
+
minimum: 0
|
|
4977
|
+
maximum: 100
|
|
4978
|
+
description: |
|
|
4979
|
+
OPTIONAL, only with `already_optimal: true`, and only when the
|
|
4980
|
+
worker declined BEFORE encoding on an efficiency estimate: the
|
|
4981
|
+
worker's estimate of how much smaller, as a percentage of the input
|
|
4982
|
+
bytes, a re-encode would have made the file. Absent when the worker
|
|
4983
|
+
encoded and measured instead (then the measured result, not an
|
|
4984
|
+
estimate, is why it declined). An estimate, not a promise — do not
|
|
4985
|
+
present it as a guaranteed figure.
|
|
4986
|
+
example: 3.5
|
|
4851
4987
|
|
|
4852
4988
|
# ============================================
|
|
4853
4989
|
# UPLOAD PROBE PAYLOADS (per ticket vBlEurU7)
|
|
@@ -5226,6 +5362,84 @@ components:
|
|
|
5226
5362
|
contract on the OpenAPI side; the prober reports the
|
|
5227
5363
|
page-1 horizontal DPI when the document declares it,
|
|
5228
5364
|
otherwise omits the field.
|
|
5365
|
+
# STREAM TOPOLOGY + CONCAT ATTRIBUTES (lGeDDi4V, for MjzzPCWt): what the
|
|
5366
|
+
# API needs to refuse a non-concat-uniform long-form merge at create.
|
|
5367
|
+
# Defined with the SAME semantics as compression_lambdas' merge gate
|
|
5368
|
+
# (re_encode.rs TopologyCounts / classify_non_uniform), or the
|
|
5369
|
+
# create-time refusal and the worker gate would disagree. All OPTIONAL:
|
|
5370
|
+
# a prober that has not emitted them yet simply omits them.
|
|
5371
|
+
video_stream_count:
|
|
5372
|
+
type: integer
|
|
5373
|
+
minimum: 0
|
|
5374
|
+
description: Streams whose ffprobe `codec_type` is `video`.
|
|
5375
|
+
audio_stream_count:
|
|
5376
|
+
type: integer
|
|
5377
|
+
minimum: 0
|
|
5378
|
+
description: Streams whose ffprobe `codec_type` is `audio`.
|
|
5379
|
+
other_stream_count:
|
|
5380
|
+
type: integer
|
|
5381
|
+
minimum: 0
|
|
5382
|
+
description: |
|
|
5383
|
+
Every other stream: `codec_type` subtitle, data, attachment,
|
|
5384
|
+
or unknown — the worker gate's `other` bucket.
|
|
5385
|
+
stream_order:
|
|
5386
|
+
type: array
|
|
5387
|
+
items:
|
|
5388
|
+
type: string
|
|
5389
|
+
enum: [video, audio, other]
|
|
5390
|
+
description: |
|
|
5391
|
+
Per stream index, in container order, its kind (`other` as
|
|
5392
|
+
above). Two inputs are order-compatible iff these are equal.
|
|
5393
|
+
r_frame_rate:
|
|
5394
|
+
type: string
|
|
5395
|
+
pattern: '^[0-9]+/[0-9]+$'
|
|
5396
|
+
description: |
|
|
5397
|
+
ffprobe `r_frame_rate` of the video stream, raw (`30000/1001`;
|
|
5398
|
+
ffprobe's `0/0` is carried as-is and means UNUSABLE). NOT the
|
|
5399
|
+
average rate in `fps`, which drifts between concat-uniform
|
|
5400
|
+
clips. **The worker's frame-rate rule, which a create-time
|
|
5401
|
+
comparison must reproduce exactly:** (1) `r_frame_rate` and
|
|
5402
|
+
`avg_frame_rate` must each be present on all inputs or absent
|
|
5403
|
+
on all (else `input_metadata_inconsistent`); (2) if every
|
|
5404
|
+
input has a usable `r_frame_rate`, compare those as parsed
|
|
5405
|
+
rationals; (3) otherwise compare `avg_frame_rate` as parsed
|
|
5406
|
+
rationals. Both comparisons are by VALUE (`60/2` equals `30/1`),
|
|
5407
|
+
never by string.
|
|
5408
|
+
avg_frame_rate:
|
|
5409
|
+
type: string
|
|
5410
|
+
pattern: '^[0-9]+/[0-9]+$'
|
|
5411
|
+
description: |
|
|
5412
|
+
ffprobe `avg_frame_rate` of the video stream, raw rational.
|
|
5413
|
+
Presence-checked always; compared only as the fallback in the
|
|
5414
|
+
`r_frame_rate` rule. `fps` is its lossy numeric form.
|
|
5415
|
+
pix_fmt:
|
|
5416
|
+
type: string
|
|
5417
|
+
x-string-vocabulary: none
|
|
5418
|
+
description: ffprobe `pix_fmt` of the video stream (e.g. `yuv420p`).
|
|
5419
|
+
sar:
|
|
5420
|
+
type: string
|
|
5421
|
+
pattern: '^[0-9]+:[0-9]+$'
|
|
5422
|
+
description: Sample aspect ratio of the video stream (`1:1`).
|
|
5423
|
+
video_time_base:
|
|
5424
|
+
type: string
|
|
5425
|
+
pattern: '^[0-9]+/[0-9]+$'
|
|
5426
|
+
description: ffprobe `time_base` of the video stream (`1/30000`).
|
|
5427
|
+
audio_time_base:
|
|
5428
|
+
type: string
|
|
5429
|
+
pattern: '^[0-9]+/[0-9]+$'
|
|
5430
|
+
description: ffprobe `time_base` of the audio stream (`1/48000`).
|
|
5431
|
+
codec_tag:
|
|
5432
|
+
type: string
|
|
5433
|
+
x-string-vocabulary: none
|
|
5434
|
+
description: ffprobe `codec_tag_string` of the video stream (e.g. `avc1`).
|
|
5435
|
+
profile:
|
|
5436
|
+
type: string
|
|
5437
|
+
x-string-vocabulary: none
|
|
5438
|
+
description: ffprobe `profile` of the video stream (e.g. `High`).
|
|
5439
|
+
sample_fmt:
|
|
5440
|
+
type: string
|
|
5441
|
+
x-string-vocabulary: none
|
|
5442
|
+
description: ffprobe `sample_fmt` of the audio stream (e.g. `fltp`).
|
|
5229
5443
|
probed_at:
|
|
5230
5444
|
type: string
|
|
5231
5445
|
format: date-time
|
|
@@ -5241,6 +5455,15 @@ components:
|
|
|
5241
5455
|
OperationType:
|
|
5242
5456
|
type: string
|
|
5243
5457
|
description: |
|
|
5458
|
+
⚠️ **HOMONYM: this is NOT the `OperationType` in `openapi/api.yaml`.**
|
|
5459
|
+
That one is the CREATE surface (every operation a caller may
|
|
5460
|
+
request, incl. `passthrough` and the per-media thumbnail sub-types);
|
|
5461
|
+
this one is the narrower PAYLOAD vocabulary. Same name, different
|
|
5462
|
+
membership, both emitted by the SDK generators — the import path is
|
|
5463
|
+
the only distinguisher. Not renamed: a rename breaks every consumer
|
|
5464
|
+
of either generated type (bFy3zo5Y). The subset relation is asserted
|
|
5465
|
+
in `schemas/cross-document-enums.yaml`.
|
|
5466
|
+
|
|
5244
5467
|
Operation type as carried inside the message **payload** body. This
|
|
5245
5468
|
enum is deliberately narrower than the SNS `operation_type`
|
|
5246
5469
|
MessageAttribute: the attribute enum permits per-media thumbnail
|
|
@@ -5321,11 +5544,9 @@ components:
|
|
|
5321
5544
|
into an audio asset (or a video's audio track) — Cinavia /
|
|
5322
5545
|
Resemble PerTh territory. Single-input. Both mime_groups
|
|
5323
5546
|
(`audio`, `video` — embed in video's audio track) are
|
|
5324
|
-
`availability: planned`
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
(403) until the Lambda ships, so traffic does not reach SNS
|
|
5328
|
-
today. Pairs with `POST /api/audio-watermark/decode` for
|
|
5547
|
+
`availability: planned` per the operation schema; the API
|
|
5548
|
+
rejects workflow-create with `feature_not_available` (422)
|
|
5549
|
+
until the Lambda ships, so traffic does not reach SNS today. Pairs with `POST /api/audio-watermark/decode` for
|
|
5329
5550
|
own-watermarks-only extraction. Per ADR-0004 + I20 (Trello
|
|
5330
5551
|
omiCq7Vn).
|
|
5331
5552
|
- `audio_to_video`: Produce a video from an audio input plus an
|
|
@@ -5379,8 +5600,8 @@ components:
|
|
|
5379
5600
|
operation-specific conditional needed). `availability: beta`
|
|
5380
5601
|
for the `audio` and `video` mime_groups — video activates
|
|
5381
5602
|
BOTH classes (`short_form` + `long_form` beta; long-form
|
|
5382
|
-
|
|
5383
|
-
|
|
5603
|
+
stays beta until a production `customer_path` run is recorded
|
|
5604
|
+
in the prod verification log). `image_gif` / `document_pdf` stay
|
|
5384
5605
|
`planned`. Routes via `operation_type=split` to `ops-split`.
|
|
5385
5606
|
Per ADR-0004 + ADR-0014
|
|
5386
5607
|
([`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
@@ -5534,12 +5755,23 @@ components:
|
|
|
5534
5755
|
ReEncodeDecision:
|
|
5535
5756
|
type: string
|
|
5536
5757
|
description: |
|
|
5537
|
-
Path
|
|
5538
|
-
|
|
5539
|
-
`
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5758
|
+
Path the worker actually took for a SUCCESSFUL `merge.video`,
|
|
5759
|
+
reported in EVERY `re_encode_mode`: `always` reports `re_encode`;
|
|
5760
|
+
`never` reports `stream_copy`; `auto` reports whichever path it
|
|
5761
|
+
chose. Absent for non-`merge.video` operations and on any failed
|
|
5762
|
+
operation, even one that carries other metrics such as sizes or
|
|
5763
|
+
cost figures (for example a `never`
|
|
5764
|
+
request whose inputs need a re-encode, or a long-form merge the
|
|
5765
|
+
uniformity gate refuses before the path is decided). Per ticket I16-CONS (Trello
|
|
5766
|
+
7nCZXEru).
|
|
5767
|
+
|
|
5768
|
+
⚠️ An earlier revision said the field was ABSENT under `always` /
|
|
5769
|
+
`never`. The worker never behaved that way (it reports the path
|
|
5770
|
+
in every mode), and the same contract listed an `always`-mode
|
|
5771
|
+
reason as an example, so the text contradicted itself. The
|
|
5772
|
+
worker's behaviour is the canonical one (ruled 2026-09-24 on
|
|
5773
|
+
compression_e2e's report); a consumer MUST NOT assert absence
|
|
5774
|
+
on a successful merge under a caller-fixed mode. Workflow-create-time surface
|
|
5543
5775
|
on `processing_plan.jobs[]` lands with I15-CONS
|
|
5544
5776
|
(Trello YZpBKzOM).
|
|
5545
5777
|
|
|
@@ -5714,6 +5946,9 @@ components:
|
|
|
5714
5946
|
error, not a statement about how many times the platform has already
|
|
5715
5947
|
tried. See `OperationResult` for the supersession rule.
|
|
5716
5948
|
|
|
5949
|
+
The retryable set below is also machine-readable as `x-retryable` on
|
|
5950
|
+
this schema; read that rather than parsing this list.
|
|
5951
|
+
|
|
5717
5952
|
**Retryable errors** (transient — re-submitting may succeed):
|
|
5718
5953
|
- s3_download_failed: Source file download failed
|
|
5719
5954
|
- s3_upload_failed: Output file upload failed
|
|
@@ -5758,7 +5993,34 @@ components:
|
|
|
5758
5993
|
emits it** — the API derives it from job state, so do not look for the worker
|
|
5759
5994
|
that produces it. Non-retryable: retrying an operation that never ran is
|
|
5760
5995
|
meaningless; the caller re-submits the workflow.
|
|
5996
|
+
- processing_limit_exceeded: A processing tool was killed at its configured
|
|
5997
|
+
processing budget (e.g. an encoder stopped at its time cap) for THIS
|
|
5998
|
+
input. Deterministic: the same input with the same options hits the same
|
|
5999
|
+
budget again, so it is **non-retryable** — distinct from `timeout`, which
|
|
6000
|
+
is transient and retryable. Added 2026-09-23 (card `9BWwPcbA`, hub ruling
|
|
6001
|
+
option (c)): retry stays decided by the CODE, never by a wire boolean
|
|
6002
|
+
overriding it. **Rollout order:** declared here first; the API maps it
|
|
6003
|
+
non-retryable (an API that does not yet know it degrades an unknown code
|
|
6004
|
+
to "not retried", so a slipped order fails safe); workers emit it only
|
|
6005
|
+
after that API release is live. Until then a cap kill still arrives as
|
|
6006
|
+
`timeout`.
|
|
6007
|
+
**Emit it ONLY for a budget that is a function of the input**, i.e. a cap
|
|
6008
|
+
the worker sets from the input (duration, resolution, pixels) whose
|
|
6009
|
+
exhaustion would recur on any healthy host. A wall-clock deadline that
|
|
6010
|
+
may have been exhausted by transient conditions (contention, a slow
|
|
6011
|
+
download, the Lambda invocation timeout) is `timeout`, NOT this code.
|
|
6012
|
+
When the worker cannot tell which it hit, it emits `timeout`: a wrong
|
|
6013
|
+
`timeout` costs one retry, a wrong `processing_limit_exceeded` fails a
|
|
6014
|
+
job that would have succeeded.
|
|
5761
6015
|
- unknown: Unclassified error
|
|
6016
|
+
# Machine-readable twin of the "Retryable errors" list above, for
|
|
6017
|
+
# consumers (api) that must agree with it. A test asserts the two are
|
|
6018
|
+
# EQUAL and that every enum value is in exactly one of the two lists.
|
|
6019
|
+
x-retryable:
|
|
6020
|
+
- s3_download_failed
|
|
6021
|
+
- s3_upload_failed
|
|
6022
|
+
- out_of_memory
|
|
6023
|
+
- timeout
|
|
5762
6024
|
enum:
|
|
5763
6025
|
- s3_download_failed
|
|
5764
6026
|
- s3_upload_failed
|
|
@@ -5776,4 +6038,5 @@ components:
|
|
|
5776
6038
|
- invalid_request
|
|
5777
6039
|
- input_too_large
|
|
5778
6040
|
- never_started
|
|
6041
|
+
- processing_limit_exceeded
|
|
5779
6042
|
- unknown
|