@giveitsmaller/contracts 0.5.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asyncapi/events.yaml +278 -4
- package/availability/availability.json +190 -12
- package/dist/asyncapi/AnonymousSchema_253.d.ts +5 -0
- package/dist/asyncapi/AnonymousSchema_253.js +6 -0
- package/dist/asyncapi/LongFormJobMessage.d.ts +10 -0
- package/dist/asyncapi/LongFormJobMessage.js +1 -0
- package/dist/asyncapi/index.d.ts +2 -0
- package/dist/asyncapi/index.js +1 -0
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
- package/dist/openapi/models/AuthErrorResponse.d.ts +9 -6
- package/dist/openapi/models/AuthErrorResponse.js +2 -2
- package/dist/openapi/models/AuthErrorType.d.ts +2 -2
- package/dist/openapi/models/AuthErrorType.js +2 -2
- package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
- package/dist/openapi/models/AvailabilityValue.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
- package/dist/openapi/models/CallbackEventType.d.ts +2 -2
- package/dist/openapi/models/CallbackEventType.js +2 -2
- package/dist/openapi/models/ConnectionSource.d.ts +2 -2
- package/dist/openapi/models/ConnectionSource.js +2 -2
- package/dist/openapi/models/ContactRequest.d.ts +2 -2
- package/dist/openapi/models/ContactRequest.js +2 -2
- package/dist/openapi/models/ContactSubject.d.ts +2 -2
- package/dist/openapi/models/ContactSubject.js +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
- package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
- package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
- package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
- package/dist/openapi/models/CreditTransaction.d.ts +2 -2
- package/dist/openapi/models/CreditTransaction.js +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
- package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
- package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageResponse.js +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
- package/dist/openapi/models/Delivery.d.ts +16 -3
- package/dist/openapi/models/Delivery.js +2 -2
- package/dist/openapi/models/DeliveryOutputRef.d.ts +2 -2
- package/dist/openapi/models/DeliveryOutputRef.js +2 -2
- package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlan.js +2 -2
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlanOutput.js +2 -2
- package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
- package/dist/openapi/models/DeliveryPlanReason.js +2 -2
- package/dist/openapi/models/DeliverySelection.d.ts +2 -2
- package/dist/openapi/models/DeliverySelection.js +2 -2
- package/dist/openapi/models/EndpointProjection.d.ts +98 -0
- package/dist/openapi/models/EndpointProjection.js +78 -0
- package/dist/openapi/models/ErrorEnvelope.d.ts +9 -6
- package/dist/openapi/models/ErrorEnvelope.js +2 -2
- package/dist/openapi/models/EstimateQuality.d.ts +2 -2
- package/dist/openapi/models/EstimateQuality.js +2 -2
- package/dist/openapi/models/EstimateRange.d.ts +2 -2
- package/dist/openapi/models/EstimateRange.js +2 -2
- package/dist/openapi/models/ExternalDestination.d.ts +2 -2
- package/dist/openapi/models/ExternalDestination.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
- package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
- package/dist/openapi/models/ExternalImportRequest.js +2 -2
- package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
- package/dist/openapi/models/ExternalImportToken.js +2 -2
- package/dist/openapi/models/ExternalSource.d.ts +2 -2
- package/dist/openapi/models/ExternalSource.js +2 -2
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +9 -6
- package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +9 -6
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
- package/dist/openapi/models/FeatureViolation.d.ts +2 -2
- package/dist/openapi/models/FeatureViolation.js +2 -2
- package/dist/openapi/models/JobDefinition.d.ts +2 -2
- package/dist/openapi/models/JobDefinition.js +2 -2
- package/dist/openapi/models/JobDownload.d.ts +2 -2
- package/dist/openapi/models/JobDownload.js +2 -2
- package/dist/openapi/models/JobInputV2.d.ts +2 -2
- package/dist/openapi/models/JobInputV2.js +2 -2
- package/dist/openapi/models/JobOutputSource.d.ts +2 -2
- package/dist/openapi/models/JobOutputSource.js +2 -2
- package/dist/openapi/models/JobResponse.d.ts +2 -2
- package/dist/openapi/models/JobResponse.js +2 -2
- package/dist/openapi/models/JobStatus.d.ts +2 -2
- package/dist/openapi/models/JobStatus.js +2 -2
- package/dist/openapi/models/JobType.d.ts +2 -2
- package/dist/openapi/models/JobType.js +2 -2
- package/dist/openapi/models/LivenessResponse.d.ts +2 -2
- package/dist/openapi/models/LivenessResponse.js +2 -2
- package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
- package/dist/openapi/models/LoginUser200Response.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
- package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
- package/dist/openapi/models/LoginUserRequest.js +2 -2
- package/dist/openapi/models/LogoutUser200Response.d.ts +2 -2
- package/dist/openapi/models/LogoutUser200Response.js +2 -2
- package/dist/openapi/models/MetadataResponse.d.ts +2 -2
- package/dist/openapi/models/MetadataResponse.js +2 -2
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
- package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExif.js +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
- package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MimeGroupSchema.d.ts +2 -2
- package/dist/openapi/models/MimeGroupSchema.js +2 -2
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
- package/dist/openapi/models/MultipartPartListing.js +2 -2
- package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignRequest.js +2 -2
- package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignResponse.js +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
- package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusResponse.js +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/OperationDefinition.d.ts +2 -2
- package/dist/openapi/models/OperationDefinition.js +2 -2
- package/dist/openapi/models/OperationDownload.d.ts +2 -2
- package/dist/openapi/models/OperationDownload.js +2 -2
- package/dist/openapi/models/OperationInputModel.d.ts +2 -2
- package/dist/openapi/models/OperationInputModel.js +2 -2
- package/dist/openapi/models/OperationResponse.d.ts +2 -2
- package/dist/openapi/models/OperationResponse.js +2 -2
- package/dist/openapi/models/OperationResult.d.ts +2 -2
- package/dist/openapi/models/OperationResult.js +2 -2
- package/dist/openapi/models/OperationResultMetrics.d.ts +21 -2
- package/dist/openapi/models/OperationResultMetrics.js +7 -2
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +2 -2
- package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
- package/dist/openapi/models/OperationStatus.d.ts +2 -2
- package/dist/openapi/models/OperationStatus.js +2 -2
- package/dist/openapi/models/OperationType.d.ts +2 -2
- package/dist/openapi/models/OperationType.js +2 -2
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +30 -2
- package/dist/openapi/models/OperationsSchemaResponse.js +5 -2
- package/dist/openapi/models/OptionSchema.d.ts +23 -2
- package/dist/openapi/models/OptionSchema.js +6 -3
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
- package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
- package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
- package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
- package/dist/openapi/models/PresignedUrlPart.js +2 -2
- package/dist/openapi/models/ProbePendingResponse.d.ts +9 -6
- package/dist/openapi/models/ProbePendingResponse.js +2 -2
- package/dist/openapi/models/ProcessingClass.d.ts +2 -2
- package/dist/openapi/models/ProcessingClass.js +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +9 -6
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
- package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassHint.js +2 -2
- package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassReason.js +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
- package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
- package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlan.js +2 -2
- package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
- package/dist/openapi/models/ProcessingPlanJob.js +2 -2
- package/dist/openapi/models/ReEncodeDecision.d.ts +38 -0
- package/dist/openapi/models/ReEncodeDecision.js +56 -0
- package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
- package/dist/openapi/models/ReadinessResponse.js +2 -2
- package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
- package/dist/openapi/models/ResponseEnvelope.js +2 -2
- package/dist/openapi/models/RetryResponse.d.ts +2 -2
- package/dist/openapi/models/RetryResponse.js +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
- package/dist/openapi/models/SseCompletionBase.d.ts +63 -0
- package/dist/openapi/models/SseCompletionBase.js +50 -0
- package/dist/openapi/models/SseEventType.d.ts +2 -2
- package/dist/openapi/models/SseEventType.js +2 -2
- package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
- package/dist/openapi/models/SseJobCompletedData.js +2 -2
- package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
- package/dist/openapi/models/SseJobFailedData.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +6 -8
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
- package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
- package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
- package/dist/openapi/models/SseOperationCompletedData.js +2 -2
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +42 -2
- package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
- package/dist/openapi/models/SseOperationFailedData.d.ts +2 -2
- package/dist/openapi/models/SseOperationFailedData.js +2 -2
- package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
- package/dist/openapi/models/SseOperationProgressData.js +2 -2
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +6 -9
- package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
- package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
- package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
- package/dist/openapi/models/TierRestrictionKind.js +2 -2
- package/dist/openapi/models/TierRestrictionResponse.d.ts +9 -6
- package/dist/openapi/models/TierRestrictionResponse.js +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
- package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +9 -6
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile403Response.js +2 -2
- package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
- package/dist/openapi/models/UploadFile422Response.js +2 -2
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +16 -5
- package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +2 -2
- package/dist/openapi/models/UploadProbeProcessingClass.js +2 -2
- package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
- package/dist/openapi/models/UploadProbeResponse.js +2 -2
- package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
- package/dist/openapi/models/UploadProbeStatus.js +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadResponse.d.ts +2 -2
- package/dist/openapi/models/UploadResponse.js +2 -2
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +9 -6
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
- package/dist/openapi/models/UploadSource.d.ts +2 -2
- package/dist/openapi/models/UploadSource.js +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/UploadThresholds.d.ts +2 -2
- package/dist/openapi/models/UploadThresholds.js +2 -2
- package/dist/openapi/models/UserTier.d.ts +2 -2
- package/dist/openapi/models/UserTier.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +6 -3
- package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
- package/dist/openapi/models/WarningType.d.ts +2 -2
- package/dist/openapi/models/WarningType.js +2 -2
- package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
- package/dist/openapi/models/WebhookOperationContext.js +2 -2
- package/dist/openapi/models/WebhookPayload.d.ts +2 -2
- package/dist/openapi/models/WebhookPayload.js +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
- package/dist/openapi/models/WorkflowEdge.js +2 -2
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +9 -6
- package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
- package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
- package/dist/openapi/models/WorkflowProcessing.js +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowSource.d.ts +2 -2
- package/dist/openapi/models/WorkflowSource.js +2 -2
- package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatus.js +2 -2
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatusResponse.js +2 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
- package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarning.js +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
- package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
- package/dist/openapi/models/index.d.ts +3 -0
- package/dist/openapi/models/index.js +3 -0
- package/dist/openapi/runtime.d.ts +2 -2
- package/dist/openapi/runtime.js +2 -2
- package/openapi/api.yaml +429 -49
- package/operations/schemas/compress.yaml +0 -3
- package/operations/schemas/convert.yaml +14 -1
- package/operations/schemas/merge.yaml +14 -10
- package/package.json +1 -1
package/openapi/api.yaml
CHANGED
|
@@ -42,13 +42,27 @@ info:
|
|
|
42
42
|
`message_key`. Machine-readable fields (`error`, enum values, status
|
|
43
43
|
codes) stay canonical English.
|
|
44
44
|
|
|
45
|
+
- **Currently committed locales:** `en-GB` only (per ticket
|
|
46
|
+
[`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier
|
|
47
|
+
shape (`Accept-Language` + `Content-Language` + `Vary` headers +
|
|
48
|
+
`locale` envelope field + `message_key` + `message_params`) is
|
|
49
|
+
stable and exercised; the **catalog** of translated `message`
|
|
50
|
+
strings is en-GB-only at runtime today. Additional locales (e.g.
|
|
51
|
+
`pt-PT`) will be advertised by name when their catalogs ship —
|
|
52
|
+
the request/response carrier shape does NOT change when a new
|
|
53
|
+
locale lands. Treat unrequested locales as "machine-code +
|
|
54
|
+
`message_key` path is committed; localised `message` prose is
|
|
55
|
+
not" until this prose enumerates them by name.
|
|
45
56
|
- **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value
|
|
46
57
|
negotiation supported). The server selects the best-match locale
|
|
47
|
-
from its supported list; falls back to `en-GB` when no match
|
|
58
|
+
from its supported list; falls back to `en-GB` when no match —
|
|
59
|
+
which, until additional catalogs land, is every non-`en-GB`
|
|
60
|
+
`Accept-Language`.
|
|
48
61
|
- **Response:** `Content-Language: <locale>` echo on every localised
|
|
49
62
|
response; `Vary: Accept-Language` on every response (CDN/cache
|
|
50
63
|
correctness — different `Accept-Language` requests produce
|
|
51
|
-
different responses).
|
|
64
|
+
different responses). `Vary` is emitted unconditionally so the
|
|
65
|
+
header contract does not flip when a second locale ships.
|
|
52
66
|
- **Fallback locale:** `en-GB` (also the canonical locale for
|
|
53
67
|
`message_key` translations and English `message` prose).
|
|
54
68
|
- **SDK guidance:** switch on `error` (machine code) for typed
|
|
@@ -75,7 +89,7 @@ info:
|
|
|
75
89
|
of truth instead of hardcoding magic numbers. A runtime
|
|
76
90
|
`GET /api/uploads/limits` endpoint for dynamic discovery
|
|
77
91
|
(per-tier / per-environment overrides) is a deferred follow-up.
|
|
78
|
-
version: 2.
|
|
92
|
+
version: 2.21.0
|
|
79
93
|
contact:
|
|
80
94
|
name: API Support
|
|
81
95
|
|
|
@@ -103,6 +117,14 @@ tags:
|
|
|
103
117
|
- name: AudioWatermark
|
|
104
118
|
description: Steganographic audio watermark embed and decode
|
|
105
119
|
|
|
120
|
+
# Spec-root default per ADR-0016 D2: anonymous-OK unless overridden
|
|
121
|
+
# per-operation. Every inbound operation declares an explicit `security:`
|
|
122
|
+
# block (one of `[]`, `[{bearerAuth: []}, {sessionAuth: []}]`, or
|
|
123
|
+
# `[{}, {bearerAuth: []}, {sessionAuth: []}]`) so the contract is
|
|
124
|
+
# self-documenting — `[]` here protects against future endpoints that
|
|
125
|
+
# accidentally inherit a stricter default.
|
|
126
|
+
security: []
|
|
127
|
+
|
|
106
128
|
paths:
|
|
107
129
|
# ============================================
|
|
108
130
|
# UPLOAD ENDPOINTS
|
|
@@ -122,6 +144,7 @@ paths:
|
|
|
122
144
|
(10 MB). Files above this size MUST use the multipart upload flow
|
|
123
145
|
instead (`POST /api/uploads/multipart/initiate`).
|
|
124
146
|
operationId: uploadFile
|
|
147
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; auth attribution if present)
|
|
125
148
|
tags:
|
|
126
149
|
- Upload
|
|
127
150
|
requestBody:
|
|
@@ -321,6 +344,7 @@ paths:
|
|
|
321
344
|
|
|
322
345
|
After all parts are uploaded to S3, call the complete endpoint to finalise.
|
|
323
346
|
operationId: multipartInitiate
|
|
347
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-tolerant; manifest.userId pinned to caller if authed)
|
|
324
348
|
tags:
|
|
325
349
|
- Upload
|
|
326
350
|
requestBody:
|
|
@@ -455,6 +479,8 @@ paths:
|
|
|
455
479
|
rule and additionally refuse anonymous-initiated sessions
|
|
456
480
|
outright (returning 403 `MULTIPART_SESSION_AUTH_REQUIRED`).
|
|
457
481
|
operationId: multipartComplete
|
|
482
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-tolerant; ownership-scoped per HxUmVr3Y when manifest.userId set)
|
|
483
|
+
x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
|
|
458
484
|
tags:
|
|
459
485
|
- Upload
|
|
460
486
|
requestBody:
|
|
@@ -550,6 +576,8 @@ paths:
|
|
|
550
576
|
Completion-readiness is client-derived (walk all pages, compare
|
|
551
577
|
the count of returned parts to `total_parts`).
|
|
552
578
|
operationId: multipartStatus
|
|
579
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected with MULTIPART_SESSION_AUTH_REQUIRED — see ErrorCode.authentication_required prose)
|
|
580
|
+
x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
|
|
553
581
|
tags:
|
|
554
582
|
- Upload
|
|
555
583
|
parameters:
|
|
@@ -674,6 +702,8 @@ paths:
|
|
|
674
702
|
**Authentication required.** Same `MULTIPART_SESSION_*` codes
|
|
675
703
|
apply as on `/status`.
|
|
676
704
|
operationId: multipartPresign
|
|
705
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected; resume-only endpoint)
|
|
706
|
+
x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
|
|
677
707
|
tags:
|
|
678
708
|
- Upload
|
|
679
709
|
parameters:
|
|
@@ -793,6 +823,8 @@ paths:
|
|
|
793
823
|
**Authentication required.** Same `MULTIPART_SESSION_*` codes
|
|
794
824
|
apply as on `/status` and `/presign`.
|
|
795
825
|
operationId: multipartKeepalive
|
|
826
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (anon-initiated sessions rejected; resume-only endpoint)
|
|
827
|
+
x-identity-scoped: true # session/ownership-scoped per ADR-0016 D3
|
|
796
828
|
tags:
|
|
797
829
|
- Upload
|
|
798
830
|
parameters:
|
|
@@ -868,6 +900,8 @@ paths:
|
|
|
868
900
|
- **Audio:** duration, bitrate, channels, sample_rate, codec
|
|
869
901
|
- **Documents:** page_count, dimensions (for PDF)
|
|
870
902
|
operationId: getUploadMetadata
|
|
903
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to caller's session/identity)
|
|
904
|
+
x-identity-scoped: true # ownership-scoped per ADR-0016 D3
|
|
871
905
|
tags:
|
|
872
906
|
- Upload
|
|
873
907
|
parameters:
|
|
@@ -955,6 +989,8 @@ paths:
|
|
|
955
989
|
same `probed_at` timestamp + result (cached server-side per
|
|
956
990
|
upload).
|
|
957
991
|
operationId: probeUpload
|
|
992
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set; ownership-scoped)
|
|
993
|
+
x-identity-scoped: true # ownership-scoped per ADR-0016 D3
|
|
958
994
|
tags:
|
|
959
995
|
- Upload
|
|
960
996
|
x-availability: planned
|
|
@@ -1173,6 +1209,8 @@ paths:
|
|
|
1173
1209
|
idempotency-key wire shape for retried reservation attempts
|
|
1174
1210
|
is deferred per ADR-0001 §1.7 row 5.
|
|
1175
1211
|
operationId: createWorkflow
|
|
1212
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK on free-tier baseline; auth required for tier-gated operations)
|
|
1213
|
+
x-identity-scoped: true # request body dereferences upload file_ids — cross-identity references return 403 per ADR-0016 D3 (NOTE: §D4 ADR sample showed identity_scoped: false; B3 audit flipped to true per §D3 principle — SDK-acked 2026-05-28)
|
|
1176
1214
|
tags:
|
|
1177
1215
|
- Workflow
|
|
1178
1216
|
requestBody:
|
|
@@ -1656,6 +1694,8 @@ paths:
|
|
|
1656
1694
|
Each operation includes its current progress and, when completed, its result
|
|
1657
1695
|
(download URL, size, metrics).
|
|
1658
1696
|
operationId: getWorkflowStatus
|
|
1697
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
|
|
1698
|
+
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
1659
1699
|
tags:
|
|
1660
1700
|
- Workflow
|
|
1661
1701
|
parameters:
|
|
@@ -1737,6 +1777,8 @@ paths:
|
|
|
1737
1777
|
Each job's operations are listed with their output files and pre-signed
|
|
1738
1778
|
download URLs.
|
|
1739
1779
|
operationId: getWorkflowDownloads
|
|
1780
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
|
|
1781
|
+
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
1740
1782
|
tags:
|
|
1741
1783
|
- Workflow
|
|
1742
1784
|
parameters:
|
|
@@ -1839,6 +1881,8 @@ paths:
|
|
|
1839
1881
|
(the `id:` and `event:` lines) is transport-level and intentionally
|
|
1840
1882
|
**not** schema-described.
|
|
1841
1883
|
operationId: streamWorkflowEvents
|
|
1884
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to workflow owner)
|
|
1885
|
+
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
1842
1886
|
tags:
|
|
1843
1887
|
- Workflow
|
|
1844
1888
|
parameters:
|
|
@@ -1902,6 +1946,8 @@ paths:
|
|
|
1902
1946
|
cancel response is the binding "no further reservations
|
|
1903
1947
|
will be made" signal.
|
|
1904
1948
|
operationId: cancelWorkflow
|
|
1949
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
|
|
1950
|
+
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
1905
1951
|
tags:
|
|
1906
1952
|
- Workflow
|
|
1907
1953
|
parameters:
|
|
@@ -2004,6 +2050,8 @@ paths:
|
|
|
2004
2050
|
a 409 (no-op — the workflow is already running, terminal,
|
|
2005
2051
|
or cancelled).
|
|
2006
2052
|
operationId: resumeWorkflow
|
|
2053
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set)
|
|
2054
|
+
x-identity-scoped: true # workflow-ownership-scoped per ADR-0016 D3
|
|
2007
2055
|
tags:
|
|
2008
2056
|
- Workflow
|
|
2009
2057
|
parameters:
|
|
@@ -2125,6 +2173,7 @@ paths:
|
|
|
2125
2173
|
on `OptionSchema` (ticket I17). Clients should use these to build
|
|
2126
2174
|
dynamic forms with availability-aware UX.
|
|
2127
2175
|
operationId: getOperationsSchema
|
|
2176
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK returns free-tier baseline; auth tier-scopes the response)
|
|
2128
2177
|
tags:
|
|
2129
2178
|
- Operations
|
|
2130
2179
|
parameters:
|
|
@@ -2150,7 +2199,7 @@ paths:
|
|
|
2150
2199
|
still fresh. Strong-ETag comparison.
|
|
2151
2200
|
schema:
|
|
2152
2201
|
type: string
|
|
2153
|
-
example: '"v2-pro-
|
|
2202
|
+
example: '"v2-pro-49"'
|
|
2154
2203
|
- name: If-Modified-Since
|
|
2155
2204
|
in: header
|
|
2156
2205
|
required: false
|
|
@@ -2183,7 +2232,7 @@ paths:
|
|
|
2183
2232
|
Strong entity tag. Clients send `If-None-Match: <etag>`
|
|
2184
2233
|
on subsequent requests to revalidate; the server returns
|
|
2185
2234
|
`304 Not Modified` when the response is still fresh.
|
|
2186
|
-
example: '"v2-pro-
|
|
2235
|
+
example: '"v2-pro-49"'
|
|
2187
2236
|
Last-Modified:
|
|
2188
2237
|
schema:
|
|
2189
2238
|
type: string
|
|
@@ -2201,7 +2250,7 @@ paths:
|
|
|
2201
2250
|
summary: Full schema (truncated for brevity)
|
|
2202
2251
|
value:
|
|
2203
2252
|
schema_version: "2.0.0"
|
|
2204
|
-
capabilities_version:
|
|
2253
|
+
capabilities_version: 49
|
|
2205
2254
|
generated_at: "2026-04-26T09:00:00Z"
|
|
2206
2255
|
user_tier: "pro"
|
|
2207
2256
|
operations:
|
|
@@ -2264,7 +2313,7 @@ paths:
|
|
|
2264
2313
|
ETag:
|
|
2265
2314
|
schema:
|
|
2266
2315
|
type: string
|
|
2267
|
-
example: '"v2-pro-
|
|
2316
|
+
example: '"v2-pro-49"'
|
|
2268
2317
|
Last-Modified:
|
|
2269
2318
|
schema:
|
|
2270
2319
|
type: string
|
|
@@ -2287,6 +2336,8 @@ paths:
|
|
|
2287
2336
|
The original failed operation is marked as `retried` and a new operation with
|
|
2288
2337
|
a new ID is created in `pending` state.
|
|
2289
2338
|
operationId: retryOperation
|
|
2339
|
+
security: [{}, {bearerAuth: []}, {sessionAuth: []}] # optional (anon-OK; identity-scoped to operation owner)
|
|
2340
|
+
x-identity-scoped: true # operation-ownership-scoped per ADR-0016 D3
|
|
2290
2341
|
tags:
|
|
2291
2342
|
- Operations
|
|
2292
2343
|
parameters:
|
|
@@ -2340,6 +2391,7 @@ paths:
|
|
|
2340
2391
|
summary: Liveness probe
|
|
2341
2392
|
description: Kubernetes liveness probe endpoint
|
|
2342
2393
|
operationId: liveness
|
|
2394
|
+
security: [] # anonymous (k8s probe — auth irrelevant)
|
|
2343
2395
|
tags:
|
|
2344
2396
|
- Health
|
|
2345
2397
|
responses:
|
|
@@ -2357,6 +2409,7 @@ paths:
|
|
|
2357
2409
|
summary: Readiness probe
|
|
2358
2410
|
description: Kubernetes readiness probe endpoint - checks database and cache connectivity
|
|
2359
2411
|
operationId: readiness
|
|
2412
|
+
security: [] # anonymous (k8s probe — auth irrelevant)
|
|
2360
2413
|
tags:
|
|
2361
2414
|
- Health
|
|
2362
2415
|
responses:
|
|
@@ -2393,6 +2446,7 @@ paths:
|
|
|
2393
2446
|
- `429` — infrastructure rate-limit (too many attempts in the current
|
|
2394
2447
|
window). Distinct from `account_locked`, which is persisted state.
|
|
2395
2448
|
operationId: loginUser
|
|
2449
|
+
security: [] # anonymous (entry point — you're logging in, no creds yet)
|
|
2396
2450
|
tags:
|
|
2397
2451
|
- Auth
|
|
2398
2452
|
requestBody:
|
|
@@ -2580,6 +2634,8 @@ paths:
|
|
|
2580
2634
|
endpoint since `AuthController.php:19-22`; this declaration
|
|
2581
2635
|
catches the contract up).
|
|
2582
2636
|
operationId: logoutUser
|
|
2637
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (logout requires an authenticated principal to invalidate)
|
|
2638
|
+
x-identity-scoped: true # identity-bound (caller's own session) per ADR-0016 D3 — by symmetry with credits/balance per §D4 sample
|
|
2583
2639
|
tags:
|
|
2584
2640
|
- Auth
|
|
2585
2641
|
responses:
|
|
@@ -2674,6 +2730,14 @@ paths:
|
|
|
2674
2730
|
per ADR-0001 §1.3); the runtime endpoint returns `404` until
|
|
2675
2731
|
cross-repo wiring lands.
|
|
2676
2732
|
operationId: createExternalImport
|
|
2733
|
+
# Auth: REQUIRED defensively. Endpoint is availability:planned (no
|
|
2734
|
+
# controller yet); but the endpoint stores encrypted server-side
|
|
2735
|
+
# secrets (bearer URLs, passwords) and anon-callable secret
|
|
2736
|
+
# storage is almost certainly wrong. Locking the contract here
|
|
2737
|
+
# while we still own the source of truth; runtime tightens to
|
|
2738
|
+
# match when the controller lands. Per ADR-0016 / karen review
|
|
2739
|
+
# on yN309QVb-B2.
|
|
2740
|
+
security: [{bearerAuth: []}, {sessionAuth: []}]
|
|
2677
2741
|
x-availability: planned
|
|
2678
2742
|
tags:
|
|
2679
2743
|
- Upload
|
|
@@ -2780,6 +2844,7 @@ paths:
|
|
|
2780
2844
|
`feature_not_available` (422) until the Lambda lands. Per
|
|
2781
2845
|
Tension 1 (ADR-0001 §1.3).
|
|
2782
2846
|
operationId: decodeAudioWatermark
|
|
2847
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (explicit 401 in response set; tier-gated runtime call)
|
|
2783
2848
|
tags:
|
|
2784
2849
|
- AudioWatermark
|
|
2785
2850
|
x-availability: planned
|
|
@@ -2877,6 +2942,8 @@ paths:
|
|
|
2877
2942
|
SDKs gate UI on `available_credits` for the spend-now affordance
|
|
2878
2943
|
and on `tier` for tier-upgrade prompts.
|
|
2879
2944
|
operationId: getCreditsBalance
|
|
2945
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (identity-scoped to caller's wallet)
|
|
2946
|
+
x-identity-scoped: true # caller's wallet — per ADR-0016 §D4 sample
|
|
2880
2947
|
tags:
|
|
2881
2948
|
- Billing
|
|
2882
2949
|
responses:
|
|
@@ -2956,13 +3023,18 @@ paths:
|
|
|
2956
3023
|
|
|
2957
3024
|
Default page is 20 transactions, ordered most-recent-first.
|
|
2958
3025
|
operationId: getCreditsUsage
|
|
3026
|
+
security: [{bearerAuth: []}, {sessionAuth: []}] # required (identity-scoped to caller's usage history)
|
|
3027
|
+
x-identity-scoped: true # caller's usage history — per ADR-0016 D3
|
|
2959
3028
|
tags:
|
|
2960
3029
|
- Billing
|
|
2961
3030
|
parameters:
|
|
2962
3031
|
- name: limit
|
|
2963
3032
|
in: query
|
|
2964
3033
|
required: false
|
|
2965
|
-
description:
|
|
3034
|
+
description: |
|
|
3035
|
+
Page size. Server may reject invalid `limit` / `offset`
|
|
3036
|
+
with `422 VALIDATION_FAILED` (per project-wide query-param
|
|
3037
|
+
validation convention).
|
|
2966
3038
|
schema:
|
|
2967
3039
|
type: integer
|
|
2968
3040
|
minimum: 1
|
|
@@ -2971,7 +3043,9 @@ paths:
|
|
|
2971
3043
|
- name: offset
|
|
2972
3044
|
in: query
|
|
2973
3045
|
required: false
|
|
2974
|
-
description:
|
|
3046
|
+
description: |
|
|
3047
|
+
Page offset (zero-based). Server may reject invalid
|
|
3048
|
+
`limit` / `offset` with `422 VALIDATION_FAILED`.
|
|
2975
3049
|
schema:
|
|
2976
3050
|
type: integer
|
|
2977
3051
|
minimum: 0
|
|
@@ -3094,21 +3168,33 @@ paths:
|
|
|
3094
3168
|
total: 47
|
|
3095
3169
|
limit: 20
|
|
3096
3170
|
offset: 0
|
|
3097
|
-
'
|
|
3098
|
-
description:
|
|
3171
|
+
'401':
|
|
3172
|
+
description: Authentication required.
|
|
3099
3173
|
content:
|
|
3100
3174
|
application/json:
|
|
3101
3175
|
schema:
|
|
3102
3176
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3177
|
+
'422':
|
|
3178
|
+
description: |
|
|
3179
|
+
Invalid pagination parameters (`limit` out of range,
|
|
3180
|
+
`offset` negative). Per the project-wide query-param
|
|
3181
|
+
validation convention: the API runtime translates parameter
|
|
3182
|
+
constraint violations into `ValidationErrorEnvelope` with
|
|
3183
|
+
`error: "VALIDATION_FAILED"` and structured `details[]`
|
|
3184
|
+
describing each rejected parameter. Replaces the prior
|
|
3185
|
+
`400 ErrorEnvelope` shape — wire change landed via
|
|
3186
|
+
[`gCfdFhdo`](https://trello.com/c/gCfdFhdo) on the API side
|
|
3187
|
+
(contracts caught up via [`d4rJzTcU`](https://trello.com/c/d4rJzTcU)).
|
|
3108
3188
|
content:
|
|
3109
3189
|
application/json:
|
|
3110
3190
|
schema:
|
|
3111
|
-
$ref: '#/components/schemas/
|
|
3191
|
+
$ref: '#/components/schemas/ValidationErrorEnvelope'
|
|
3192
|
+
example:
|
|
3193
|
+
success: false
|
|
3194
|
+
error: "VALIDATION_FAILED"
|
|
3195
|
+
details:
|
|
3196
|
+
- field: "limit"
|
|
3197
|
+
message: "limit must be between 1 and 100"
|
|
3112
3198
|
'429':
|
|
3113
3199
|
description: Rate limit exceeded
|
|
3114
3200
|
content:
|
|
@@ -3139,6 +3225,7 @@ paths:
|
|
|
3139
3225
|
On success, returns 204 with no body. The API sends the message via its
|
|
3140
3226
|
configured delivery channel (e.g. email, queue).
|
|
3141
3227
|
operationId: submitContact
|
|
3228
|
+
security: [] # anonymous (public contact form)
|
|
3142
3229
|
tags:
|
|
3143
3230
|
- Contact
|
|
3144
3231
|
requestBody:
|
|
@@ -3225,6 +3312,38 @@ webhooks:
|
|
|
3225
3312
|
description: Callback acknowledged (no body)
|
|
3226
3313
|
|
|
3227
3314
|
components:
|
|
3315
|
+
# Per ADR-0016: auth presence is modeled with OpenAPI-native
|
|
3316
|
+
# `security` / `securitySchemes` (NOT a custom `auth:` field) so codegen,
|
|
3317
|
+
# spectral, and oasdiff understand it natively. Two schemes — the same
|
|
3318
|
+
# Symfony `api` firewall accepts BOTH a bearer API-key and a login-session
|
|
3319
|
+
# cookie. Per-operation `security:` blocks OR the two schemes for the
|
|
3320
|
+
# three idioms (anonymous / required / optional). Spec root carries
|
|
3321
|
+
# `security: []` default (anonymous-OK); per-operation overrides flip
|
|
3322
|
+
# the requirement.
|
|
3323
|
+
securitySchemes:
|
|
3324
|
+
bearerAuth:
|
|
3325
|
+
type: http
|
|
3326
|
+
scheme: bearer
|
|
3327
|
+
description: |
|
|
3328
|
+
API-key bearer authentication. The `ApiKeyAuthenticator`
|
|
3329
|
+
(Symfony `api` firewall) validates
|
|
3330
|
+
`Authorization: Bearer <api-key>` per the prose under
|
|
3331
|
+
`ErrorCode.authentication_required`.
|
|
3332
|
+
sessionAuth:
|
|
3333
|
+
type: apiKey
|
|
3334
|
+
in: cookie
|
|
3335
|
+
name: PHPSESSID
|
|
3336
|
+
description: |
|
|
3337
|
+
Login-session cookie authentication. The `ApiEntryPoint`
|
|
3338
|
+
(Symfony `api` firewall) recognises an authenticated session
|
|
3339
|
+
when the cookie is present and the session has a valid
|
|
3340
|
+
principal. Set by `POST /api/auth/login`; cleared by
|
|
3341
|
+
`POST /api/auth/logout`. Cookie name `PHPSESSID` follows the
|
|
3342
|
+
Symfony / PHP default — no `framework.session.name` override
|
|
3343
|
+
in `compression/config/packages/framework.yaml` as of v2.16.6
|
|
3344
|
+
verification. Update this declaration if the API repo ever
|
|
3345
|
+
adds a `session.name` override.
|
|
3346
|
+
|
|
3228
3347
|
schemas:
|
|
3229
3348
|
# ============================================
|
|
3230
3349
|
# SHARED PRIMITIVES
|
|
@@ -3332,10 +3451,13 @@ components:
|
|
|
3332
3451
|
type: string
|
|
3333
3452
|
description: |
|
|
3334
3453
|
BCP 47 locale tag echoing the resolved `Content-Language`
|
|
3335
|
-
response header value
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3454
|
+
response header value. Currently always `en-GB` (the only
|
|
3455
|
+
committed locale per `info.description` Localisation block
|
|
3456
|
+
+ ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6));
|
|
3457
|
+
additional values will appear here when their catalogs
|
|
3458
|
+
ship. Lets the SDK confirm which locale the server
|
|
3459
|
+
selected when the request used q-value negotiation across
|
|
3460
|
+
multiple `Accept-Language` values.
|
|
3339
3461
|
example: "en-GB"
|
|
3340
3462
|
message_params:
|
|
3341
3463
|
type: object
|
|
@@ -3379,7 +3501,10 @@ components:
|
|
|
3379
3501
|
(generic option/value validation failure), `REQUIRES_REENCODE`
|
|
3380
3502
|
(per ticket I16-CONS — `merge.video` with
|
|
3381
3503
|
`re_encode_mode: never` and incompatible inputs; caller
|
|
3382
|
-
resolves by switching to `re_encode_mode: auto` or `always`)
|
|
3504
|
+
resolves by switching to `re_encode_mode: auto` or `always`),
|
|
3505
|
+
`VALIDATION_FAILED` (request/query-param validation failure
|
|
3506
|
+
per the project-wide convention — e.g. `GET /api/v2/credits/usage`
|
|
3507
|
+
invalid `limit`/`offset`).
|
|
3383
3508
|
SDKs duck-type on this field for typed error-branch helpers.
|
|
3384
3509
|
message:
|
|
3385
3510
|
type: string
|
|
@@ -3450,6 +3575,26 @@ components:
|
|
|
3450
3575
|
`ErrorEnvelope.message_params`. Excludes cost
|
|
3451
3576
|
numbers.
|
|
3452
3577
|
|
|
3578
|
+
ReEncodeDecision:
|
|
3579
|
+
type: string
|
|
3580
|
+
description: |
|
|
3581
|
+
Path chosen for `merge.video` when `re_encode_mode=auto`.
|
|
3582
|
+
Server reports the actual path so callers can see why
|
|
3583
|
+
`auto` took the slow path. Absent for non-`merge.video`
|
|
3584
|
+
operations and for `merge.video` when `re_encode_mode` is
|
|
3585
|
+
`always` or `never` (path was caller-fixed). Per ticket
|
|
3586
|
+
I16-CONS (Trello 7nCZXEru).
|
|
3587
|
+
|
|
3588
|
+
Mirrors the AsyncAPI `ReEncodeDecision` (and
|
|
3589
|
+
`OperationMetrics.re_encode_decision`); exposed on the REST
|
|
3590
|
+
`OperationResult.metrics` per ticket zS4e9CI2 so the SDK
|
|
3591
|
+
customer path carries the same signal as the SSE/message
|
|
3592
|
+
surface. Cross-spec enum parity is verified by
|
|
3593
|
+
`tests/test_asyncapi_named_schemas.py`.
|
|
3594
|
+
enum:
|
|
3595
|
+
- stream_copy
|
|
3596
|
+
- re_encode
|
|
3597
|
+
|
|
3453
3598
|
# ============================================
|
|
3454
3599
|
# AVAILABILITY METADATA (decorative)
|
|
3455
3600
|
# ============================================
|
|
@@ -6543,8 +6688,19 @@ components:
|
|
|
6543
6688
|
- explicit
|
|
6544
6689
|
per_value_availability:
|
|
6545
6690
|
terminal: { availability: stable }
|
|
6546
|
-
all_outputs: { availability:
|
|
6547
|
-
explicit: { availability:
|
|
6691
|
+
all_outputs: { availability: planned }
|
|
6692
|
+
explicit: { availability: planned }
|
|
6693
|
+
# Availability flipped beta → planned per ticket
|
|
6694
|
+
# [`co0CERtJ`](https://trello.com/c/co0CERtJ) — the API
|
|
6695
|
+
# runtime currently 422s every non-default `selection.type`
|
|
6696
|
+
# with `feature_not_available`, which per the
|
|
6697
|
+
# `info.description` availability taxonomy IS the `planned`
|
|
6698
|
+
# behaviour (`stable`/`beta` MUST NOT 422). When the API
|
|
6699
|
+
# threads the request-level `delivery.selection` shape, this
|
|
6700
|
+
# flips back. Terminal stays `stable` because the runtime
|
|
6701
|
+
# honours it as the implicit default (`DeliveryPlanComputer`
|
|
6702
|
+
# computes terminal selection regardless of whether the
|
|
6703
|
+
# caller supplied a `delivery` block).
|
|
6548
6704
|
refs:
|
|
6549
6705
|
type: array
|
|
6550
6706
|
description: |
|
|
@@ -6571,7 +6727,20 @@ components:
|
|
|
6571
6727
|
properties:
|
|
6572
6728
|
mode:
|
|
6573
6729
|
type: string
|
|
6574
|
-
description:
|
|
6730
|
+
description: |
|
|
6731
|
+
Delivery mode. `individual` is the only committed value
|
|
6732
|
+
today (per ticket [`co0CERtJ`](https://trello.com/c/co0CERtJ)).
|
|
6733
|
+
`bundle` and `both` are `planned`: the API runtime returns
|
|
6734
|
+
`422 feature_not_available` for any non-`individual` value,
|
|
6735
|
+
which per the `info.description` availability taxonomy is
|
|
6736
|
+
the `planned` behaviour (`stable`/`beta` MUST NOT 422).
|
|
6737
|
+
|
|
6738
|
+
For workflows that need a packaged output today, compose
|
|
6739
|
+
a terminal `archive` job whose `sources` are
|
|
6740
|
+
`JobOutputSource` refs to the upstream jobs — `archive` is
|
|
6741
|
+
the canonical output-bundler per ADR-0017. `delivery.mode:
|
|
6742
|
+
bundle` is the deferred post-launch ergonomic sugar that
|
|
6743
|
+
will reuse the same `archive` runtime under the hood.
|
|
6575
6744
|
enum:
|
|
6576
6745
|
- individual
|
|
6577
6746
|
- bundle
|
|
@@ -6579,8 +6748,8 @@ components:
|
|
|
6579
6748
|
default: individual
|
|
6580
6749
|
per_value_availability:
|
|
6581
6750
|
individual: { availability: stable }
|
|
6582
|
-
bundle: { availability:
|
|
6583
|
-
both: { availability:
|
|
6751
|
+
bundle: { availability: planned }
|
|
6752
|
+
both: { availability: planned }
|
|
6584
6753
|
bundle_format:
|
|
6585
6754
|
type: string
|
|
6586
6755
|
enum:
|
|
@@ -6611,6 +6780,11 @@ components:
|
|
|
6611
6780
|
description: |
|
|
6612
6781
|
How to pick outputs. Default `terminal` (leaves only).
|
|
6613
6782
|
example:
|
|
6783
|
+
# Spec example uses `bundle` to document the deferred (planned)
|
|
6784
|
+
# shape end-to-end — see Delivery.mode per_value_availability
|
|
6785
|
+
# for the runtime state. For workflows that need packaged
|
|
6786
|
+
# output today, compose a terminal `archive` job whose
|
|
6787
|
+
# `sources` are `JobOutputSource` refs (ADR-0017).
|
|
6614
6788
|
mode: bundle
|
|
6615
6789
|
bundle_format: zip
|
|
6616
6790
|
bundle_filename: "compressed-photos"
|
|
@@ -6980,12 +7154,22 @@ components:
|
|
|
6980
7154
|
description: Container-reported duration (audio + video).
|
|
6981
7155
|
width:
|
|
6982
7156
|
type: integer
|
|
7157
|
+
format: int64
|
|
6983
7158
|
minimum: 1
|
|
6984
|
-
description:
|
|
7159
|
+
description: |
|
|
7160
|
+
Pixel width (image + video; best-effort document). Declared
|
|
7161
|
+
`int64` so Rust SDK generators emit `i64` instead of the
|
|
7162
|
+
default `i32`; `i32` is fine for everything ffmpeg/libcaesium
|
|
7163
|
+
handles today but the format hint keeps the door open for
|
|
7164
|
+
scientific / RAW imagery without future SDK churn (per
|
|
7165
|
+
ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
|
|
6985
7166
|
height:
|
|
6986
7167
|
type: integer
|
|
7168
|
+
format: int64
|
|
6987
7169
|
minimum: 1
|
|
6988
|
-
description:
|
|
7170
|
+
description: |
|
|
7171
|
+
Pixel height (image + video; best-effort document). See
|
|
7172
|
+
`width` for the `format: int64` rationale.
|
|
6989
7173
|
codec:
|
|
6990
7174
|
type: string
|
|
6991
7175
|
description: |
|
|
@@ -7020,12 +7204,16 @@ components:
|
|
|
7020
7204
|
`29.97`, `23.976`).
|
|
7021
7205
|
bitrate_bps:
|
|
7022
7206
|
type: integer
|
|
7207
|
+
format: int64
|
|
7023
7208
|
minimum: 0
|
|
7024
7209
|
description: |
|
|
7025
7210
|
Overall stream bitrate, **bits per second**. Units in
|
|
7026
7211
|
the field name, mirroring `duration_seconds`, so SDKs
|
|
7027
7212
|
avoid the kbps-vs-bps guessing trap. Container-reported
|
|
7028
|
-
for video + audio.
|
|
7213
|
+
for video + audio. Declared `int64` so Rust SDK
|
|
7214
|
+
generators emit `i64` instead of `i32`; `i32` caps at
|
|
7215
|
+
~2.1 Gbps which is tight for future 4K/8K/RAW workloads
|
|
7216
|
+
(per ticket [`0sTmbUsc`](https://trello.com/c/0sTmbUsc)).
|
|
7029
7217
|
audio_layout:
|
|
7030
7218
|
type: string
|
|
7031
7219
|
description: |
|
|
@@ -7486,6 +7674,21 @@ components:
|
|
|
7486
7674
|
duration_ms:
|
|
7487
7675
|
type: integer
|
|
7488
7676
|
description: Processing time in milliseconds
|
|
7677
|
+
re_encode_decision:
|
|
7678
|
+
# Mirrors AsyncAPI OperationMetrics.re_encode_decision so the
|
|
7679
|
+
# REST result surface (SDK customer path) carries the same
|
|
7680
|
+
# merge.video stream-copy-vs-re-encode signal as the SSE/message
|
|
7681
|
+
# channel. Per ticket zS4e9CI2 (unblocks e2e aDFI1FgT).
|
|
7682
|
+
$ref: '#/components/schemas/ReEncodeDecision'
|
|
7683
|
+
re_encode_reason:
|
|
7684
|
+
type: string
|
|
7685
|
+
description: |
|
|
7686
|
+
Advisory explanation for `re_encode_decision` (e.g.
|
|
7687
|
+
`all_inputs_compatible`, `explicit_always_mode`,
|
|
7688
|
+
`input_codec_mismatch`, `input_framerate_mismatch`).
|
|
7689
|
+
Free-form string — not an enum — so the Lambda can emit
|
|
7690
|
+
human-readable diagnostics that evolve without contract
|
|
7691
|
+
changes. Mirrors `OperationMetrics.re_encode_reason`.
|
|
7489
7692
|
|
|
7490
7693
|
# ============================================
|
|
7491
7694
|
# WORKFLOW DOWNLOAD SCHEMAS
|
|
@@ -7752,6 +7955,63 @@ components:
|
|
|
7752
7955
|
discriminator-based dispatch reads the snake_case wire key directly
|
|
7753
7956
|
(`switch (json['result_kind'])`), avoiding the case-mismatch bug
|
|
7754
7957
|
entirely.
|
|
7958
|
+
|
|
7959
|
+
**v2.16.1 attempted PHP-template fix (superseded by v2.16.5).**
|
|
7960
|
+
The v2.16.1 cut introduced the shared `SseCompletionBase`
|
|
7961
|
+
schema declaring `result_kind: { enum: [single, multi] }` (both
|
|
7962
|
+
literal values together) and had the branch wrappers
|
|
7963
|
+
allOf-merge it. The intent was to fix the v2.15.3 design where
|
|
7964
|
+
`result_kind` was declared only as `enum: [single]` /
|
|
7965
|
+
`enum: [multi]` inside each branch's inline `allOf` block —
|
|
7966
|
+
which made the openapi-generator PHP template flatten only one
|
|
7967
|
+
branch's enum into `getResultKindAllowableValues()`. The
|
|
7968
|
+
v2.16.1 verification at the time confirmed PHP emitted both
|
|
7969
|
+
values, but against the v2.15.3-generated tree, not against a
|
|
7970
|
+
fresh v2.16.1 regen. SDKs later caught (via codex on the
|
|
7971
|
+
v2.16.3 regen, surfaced by ChSmslxj) that v2.16.1's shared-base
|
|
7972
|
+
fix did NOT actually propagate through the PHP template — the
|
|
7973
|
+
template visits each oneOf branch's allOf and only flattens the
|
|
7974
|
+
per-branch single-value enum, NOT the shared base's full-union
|
|
7975
|
+
enum. PHP root model still emitted `RESULT_KIND_MULTI` only
|
|
7976
|
+
(the second branch's value). SseCompletionBase is RETAINED in
|
|
7977
|
+
v2.16.5 for documentation + JSON Schema branch identification
|
|
7978
|
+
+ consumers that traverse the allOf chain, but on its own it
|
|
7979
|
+
is NOT load-bearing for PHP correctness.
|
|
7980
|
+
|
|
7981
|
+
**v2.16.5 ChSmslxj PHP-template fix (load-bearing).**
|
|
7982
|
+
Declares `result_kind` with the full `enum: [single, multi]`
|
|
7983
|
+
directly on the ROOT `SseOperationCompletionResult` schema as
|
|
7984
|
+
a sibling of `oneOf` and `discriminator` (with `type: object`
|
|
7985
|
+
+ `required: [result_kind]`). The openapi-generator PHP
|
|
7986
|
+
template flattens this root enum cleanly into
|
|
7987
|
+
`getResultKindAllowableValues()`, emitting both
|
|
7988
|
+
`RESULT_KIND_SINGLE` and `RESULT_KIND_MULTI`. The triple
|
|
7989
|
+
declaration (root + SseCompletionBase + per-branch wrappers)
|
|
7990
|
+
is harmless redundancy: the root carries the full union for
|
|
7991
|
+
the PHP template; SseCompletionBase carries the full union
|
|
7992
|
+
for allOf-chain consumers; per-branch wrappers pin to a
|
|
7993
|
+
single literal value for OpenAPI discriminator semantics +
|
|
7994
|
+
JSON Schema branch identification. TypeScript dispatch is
|
|
7995
|
+
unchanged (`switch (json['result_kind'])` reads the
|
|
7996
|
+
snake_case wire key directly — verified on openapi-generator-
|
|
7997
|
+
cli v7.21.0).
|
|
7998
|
+
type: object
|
|
7999
|
+
required:
|
|
8000
|
+
- result_kind
|
|
8001
|
+
properties:
|
|
8002
|
+
result_kind:
|
|
8003
|
+
type: string
|
|
8004
|
+
enum: [single, multi]
|
|
8005
|
+
description: |
|
|
8006
|
+
Discriminator field. The full `[single, multi]` enum is
|
|
8007
|
+
declared directly on the root (this object) so the
|
|
8008
|
+
openapi-generator PHP template flattens both literal
|
|
8009
|
+
values into `getResultKindAllowableValues()` per
|
|
8010
|
+
ChSmslxj. Also declared on the shared `SseCompletionBase`
|
|
8011
|
+
(retained for consumers that traverse the allOf chain)
|
|
8012
|
+
and on each per-branch wrapper (single-value enum pinning
|
|
8013
|
+
the branch). The triple declaration is harmless redundancy
|
|
8014
|
+
necessary for PHP template flattening.
|
|
7755
8015
|
oneOf:
|
|
7756
8016
|
- $ref: '#/components/schemas/SseSingleOutputCompletion'
|
|
7757
8017
|
- $ref: '#/components/schemas/SseMultiOutputCompletionWithKind'
|
|
@@ -7761,46 +8021,71 @@ components:
|
|
|
7761
8021
|
single: '#/components/schemas/SseSingleOutputCompletion'
|
|
7762
8022
|
multi: '#/components/schemas/SseMultiOutputCompletionWithKind'
|
|
7763
8023
|
|
|
8024
|
+
SseCompletionBase:
|
|
8025
|
+
type: object
|
|
8026
|
+
description: |
|
|
8027
|
+
Shared base schema for the two `SseOperationCompletionResult`
|
|
8028
|
+
branches. Declares the `result_kind` discriminator field as a
|
|
8029
|
+
`[single, multi]` enum with both literal values, then each branch
|
|
8030
|
+
wrapper allOf-merges this base + its body schema.
|
|
8031
|
+
|
|
8032
|
+
**Rationale (v2.16.1):** the v2.15.3 design declared `result_kind`
|
|
8033
|
+
as a single-value `enum [single]` / `enum [multi]` inside each
|
|
8034
|
+
branch's inline `allOf` block. The openapi-generator PHP template
|
|
8035
|
+
for this shape flattens only the FIRST branch's discriminator enum
|
|
8036
|
+
into the root `getResultKindAllowableValues()` list, so PHP
|
|
8037
|
+
deserialisation rejects the other branch's wire value as invalid.
|
|
8038
|
+
Promoting `result_kind` to a shared base with the full union
|
|
8039
|
+
`enum [single, multi]` makes PHP accept both values; the
|
|
8040
|
+
per-branch `enum [single]` / `enum [multi]` (kept on the wrappers
|
|
8041
|
+
for JSON Schema-level branch identification + OpenAPI
|
|
8042
|
+
discriminator semantics) does not regress. TypeScript dispatch
|
|
8043
|
+
continues to use `switch (json['result_kind'])` — confirmed by
|
|
8044
|
+
codegen verification on openapi-generator-cli v7.21.0.
|
|
8045
|
+
required:
|
|
8046
|
+
- result_kind
|
|
8047
|
+
properties:
|
|
8048
|
+
result_kind:
|
|
8049
|
+
type: string
|
|
8050
|
+
enum: [single, multi]
|
|
8051
|
+
description: |
|
|
8052
|
+
Discriminator field on `SseOperationCompletionResult`. The
|
|
8053
|
+
API SSE serializer emits `"single"` for single-output
|
|
8054
|
+
completion payloads and `"multi"` for multi-output payloads;
|
|
8055
|
+
generated SDK dispatch routes on this value to pick the
|
|
8056
|
+
correct branch deserializer.
|
|
8057
|
+
|
|
7764
8058
|
SseSingleOutputCompletion:
|
|
7765
8059
|
description: |
|
|
7766
8060
|
Single-output branch of `SseOperationCompletionResult` — wraps
|
|
7767
|
-
`OperationResult`
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
8061
|
+
`OperationResult` + the shared `SseCompletionBase` + pins
|
|
8062
|
+
`result_kind` to the literal `"single"`. See
|
|
8063
|
+
`SseOperationCompletionResult` description for the rationale +
|
|
8064
|
+
codegen-quirk context.
|
|
7771
8065
|
allOf:
|
|
7772
8066
|
- $ref: '#/components/schemas/OperationResult'
|
|
8067
|
+
- $ref: '#/components/schemas/SseCompletionBase'
|
|
7773
8068
|
- type: object
|
|
7774
|
-
required:
|
|
7775
|
-
- result_kind
|
|
7776
8069
|
properties:
|
|
7777
8070
|
result_kind:
|
|
7778
8071
|
type: string
|
|
7779
8072
|
enum: [single]
|
|
7780
|
-
description: |
|
|
7781
|
-
Discriminator. Always the literal `"single"` for this branch.
|
|
7782
|
-
Emitted by the API SSE serializer; consumed by
|
|
7783
|
-
`SseOperationCompletionResult` dispatch.
|
|
7784
8073
|
|
|
7785
8074
|
SseMultiOutputCompletionWithKind:
|
|
7786
8075
|
description: |
|
|
7787
8076
|
Multi-output branch of `SseOperationCompletionResult` — wraps
|
|
7788
|
-
`SseMultiOutputCompletion`
|
|
7789
|
-
|
|
7790
|
-
rationale
|
|
8077
|
+
`SseMultiOutputCompletion` + the shared `SseCompletionBase` +
|
|
8078
|
+
pins `result_kind` to the literal `"multi"`. See
|
|
8079
|
+
`SseOperationCompletionResult` description for the rationale +
|
|
8080
|
+
codegen-quirk context.
|
|
7791
8081
|
allOf:
|
|
7792
8082
|
- $ref: '#/components/schemas/SseMultiOutputCompletion'
|
|
8083
|
+
- $ref: '#/components/schemas/SseCompletionBase'
|
|
7793
8084
|
- type: object
|
|
7794
|
-
required:
|
|
7795
|
-
- result_kind
|
|
7796
8085
|
properties:
|
|
7797
8086
|
result_kind:
|
|
7798
8087
|
type: string
|
|
7799
8088
|
enum: [multi]
|
|
7800
|
-
description: |
|
|
7801
|
-
Discriminator. Always the literal `"multi"` for this branch.
|
|
7802
|
-
Emitted by the API SSE serializer; consumed by
|
|
7803
|
-
`SseOperationCompletionResult` dispatch.
|
|
7804
8089
|
|
|
7805
8090
|
SseMultiOutputCompletion:
|
|
7806
8091
|
type: object
|
|
@@ -8115,6 +8400,84 @@ components:
|
|
|
8115
8400
|
availability metadata per I1 / I17).
|
|
8116
8401
|
additionalProperties:
|
|
8117
8402
|
$ref: '#/components/schemas/OperationSchemaDefinition'
|
|
8403
|
+
endpoints:
|
|
8404
|
+
type: object
|
|
8405
|
+
description: |
|
|
8406
|
+
Flat per-endpoint auth/identity projection per
|
|
8407
|
+
[ADR-0016](../docs/decisions/0016-per-endpoint-auth-identity-modeling.md)
|
|
8408
|
+
§D4. Keys are `<METHOD> <PATH>` literals (e.g.
|
|
8409
|
+
`"POST /api/workflows"`); values declare the auth axis +
|
|
8410
|
+
identity-scoping + reserved tier/availability slots +
|
|
8411
|
+
operation_id for SDK ergonomic-layer consumption.
|
|
8412
|
+
|
|
8413
|
+
Webhook operations are EXCLUDED per ADR-0016 §D5 — outbound
|
|
8414
|
+
HMAC-signed callbacks use a separate auth model.
|
|
8415
|
+
|
|
8416
|
+
**Optional in the wire envelope** to keep the runtime
|
|
8417
|
+
endpoint's mirroring obligation incremental: the
|
|
8418
|
+
committed sidecar (yN309QVb-B3 / v2.17.0+) emits this
|
|
8419
|
+
block authoritatively; the runtime `GET /api/operations/
|
|
8420
|
+
schema` MAY mirror it once the API team's runtime
|
|
8421
|
+
generator catches up. Consumers MUST tolerate absent
|
|
8422
|
+
`endpoints` from the runtime endpoint (read the sidecar
|
|
8423
|
+
instead) and MUST tolerate present `endpoints` from
|
|
8424
|
+
either source.
|
|
8425
|
+
additionalProperties:
|
|
8426
|
+
$ref: '#/components/schemas/EndpointProjection'
|
|
8427
|
+
|
|
8428
|
+
EndpointProjection:
|
|
8429
|
+
type: object
|
|
8430
|
+
description: |
|
|
8431
|
+
Per-endpoint projection entry per ADR-0016 §D4. Five fields;
|
|
8432
|
+
`required_tier` and `availability` at endpoint level are
|
|
8433
|
+
reserved/null today (operation-level `required_tier` continues
|
|
8434
|
+
to flow via `operations.*.required_tier`; every shipped
|
|
8435
|
+
endpoint is currently `availability: stable`).
|
|
8436
|
+
required:
|
|
8437
|
+
- auth
|
|
8438
|
+
- identity_scoped
|
|
8439
|
+
- required_tier
|
|
8440
|
+
- availability
|
|
8441
|
+
- operation_id
|
|
8442
|
+
properties:
|
|
8443
|
+
auth:
|
|
8444
|
+
type: string
|
|
8445
|
+
enum: [anonymous, optional, required]
|
|
8446
|
+
description: |
|
|
8447
|
+
3-value projection of the operation's `security:` block:
|
|
8448
|
+
`anonymous` (`security: []`), `optional` (`security`
|
|
8449
|
+
contains the empty requirement `{}`), `required`
|
|
8450
|
+
(otherwise).
|
|
8451
|
+
identity_scoped:
|
|
8452
|
+
type: boolean
|
|
8453
|
+
description: |
|
|
8454
|
+
Value of the `x-identity-scoped` vendor extension on the
|
|
8455
|
+
operation (default `false`). True iff the operation
|
|
8456
|
+
targets an identity-bound resource and cross-identity
|
|
8457
|
+
access returns 403 — OR acts on the caller's implicit
|
|
8458
|
+
identity-scoped data (credits balance, own session).
|
|
8459
|
+
required_tier:
|
|
8460
|
+
description: |
|
|
8461
|
+
Endpoint-level entitlement gate. Reserved/null today —
|
|
8462
|
+
operation-level `required_tier` flows via
|
|
8463
|
+
`operations.*.required_tier` and is NOT duplicated here.
|
|
8464
|
+
oneOf:
|
|
8465
|
+
- $ref: '#/components/schemas/UserTier'
|
|
8466
|
+
- type: 'null'
|
|
8467
|
+
availability:
|
|
8468
|
+
type: string
|
|
8469
|
+
enum: [stable, beta, experimental, planned, deprecated]
|
|
8470
|
+
description: |
|
|
8471
|
+
Endpoint-level availability tag. Currently always
|
|
8472
|
+
`"stable"` for shipped endpoints. Reserved for future
|
|
8473
|
+
`planned` / `deprecated` endpoint-level annotation.
|
|
8474
|
+
operation_id:
|
|
8475
|
+
type: string
|
|
8476
|
+
description: |
|
|
8477
|
+
OpenAPI `operationId` for the operation. SDK code
|
|
8478
|
+
generators anchor on this for method naming; including
|
|
8479
|
+
it in the sidecar saves a round-trip to `openapi/api.yaml`.
|
|
8480
|
+
Per the SDK ask at ADR-0016 B1 sign-off.
|
|
8118
8481
|
|
|
8119
8482
|
OperationSchemaDefinition:
|
|
8120
8483
|
type: object
|
|
@@ -8291,6 +8654,7 @@ components:
|
|
|
8291
8654
|
- boolean
|
|
8292
8655
|
- enum
|
|
8293
8656
|
- string
|
|
8657
|
+
- array
|
|
8294
8658
|
description:
|
|
8295
8659
|
type: string
|
|
8296
8660
|
description: Human-readable description
|
|
@@ -8335,6 +8699,22 @@ components:
|
|
|
8335
8699
|
by `make check-per-value-availability` (CI guard, ticket
|
|
8336
8700
|
[I17 `0gwtwCav`](https://trello.com/c/0gwtwCav)). Runtime
|
|
8337
8701
|
emission lands with I3.
|
|
8702
|
+
per_value_depends_on:
|
|
8703
|
+
type: object
|
|
8704
|
+
description: |
|
|
8705
|
+
Per-enum-value cross-field constraint map, only meaningful
|
|
8706
|
+
when `type: enum`. Keys MUST be a subset of `values[]`;
|
|
8707
|
+
each entry value is a `depends_on`-shaped condition mapping
|
|
8708
|
+
that the named enum value REQUIRES. Distinct from
|
|
8709
|
+
option-level `depends_on` (which gates applicability with
|
|
8710
|
+
silent-ignore semantics); `per_value_depends_on` rejects
|
|
8711
|
+
the request with `invalid_options` when the named value is
|
|
8712
|
+
chosen and the condition is not met. Verified by
|
|
8713
|
+
`make check-per-value-depends-on` (CI guard, ticket
|
|
8714
|
+
[`bsV3FWM5`](https://trello.com/c/bsV3FWM5)). Runtime
|
|
8715
|
+
emission ships verbatim alongside other availability
|
|
8716
|
+
metadata. See `schemas/FORMAT.md` §per_value_depends_on.
|
|
8717
|
+
additionalProperties: true
|
|
8338
8718
|
min:
|
|
8339
8719
|
type: number
|
|
8340
8720
|
description: Minimum value (for integer/float types)
|