@giveitsmaller/contracts 0.83.0 → 0.85.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/anonymous-policy.yaml +29 -1
- package/asyncapi/README.md +1 -1
- package/asyncapi/events.yaml +54 -10
- package/availability/availability.json +31 -31
- package/code-builder/code-builder-metadata.json +29 -29
- package/dist/asyncapi/AnonymousSchema_286.d.ts +4 -0
- package/dist/asyncapi/AnonymousSchema_286.js +5 -0
- package/dist/asyncapi/OperationMetrics.d.ts +2 -0
- package/dist/asyncapi/index.d.ts +1 -0
- package/dist/asyncapi/index.js +1 -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 +9 -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/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/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 +2 -2
- 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 +22 -2
- package/dist/openapi/models/DroppedOption.js +3 -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 +41 -1
- package/dist/openapi/models/JobResponse.js +7 -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 +13 -1
- package/dist/openapi/models/LivenessResponse.js +3 -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 +4 -2
- 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 +37 -1
- package/dist/openapi/models/OperationResultMetadata.js +9 -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 +1 -1
- package/dist/openapi/models/OperationType.js +1 -1
- 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 +7 -2
- package/dist/openapi/models/ProbePendingResponse.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 +2 -2
- 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 +11 -8
- 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/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 +4 -3
- 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/openapi/api.yaml +269 -76
- package/operation-capabilities/operation-capabilities.json +1 -2
- package/operations/schemas/audio_overlay.yaml +4 -4
- package/operations/schemas/audio_watermark.yaml +4 -4
- package/operations/schemas/compress.yaml +18 -13
- package/operations/schemas/convert.yaml +2 -2
- package/operations/schemas/custom_luma.yaml +2 -2
- package/operations/schemas/split.yaml +2 -2
- package/operations/schemas/thumbnail.yaml +1 -1
- package/operations/schemas/transform.yaml +2 -2
- package/operations/schemas/video_text_watermark.yaml +2 -2
- package/operations/schemas/video_watermark.yaml +2 -2
- package/package.json +6 -4
- package/pricing-policy.yaml +82 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* GISL Compression API
|
|
5
5
|
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Free-text string fields: `x-string-vocabulary` (ticket [`Q79yjcFF`](https://trello.com/c/Q79yjcFF)).** A `type: string` field with no `enum` that names example values says, as data, what a client may do with them (the same marker is used in the AsyncAPI document): - `open` — a vocabulary that grows. Each published value keeps its meaning, the SET is not closed: switch on the values you know and handle an unknown one as the generic case (e.g. `ErrorEnvelope.error`). - `advisory` — explanatory text. Display or log it; **never switch on it** (e.g. `SseWorkflowTerminalData.reason`). - `none` — not a vocabulary at all (an expression or an identifier, e.g. `OptionSchema.pattern`). A field whose description hedges with \"common values\" or \"free-form\" must carry the marker; a test enforces it. **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 2.
|
|
7
|
+
* The version of the OpenAPI document: 2.220.0
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* GISL Compression API
|
|
3
3
|
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Free-text string fields: `x-string-vocabulary` (ticket [`Q79yjcFF`](https://trello.com/c/Q79yjcFF)).** A `type: string` field with no `enum` that names example values says, as data, what a client may do with them (the same marker is used in the AsyncAPI document): - `open` — a vocabulary that grows. Each published value keeps its meaning, the SET is not closed: switch on the values you know and handle an unknown one as the generic case (e.g. `ErrorEnvelope.error`). - `advisory` — explanatory text. Display or log it; **never switch on it** (e.g. `SseWorkflowTerminalData.reason`). - `none` — not a vocabulary at all (an expression or an identifier, e.g. `OptionSchema.pattern`). A field whose description hedges with \"common values\" or \"free-form\" must carry the marker; a test enforces it. **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
|
|
4
4
|
*
|
|
5
|
-
* The version of the OpenAPI document: 2.
|
|
5
|
+
* The version of the OpenAPI document: 2.220.0
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/dist/openapi/runtime.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* GISL Compression API
|
|
5
5
|
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Free-text string fields: `x-string-vocabulary` (ticket [`Q79yjcFF`](https://trello.com/c/Q79yjcFF)).** A `type: string` field with no `enum` that names example values says, as data, what a client may do with them (the same marker is used in the AsyncAPI document): - `open` — a vocabulary that grows. Each published value keeps its meaning, the SET is not closed: switch on the values you know and handle an unknown one as the generic case (e.g. `ErrorEnvelope.error`). - `advisory` — explanatory text. Display or log it; **never switch on it** (e.g. `SseWorkflowTerminalData.reason`). - `none` — not a vocabulary at all (an expression or an identifier, e.g. `OptionSchema.pattern`). A field whose description hedges with \"common values\" or \"free-form\" must carry the marker; a test enforces it. **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 2.
|
|
7
|
+
* The version of the OpenAPI document: 2.220.0
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/openapi/api.yaml
CHANGED
|
@@ -103,7 +103,7 @@ info:
|
|
|
103
103
|
of truth instead of hardcoding magic numbers. A runtime
|
|
104
104
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
105
105
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
106
|
-
version: 2.
|
|
106
|
+
version: 2.220.0
|
|
107
107
|
contact:
|
|
108
108
|
name: API Support
|
|
109
109
|
|
|
@@ -1472,9 +1472,20 @@ paths:
|
|
|
1472
1472
|
immutable ledger transaction is written in the same DB
|
|
1473
1473
|
transaction as the workflow row; the response's
|
|
1474
1474
|
`processing_plan` reflects the same estimate the reservation
|
|
1475
|
-
was sized against.
|
|
1476
|
-
|
|
1477
|
-
|
|
1475
|
+
was sized against. **Callers pay only for successful results,
|
|
1476
|
+
per job** (owner decisions 610(4) and 635; the policy is data in
|
|
1477
|
+
`schemas/pricing-policy.yaml`). Each job that completes is charged;
|
|
1478
|
+
a job that fails after its retries is refunded, as is cancelled
|
|
1479
|
+
work (a workflow paused for credits has its reservation released at
|
|
1480
|
+
the pause and reserved again on resume), so a `partially_failed`
|
|
1481
|
+
workflow is charged for the jobs that completed. A long-form fan-out is settled
|
|
1482
|
+
at what it actually used and the difference is refunded. Uploading
|
|
1483
|
+
is free; an operation on a larger input costs more, through the
|
|
1484
|
+
size surcharge in that file. Refunds are separate ledger rows
|
|
1485
|
+
referencing the reservation via `reference_id`. ⚠️ **Contract-first:**
|
|
1486
|
+
until api ships the per-job change, the API refunds the WHOLE
|
|
1487
|
+
reservation when any job fails, so a `partially_failed` workflow is
|
|
1488
|
+
charged nothing (`pricing-policy.yaml` `charge.api_today`). The
|
|
1478
1489
|
idempotency-key wire shape for retried reservation attempts
|
|
1479
1490
|
is deferred per ADR-0001 §1.7 row 5.
|
|
1480
1491
|
operationId: createWorkflow
|
|
@@ -1580,7 +1591,11 @@ paths:
|
|
|
1580
1591
|
- type: compress
|
|
1581
1592
|
responses:
|
|
1582
1593
|
'201':
|
|
1583
|
-
description:
|
|
1594
|
+
description: |
|
|
1595
|
+
Workflow created. A long video `compress` that the API runs as an
|
|
1596
|
+
internal fan-out appears as ONE job with ONE `compress` operation
|
|
1597
|
+
whose id is the one `/status` and SSE report; see **LONG-FORM
|
|
1598
|
+
FAN-OUT: ONE PUBLIC ROW** on `GET /api/workflows/{id}/events`.
|
|
1584
1599
|
content:
|
|
1585
1600
|
application/json:
|
|
1586
1601
|
schema:
|
|
@@ -2016,7 +2031,7 @@ paths:
|
|
|
2016
2031
|
Per-violation `required_tier` names the tier (if any)
|
|
2017
2032
|
whose `per_tier_constraints` would accommodate the
|
|
2018
2033
|
request (`null` = no tier resolves, e.g. enterprise
|
|
2019
|
-
already at
|
|
2034
|
+
already at its hard ceiling). Distinct from
|
|
2020
2035
|
`TierRestrictionResponse` (403, request-level upload
|
|
2021
2036
|
quota — see [ADR-0012](../docs/decisions/0012-processing-class-band-reject-envelope.md)
|
|
2022
2037
|
for the band-vs-tier split). Per ADR-0001 §F6
|
|
@@ -2104,7 +2119,13 @@ paths:
|
|
|
2104
2119
|
Optional, best-effort. Present only on the
|
|
2105
2120
|
`probe_pending` branch — suggested seconds to wait
|
|
2106
2121
|
before re-polling the upload probe and retrying the
|
|
2107
|
-
workflow.
|
|
2122
|
+
workflow. **A guest (no credential) cannot poll the probe**
|
|
2123
|
+
(`POST /api/uploads/{id}/probe` requires sign-in): it retries
|
|
2124
|
+
the create itself. After `video.probe_wait_bound_seconds` from the upload
|
|
2125
|
+
the create proceeds without a duration (guest unknown-duration rule). A `probe_pending` refusal does not count
|
|
2126
|
+
against the guest per-minute create limit and reserves no
|
|
2127
|
+
guest allowance credits (`schemas/anonymous-policy.yaml`
|
|
2128
|
+
`video`). Delta-seconds (RFC 9110), mirroring the 429
|
|
2108
2129
|
login path's `Retry-After` convention. Absent until the
|
|
2109
2130
|
server-side probe-staleness bound (API `e1Idv6UL`)
|
|
2110
2131
|
lands; consumers MUST treat absence as "retry on your
|
|
@@ -2327,6 +2348,12 @@ paths:
|
|
|
2327
2348
|
Retrieve the current status of a workflow with nested job and operation breakdown.
|
|
2328
2349
|
Each operation includes its current progress and, when completed, its result
|
|
2329
2350
|
(download URL, size, metrics).
|
|
2351
|
+
|
|
2352
|
+
A long video `compress` that the API runs as an internal fan-out
|
|
2353
|
+
(split, segments, concat) appears here as ONE job with ONE `compress`
|
|
2354
|
+
operation. See **LONG-FORM FAN-OUT: ONE PUBLIC ROW** on
|
|
2355
|
+
`GET /api/workflows/{id}/events`, which is normative for this
|
|
2356
|
+
endpoint too.
|
|
2330
2357
|
operationId: getWorkflowStatus
|
|
2331
2358
|
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
|
|
2332
2359
|
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
@@ -2573,6 +2600,15 @@ paths:
|
|
|
2573
2600
|
schema:
|
|
2574
2601
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
2575
2602
|
|
|
2603
|
+
# LONG-FORM FAN-OUT fold (section in the description below), read from
|
|
2604
|
+
# compression_api main 2a8dd8d5, paths under compression/src/Jobs/:
|
|
2605
|
+
# fold + public ids: Domain/Service/FanOutClusterFolder.php:22-47,218-239,332-354,452-545
|
|
2606
|
+
# ids: Domain/Service/FanOutNodeIdFactory.php:82-94,176-196
|
|
2607
|
+
# public op shape: Domain/ValueObject/FanOutPublicOperation.php:45,85-87
|
|
2608
|
+
# SSE frames: Application/Service/WorkflowSseService.php:333-350,563-671
|
|
2609
|
+
# create 201 row: Presentation/Http/Controller/WorkflowController.php:543-589,725-740
|
|
2610
|
+
# fallback path: Application/Service/LongFormFanOutBuilder.php:784-830
|
|
2611
|
+
# concat auto-retry: Infrastructure/Messaging/Handler/OperationResultHandler.php:712-730
|
|
2576
2612
|
/api/workflows/{id}/events:
|
|
2577
2613
|
get:
|
|
2578
2614
|
summary: Stream workflow events (SSE)
|
|
@@ -2880,6 +2916,80 @@ paths:
|
|
|
2880
2916
|
(the `id:` and `event:` lines) is transport-level and intentionally
|
|
2881
2917
|
**not** schema-described.
|
|
2882
2918
|
|
|
2919
|
+
### LONG-FORM FAN-OUT: ONE PUBLIC ROW
|
|
2920
|
+
|
|
2921
|
+
This section is normative for **every read surface**; the `/status`
|
|
2922
|
+
and create-201 descriptions point here rather than restate it.
|
|
2923
|
+
|
|
2924
|
+
The API may run a long video `compress` as an internal fan-out: one
|
|
2925
|
+
`split` job, then N parallel segment `compress` jobs, then a
|
|
2926
|
+
stream-copy concat (`merge`). It applies only to a root job holding a
|
|
2927
|
+
single `compress`, and only one such job per workflow. Today the API
|
|
2928
|
+
also requires that no other job depends on it; a client must not rely
|
|
2929
|
+
on that: if a fanned-out job has dependants, they read the joined
|
|
2930
|
+
output, exactly as they would read the job's output unsplit.
|
|
2931
|
+
**Clients never see the fan-out.** The API folds it into
|
|
2932
|
+
ONE public job with ONE public operation on the create 201,
|
|
2933
|
+
`GET /status` and this stream, and into ONE job row on
|
|
2934
|
+
`GET /api/workflows` (whose rows carry no operations; read the
|
|
2935
|
+
operation from `/status`). On `GET /downloads` the joined file is
|
|
2936
|
+
listed under the original `job_ref` with operation `compress`, when
|
|
2937
|
+
it is delivered at all: only once it is complete, only if the
|
|
2938
|
+
delivery selection includes that job, and only while retained. The
|
|
2939
|
+
internal jobs and operations do not appear on any surface, and this
|
|
2940
|
+
stream sends no frame for them.
|
|
2941
|
+
|
|
2942
|
+
| field | value |
|
|
2943
|
+
|---|---|
|
|
2944
|
+
| `job_ref` / `ref` | the client's **original** job ref, on every surface and every path below |
|
|
2945
|
+
| `job_id` | one server-chosen id for the public job, the same before and after the split expands |
|
|
2946
|
+
| `operation_id` / `operations[0].id` | one server-chosen id, the same on the 201, `/status` and this stream, before and after the split expands (exceptions below) |
|
|
2947
|
+
| `type` | `compress` (never `split` or `merge`), including the output-name marker |
|
|
2948
|
+
| `processing_class` (`/status`, `processing_plan`) | `long_form` |
|
|
2949
|
+
| `depends_on` | `[]` |
|
|
2950
|
+
| outputs | exactly one: the joined file |
|
|
2951
|
+
|
|
2952
|
+
**On this stream** the public operation gets zero or more
|
|
2953
|
+
`operation.progress` frames, then ONE `operation.completed` or ONE
|
|
2954
|
+
`operation.failed`, then ONE `job.completed` or `job.failed` for the
|
|
2955
|
+
public job. A failure can arrive with no progress frame before it,
|
|
2956
|
+
so the terminal frame may be the first one. These frames
|
|
2957
|
+
carry **no `id:` line**. `operation.completed` carries no
|
|
2958
|
+
`result_metadata`, and its `result` stays optional as on every
|
|
2959
|
+
`SseOperationCompletedData`: when it is absent, read the output from
|
|
2960
|
+
`GET /downloads`. `job.failed` can arrive in a later frame batch
|
|
2961
|
+
than `operation.failed`.
|
|
2962
|
+
|
|
2963
|
+
**Progress** is weighted by phase: split 10, segments 80 (shared
|
|
2964
|
+
equally), concat 10. Until the split finishes and the segments exist,
|
|
2965
|
+
it **stays at or below 10**: a long bar at 10% is the split running,
|
|
2966
|
+
not a stall. On this stream it never decreases within one connection.
|
|
2967
|
+
`GET /status` reads a snapshot per poll and can dip briefly between
|
|
2968
|
+
polls. Clients that must not show a backwards bar hold their own
|
|
2969
|
+
maximum per `job_ref`.
|
|
2970
|
+
|
|
2971
|
+
**Failure.** Any failed segment fails the whole public operation. The
|
|
2972
|
+
reported `error_code` is the causing failure; a `never_started`
|
|
2973
|
+
collateral code is reported only when there is no causing one.
|
|
2974
|
+
|
|
2975
|
+
**The operation id is NOT stable in two cases. Key the row on
|
|
2976
|
+
`job_ref`, which is.**
|
|
2977
|
+
1. **Unsplittable input.** When the split finds the file cannot be
|
|
2978
|
+
split, the API runs one plain long-form `compress` instead. It has
|
|
2979
|
+
a **new** `job_id` and `operation_id`, under the same `job_ref`.
|
|
2980
|
+
The first id gets no terminal frame. Its progress starts again
|
|
2981
|
+
from 0, so a bar keyed on `job_ref` goes back from 10 to 0 once.
|
|
2982
|
+
2. **Automatic retry of the concat step.** The retry is a new
|
|
2983
|
+
operation with a new id, and the public row then shows that id.
|
|
2984
|
+
User retries (`POST /api/operations/{id}/retry`) are refused for
|
|
2985
|
+
the internal operations.
|
|
2986
|
+
|
|
2987
|
+
**Downloads.** Before the split finishes the public job's
|
|
2988
|
+
`/downloads` row lists no files; while segments run it can be
|
|
2989
|
+
absent; it lists the one output once the concat completes. On the
|
|
2990
|
+
unsplittable path there is no concat: the fallback `compress` job
|
|
2991
|
+
is an ordinary row and lists its output when it completes.
|
|
2992
|
+
|
|
2883
2993
|
### AUTH ON THE STREAM HOST: the CREDENTIAL decides, not the caller
|
|
2884
2994
|
|
|
2885
2995
|
**Two axes, and conflating them is what made two earlier versions of this
|
|
@@ -3586,29 +3696,13 @@ paths:
|
|
|
3586
3696
|
a **409** — cancel it first (`POST /api/workflows/{id}/cancel`) or wait
|
|
3587
3697
|
for it to finish. Archiving does NOT change the workflow's status; it
|
|
3588
3698
|
stays terminal and the response echoes it unchanged.
|
|
3589
|
-
#
|
|
3590
|
-
#
|
|
3591
|
-
#
|
|
3592
|
-
#
|
|
3593
|
-
#
|
|
3594
|
-
#
|
|
3595
|
-
|
|
3596
|
-
# `config/`;
|
|
3597
|
-
# * verified independently by sdks (named commit) and by codex reading
|
|
3598
|
-
# the list controller and its repository.
|
|
3599
|
-
#
|
|
3600
|
-
# ⚠️ CORRECTION TO THE RELAYED EVIDENCE, because it changes the ticket
|
|
3601
|
-
# rather than the verdict: the claim reaching this repo was that a grep
|
|
3602
|
-
# for `archiveWorkflow|/archive|archived` over `src` and `config`
|
|
3603
|
-
# "returns NO OUTPUT". IT DOES NOT — `ArchiveWorkflowCommand`,
|
|
3604
|
-
# `ArchiveWorkflowCommandHandler` and a `RestoreWorkflow` command all
|
|
3605
|
-
# EXIST, and there is an ADMIN CRUD controller that archives. So this is
|
|
3606
|
-
# **implemented in the application layer and not exposed on the public
|
|
3607
|
-
# API**, which is a different thing from "nothing behind it". The verdict
|
|
3608
|
-
# is unchanged — an unroutable capability is unreachable, so `planned` is
|
|
3609
|
-
# correct — but anyone scoping the work should know a handler already
|
|
3610
|
-
# exists.
|
|
3611
|
-
x-availability: planned
|
|
3699
|
+
# ROUTE ADDED: compression_api #804 (merge 85dd49fa, 2026-09-30) serves
|
|
3700
|
+
# the public POST route, owner-scoped (ownership denial 404). It was
|
|
3701
|
+
# `planned` since 2026-08-12 (yi4TDKVJ) because no route existed. Now
|
|
3702
|
+
# `beta` on a staging customer-path round-trip (e2e, 2026-09-30,
|
|
3703
|
+
# availability/staging-verification-log.yaml). `stable` needs a prod
|
|
3704
|
+
# observation once api's release carrying #804 is on prod.
|
|
3705
|
+
x-availability: beta
|
|
3612
3706
|
operationId: archiveWorkflow
|
|
3613
3707
|
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
|
|
3614
3708
|
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
@@ -3700,29 +3794,13 @@ paths:
|
|
|
3700
3794
|
`status` is the workflow's unchanged status (any `WorkflowStatus`
|
|
3701
3795
|
value), not a fixed terminal subset. There is no 409: un-archiving is
|
|
3702
3796
|
always safe.
|
|
3703
|
-
#
|
|
3704
|
-
#
|
|
3705
|
-
#
|
|
3706
|
-
#
|
|
3707
|
-
#
|
|
3708
|
-
#
|
|
3709
|
-
|
|
3710
|
-
# `config/`;
|
|
3711
|
-
# * verified independently by sdks (named commit) and by codex reading
|
|
3712
|
-
# the list controller and its repository.
|
|
3713
|
-
#
|
|
3714
|
-
# ⚠️ CORRECTION TO THE RELAYED EVIDENCE, because it changes the ticket
|
|
3715
|
-
# rather than the verdict: the claim reaching this repo was that a grep
|
|
3716
|
-
# for `archiveWorkflow|/archive|archived` over `src` and `config`
|
|
3717
|
-
# "returns NO OUTPUT". IT DOES NOT — `ArchiveWorkflowCommand`,
|
|
3718
|
-
# `ArchiveWorkflowCommandHandler` and a `RestoreWorkflow` command all
|
|
3719
|
-
# EXIST, and there is an ADMIN CRUD controller that archives. So this is
|
|
3720
|
-
# **implemented in the application layer and not exposed on the public
|
|
3721
|
-
# API**, which is a different thing from "nothing behind it". The verdict
|
|
3722
|
-
# is unchanged — an unroutable capability is unreachable, so `planned` is
|
|
3723
|
-
# correct — but anyone scoping the work should know a handler already
|
|
3724
|
-
# exists.
|
|
3725
|
-
x-availability: planned
|
|
3797
|
+
# ROUTE ADDED: compression_api #804 (merge 85dd49fa, 2026-09-30) serves
|
|
3798
|
+
# the public POST route, owner-scoped (ownership denial 404). It was
|
|
3799
|
+
# `planned` since 2026-08-12 (yi4TDKVJ) because no route existed. Now
|
|
3800
|
+
# `beta` on a staging customer-path round-trip (e2e, 2026-09-30,
|
|
3801
|
+
# availability/staging-verification-log.yaml). `stable` needs a prod
|
|
3802
|
+
# observation once api's release carrying #804 is on prod.
|
|
3803
|
+
x-availability: beta
|
|
3726
3804
|
operationId: restoreWorkflow
|
|
3727
3805
|
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
|
|
3728
3806
|
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
@@ -6228,12 +6306,12 @@ paths:
|
|
|
6228
6306
|
value:
|
|
6229
6307
|
success: true
|
|
6230
6308
|
data:
|
|
6231
|
-
monthly_balance:
|
|
6309
|
+
monthly_balance: 800
|
|
6232
6310
|
purchased_balance: 5000
|
|
6233
|
-
overdraft_limit:
|
|
6311
|
+
overdraft_limit: 200
|
|
6234
6312
|
overdraft_debt: 0
|
|
6235
|
-
available_credits:
|
|
6236
|
-
monthly_allowance:
|
|
6313
|
+
available_credits: 6000
|
|
6314
|
+
monthly_allowance: 1000
|
|
6237
6315
|
tier: pro
|
|
6238
6316
|
pro_overdrafted:
|
|
6239
6317
|
summary: Pro tier in overdraft (monthly + purchased exhausted)
|
|
@@ -6242,10 +6320,10 @@ paths:
|
|
|
6242
6320
|
data:
|
|
6243
6321
|
monthly_balance: 0
|
|
6244
6322
|
purchased_balance: 0
|
|
6245
|
-
overdraft_limit:
|
|
6246
|
-
overdraft_debt:
|
|
6247
|
-
available_credits:
|
|
6248
|
-
monthly_allowance:
|
|
6323
|
+
overdraft_limit: 200
|
|
6324
|
+
overdraft_debt: 150
|
|
6325
|
+
available_credits: 50
|
|
6326
|
+
monthly_allowance: 1000
|
|
6249
6327
|
tier: pro
|
|
6250
6328
|
'401':
|
|
6251
6329
|
description: Authentication required.
|
|
@@ -8286,7 +8364,10 @@ components:
|
|
|
8286
8364
|
overdraft_debt:
|
|
8287
8365
|
type: integer
|
|
8288
8366
|
minimum: 0
|
|
8289
|
-
description:
|
|
8367
|
+
description: >-
|
|
8368
|
+
Credits currently owed against the overdraft pool. Repaid one
|
|
8369
|
+
credit for one credit from the next monthly grant, on every
|
|
8370
|
+
plan (`schemas/pricing-policy.yaml` `overdraft.repayment_ratio`).
|
|
8290
8371
|
available_credits:
|
|
8291
8372
|
type: integer
|
|
8292
8373
|
description: |
|
|
@@ -9893,6 +9974,14 @@ components:
|
|
|
9893
9974
|
description: |
|
|
9894
9975
|
Which guest limit was exceeded. OPEN: a consumer that does
|
|
9895
9976
|
not know a value shows the envelope's localised message.
|
|
9977
|
+
`video_duration_seconds` is only ever sent for a MEASURED
|
|
9978
|
+
duration: a guest video whose duration is unknown (the probe
|
|
9979
|
+
could not measure one, or had not landed within
|
|
9980
|
+
`video.probe_wait_bound_seconds` of the upload) is allowed, not
|
|
9981
|
+
refused, as an ordinary guest create that reserves allowance
|
|
9982
|
+
credits and counts against the per-minute create limit (owner
|
|
9983
|
+
decision 648, `schemas/anonymous-policy.yaml`
|
|
9984
|
+
`video.unknown_duration`).
|
|
9896
9985
|
type: string
|
|
9897
9986
|
x-enum-openness: open
|
|
9898
9987
|
enum:
|
|
@@ -10024,7 +10113,12 @@ components:
|
|
|
10024
10113
|
(`ok` → re-`POST /api/workflows` the same request; `corrupt` /
|
|
10025
10114
|
`unsupported_codec` → surface the probe error, do not retry).
|
|
10026
10115
|
The `Retry-After` response header (when present) carries the
|
|
10027
|
-
suggested delay in seconds before the next poll/retry.
|
|
10116
|
+
suggested delay in seconds before the next poll/retry. **A guest
|
|
10117
|
+
(no credential) cannot poll**: the probe endpoint requires
|
|
10118
|
+
sign-in, so a guest re-`POST`s the same create on `Retry-After`
|
|
10119
|
+
or its own backoff; the refusal does not count against its
|
|
10120
|
+
per-minute create limit or allowance
|
|
10121
|
+
(`schemas/anonymous-policy.yaml` `video`).
|
|
10028
10122
|
|
|
10029
10123
|
Delivered alongside `ValidationErrorEnvelope`,
|
|
10030
10124
|
`FeatureNotAvailableResponse`, and
|
|
@@ -10219,7 +10313,7 @@ components:
|
|
|
10219
10313
|
server SHOULD set `required_tier` to that tier — consumers
|
|
10220
10314
|
can offer an upgrade nudge. `null` (or omitted) means
|
|
10221
10315
|
**no tier resolves** the overflow (e.g. enterprise already
|
|
10222
|
-
hits
|
|
10316
|
+
hits its hard ceiling per
|
|
10223
10317
|
[ADR-0011](../docs/decisions/0011-per-tier-processing-class-constraints.md)
|
|
10224
10318
|
D1–D4).
|
|
10225
10319
|
|
|
@@ -10271,7 +10365,7 @@ components:
|
|
|
10271
10365
|
`required_tier` on each `ProcessingClassBandViolation` names
|
|
10272
10366
|
the tier (if any) whose `per_tier_constraints` would
|
|
10273
10367
|
accommodate the request; `null` means terminal (e.g. enterprise
|
|
10274
|
-
already at
|
|
10368
|
+
already at its hard ceiling).
|
|
10275
10369
|
|
|
10276
10370
|
Per
|
|
10277
10371
|
[ADR-0012](../docs/decisions/0012-processing-class-band-reject-envelope.md)
|
|
@@ -10730,8 +10824,9 @@ components:
|
|
|
10730
10824
|
Recommended chunk size in bytes for multipart upload
|
|
10731
10825
|
chunks (16 MiB / 16,777,216 bytes — 1024-based). Raised
|
|
10732
10826
|
from 5 MiB by CON-1 (ADR-0011): S3 caps a multipart
|
|
10733
|
-
upload at 10,000 parts, and the Enterprise envelope
|
|
10734
|
-
120 GB
|
|
10827
|
+
upload at 10,000 parts, and the Enterprise envelope was
|
|
10828
|
+
sized at 120 GB (the per-file ceiling is now 100 GiB, owner
|
|
10829
|
+
649(2), which fits with margin). At 16 MiB a 120 GiB object needs
|
|
10735
10830
|
7,680 parts (≤ 10,000, inside AWS's 16–64 MB recommended
|
|
10736
10831
|
band); 5 MiB would need 24,576 and 10 MiB 12,288 — both
|
|
10737
10832
|
exceed the S3 limit. **Wire-incompatible change** — SDKs
|
|
@@ -12482,13 +12577,16 @@ components:
|
|
|
12482
12577
|
dropped_options:
|
|
12483
12578
|
type: array
|
|
12484
12579
|
description: |
|
|
12485
|
-
Options
|
|
12486
|
-
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12580
|
+
Options holding their DEFAULT (supplied by the server, or
|
|
12581
|
+
sent by the client equal to the schema default, which reads as
|
|
12582
|
+
defaulted — `schemas/FORMAT.md` "Container-conditional
|
|
12583
|
+
defaults") that were then REMOVED or SUBSTITUTED, because the
|
|
12584
|
+
resolved execution path or output container cannot honour
|
|
12585
|
+
them. **Never contains a caller's choice** — a value that
|
|
12586
|
+
differs from the default and cannot be honoured is refused
|
|
12587
|
+
(`422 feature_not_available` / `invalid_options`), not
|
|
12588
|
+
dropped. That split is the whole rule: a caller who asked for
|
|
12589
|
+
nothing is not punished for our default; a caller who asked for
|
|
12492
12590
|
something is told.
|
|
12493
12591
|
|
|
12494
12592
|
**Why this field exists at all.** Dropping a defaulted
|
|
@@ -12510,7 +12608,8 @@ components:
|
|
|
12510
12608
|
DroppedOption:
|
|
12511
12609
|
type: object
|
|
12512
12610
|
description: |
|
|
12513
|
-
One server-supplied
|
|
12611
|
+
One defaulted option (server-supplied, or sent equal to its
|
|
12612
|
+
schema default) removed or substituted before dispatch.
|
|
12514
12613
|
**Names the THING, the WHY and the PATH** — the three parts a
|
|
12515
12614
|
caller needs to act, and the three a single interpolated string
|
|
12516
12615
|
would fuse into something unparseable.
|
|
@@ -12557,12 +12656,29 @@ components:
|
|
|
12557
12656
|
caller on a guessed class is the same error as asserting
|
|
12558
12657
|
a measurement never taken**, so an unmeasured basis
|
|
12559
12658
|
degrades to a drop and never to a 422.
|
|
12659
|
+
- `container_incompatible_default` — the option held its
|
|
12660
|
+
schema default (omitted, or sent equal to the default),
|
|
12661
|
+
and the output container cannot carry that value, so the
|
|
12662
|
+
container's own default was applied instead; the applied
|
|
12663
|
+
value is in `resolved_value` (e.g. `codec` `h264` on a
|
|
12664
|
+
WebM output → `vp9`; `audio_codec` `copy` of AAC into
|
|
12665
|
+
WebM → `opus`). See `schemas/FORMAT.md`
|
|
12666
|
+
"Container-conditional defaults". Contract-first (api
|
|
12667
|
+
`PSJ1vBC7`).
|
|
12560
12668
|
|
|
12561
12669
|
The class token is deliberately NOT interpolated into this
|
|
12562
12670
|
string: the reason and the path are separate fields because
|
|
12563
12671
|
a fused `not_available_on_<class>` is unparseable and
|
|
12564
12672
|
duplicates `processing_class`.
|
|
12565
12673
|
example: unavailable_on_processing_class
|
|
12674
|
+
resolved_value:
|
|
12675
|
+
type: string
|
|
12676
|
+
description: |
|
|
12677
|
+
OPTIONAL. The value the server applied in place of the
|
|
12678
|
+
dropped one, when it substituted a value rather than
|
|
12679
|
+
removing the option (`reason: container_incompatible_default`).
|
|
12680
|
+
Absent for a plain drop.
|
|
12681
|
+
example: vp9
|
|
12566
12682
|
|
|
12567
12683
|
ProcessingPlan:
|
|
12568
12684
|
type: object
|
|
@@ -14068,6 +14184,43 @@ components:
|
|
|
14068
14184
|
`input_filename`. Ticket [`j2s6T2qf`](https://trello.com/c/j2s6T2qf)
|
|
14069
14185
|
(FE before→after size, workflow-view launch ask).
|
|
14070
14186
|
example: 491520
|
|
14187
|
+
input_uploaded_at:
|
|
14188
|
+
type: string
|
|
14189
|
+
format: date-time
|
|
14190
|
+
description: |
|
|
14191
|
+
OPTIONAL. When the server finished receiving the job's input
|
|
14192
|
+
upload: a single-shot upload's accept, or a multipart
|
|
14193
|
+
`complete`. For a job with several uploaded inputs (e.g. a
|
|
14194
|
+
merge), the LATEST of them, since the job cannot start before
|
|
14195
|
+
its last input arrives; inputs that are not uploads (another
|
|
14196
|
+
job's output, an import) are ignored. Absent when the job has no
|
|
14197
|
+
uploaded input, and until the API records it. Card
|
|
14198
|
+
[`6EOlMAz4`](https://trello.com/c/6EOlMAz4) (e2e performance
|
|
14199
|
+
baseline, owner decisions 630/635): with `started_at` and
|
|
14200
|
+
`completed_at` it separates upload, queue and processing time on
|
|
14201
|
+
the server clock. Contract-first: api populates it in a
|
|
14202
|
+
follow-up; a client must treat absence as "not recorded".
|
|
14203
|
+
example: "2026-09-29T21:00:00Z"
|
|
14204
|
+
started_at:
|
|
14205
|
+
type: string
|
|
14206
|
+
format: date-time
|
|
14207
|
+
description: |
|
|
14208
|
+
OPTIONAL. When the job's first operation started processing (the
|
|
14209
|
+
first progress report from a worker). Absent while the job is
|
|
14210
|
+
queued, and for a job that never started. Server clock. See
|
|
14211
|
+
`input_uploaded_at`.
|
|
14212
|
+
example: "2026-09-29T21:00:04Z"
|
|
14213
|
+
completed_at:
|
|
14214
|
+
type: string
|
|
14215
|
+
format: date-time
|
|
14216
|
+
description: |
|
|
14217
|
+
OPTIONAL. When the job reached a terminal `JobStatus`
|
|
14218
|
+
(`completed` or `failed`), on the server clock. Absent while
|
|
14219
|
+
the job is not terminal.
|
|
14220
|
+
`completed_at - started_at` is the job's EXECUTION SPAN: for a
|
|
14221
|
+
chain of operations it includes any wait between them, so it is
|
|
14222
|
+
not pure processing time. See `input_uploaded_at`.
|
|
14223
|
+
example: "2026-09-29T21:00:19Z"
|
|
14071
14224
|
processing_class:
|
|
14072
14225
|
$ref: '#/components/schemas/ProcessingClass'
|
|
14073
14226
|
description: |
|
|
@@ -14177,7 +14330,9 @@ components:
|
|
|
14177
14330
|
`invalid_format` (input type unsupported),
|
|
14178
14331
|
`format_mismatch` (declared MIME ≠ content),
|
|
14179
14332
|
`decode_failed` (input unreadable/corrupt),
|
|
14180
|
-
`output_too_large` (output exceeded the size limit
|
|
14333
|
+
`output_too_large` (output exceeded the size limit; NOT for a
|
|
14334
|
+
same-format `compress`, which returns the original with
|
|
14335
|
+
`already_optimal` instead — owner decision 645(4)),
|
|
14181
14336
|
`missing_source` (source not found — fail-fast),
|
|
14182
14337
|
`invalid_key` (storage key invalid),
|
|
14183
14338
|
`processing_failed` (non-specific processing failure),
|
|
@@ -14276,7 +14431,35 @@ components:
|
|
|
14276
14431
|
"already optimised", not as "same size". On an ordinary result it
|
|
14277
14432
|
is absent or `false`; treat the two the same. Projected by the API from the wire
|
|
14278
14433
|
`OperationMetrics.already_optimal` (ticket `roNRMilt`).
|
|
14434
|
+
**Charged nothing** (owner decision 645(4),
|
|
14435
|
+
`schemas/pricing-policy.yaml` `charge.not_charged`): the
|
|
14436
|
+
operation's cost is refunded; other operations in the job are
|
|
14437
|
+
charged as usual. Applies to a completed `compress` on the
|
|
14438
|
+
resolved `same_format` route (`output_format` original, absent, or
|
|
14439
|
+
equal to the input's format; not the format-change facade, where
|
|
14440
|
+
the original is not what was asked for). A same-format compress
|
|
14441
|
+
that cannot shrink the file returns this, never `output_too_large`.
|
|
14442
|
+
⚠️ **Today this holds for SHORT-FORM compress only.** Long-form
|
|
14443
|
+
compress still fails `output_too_large` until lambdas ships its
|
|
14444
|
+
long-form copy path; do not promise "already optimised" or "no
|
|
14445
|
+
charge" for a long-form file before then. Contract-first: until api
|
|
14446
|
+
ships, the operation is charged (`charge.not_charged_api_today`).
|
|
14447
|
+
`already_optimal_kind` says which kind of "already optimised" it
|
|
14448
|
+
was.
|
|
14279
14449
|
example: true
|
|
14450
|
+
already_optimal_kind:
|
|
14451
|
+
type: string
|
|
14452
|
+
enum: [not_smaller]
|
|
14453
|
+
description: |
|
|
14454
|
+
OPTIONAL, only with `already_optimal: true`: WHY the original was
|
|
14455
|
+
returned. `not_smaller` — the file was compressed and the result
|
|
14456
|
+
was not smaller, so there is no quality trade-off to explain. It
|
|
14457
|
+
is the only kind any worker produces today (no production path
|
|
14458
|
+
declines to encode an efficient source). Absent, or a value you do
|
|
14459
|
+
not know: show neutral "already optimised" copy.
|
|
14460
|
+
Contract-first (card `cDZuuyg8`): projected from the wire
|
|
14461
|
+
`OperationMetrics.already_optimal_kind` once workers emit it.
|
|
14462
|
+
example: not_smaller
|
|
14280
14463
|
estimated_saving_pct:
|
|
14281
14464
|
type: number
|
|
14282
14465
|
minimum: 0
|
|
@@ -17167,6 +17350,16 @@ components:
|
|
|
17167
17350
|
app:
|
|
17168
17351
|
type: boolean
|
|
17169
17352
|
description: Application is running
|
|
17353
|
+
build:
|
|
17354
|
+
type: string
|
|
17355
|
+
description: |
|
|
17356
|
+
OPTIONAL. The release the running image was built as (the API's
|
|
17357
|
+
`APP_VERSION`, e.g. `1.15.2-rc.1`; `dev` for a local build;
|
|
17358
|
+
`unknown` when unset). Unauthenticated on purpose: a timing run
|
|
17359
|
+
reads it before and after, so a code-only deploy in the middle
|
|
17360
|
+
of the run is detectable (card `6EOlMAz4`, e2e performance
|
|
17361
|
+
baseline). Opaque: compare for equality, do not parse.
|
|
17362
|
+
example: "1.15.2-rc.1"
|
|
17170
17363
|
|
|
17171
17364
|
ReadinessResponse:
|
|
17172
17365
|
type: object
|
|
@@ -113,8 +113,8 @@ operation:
|
|
|
113
113
|
max_input_size_bytes: 50000000000 # 50 GB (Max self-serve band)
|
|
114
114
|
max_output_size_bytes: 50000000000
|
|
115
115
|
enterprise:
|
|
116
|
-
max_input_size_bytes:
|
|
117
|
-
max_output_size_bytes:
|
|
116
|
+
max_input_size_bytes: 107374182400 # 100 GiB = api's Enterprise upload cap (owner 649(2))
|
|
117
|
+
max_output_size_bytes: 107374182400
|
|
118
118
|
options:
|
|
119
119
|
start_at:
|
|
120
120
|
type: float
|
|
@@ -306,8 +306,8 @@ operation:
|
|
|
306
306
|
max_input_size_bytes: 50000000000 # 50 GB (Max self-serve band)
|
|
307
307
|
max_output_size_bytes: 50000000000
|
|
308
308
|
enterprise:
|
|
309
|
-
max_input_size_bytes:
|
|
310
|
-
max_output_size_bytes:
|
|
309
|
+
max_input_size_bytes: 107374182400 # 100 GiB = api's Enterprise upload cap (owner 649(2))
|
|
310
|
+
max_output_size_bytes: 107374182400
|
|
311
311
|
options:
|
|
312
312
|
start_at:
|
|
313
313
|
type: float
|