{
"openapi": "3.0.0",
"info": {
"title": "DeepStore Agent",
"version": "1.0"
},
"servers": [],
"tags": [],
"paths": {
"/health": {
"get": {
"summary": "Health check endpoint that returns the service status",
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/HealthStatus"
}
}
}
}
},
"operationId": "health_check"
}
},
"/search": {
"post": {
"summary": "Search endpoint for querying log data",
"parameters": [
{
"name": "X-Allowed-Scopes",
"schema": {
"type": "string"
},
"in": "header",
"required": false,
"deprecated": false,
"explode": true
}
],
"requestBody": {
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/SearchRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/SearchResults"
}
}
}
},
"400": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"404": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
},
"operationId": "post_search"
}
},
"/logs": {
"post": {
"summary": "Ingest OpenTelemetry (OTLP) format logs",
"parameters": [
{
"name": "X-Scope",
"schema": {
"type": "string"
},
"in": "header",
"required": false,
"deprecated": false,
"explode": true
}
],
"requestBody": {
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/IngestLogsSuccess"
}
}
}
},
"400": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
},
"operationId": "post_logs"
}
},
"/field-capabilities": {
"post": {
"summary": "Field capabilities endpoint",
"requestBody": {
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/FieldCapabilityRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/FieldCapabilityResults"
}
}
}
},
"400": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"404": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
},
"operationId": "post_field_capabilities"
}
},
"/index": {
"post": {
"summary": "Index a batch of drafts",
"requestBody": {
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/IndexRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/IndexResponse"
}
}
}
},
"400": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
},
"operationId": "post_index"
}
},
"/drafts/documents": {
"post": {
"summary": "Fetch documents from draft files (for streaming)",
"parameters": [
{
"name": "X-Allowed-Scopes",
"schema": {
"type": "string"
},
"in": "header",
"required": false,
"deprecated": false,
"explode": true
}
],
"requestBody": {
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/GetDraftDocumentsRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/GetDraftDocumentsResponse"
}
}
}
},
"400": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
},
"operationId": "post_drafts_documents"
}
}
},
"components": {
"schemas": {
"ErrorResponse": {
"type": "object",
"title": "ErrorResponse",
"description": "Error response containing error details",
"required": [
"error",
"message"
],
"properties": {
"error": {
"type": "string",
"description": "Error code identifying the type of error"
},
"message": {
"type": "string",
"description": "Human-readable error message with details"
}
}
},
"FieldCapabilityEntry": {
"type": "object",
"title": "FieldCapabilityEntry",
"description": "Field capability entry response",
"required": [
"searchable",
"aggregatable",
"field_type",
"indices",
"non_searchable_indices",
"non_aggregatable_indices"
],
"properties": {
"searchable": {
"type": "boolean",
"description": "Whether the field can be searched"
},
"aggregatable": {
"type": "boolean",
"description": "Whether the field can be used for aggregations"
},
"field_type": {
"type": "string",
"description": "Type of the field"
},
"indices": {
"type": "array",
"description": "Indices in which the field exists (omitted if it exists in all indices)",
"items": {
"type": "string"
}
},
"non_searchable_indices": {
"type": "array",
"description": "Indices in which the field is not searchable",
"items": {
"type": "string"
}
},
"non_aggregatable_indices": {
"type": "array",
"description": "Indices in which the field is not aggregatable",
"items": {
"type": "string"
}
}
}
},
"FieldCapabilityRequest": {
"type": "object",
"title": "FieldCapabilityRequest",
"description": "Field capability request parameters with explicit splits",
"required": [
"splits"
],
"properties": {
"splits": {
"type": "array",
"description": "List of splits to get field capabilities from",
"items": {
"$ref": "#/components/schemas/SplitMetadata"
}
},
"fields": {
"type": "array",
"description": "Optional list of fields to include",
"items": {
"type": "string"
}
},
"start_timestamp": {
"type": "string",
"description": "Optional start timestamp (RFC3339 format)"
},
"end_timestamp": {
"type": "string",
"description": "Optional end timestamp (RFC3339 format)"
}
}
},
"FieldCapabilityResults": {
"type": "object",
"title": "FieldCapabilityResults",
"description": "Field capability response",
"required": [
"indices",
"fields"
],
"properties": {
"indices": {
"type": "array",
"description": "List of indices that were queried",
"items": {
"type": "string"
}
},
"fields": {
"type": "object",
"description": "Map of field names to their capabilities",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FieldCapabilityEntry"
}
}
}
}
},
"GetDraftDocumentsRequest": {
"type": "object",
"title": "GetDraftDocumentsRequest",
"description": "Request body for fetching draft documents",
"required": [
"draft_ids"
],
"properties": {
"draft_ids": {
"type": "array",
"description": "List of draft IDs to fetch",
"items": {
"type": "string"
}
}
}
},
"GetDraftDocumentsResponse": {
"type": "object",
"title": "GetDraftDocumentsResponse",
"description": "Successful response for fetching draft documents",
"required": [
"documents"
],
"properties": {
"documents": {
"type": "array",
"description": "List of documents from the drafts (filtered by scope)",
"items": {}
}
}
},
"HealthStatus": {
"type": "object",
"title": "HealthStatus",
"description": "Health check response",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
}
},
"IndexRequest": {
"type": "object",
"title": "IndexRequest",
"description": "Request body for indexing drafts",
"required": [
"draft_ids"
],
"properties": {
"draft_ids": {
"type": "array",
"description": "List of draft IDs to index",
"items": {
"type": "string"
}
}
}
},
"IndexResponse": {
"type": "object",
"title": "IndexResponse",
"description": "Successful response for indexing drafts",
"required": [
"indexed",
"failed",
"num_docs",
"duration_ms",
"splits"
],
"properties": {
"indexed": {
"type": "array",
"description": "Draft IDs that were indexed successfully",
"items": {
"type": "string"
}
},
"failed": {
"type": "array",
"description": "Draft IDs that failed to be indexed",
"items": {
"type": "string"
}
},
"num_docs": {
"type": "integer",
"format": "uint64",
"description": "Number of documents processed"
},
"duration_ms": {
"type": "integer",
"format": "uint64",
"description": "Time taken to execute the indexing operation in milliseconds"
},
"splits": {
"type": "array",
"description": "Split metadata for successfully indexed splits",
"items": {
"$ref": "#/components/schemas/SplitMetadataResponse"
}
}
}
},
"IngestLogsSuccess": {
"type": "object",
"title": "IngestLogsSuccess",
"description": "Success response for log ingestion",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "Status of the ingestion operation"
}
}
},
"SearchRequest": {
"type": "object",
"title": "SearchRequest",
"description": "Search request parameters with explicit splits",
"required": [
"query",
"splits"
],
"properties": {
"query": {
"type": "string",
"description": "The search query text in Quickwit query syntax"
},
"splits": {
"type": "array",
"description": "List of splits to search across (provided by the client after fetching from server)",
"items": {
"$ref": "#/components/schemas/SplitMetadata"
}
},
"aggs": {
"description": "Optional aggregations to perform on search results in JSON format."
},
"search_fields": {
"type": "array",
"description": "Optional list of fields to search on. If not specified, searches on all fields",
"items": {
"type": "string"
}
},
"snippet_fields": {
"type": "array",
"description": "Optional list of fields to generate snippets for in the search results",
"items": {
"type": "string"
}
},
"start_timestamp": {
"type": "string",
"description": "Optional start timestamp to filter documents (RFC3339 format)"
},
"end_timestamp": {
"type": "string",
"description": "Optional end timestamp to filter documents (RFC3339 format)"
},
"max_hits": {
"type": "integer",
"format": "uint64",
"description": "Maximum number of hits to return. Defaults to 20 if not specified"
},
"start_offset": {
"type": "integer",
"format": "uint64",
"description": "Starting offset for pagination. Defaults to 0 if not specified."
},
"sort_by": {
"type": "string",
"description": "Optional sort order specification in mini-DSL format."
},
"search_after": {
"type": "array",
"description": "Optional search_after array for cursor-based pagination.",
"items": {}
}
}
},
"SearchResults": {
"type": "object",
"title": "SearchResults",
"description": "Search results containing hits and metadata",
"required": [
"num_hits",
"hits",
"elapsed_time_micros",
"errors"
],
"properties": {
"num_hits": {
"type": "integer",
"format": "uint64",
"description": "Total number of documents matching the query"
},
"hits": {
"type": "array",
"description": "List of matching documents",
"items": {}
},
"snippets": {
"type": "array",
"description": "Optional list of snippet results for the requested snippet fields",
"items": {}
},
"elapsed_time_micros": {
"type": "integer",
"format": "uint64",
"description": "Time taken to execute the search in microseconds"
},
"errors": {
"type": "array",
"description": "Any errors that occurred during search execution",
"items": {
"type": "string"
}
},
"aggregations": {
"description": "Optional aggregation results if aggregations were requested"
}
}
},
"SplitMetadata": {
"type": "object",
"title": "SplitMetadata",
"description": "Simplified split metadata for client-side split selection",
"required": [
"split_id",
"database_id",
"num_docs",
"footer_offsets_start",
"footer_offsets_end",
"full_metadata"
],
"properties": {
"split_id": {
"type": "string"
},
"database_id": {
"type": "string"
},
"time_range_start": {
"type": "integer",
"format": "int64"
},
"time_range_end": {
"type": "integer",
"format": "int64"
},
"num_docs": {
"type": "integer",
"format": "uint64"
},
"footer_offsets_start": {
"type": "integer",
"format": "uint64"
},
"footer_offsets_end": {
"type": "integer",
"format": "uint64"
},
"full_metadata": {
"description": "Additional metadata as JSON for compatibility"
}
}
},
"SplitMetadataResponse": {
"type": "object",
"title": "SplitMetadataResponse",
"description": "Split metadata returned from indexing",
"required": [
"split_id",
"database_id",
"num_docs",
"footer_offsets_start",
"footer_offsets_end",
"full_metadata"
],
"properties": {
"split_id": {
"type": "string"
},
"database_id": {
"type": "string"
},
"time_range_start": {
"type": "integer",
"format": "int64"
},
"time_range_end": {
"type": "integer",
"format": "int64"
},
"num_docs": {
"type": "integer",
"format": "uint64"
},
"footer_offsets_start": {
"type": "integer",
"format": "uint64"
},
"footer_offsets_end": {
"type": "integer",
"format": "uint64"
},
"full_metadata": {}
}
}
}
}
}