@giveitsmaller/contracts 0.86.0 → 0.87.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 +1 -1
- package/asyncapi/events.yaml +239 -14
- package/availability/availability.json +76 -23
- package/code-builder/code-builder-metadata.json +79 -26
- package/dist/asyncapi/LongFormOperationType.d.ts +4 -1
- package/dist/asyncapi/LongFormOperationType.js +3 -0
- package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
- package/dist/openapi/models/AccountLimitEntry.js +1 -1
- package/dist/openapi/models/AccountLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
- package/dist/openapi/models/AnonymousLimitExceededResponse.d.ts +1 -1
- package/dist/openapi/models/AnonymousLimitExceededResponse.js +1 -1
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +1 -1
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +1 -1
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
- package/dist/openapi/models/AuthenticatedIdentity.d.ts +1 -1
- package/dist/openapi/models/AuthenticatedIdentity.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
- package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSession.js +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +1 -1
- package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
- package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
- package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
- package/dist/openapi/models/CapabilityCondition.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf7.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf7.js +1 -1
- package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
- package/dist/openapi/models/CapabilityConstraint.js +1 -1
- package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
- package/dist/openapi/models/CapabilityInputSpec.js +1 -1
- package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
- package/dist/openapi/models/CapabilityProduces.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
- package/dist/openapi/models/CeilingBasisValue.d.ts +1 -1
- package/dist/openapi/models/CeilingBasisValue.js +1 -1
- package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ChangePasswordRequest.js +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponse.js +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +1 -1
- package/dist/openapi/models/CheckoutSessionStatusResponseData.js +1 -1
- package/dist/openapi/models/CodegenSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSource.js +1 -1
- package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceInput.js +1 -1
- package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJob.js +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
- package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceOperation.js +1 -1
- package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
- package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
- package/dist/openapi/models/CompositionPlan.d.ts +1 -1
- package/dist/openapi/models/CompositionPlan.js +1 -1
- package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanJob.js +1 -1
- package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanOperation.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
- package/dist/openapi/models/ConnectionSource.d.ts +1 -1
- package/dist/openapi/models/ConnectionSource.js +1 -1
- package/dist/openapi/models/ContactRequest.d.ts +1 -1
- package/dist/openapi/models/ContactRequest.js +1 -1
- package/dist/openapi/models/ContactSubject.d.ts +1 -1
- package/dist/openapi/models/ContactSubject.js +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
- package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201Response.js +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow403Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow403Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
- package/dist/openapi/models/CreditTransaction.d.ts +1 -1
- package/dist/openapi/models/CreditTransaction.js +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageResponse.js +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
- package/dist/openapi/models/Delivery.d.ts +1 -1
- package/dist/openapi/models/Delivery.js +1 -1
- package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
- package/dist/openapi/models/DeliveryOutputRef.js +1 -1
- package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlan.js +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
- package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanReason.js +1 -1
- package/dist/openapi/models/DeliverySelection.d.ts +1 -1
- package/dist/openapi/models/DeliverySelection.js +1 -1
- package/dist/openapi/models/DownloadBundle.d.ts +1 -1
- package/dist/openapi/models/DownloadBundle.js +1 -1
- package/dist/openapi/models/DroppedOption.d.ts +1 -1
- package/dist/openapi/models/DroppedOption.js +1 -1
- package/dist/openapi/models/EmailNotify.d.ts +1 -1
- package/dist/openapi/models/EmailNotify.js +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
- package/dist/openapi/models/EndpointProjection.d.ts +1 -1
- package/dist/openapi/models/EndpointProjection.js +1 -1
- package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
- package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200Response.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.js +1 -1
- package/dist/openapi/models/ExternalDestination.d.ts +1 -1
- package/dist/openapi/models/ExternalDestination.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
- package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
- package/dist/openapi/models/ExternalImportRequest.js +1 -1
- package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
- package/dist/openapi/models/ExternalImportToken.js +1 -1
- package/dist/openapi/models/ExternalSource.d.ts +1 -1
- package/dist/openapi/models/ExternalSource.js +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
- package/dist/openapi/models/FeatureViolation.d.ts +1 -1
- package/dist/openapi/models/FeatureViolation.js +1 -1
- package/dist/openapi/models/GetProfile200Response.d.ts +1 -1
- package/dist/openapi/models/GetProfile200Response.js +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.js +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
- package/dist/openapi/models/JobDefinition.d.ts +1 -1
- package/dist/openapi/models/JobDefinition.js +1 -1
- package/dist/openapi/models/JobDownload.d.ts +1 -1
- package/dist/openapi/models/JobDownload.js +1 -1
- package/dist/openapi/models/JobInputV2.d.ts +1 -1
- package/dist/openapi/models/JobInputV2.js +1 -1
- package/dist/openapi/models/JobMediaClass.d.ts +1 -1
- package/dist/openapi/models/JobMediaClass.js +1 -1
- package/dist/openapi/models/JobOutputSource.d.ts +1 -1
- package/dist/openapi/models/JobOutputSource.js +1 -1
- package/dist/openapi/models/JobResponse.d.ts +1 -1
- package/dist/openapi/models/JobResponse.js +1 -1
- package/dist/openapi/models/JobStatus.d.ts +1 -1
- package/dist/openapi/models/JobStatus.js +1 -1
- package/dist/openapi/models/JobType.d.ts +1 -1
- package/dist/openapi/models/JobType.js +1 -1
- package/dist/openapi/models/LivenessResponse.d.ts +1 -1
- package/dist/openapi/models/LivenessResponse.js +1 -1
- package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser200Response.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
- package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser401Response.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/MetadataResponse.d.ts +1 -1
- package/dist/openapi/models/MetadataResponse.js +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
- package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExif.js +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
- package/dist/openapi/models/MimeGroupSchema.js +1 -1
- package/dist/openapi/models/MultiInputSource.d.ts +1 -1
- package/dist/openapi/models/MultiInputSource.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
- package/dist/openapi/models/MultipartPartListing.js +1 -1
- package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignRequest.js +1 -1
- package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignResponse.js +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusResponse.js +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/NotifyConfig.d.ts +1 -1
- package/dist/openapi/models/NotifyConfig.js +1 -1
- package/dist/openapi/models/OperationCapability.d.ts +1 -1
- package/dist/openapi/models/OperationCapability.js +1 -1
- package/dist/openapi/models/OperationDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationDefinition.js +1 -1
- package/dist/openapi/models/OperationDownload.d.ts +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -1
- package/dist/openapi/models/OperationInputModel.d.ts +1 -1
- package/dist/openapi/models/OperationInputModel.js +1 -1
- package/dist/openapi/models/OperationMessageParamsValue.d.ts +1 -1
- package/dist/openapi/models/OperationMessageParamsValue.js +1 -1
- package/dist/openapi/models/OperationResponse.d.ts +1 -1
- package/dist/openapi/models/OperationResponse.js +1 -1
- package/dist/openapi/models/OperationResult.d.ts +1 -1
- package/dist/openapi/models/OperationResult.js +1 -1
- package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetadata.js +1 -1
- package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +2 -2
- package/dist/openapi/models/OperationType.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
- package/dist/openapi/models/OptionSchema.d.ts +1 -1
- package/dist/openapi/models/OptionSchema.js +1 -1
- package/dist/openapi/models/OutputProperties.d.ts +1 -1
- package/dist/openapi/models/OutputProperties.js +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
- package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
- package/dist/openapi/models/PresignedUrlPart.js +1 -1
- package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
- package/dist/openapi/models/ProbePendingResponse.js +1 -1
- package/dist/openapi/models/ProbeUpload422Response.d.ts +1 -1
- package/dist/openapi/models/ProbeUpload422Response.js +1 -1
- package/dist/openapi/models/ProcessingClass.d.ts +1 -1
- package/dist/openapi/models/ProcessingClass.js +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
- package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntry.js +1 -1
- package/dist/openapi/models/ProcessingClassEntryInputUniformity.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntryInputUniformity.js +1 -1
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntryResolutionBands.js +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
- package/dist/openapi/models/ReEncodeDecision.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
- package/dist/openapi/models/RegisterUser422Response.js +1 -1
- package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
- package/dist/openapi/models/RegisterUserRequest.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
- package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ResetPasswordRequest.js +1 -1
- package/dist/openapi/models/ResolutionBand.d.ts +1 -1
- package/dist/openapi/models/ResolutionBand.js +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
- package/dist/openapi/models/SseCompletionBase.js +1 -1
- package/dist/openapi/models/SseConnectionLimitResponse.d.ts +1 -1
- package/dist/openapi/models/SseConnectionLimitResponse.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
- package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletedData.js +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionResponse.js +1 -1
- package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200Response.js +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
- package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile422Response.js +1 -1
- package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
- package/dist/openapi/models/UpdateProfileRequest.js +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile403Response.js +1 -1
- package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile422Response.js +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
- package/dist/openapi/models/UploadProbeNotApplicableResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeNotApplicableResponse.js +1 -1
- package/dist/openapi/models/UploadProbeNotReadyResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeNotReadyResponse.js +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
- package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeResponse.js +1 -1
- package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
- package/dist/openapi/models/UploadProbeStatus.js +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadResponse.d.ts +1 -1
- package/dist/openapi/models/UploadResponse.js +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadSource.d.ts +1 -1
- package/dist/openapi/models/UploadSource.js +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadThresholds.d.ts +1 -1
- package/dist/openapi/models/UploadThresholds.js +1 -1
- package/dist/openapi/models/UserTier.d.ts +1 -1
- package/dist/openapi/models/UserTier.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
- package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
- package/dist/openapi/models/VerifyEmailRequest.js +1 -1
- package/dist/openapi/models/WarningType.d.ts +1 -1
- package/dist/openapi/models/WarningType.js +1 -1
- package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
- package/dist/openapi/models/WebhookOperationContext.js +1 -1
- package/dist/openapi/models/WebhookPayload.d.ts +1 -1
- package/dist/openapi/models/WebhookPayload.js +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
- package/dist/openapi/models/WorkflowEdge.js +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
- package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowListResponse.js +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
- package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
- package/dist/openapi/models/WorkflowProcessing.js +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSource.d.ts +1 -1
- package/dist/openapi/models/WorkflowSource.js +1 -1
- package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatus.js +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummary.js +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
- package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarning.js +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/audio_to_video.metadata.js +14 -1
- package/dist/operations/split.metadata.js +1 -1
- package/openapi/api.yaml +2 -2
- package/operation-capabilities/operation-capabilities.json +1 -1
- package/operations/schemas/audio_to_video.yaml +37 -9
- package/operations/schemas/compress.yaml +20 -0
- package/operations/schemas/convert.yaml +23 -2
- package/operations/schemas/merge.yaml +5 -1
- package/operations/schemas/split.yaml +16 -7
- package/operations/schemas/video_text_watermark.yaml +5 -5
- package/operations/schemas/video_watermark.yaml +27 -0
- package/package.json +3 -3
package/README.md
CHANGED
package/asyncapi/events.yaml
CHANGED
|
@@ -244,9 +244,8 @@ channels:
|
|
|
244
244
|
[`4NrRPCgh`](https://trello.com/c/4NrRPCgh))
|
|
245
245
|
- `operation_type = split` -> `ops-split` queue (the `audio` and
|
|
246
246
|
`video` mime_groups are `availability: beta` — audio + short-form
|
|
247
|
-
video split traffic reaches this queue
|
|
248
|
-
`
|
|
249
|
-
ship per [`vKI0CFDu`](https://trello.com/c/vKI0CFDu);
|
|
247
|
+
video split traffic reaches this queue, and so does `image_gif`
|
|
248
|
+
(`stable`) and `document_pdf` (`beta` since 2026-10-01) traffic;
|
|
250
249
|
long-form video splits route via `processing_class` to the
|
|
251
250
|
`split-video-fargate` worker — same OperationType, different
|
|
252
251
|
worker — now also `availability: beta` (stays beta until a
|
|
@@ -908,10 +907,9 @@ channels:
|
|
|
908
907
|
(workers live on staging). This SNS queue carries audio + SHORT-FORM
|
|
909
908
|
video split traffic only; long-form video split (now also `beta`)
|
|
910
909
|
routes via the direct-to-SQS `longformSplitVideo` claim-check to the
|
|
911
|
-
`split-video-fargate` worker, NOT here. The `image_gif` and
|
|
912
|
-
`document_pdf`
|
|
913
|
-
|
|
914
|
-
Lambdas ship. Backed by the `operation-split` Lambda (cross-repo
|
|
910
|
+
`split-video-fargate` worker, NOT here. The `image_gif` (`stable`) and
|
|
911
|
+
`document_pdf` (`beta`, 2026-10-01) mime_groups also arrive here. Backed
|
|
912
|
+
by the `operation-split` Lambda (cross-repo
|
|
915
913
|
follow-up — lambdas pre-launch epic Wave A, ticket
|
|
916
914
|
[DbpJpVtm-sibling-L1](https://trello.com/c/vKI0CFDu)
|
|
917
915
|
[`vKI0CFDu`](https://trello.com/c/vKI0CFDu)).
|
|
@@ -1319,9 +1317,8 @@ channels:
|
|
|
1319
1317
|
Messages land here after 5 failed processing attempts. Live for
|
|
1320
1318
|
the `split` `audio` + `video` mime_groups (now `availability: beta`;
|
|
1321
1319
|
this DLQ backs the short-form SNS `ops-split` queue — long-form video
|
|
1322
|
-
split has its own `longformSplitVideoDlq`);
|
|
1323
|
-
`
|
|
1324
|
-
traffic yet.
|
|
1320
|
+
split has its own `longformSplitVideoDlq`); it also backs the
|
|
1321
|
+
`image_gif` (`stable`) and `document_pdf` (`beta`) groups.
|
|
1325
1322
|
parameters:
|
|
1326
1323
|
env:
|
|
1327
1324
|
description: Environment (local, stg, prod)
|
|
@@ -1642,6 +1639,111 @@ channels:
|
|
|
1642
1639
|
region:
|
|
1643
1640
|
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1644
1641
|
|
|
1642
|
+
longformVideoWatermark:
|
|
1643
|
+
address: gisl-{env}-{region}-ops-video-watermark-longform
|
|
1644
|
+
description: |
|
|
1645
|
+
SQS queue for long-form video watermark jobs (`video_watermark.video.long_form`, `planned`;
|
|
1646
|
+
HN-33, [`jOMJOncC`](https://trello.com/c/jOMJOncC)). The API publishes a
|
|
1647
|
+
`LongFormJobMessage` claim-check here directly (NOT via SNS); a
|
|
1648
|
+
terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
|
|
1649
|
+
Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
|
|
1650
|
+
publisher always sets `operation_type: video_watermark`, `processing_class:
|
|
1651
|
+
long_form`. Declared contract-first: no publisher emits here until api's
|
|
1652
|
+
long-form routing for `video_watermark` ships.
|
|
1653
|
+
bindings:
|
|
1654
|
+
sqs:
|
|
1655
|
+
queue:
|
|
1656
|
+
name: gisl-{env}-{region}-ops-video-watermark-longform
|
|
1657
|
+
fifoQueue: false
|
|
1658
|
+
bindingVersion: '0.2.0'
|
|
1659
|
+
parameters:
|
|
1660
|
+
env:
|
|
1661
|
+
description: Environment (local, stg, prod)
|
|
1662
|
+
region:
|
|
1663
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1664
|
+
messages:
|
|
1665
|
+
longFormJob:
|
|
1666
|
+
$ref: '#/components/messages/LongFormJobMessage'
|
|
1667
|
+
|
|
1668
|
+
longformVideoWatermarkDlq:
|
|
1669
|
+
address: gisl-{env}-{region}-ops-video-watermark-longform-dlq
|
|
1670
|
+
description: DLQ for failed long-form video watermark jobs. Messages land here after 2 failed processing attempts (ADR-0007).
|
|
1671
|
+
parameters:
|
|
1672
|
+
env:
|
|
1673
|
+
description: Environment (local, stg, prod)
|
|
1674
|
+
region:
|
|
1675
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1676
|
+
|
|
1677
|
+
longformVideoTextWatermark:
|
|
1678
|
+
address: gisl-{env}-{region}-ops-video-text-watermark-longform
|
|
1679
|
+
description: |
|
|
1680
|
+
SQS queue for long-form video text watermark jobs (`video_text_watermark.video.long_form`, `planned`;
|
|
1681
|
+
HN-33, [`jOMJOncC`](https://trello.com/c/jOMJOncC)). The API publishes a
|
|
1682
|
+
`LongFormJobMessage` claim-check here directly (NOT via SNS); a
|
|
1683
|
+
terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
|
|
1684
|
+
Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
|
|
1685
|
+
publisher always sets `operation_type: video_text_watermark`, `processing_class:
|
|
1686
|
+
long_form`. Declared contract-first: no publisher emits here until api's
|
|
1687
|
+
long-form routing for `video_text_watermark` ships.
|
|
1688
|
+
bindings:
|
|
1689
|
+
sqs:
|
|
1690
|
+
queue:
|
|
1691
|
+
name: gisl-{env}-{region}-ops-video-text-watermark-longform
|
|
1692
|
+
fifoQueue: false
|
|
1693
|
+
bindingVersion: '0.2.0'
|
|
1694
|
+
parameters:
|
|
1695
|
+
env:
|
|
1696
|
+
description: Environment (local, stg, prod)
|
|
1697
|
+
region:
|
|
1698
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1699
|
+
messages:
|
|
1700
|
+
longFormJob:
|
|
1701
|
+
$ref: '#/components/messages/LongFormJobMessage'
|
|
1702
|
+
|
|
1703
|
+
longformVideoTextWatermarkDlq:
|
|
1704
|
+
address: gisl-{env}-{region}-ops-video-text-watermark-longform-dlq
|
|
1705
|
+
description: DLQ for failed long-form video text watermark jobs. Messages land here after 2 failed processing attempts (ADR-0007).
|
|
1706
|
+
parameters:
|
|
1707
|
+
env:
|
|
1708
|
+
description: Environment (local, stg, prod)
|
|
1709
|
+
region:
|
|
1710
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1711
|
+
|
|
1712
|
+
longformAudioToVideo:
|
|
1713
|
+
address: gisl-{env}-{region}-ops-audio-to-video-longform
|
|
1714
|
+
description: |
|
|
1715
|
+
SQS queue for long-form audio-to-video jobs (`audio_to_video.audio.long_form`,
|
|
1716
|
+
`planned`; HN-33, [`d5cywEIR`](https://trello.com/c/d5cywEIR)). The API
|
|
1717
|
+
publishes a `LongFormJobMessage` claim-check here directly (NOT via SNS);
|
|
1718
|
+
a terraform-owned launcher reads the spec from S3 (`pointer`) and runs a
|
|
1719
|
+
Fargate task. `max_receive_count = 2` (ADR-0007). On this queue the
|
|
1720
|
+
publisher always sets `operation_type: audio_to_video`,
|
|
1721
|
+
`processing_class: long_form`. Declared contract-first: no publisher emits
|
|
1722
|
+
here until api's long-form routing for `audio_to_video` ships.
|
|
1723
|
+
bindings:
|
|
1724
|
+
sqs:
|
|
1725
|
+
queue:
|
|
1726
|
+
name: gisl-{env}-{region}-ops-audio-to-video-longform
|
|
1727
|
+
fifoQueue: false
|
|
1728
|
+
bindingVersion: '0.2.0'
|
|
1729
|
+
parameters:
|
|
1730
|
+
env:
|
|
1731
|
+
description: Environment (local, stg, prod)
|
|
1732
|
+
region:
|
|
1733
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1734
|
+
messages:
|
|
1735
|
+
longFormJob:
|
|
1736
|
+
$ref: '#/components/messages/LongFormJobMessage'
|
|
1737
|
+
|
|
1738
|
+
longformAudioToVideoDlq:
|
|
1739
|
+
address: gisl-{env}-{region}-ops-audio-to-video-longform-dlq
|
|
1740
|
+
description: DLQ for failed long-form audio-to-video jobs. Messages land here after 2 failed processing attempts (ADR-0007).
|
|
1741
|
+
parameters:
|
|
1742
|
+
env:
|
|
1743
|
+
description: Environment (local, stg, prod)
|
|
1744
|
+
region:
|
|
1745
|
+
description: AWS region abbreviation (euw1, use1, etc.)
|
|
1746
|
+
|
|
1645
1747
|
operations:
|
|
1646
1748
|
# ============================================
|
|
1647
1749
|
# PUBLISH OPERATIONS (API -> SNS)
|
|
@@ -2486,6 +2588,60 @@ operations:
|
|
|
2486
2588
|
messages:
|
|
2487
2589
|
- $ref: '#/channels/longformSplitVideo/messages/longFormJob'
|
|
2488
2590
|
|
|
2591
|
+
publishLongFormVideoWatermark:
|
|
2592
|
+
action: send
|
|
2593
|
+
channel:
|
|
2594
|
+
$ref: '#/channels/longformVideoWatermark'
|
|
2595
|
+
bindings:
|
|
2596
|
+
sqs:
|
|
2597
|
+
queues:
|
|
2598
|
+
- name: gisl-{env}-{region}-ops-video-watermark-longform
|
|
2599
|
+
fifoQueue: false
|
|
2600
|
+
bindingVersion: '0.2.0'
|
|
2601
|
+
summary: Publish a long-form video_watermark claim-check.
|
|
2602
|
+
description: |
|
|
2603
|
+
As `publishLongFormCompressVideo`, for `operation_type = video_watermark`
|
|
2604
|
+
(`video_watermark.video.long_form`). Direct-to-SQS claim-check; no SNS.
|
|
2605
|
+
Contract-first (HN-33): not emitted until api's routing ships.
|
|
2606
|
+
messages:
|
|
2607
|
+
- $ref: '#/channels/longformVideoWatermark/messages/longFormJob'
|
|
2608
|
+
|
|
2609
|
+
publishLongFormVideoTextWatermark:
|
|
2610
|
+
action: send
|
|
2611
|
+
channel:
|
|
2612
|
+
$ref: '#/channels/longformVideoTextWatermark'
|
|
2613
|
+
bindings:
|
|
2614
|
+
sqs:
|
|
2615
|
+
queues:
|
|
2616
|
+
- name: gisl-{env}-{region}-ops-video-text-watermark-longform
|
|
2617
|
+
fifoQueue: false
|
|
2618
|
+
bindingVersion: '0.2.0'
|
|
2619
|
+
summary: Publish a long-form video_text_watermark claim-check.
|
|
2620
|
+
description: |
|
|
2621
|
+
As `publishLongFormCompressVideo`, for `operation_type = video_text_watermark`
|
|
2622
|
+
(`video_text_watermark.video.long_form`). Direct-to-SQS claim-check; no SNS.
|
|
2623
|
+
Contract-first (HN-33): not emitted until api's routing ships.
|
|
2624
|
+
messages:
|
|
2625
|
+
- $ref: '#/channels/longformVideoTextWatermark/messages/longFormJob'
|
|
2626
|
+
|
|
2627
|
+
publishLongFormAudioToVideo:
|
|
2628
|
+
action: send
|
|
2629
|
+
channel:
|
|
2630
|
+
$ref: '#/channels/longformAudioToVideo'
|
|
2631
|
+
bindings:
|
|
2632
|
+
sqs:
|
|
2633
|
+
queues:
|
|
2634
|
+
- name: gisl-{env}-{region}-ops-audio-to-video-longform
|
|
2635
|
+
fifoQueue: false
|
|
2636
|
+
bindingVersion: '0.2.0'
|
|
2637
|
+
summary: Publish a long-form audio_to_video claim-check.
|
|
2638
|
+
description: |
|
|
2639
|
+
As `publishLongFormCompressVideo`, for `operation_type = audio_to_video`
|
|
2640
|
+
(`audio_to_video.audio.long_form`). Direct-to-SQS claim-check; no SNS.
|
|
2641
|
+
Contract-first (HN-33): not emitted until api's routing ships.
|
|
2642
|
+
messages:
|
|
2643
|
+
- $ref: '#/channels/longformAudioToVideo/messages/longFormJob'
|
|
2644
|
+
|
|
2489
2645
|
# ============================================
|
|
2490
2646
|
# LONG-FORM CLAIM-CHECK CONSUMERS (launcher -> Fargate)
|
|
2491
2647
|
# ============================================
|
|
@@ -2549,6 +2705,58 @@ operations:
|
|
|
2549
2705
|
messages:
|
|
2550
2706
|
- $ref: '#/channels/longformSplitVideo/messages/longFormJob'
|
|
2551
2707
|
|
|
2708
|
+
consumeLongFormVideoWatermark:
|
|
2709
|
+
action: receive
|
|
2710
|
+
channel:
|
|
2711
|
+
$ref: '#/channels/longformVideoWatermark'
|
|
2712
|
+
bindings:
|
|
2713
|
+
sqs:
|
|
2714
|
+
queues:
|
|
2715
|
+
- name: gisl-{env}-{region}-ops-video-watermark-longform
|
|
2716
|
+
fifoQueue: false
|
|
2717
|
+
bindingVersion: '0.2.0'
|
|
2718
|
+
summary: Consume a long-form video_watermark claim-check.
|
|
2719
|
+
description: |
|
|
2720
|
+
As `consumeLongFormCompressVideo`, for `operation_type = video_watermark`. The
|
|
2721
|
+
launcher forks on `(operation_type=video_watermark, processing_class=long_form)`.
|
|
2722
|
+
messages:
|
|
2723
|
+
- $ref: '#/channels/longformVideoWatermark/messages/longFormJob'
|
|
2724
|
+
|
|
2725
|
+
consumeLongFormVideoTextWatermark:
|
|
2726
|
+
action: receive
|
|
2727
|
+
channel:
|
|
2728
|
+
$ref: '#/channels/longformVideoTextWatermark'
|
|
2729
|
+
bindings:
|
|
2730
|
+
sqs:
|
|
2731
|
+
queues:
|
|
2732
|
+
- name: gisl-{env}-{region}-ops-video-text-watermark-longform
|
|
2733
|
+
fifoQueue: false
|
|
2734
|
+
bindingVersion: '0.2.0'
|
|
2735
|
+
summary: Consume a long-form video_text_watermark claim-check.
|
|
2736
|
+
description: |
|
|
2737
|
+
As `consumeLongFormCompressVideo`, for `operation_type = video_text_watermark`. The
|
|
2738
|
+
launcher forks on `(operation_type=video_text_watermark, processing_class=long_form)`.
|
|
2739
|
+
messages:
|
|
2740
|
+
- $ref: '#/channels/longformVideoTextWatermark/messages/longFormJob'
|
|
2741
|
+
|
|
2742
|
+
consumeLongFormAudioToVideo:
|
|
2743
|
+
action: receive
|
|
2744
|
+
channel:
|
|
2745
|
+
$ref: '#/channels/longformAudioToVideo'
|
|
2746
|
+
bindings:
|
|
2747
|
+
sqs:
|
|
2748
|
+
queues:
|
|
2749
|
+
- name: gisl-{env}-{region}-ops-audio-to-video-longform
|
|
2750
|
+
fifoQueue: false
|
|
2751
|
+
bindingVersion: '0.2.0'
|
|
2752
|
+
summary: Consume a long-form audio_to_video claim-check.
|
|
2753
|
+
description: |
|
|
2754
|
+
As `consumeLongFormCompressVideo`, for `operation_type = audio_to_video`.
|
|
2755
|
+
The launcher forks on `(operation_type=audio_to_video,
|
|
2756
|
+
processing_class=long_form)`.
|
|
2757
|
+
messages:
|
|
2758
|
+
- $ref: '#/channels/longformAudioToVideo/messages/longFormJob'
|
|
2759
|
+
|
|
2552
2760
|
components:
|
|
2553
2761
|
messages:
|
|
2554
2762
|
# ============================================
|
|
@@ -3918,6 +4126,9 @@ components:
|
|
|
3918
4126
|
compression_terraform. `audio_overlay` long-form
|
|
3919
4127
|
(reserve-name-only, no queue) is NOT yet produced and is therefore
|
|
3920
4128
|
absent from this enum; it gets added when its publisher ships.
|
|
4129
|
+
`video_watermark` / `video_text_watermark` ARE in the enum ahead of
|
|
4130
|
+
their publisher, deliberately (HN-33 contract-first; see
|
|
4131
|
+
`LongFormOperationType`).
|
|
3921
4132
|
|
|
3922
4133
|
**Scope: the API producer's first-publish.** This schema models the
|
|
3923
4134
|
message the API publishes to the long-form queues — the 5 fields above.
|
|
@@ -5865,10 +6076,13 @@ components:
|
|
|
5865
6076
|
description: |
|
|
5866
6077
|
Coarse operation verb for the long-form claim-check job
|
|
5867
6078
|
(`LongFormJobMessage.operation_type`). Deliberately a call-site
|
|
5868
|
-
**subset** of `OperationType` —
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
6079
|
+
**subset** of `OperationType` — the operations that HAVE a long-form
|
|
6080
|
+
route: the API publishes `compress`, `merge` and `split` today, and
|
|
6081
|
+
`video_watermark` / `video_text_watermark` are declared ahead of their
|
|
6082
|
+
publisher (below), and so is `audio_to_video` (d5cywEIR, same HN-33
|
|
6083
|
+
co-land). NOT the full `OperationType` enum (which would
|
|
6084
|
+
over-promise the wire). A new long-form route widens this enum when it
|
|
6085
|
+
is declared.
|
|
5872
6086
|
|
|
5873
6087
|
`split` joined this enum when the long-form video split publisher
|
|
5874
6088
|
shipped ([`rcwvUKhI`](https://trello.com/c/rcwvUKhI), per
|
|
@@ -5879,6 +6093,14 @@ components:
|
|
|
5879
6093
|
`(operation_type=split, processing_class=long_form)` tuple is the
|
|
5880
6094
|
launcher's fork key.
|
|
5881
6095
|
|
|
6096
|
+
`video_watermark` and `video_text_watermark` joined CONTRACT-FIRST
|
|
6097
|
+
([`jOMJOncC`](https://trello.com/c/jOMJOncC), HN-33): their long-form
|
|
6098
|
+
(Fargate) route is declared so terraform, api (publisher) and lambdas
|
|
6099
|
+
(worker) build against one shape. Until api's publisher ships, nothing
|
|
6100
|
+
is published on their queues, and consumers must deploy before the
|
|
6101
|
+
producer emits (producer-first is the publisher's deploy, gated on
|
|
6102
|
+
the launcher and worker being live).
|
|
6103
|
+
|
|
5882
6104
|
Named-schema form lifted from inline at
|
|
5883
6105
|
`LongFormJobMessage.operation_type` per ticket
|
|
5884
6106
|
[`A3DyuYUd`](https://trello.com/c/A3DyuYUd) — generated SDK bindings
|
|
@@ -5888,6 +6110,9 @@ components:
|
|
|
5888
6110
|
- compress
|
|
5889
6111
|
- merge
|
|
5890
6112
|
- split
|
|
6113
|
+
- video_watermark
|
|
6114
|
+
- video_text_watermark
|
|
6115
|
+
- audio_to_video
|
|
5891
6116
|
|
|
5892
6117
|
LongFormProcessingClass:
|
|
5893
6118
|
type: string
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"capabilities_profile": "baseline",
|
|
3
|
-
"capabilities_version":
|
|
3
|
+
"capabilities_version": 244,
|
|
4
4
|
"endpoints": {
|
|
5
5
|
"DELETE /api/auth/account": {
|
|
6
6
|
"auth": "required",
|
|
@@ -745,15 +745,11 @@
|
|
|
745
745
|
"audio_to_video": {
|
|
746
746
|
"availability": "planned",
|
|
747
747
|
"default": false,
|
|
748
|
-
"description": "Produce a video from an audio input plus an OPTIONAL still image\noverlay. Use cases: podcast \u2192 YouTube uploads, audio-only tracks\nthat need a video container for platforms requiring it, branded\naudio releases with a static cover image.\n\n**Role asymmetry.** First role-based operation on the contract\nwith an OPTIONAL role \u2014 REQUIRED `base` (audio source) +\nOPTIONAL `overlay` (still image, 0..1). When `overlay` is\nomitted, the video uses a solid `background_color`. The\nmachine-readable cardinality lives in `per_role_cardinality`\non this schema.\n\n**Input vs output asymmetry.** The single `mime_groups.audio`\nblock keys the INPUT MIME family (the `base` role input is\naudio). The OUTPUT is always video \u2014 `output_format` controls\nthe container; `mime_groups` is NOT the output type. Mirrors\nthe `audio_overlay.video` group pattern (input-keyed).\n\nRe-encode required (audio \u2192 video composition always re-encodes).\nA lower framerate plus still-image tuning keeps file size tiny\nwhen the overlay is a still image (the common case).\n\n`availability: planned` \u2014 withdrawn 2026-09-15. The measured encode cost\n(a per-second rate PLUS A FIXED COST) puts the advertised PT2H at more than\ntwice the 900 s Lambda platform maximum. \u26a0\ufe0f The fixed cost is not a rounding\ndetail: dropping it moves the in-flight boundary by tens of seconds. The\nfigures are in the CHANGELOG entry for 2.203.0, derived and tested from the\ndivergence register (6gdvD3yZ). Workflow-create returns `feature_not_available` (422).\n\n\u26a0\ufe0f An already-accepted workflow is NOT cancelled \u2014 availability is checked at\ncreate \u2014 and it is NOT thereby doomed. \u26d4 DO NOT READ THIS AS \"in-flight work\nfails\": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH\nOUTPUT, which is precisely why the evidence is arithmetic rather than a kill.\nWhat fails is an accepted workflow whose OUTPUT DURATION exceeds the derived ceiling (`evidence.derived.ceiling_s` in the register)\n\u26a0\ufe0f ON THE INPUT THE RATE WAS MEASURED WITH \u2014 a real photographic 1080p STILL\nplus looped real audio \u2014 the point at which the measured rate plus the fixed\ncost reaches the 600 s cap. \u26d4 THE DRIVER IS THE STILL'S RESOLUTION, NOT THE\nDURATION ALONE: a 4K still is
|
|
748
|
+
"description": "Produce a video from an audio input plus an OPTIONAL still image\noverlay. Use cases: podcast \u2192 YouTube uploads, audio-only tracks\nthat need a video container for platforms requiring it, branded\naudio releases with a static cover image.\n\n**Role asymmetry.** First role-based operation on the contract\nwith an OPTIONAL role \u2014 REQUIRED `base` (audio source) +\nOPTIONAL `overlay` (still image, 0..1). When `overlay` is\nomitted, the video uses a solid `background_color`. The\nmachine-readable cardinality lives in `per_role_cardinality`\non this schema.\n\n**Input vs output asymmetry.** The single `mime_groups.audio`\nblock keys the INPUT MIME family (the `base` role input is\naudio). The OUTPUT is always video \u2014 `output_format` controls\nthe container; `mime_groups` is NOT the output type. Mirrors\nthe `audio_overlay.video` group pattern (input-keyed).\n\nRe-encode required (audio \u2192 video composition always re-encodes).\nA lower framerate plus still-image tuning keeps file size tiny\nwhen the overlay is a still image (the common case).\n\n`availability: planned` \u2014 withdrawn 2026-09-15. The measured encode cost\n(a per-second rate PLUS A FIXED COST) puts the advertised PT2H at more than\ntwice the 900 s Lambda platform maximum. \u26a0\ufe0f The fixed cost is not a rounding\ndetail: dropping it moves the in-flight boundary by tens of seconds. The\nfigures are in the CHANGELOG entry for 2.203.0, derived and tested from the\ndivergence register (6gdvD3yZ). Workflow-create returns `feature_not_available` (422).\n\n\u26a0\ufe0f An already-accepted workflow is NOT cancelled \u2014 availability is checked at\ncreate \u2014 and it is NOT thereby doomed. \u26d4 DO NOT READ THIS AS \"in-flight work\nfails\": the 60 s and 120 s cells behind this withdrawal both COMPLETED WITH\nOUTPUT, which is precisely why the evidence is arithmetic rather than a kill.\nWhat fails is an accepted workflow whose OUTPUT DURATION exceeds the derived ceiling (`evidence.derived.ceiling_s` in the register)\n\u26a0\ufe0f ON THE INPUT THE RATE WAS MEASURED WITH \u2014 a real photographic 1080p STILL\nplus looped real audio \u2014 the point at which the measured rate plus the fixed\ncost reaches the SERVED cap (the worker's 600 s times the register's\n`headroom`, kikOfB6G), not the raw cap. \u26d4 THE DRIVER IS THE STILL'S RESOLUTION, NOT THE\nDURATION ALONE: a 4K still is MEASURED materially slower (2026-10-02), and the\nshort_form ceiling below is set from that worst case; this schema places NO\nconstraint on the overlay's resolution. Stills above 4K are unmeasured \u2014\nand what the caller then sees is NOT SETTLED \u2014 see the CHANGELOG entry for\n2.203.0; this contract does not pin a worker's error classification. Measured figures and the conditions for re-listing are in the\nCHANGELOG entry for 2.203.0 \u2014 the only one of the two records that is\nPUBLISHED (`schemas/manifest-divergence-register.yaml` is working material\nfor the drift gate and is not in the npm tarball).\n",
|
|
749
749
|
"input_model": "multi",
|
|
750
750
|
"max_inputs": 2,
|
|
751
751
|
"mime_groups": {
|
|
752
752
|
"audio": {
|
|
753
|
-
"ceiling_basis": {
|
|
754
|
-
"max_input_duration": "unproven"
|
|
755
|
-
},
|
|
756
|
-
"max_input_duration": "PT2H",
|
|
757
753
|
"mimes": [
|
|
758
754
|
"audio/mpeg",
|
|
759
755
|
"audio/aac",
|
|
@@ -806,6 +802,26 @@
|
|
|
806
802
|
"sd_480p"
|
|
807
803
|
]
|
|
808
804
|
}
|
|
805
|
+
},
|
|
806
|
+
"processing_class": {
|
|
807
|
+
"long_form": {
|
|
808
|
+
"availability": "planned",
|
|
809
|
+
"ceiling_basis": {
|
|
810
|
+
"max_input_duration": "unproven"
|
|
811
|
+
},
|
|
812
|
+
"constraints": {
|
|
813
|
+
"max_input_duration": "PT2H"
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
"short_form": {
|
|
817
|
+
"availability": "planned",
|
|
818
|
+
"ceiling_basis": {
|
|
819
|
+
"max_input_duration": "unproven"
|
|
820
|
+
},
|
|
821
|
+
"constraints": {
|
|
822
|
+
"max_input_duration": "PT11M35S"
|
|
823
|
+
}
|
|
824
|
+
}
|
|
809
825
|
}
|
|
810
826
|
}
|
|
811
827
|
},
|
|
@@ -1292,7 +1308,7 @@
|
|
|
1292
1308
|
"type": "integer"
|
|
1293
1309
|
},
|
|
1294
1310
|
"width": {
|
|
1295
|
-
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions.",
|
|
1311
|
+
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
|
|
1296
1312
|
"honored_on": [
|
|
1297
1313
|
"same_format",
|
|
1298
1314
|
"format_change"
|
|
@@ -2020,7 +2036,7 @@
|
|
|
2020
2036
|
"type": "integer"
|
|
2021
2037
|
},
|
|
2022
2038
|
"width": {
|
|
2023
|
-
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions.",
|
|
2039
|
+
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image as part of the operation (one transformed output, replacing the source). Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
|
|
2024
2040
|
"honored_on": [
|
|
2025
2041
|
"same_format",
|
|
2026
2042
|
"format_change"
|
|
@@ -2439,7 +2455,7 @@
|
|
|
2439
2455
|
"type": "integer"
|
|
2440
2456
|
},
|
|
2441
2457
|
"width": {
|
|
2442
|
-
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image before encoding (one transformed output). NOT honored for SVG input. Optional; omit to keep the source dimensions.",
|
|
2458
|
+
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Resizes the image before encoding (one transformed output). NOT honored for SVG input. Optional; omit to keep the source dimensions. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
|
|
2443
2459
|
"honored_on": [
|
|
2444
2460
|
"format_change"
|
|
2445
2461
|
],
|
|
@@ -2545,7 +2561,7 @@
|
|
|
2545
2561
|
"type": "integer"
|
|
2546
2562
|
},
|
|
2547
2563
|
"output_format": {
|
|
2548
|
-
"description": "Target format.
|
|
2564
|
+
"description": "Target format. `jpeg` / `png` / `avif` / `tiff` take the first frame. `gif` and `webp` keep an animated GIF's animation (a static GIF stays a single frame). `mp4` / `webm` are the GIF\u2192VIDEO transcode targets \u2014 the animated GIF becomes a muted, play-once video (`mp4` = H.264, plays everywhere; `webm` = VP9, smaller), typically far smaller than the original GIF. GIFs are silent (no audio stream); the GIF infinite-loop becomes a playback attribute (`<video loop>`) the player sets, NOT baked into the file.",
|
|
2549
2565
|
"required": true,
|
|
2550
2566
|
"type": "enum",
|
|
2551
2567
|
"values": [
|
|
@@ -2587,7 +2603,7 @@
|
|
|
2587
2603
|
"tiff"
|
|
2588
2604
|
]
|
|
2589
2605
|
},
|
|
2590
|
-
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Scoped to the STILL-IMAGE targets only \u2014 resizing while transcoding to the mp4/webm video targets is not yet supported, so width/height are not accepted for the video targets.",
|
|
2606
|
+
"description": "Target width in pixels (1-16384; width \u00d7 height must not exceed the group's maximum output area). Scoped to the STILL-IMAGE targets only \u2014 resizing while transcoding to the mp4/webm video targets is not yet supported, so width/height are not accepted for the video targets. Not supported for an ANIMATED image whose output keeps the animation (an animated GIF or WebP converted to GIF or WebP). Where the server can tell the input is animated it refuses at create with 422 `feature_not_available`, feature `operation.image.resize.animated`; where it cannot tell, the job is accepted and fails with `invalid_options` \u2014 except a multi-frame GIF with no loop extension, which is currently treated as static: it is resized and comes out as its first frame only. Resize a static image, or choose a still output format.",
|
|
2591
2607
|
"honored_on": [
|
|
2592
2608
|
"format_change"
|
|
2593
2609
|
],
|
|
@@ -4088,7 +4104,7 @@
|
|
|
4088
4104
|
"split": {
|
|
4089
4105
|
"availability": "beta",
|
|
4090
4106
|
"default": false,
|
|
4091
|
-
"description": "Fan one input file into N outputs across GIF, PDF, audio, and\nvideo MIME families. Single-input \u2014 one input file per job, fanned\ninto N outputs per the per-mime-group catalog. Mirrors the\n`merge` / `convert` catalog-split-by-mime-group pattern.\n\n**Three shared modes** (audio + video; the mode discriminator\ngates which option applies per the `depends_on` rules in this\nschema):\n- `interval`: split every N numeric-seconds.\n- `count`: split into N equal-duration pieces (integer 2..=200).\n- `cut_points`: explicit cut points in numeric-seconds (strictly\n increasing, no duplicates, each > 0 and < probed duration).\n\n**Plus an audio-only `silence` mode** (`beta`, gated by the\n`silence_mode_audio` feature): cut at detected silence gaps via\nserver-side silence detection. Video stays three-mode.\n\n**GIF + PDF use range-based selection** instead of three modes:\n- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`\n enum {png,webp,jpg}.\n- PDF (`document_pdf`): `page_range` OR `page_groups` (mutually\n exclusive per `depends_on`).\n\n**Wire format**: numeric seconds (floats allowed for sub-second\nprecision). NOT ISO 8601 duration strings. Matches common\nvideo-tooling conventions.\n\n**200-output hard cap** (`OperationResult.outputs[].maxItems:\n200`). Preflight rejects\nrequests exceeding this BEFORE work as `invalid_options` (422).\nCap math by mode:\n- `interval`: `ceil(probed_duration / interval) <= 200`\n- `count`: enforced by the option's `min: 2 max: 200` range\n- `cut_points`: `cut_points.len() + 1 <= 200`\n- `silence` (audio): resolved segment count (detected gaps + 1)\n `<= 200`; preflight rejects as `invalid_options` (422)\n- PDF: resolved page count after expansion `<= 200`\n (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))\n- GIF: resolved frame count after expansion `<= 200`\n\n**Output naming (S3 object key)**: the object-key leaf is 3-digit\nzero-padded \u2014 `output-001` .. `output-200` (ADR-0014 \u00a7D9). This binds the\n**S3 object key**, NOT the user-facing download filename \u2014 the API\nsynthesises that separately (see `OperationDownload.filename` in\n`openapi/api.yaml`). Only the **3-digit zero-padding** follows the convert\nPDF\u2192N precedent \u2014 convert keys are `page-NNN.ext`, split keys are\n`output-NNN.ext`.\n\n**Output envelope binding**:\n- `image_gif`: `PositionIndexed` (frame stream-position 0-based\n ordinal)\n- `document_pdf`: `PageIndexed` (1-based literal source page number).\n With **`mode: page_range`** each output is one page, so `page_index` is\n that page. With **`mode: page_groups`** each output is a group of\n consecutive pages and `page_index` is the group's FIRST source page;\n the group covers `page_index` .. `page_index + page_groups - 1`, and\n the last group ends at the document's last page (so it may be\n shorter). Verified in the worker, not assumed: `compression_lambdas`\n `crates/split/src/processor.rs` passes each range's START page as the\n index, over ranges from `resolve_page_groups` (`pdf_range.rs`, tests\n `page_groups_remainder` / `page_groups_size_larger_than_total`).\n Specified 2026-09-25 (card `jGTLrpzK`)
|
|
4107
|
+
"description": "Fan one input file into N outputs across GIF, PDF, audio, and\nvideo MIME families. Single-input \u2014 one input file per job, fanned\ninto N outputs per the per-mime-group catalog. Mirrors the\n`merge` / `convert` catalog-split-by-mime-group pattern.\n\n**Three shared modes** (audio + video; the mode discriminator\ngates which option applies per the `depends_on` rules in this\nschema):\n- `interval`: split every N numeric-seconds.\n- `count`: split into N equal-duration pieces (integer 2..=200).\n- `cut_points`: explicit cut points in numeric-seconds (strictly\n increasing, no duplicates, each > 0 and < probed duration).\n\n**Plus an audio-only `silence` mode** (`beta`, gated by the\n`silence_mode_audio` feature): cut at detected silence gaps via\nserver-side silence detection. Video stays three-mode.\n\n**GIF + PDF use range-based selection** instead of three modes:\n- GIF (`image_gif`): `frame_range` REQUIRED + `output_format`\n enum {png,webp,jpg}.\n- PDF (`document_pdf`): `page_range` OR `page_groups` (mutually\n exclusive per `depends_on`).\n\n**Wire format**: numeric seconds (floats allowed for sub-second\nprecision). NOT ISO 8601 duration strings. Matches common\nvideo-tooling conventions.\n\n**200-output hard cap** (`OperationResult.outputs[].maxItems:\n200`). Preflight rejects\nrequests exceeding this BEFORE work as `invalid_options` (422).\nCap math by mode:\n- `interval`: `ceil(probed_duration / interval) <= 200`\n- `count`: enforced by the option's `min: 2 max: 200` range\n- `cut_points`: `cut_points.len() + 1 <= 200`\n- `silence` (audio): resolved segment count (detected gaps + 1)\n `<= 200`; preflight rejects as `invalid_options` (422)\n- PDF: resolved page count after expansion `<= 200`\n (cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))\n- GIF: resolved frame count after expansion `<= 200`\n\n**Output naming (S3 object key)**: the object-key leaf is 3-digit\nzero-padded \u2014 `output-001` .. `output-200` (ADR-0014 \u00a7D9). This binds the\n**S3 object key**, NOT the user-facing download filename \u2014 the API\nsynthesises that separately (see `OperationDownload.filename` in\n`openapi/api.yaml`). Only the **3-digit zero-padding** follows the convert\nPDF\u2192N precedent \u2014 convert keys are `page-NNN.ext`, split keys are\n`output-NNN.ext`.\n\n**Output envelope binding**:\n- `image_gif`: `PositionIndexed` (frame stream-position 0-based\n ordinal)\n- `document_pdf`: `PageIndexed` (1-based literal source page number).\n With **`mode: page_range`** each output is one page, so `page_index` is\n that page. With **`mode: page_groups`** each output is a group of\n consecutive pages and `page_index` is the group's FIRST source page;\n the group covers `page_index` .. `page_index + page_groups - 1`, and\n the last group ends at the document's last page (so it may be\n shorter). Verified in the worker, not assumed: `compression_lambdas`\n `crates/split/src/processor.rs` passes each range's START page as the\n index, over ranges from `resolve_page_groups` (`pdf_range.rs`, tests\n `page_groups_remainder` / `page_groups_size_larger_than_total`).\n Specified 2026-09-25 and `beta` since 2026-10-01 (card `jGTLrpzK`), on\n a staging run of both modes; `stable` needs a production record.\n- `audio`: `PositionIndexed` (cut stream-position ordinal)\n- `video`: `PositionIndexed` (cut stream-position ordinal)\n\n**`precision` flag** (audio + video only): `fast` (default) =\npacket-boundary approximate cuts; `exact` = re-encode-aligned\nprecise cuts (`planned` \u2014 the API refuses it at create until the\nre-encode path is priced). Mime_group scoping is the gate \u2014 precision does\nNOT apply to GIF or PDF (frame extraction is exact and PDF page\nselection is exact by definition).\n\n**Long-form video** routes to a separate long-form processing\npath (same `split` OperationType; routing via `processing_class`).\nNo schema-side discriminator beyond MIME detection +\n`processing_class`.\n\n`availability: beta` for the `audio` and `video` mime_groups\n(shape-stable + opt-in, MUST NOT 422). Video activates **both\nclasses**: `video.processing_class.short_form` AND `long_form` are\n`beta`. The `document_pdf` mime_group is `beta` too (2026-10-01), and\n`image_gif` is `stable` (GIF to frames, 2026-06-21). A value or class\nstill tagged `planned` (e.g. `precision: exact`) is refused with\n`feature_not_available` (422).\n",
|
|
4092
4108
|
"features": {
|
|
4093
4109
|
"silence_mode_audio": {
|
|
4094
4110
|
"availability": "beta",
|
|
@@ -4205,7 +4221,11 @@
|
|
|
4205
4221
|
}
|
|
4206
4222
|
},
|
|
4207
4223
|
"document_pdf": {
|
|
4208
|
-
"availability": "
|
|
4224
|
+
"availability": "beta",
|
|
4225
|
+
"ceiling_basis": {
|
|
4226
|
+
"max_input_size_bytes": "unproven"
|
|
4227
|
+
},
|
|
4228
|
+
"max_input_size_bytes": 2147483648,
|
|
4209
4229
|
"mimes": [
|
|
4210
4230
|
"application/pdf"
|
|
4211
4231
|
],
|
|
@@ -5352,29 +5372,29 @@
|
|
|
5352
5372
|
"le_720p": {
|
|
5353
5373
|
"basis": "measured",
|
|
5354
5374
|
"constraints": {
|
|
5355
|
-
"max_input_duration": "
|
|
5375
|
+
"max_input_duration": "PT3M15S"
|
|
5356
5376
|
},
|
|
5357
5377
|
"derivation": {
|
|
5358
|
-
"cap_s":
|
|
5359
|
-
"intercept_s":
|
|
5360
|
-
"slope_s_per_s": 2.
|
|
5378
|
+
"cap_s": 504,
|
|
5379
|
+
"intercept_s": 4.8,
|
|
5380
|
+
"slope_s_per_s": 2.551
|
|
5361
5381
|
}
|
|
5362
5382
|
},
|
|
5363
5383
|
"p1080": {
|
|
5364
5384
|
"basis": "measured",
|
|
5365
5385
|
"constraints": {
|
|
5366
|
-
"max_input_duration": "
|
|
5386
|
+
"max_input_duration": "PT1M28S"
|
|
5367
5387
|
},
|
|
5368
5388
|
"derivation": {
|
|
5369
|
-
"cap_s":
|
|
5370
|
-
"intercept_s": -
|
|
5371
|
-
"slope_s_per_s":
|
|
5389
|
+
"cap_s": 504,
|
|
5390
|
+
"intercept_s": -1.9,
|
|
5391
|
+
"slope_s_per_s": 5.748
|
|
5372
5392
|
}
|
|
5373
5393
|
},
|
|
5374
5394
|
"unknown": {
|
|
5375
5395
|
"basis": "ruled",
|
|
5376
5396
|
"constraints": {
|
|
5377
|
-
"max_input_duration": "
|
|
5397
|
+
"max_input_duration": "PT3M15S"
|
|
5378
5398
|
}
|
|
5379
5399
|
}
|
|
5380
5400
|
}
|
|
@@ -5479,6 +5499,39 @@
|
|
|
5479
5499
|
"max_input_duration": "PT5M",
|
|
5480
5500
|
"max_input_size_bytes": 524288000,
|
|
5481
5501
|
"max_output_size_bytes": 524288000
|
|
5502
|
+
},
|
|
5503
|
+
"resolution_bands": {
|
|
5504
|
+
"gt_1080p": {
|
|
5505
|
+
"basis": "not_served"
|
|
5506
|
+
},
|
|
5507
|
+
"le_720p": {
|
|
5508
|
+
"basis": "measured",
|
|
5509
|
+
"constraints": {
|
|
5510
|
+
"max_input_duration": "PT3M36S"
|
|
5511
|
+
},
|
|
5512
|
+
"derivation": {
|
|
5513
|
+
"cap_s": 504,
|
|
5514
|
+
"intercept_s": -0.9,
|
|
5515
|
+
"slope_s_per_s": 2.336
|
|
5516
|
+
}
|
|
5517
|
+
},
|
|
5518
|
+
"p1080": {
|
|
5519
|
+
"basis": "measured",
|
|
5520
|
+
"constraints": {
|
|
5521
|
+
"max_input_duration": "PT1M35S"
|
|
5522
|
+
},
|
|
5523
|
+
"derivation": {
|
|
5524
|
+
"cap_s": 504,
|
|
5525
|
+
"intercept_s": 1.2,
|
|
5526
|
+
"slope_s_per_s": 5.262
|
|
5527
|
+
}
|
|
5528
|
+
},
|
|
5529
|
+
"unknown": {
|
|
5530
|
+
"basis": "ruled",
|
|
5531
|
+
"constraints": {
|
|
5532
|
+
"max_input_duration": "PT3M36S"
|
|
5533
|
+
}
|
|
5534
|
+
}
|
|
5482
5535
|
}
|
|
5483
5536
|
}
|
|
5484
5537
|
}
|
|
@@ -5498,7 +5551,7 @@
|
|
|
5498
5551
|
"sole_op": true
|
|
5499
5552
|
}
|
|
5500
5553
|
},
|
|
5501
|
-
"schema_version": "2.
|
|
5554
|
+
"schema_version": "2.223.0",
|
|
5502
5555
|
"source_commit": null,
|
|
5503
5556
|
"user_tier": null,
|
|
5504
5557
|
"workflow_features": {
|