@giveitsmaller/contracts 0.82.0 → 0.84.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 +55 -18
- package/asyncapi/README.md +1 -1
- package/asyncapi/events.yaml +121 -31
- package/availability/availability.json +6 -6
- package/code-builder/code-builder-metadata.json +7 -7
- package/dist/asyncapi/AnonymousSchema_286.d.ts +4 -0
- package/dist/asyncapi/AnonymousSchema_286.js +5 -0
- package/dist/asyncapi/LongFormProcessingClass.d.ts +2 -1
- package/dist/asyncapi/LongFormProcessingClass.js +1 -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 +157 -0
- package/dist/openapi/models/AnonymousLimitExceededResponse.js +95 -0
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.d.ts +1 -1
- package/dist/openapi/models/AnonymousOperationNotAllowedResponse.js +1 -1
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.d.ts +42 -7
- package/dist/openapi/models/AnonymousQuotaExhaustedResponse.js +13 -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 +4 -1
- package/dist/openapi/models/CreateWorkflow403Response.js +6 -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 +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 +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 +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/models/index.d.ts +1 -0
- package/dist/openapi/models/index.js +1 -0
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/openapi/README.md +1 -1
- package/openapi/api.yaml +363 -38
- package/operation-capabilities/operation-capabilities.json +1 -2
- package/operations/schemas/compress.yaml +16 -11
- package/package.json +6 -4
- package/pricing-policy.yaml +82 -0
package/README.md
CHANGED
package/anonymous-policy.yaml
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Anonymous (account-less) policy — the ONE declaration of what a guest may do
|
|
2
|
-
# (ticket UQ7zROTr; sdks u6Q9oxuI follow-up
|
|
3
|
-
#
|
|
2
|
+
# (ticket UQ7zROTr; sdks u6Q9oxuI follow-up).
|
|
3
|
+
#
|
|
4
|
+
# 2.1.0 (card gpYKURQd, hub decision 638(a)): `video.probe_pending_recovery`
|
|
5
|
+
# and `video.probe_pending_counts_against_limits`, additive.
|
|
6
|
+
#
|
|
7
|
+
# 2.0.0 (card 43dDKeEh; owner decision + hub ruling 2026-09-26 21:26): guests
|
|
8
|
+
# move from "30 image jobs per day" to a CREDIT allowance, for all file types,
|
|
9
|
+
# with video capped at 60 s. Shape agreed with api (msg cc5bedfe). BREAKING for
|
|
10
|
+
# readers of 1.0.0: `upload.mime_prefixes` and `quota.workflow_creates_per_ip_per_24h`
|
|
11
|
+
# are gone; read `upload.media` and `allowance` instead.
|
|
4
12
|
#
|
|
5
13
|
# Read by: the SDKs (gisl.anonymous() / Gisl::anonymous() pin their surface to
|
|
6
14
|
# it), api (pins its constants to it: AnonymousOperationPolicy,
|
|
@@ -8,34 +16,63 @@
|
|
|
8
16
|
# tests/test_anonymous_policy.py (holds the relations below).
|
|
9
17
|
#
|
|
10
18
|
# The refusals are declared in openapi `POST /api/workflows` 403
|
|
11
|
-
# (AnonymousOperationNotAllowedResponse / AnonymousQuotaExhaustedResponse
|
|
12
|
-
# this file declares the
|
|
13
|
-
# the
|
|
19
|
+
# (AnonymousOperationNotAllowedResponse / AnonymousQuotaExhaustedResponse /
|
|
20
|
+
# AnonymousLimitExceededResponse); this file declares the
|
|
21
|
+
# POLICY that produces them, so a client can predict the refusal instead of
|
|
22
|
+
# learning it.
|
|
14
23
|
|
|
15
|
-
schema_version: "1.0
|
|
24
|
+
schema_version: "2.1.0"
|
|
16
25
|
|
|
17
26
|
# Operations an anonymous caller may request at workflow-create. Anything else
|
|
18
27
|
# answers 403 `anonymous_operation_not_allowed`.
|
|
19
28
|
operations_allowed: [compress, convert, thumbnail]
|
|
20
29
|
|
|
21
30
|
upload:
|
|
22
|
-
#
|
|
23
|
-
|
|
31
|
+
# ALL file types: every MIME the upload endpoints accept (was images only).
|
|
32
|
+
media: all
|
|
24
33
|
# THE guest per-file cap: 10,000,000 B, the single-shot endpoint's own maximum
|
|
25
34
|
# (openapi UploadThresholds.single_shot_max_bytes). Guests upload single-shot
|
|
26
|
-
# only, so a larger cap would be unreachable.
|
|
27
|
-
# AnonymousUploadPolicy from 10 MiB to this and pins to this file (xOaNkDll,
|
|
28
|
-
# 2026-09-26; owner decision 610(4): "images only, 10 MB").
|
|
35
|
+
# only, so a larger cap would be unreachable (xOaNkDll).
|
|
29
36
|
max_file_bytes: 10000000
|
|
30
37
|
# Multipart initiate/status/presign/keepalive require authentication (api
|
|
31
38
|
# security.yaml + a defensive 401 in initiate); complete is unreachable
|
|
32
39
|
# without an initiated session.
|
|
33
40
|
multipart_allowed: false
|
|
34
41
|
|
|
35
|
-
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
video:
|
|
43
|
+
# Measured on the UPLOAD PROBE's duration. A guest video create waits for the
|
|
44
|
+
# probe (the existing probe-pending gate), then is refused above this with
|
|
45
|
+
# 403 `anonymous_limit_exceeded` (limit `video_duration_seconds`).
|
|
46
|
+
max_duration_seconds: 60
|
|
47
|
+
exceeded_error_type: anonymous_limit_exceeded
|
|
48
|
+
# Until the probe lands, a guest video create is refused 422 `probe_pending`
|
|
49
|
+
# (hub decision 638(a), contract-first for api #795). A guest RETRIES THE
|
|
50
|
+
# CREATE, on `Retry-After` when sent, else its own backoff: the probe poll
|
|
51
|
+
# endpoint (POST /api/uploads/{id}/probe) requires sign-in, so a guest
|
|
52
|
+
# cannot poll it. That refusal does not count against `per_minute.
|
|
53
|
+
# workflow_create` and reserves no `allowance` credits.
|
|
54
|
+
probe_pending_recovery: retry_create
|
|
55
|
+
probe_pending_counts_against_limits: false
|
|
56
|
+
|
|
57
|
+
allowance:
|
|
58
|
+
# Credits per client IP over a ROLLING 24 h (a sliding window, so there is no
|
|
59
|
+
# calendar-day or timezone edge). Identity is the IP alone: a funnel nudge,
|
|
60
|
+
# not a security boundary (NAT shares it).
|
|
61
|
+
credits: 30
|
|
62
|
+
window: rolling_24h
|
|
63
|
+
identity: ip
|
|
64
|
+
# Priced with the same per-operation weights as a signed-in caller
|
|
65
|
+
# (`operation_weights.yaml`), charged at workflow create against the IP's
|
|
66
|
+
# rolling ledger, and released on failure as for a signed-in reservation.
|
|
67
|
+
priced_by: operation_weights
|
|
68
|
+
# A create whose cost would cross the allowance is refused WHOLE (no partial
|
|
69
|
+
# run) with 403 `anonymous_quota_exhausted`, carrying `allowance`,
|
|
70
|
+
# `remaining` and `cost`. `Retry-After` (seconds until enough of the window
|
|
71
|
+
# frees up) is sent only when `cost <= credits`; a request costing more than
|
|
72
|
+
# the whole allowance can never fit and gets none.
|
|
73
|
+
exhausted_error_type: anonymous_quota_exhausted
|
|
74
|
+
|
|
75
|
+
# Per-minute rate limits (429 when exceeded), unchanged from 1.0.0.
|
|
76
|
+
per_minute:
|
|
77
|
+
upload: 5
|
|
78
|
+
workflow_create: 2
|
package/asyncapi/README.md
CHANGED
package/asyncapi/events.yaml
CHANGED
|
@@ -1570,10 +1570,13 @@ channels:
|
|
|
1570
1570
|
here directly (NOT via SNS); a terraform-owned launcher reads the spec from
|
|
1571
1571
|
S3 (`pointer`) and runs a Fargate task. `max_receive_count = 2` (ADR-0007).
|
|
1572
1572
|
|
|
1573
|
-
On this queue the publisher always sets `operation_type: merge` (
|
|
1574
|
-
`LongFormJobMessage` enum permits `{compress, merge}`;
|
|
1575
|
-
`operation_type` is a publisher invariant documented here, not a
|
|
1576
|
-
schema).
|
|
1573
|
+
On this queue the publisher always sets `operation_type: merge` (the
|
|
1574
|
+
shared `LongFormJobMessage` enum permits `{compress, merge, split}`;
|
|
1575
|
+
per-queue `operation_type` is a publisher invariant documented here, not a
|
|
1576
|
+
separate schema). `processing_class` is `long_form` for a re-encode merge
|
|
1577
|
+
and `long_form_concat` for a stream-copy join (a fan-out rejoin, or a
|
|
1578
|
+
user merge with `re_encode_mode: never`); the launcher routes the second
|
|
1579
|
+
to its stream-copy task.
|
|
1577
1580
|
bindings:
|
|
1578
1581
|
sqs:
|
|
1579
1582
|
queue:
|
|
@@ -2459,8 +2462,10 @@ operations:
|
|
|
2459
2462
|
bindingVersion: '0.2.0'
|
|
2460
2463
|
summary: Publish a long-form merge re-encode claim-check.
|
|
2461
2464
|
description: |
|
|
2462
|
-
As `publishLongFormCompressVideo`, for `operation_type = merge
|
|
2463
|
-
|
|
2465
|
+
As `publishLongFormCompressVideo`, for `operation_type = merge`.
|
|
2466
|
+
`processing_class` selects the task: `long_form` for a re-encode merge
|
|
2467
|
+
(`merge.video.long_form_re_encode`), `long_form_concat` for a stream-copy
|
|
2468
|
+
join. Direct-to-SQS claim-check; no SNS.
|
|
2464
2469
|
messages:
|
|
2465
2470
|
- $ref: '#/channels/longformMergeVideoReencode/messages/longFormJob'
|
|
2466
2471
|
|
|
@@ -2517,9 +2522,10 @@ operations:
|
|
|
2517
2522
|
bindingVersion: '0.2.0'
|
|
2518
2523
|
summary: Consume a long-form merge re-encode claim-check.
|
|
2519
2524
|
description: |
|
|
2520
|
-
As `consumeLongFormCompressVideo`, for `operation_type = merge
|
|
2521
|
-
|
|
2522
|
-
|
|
2525
|
+
As `consumeLongFormCompressVideo`, for `operation_type = merge`. The
|
|
2526
|
+
launcher resolves the spec from S3 via `pointer` and forks on
|
|
2527
|
+
`processing_class`: `long_form` runs the merge-re-encode Fargate task,
|
|
2528
|
+
`long_form_concat` the small stream-copy concat task.
|
|
2523
2529
|
messages:
|
|
2524
2530
|
- $ref: '#/channels/longformMergeVideoReencode/messages/longFormJob'
|
|
2525
2531
|
|
|
@@ -2920,6 +2926,14 @@ components:
|
|
|
2920
2926
|
operation_id: "018f9c42-5d6b-7481-b3df-9fd0a0a5e201"
|
|
2921
2927
|
operation_type: "merge"
|
|
2922
2928
|
processing_class: "long_form"
|
|
2929
|
+
- name: Long-form stream-copy join
|
|
2930
|
+
summary: merge.video.long_form_concat claim-check (fan-out rejoin, or re_encode_mode never)
|
|
2931
|
+
payload:
|
|
2932
|
+
pointer: "job-specs/018f9c42-5d6b-7481-b3df-9fd0a0a5e114.json"
|
|
2933
|
+
job_id: "018f9c42-5d6b-7481-b3df-9fd0a0a5e114"
|
|
2934
|
+
operation_id: "018f9c42-5d6b-7481-b3df-9fd0a0a5e202"
|
|
2935
|
+
operation_type: "merge"
|
|
2936
|
+
processing_class: "long_form_concat"
|
|
2923
2937
|
|
|
2924
2938
|
# ============================================
|
|
2925
2939
|
# OPERATION PROGRESS MESSAGE
|
|
@@ -3915,6 +3929,23 @@ components:
|
|
|
3915
3929
|
consumers validating against this schema MUST tolerate additional or
|
|
3916
3930
|
differently-shaped redriven messages. The producer contract this schema
|
|
3917
3931
|
pins is the **required** set.
|
|
3932
|
+
|
|
3933
|
+
**`processing_class: long_form_concat` requires `operation_type:
|
|
3934
|
+
merge`** (the `if`/`then` below): the launcher diverts only that pair.
|
|
3935
|
+
# Deployed launcher verified 2026-09-26 (code read back from AWS, staging
|
|
3936
|
+
# and prod): handler.py `elif operation_type == "merge" and
|
|
3937
|
+
# processing_class == "long_form_concat"` -> concat_streamcopy taskdef
|
|
3938
|
+
# (2 vCPU / 4 GB, ACTIVE in both accounts).
|
|
3939
|
+
if:
|
|
3940
|
+
properties:
|
|
3941
|
+
processing_class:
|
|
3942
|
+
const: long_form_concat
|
|
3943
|
+
required:
|
|
3944
|
+
- processing_class
|
|
3945
|
+
then:
|
|
3946
|
+
properties:
|
|
3947
|
+
operation_type:
|
|
3948
|
+
const: merge
|
|
3918
3949
|
required:
|
|
3919
3950
|
- pointer
|
|
3920
3951
|
- job_id
|
|
@@ -4795,14 +4826,23 @@ components:
|
|
|
4795
4826
|
Operation-specific metrics. Content varies by operation type.
|
|
4796
4827
|
All metrics include duration_ms. Compression includes size/ratio.
|
|
4797
4828
|
Merge includes input count. Archive includes file count and total size.
|
|
4798
|
-
# estimated_saving_pct only
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4829
|
+
# estimated_saving_pct and already_optimal_kind only mean something on an
|
|
4830
|
+
# already-optimal result.
|
|
4831
|
+
allOf:
|
|
4832
|
+
- if:
|
|
4833
|
+
required: [estimated_saving_pct]
|
|
4834
|
+
then:
|
|
4835
|
+
required: [already_optimal]
|
|
4836
|
+
properties:
|
|
4837
|
+
already_optimal:
|
|
4838
|
+
const: true
|
|
4839
|
+
- if:
|
|
4840
|
+
required: [already_optimal_kind]
|
|
4841
|
+
then:
|
|
4842
|
+
required: [already_optimal]
|
|
4843
|
+
properties:
|
|
4844
|
+
already_optimal:
|
|
4845
|
+
const: true
|
|
4806
4846
|
properties:
|
|
4807
4847
|
original_size_bytes:
|
|
4808
4848
|
type: integer
|
|
@@ -4969,8 +5009,43 @@ components:
|
|
|
4969
5009
|
because compressing it would not have made it smaller. Set by the
|
|
4970
5010
|
compression processor itself, never by an individual worker's
|
|
4971
5011
|
extras. Absent or `false` on an ordinary compression; consumers
|
|
4972
|
-
treat the two the same.
|
|
5012
|
+
treat the two the same. Required of EVERY same-format compress
|
|
5013
|
+
path (resolved `same_format` route: `output_format` original,
|
|
5014
|
+
absent, or equal to the input's format), short- and long-form (a long-form worker copies the source
|
|
5015
|
+
to the output key; ⚠️ not yet shipped, so today only short-form
|
|
5016
|
+
conforms), instead of `output_too_large`. TARGET billing: the API
|
|
5017
|
+
charges nothing for the operation (owner decision 645(4),
|
|
5018
|
+
`schemas/pricing-policy.yaml`); TODAY it still charges it
|
|
5019
|
+
(`charge.not_charged_api_today`) until api ships.
|
|
5020
|
+
**Location: THIS declared field, `metrics.already_optimal`.**
|
|
5021
|
+
Transition (expand/migrate, lambdas `KiJCEsW2`): short-form
|
|
5022
|
+
workers have emitted it only inside the open-map extras, which the
|
|
5023
|
+
deployed worker SDK serialises as a NESTED object literally keyed
|
|
5024
|
+
`additionalProperties` (camelCase) — a distinct JSON path,
|
|
5025
|
+
`metrics.additionalProperties.already_optimal`, never the same key
|
|
5026
|
+
as this field (api `OperationResultMetadataProjection` reads
|
|
5027
|
+
flat first, then that nested object). When both are present and
|
|
5028
|
+
disagree, THIS field wins. Workers set BOTH until every path sets this one; the API
|
|
5029
|
+
reads this field OR the extras key, and its billing reads the same
|
|
5030
|
+
place its `/status` projection reads (once billing reads it at all),
|
|
5031
|
+
so the refund and the badge cannot disagree. The extras key is then dropped.
|
|
4973
5032
|
example: true
|
|
5033
|
+
already_optimal_kind:
|
|
5034
|
+
type: string
|
|
5035
|
+
enum: [not_smaller]
|
|
5036
|
+
description: |
|
|
5037
|
+
OPTIONAL, only with `already_optimal: true`: why the original was
|
|
5038
|
+
returned. `not_smaller` = compressed, and the result was not
|
|
5039
|
+
smaller: there is no quality trade-off to explain. It is the only
|
|
5040
|
+
kind any worker produces (no production path declines to encode an
|
|
5041
|
+
efficient source, lambdas 2026-09-30), so no other value is
|
|
5042
|
+
declared; a consumer shows neutral "already optimised" copy for an
|
|
5043
|
+
absent kind and for any value it does not know. The API
|
|
5044
|
+
projects it onto the REST `OperationResultMetadata` (same name and
|
|
5045
|
+
values). Contract-first (card `cDZuuyg8`). Deliberately NOT named
|
|
5046
|
+
`already_optimal_reason`: that name is a worker diagnostic the API
|
|
5047
|
+
must not serve (roNRMilt); this is a closed, user-facing kind.
|
|
5048
|
+
example: not_smaller
|
|
4974
5049
|
estimated_saving_pct:
|
|
4975
5050
|
type: number
|
|
4976
5051
|
minimum: 0
|
|
@@ -5818,21 +5893,36 @@ components:
|
|
|
5818
5893
|
type: string
|
|
5819
5894
|
description: |
|
|
5820
5895
|
Logical processing class on the long-form claim-check wire
|
|
5821
|
-
(`LongFormJobMessage.processing_class`)
|
|
5822
|
-
`
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
stays off the wire per `schemas/FORMAT.md` §F8.
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5896
|
+
(`LongFormJobMessage.processing_class`). Never `short_form` /
|
|
5897
|
+
`blocked`: those exist only on the upload-probe response and HTTP plan
|
|
5898
|
+
surfaces. The launcher forks on this field together with
|
|
5899
|
+
`operation_type`; do not confuse it with the backend worker identity,
|
|
5900
|
+
which stays off the wire per `schemas/FORMAT.md` §F8.
|
|
5901
|
+
|
|
5902
|
+
- `long_form`: every long-form job except the one below.
|
|
5903
|
+
- `long_form_concat` (card
|
|
5904
|
+
[`JzS0lkSr`](https://trello.com/c/JzS0lkSr), api `m9Bstzaa`): a
|
|
5905
|
+
STREAM-COPY join, valid ONLY with `operation_type: merge` (enforced on
|
|
5906
|
+
`LongFormJobMessage`). The API sends it for (a) the stream-copy rejoin
|
|
5907
|
+
of a long-form fan-out and (b) a user long-form merge with
|
|
5908
|
+
`re_encode_mode: never`. The launcher routes the pair
|
|
5909
|
+
`(merge, long_form_concat)` to its small stream-copy task instead of
|
|
5910
|
+
the merge re-encode task. Any other pair would fall through to that
|
|
5911
|
+
operation's default task with a class it does not know, which is why
|
|
5912
|
+
the pairing is a schema rule and not a convention.
|
|
5913
|
+
|
|
5914
|
+
Named + `enum`, not `const`: the repo's proven typed-codegen form
|
|
5915
|
+
(mirrors `JobInputRole` / `ReEncodeDecision`); `const` degraded to an
|
|
5916
|
+
unconstrained `String` in SDK generators. Lifted from inline at
|
|
5831
5917
|
`LongFormJobMessage.processing_class` per ticket
|
|
5832
|
-
[`A3DyuYUd`](https://trello.com/c/A3DyuYUd).
|
|
5833
|
-
|
|
5918
|
+
[`A3DyuYUd`](https://trello.com/c/A3DyuYUd).
|
|
5919
|
+
# CLOSED (codex #625): a routing discriminator. An unknown class would
|
|
5920
|
+
# select an unintended launcher path, so a new value reaches consumers
|
|
5921
|
+
# deliberately, never by tolerance.
|
|
5922
|
+
x-enum-openness: closed
|
|
5834
5923
|
enum:
|
|
5835
5924
|
- long_form
|
|
5925
|
+
- long_form_concat
|
|
5836
5926
|
|
|
5837
5927
|
ProgressStatus:
|
|
5838
5928
|
type: string
|
|
@@ -5970,7 +6060,7 @@ components:
|
|
|
5970
6060
|
- format_mismatch: MIME type doesn't match content
|
|
5971
6061
|
- decode_failed: Cannot decode/parse file
|
|
5972
6062
|
- processing_failed: Processing library error
|
|
5973
|
-
- output_too_large: Output exceeded the size limit
|
|
6063
|
+
- output_too_large: Output exceeded the size limit. NOT emitted by a compress on the resolved same_format route (output_format original, absent, or equal to the input's format, e.g. webp to webp), which returns the original with OperationMetrics.already_optimal instead (owner decision 645(4)). Today short-form only: long-form compress still emits it until lambdas ships its copy path
|
|
5974
6064
|
- invalid_options: Invalid operation options
|
|
5975
6065
|
- missing_source: Source file not found in storage
|
|
5976
6066
|
- invalid_key: Storage key is malformed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"capabilities_profile": "baseline",
|
|
3
|
-
"capabilities_version":
|
|
3
|
+
"capabilities_version": 233,
|
|
4
4
|
"endpoints": {
|
|
5
5
|
"DELETE /api/auth/account": {
|
|
6
6
|
"auth": "required",
|
|
@@ -2060,7 +2060,7 @@
|
|
|
2060
2060
|
},
|
|
2061
2061
|
"audio_codec": {
|
|
2062
2062
|
"default": "copy",
|
|
2063
|
-
"description": "Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on explicit request) \u2014 aac/opus/vorbis re-encode. Default is `copy`: on the same-container path (`output_format` original/absent) the source stream is already container-compatible, so copy is safe. When `output_format` RE-TARGETS the container, an absent/default audio_codec resolves to a container-valid codec via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream \u2014 a DEFAULT is never rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an output_format stable-flip prerequisite). A
|
|
2063
|
+
"description": "Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on explicit request) \u2014 aac/opus/vorbis re-encode. Default is `copy`: on the same-container path (`output_format` original/absent) the source stream is already container-compatible, so copy is safe. When `output_format` RE-TARGETS the container, an absent/default audio_codec resolves to a container-valid codec via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream \u2014 a DEFAULT is never rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an output_format stable-flip prerequisite). `copy` sent explicitly counts as the default: if the source audio cannot be copied into the target container it is re-encoded to the container default (webm -> opus) and reported in dropped_options. A NON-default codec the resolved container cannot carry (e.g. aac on a webm target) is rejected.",
|
|
2064
2064
|
"type": "enum",
|
|
2065
2065
|
"values": [
|
|
2066
2066
|
"aac",
|
|
@@ -2071,7 +2071,7 @@
|
|
|
2071
2071
|
},
|
|
2072
2072
|
"codec": {
|
|
2073
2073
|
"default": "h264",
|
|
2074
|
-
"description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected \u2014 including an explicit `output_format: webm` left at the default `h264` (resolves to vp9, not rejected)
|
|
2074
|
+
"description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected \u2014 including an explicit `output_format: webm` left at the default `h264` (resolves to vp9, not rejected). A value equal to the default counts as the default even when sent, and the substitution is reported in dropped_options. Only a NON-default codec the container cannot carry is rejected (e.g. h265 on WebM).",
|
|
2075
2075
|
"type": "enum",
|
|
2076
2076
|
"values": [
|
|
2077
2077
|
"h264",
|
|
@@ -2101,7 +2101,7 @@
|
|
|
2101
2101
|
},
|
|
2102
2102
|
"faststart": {
|
|
2103
2103
|
"default": true,
|
|
2104
|
-
"description": "Move the MP4/MOV moov atom to the front so the file starts playing before it is fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input):
|
|
2104
|
+
"description": "Move the MP4/MOV moov atom to the front so the file starts playing before it is fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input): on a container with no moov atom (e.g. WebM) the default (true), omitted or sent, is dropped and reported in dropped_options \u2014 never a rejection. false there asks for nothing and is accepted.",
|
|
2105
2105
|
"type": "boolean"
|
|
2106
2106
|
},
|
|
2107
2107
|
"fit": {
|
|
@@ -2134,7 +2134,7 @@
|
|
|
2134
2134
|
},
|
|
2135
2135
|
"output_format": {
|
|
2136
2136
|
"default": "original",
|
|
2137
|
-
"description": "Output container. original = keep the input container (default, same-format compression). Other values change the container as part of the same job, keeping the size cap. When set, the RESOLVED target container determines the valid codec/audio_codec/faststart sets \u2014 an absent
|
|
2137
|
+
"description": "Output container. original = keep the input container (default, same-format compression). Other values change the container as part of the same job, keeping the size cap. When set, the RESOLVED target container determines the valid codec/audio_codec/faststart sets \u2014 an absent or default-equal value (sent equal to its default counts as the default) resolves to a container-valid one (e.g. webm -> vp9), is never rejected, and is reported in dropped_options; only a NON-default incompatible value is rejected.",
|
|
2138
2138
|
"per_value_availability": {
|
|
2139
2139
|
"mp4": {
|
|
2140
2140
|
"availability": "planned"
|
|
@@ -5498,7 +5498,7 @@
|
|
|
5498
5498
|
"sole_op": true
|
|
5499
5499
|
}
|
|
5500
5500
|
},
|
|
5501
|
-
"schema_version": "2.
|
|
5501
|
+
"schema_version": "2.219.0",
|
|
5502
5502
|
"source_commit": null,
|
|
5503
5503
|
"user_tier": null,
|
|
5504
5504
|
"workflow_features": {
|
|
@@ -2824,7 +2824,7 @@
|
|
|
2824
2824
|
},
|
|
2825
2825
|
"audio_codec": {
|
|
2826
2826
|
"default": "copy",
|
|
2827
|
-
"description": "Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on explicit request) \u2014 aac/opus/vorbis re-encode. Default is `copy`: on the same-container path (`output_format` original/absent) the source stream is already container-compatible, so copy is safe. When `output_format` RE-TARGETS the container, an absent/default audio_codec resolves to a container-valid codec via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream \u2014 a DEFAULT is never rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an output_format stable-flip prerequisite). A
|
|
2827
|
+
"description": "Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on explicit request) \u2014 aac/opus/vorbis re-encode. Default is `copy`: on the same-container path (`output_format` original/absent) the source stream is already container-compatible, so copy is safe. When `output_format` RE-TARGETS the container, an absent/default audio_codec resolves to a container-valid codec via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream \u2014 a DEFAULT is never rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an output_format stable-flip prerequisite). `copy` sent explicitly counts as the default: if the source audio cannot be copied into the target container it is re-encoded to the container default (webm -> opus) and reported in dropped_options. A NON-default codec the resolved container cannot carry (e.g. aac on a webm target) is rejected.",
|
|
2828
2828
|
"enum_ref": "AudioCodec",
|
|
2829
2829
|
"enum_translations": {
|
|
2830
2830
|
"aac": "Aac",
|
|
@@ -2851,7 +2851,7 @@
|
|
|
2851
2851
|
},
|
|
2852
2852
|
"codec": {
|
|
2853
2853
|
"default": "h264",
|
|
2854
|
-
"description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected \u2014 including an explicit `output_format: webm` left at the default `h264` (resolves to vp9, not rejected)
|
|
2854
|
+
"description": "Video codec. h264 = widest compatibility, h265/av1 = better compression but slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is never rejected \u2014 including an explicit `output_format: webm` left at the default `h264` (resolves to vp9, not rejected). A value equal to the default counts as the default even when sent, and the substitution is reported in dropped_options. Only a NON-default codec the container cannot carry is rejected (e.g. h265 on WebM).",
|
|
2855
2855
|
"enum_ref": "VideoCodec",
|
|
2856
2856
|
"enum_translations": {
|
|
2857
2857
|
"av1": "Av1",
|
|
@@ -2907,7 +2907,7 @@
|
|
|
2907
2907
|
},
|
|
2908
2908
|
"faststart": {
|
|
2909
2909
|
"default": true,
|
|
2910
|
-
"description": "Move the MP4/MOV moov atom to the front so the file starts playing before it is fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input):
|
|
2910
|
+
"description": "Move the MP4/MOV moov atom to the front so the file starts playing before it is fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit `output_format` if set, else the input): on a container with no moov atom (e.g. WebM) the default (true), omitted or sent, is dropped and reported in dropped_options \u2014 never a rejection. false there asks for nothing and is accepted.",
|
|
2911
2911
|
"origin": "contract",
|
|
2912
2912
|
"sdk_exposure": "expose",
|
|
2913
2913
|
"surface_key": "faststart",
|
|
@@ -2965,7 +2965,7 @@
|
|
|
2965
2965
|
},
|
|
2966
2966
|
"output_format": {
|
|
2967
2967
|
"default": "original",
|
|
2968
|
-
"description": "Output container. original = keep the input container (default, same-format compression). Other values change the container as part of the same job, keeping the size cap. When set, the RESOLVED target container determines the valid codec/audio_codec/faststart sets \u2014 an absent
|
|
2968
|
+
"description": "Output container. original = keep the input container (default, same-format compression). Other values change the container as part of the same job, keeping the size cap. When set, the RESOLVED target container determines the valid codec/audio_codec/faststart sets \u2014 an absent or default-equal value (sent equal to its default counts as the default) resolves to a container-valid one (e.g. webm -> vp9), is never rejected, and is reported in dropped_options; only a NON-default incompatible value is rejected.",
|
|
2969
2969
|
"origin": "contract",
|
|
2970
2970
|
"per_value_availability": {
|
|
2971
2971
|
"mp4": {
|
|
@@ -7643,7 +7643,7 @@
|
|
|
7643
7643
|
}
|
|
7644
7644
|
},
|
|
7645
7645
|
"preset_config_hash": "sha256:354814f7906f85be6a6ca5ede6c0722c83cdc058fd658a9bb2b0996520466c6d",
|
|
7646
|
-
"schema_version": "2.
|
|
7647
|
-
"sdk_spec_version": "2.
|
|
7648
|
-
"source_hash": "sha256:
|
|
7646
|
+
"schema_version": "2.219.0",
|
|
7647
|
+
"sdk_spec_version": "2.11.0",
|
|
7648
|
+
"source_hash": "sha256:62bdaf53d3871346d4e2914e9c9035bf7b0b7c6b03c030eaea12b7854244de14"
|
|
7649
7649
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var LongFormProcessingClass;
|
|
2
2
|
(function (LongFormProcessingClass) {
|
|
3
3
|
LongFormProcessingClass["LONG_FORM"] = "long_form";
|
|
4
|
+
LongFormProcessingClass["LONG_FORM_CONCAT"] = "long_form_concat";
|
|
4
5
|
})(LongFormProcessingClass || (LongFormProcessingClass = {}));
|
|
5
6
|
export default LongFormProcessingClass;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ReEncodeDecision from './ReEncodeDecision.js';
|
|
2
|
+
import AnonymousSchema_286 from './AnonymousSchema_286.js';
|
|
2
3
|
interface OperationMetrics {
|
|
3
4
|
'original_size_bytes'?: number;
|
|
4
5
|
'output_size_bytes'?: number;
|
|
@@ -17,6 +18,7 @@ interface OperationMetrics {
|
|
|
17
18
|
'memory_mb'?: number;
|
|
18
19
|
'fargate_runtime_ms'?: number;
|
|
19
20
|
'already_optimal'?: 'completed' | boolean;
|
|
21
|
+
'already_optimal_kind'?: AnonymousSchema_286;
|
|
20
22
|
'estimated_saving_pct'?: number;
|
|
21
23
|
'additionalProperties'?: Record<string, any>;
|
|
22
24
|
}
|
package/dist/asyncapi/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as AnonymousSchema_217 } from './AnonymousSchema_217.js';
|
|
2
|
+
export { default as AnonymousSchema_286 } from './AnonymousSchema_286.js';
|
|
2
3
|
export { default as ErrorCode } from './ErrorCode.js';
|
|
3
4
|
export { default as Failure } from './Failure.js';
|
|
4
5
|
export { default as JobInputRole } from './JobInputRole.js';
|
package/dist/asyncapi/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as AnonymousSchema_217 } from './AnonymousSchema_217.js';
|
|
2
|
+
export { default as AnonymousSchema_286 } from './AnonymousSchema_286.js';
|
|
2
3
|
export { default as ErrorCode } from './ErrorCode.js';
|
|
3
4
|
export { default as JobInputRole } from './JobInputRole.js';
|
|
4
5
|
export { default as LongFormOperationType } from './LongFormOperationType.js';
|
|
@@ -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.219.0
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -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.219.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.219.0
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -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.219.0
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|