Files
SpecterOps-Nemesis/docs/openapi.json
T
2025-09-02 18:14:53 -07:00

1924 lines
51 KiB
JSON

{
"openapi": "3.1.0",
"info": {
"title": "Enrichment API",
"description": "API for file enrichment services",
"version": "0.1.0"
},
"paths": {
"/files": {
"post": {
"tags": [
"files"
],
"summary": "Upload file with metadata",
"description": "Upload a file using multipart/form-data with metadata.\n Returns an object_id for the uploaded file and submission_id for the metadata submission.\n\n Example:\n ```\n curl -k -u n:n -F \"file=@example.txt\" -F 'metadata={\"agent_id\":\"agent123\",\"project\":\"proj1\",\"timestamp\":\"2024-01-29T12:00:00Z\",\"expiration\":\"2024-02-29T12:00:00Z\",\"path\":\"/tmp/example.txt\"}' https://nemesis:7443/api/files\n ```\n\n Example:\n ```\n curl -k -u n:n -F \"file=@example.txt\" -F 'metadata={\"agent_id\":\"agent123\",\"project\":\"proj1\",\"path\":\"/tmp/example.txt\"}' https://nemesis:7443/api/files\n ```",
"operationId": "upload_file_files_post",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/Body_upload_file_files_post"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileWithMetadataResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/files/{object_id}": {
"get": {
"tags": [
"files"
],
"summary": "Download a file",
"description": "Download a file by its object ID with optional raw format and custom filename",
"operationId": "download_file_files__object_id__get",
"parameters": [
{
"name": "object_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Unique identifier of the file to download",
"title": "Object Id"
},
"description": "Unique identifier of the file to download"
},
{
"name": "raw",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"description": "Whether to return the file in raw format",
"default": false,
"title": "Raw"
},
"description": "Whether to return the file in raw format"
},
{
"name": "name",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Custom filename for the downloaded file",
"default": "",
"title": "Name"
},
"description": "Custom filename for the downloaded file"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Not Found"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Bad Request"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Internal Server Error"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/containers": {
"post": {
"tags": [
"files"
],
"summary": "Submit large container file for processing with optional filtering",
"description": "...",
"operationId": "submit_container_containers_post",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/Body_submit_container_containers_post"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContainerSubmissionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/containers/{container_id}/status": {
"get": {
"tags": [
"files"
],
"summary": "Get container processing status",
"description": "Get the current processing status and progress of a submitted container",
"operationId": "get_container_status_containers__container_id__status_get",
"parameters": [
{
"name": "container_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Unique identifier of the container",
"title": "Container Id"
},
"description": "Unique identifier of the container"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContainerStatusResponse"
}
}
}
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Not Found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Internal Server Error"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/workflows/status": {
"get": {
"tags": [
"workflows"
],
"summary": "Get workflow enrichment workflow status",
"description": "Get the current status of the enrichment workflow system",
"operationId": "get_status_workflows_status_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowStatusResponse"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/workflows/failed": {
"get": {
"tags": [
"workflows"
],
"summary": "Get failed workflows",
"description": "Get the set of failed enrichment workflows",
"operationId": "get_failed_workflows_failed_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FailedWorkflowsResponse"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/enrichments": {
"get": {
"tags": [
"enrichments"
],
"summary": "List enrichment modules",
"description": "Get a list of all available enrichment modules",
"operationId": "list_enrichments_enrichments_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnrichmentsListResponse"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/enrichments/{enrichment_name}": {
"post": {
"tags": [
"enrichments"
],
"summary": "Run enrichment module",
"description": "Run a specific enrichment module on a file",
"operationId": "run_enrichment_enrichments__enrichment_name__post",
"parameters": [
{
"name": "enrichment_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Name of the enrichment module to run",
"title": "Enrichment Name"
},
"description": "Name of the enrichment module to run"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnrichmentRequest",
"description": "The enrichment request containing the object ID"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnrichmentResponse"
}
}
}
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Not Found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Internal Server Error"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Service Unavailable"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/enrichments/{enrichment_name}/bulk": {
"post": {
"tags": [
"enrichments"
],
"summary": "Start bulk enrichment",
"description": "Start bulk enrichment for a specific module against all files in the system using distributed processing",
"operationId": "run_bulk_enrichment_enrichments__enrichment_name__bulk_post",
"parameters": [
{
"name": "enrichment_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Name of the enrichment module to run",
"title": "Enrichment Name"
},
"description": "Name of the enrichment module to run"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Not Found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Internal Server Error"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Service Unavailable"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/enrichments/{enrichment_name}/bulk/status": {
"get": {
"tags": [
"enrichments"
],
"summary": "Get bulk enrichment status",
"description": "Bulk enrichment status tracking has been simplified",
"operationId": "get_bulk_enrichment_status_enrichments__enrichment_name__bulk_status_get",
"parameters": [
{
"name": "enrichment_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Name of the enrichment module to check status for",
"title": "Enrichment Name"
},
"description": "Name of the enrichment module to check status for"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/enrichments/{enrichment_name}/bulk/stop": {
"post": {
"tags": [
"enrichments"
],
"summary": "Stop bulk enrichment",
"description": "Bulk enrichment cannot be stopped once tasks are published",
"operationId": "stop_bulk_enrichment_enrichments__enrichment_name__bulk_stop_post",
"parameters": [
{
"name": "enrichment_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Name of the enrichment module to stop",
"title": "Enrichment Name"
},
"description": "Name of the enrichment module to stop"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/queues": {
"get": {
"tags": [
"queues"
],
"summary": "Get queue statistics",
"description": "Get comprehensive queue metrics for all workflow topics",
"operationId": "get_queue_metrics_queues_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueuesResponse"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/queues/{queue_name}": {
"get": {
"tags": [
"queues"
],
"summary": "Get single queue statistics",
"description": "Get metrics for a specific queue topic",
"operationId": "get_single_queue_metrics_queues__queue_name__get",
"parameters": [
{
"name": "queue_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"description": "Name of the queue to get metrics for",
"title": "Queue Name"
},
"description": "Name of the queue to get metrics for"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SingleQueueResponse"
}
}
}
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
},
"description": "Internal Server Error"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/system/yara/reload": {
"post": {
"tags": [
"system"
],
"summary": "Reload Yara rules",
"description": "Trigger a reload of all Yara rules in the backend across all workers/replicas",
"operationId": "reload_yara_rules_system_yara_reload_post",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/YaraReloadResponse"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/system/cleanup": {
"post": {
"tags": [
"system"
],
"summary": "Trigger database and datalake cleanup",
"description": "Trigger the housekeeping service to clean up expired files and database entries, and reset the workflow manager state. Optionally specify an expiration date or 'all' to remove all files.",
"operationId": "trigger_cleanup_system_cleanup_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CleanupRequest",
"description": "Optional cleanup parameters"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/system/health": {
"get": {
"tags": [
"system"
],
"summary": "Health check",
"description": "Health check endpoint for Docker healthcheck",
"operationId": "healthcheck_system_health_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HealthResponse"
}
}
}
}
}
}
},
"/system/info": {
"get": {
"tags": [
"system"
],
"summary": "API information",
"description": "Root endpoint that shows API information",
"operationId": "root_system_info_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIInfo"
}
}
}
}
}
}
},
"/system/apprise-info": {
"get": {
"tags": [
"system"
],
"summary": "Get Apprise alert information",
"description": "Get information about configured alert channels (currently Slack only)",
"operationId": "get_apprise_info_system_apprise_info_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/agents": {
"get": {
"tags": [
"system"
],
"summary": "Get available agents",
"description": "Get a list of available AI agents with their metadata and capabilities",
"operationId": "get_available_agents_agents_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/agents/spend-data": {
"get": {
"tags": [
"system"
],
"summary": "Get LLM spend and usage data",
"description": "Get total spend and token usage statistics from LiteLLM logs",
"operationId": "get_agents_spend_data_agents_spend_data_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/agents/text_summarizer": {
"post": {
"tags": [
"system"
],
"summary": "Run text summarization",
"description": "Forward text summarization request to agents service",
"operationId": "run_text_summarizer_agents_text_summarizer_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"additionalProperties": true,
"type": "object",
"title": "Request",
"description": "Request containing object_id"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/agents/llm_credential_analysis": {
"post": {
"tags": [
"system"
],
"summary": "Run credential analysis",
"description": "Forward credential analysis request to agents service",
"operationId": "run_llm_credential_analysis_agents_llm_credential_analysis_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"additionalProperties": true,
"type": "object",
"title": "Request",
"description": "Request containing object_id"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/agents/dotnet_analysis": {
"post": {
"tags": [
"system"
],
"summary": "Run .NET assembly analysis",
"description": "Forward .NET assembly analysis request to agents service",
"operationId": "run_dotnet_analysis_agents_dotnet_analysis_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"additionalProperties": true,
"type": "object",
"title": "Request",
"description": "Request containing object_id"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/system/available-services": {
"get": {
"tags": [
"system"
],
"summary": "Get available services",
"description": "Query Traefik to determine which optional services are currently available",
"operationId": "get_available_services_system_available_services_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/system/container-monitor/status": {
"get": {
"tags": [
"system"
],
"summary": "Container monitor status",
"description": "Get the status of the container file monitor",
"operationId": "get_container_monitor_status_system_container_monitor_status_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
}
},
"components": {
"schemas": {
"APIInfo": {
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "API name"
},
"version": {
"type": "string",
"title": "Version",
"description": "API version"
}
},
"type": "object",
"required": [
"name",
"version"
],
"title": "APIInfo",
"description": "Model representing API information"
},
"ActiveWorkflowDetail": {
"properties": {
"id": {
"type": "string",
"title": "Id"
},
"status": {
"type": "string",
"title": "Status"
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filename"
},
"object_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Object Id"
},
"timestamp": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Timestamp"
},
"runtime_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Runtime Seconds"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error"
}
},
"type": "object",
"required": [
"id",
"status"
],
"title": "ActiveWorkflowDetail"
},
"Body_submit_container_containers_post": {
"properties": {
"file": {
"type": "string",
"format": "binary",
"title": "File",
"description": "The container file to process"
},
"metadata": {
"type": "string",
"title": "Metadata",
"description": "JSON string containing file metadata with optional file_filters"
}
},
"type": "object",
"required": [
"file",
"metadata"
],
"title": "Body_submit_container_containers_post"
},
"Body_upload_file_files_post": {
"properties": {
"file": {
"type": "string",
"format": "binary",
"title": "File",
"description": "The file to upload"
},
"metadata": {
"type": "string",
"title": "Metadata",
"description": "JSON string containing file metadata"
}
},
"type": "object",
"required": [
"file",
"metadata"
],
"title": "Body_upload_file_files_post"
},
"CleanupRequest": {
"properties": {
"expiration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expiration"
}
},
"type": "object",
"title": "CleanupRequest"
},
"ContainerStatusResponse": {
"properties": {
"container_id": {
"type": "string",
"title": "Container Id"
},
"status": {
"type": "string",
"title": "Status"
},
"progress_percent_files": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Progress Percent Files"
},
"progress_percent_bytes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Progress Percent Bytes"
},
"processed_files": {
"type": "integer",
"title": "Processed Files"
},
"total_files": {
"type": "integer",
"title": "Total Files"
},
"processed_bytes": {
"type": "integer",
"title": "Processed Bytes"
},
"total_bytes": {
"type": "integer",
"title": "Total Bytes"
},
"current_file": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Current File"
},
"started_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Started At"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error"
},
"filter_stats": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Filter Stats"
}
},
"type": "object",
"required": [
"container_id",
"status",
"processed_files",
"total_files",
"processed_bytes",
"total_bytes"
],
"title": "ContainerStatusResponse"
},
"ContainerSubmissionResponse": {
"properties": {
"container_id": {
"type": "string",
"title": "Container Id"
},
"message": {
"type": "string",
"title": "Message"
},
"estimated_files": {
"type": "integer",
"title": "Estimated Files"
},
"estimated_size": {
"type": "integer",
"title": "Estimated Size"
},
"filter_config": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Filter Config"
}
},
"type": "object",
"required": [
"container_id",
"message",
"estimated_files",
"estimated_size"
],
"title": "ContainerSubmissionResponse"
},
"EnrichmentRequest": {
"properties": {
"object_id": {
"type": "string",
"title": "Object Id"
}
},
"type": "object",
"required": [
"object_id"
],
"title": "EnrichmentRequest"
},
"EnrichmentResponse": {
"properties": {
"status": {
"type": "string",
"title": "Status"
},
"message": {
"type": "string",
"title": "Message"
},
"instance_id": {
"type": "string",
"title": "Instance Id"
},
"object_id": {
"type": "string",
"title": "Object Id"
}
},
"type": "object",
"required": [
"status",
"message",
"instance_id",
"object_id"
],
"title": "EnrichmentResponse"
},
"EnrichmentsListResponse": {
"properties": {
"modules": {
"items": {
"type": "string"
},
"type": "array",
"title": "Modules"
}
},
"type": "object",
"required": [
"modules"
],
"title": "EnrichmentsListResponse"
},
"ErrorResponse": {
"properties": {
"detail": {
"type": "string",
"title": "Detail",
"description": "Error message details"
}
},
"type": "object",
"required": [
"detail"
],
"title": "ErrorResponse"
},
"FailedWorkflowsResponse": {
"properties": {
"failed_count": {
"type": "integer",
"title": "Failed Count"
},
"workflows": {
"items": {
"$ref": "#/components/schemas/ActiveWorkflowDetail"
},
"type": "array",
"title": "Workflows",
"default": []
},
"timestamp": {
"type": "string",
"title": "Timestamp"
}
},
"type": "object",
"required": [
"failed_count",
"timestamp"
],
"title": "FailedWorkflowsResponse"
},
"FileWithMetadataResponse": {
"properties": {
"object_id": {
"type": "string",
"format": "uuid",
"title": "Object Id",
"description": "Unique identifier for the uploaded file"
},
"submission_id": {
"type": "string",
"format": "uuid",
"title": "Submission Id",
"description": "Unique identifier for the metadata submission"
}
},
"type": "object",
"required": [
"object_id",
"submission_id"
],
"title": "FileWithMetadataResponse",
"description": "Response for combined file and metadata uploads"
},
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
},
"HealthResponse": {
"properties": {
"status": {
"type": "string",
"title": "Status",
"description": "Health status of the service"
}
},
"type": "object",
"required": [
"status"
],
"title": "HealthResponse",
"description": "Model representing health check response"
},
"QueueMetrics": {
"properties": {
"total_messages": {
"type": "integer",
"title": "Total Messages"
},
"ready_messages": {
"type": "integer",
"title": "Ready Messages"
},
"processing_messages": {
"type": "integer",
"title": "Processing Messages"
},
"consumers": {
"type": "integer",
"title": "Consumers"
},
"queue_exists": {
"type": "boolean",
"title": "Queue Exists"
},
"memory_bytes": {
"type": "integer",
"title": "Memory Bytes"
},
"state": {
"type": "string",
"title": "State"
},
"message_stats": {
"additionalProperties": true,
"type": "object",
"title": "Message Stats"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error"
}
},
"type": "object",
"required": [
"total_messages",
"ready_messages",
"processing_messages",
"consumers",
"queue_exists",
"memory_bytes",
"state",
"message_stats"
],
"title": "QueueMetrics"
},
"QueueSummary": {
"properties": {
"total_queued_messages": {
"type": "integer",
"title": "Total Queued Messages"
},
"total_processing_messages": {
"type": "integer",
"title": "Total Processing Messages"
},
"total_consumers": {
"type": "integer",
"title": "Total Consumers"
},
"healthy_queues": {
"type": "integer",
"title": "Healthy Queues"
},
"total_queues_checked": {
"type": "integer",
"title": "Total Queues Checked"
},
"bottleneck_queues": {
"items": {
"type": "string"
},
"type": "array",
"title": "Bottleneck Queues"
},
"queues_without_consumers": {
"items": {
"type": "string"
},
"type": "array",
"title": "Queues Without Consumers"
},
"total_memory_bytes": {
"type": "integer",
"title": "Total Memory Bytes"
}
},
"type": "object",
"required": [
"total_queued_messages",
"total_processing_messages",
"total_consumers",
"healthy_queues",
"total_queues_checked",
"bottleneck_queues",
"queues_without_consumers",
"total_memory_bytes"
],
"title": "QueueSummary"
},
"QueuesResponse": {
"properties": {
"queue_details": {
"additionalProperties": {
"$ref": "#/components/schemas/QueueMetrics"
},
"type": "object",
"title": "Queue Details"
},
"summary": {
"$ref": "#/components/schemas/QueueSummary"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
}
},
"type": "object",
"required": [
"queue_details",
"summary",
"timestamp"
],
"title": "QueuesResponse"
},
"SingleQueueResponse": {
"properties": {
"topic": {
"type": "string",
"title": "Topic"
},
"metrics": {
"$ref": "#/components/schemas/QueueMetrics"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
}
},
"type": "object",
"required": [
"topic",
"metrics",
"timestamp"
],
"title": "SingleQueueResponse"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"WorkflowMetrics": {
"properties": {
"completed_count": {
"type": "integer",
"title": "Completed Count"
},
"failed_count": {
"type": "integer",
"title": "Failed Count"
},
"total_processed": {
"type": "integer",
"title": "Total Processed"
},
"success_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Success Rate"
},
"processing_times": {
"anyOf": [
{
"$ref": "#/components/schemas/WorkflowProcessingStats"
},
{
"type": "null"
}
]
}
},
"type": "object",
"required": [
"completed_count",
"failed_count",
"total_processed"
],
"title": "WorkflowMetrics"
},
"WorkflowProcessingStats": {
"properties": {
"avg_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Avg Seconds"
},
"min_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Min Seconds"
},
"max_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Max Seconds"
},
"p50_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "P50 Seconds"
},
"p90_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "P90 Seconds"
},
"p95_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "P95 Seconds"
},
"p99_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "P99 Seconds"
},
"samples_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Samples Count"
}
},
"type": "object",
"title": "WorkflowProcessingStats"
},
"WorkflowStatusResponse": {
"properties": {
"active_workflows": {
"type": "integer",
"title": "Active Workflows"
},
"status_counts": {
"anyOf": [
{
"additionalProperties": {
"type": "integer"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Status Counts"
},
"active_details": {
"items": {
"$ref": "#/components/schemas/ActiveWorkflowDetail"
},
"type": "array",
"title": "Active Details",
"default": []
},
"metrics": {
"$ref": "#/components/schemas/WorkflowMetrics"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error"
}
},
"type": "object",
"required": [
"active_workflows",
"metrics",
"timestamp"
],
"title": "WorkflowStatusResponse"
},
"YaraReloadResponse": {
"properties": {
"message": {
"type": "string",
"title": "Message",
"description": "Status message for Yara rules reload"
}
},
"type": "object",
"required": [
"message"
],
"title": "YaraReloadResponse",
"description": "Model representing Yara rules reload response"
}
}
},
"tags": [
{
"name": "files",
"description": "File management operations"
},
{
"name": "workflows",
"description": "Workflow management operations"
},
{
"name": "enrichments",
"description": "Enrichment management operations"
},
{
"name": "queues",
"description": "Internal pub/sub queue operations"
},
{
"name": "system",
"description": "System and health check endpoints"
}
]
}