@giveitsmaller/contracts 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asyncapi/events.yaml +548 -139
- package/availability/availability.json +59 -22
- package/dist/asyncapi/LongFormJobMessage.d.ts +11 -0
- package/dist/asyncapi/LongFormJobMessage.js +1 -0
- package/dist/asyncapi/LongFormOperationType.d.ts +5 -0
- package/dist/asyncapi/LongFormOperationType.js +6 -0
- package/dist/asyncapi/LongFormProcessingClass.d.ts +4 -0
- package/dist/asyncapi/LongFormProcessingClass.js +5 -0
- package/dist/asyncapi/SourceEntry.d.ts +2 -0
- package/dist/asyncapi/index.d.ts +3 -0
- package/dist/asyncapi/index.js +2 -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 +9 -6
- 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/AvailabilityValue.d.ts +2 -2
- package/dist/openapi/models/AvailabilityValue.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/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/CreateExternalImport403Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +7 -3
- package/dist/openapi/models/CreateExternalImport422Response.js +18 -22
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +11 -3
- package/dist/openapi/models/CreateWorkflow422Response.js +28 -36
- package/dist/openapi/models/CreditTransaction.d.ts +2 -2
- package/dist/openapi/models/CreditTransaction.js +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
- package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageResponse.js +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
- package/dist/openapi/models/Delivery.d.ts +16 -3
- 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/EndpointProjection.d.ts +2 -2
- package/dist/openapi/models/EndpointProjection.js +2 -2
- package/dist/openapi/models/ErrorEnvelope.d.ts +9 -6
- package/dist/openapi/models/ErrorEnvelope.js +2 -2
- package/dist/openapi/models/EstimateQuality.d.ts +2 -2
- package/dist/openapi/models/EstimateQuality.js +2 -2
- package/dist/openapi/models/EstimateRange.d.ts +2 -2
- package/dist/openapi/models/EstimateRange.js +2 -2
- package/dist/openapi/models/ExternalDestination.d.ts +2 -2
- package/dist/openapi/models/ExternalDestination.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
- package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
- package/dist/openapi/models/ExternalImportRequest.js +2 -2
- package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
- package/dist/openapi/models/ExternalImportToken.js +2 -2
- package/dist/openapi/models/ExternalSource.d.ts +2 -2
- package/dist/openapi/models/ExternalSource.js +2 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +15 -13
- package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +9 -6
- 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/JobDefinition.d.ts +9 -6
- 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/JobOutputSource.d.ts +2 -2
- package/dist/openapi/models/JobOutputSource.js +2 -2
- package/dist/openapi/models/JobResponse.d.ts +24 -2
- package/dist/openapi/models/JobResponse.js +5 -2
- package/dist/openapi/models/JobStatus.d.ts +2 -2
- package/dist/openapi/models/JobStatus.js +2 -2
- package/dist/openapi/models/JobType.d.ts +2 -2
- package/dist/openapi/models/JobType.js +2 -2
- package/dist/openapi/models/LivenessResponse.d.ts +2 -2
- package/dist/openapi/models/LivenessResponse.js +2 -2
- package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
- package/dist/openapi/models/LoginUser200Response.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
- package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
- package/dist/openapi/models/LoginUserRequest.js +2 -2
- package/dist/openapi/models/LogoutUser200Response.d.ts +2 -2
- package/dist/openapi/models/LogoutUser200Response.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 +2 -2
- package/dist/openapi/models/MimeGroupSchema.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/OperationDefinition.d.ts +2 -2
- package/dist/openapi/models/OperationDefinition.js +2 -2
- package/dist/openapi/models/OperationDownload.d.ts +2 -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/OperationResponse.d.ts +2 -2
- package/dist/openapi/models/OperationResponse.js +2 -2
- package/dist/openapi/models/OperationResult.d.ts +2 -2
- package/dist/openapi/models/OperationResult.js +2 -2
- package/dist/openapi/models/OperationResultMetrics.d.ts +21 -2
- package/dist/openapi/models/OperationResultMetrics.js +7 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +2 -2
- 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 +15 -13
- package/dist/openapi/models/OperationType.js +15 -13
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +9 -2
- package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +55 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +42 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +40 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +45 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +45 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +43 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +33 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +42 -0
- package/dist/openapi/models/OptionSchema.d.ts +22 -2
- package/dist/openapi/models/OptionSchema.js +4 -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 +16 -12
- package/dist/openapi/models/ProbePendingResponse.js +2 -2
- package/dist/openapi/models/ProcessingClass.d.ts +2 -2
- package/dist/openapi/models/ProcessingClass.js +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +15 -10
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
- package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassHint.js +2 -2
- package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassReason.js +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
- package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlan.js +2 -2
- package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlanJob.js +2 -2
- package/dist/openapi/models/ReEncodeDecision.d.ts +38 -0
- package/dist/openapi/models/ReEncodeDecision.js +56 -0
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
- package/dist/openapi/models/ResponseEnvelope.js +2 -2
- package/dist/openapi/models/RetryResponse.d.ts +2 -2
- package/dist/openapi/models/RetryResponse.js +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
- package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
- package/dist/openapi/models/SseCompletionBase.js +2 -2
- package/dist/openapi/models/SseEventType.d.ts +2 -2
- package/dist/openapi/models/SseEventType.js +2 -2
- package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
- package/dist/openapi/models/SseJobCompletedData.js +2 -2
- package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
- package/dist/openapi/models/SseJobFailedData.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +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 +2 -2
- package/dist/openapi/models/SseOperationFailedData.js +2 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +4 -3
- package/dist/openapi/models/SseOperationProgressData.js +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
- package/dist/openapi/models/TierRestrictionKind.js +2 -2
- package/dist/openapi/models/TierRestrictionResponse.d.ts +9 -6
- package/dist/openapi/models/TierRestrictionResponse.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 +9 -6
- 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 +16 -5
- package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
- package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
- package/dist/openapi/models/UploadProbeResponse.js +2 -2
- package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
- package/dist/openapi/models/UploadProbeStatus.js +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadResponse.d.ts +2 -2
- package/dist/openapi/models/UploadResponse.js +2 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +9 -6
- 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 +33 -3
- package/dist/openapi/models/ValidationErrorEnvelope.js +12 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
- package/dist/openapi/models/WarningType.d.ts +2 -2
- package/dist/openapi/models/WarningType.js +2 -2
- package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
- package/dist/openapi/models/WebhookOperationContext.js +2 -2
- package/dist/openapi/models/WebhookPayload.d.ts +2 -2
- package/dist/openapi/models/WebhookPayload.js +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +2 -2
- 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/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 +9 -6
- package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
- package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
- package/dist/openapi/models/WorkflowProcessing.js +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSource.d.ts +2 -2
- package/dist/openapi/models/WorkflowSource.js +2 -2
- package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatus.js +2 -2
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +2 -2
- 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/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 +5 -0
- package/dist/openapi/models/index.js +5 -0
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +2 -2
- package/dist/operations/audio_to_video.metadata.js +1 -1
- package/dist/operations/merge.metadata.js +0 -3
- package/dist/operations/split.metadata.js +5 -1
- package/dist/operations/video_watermark.metadata.js +2 -2
- package/openapi/api.yaml +415 -98
- package/operations/schemas/audio_to_video.yaml +6 -4
- package/operations/schemas/custom_luma.yaml +3 -4
- package/operations/schemas/merge.yaml +20 -16
- package/operations/schemas/split.yaml +11 -4
- package/operations/schemas/video_watermark.yaml +13 -5
- package/package.json +1 -1
package/openapi/api.yaml
CHANGED
|
@@ -42,13 +42,27 @@ info:
|
|
|
42
42
|
`message_key`. Machine-readable fields (`error`, enum values, status
|
|
43
43
|
codes) stay canonical English.
|
|
44
44
|
|
|
45
|
+
- **Currently committed locales:** `en-GB` only (per ticket
|
|
46
|
+
[`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier
|
|
47
|
+
shape (`Accept-Language` + `Content-Language` + `Vary` headers +
|
|
48
|
+
`locale` envelope field + `message_key` + `message_params`) is
|
|
49
|
+
stable and exercised; the **catalog** of translated `message`
|
|
50
|
+
strings is en-GB-only at runtime today. Additional locales (e.g.
|
|
51
|
+
`pt-PT`) will be advertised by name when their catalogs ship —
|
|
52
|
+
the request/response carrier shape does NOT change when a new
|
|
53
|
+
locale lands. Treat unrequested locales as "machine-code +
|
|
54
|
+
`message_key` path is committed; localised `message` prose is
|
|
55
|
+
not" until this prose enumerates them by name.
|
|
45
56
|
- **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value
|
|
46
57
|
negotiation supported). The server selects the best-match locale
|
|
47
|
-
from its supported list; falls back to `en-GB` when no match
|
|
58
|
+
from its supported list; falls back to `en-GB` when no match —
|
|
59
|
+
which, until additional catalogs land, is every non-`en-GB`
|
|
60
|
+
`Accept-Language`.
|
|
48
61
|
- **Response:** `Content-Language: <locale>` echo on every localised
|
|
49
62
|
response; `Vary: Accept-Language` on every response (CDN/cache
|
|
50
63
|
correctness — different `Accept-Language` requests produce
|
|
51
|
-
different responses).
|
|
64
|
+
different responses). `Vary` is emitted unconditionally so the
|
|
65
|
+
header contract does not flip when a second locale ships.
|
|
52
66
|
- **Fallback locale:** `en-GB` (also the canonical locale for
|
|
53
67
|
`message_key` translations and English `message` prose).
|
|
54
68
|
- **SDK guidance:** switch on `error` (machine code) for typed
|
|
@@ -75,7 +89,7 @@ info:
|
|
|
75
89
|
of truth instead of hardcoding magic numbers. A runtime
|
|
76
90
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
77
91
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
78
|
-
version: 2.
|
|
92
|
+
version: 2.31.0
|
|
79
93
|
contact:
|
|
80
94
|
name: API Support
|
|
81
95
|
|
|
@@ -1132,10 +1146,12 @@ paths:
|
|
|
1132
1146
|
discriminated union with 4 leaves: `upload` /
|
|
1133
1147
|
`external_import` / `connection` / `job_output`).
|
|
1134
1148
|
- **Multi-input jobs** (merge, archive, image_watermark,
|
|
1135
|
-
custom_luma, audio_overlay):
|
|
1149
|
+
custom_luma, audio_overlay, audio_to_video, video_watermark):
|
|
1150
|
+
provide `inputs[]` with
|
|
1136
1151
|
`JobInputV2` entries. Each entry has its own `source`
|
|
1137
1152
|
(same `WorkflowSource` union), plus optional `role`
|
|
1138
|
-
(image_watermark, custom_luma, audio_overlay
|
|
1153
|
+
(image_watermark, custom_luma, audio_overlay, audio_to_video,
|
|
1154
|
+
video_watermark) and
|
|
1139
1155
|
`per_input_options`.
|
|
1140
1156
|
|
|
1141
1157
|
Exactly one of `source` or `inputs` is required per job.
|
|
@@ -1170,8 +1186,9 @@ paths:
|
|
|
1170
1186
|
|
|
1171
1187
|
**Multi-input constraint:** multi-input jobs (`inputs[]`) must
|
|
1172
1188
|
have exactly one operation, which must be a multi-input type
|
|
1173
|
-
(`merge`, `archive`, `image_watermark`, `custom_luma`,
|
|
1174
|
-
`audio_overlay`).
|
|
1189
|
+
(`merge`, `archive`, `image_watermark`, `custom_luma`,
|
|
1190
|
+
`audio_overlay`, `audio_to_video`, or `video_watermark`).
|
|
1191
|
+
Chaining after a multi-input operation is
|
|
1175
1192
|
not valid — create a downstream `job_output`-sourced job
|
|
1176
1193
|
instead.
|
|
1177
1194
|
|
|
@@ -1379,11 +1396,59 @@ paths:
|
|
|
1379
1396
|
max_parallel_long_form_jobs: 2
|
|
1380
1397
|
warnings: []
|
|
1381
1398
|
'400':
|
|
1382
|
-
description:
|
|
1399
|
+
description: |
|
|
1400
|
+
Bad request — malformed request body, or a workflow-DAG
|
|
1401
|
+
structural violation caught before semantic validation. The
|
|
1402
|
+
`ErrorEnvelope.error` field carries a specific machine code (per
|
|
1403
|
+
[`g8PPkbNu`](https://trello.com/c/g8PPkbNu) — narrower
|
|
1404
|
+
DAG-validation codes; HTTP statuses unchanged, only the code
|
|
1405
|
+
narrows). Conformance-safe: `error` is a free string (no enum).
|
|
1406
|
+
- `WORKFLOW_EDGE_REFERENCES_UNKNOWN_JOB` — a `workflow_edges`
|
|
1407
|
+
entry, a job-level `source`, or an `inputs[].source` references
|
|
1408
|
+
a job `ref`/`id` not present in the request (one code across
|
|
1409
|
+
all unknown-job-reference sites).
|
|
1410
|
+
- `CYCLIC_JOB_OUTPUT_SOURCE_GRAPH` — an implicit cycle in the
|
|
1411
|
+
`job_output` source graph, detected during effective-input-MIME
|
|
1412
|
+
resolution (distinct from explicit `workflow_edges` cycles,
|
|
1413
|
+
which are 422 `CYCLIC_WORKFLOW_EDGES`).
|
|
1414
|
+
- `RESERVED_JOB_ID_PATTERN` — a user-supplied job `id` matches the
|
|
1415
|
+
reserved `^job_\d+$` pattern **and is the SOLE validation
|
|
1416
|
+
failure**; mixed-violation requests keep the aggregated generic
|
|
1417
|
+
`BAD_REQUEST`.
|
|
1418
|
+
- `BAD_REQUEST` — malformed JSON / generic body validation, or any
|
|
1419
|
+
mixed/aggregated violation set.
|
|
1383
1420
|
content:
|
|
1384
1421
|
application/json:
|
|
1385
1422
|
schema:
|
|
1386
1423
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
1424
|
+
examples:
|
|
1425
|
+
edge_references_unknown_job:
|
|
1426
|
+
summary: A workflow reference points at a job that does not exist
|
|
1427
|
+
value:
|
|
1428
|
+
success: false
|
|
1429
|
+
error: "WORKFLOW_EDGE_REFERENCES_UNKNOWN_JOB"
|
|
1430
|
+
message: "A workflow reference points at a job that does not exist."
|
|
1431
|
+
message_key: "error.workflow_edge_references_unknown_job"
|
|
1432
|
+
reserved_job_id_pattern:
|
|
1433
|
+
summary: Sole violation — a job id uses the reserved pattern
|
|
1434
|
+
value:
|
|
1435
|
+
success: false
|
|
1436
|
+
error: "RESERVED_JOB_ID_PATTERN"
|
|
1437
|
+
message: "Job id must not use the reserved pattern (job_<number>)."
|
|
1438
|
+
message_key: "error.reserved_job_id_pattern"
|
|
1439
|
+
cyclic_job_output_source_graph:
|
|
1440
|
+
summary: Implicit cycle in the job_output source graph
|
|
1441
|
+
value:
|
|
1442
|
+
success: false
|
|
1443
|
+
error: "CYCLIC_JOB_OUTPUT_SOURCE_GRAPH"
|
|
1444
|
+
message: "Job output sources form a cycle."
|
|
1445
|
+
message_key: "error.cyclic_job_output_source_graph"
|
|
1446
|
+
bad_request_malformed:
|
|
1447
|
+
summary: Malformed JSON / generic or mixed-violation body
|
|
1448
|
+
value:
|
|
1449
|
+
success: false
|
|
1450
|
+
error: "BAD_REQUEST"
|
|
1451
|
+
message: "Invalid workflow request"
|
|
1387
1452
|
'403':
|
|
1388
1453
|
description: |
|
|
1389
1454
|
Forbidden — tier-quota or feature-tier restriction. Discriminated
|
|
@@ -1482,10 +1547,19 @@ paths:
|
|
|
1482
1547
|
Semantically invalid request. One of:
|
|
1483
1548
|
|
|
1484
1549
|
- Generic validation error (unknown operation type, invalid
|
|
1485
|
-
option combinations,
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1550
|
+
option combinations, multi-input job with multiple
|
|
1551
|
+
operations) — returned as `ValidationErrorEnvelope`
|
|
1552
|
+
(`error_type: "validation_error"`, per ADR-0018).
|
|
1553
|
+
- Cyclic explicit `workflow_edges` (a cycle or self-edge in the
|
|
1554
|
+
edge DAG) — returned as a `ValidationErrorEnvelope` with
|
|
1555
|
+
`error_type: "validation_error"`, `error:
|
|
1556
|
+
"CYCLIC_WORKFLOW_EDGES"`, `message_key:
|
|
1557
|
+
"error.cyclic_workflow_edges"`, and a `details[0].field =
|
|
1558
|
+
"workflow_edges"` entry (per
|
|
1559
|
+
[`g8PPkbNu`](https://trello.com/c/g8PPkbNu)). Implicit
|
|
1560
|
+
`job_output` source-graph cycles and unknown-job references are
|
|
1561
|
+
narrower **400** codes (`CYCLIC_JOB_OUTPUT_SOURCE_GRAPH` /
|
|
1562
|
+
`WORKFLOW_EDGE_REFERENCES_UNKNOWN_JOB`) — see the 400 response.
|
|
1489
1563
|
- Feature-availability violation (workflow references one or
|
|
1490
1564
|
more `planned` / `experimental` / non-enabled-`beta`
|
|
1491
1565
|
features) — returned as `FeatureNotAvailableResponse`
|
|
@@ -1523,29 +1597,34 @@ paths:
|
|
|
1523
1597
|
or `always`. The compatibility-probe algorithm is
|
|
1524
1598
|
server-side and deliberately opaque per plan v5 §F8.2.
|
|
1525
1599
|
|
|
1526
|
-
|
|
1527
|
-
(
|
|
1528
|
-
`
|
|
1529
|
-
|
|
1530
|
-
`
|
|
1531
|
-
`
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
`
|
|
1538
|
-
|
|
1539
|
-
`
|
|
1540
|
-
|
|
1541
|
-
`
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1600
|
+
**Branch dispatch via the `error_type` discriminator** (per
|
|
1601
|
+
[ADR-0018](../docs/decisions/0018-universal-422-error-type-discriminator.md)).
|
|
1602
|
+
All four branches carry a required `error_type` enum, so the
|
|
1603
|
+
`oneOf` declares an explicit `discriminator`
|
|
1604
|
+
(`propertyName: error_type`):
|
|
1605
|
+
- `validation_error` → `ValidationErrorEnvelope` (carries
|
|
1606
|
+
`details[]`; the specific failure is in the `error` machine
|
|
1607
|
+
code — `INVALID_OPTIONS`, `REQUIRES_REENCODE`,
|
|
1608
|
+
`CYCLIC_WORKFLOW_EDGES`, …). The `REQUIRES_REENCODE` flavour
|
|
1609
|
+
(per I16-CONS) reuses this same envelope/`error_type` and is
|
|
1610
|
+
distinguished only by its `error` code.
|
|
1611
|
+
- `feature_not_available` → `FeatureNotAvailableResponse`
|
|
1612
|
+
(`violations[]`).
|
|
1613
|
+
- `processing_class_exceeds_band` →
|
|
1614
|
+
`ProcessingClassExceedsBandResponse` (`violations[]`).
|
|
1615
|
+
- `probe_pending` → `ProbePendingResponse` (`job_ref`, no
|
|
1616
|
+
`violations[]`/`details[]`), emitted when the probe-pending
|
|
1617
|
+
gate is on and a job's upload has not yet been probed.
|
|
1618
|
+
|
|
1619
|
+
The prior 422 shape is otherwise preserved unchanged — the
|
|
1620
|
+
`details[]` / `violations[]` / `job_ref` required-field shapes
|
|
1621
|
+
still hold, so structural duck-typing keeps working; the
|
|
1622
|
+
discriminator simply lets generated SDK clients dispatch on a
|
|
1623
|
+
single property instead of mis-firing `instanceOf` guards
|
|
1624
|
+
(camelCase-vs-snake_case). `error_type: validation_error` is a
|
|
1625
|
+
**new required field** on `ValidationErrorEnvelope` — the
|
|
1626
|
+
server populates it at every emission site (rollout coordinated
|
|
1627
|
+
with the API per ADR-0018).
|
|
1549
1628
|
headers:
|
|
1550
1629
|
Retry-After:
|
|
1551
1630
|
required: false
|
|
@@ -1569,11 +1648,19 @@ paths:
|
|
|
1569
1648
|
- $ref: '#/components/schemas/FeatureNotAvailableResponse'
|
|
1570
1649
|
- $ref: '#/components/schemas/ProcessingClassExceedsBandResponse'
|
|
1571
1650
|
- $ref: '#/components/schemas/ProbePendingResponse'
|
|
1651
|
+
discriminator:
|
|
1652
|
+
propertyName: error_type
|
|
1653
|
+
mapping:
|
|
1654
|
+
validation_error: '#/components/schemas/ValidationErrorEnvelope'
|
|
1655
|
+
feature_not_available: '#/components/schemas/FeatureNotAvailableResponse'
|
|
1656
|
+
processing_class_exceeds_band: '#/components/schemas/ProcessingClassExceedsBandResponse'
|
|
1657
|
+
probe_pending: '#/components/schemas/ProbePendingResponse'
|
|
1572
1658
|
examples:
|
|
1573
1659
|
validation_error:
|
|
1574
1660
|
summary: Generic validation error (legacy shape)
|
|
1575
1661
|
value:
|
|
1576
1662
|
success: false
|
|
1663
|
+
error_type: "validation_error"
|
|
1577
1664
|
error: "INVALID_OPTIONS"
|
|
1578
1665
|
details:
|
|
1579
1666
|
- operation: "compress"
|
|
@@ -1582,6 +1669,17 @@ paths:
|
|
|
1582
1669
|
- operation: "thumbnail"
|
|
1583
1670
|
option: "width"
|
|
1584
1671
|
message: "Required field"
|
|
1672
|
+
cyclic_workflow_edges:
|
|
1673
|
+
summary: Cyclic or self-referential explicit workflow_edges (g8PPkbNu)
|
|
1674
|
+
value:
|
|
1675
|
+
success: false
|
|
1676
|
+
error_type: "validation_error"
|
|
1677
|
+
error: "CYCLIC_WORKFLOW_EDGES"
|
|
1678
|
+
message: "Workflow edges form a cycle."
|
|
1679
|
+
message_key: "error.cyclic_workflow_edges"
|
|
1680
|
+
details:
|
|
1681
|
+
- field: "workflow_edges"
|
|
1682
|
+
message: "Workflow edges form a cycle."
|
|
1585
1683
|
feature_not_available:
|
|
1586
1684
|
summary: Workflow references planned features
|
|
1587
1685
|
value:
|
|
@@ -1649,6 +1747,7 @@ paths:
|
|
|
1649
1747
|
summary: merge.video re_encode_mode=never with incompatible inputs (I16-CONS)
|
|
1650
1748
|
value:
|
|
1651
1749
|
success: false
|
|
1750
|
+
error_type: "validation_error"
|
|
1652
1751
|
error: "REQUIRES_REENCODE"
|
|
1653
1752
|
details:
|
|
1654
1753
|
- operation: "merge"
|
|
@@ -2185,7 +2284,7 @@ paths:
|
|
|
2185
2284
|
still fresh. Strong-ETag comparison.
|
|
2186
2285
|
schema:
|
|
2187
2286
|
type: string
|
|
2188
|
-
example: '"v2-pro-
|
|
2287
|
+
example: '"v2-pro-49"'
|
|
2189
2288
|
- name: If-Modified-Since
|
|
2190
2289
|
in: header
|
|
2191
2290
|
required: false
|
|
@@ -2218,7 +2317,7 @@ paths:
|
|
|
2218
2317
|
Strong entity tag. Clients send `If-None-Match: <etag>`
|
|
2219
2318
|
on subsequent requests to revalidate; the server returns
|
|
2220
2319
|
`304 Not Modified` when the response is still fresh.
|
|
2221
|
-
example: '"v2-pro-
|
|
2320
|
+
example: '"v2-pro-49"'
|
|
2222
2321
|
Last-Modified:
|
|
2223
2322
|
schema:
|
|
2224
2323
|
type: string
|
|
@@ -2236,7 +2335,7 @@ paths:
|
|
|
2236
2335
|
summary: Full schema (truncated for brevity)
|
|
2237
2336
|
value:
|
|
2238
2337
|
schema_version: "2.0.0"
|
|
2239
|
-
capabilities_version:
|
|
2338
|
+
capabilities_version: 49
|
|
2240
2339
|
generated_at: "2026-04-26T09:00:00Z"
|
|
2241
2340
|
user_tier: "pro"
|
|
2242
2341
|
operations:
|
|
@@ -2299,7 +2398,7 @@ paths:
|
|
|
2299
2398
|
ETag:
|
|
2300
2399
|
schema:
|
|
2301
2400
|
type: string
|
|
2302
|
-
example: '"v2-pro-
|
|
2401
|
+
example: '"v2-pro-49"'
|
|
2303
2402
|
Last-Modified:
|
|
2304
2403
|
schema:
|
|
2305
2404
|
type: string
|
|
@@ -2779,6 +2878,11 @@ paths:
|
|
|
2779
2878
|
oneOf:
|
|
2780
2879
|
- $ref: '#/components/schemas/ValidationErrorEnvelope'
|
|
2781
2880
|
- $ref: '#/components/schemas/FeatureNotAvailableResponse'
|
|
2881
|
+
discriminator:
|
|
2882
|
+
propertyName: error_type
|
|
2883
|
+
mapping:
|
|
2884
|
+
validation_error: '#/components/schemas/ValidationErrorEnvelope'
|
|
2885
|
+
feature_not_available: '#/components/schemas/FeatureNotAvailableResponse'
|
|
2782
2886
|
'429':
|
|
2783
2887
|
description: Rate limit exceeded
|
|
2784
2888
|
content:
|
|
@@ -2891,6 +2995,11 @@ paths:
|
|
|
2891
2995
|
oneOf:
|
|
2892
2996
|
- $ref: '#/components/schemas/ValidationErrorEnvelope'
|
|
2893
2997
|
- $ref: '#/components/schemas/FeatureNotAvailableResponse'
|
|
2998
|
+
discriminator:
|
|
2999
|
+
propertyName: error_type
|
|
3000
|
+
mapping:
|
|
3001
|
+
validation_error: '#/components/schemas/ValidationErrorEnvelope'
|
|
3002
|
+
feature_not_available: '#/components/schemas/FeatureNotAvailableResponse'
|
|
2894
3003
|
'429':
|
|
2895
3004
|
description: |
|
|
2896
3005
|
Rate limit exceeded for decode requests. Decode
|
|
@@ -3017,7 +3126,10 @@ paths:
|
|
|
3017
3126
|
- name: limit
|
|
3018
3127
|
in: query
|
|
3019
3128
|
required: false
|
|
3020
|
-
description:
|
|
3129
|
+
description: |
|
|
3130
|
+
Page size. Server may reject invalid `limit` / `offset`
|
|
3131
|
+
with `422 VALIDATION_FAILED` (per project-wide query-param
|
|
3132
|
+
validation convention).
|
|
3021
3133
|
schema:
|
|
3022
3134
|
type: integer
|
|
3023
3135
|
minimum: 1
|
|
@@ -3026,7 +3138,9 @@ paths:
|
|
|
3026
3138
|
- name: offset
|
|
3027
3139
|
in: query
|
|
3028
3140
|
required: false
|
|
3029
|
-
description:
|
|
3141
|
+
description: |
|
|
3142
|
+
Page offset (zero-based). Server may reject invalid
|
|
3143
|
+
`limit` / `offset` with `422 VALIDATION_FAILED`.
|
|
3030
3144
|
schema:
|
|
3031
3145
|
type: integer
|
|
3032
3146
|
minimum: 0
|
|
@@ -3149,21 +3263,34 @@ paths:
|
|
|
3149
3263
|
total: 47
|
|
3150
3264
|
limit: 20
|
|
3151
3265
|
offset: 0
|
|
3152
|
-
'
|
|
3153
|
-
description:
|
|
3266
|
+
'401':
|
|
3267
|
+
description: Authentication required.
|
|
3154
3268
|
content:
|
|
3155
3269
|
application/json:
|
|
3156
3270
|
schema:
|
|
3157
3271
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3272
|
+
'422':
|
|
3273
|
+
description: |
|
|
3274
|
+
Invalid pagination parameters (`limit` out of range,
|
|
3275
|
+
`offset` negative). Per the project-wide query-param
|
|
3276
|
+
validation convention: the API runtime translates parameter
|
|
3277
|
+
constraint violations into `ValidationErrorEnvelope` with
|
|
3278
|
+
`error: "VALIDATION_FAILED"` and structured `details[]`
|
|
3279
|
+
describing each rejected parameter. Replaces the prior
|
|
3280
|
+
`400 ErrorEnvelope` shape — wire change landed via
|
|
3281
|
+
[`gCfdFhdo`](https://trello.com/c/gCfdFhdo) on the API side
|
|
3282
|
+
(contracts caught up via [`d4rJzTcU`](https://trello.com/c/d4rJzTcU)).
|
|
3163
3283
|
content:
|
|
3164
3284
|
application/json:
|
|
3165
3285
|
schema:
|
|
3166
|
-
$ref: '#/components/schemas/
|
|
3286
|
+
$ref: '#/components/schemas/ValidationErrorEnvelope'
|
|
3287
|
+
example:
|
|
3288
|
+
success: false
|
|
3289
|
+
error_type: "validation_error"
|
|
3290
|
+
error: "VALIDATION_FAILED"
|
|
3291
|
+
details:
|
|
3292
|
+
- field: "limit"
|
|
3293
|
+
message: "limit must be between 1 and 100"
|
|
3167
3294
|
'429':
|
|
3168
3295
|
description: Rate limit exceeded
|
|
3169
3296
|
content:
|
|
@@ -3420,10 +3547,13 @@ components:
|
|
|
3420
3547
|
type: string
|
|
3421
3548
|
description: |
|
|
3422
3549
|
BCP 47 locale tag echoing the resolved `Content-Language`
|
|
3423
|
-
response header value
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3550
|
+
response header value. Currently always `en-GB` (the only
|
|
3551
|
+
committed locale per `info.description` Localisation block
|
|
3552
|
+
+ ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6));
|
|
3553
|
+
additional values will appear here when their catalogs
|
|
3554
|
+
ship. Lets the SDK confirm which locale the server
|
|
3555
|
+
selected when the request used q-value negotiation across
|
|
3556
|
+
multiple `Accept-Language` values.
|
|
3427
3557
|
example: "en-GB"
|
|
3428
3558
|
message_params:
|
|
3429
3559
|
type: object
|
|
@@ -3455,11 +3585,30 @@ components:
|
|
|
3455
3585
|
required:
|
|
3456
3586
|
- success
|
|
3457
3587
|
- error
|
|
3588
|
+
- error_type
|
|
3458
3589
|
- details
|
|
3459
3590
|
properties:
|
|
3460
3591
|
success:
|
|
3461
3592
|
type: boolean
|
|
3462
3593
|
enum: [false]
|
|
3594
|
+
error_type:
|
|
3595
|
+
type: string
|
|
3596
|
+
enum:
|
|
3597
|
+
- validation_error
|
|
3598
|
+
description: |
|
|
3599
|
+
Discriminator for the multi-branch 422 `oneOf` (per
|
|
3600
|
+
[ADR-0018](../docs/decisions/0018-universal-422-error-type-discriminator.md)).
|
|
3601
|
+
Always `validation_error` on this envelope. Added so the four
|
|
3602
|
+
422 branches (`ValidationErrorEnvelope`,
|
|
3603
|
+
`FeatureNotAvailableResponse`,
|
|
3604
|
+
`ProcessingClassExceedsBandResponse`, `ProbePendingResponse`)
|
|
3605
|
+
share a single discriminator property — generated SDK clients
|
|
3606
|
+
dispatch on `error_type` instead of structural `instanceOf`
|
|
3607
|
+
guards (which mis-fire on camelCase-vs-snake_case property
|
|
3608
|
+
names). Distinct from the `error` machine code below: `error`
|
|
3609
|
+
carries the specific failure code (`INVALID_OPTIONS`,
|
|
3610
|
+
`REQUIRES_REENCODE`, `CYCLIC_WORKFLOW_EDGES`, …) while
|
|
3611
|
+
`error_type` only names the envelope shape.
|
|
3463
3612
|
error:
|
|
3464
3613
|
type: string
|
|
3465
3614
|
description: |
|
|
@@ -3467,7 +3616,11 @@ components:
|
|
|
3467
3616
|
(generic option/value validation failure), `REQUIRES_REENCODE`
|
|
3468
3617
|
(per ticket I16-CONS — `merge.video` with
|
|
3469
3618
|
`re_encode_mode: never` and incompatible inputs; caller
|
|
3470
|
-
resolves by switching to `re_encode_mode: auto` or `always`)
|
|
3619
|
+
resolves by switching to `re_encode_mode: auto` or `always`),
|
|
3620
|
+
`CYCLIC_WORKFLOW_EDGES` (cyclic/self explicit `workflow_edges`,
|
|
3621
|
+
per `g8PPkbNu`), `VALIDATION_FAILED` (request/query-param
|
|
3622
|
+
validation failure per the project-wide convention — e.g.
|
|
3623
|
+
`GET /api/v2/credits/usage` invalid `limit`/`offset`).
|
|
3471
3624
|
SDKs duck-type on this field for typed error-branch helpers.
|
|
3472
3625
|
message:
|
|
3473
3626
|
type: string
|
|
@@ -3538,6 +3691,26 @@ components:
|
|
|
3538
3691
|
`ErrorEnvelope.message_params`. Excludes cost
|
|
3539
3692
|
numbers.
|
|
3540
3693
|
|
|
3694
|
+
ReEncodeDecision:
|
|
3695
|
+
type: string
|
|
3696
|
+
description: |
|
|
3697
|
+
Path chosen for `merge.video` when `re_encode_mode=auto`.
|
|
3698
|
+
Server reports the actual path so callers can see why
|
|
3699
|
+
`auto` took the slow path. Absent for non-`merge.video`
|
|
3700
|
+
operations and for `merge.video` when `re_encode_mode` is
|
|
3701
|
+
`always` or `never` (path was caller-fixed). Per ticket
|
|
3702
|
+
I16-CONS (Trello 7nCZXEru).
|
|
3703
|
+
|
|
3704
|
+
Mirrors the AsyncAPI `ReEncodeDecision` (and
|
|
3705
|
+
`OperationMetrics.re_encode_decision`); exposed on the REST
|
|
3706
|
+
`OperationResult.metrics` per ticket zS4e9CI2 so the SDK
|
|
3707
|
+
customer path carries the same signal as the SSE/message
|
|
3708
|
+
surface. Cross-spec enum parity is verified by
|
|
3709
|
+
`tests/test_asyncapi_named_schemas.py`.
|
|
3710
|
+
enum:
|
|
3711
|
+
- stream_copy
|
|
3712
|
+
- re_encode
|
|
3713
|
+
|
|
3541
3714
|
# ============================================
|
|
3542
3715
|
# AVAILABILITY METADATA (decorative)
|
|
3543
3716
|
# ============================================
|
|
@@ -4931,13 +5104,12 @@ components:
|
|
|
4931
5104
|
with a generic schema error. This envelope is the structured
|
|
4932
5105
|
rejection.
|
|
4933
5106
|
|
|
4934
|
-
The 422 response is delivered alongside `ValidationErrorEnvelope
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
`POST /api/workflows`.
|
|
5107
|
+
The 422 response is delivered alongside `ValidationErrorEnvelope`,
|
|
5108
|
+
`ProcessingClassExceedsBandResponse`, and `ProbePendingResponse`
|
|
5109
|
+
via a `oneOf` with an explicit `error_type` discriminator (per
|
|
5110
|
+
[ADR-0018](../docs/decisions/0018-universal-422-error-type-discriminator.md));
|
|
5111
|
+
this branch's discriminator value is `feature_not_available`. See
|
|
5112
|
+
the 422 response on `POST /api/workflows`.
|
|
4941
5113
|
allOf:
|
|
4942
5114
|
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
4943
5115
|
- type: object
|
|
@@ -4980,12 +5152,13 @@ components:
|
|
|
4980
5152
|
|
|
4981
5153
|
Delivered alongside `ValidationErrorEnvelope`,
|
|
4982
5154
|
`FeatureNotAvailableResponse`, and
|
|
4983
|
-
`ProcessingClassExceedsBandResponse` via the
|
|
4984
|
-
the 422 response
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
5155
|
+
`ProcessingClassExceedsBandResponse` via the discriminated
|
|
5156
|
+
`oneOf` on the 422 response (per
|
|
5157
|
+
[ADR-0018](../docs/decisions/0018-universal-422-error-type-discriminator.md)) —
|
|
5158
|
+
this branch's `error_type` discriminator value is `probe_pending`;
|
|
5159
|
+
it also remains the only branch carrying `job_ref` and neither
|
|
5160
|
+
`details` (`ValidationErrorEnvelope`) nor `violations` (the other
|
|
5161
|
+
two typed envelopes).
|
|
4989
5162
|
allOf:
|
|
4990
5163
|
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
4991
5164
|
- type: object
|
|
@@ -5181,10 +5354,12 @@ components:
|
|
|
5181
5354
|
envelope is 422, not an extension of `TierRestrictionResponse`
|
|
5182
5355
|
on 403).
|
|
5183
5356
|
|
|
5184
|
-
Delivered on `POST /api/workflows` 422 in a
|
|
5185
|
-
alongside `ValidationErrorEnvelope`
|
|
5186
|
-
`
|
|
5187
|
-
|
|
5357
|
+
Delivered on `POST /api/workflows` 422 in a discriminated `oneOf`
|
|
5358
|
+
alongside `ValidationErrorEnvelope`, `FeatureNotAvailableResponse`,
|
|
5359
|
+
and `ProbePendingResponse` (per
|
|
5360
|
+
[ADR-0018](../docs/decisions/0018-universal-422-error-type-discriminator.md)) —
|
|
5361
|
+
this branch's `error_type` discriminator value is
|
|
5362
|
+
`processing_class_exceeds_band`.
|
|
5188
5363
|
allOf:
|
|
5189
5364
|
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
5190
5365
|
- type: object
|
|
@@ -5405,19 +5580,21 @@ components:
|
|
|
5405
5580
|
Available operation types:
|
|
5406
5581
|
- compress: Reduce file size (images, audio, video, documents)
|
|
5407
5582
|
- thumbnail: Legacy thumbnail value. Generates a preview image
|
|
5408
|
-
for any media type via a single Lambda.
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
below
|
|
5583
|
+
for any media type via a single Lambda. Retained as a valid
|
|
5584
|
+
routing target during the migration window, but the
|
|
5585
|
+
compression_api publisher no longer emits it — it now resolves
|
|
5586
|
+
the per-media sub-type value below on the SNS `operation_type`
|
|
5587
|
+
attribute. The payload `operation_type` field stays `thumbnail`.
|
|
5412
5588
|
- thumbnail_image: Image thumbnail sub-type. Backed by a dedicated
|
|
5413
|
-
Rust image Lambda.
|
|
5589
|
+
Rust image Lambda. Emitted by the publisher for image inputs.
|
|
5414
5590
|
- thumbnail_video: Video thumbnail sub-type. Backed by a dedicated
|
|
5415
|
-
FFmpeg Lambda.
|
|
5591
|
+
FFmpeg Lambda. Emitted by the publisher for video inputs.
|
|
5416
5592
|
- thumbnail_document: PDF/EPUB thumbnail sub-type. Backed by a
|
|
5417
|
-
dedicated Ghostscript Lambda.
|
|
5593
|
+
dedicated Ghostscript Lambda. Emitted by the publisher for
|
|
5594
|
+
PDF/EPUB inputs.
|
|
5418
5595
|
- thumbnail_office: Office document (DOCX/XLSX/PPTX/ODT/ODS/ODP)
|
|
5419
5596
|
thumbnail sub-type. Backed by a dedicated LibreOffice Lambda.
|
|
5420
|
-
|
|
5597
|
+
Emitted by the publisher for office-document inputs.
|
|
5421
5598
|
- image_watermark: Image overlay (file or external_source) onto a base IMAGE asset. Multi-input (Path B with role: base + overlay). Stable for static-image bases (jpeg/png/webp); animated GIF is advertised as `planned` via the `image_gif` mime_group — dispatch returns `feature_not_available` (422) until Lambda support ships. Video bases are NOT supported by image_watermark — use the dedicated `video_watermark` operation per ADR-0013. Per ADR-0004 + I4-CONS + I5 (Trello AKZiOXnd).
|
|
5422
5599
|
- text_watermark: Text overlay rendered onto an image (Liberation Sans). Single-input. Per ADR-0004 + I4-CONS.
|
|
5423
5600
|
- merge: Concatenate/combine multiple files into one (images, video, audio). Multi-input. Image inputs merge into animated GIF or slideshow video; image collage/grid and PDF concatenation are not supported by the V1 Lambda.
|
|
@@ -5426,10 +5603,10 @@ components:
|
|
|
5426
5603
|
- custom_luma: Apply a caller-uploaded luma matte to a base video for a custom luma-matte transition effect. Multi-input (`role: base` + `role: transition_mask`). `availability: planned` + `required_tier: pro`; dispatch returns `feature_not_available` (422) until Lambda ships. Distinct from FFmpeg `xfade=custom` (which is an expression, not an operation). Per ticket I29 (Trello EPUE5Vs1).
|
|
5427
5604
|
- audio_overlay: Mix a secondary audio asset over a primary audio or video base (DJ tags, podcast intros/outros, station IDs, jingles). Multi-input (`role: base` + `role: overlay`). `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. **NOT** the same as `audio_watermark` — that operation is steganographic (imperceptible identifier embedded for ownership tracking), tracked separately by I20. Per ticket I19 (Trello Xr3Z4GBF).
|
|
5428
5605
|
- audio_watermark: Embed a steganographic forensic watermark into an audio asset (or a video's audio track) — Cinavia / Resemble PerTh territory. Single-input. `availability: planned` + `required_tier: enterprise`; dispatch returns `feature_not_available` (422) until Lambda ships. Pairs with `POST /api/audio-watermark/decode` for own-watermarks-only extraction. Per ticket I20 (Trello omiCq7Vn).
|
|
5429
|
-
- audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability:
|
|
5430
|
-
- video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability:
|
|
5606
|
+
- audio_to_video: Produce a video from an audio input plus an OPTIONAL still image overlay. Multi-input role-based with the first OPTIONAL role on the contract (`role: base` audio required, `role: overlay` image 0..1 — see `per_role_cardinality`). When overlay is omitted, the video uses a solid background colour. `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT return `feature_not_available`; may change with notice). Per ticket [`SlluxMBN`](https://trello.com/c/SlluxMBN) + ADR-0015 (introduces `per_role_cardinality` vocab).
|
|
5607
|
+
- video_watermark: Apply an image overlay onto a base video via FFmpeg's `overlay` filter. Multi-input role-based (`role: base` video + `role: overlay` image, exactly one of each per `per_role_cardinality`). Re-encode required; audio stream-copy passthrough. Distinct from `image_watermark` (pure-Rust/image-only). `availability: beta` (Wave A — Lambda backend live; opt-in, MUST NOT 422; `short_form` is beta, `long_form` stays `planned` — no live Fargate worker; `multi_overlay_stack` stays `planned`). Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
|
|
5431
5608
|
- video_text_watermark: Render a text overlay onto a base video via FFmpeg's `drawtext` filter. Single-input — text and styling in options. Same `watermark_mode` (single/tiled), anchor + margin vocab as `text_watermark`. Re-encode required; audio stream-copy passthrough. `availability: planned`; dispatch returns `feature_not_available` (422) until Lambda ships. Per ticket [`4NrRPCgh`](https://trello.com/c/4NrRPCgh) + ADR-0013.
|
|
5432
|
-
- split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: planned
|
|
5609
|
+
- split: Fan one input file into N outputs across GIF / PDF / audio / video MIME families. Single-input per-mime-group catalog (mirrors merge/convert): GIF uses `frame_range` (REQUIRED) + `output_format`; PDF uses `page_range` OR `page_groups` (mutually exclusive); audio + video use a `mode` discriminator (interval/count/cut_points) + numeric-seconds wire format + `precision` flag (fast/exact). 200-output hard cap per ADR-0009 §D5 with per-mode preflight math; output naming `output-001..output-200`. Long-form video routes to a separate `split-video-fargate` worker via `processing_class`. `availability: beta` for the `audio` mime_group (worker live on staging — shape-stable + opt-in, MUST NOT 422); the `image_gif`, `document_pdf`, and `video` mime_groups stay `availability: planned` and dispatch returns `feature_not_available` (422) until their workers ship. Per ticket [`vKI0CFDu`](https://trello.com/c/vKI0CFDu) + ADR-0014.
|
|
5433
5610
|
|
|
5434
5611
|
Both the legacy `thumbnail` value and the four sub-type values
|
|
5435
5612
|
are valid routing targets today during the thumbnail migration
|
|
@@ -6350,9 +6527,11 @@ components:
|
|
|
6350
6527
|
text_watermark, convert).
|
|
6351
6528
|
- `inputs[]` (multi-input): array of `JobInputV2` entries. Each entry
|
|
6352
6529
|
carries its own `source` plus an optional `role`
|
|
6353
|
-
(image_watermark, custom_luma, audio_overlay
|
|
6530
|
+
(image_watermark, custom_luma, audio_overlay, audio_to_video,
|
|
6531
|
+
video_watermark) and
|
|
6354
6532
|
`per_input_options`. Used by multi-input operations (merge,
|
|
6355
|
-
archive, image_watermark, custom_luma, audio_overlay
|
|
6533
|
+
archive, image_watermark, custom_luma, audio_overlay,
|
|
6534
|
+
audio_to_video, video_watermark).
|
|
6356
6535
|
|
|
6357
6536
|
Exactly one of `source` or `inputs` is required.
|
|
6358
6537
|
|
|
@@ -6415,7 +6594,8 @@ components:
|
|
|
6415
6594
|
type: array
|
|
6416
6595
|
description: |
|
|
6417
6596
|
Multi-input list for `merge`, `archive`, `image_watermark`,
|
|
6418
|
-
`custom_luma`, `audio_overlay`,
|
|
6597
|
+
`custom_luma`, `audio_overlay`, `audio_to_video`, and
|
|
6598
|
+
`video_watermark`. Each
|
|
6419
6599
|
entry is a `JobInputV2` with its own `WorkflowSource`.
|
|
6420
6600
|
Mutually exclusive with `source` — the V2 shape boundary
|
|
6421
6601
|
stays `source` (single-input) XOR `inputs[]` (multi-input
|
|
@@ -6442,7 +6622,7 @@ components:
|
|
|
6442
6622
|
Multi-input jobs (with `inputs[]`) must have exactly one
|
|
6443
6623
|
operation, and it must be a multi-input type (`merge`,
|
|
6444
6624
|
`archive`, `image_watermark`, `custom_luma`,
|
|
6445
|
-
`audio_overlay`, or `
|
|
6625
|
+
`audio_overlay`, `audio_to_video`, or `video_watermark`).
|
|
6446
6626
|
items:
|
|
6447
6627
|
$ref: '#/components/schemas/OperationDefinition'
|
|
6448
6628
|
deliver:
|
|
@@ -6483,10 +6663,12 @@ components:
|
|
|
6483
6663
|
`custom_luma` (joined via ticket
|
|
6484
6664
|
[I29](https://trello.com/c/EPUE5Vs1) — `availability:
|
|
6485
6665
|
planned` so workflow-create returns 422 until Lambda
|
|
6486
|
-
ships),
|
|
6666
|
+
ships), `audio_overlay` (joined via ticket
|
|
6487
6667
|
[I19](https://trello.com/c/Xr3Z4GBF) — same `planned`
|
|
6488
|
-
gating)
|
|
6489
|
-
|
|
6668
|
+
gating), and `audio_to_video` + `video_watermark` (joined
|
|
6669
|
+
via Wave A [`c3uthIP4`](https://trello.com/c/c3uthIP4) —
|
|
6670
|
+
`availability: beta`, backends live). The multi-input
|
|
6671
|
+
shape is contract-defined for all entries.
|
|
6490
6672
|
|
|
6491
6673
|
JobInputV2:
|
|
6492
6674
|
type: object
|
|
@@ -6631,8 +6813,19 @@ components:
|
|
|
6631
6813
|
- explicit
|
|
6632
6814
|
per_value_availability:
|
|
6633
6815
|
terminal: { availability: stable }
|
|
6634
|
-
all_outputs: { availability:
|
|
6635
|
-
explicit: { availability:
|
|
6816
|
+
all_outputs: { availability: planned }
|
|
6817
|
+
explicit: { availability: planned }
|
|
6818
|
+
# Availability flipped beta → planned per ticket
|
|
6819
|
+
# [`co0CERtJ`](https://trello.com/c/co0CERtJ) — the API
|
|
6820
|
+
# runtime currently 422s every non-default `selection.type`
|
|
6821
|
+
# with `feature_not_available`, which per the
|
|
6822
|
+
# `info.description` availability taxonomy IS the `planned`
|
|
6823
|
+
# behaviour (`stable`/`beta` MUST NOT 422). When the API
|
|
6824
|
+
# threads the request-level `delivery.selection` shape, this
|
|
6825
|
+
# flips back. Terminal stays `stable` because the runtime
|
|
6826
|
+
# honours it as the implicit default (`DeliveryPlanComputer`
|
|
6827
|
+
# computes terminal selection regardless of whether the
|
|
6828
|
+
# caller supplied a `delivery` block).
|
|
6636
6829
|
refs:
|
|
6637
6830
|
type: array
|
|
6638
6831
|
description: |
|
|
@@ -6659,7 +6852,20 @@ components:
|
|
|
6659
6852
|
properties:
|
|
6660
6853
|
mode:
|
|
6661
6854
|
type: string
|
|
6662
|
-
description:
|
|
6855
|
+
description: |
|
|
6856
|
+
Delivery mode. `individual` is the only committed value
|
|
6857
|
+
today (per ticket [`co0CERtJ`](https://trello.com/c/co0CERtJ)).
|
|
6858
|
+
`bundle` and `both` are `planned`: the API runtime returns
|
|
6859
|
+
`422 feature_not_available` for any non-`individual` value,
|
|
6860
|
+
which per the `info.description` availability taxonomy is
|
|
6861
|
+
the `planned` behaviour (`stable`/`beta` MUST NOT 422).
|
|
6862
|
+
|
|
6863
|
+
For workflows that need a packaged output today, compose
|
|
6864
|
+
a terminal `archive` job whose `sources` are
|
|
6865
|
+
`JobOutputSource` refs to the upstream jobs — `archive` is
|
|
6866
|
+
the canonical output-bundler per ADR-0017. `delivery.mode:
|
|
6867
|
+
bundle` is the deferred post-launch ergonomic sugar that
|
|
6868
|
+
will reuse the same `archive` runtime under the hood.
|
|
6663
6869
|
enum:
|
|
6664
6870
|
- individual
|
|
6665
6871
|
- bundle
|
|
@@ -6667,8 +6873,8 @@ components:
|
|
|
6667
6873
|
default: individual
|
|
6668
6874
|
per_value_availability:
|
|
6669
6875
|
individual: { availability: stable }
|
|
6670
|
-
bundle: { availability:
|
|
6671
|
-
both: { availability:
|
|
6876
|
+
bundle: { availability: planned }
|
|
6877
|
+
both: { availability: planned }
|
|
6672
6878
|
bundle_format:
|
|
6673
6879
|
type: string
|
|
6674
6880
|
enum:
|
|
@@ -6699,6 +6905,11 @@ components:
|
|
|
6699
6905
|
description: |
|
|
6700
6906
|
How to pick outputs. Default `terminal` (leaves only).
|
|
6701
6907
|
example:
|
|
6908
|
+
# Spec example uses `bundle` to document the deferred (planned)
|
|
6909
|
+
# shape end-to-end — see Delivery.mode per_value_availability
|
|
6910
|
+
# for the runtime state. For workflows that need packaged
|
|
6911
|
+
# output today, compose a terminal `archive` job whose
|
|
6912
|
+
# `sources` are `JobOutputSource` refs (ADR-0017).
|
|
6702
6913
|
mode: bundle
|
|
6703
6914
|
bundle_format: zip
|
|
6704
6915
|
bundle_filename: "compressed-photos"
|
|
@@ -7068,12 +7279,22 @@ components:
|
|
|
7068
7279
|
description: Container-reported duration (audio + video).
|
|
7069
7280
|
width:
|
|
7070
7281
|
type: integer
|
|
7282
|
+
format: int64
|
|
7071
7283
|
minimum: 1
|
|
7072
|
-
description:
|
|
7284
|
+
description: |
|
|
7285
|
+
Pixel width (image + video; best-effort document). Declared
|
|
7286
|
+
`int64` so Rust SDK generators emit `i64` instead of the
|
|
7287
|
+
default `i32`; `i32` is fine for everything ffmpeg/libcaesium
|
|
7288
|
+
handles today but the format hint keeps the door open for
|
|
7289
|
+
scientific / RAW imagery without future SDK churn (per
|
|
7290
|
+
ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
|
|
7073
7291
|
height:
|
|
7074
7292
|
type: integer
|
|
7293
|
+
format: int64
|
|
7075
7294
|
minimum: 1
|
|
7076
|
-
description:
|
|
7295
|
+
description: |
|
|
7296
|
+
Pixel height (image + video; best-effort document). See
|
|
7297
|
+
`width` for the `format: int64` rationale.
|
|
7077
7298
|
codec:
|
|
7078
7299
|
type: string
|
|
7079
7300
|
description: |
|
|
@@ -7108,12 +7329,16 @@ components:
|
|
|
7108
7329
|
`29.97`, `23.976`).
|
|
7109
7330
|
bitrate_bps:
|
|
7110
7331
|
type: integer
|
|
7332
|
+
format: int64
|
|
7111
7333
|
minimum: 0
|
|
7112
7334
|
description: |
|
|
7113
7335
|
Overall stream bitrate, **bits per second**. Units in
|
|
7114
7336
|
the field name, mirroring `duration_seconds`, so SDKs
|
|
7115
7337
|
avoid the kbps-vs-bps guessing trap. Container-reported
|
|
7116
|
-
for video + audio.
|
|
7338
|
+
for video + audio. Declared `int64` so Rust SDK
|
|
7339
|
+
generators emit `i64` instead of `i32`; `i32` caps at
|
|
7340
|
+
~2.1 Gbps which is tight for future 4K/8K/RAW workloads
|
|
7341
|
+
(per ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
|
|
7117
7342
|
audio_layout:
|
|
7118
7343
|
type: string
|
|
7119
7344
|
description: |
|
|
@@ -7497,6 +7722,24 @@ components:
|
|
|
7497
7722
|
$ref: '#/components/schemas/UuidV7'
|
|
7498
7723
|
status:
|
|
7499
7724
|
$ref: '#/components/schemas/JobStatus'
|
|
7725
|
+
processing_class:
|
|
7726
|
+
$ref: '#/components/schemas/ProcessingClass'
|
|
7727
|
+
description: |
|
|
7728
|
+
The logical processing class the server resolved this job to.
|
|
7729
|
+
The status-poll echo of `WorkflowCreateResponse.processing_plan`
|
|
7730
|
+
`.jobs[].processing_class` (`ProcessingPlanJob`) — same enum, same
|
|
7731
|
+
per-job granularity — so consumers can observe the resolved
|
|
7732
|
+
routing decision (`short_form` vs `long_form`, plus the merge-only
|
|
7733
|
+
`*_concat` / `*_re_encode` aliases) after create, not just at
|
|
7734
|
+
create time. The server always knows a job's class once the
|
|
7735
|
+
workflow is resolved and populates this on every status response
|
|
7736
|
+
(mirrors the `ProcessingPlanJob` invariant); it is left
|
|
7737
|
+
schema-OPTIONAL rather than `required` only because `JobResponse`
|
|
7738
|
+
is also embedded in the `WebhookPayload.workflow` callback payload,
|
|
7739
|
+
where a required addition would be a breaking request-contract
|
|
7740
|
+
change for existing webhook consumers. Per ticket
|
|
7741
|
+
[F3dL0UKz](https://trello.com/c/F3dL0UKz); consumed by api
|
|
7742
|
+
[D3yN1SGm](https://trello.com/c/D3yN1SGm).
|
|
7500
7743
|
depends_on:
|
|
7501
7744
|
type: array
|
|
7502
7745
|
description: List of upstream job refs this job depends on
|
|
@@ -7574,6 +7817,21 @@ components:
|
|
|
7574
7817
|
duration_ms:
|
|
7575
7818
|
type: integer
|
|
7576
7819
|
description: Processing time in milliseconds
|
|
7820
|
+
re_encode_decision:
|
|
7821
|
+
# Mirrors AsyncAPI OperationMetrics.re_encode_decision so the
|
|
7822
|
+
# REST result surface (SDK customer path) carries the same
|
|
7823
|
+
# merge.video stream-copy-vs-re-encode signal as the SSE/message
|
|
7824
|
+
# channel. Per ticket zS4e9CI2 (unblocks e2e aDFI1FgT).
|
|
7825
|
+
$ref: '#/components/schemas/ReEncodeDecision'
|
|
7826
|
+
re_encode_reason:
|
|
7827
|
+
type: string
|
|
7828
|
+
description: |
|
|
7829
|
+
Advisory explanation for `re_encode_decision` (e.g.
|
|
7830
|
+
`all_inputs_compatible`, `explicit_always_mode`,
|
|
7831
|
+
`input_codec_mismatch`, `input_framerate_mismatch`).
|
|
7832
|
+
Free-form string — not an enum — so the Lambda can emit
|
|
7833
|
+
human-readable diagnostics that evolve without contract
|
|
7834
|
+
changes. Mirrors `OperationMetrics.re_encode_reason`.
|
|
7577
7835
|
|
|
7578
7836
|
# ============================================
|
|
7579
7837
|
# WORKFLOW DOWNLOAD SCHEMAS
|
|
@@ -7777,7 +8035,8 @@ components:
|
|
|
7777
8035
|
Total number of inputs expected in this phase. Pairs with
|
|
7778
8036
|
`phase_input_index`. For single-input operations this is
|
|
7779
8037
|
`1` during the relevant phase; for multi-input merge /
|
|
7780
|
-
archive / image_watermark / custom_luma / audio_overlay
|
|
8038
|
+
archive / image_watermark / custom_luma / audio_overlay /
|
|
8039
|
+
audio_to_video / video_watermark,
|
|
7781
8040
|
it matches the inputs[] count. Per ticket I27.
|
|
7782
8041
|
|
|
7783
8042
|
SseOperationCompletedData:
|
|
@@ -8309,6 +8568,48 @@ components:
|
|
|
8309
8568
|
either source.
|
|
8310
8569
|
additionalProperties:
|
|
8311
8570
|
$ref: '#/components/schemas/EndpointProjection'
|
|
8571
|
+
workflow_features:
|
|
8572
|
+
type: object
|
|
8573
|
+
description: |
|
|
8574
|
+
Workflow-level option availability projection (ticket
|
|
8575
|
+
[`1ZQjSm0j`](https://trello.com/c/1ZQjSm0j)). Surfaces
|
|
8576
|
+
`per_value_availability` for workflow-level options that live in
|
|
8577
|
+
OpenAPI **component** schemas (not the per-operation
|
|
8578
|
+
`schemas/operations/*.yaml` that drive the `operations` map),
|
|
8579
|
+
keyed by REQUEST-shape path:
|
|
8580
|
+
- `delivery.mode.per_value_availability` (from the `Delivery.mode`
|
|
8581
|
+
schema)
|
|
8582
|
+
- `delivery.selection.type.per_value_availability` (from the
|
|
8583
|
+
`DeliverySelection.type` schema)
|
|
8584
|
+
|
|
8585
|
+
Closes the co0CERtJ (v2.19.0) authority-hierarchy gap: those
|
|
8586
|
+
`planned` downgrades lived only in the (decorative per ADR-0001
|
|
8587
|
+
§1.5) openapi component tags; this surfaces them in the
|
|
8588
|
+
authoritative sidecar.
|
|
8589
|
+
|
|
8590
|
+
**Optional in the wire envelope** (same incremental-mirroring
|
|
8591
|
+
stance as `endpoints`): the committed sidecar emits this block
|
|
8592
|
+
authoritatively; the runtime `GET /api/operations/schema` MAY
|
|
8593
|
+
mirror it once the API generator catches up. Consumers MUST
|
|
8594
|
+
tolerate its absence from the runtime endpoint (read the sidecar)
|
|
8595
|
+
and its presence from either source.
|
|
8596
|
+
properties:
|
|
8597
|
+
delivery:
|
|
8598
|
+
type: object
|
|
8599
|
+
properties:
|
|
8600
|
+
mode:
|
|
8601
|
+
type: object
|
|
8602
|
+
properties:
|
|
8603
|
+
per_value_availability:
|
|
8604
|
+
$ref: '#/components/schemas/PerValueAvailability'
|
|
8605
|
+
selection:
|
|
8606
|
+
type: object
|
|
8607
|
+
properties:
|
|
8608
|
+
type:
|
|
8609
|
+
type: object
|
|
8610
|
+
properties:
|
|
8611
|
+
per_value_availability:
|
|
8612
|
+
$ref: '#/components/schemas/PerValueAvailability'
|
|
8312
8613
|
|
|
8313
8614
|
EndpointProjection:
|
|
8314
8615
|
type: object
|
|
@@ -8584,6 +8885,22 @@ components:
|
|
|
8584
8885
|
by `make check-per-value-availability` (CI guard, ticket
|
|
8585
8886
|
[I17 `0gwtwCav`](https://trello.com/c/0gwtwCav)). Runtime
|
|
8586
8887
|
emission lands with I3.
|
|
8888
|
+
per_value_depends_on:
|
|
8889
|
+
type: object
|
|
8890
|
+
description: |
|
|
8891
|
+
Per-enum-value cross-field constraint map, only meaningful
|
|
8892
|
+
when `type: enum`. Keys MUST be a subset of `values[]`;
|
|
8893
|
+
each entry value is a `depends_on`-shaped condition mapping
|
|
8894
|
+
that the named enum value REQUIRES. Distinct from
|
|
8895
|
+
option-level `depends_on` (which gates applicability with
|
|
8896
|
+
silent-ignore semantics); `per_value_depends_on` rejects
|
|
8897
|
+
the request with `invalid_options` when the named value is
|
|
8898
|
+
chosen and the condition is not met. Verified by
|
|
8899
|
+
`make check-per-value-depends-on` (CI guard, ticket
|
|
8900
|
+
[`bsV3FWM5`](https://trello.com/c/bsV3FWM5)). Runtime
|
|
8901
|
+
emission ships verbatim alongside other availability
|
|
8902
|
+
metadata. See `schemas/FORMAT.md` §per_value_depends_on.
|
|
8903
|
+
additionalProperties: true
|
|
8587
8904
|
min:
|
|
8588
8905
|
type: number
|
|
8589
8906
|
description: Minimum value (for integer/float types)
|