@giveitsmaller/contracts 0.81.0 → 0.82.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 +41 -0
- package/availability/availability.json +20 -14
- package/code-builder/code-builder-metadata.json +18 -12
- 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/AnonymousOperationNotAllowedResponse.d.ts +8 -6
- 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 +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageResponse.js +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
- package/dist/openapi/models/Delivery.d.ts +1 -1
- package/dist/openapi/models/Delivery.js +1 -1
- package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
- package/dist/openapi/models/DeliveryOutputRef.js +1 -1
- package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlan.js +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
- package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanReason.js +1 -1
- package/dist/openapi/models/DeliverySelection.d.ts +1 -1
- package/dist/openapi/models/DeliverySelection.js +1 -1
- package/dist/openapi/models/DownloadBundle.d.ts +1 -1
- package/dist/openapi/models/DownloadBundle.js +1 -1
- package/dist/openapi/models/DroppedOption.d.ts +1 -1
- package/dist/openapi/models/DroppedOption.js +1 -1
- package/dist/openapi/models/EmailNotify.d.ts +1 -1
- package/dist/openapi/models/EmailNotify.js +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
- package/dist/openapi/models/EndpointProjection.d.ts +1 -1
- package/dist/openapi/models/EndpointProjection.js +1 -1
- package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
- package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200Response.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBilling.js +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.d.ts +1 -1
- package/dist/openapi/models/ExportAccountData200ResponseDataBillingCheckoutSessionsInner.js +1 -1
- package/dist/openapi/models/ExternalDestination.d.ts +1 -1
- package/dist/openapi/models/ExternalDestination.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
- package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
- package/dist/openapi/models/ExternalImportRequest.js +1 -1
- package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
- package/dist/openapi/models/ExternalImportToken.js +1 -1
- package/dist/openapi/models/ExternalSource.d.ts +1 -1
- package/dist/openapi/models/ExternalSource.js +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
- package/dist/openapi/models/FeatureViolation.d.ts +1 -1
- package/dist/openapi/models/FeatureViolation.js +1 -1
- package/dist/openapi/models/GetProfile200Response.d.ts +1 -1
- package/dist/openapi/models/GetProfile200Response.js +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/GetProfile200ResponseData.js +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
- package/dist/openapi/models/JobDefinition.d.ts +1 -1
- package/dist/openapi/models/JobDefinition.js +1 -1
- package/dist/openapi/models/JobDownload.d.ts +1 -1
- package/dist/openapi/models/JobDownload.js +1 -1
- package/dist/openapi/models/JobInputV2.d.ts +1 -1
- package/dist/openapi/models/JobInputV2.js +1 -1
- package/dist/openapi/models/JobMediaClass.d.ts +1 -1
- package/dist/openapi/models/JobMediaClass.js +1 -1
- package/dist/openapi/models/JobOutputSource.d.ts +1 -1
- package/dist/openapi/models/JobOutputSource.js +1 -1
- package/dist/openapi/models/JobResponse.d.ts +1 -1
- package/dist/openapi/models/JobResponse.js +1 -1
- package/dist/openapi/models/JobStatus.d.ts +1 -1
- package/dist/openapi/models/JobStatus.js +1 -1
- package/dist/openapi/models/JobType.d.ts +1 -1
- package/dist/openapi/models/JobType.js +1 -1
- package/dist/openapi/models/LivenessResponse.d.ts +1 -1
- package/dist/openapi/models/LivenessResponse.js +1 -1
- package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser200Response.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
- package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser401Response.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/MetadataResponse.d.ts +1 -1
- package/dist/openapi/models/MetadataResponse.js +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
- package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExif.js +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MimeGroupSchema.d.ts +38 -1
- package/dist/openapi/models/MimeGroupSchema.js +3 -1
- package/dist/openapi/models/MultiInputSource.d.ts +1 -1
- package/dist/openapi/models/MultiInputSource.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
- package/dist/openapi/models/MultipartPartListing.js +1 -1
- package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignRequest.js +1 -1
- package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignResponse.js +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusResponse.js +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/NotifyConfig.d.ts +1 -1
- package/dist/openapi/models/NotifyConfig.js +1 -1
- package/dist/openapi/models/OperationCapability.d.ts +1 -1
- package/dist/openapi/models/OperationCapability.js +1 -1
- package/dist/openapi/models/OperationDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationDefinition.js +1 -1
- package/dist/openapi/models/OperationDownload.d.ts +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -1
- package/dist/openapi/models/OperationInputModel.d.ts +1 -1
- package/dist/openapi/models/OperationInputModel.js +1 -1
- package/dist/openapi/models/OperationMessageParamsValue.d.ts +1 -1
- package/dist/openapi/models/OperationMessageParamsValue.js +1 -1
- package/dist/openapi/models/OperationResponse.d.ts +1 -1
- package/dist/openapi/models/OperationResponse.js +1 -1
- package/dist/openapi/models/OperationResult.d.ts +1 -1
- package/dist/openapi/models/OperationResult.js +1 -1
- package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetadata.js +1 -1
- package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +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 +1 -1
- 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 +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
- package/dist/openapi/models/ReEncodeDecision.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
- package/dist/openapi/models/RegisterUser422Response.js +1 -1
- package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
- package/dist/openapi/models/RegisterUserRequest.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
- package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
- package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ResetPasswordRequest.js +1 -1
- package/dist/openapi/models/ResolutionBand.d.ts +1 -1
- package/dist/openapi/models/ResolutionBand.js +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeiling.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingConstraints.js +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.d.ts +1 -1
- package/dist/openapi/models/ResolutionBandCeilingDerivation.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
- package/dist/openapi/models/SseCompletionBase.js +1 -1
- package/dist/openapi/models/SseConnectionLimitResponse.d.ts +1 -1
- package/dist/openapi/models/SseConnectionLimitResponse.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
- package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletedData.js +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionResponse.js +1 -1
- package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200Response.js +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
- package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile422Response.js +1 -1
- package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
- package/dist/openapi/models/UpdateProfileRequest.js +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile403Response.js +1 -1
- package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile422Response.js +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
- package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeResponse.js +1 -1
- package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
- package/dist/openapi/models/UploadProbeStatus.js +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadResponse.d.ts +1 -1
- package/dist/openapi/models/UploadResponse.js +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadSource.d.ts +1 -1
- package/dist/openapi/models/UploadSource.js +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadThresholds.d.ts +1 -1
- package/dist/openapi/models/UploadThresholds.js +1 -1
- package/dist/openapi/models/UserTier.d.ts +1 -1
- package/dist/openapi/models/UserTier.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
- package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
- package/dist/openapi/models/VerifyEmailRequest.js +1 -1
- package/dist/openapi/models/WarningType.d.ts +1 -1
- package/dist/openapi/models/WarningType.js +1 -1
- package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
- package/dist/openapi/models/WebhookOperationContext.js +1 -1
- package/dist/openapi/models/WebhookPayload.d.ts +1 -1
- package/dist/openapi/models/WebhookPayload.js +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
- package/dist/openapi/models/WorkflowEdge.js +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
- package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowListResponse.js +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
- package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
- package/dist/openapi/models/WorkflowProcessing.js +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSource.d.ts +1 -1
- package/dist/openapi/models/WorkflowSource.js +1 -1
- package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatus.js +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummary.js +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
- package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarning.js +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/openapi/api.yaml +90 -24
- package/operation-capabilities/operation-capabilities.json +1 -1
- package/operations/schemas/compress.yaml +54 -26
- package/operations/schemas/merge.yaml +22 -1
- package/package.json +6 -4
|
@@ -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.217.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.217.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.217.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.217.0
|
|
107
107
|
contact:
|
|
108
108
|
name: API Support
|
|
109
109
|
|
|
@@ -255,13 +255,34 @@ paths:
|
|
|
255
255
|
required_tier: "enterprise"
|
|
256
256
|
'413':
|
|
257
257
|
description: |
|
|
258
|
-
The upload is too large. Two rejection cases
|
|
259
|
-
`ErrorEnvelope.error` code
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
258
|
+
The upload is too large. Two rejection cases from the API,
|
|
259
|
+
discriminated by the `ErrorEnvelope.error` code, plus one from the
|
|
260
|
+
edge:
|
|
261
|
+
|
|
262
|
+
- **Edge (no envelope)** — a request whose whole `multipart/form-data`
|
|
263
|
+
BODY exceeds the API gateway's payload limit is refused by the
|
|
264
|
+
gateway before the API runs, as a 413 with no `ErrorEnvelope`.
|
|
265
|
+
Near the single-shot maximum the form encoding can push the body
|
|
266
|
+
past that limit, so a client MUST treat ANY 413 on this endpoint
|
|
267
|
+
as "too large", with or without an envelope. An authenticated
|
|
268
|
+
client SHOULD send files near `single_shot_max_bytes` through
|
|
269
|
+
multipart; a guest cannot (multipart requires an account, see
|
|
270
|
+
`schemas/anonymous-policy.yaml`) and is limited to the single-shot
|
|
271
|
+
maximum. Only the two API-generated cases below carry an
|
|
272
|
+
`ErrorEnvelope`.
|
|
273
|
+
|
|
274
|
+
- **Byte size** (`error: FILE_TOO_LARGE`, `error_type:
|
|
275
|
+
file_too_large`, `message_params.max_bytes` = the limit that was
|
|
276
|
+
exceeded) — the file exceeds this endpoint's maximum byte size
|
|
277
|
+
(the single-shot maximum; larger files use the multipart
|
|
278
|
+
endpoints). For tier-specific size caps below it, the server
|
|
279
|
+
returns 403 with `error_type: tier_restriction,
|
|
280
|
+
restriction_kind: file_size` instead. ⚠️ The API currently
|
|
281
|
+
answers this case with `400 BAD_REQUEST`, which also covers a
|
|
282
|
+
missing file or an invalid filename (api card `E8xFECmG` moves
|
|
283
|
+
the size case here). Until that ships, only a client that
|
|
284
|
+
already knows its file exceeds `single_shot_max_bytes` should
|
|
285
|
+
read that 400 as "too large".
|
|
265
286
|
- **Pixel dimensions** (`error: IMAGE_DIMENSIONS_TOO_LARGE`) — a
|
|
266
287
|
decodable raster image whose `width × height` exceeds the
|
|
267
288
|
SINGLE-SHOT pixel ceiling (`UPLOAD_MAX_IMAGE_PIXELS`, default
|
|
@@ -285,10 +306,14 @@ paths:
|
|
|
285
306
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
286
307
|
examples:
|
|
287
308
|
file_too_large:
|
|
288
|
-
summary: File exceeds
|
|
309
|
+
summary: File exceeds this endpoint's maximum byte size
|
|
289
310
|
value:
|
|
290
311
|
success: false
|
|
291
|
-
error: "
|
|
312
|
+
error: "FILE_TOO_LARGE"
|
|
313
|
+
error_type: "file_too_large"
|
|
314
|
+
message: "The file is larger than the maximum for this upload method."
|
|
315
|
+
message_params:
|
|
316
|
+
max_bytes: 10000000
|
|
292
317
|
image_dimensions_too_large:
|
|
293
318
|
summary: Decodable raster exceeds the pixel-dimension ceiling
|
|
294
319
|
value:
|
|
@@ -418,7 +443,7 @@ paths:
|
|
|
418
443
|
|
|
419
444
|
After all parts are uploaded to S3, call the complete endpoint to finalise.
|
|
420
445
|
operationId: multipartInitiate
|
|
421
|
-
security: [{
|
|
446
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # REQUIRED: api security.yaml puts multipart behind IS_AUTHENTICATED_FULLY and initiate() 401s a guest (measured 2026-09-26; anonymous-policy.yaml multipart_allowed: false)
|
|
422
447
|
tags:
|
|
423
448
|
- Upload
|
|
424
449
|
requestBody:
|
|
@@ -497,9 +522,11 @@ paths:
|
|
|
497
522
|
and multipart carries ordinary camera photos — **a 24 MP photo
|
|
498
523
|
must pass**. API setting `UPLOAD_MAX_MULTIPART_IMAGE_PIXELS`,
|
|
499
524
|
enforced at multipart initiate. Default 50 MP (hub ruling 2026-09-24, on lambdas'
|
|
500
|
-
recommendation
|
|
501
|
-
|
|
502
|
-
|
|
525
|
+
recommendation, then made with the workers' per-format decode
|
|
526
|
+
ceilings unmeasured). Those ceilings are now declared per group
|
|
527
|
+
as `max_input_pixels` (2026-09-26: PNG 100 MP, JPEG 90 MP,
|
|
528
|
+
WebP 75 MP), all above this default; see that field for which
|
|
529
|
+
ceiling binds when. It is an API setting, so authenticated
|
|
503
530
|
clients read the effective value from
|
|
504
531
|
`limits.max_multipart_upload_image_pixels`
|
|
505
532
|
(`GET /api/v2/account/limits`) once the API emits it.
|
|
@@ -582,7 +609,7 @@ paths:
|
|
|
582
609
|
rule and additionally refuse anonymous-initiated sessions
|
|
583
610
|
outright (returning 403 `MULTIPART_SESSION_AUTH_REQUIRED`).
|
|
584
611
|
operationId: multipartComplete
|
|
585
|
-
security: [{
|
|
612
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # REQUIRED in practice: a session can only be initiated authenticated (see initiate), and completion is ownership-scoped (HxUmVr3Y)
|
|
586
613
|
x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
|
|
587
614
|
tags:
|
|
588
615
|
- Upload
|
|
@@ -3934,7 +3961,7 @@ paths:
|
|
|
3934
3961
|
The original failed operation is marked as `retried` and a new operation with
|
|
3935
3962
|
a new ID is created in `pending` state.
|
|
3936
3963
|
operationId: retryOperation
|
|
3937
|
-
security: [{
|
|
3964
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # REQUIRED: api security.yaml:103 requires IS_AUTHENTICATED_FULLY for retry (sdks, measured 2026-09-26)
|
|
3938
3965
|
x-identity-scoped: true # operation-ownership-scoped per ADR-0016 D3
|
|
3939
3966
|
tags:
|
|
3940
3967
|
- Operations
|
|
@@ -8452,9 +8479,10 @@ components:
|
|
|
8452
8479
|
# ceiling (width x height from the header) — the 413
|
|
8453
8480
|
# IMAGE_DIMENSIONS_TOO_LARGE threshold on the multipart path. A
|
|
8454
8481
|
# SEPARATE, HIGHER API setting than max_upload_image_pixels:
|
|
8455
|
-
# default 50 MP (hub, 2026-09-24)
|
|
8456
|
-
#
|
|
8457
|
-
#
|
|
8482
|
+
# default 50 MP (hub, 2026-09-24). The workers' decode ceilings
|
|
8483
|
+
# were measured 2026-09-26 and are declared per group as
|
|
8484
|
+
# `max_input_pixels` (PNG 100 MP, JPEG 90 MP, WebP 75 MP), all
|
|
8485
|
+
# above this default. It MUST admit a 24 MP
|
|
8458
8486
|
# photo. The server serves the number. Not tier-varying today.
|
|
8459
8487
|
$ref: '#/components/schemas/AccountLimitEntry'
|
|
8460
8488
|
|
|
@@ -9708,7 +9736,9 @@ components:
|
|
|
9708
9736
|
description: |
|
|
9709
9737
|
403 from `POST /api/workflows` when an ANONYMOUS caller (no
|
|
9710
9738
|
credential) requests an operation outside the anonymous
|
|
9711
|
-
allow-list
|
|
9739
|
+
allow-list, declared in `schemas/anonymous-policy.yaml`
|
|
9740
|
+
(`operations_allowed`; the file also declares the guest upload and
|
|
9741
|
+
quota limits). A register-wall: the frontend renders a sign-up
|
|
9712
9742
|
prompt, since no tier upgrade applies to a caller without an
|
|
9713
9743
|
account.
|
|
9714
9744
|
|
|
@@ -9716,10 +9746,10 @@ components:
|
|
|
9716
9746
|
(`JobsErrorCode::AnonymousOperationNotAllowed`), which checks
|
|
9717
9747
|
every operation in the body and names the FIRST disallowed one.
|
|
9718
9748
|
|
|
9719
|
-
|
|
9720
|
-
(ticket [`UQ7zROTr`](https://trello.com/c/UQ7zROTr)),
|
|
9721
|
-
|
|
9722
|
-
|
|
9749
|
+
**Predict it from `schemas/anonymous-policy.yaml`**
|
|
9750
|
+
(`operations_allowed`; ticket [`UQ7zROTr`](https://trello.com/c/UQ7zROTr)),
|
|
9751
|
+
the one declaration of the allow-list. Do not hard-code the list
|
|
9752
|
+
from this description: it deliberately names none.
|
|
9723
9753
|
allOf:
|
|
9724
9754
|
- $ref: '#/components/schemas/ErrorEnvelope'
|
|
9725
9755
|
- type: object
|
|
@@ -16148,6 +16178,42 @@ components:
|
|
|
16148
16178
|
§`per_mime_availability`.
|
|
16149
16179
|
ceiling_basis:
|
|
16150
16180
|
$ref: '#/components/schemas/CeilingBasis'
|
|
16181
|
+
max_input_pixels:
|
|
16182
|
+
type: integer
|
|
16183
|
+
format: int64
|
|
16184
|
+
minimum: 1
|
|
16185
|
+
description: |
|
|
16186
|
+
The largest INPUT image, in decoded pixels (width x height), that
|
|
16187
|
+
this group's worker is declared to process (owner decision
|
|
16188
|
+
607(d), 2026-09-26: decode memory, not bytes, binds for raster
|
|
16189
|
+
images). Present only where it was measured.
|
|
16190
|
+
|
|
16191
|
+
WHICH PIXEL CEILING BINDS WHEN. There are three, at three stages:
|
|
16192
|
+
1. UPLOAD, single-shot: `limits.max_upload_image_pixels`
|
|
16193
|
+
(default 16 MP; API setting `UPLOAD_MAX_IMAGE_PIXELS`), 413
|
|
16194
|
+
`IMAGE_DIMENSIONS_TOO_LARGE`.
|
|
16195
|
+
2. UPLOAD, multipart: `limits.max_multipart_upload_image_pixels`
|
|
16196
|
+
(default 50 MP; admits a 24 MP phone photo), same 413.
|
|
16197
|
+
3. OPERATION: this field, the worker's declared decode ceiling. The
|
|
16198
|
+
worker refuses above it (`input_too_large`, header-only, before
|
|
16199
|
+
decoding); the API is to check it at workflow create too (api
|
|
16200
|
+
card, co-land), after which it refuses before any job runs.
|
|
16201
|
+
An uploaded image passes its upload gate first, so it meets
|
|
16202
|
+
`min(upload ceiling, this field)`. Every value declared here is at
|
|
16203
|
+
least 75 MP, above both upload defaults, so today the UPLOAD
|
|
16204
|
+
ceiling binds for uploads, and this field binds for inputs that
|
|
16205
|
+
did not come through an upload gate (another job's output, an
|
|
16206
|
+
import), or if an upload ceiling is raised past it. A 24 MP photo
|
|
16207
|
+
passes all three.
|
|
16208
|
+
|
|
16209
|
+
THE VALUE IS AN UPPER BOUND, NOT A GUARANTEE FOR EVERY IMAGE. Where
|
|
16210
|
+
the worker's real limit is a decode-memory budget, images with more
|
|
16211
|
+
bytes per pixel (alpha, 16-bit channels) hit it at fewer pixels,
|
|
16212
|
+
and the worker refuses them with `input_too_large` (typed, not
|
|
16213
|
+
retryable, before any billed work) below this field. PNG is the
|
|
16214
|
+
measured case: 100 MP is the 8-bit RGBA value; 16-bit RGB reaches
|
|
16215
|
+
the budget near 67 MP and 16-bit RGBA near 50 MP. A pre-flight
|
|
16216
|
+
check against this field therefore cannot promise acceptance.
|
|
16151
16217
|
max_input_size_bytes:
|
|
16152
16218
|
type: integer
|
|
16153
16219
|
format: int64
|
|
@@ -97,9 +97,15 @@ operation:
|
|
|
97
97
|
# Resize-inside-Output shares the convert resize engine's 16MP output-area
|
|
98
98
|
# wall — the per-axis 16384 cap can't express it (FORMAT.md §max_output_pixels).
|
|
99
99
|
max_output_pixels: 16000000
|
|
100
|
+
# 607(d) image-decode corner run (lambdas, staging compression-image v144, git-2166848,
|
|
101
|
+
# 2026-09-26; vm_shared 10_Now/lambdas-corner-img-results-2026-09-26.md).
|
|
102
|
+
# Largest passing 370 MB / 90 MP. 493 MB / 120 MP failed: the input plus its
|
|
103
|
+
# intermediate exceed the worker's 512 MB /tmp.
|
|
100
104
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
101
|
-
max_input_size_bytes:
|
|
102
|
-
|
|
105
|
+
max_input_size_bytes: proven
|
|
106
|
+
max_input_pixels: proven
|
|
107
|
+
max_input_size_bytes: 370000000 # was 500 MiB
|
|
108
|
+
max_input_pixels: 90000000
|
|
103
109
|
options:
|
|
104
110
|
quality:
|
|
105
111
|
type: integer
|
|
@@ -279,9 +285,20 @@ operation:
|
|
|
279
285
|
mimes:
|
|
280
286
|
- image/png
|
|
281
287
|
max_output_pixels: 16000000
|
|
288
|
+
# 607(d) image-decode corner run (lambdas, staging compression-image v144, git-2166848,
|
|
289
|
+
# 2026-09-26; vm_shared 10_Now/lambdas-corner-img-results-2026-09-26.md).
|
|
290
|
+
# The binding limit is DECODED PIXELS: the shared decoder's 400 MB allocation
|
|
291
|
+
# budget, so the pixel ceiling depends on colour type (~133 MP RGB8, 100 MP
|
|
292
|
+
# RGBA8, ~67 MP RGB16, 50 MP RGBA16). 100 MP is the RGBA8 value; RGB8 passed
|
|
293
|
+
# at 120 MP / 360 MB, and RGBA8 at 100 MP is not yet run, so it stays
|
|
294
|
+
# unproven. Beyond the budget the worker refuses with input_too_large: a
|
|
295
|
+
# 16-bit RGBA PNG reaches it at ~50 MP, below this value, and is refused
|
|
296
|
+
# there (typed, before billing work), not served.
|
|
282
297
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
283
|
-
max_input_size_bytes:
|
|
284
|
-
|
|
298
|
+
max_input_size_bytes: proven
|
|
299
|
+
max_input_pixels: unproven
|
|
300
|
+
max_input_size_bytes: 360000000 # largest passing (120 MP RGB8); was 500 MiB, unreachable within the decode budget
|
|
301
|
+
max_input_pixels: 100000000
|
|
285
302
|
options:
|
|
286
303
|
# PROVENANCE (author-side, NOT user-facing — kept out of the description per
|
|
287
304
|
# 7KkNSvdv / FE BhVwdlhQ: no implementation detail or licence copy in user text):
|
|
@@ -436,8 +453,9 @@ operation:
|
|
|
436
453
|
mimes:
|
|
437
454
|
- image/avif
|
|
438
455
|
max_output_pixels: 16000000
|
|
456
|
+
# 607(d): PROVEN, 19.57 MiB passed (staging v144); above 20 MB the worker refuses.
|
|
439
457
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
440
|
-
max_input_size_bytes:
|
|
458
|
+
max_input_size_bytes: proven
|
|
441
459
|
max_input_size_bytes: 20971520 # 20 MiB compress input ceiling (uKsFzORi; AVIF decode OOM guard, worker AVIF_MAX_MB)
|
|
442
460
|
options:
|
|
443
461
|
quality:
|
|
@@ -606,9 +624,16 @@ operation:
|
|
|
606
624
|
mimes:
|
|
607
625
|
- image/webp
|
|
608
626
|
max_output_pixels: 16000000
|
|
627
|
+
# 607(d) image-decode corner run (lambdas, staging compression-image v144, git-2166848,
|
|
628
|
+
# 2026-09-26; vm_shared 10_Now/lambdas-corner-img-results-2026-09-26.md).
|
|
629
|
+
# Passed at 270 MB / 90 MP but at 98% of the function's memory; 120 MP was
|
|
630
|
+
# OOM-killed (no terminal result). lambdas' header pre-flight (AmYqFGaI)
|
|
631
|
+
# refuses above 75 MP before any decode, so 75 MP is the declared value.
|
|
609
632
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
610
|
-
max_input_size_bytes:
|
|
611
|
-
|
|
633
|
+
max_input_size_bytes: proven
|
|
634
|
+
max_input_pixels: proven
|
|
635
|
+
max_input_size_bytes: 270000000 # was 500 MiB
|
|
636
|
+
max_input_pixels: 75000000
|
|
612
637
|
options:
|
|
613
638
|
quality:
|
|
614
639
|
type: integer
|
|
@@ -814,27 +839,25 @@ operation:
|
|
|
814
839
|
# claiming it.)
|
|
815
840
|
mimes:
|
|
816
841
|
- image/svg+xml
|
|
817
|
-
#
|
|
818
|
-
#
|
|
819
|
-
#
|
|
820
|
-
#
|
|
821
|
-
#
|
|
822
|
-
#
|
|
823
|
-
#
|
|
824
|
-
#
|
|
825
|
-
#
|
|
826
|
-
#
|
|
827
|
-
#
|
|
828
|
-
#
|
|
829
|
-
#
|
|
830
|
-
#
|
|
831
|
-
#
|
|
832
|
-
#
|
|
833
|
-
# applied while this route was stable before 2026-07-17. Recorded rather
|
|
834
|
-
# than silently carried.
|
|
842
|
+
# RESOLVED 2026-09-26 (607(d)): this group used to carry the 500 MiB image/*
|
|
843
|
+
# default, a known over-advertisement left in place until lambdas measured a
|
|
844
|
+
# figure (see the note below). The api enforcer reads this value from the
|
|
845
|
+
# vendored schema, so lowering it here lowers enforcement at api's next
|
|
846
|
+
# vendoring.
|
|
847
|
+
# 607(d) corner run (lambdas, staging v144, 2026-09-26): WHY ~1 MB. compress SVG runs
|
|
848
|
+
# the external SVGO binary under a FIXED 30 s tool timeout
|
|
849
|
+
# (image_compressor.rs svg_compression_timeout). No rasterising and memory is not
|
|
850
|
+
# the limit: 1 MB (9.6k elements) passed in 4.4 s; 4 MB, 20 MB and 100 MB all
|
|
851
|
+
# failed at ~30.2 s (processing_limit_exceeded). Cost scales with ELEMENT COUNT,
|
|
852
|
+
# not bytes, so bytes are a proxy. The 30 s is a code constant (a TODO sits at its
|
|
853
|
+
# call site), not the Lambda budget: raising it is a lambdas choice, after which
|
|
854
|
+
# this ceiling can be re-measured upward.
|
|
855
|
+
# UNPROVEN as a guarantee: bytes are only a PROXY for element count. The 1 MB
|
|
856
|
+
# run had 9.6k rects; a denser SVG under 1 MB can still hit the 30 s cap
|
|
857
|
+
# (codex #622). Proven only once lambdas bounds element count or the cap moves.
|
|
835
858
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
836
859
|
max_input_size_bytes: unproven
|
|
837
|
-
max_input_size_bytes:
|
|
860
|
+
max_input_size_bytes: 1000000 # was 500 MiB
|
|
838
861
|
options:
|
|
839
862
|
# No `quality`: compress SVG is SVG->SVG via SVGO (VISUALLY PRESERVING
|
|
840
863
|
# vector optimise — not lossless; see the group note above on convertPathData);
|
|
@@ -895,6 +918,11 @@ operation:
|
|
|
895
918
|
- image/gif
|
|
896
919
|
- image/tiff
|
|
897
920
|
max_output_pixels: 16000000
|
|
921
|
+
# 607(d): ONE ceiling for TWO formats that measured differently. GIF passed at
|
|
922
|
+
# 515 MB (30 x 12.5 MP frames; the worker caps a frame at 12.5 MP); TIFF passed
|
|
923
|
+
# only to 150 MB / 50 MP (100 MP refused by libcaesium). A single group value
|
|
924
|
+
# cannot state both, so it stays unproven until the group splits into
|
|
925
|
+
# image_gif + image_tiff (IJofpQLI's pending split).
|
|
898
926
|
ceiling_basis: # 607(d): proven at the declared value, or not yet (FORMAT.md §ceiling_basis)
|
|
899
927
|
max_input_size_bytes: unproven
|
|
900
928
|
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi)
|
|
@@ -318,6 +318,22 @@ operation:
|
|
|
318
318
|
description: "Crossfade duration in seconds"
|
|
319
319
|
normalize_audio:
|
|
320
320
|
type: boolean
|
|
321
|
+
# KNOWN LIMITATION (hub ruling 2026-09-26, lambdas 7sbbABVG). CORRECTED
|
|
322
|
+
# 2026-09-26 17:32 by lambdas' measurement (local, static FFmpeg 7.1.1,
|
|
323
|
+
# instrument validated against 0 ms and +100 ms controls): the default
|
|
324
|
+
# stream-copy concat does NOT accumulate. Each join is offset by a
|
|
325
|
+
# constant, about +7.5 ms after a clip whose audio is longer than its
|
|
326
|
+
# video and about -37 ms (audio early) after one whose audio is shorter,
|
|
327
|
+
# because the concat demuxer drops each later file's AAC priming skip.
|
|
328
|
+
# The first draft said the offset ACCUMULATED; that was an inference, not
|
|
329
|
+
# a measurement, and is withdrawn. The normalize_audio=true route did
|
|
330
|
+
# accumulate (+362 ms by the 8th join); lambdas fixed that in cTk1wbib,
|
|
331
|
+
# which is NOT yet deployed. The deployed `true` route was measured at
|
|
332
|
+
# one join only (-44 ms), so the description does not claim
|
|
333
|
+
# "not cumulative" for `true` (codex #620). Whether to re-encode the default route's audio to
|
|
334
|
+
# remove the constant is an OWNER decision. Hub ruling 17:33: keep the
|
|
335
|
+
# description sentence until a REAL source measured on staging shows a
|
|
336
|
+
# per-join offset above 45 ms (then widen it), or the owner rules.
|
|
321
337
|
# DEFAULT FALSE since 2026-09-26 (owner decision, 607(d)): with it on,
|
|
322
338
|
# every video merge re-encodes, and the re-encode does not fit the
|
|
323
339
|
# short_form ceiling. THE API APPLIES THIS DEFAULT: when a request omits
|
|
@@ -343,7 +359,12 @@ operation:
|
|
|
343
359
|
long_form_re_encode: { availability: planned }
|
|
344
360
|
description: >-
|
|
345
361
|
Normalize audio levels across all clips. Off by default (the server
|
|
346
|
-
applies the default when the option is omitted).
|
|
362
|
+
applies the default when the option is omitted). Known issue:
|
|
363
|
+
at each join of video clips, audio may lead video by up to about
|
|
364
|
+
40 ms with the default (`false`); the offset is per join and does
|
|
365
|
+
not add up across joins. With `true`, an offset of about 45 ms
|
|
366
|
+
was measured at a single join; merges with more joins are not
|
|
367
|
+
yet measured on that setting. Turning it
|
|
347
368
|
on re-encodes every clip, which lowers the limit: about 120 seconds
|
|
348
369
|
of combined 720p video was measured to fit, instead of 5 minutes.
|
|
349
370
|
NOT available on the long-form path, which forces loudness
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@giveitsmaller/contracts",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.
|
|
5
|
-
"gislContractsSpec": "v2.
|
|
3
|
+
"version": "0.82.0",
|
|
4
|
+
"description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.217.0.",
|
|
5
|
+
"gislContractsSpec": "v2.217.0",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"homepage": "https://docs.giveitsmaller.com",
|
|
8
8
|
"bugs": {
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"./openapi/api.yaml": "./openapi/api.yaml",
|
|
32
32
|
"./asyncapi/events.yaml": "./asyncapi/events.yaml",
|
|
33
33
|
"./resolution-bands.yaml": "./resolution-bands.yaml",
|
|
34
|
+
"./anonymous-policy.yaml": "./anonymous-policy.yaml",
|
|
34
35
|
"./availability/availability.json": "./availability/availability.json",
|
|
35
36
|
"./accepted-options/accepted-options.json": "./accepted-options/accepted-options.json",
|
|
36
37
|
"./accepted-options/image-output-routes.json": "./accepted-options/image-output-routes.json",
|
|
@@ -65,7 +66,8 @@
|
|
|
65
66
|
"accepted-options/image-output-routes.json",
|
|
66
67
|
"operation-capabilities/operation-capabilities.json",
|
|
67
68
|
"code-builder/code-builder-metadata.json",
|
|
68
|
-
"resolution-bands.yaml"
|
|
69
|
+
"resolution-bands.yaml",
|
|
70
|
+
"anonymous-policy.yaml"
|
|
69
71
|
],
|
|
70
72
|
"scripts": {
|
|
71
73
|
"clean": "node -e \"require('node:fs').rmSync('dist', {recursive: true, force: true})\"",
|