{"openapi":"3.1.0","info":{"title":"Document Assistant API","description":"<p>\n  The Document Assistant API enables developers to integrate document-based assistant\n  functionalities into their applications using AODocs.\n</p>\n<p>\n  The first step is to enable AIDA (AODocs Intelligent Document Assistant) in your tenant.\n  The support team will provide you with the necessary information on how to get started.\n</p>\n<p>\n  The second step is to enable AIDA on libraries. You need to be an administrator of the\n  library to do this.<br />\n  AIDA can answer questions only from those documents that are in an AIDA enabled\n  library.<br />\n  We create a vector store index for these documents. This can take some time. The get\n  library API provides the status of the indexation and an estimate of the time\n  remaining.<br />\n  The content of the index is automatically kept up-to-date near real time with the\n  content changes.\n</p>\n<p>\n  The third step is to ask questions based on the AODocs documents.<br />\n  AIDA automatically filters the results based on the user's permissions.\n</p>\n<p>\n  <strong>Authentication:</strong> All API endpoints require a valid OAuth2 token in the\n  Authorization header. Ensure the client ID of the OAuth2 token is whitelisted in AODocs.\n</p>\n","version":"1.1.0"},"servers":[{"url":"https://document-assistant.us.aodocs.app","description":"Production US"},{"url":"https://document-assistant.eu.aodocs.app","description":"Production EU"}],"paths":{"/assistant/api/v1/tenants/{tenant}/chat":{"post":{"tags":["chat"],"summary":"Chat","description":"Answers a chat message based on information inside AODocs<br>","operationId":"chat_assistant_api_v1_tenants__tenant__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"400":{"description":"The request contains conflicting document filters"},"500":{"description":"No answer was generated"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/chat:streamingResponse":{"post":{"tags":["chat"],"summary":"Chat Streaming","description":"Answers a chat message based on information inside AODocs and returns the response in a streaming fashion.<br>\n    There are three kinds of messages differentiated by the prefix:<br>\n    * \"header: \" JSON ChatResponseMetadata containing metadata about the answer such as the used sources and links. You can find the definition on the bottom of the page.<br>\n    * \"data: \" contains the response chunks \"data: {chunk}\\n\\n\"<br>These chunks should be concatenated to form the full response.<br>\n    * \"progress: \" contains the steps of the thinking process of the LLM model<br>","operationId":"chat_streaming_assistant_api_v1_tenants__tenant__chat_streamingResponse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"The request contains conflicting document filters"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/conversations/{conversation_id}/messages/{response_id}/feedback":{"post":{"tags":["chat"],"summary":"Save Feedback","description":"Like a message in a conversation","operationId":"save_feedback_assistant_api_v1_tenants__tenant__conversations__conversation_id__messages__response_id__feedback_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","description":"The conversation id","title":"Conversation Id"},"description":"The conversation id"},{"name":"response_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the response this feedback refers to","title":"Response Id"},"description":"The id of the response this feedback refers to"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChatFeedback"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"The rating or the feedback categories are invalid"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v2/tenants/{tenant}/chat":{"post":{"tags":["chat-v2"],"summary":"Chat V2","description":"Answers a chat message with structured response preserving paragraph-level citations.\n\n    **V2 Changes:**\n    - Structured response with `items` array (paragraphs)\n    - Per-paragraph citations and links\n    - Removed deprecated fields (library_id, document_id)\n\n    **Response Structure:**\n    Each response item represents a paragraph with:\n    - `text`: The paragraph content\n    - `citations`: Sources cited in this specific paragraph\n    - `links`: Search result links related to this paragraph\n\n    **Example Response:**\n    ```json\n    {\n        \"metadata\": {\n            \"conversation_id\": \"uuid\",\n            \"message_id\": \"uuid\",\n            \"response_id\": \"uuid\"\n        },\n        \"items\": [\n            {\n                \"text\": \"Alice is 32 years old.\",\n                \"citations\": [{\"document_title\": \"Employee Records\", ...}],\n                \"links\": []\n            },\n            {\n                \"text\": \"She works at AODocs.\",\n                \"citations\": [{\"document_title\": \"Team Directory\", ...}],\n                \"links\": [{\"title\": \"View directory\", \"url\": \"...\"}]\n            }\n        ]\n    }\n    ```","operationId":"chat_v2_assistant_api_v2_tenants__tenant__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncChatRequestV2"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponseV2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v2/tenants/{tenant}/chat:streamingResponse":{"post":{"tags":["chat-v2"],"summary":"Chat Streaming V2","description":"Streaming chat endpoint with paragraph-level citations.\n\n    **Event Format:**\n    The response is a stream of newline-delimited JSON events with type discriminators.\n\n    **Event Types:**\n    1. `metadata`: Sent once at start with conversation/message/response IDs\n    2. `paragraph`: Response paragraphs with inline citations (sent as generated)\n    3. `thinking`: Thinking steps (only if report_progress=true)\n    4. `done`: Completion marker\n\n    **Example Stream:**\n    ```\n    metadata: {\"type\":\"metadata\",\"conversation_id\":\"...\",\"message_id\":\"...\",\"response_id\":\"...\"}\n\n\n    thinking: {\"type\":\"thinking\",\"step\":\"Searching for relevant documents...\"}\n\n\n    paragraph: {\"type\":\"paragraph\",\"text\":\"Alice is 32 years old.\",\"citations\":[...],\"links\":[]}\n\n\n    paragraph: {\"type\":\"paragraph\",\"text\":\"She works at AODocs.\",\"citations\":[...],\"links\":[...]}\n\n\n    done: {\"type\":\"done\"}\n\n\n    ```\n\n    **Client Implementation:**\n    Parse each line by splitting on the prefix (`metadata:`, `paragraph:`, etc.) and\n    parsing the JSON. Use the `type` field for type-safe handling.\n\n    **Progressive Rendering:**\n    Paragraphs are sent as soon as they're generated, enabling progressive UI updates\n    with inline citations.","operationId":"chat_streaming_v2_assistant_api_v2_tenants__tenant__chat_streamingResponse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequestV2"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"500":{"description":"No answer was generated by the agent"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/sources:getBoundingBoxes":{"post":{"tags":["chat"],"summary":"Get Source Bounding Boxes","description":"Locate the quoted text of one or more chat citations in their source attachments. This on-demand operation does not affect chat latency.","operationId":"get_source_bounding_boxes_assistant_api_v1_tenants__tenant__sources_getBoundingBoxes_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceBoundingBoxRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceBoundingBoxResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/metadata:extract":{"post":{"tags":["metadata"],"summary":"Extract Metadata","description":"Extract metadata from files<br>","operationId":"extract_metadata_assistant_api_v1_tenants__tenant__metadata_extract_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataExtractRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtendedExtractedMetadataList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/metadata:extractCustom":{"post":{"tags":["metadata"],"summary":"Extract Custom Metadata","description":"Extract metadata with custom schema from files<br>","operationId":"extract_custom_metadata_assistant_api_v1_tenants__tenant__metadata_extractCustom_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMetadataExtractRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Extract Custom Metadata Assistant Api V1 Tenants  Tenant  Metadata Extractcustom Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/classes/{class_id}/metadata":{"get":{"tags":["metadata"],"summary":"Get Metadata","description":"Get the metadata of a document class in a library<br>","operationId":"get_metadata_assistant_api_v1_tenants__tenant__libraries__library_id__classes__class_id__metadata_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"},{"name":"class_id","in":"path","required":true,"schema":{"type":"string","title":"Class Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}}},"404":{"description":"Library or document class not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["metadata"],"summary":"Save Metadata","description":"Save metadata extraction instructions<br>","operationId":"save_metadata_assistant_api_v1_tenants__tenant__libraries__library_id__classes__class_id__metadata_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"},{"name":"class_id","in":"path","required":true,"schema":{"type":"string","title":"Class Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}}},"400":{"description":"A metadata property is missing both its ID and name"},"404":{"description":"Library, document class, or field not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/metadata:train":{"post":{"tags":["metadata"],"summary":"Train Extraction","description":"Train the metadata extraction rules<br>","operationId":"train_extraction_assistant_api_v1_tenants__tenant__metadata_train_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataExtractRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractionSuggestion"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/evaluations":{"post":{"tags":["metadata_evaluation"],"summary":"Create Evaluation","description":"Create a new metadata extraction evaluation. Starts async processing immediately.","operationId":"create_evaluation_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEvaluation"}}}},"400":{"description":"document_ids must not be empty"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["metadata_evaluation"],"summary":"List Evaluations","description":"List evaluations for a library.","operationId":"list_evaluations_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEvaluationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/evaluations/{evaluation_id}:cancel":{"post":{"tags":["metadata_evaluation"],"summary":"Cancel Evaluation","description":"Cancel a running or pending evaluation. In-flight document tasks will be skipped.","operationId":"cancel_evaluation_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations__evaluation_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","description":"Evaluation ID","title":"Evaluation Id"},"description":"Evaluation ID"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEvaluation"}}}},"404":{"description":"Evaluation not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/evaluations/{evaluation_id}":{"delete":{"tags":["metadata_evaluation"],"summary":"Delete Evaluation","description":"Delete an evaluation and all its per-document results.","operationId":"delete_evaluation_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations__evaluation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","description":"Evaluation ID","title":"Evaluation Id"},"description":"Evaluation ID"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Evaluation not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["metadata_evaluation"],"summary":"Get Evaluation","description":"Get an evaluation with its summary stats.","operationId":"get_evaluation_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations__evaluation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","description":"Evaluation ID","title":"Evaluation Id"},"description":"Evaluation ID"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEvaluation"}}}},"404":{"description":"Evaluation not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/evaluations/{evaluation_id}/documents":{"get":{"tags":["metadata_evaluation"],"summary":"Get Evaluation Document Results","description":"Get per-document summaries: extraction cost and field accuracy for each document.","operationId":"get_evaluation_document_results_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations__evaluation_id__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","description":"Evaluation ID","title":"Evaluation Id"},"description":"Evaluation ID"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDocumentResultList"}}}},"404":{"description":"Evaluation not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}/evaluations/{evaluation_id}/results":{"get":{"tags":["metadata_evaluation"],"summary":"Get Evaluation Results","description":"Get detailed per-document-field results for an evaluation. Supports filtering by document_id, field_id, and is_correct.","operationId":"get_evaluation_results_assistant_api_v1_tenants__tenant__libraries__library_id__evaluations__evaluation_id__results_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","description":"Evaluation ID","title":"Evaluation Id"},"description":"Evaluation ID"},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"document_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id"}},{"name":"field_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Id"}},{"name":"is_correct","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Correct"}},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEvaluationResultList"}}}},"404":{"description":"Evaluation not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/documents/{document_id}/content:translate":{"post":{"tags":["translation"],"summary":"Translate Document Api","description":"Translates document attachments to a target language while preserving formatting. Supports .doc, .docx, .ppt, .xlsx, .pptx files and Google Docs, Sheets, Slides.","operationId":"translate_document_api_assistant_api_v1_tenants__tenant__documents__document_id__content_translate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","description":"The document id","title":"Document Id"},"description":"The document id"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateDocumentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateDocumentResponse"}}}},"400":{"description":"Path document_id and body document_id do not match, both attachment_ids and attachment_filters were provided, or a filter targets an attachment that is not supported for translation"},"404":{"description":"A filter targets an attachment ID that does not exist on the document"},"403":{"description":"Document Translation is not enabled for the tenant or library"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/document_split:plan":{"post":{"tags":["document_split"],"summary":"Plan Document Split","description":"Split a document into multiple parts.\n    For large documents, may return partial results with job_id for async processing.","operationId":"plan_document_split_assistant_api_v1_tenants__tenant__document_split_plan_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SplitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SplitPlan"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/document_splits/{job_id}":{"get":{"tags":["document_split"],"summary":"Get Document Split","description":"Get the status and result of a document split job.\n    Use this to poll for completion of long-running split operations.","operationId":"get_document_split_assistant_api_v1_tenants__tenant__document_splits__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","description":"Job ID to query","title":"Job Id"},"description":"Job ID to query"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SplitPlan"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/documents:findSimilar":{"post":{"tags":["document_similarity"],"summary":"Find Similar","description":"Finds similar documents to the given document ID within the tenant's document repository.\n    When searching by document, exact attachment-MD5 matches are prioritized and semantic matches fill any\n    remaining result slots up to `max_results`.","operationId":"find_similar_assistant_api_v1_tenants__tenant__documents_findSimilar_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindSimilarRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindSimilarResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/documents:checkConflicts":{"post":{"tags":["document_conflict"],"summary":"Check Document Conflicts","description":"Create an async document conflict-check job and publish the final result to the requested Pub/Sub topic.","operationId":"check_document_conflicts_assistant_api_v1_tenants__tenant__documents_checkConflicts_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentConflictCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictCheckJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/document_conflicts/{job_id}":{"get":{"tags":["document_conflict"],"summary":"Get Document Conflict Job","description":"Get the status and result of a document conflict-check job.","operationId":"get_document_conflict_job_assistant_api_v1_tenants__tenant__document_conflicts__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","description":"Conflict-check job ID","title":"Job Id"},"description":"Conflict-check job ID"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictCheckJobResponse"}}}},"404":{"description":"Document conflict job not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/documents:validate":{"post":{"tags":["document_validation"],"summary":"Validate Document Api","description":"Validate a document against regex, blacklist, and LLM-based rules.","operationId":"validate_document_api_assistant_api_v1_tenants__tenant__documents_validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentValidationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentValidationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/document_validation/rules":{"get":{"tags":["document_validation"],"summary":"List Document Validation Rules","description":"List all available document validation rules for the tenant.","operationId":"list_document_validation_rules_assistant_api_v1_tenants__tenant__document_validation_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableRuleCatalogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["document_validation"],"summary":"Create Document Validation Custom Rule","description":"Create a tenant-scoped custom document validation rule.","operationId":"create_document_validation_custom_rule_assistant_api_v1_tenants__tenant__document_validation_rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RegexRule"},{"$ref":"#/components/schemas/BlacklistRule"},{"$ref":"#/components/schemas/LlmRule"}],"discriminator":{"propertyName":"kind","mapping":{"regex":"#/components/schemas/RegexRule","blacklist":"#/components/schemas/BlacklistRule","llm":"#/components/schemas/LlmRule"}},"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableRuleDescriptor"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/document_validation/rules/{rule_id}":{"get":{"tags":["document_validation"],"summary":"Get Document Validation Custom Rule","description":"Get one available document validation rule, built-in or custom.","operationId":"get_document_validation_custom_rule_assistant_api_v1_tenants__tenant__document_validation_rules__rule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableRuleDescriptor"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["document_validation"],"summary":"Save Document Validation Custom Rule","description":"Create or update a tenant-scoped custom document validation rule.","operationId":"save_document_validation_custom_rule_assistant_api_v1_tenants__tenant__document_validation_rules__rule_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RegexRule"},{"$ref":"#/components/schemas/BlacklistRule"},{"$ref":"#/components/schemas/LlmRule"}],"discriminator":{"propertyName":"kind","mapping":{"regex":"#/components/schemas/RegexRule","blacklist":"#/components/schemas/BlacklistRule","llm":"#/components/schemas/LlmRule"}},"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableRuleDescriptor"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["document_validation"],"summary":"Delete Document Validation Custom Rule","description":"Delete a tenant-scoped custom document validation rule.","operationId":"delete_document_validation_custom_rule_assistant_api_v1_tenants__tenant__document_validation_rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/conversations/":{"get":{"tags":["chat"],"summary":"List Conversations","operationId":"list_conversations_assistant_api_v1_tenants__tenant__conversations__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"libraryId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Libraryid"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationsDto"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/conversations/{conversation_id}/messages":{"get":{"tags":["chat"],"summary":"Get Messages in Conversation","operationId":"list_conversation_messages_assistant_api_v1_tenants__tenant__conversations__conversation_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","description":"The conversation id","title":"Conversation Id"},"description":"The conversation id"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMessagesDto"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/conversations/{conversation_id}":{"delete":{"tags":["chat"],"summary":"Delete Conversation","operationId":"delete_conversation_assistant_api_v1_tenants__tenant__conversations__conversation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","description":"The conversation id","title":"Conversation Id"},"description":"The conversation id"},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/branding":{"get":{"tags":["tenant"],"summary":"Get Branding","description":"Gets tenant-specific assistant branding","operationId":"get_branding_assistant_api_v1_tenants__tenant__branding_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenantBranding"}}}},"404":{"description":"Tenant is not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/llm_models":{"get":{"tags":["tenant"],"summary":"Get Available Llm Models","description":"Lists the LLM models available to the tenant, grouped by provider.","operationId":"get_available_llm_models_assistant_api_v1_tenants__tenant__llm_models_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAvailableLlmModels"}}}},"404":{"description":"Tenant is not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/capabilities":{"get":{"tags":["tenant"],"summary":"Get Tenant Capabilities","description":"Lists which tenant-level capabilities are enabled. Available to any tenant user; drives capability-gated UI.","operationId":"get_tenant_capabilities_assistant_api_v1_tenants__tenant__capabilities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCapabilities"}}}},"404":{"description":"Tenant is not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}":{"get":{"tags":["tenant"],"summary":"Get Tenant","description":"Gets the tenant","operationId":"get_tenant_assistant_api_v1_tenants__tenant__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenant"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["tenant"],"summary":"Save Tenant","description":"Saves the tenant","operationId":"save_tenant_assistant_api_v1_tenants__tenant__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenant"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenant"}}}},"403":{"description":"Tenant quota cannot be changed"},"404":{"description":"Tenant is not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["tenant"],"summary":"Delete Tenant","description":"Deletes the tenant","operationId":"delete_tenant_assistant_api_v1_tenants__tenant__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/usage_statistics":{"get":{"tags":["tenant"],"summary":"Get Usage Statistics","description":"Gets usage statistics for a period","operationId":"get_usage_statistics_assistant_api_v1_tenants__tenant__usage_statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"from_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"From Date"}},{"name":"to_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"To Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageStatistics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/quota_usage/{type}":{"get":{"tags":["tenant"],"summary":"Get Usage","description":"Gets the daily usage of a quota type","operationId":"get_usage_assistant_api_v1_tenants__tenant__quota_usage__type__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/QuotaType"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaUsage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["tenant"],"summary":"Reset Usage","description":"Resets the daily usage of a quota type to zero","operationId":"reset_usage_assistant_api_v1_tenants__tenant__quota_usage__type__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/QuotaType"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"description":"Quota cannot be reset for this tenant"},"404":{"description":"Tenant is not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries/{library_id}":{"get":{"tags":["library"],"summary":"Get","description":"Get the configuration of a library","operationId":"get_assistant_api_v1_tenants__tenant__libraries__library_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["library"],"summary":"Update","description":"Creates or updates a library configuration","operationId":"update_assistant_api_v1_tenants__tenant__libraries__library_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"The request contains conflicting capability fields"},"404":{"description":"Tenant is not registered to use AIDA"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["library"],"summary":"Delete","description":"Deletes the library configuration","operationId":"delete_assistant_api_v1_tenants__tenant__libraries__library_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"library_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the library","title":"Library Id"},"description":"The id of the library"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries:get":{"post":{"tags":["library"],"summary":"Get Libraries","description":"Get the configurations of libraries","operationId":"get_libraries_assistant_api_v1_tenants__tenant__libraries_get_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Api Libraries"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiLibrary"},"title":"Response Get Libraries Assistant Api V1 Tenants  Tenant  Libraries Get Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries:update":{"post":{"tags":["library"],"summary":"Update Libraries","description":"Creates or updates library configurations in bulk","operationId":"update_libraries_assistant_api_v1_tenants__tenant__libraries_update_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiLibrary"},"title":"Libraries"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"One or more library IDs are missing"},"404":{"description":"Tenant is not registered to use AIDA"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/libraries":{"delete":{"tags":["library"],"summary":"Delete Libraries","description":"Deletes the library configuration","operationId":"delete_libraries_assistant_api_v1_tenants__tenant__libraries_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiLibrary"},"description":"List of libraries to delete","title":"Library List"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"One or more library IDs are missing"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/agents/{agent_id}":{"get":{"tags":["agent"],"summary":"Get Agent","description":"Get an agent","operationId":"get_agent_assistant_api_v1_tenants__tenant__agents__agent_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["agent"],"summary":"Update Agent","description":"Update an agent","operationId":"update_agent_assistant_api_v1_tenants__tenant__agents__agent_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agent"],"summary":"Delete Agent","description":"Delete an agent","operationId":"delete_agent_assistant_api_v1_tenants__tenant__agents__agent_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Force delete even if the agent is used as a default. Clears all references.","default":false,"title":"Force"},"description":"Force delete even if the agent is used as a default. Clears all references."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/agents":{"get":{"tags":["agent"],"summary":"List Agents","description":"List agents","operationId":"list_agents_assistant_api_v1_tenants__tenant__agents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["agent"],"summary":"Create Agent","description":"Create an agent","operationId":"create_agent_assistant_api_v1_tenants__tenant__agents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/agents:suggestBehavior":{"post":{"tags":["agent"],"summary":"Suggest Behavior","description":"Suggest agent behavior fields from a free-text description","operationId":"suggest_behavior_assistant_api_v1_tenants__tenant__agents_suggestBehavior_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentBehaviorSuggestionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentBehavior"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/glossaries":{"get":{"tags":["glossary"],"summary":"List Glossaries","description":"List glossaries","operationId":"list_glossaries_assistant_api_v1_tenants__tenant__glossaries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlossaryList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["glossary"],"summary":"Create Glossary","description":"Create a glossary","operationId":"create_glossary_assistant_api_v1_tenants__tenant__glossaries_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_glossary_assistant_api_v1_tenants__tenant__glossaries_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiGlossary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/glossaries/{glossary_id}":{"get":{"tags":["glossary"],"summary":"Get Glossary","description":"Get a glossary","operationId":"get_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"glossary_id","in":"path","required":true,"schema":{"type":"string","title":"Glossary Id"}},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiGlossary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["glossary"],"summary":"Delete Glossary","description":"Delete a glossary","operationId":"delete_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"glossary_id","in":"path","required":true,"schema":{"type":"string","title":"Glossary Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["glossary"],"summary":"Update Glossary","description":"Update a glossary","operationId":"update_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"glossary_id","in":"path","required":true,"schema":{"type":"string","title":"Glossary Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiGlossary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/glossaries/{glossary_id}/items":{"get":{"tags":["glossary"],"summary":"List Glossary Items","description":"List glossary items","operationId":"list_glossary_items_assistant_api_v1_tenants__tenant__glossaries__glossary_id__items_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"glossary_id","in":"path","required":true,"schema":{"type":"string","title":"Glossary Id"}},{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"pageToken","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pagetoken"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlossaryItemList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/glossaries:search":{"post":{"tags":["glossary"],"summary":"Search Glossaries","description":"Search glossaries","operationId":"search_glossaries_assistant_api_v1_tenants__tenant__glossaries_search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlossarySearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlossarySearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/skills/{skill_id}":{"get":{"tags":["skill"],"summary":"Get Skill","description":"Get a skill","operationId":"get_skill_assistant_api_v1_tenants__tenant__skills__skill_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","title":"Skill Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["skill"],"summary":"Update Skill","description":"Update a skill","operationId":"update_skill_assistant_api_v1_tenants__tenant__skills__skill_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","title":"Skill Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["skill"],"summary":"Delete Skill","description":"Delete a skill","operationId":"delete_skill_assistant_api_v1_tenants__tenant__skills__skill_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","title":"Skill Id"}},{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/skills":{"get":{"tags":["skill"],"summary":"List Skills","description":"List skills","operationId":"list_skills_assistant_api_v1_tenants__tenant__skills_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["skill"],"summary":"Create Skill","description":"Create a skill","operationId":"create_skill_assistant_api_v1_tenants__tenant__skills_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/admin-agent/message":{"post":{"tags":["admin-agent"],"summary":"Message","description":"Send a message to the admin agent and receive SSE events.","operationId":"message_assistant_api_v1_tenants__tenant__admin_agent_message_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAgentMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/.well-known/agent.json":{"get":{"tags":["a2a"],"summary":"Get Agent Card","description":"Retrieves the agent's A2A configuration card.","operationId":"get_agent_card_assistant_api_v1__well_known_agent_json_get","parameters":[{"name":"tenant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/.well-known/agent.json":{"get":{"tags":["a2a"],"summary":"Get Agent Card","description":"Retrieves the agent's A2A configuration card.","operationId":"get_agent_card_assistant_api_v1_tenants__tenant___well_known_agent_json_get","parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/a2a/dcr":{"post":{"tags":["a2a"],"summary":"Dynamic Client Registration","description":"Register a client via software_statement JWT (Gemini Enterprise DCR).","operationId":"dcr_endpoint_assistant_api_v1_a2a_dcr_post","parameters":[{"name":"tenant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/a2a/dcr":{"post":{"tags":["a2a"],"summary":"Dynamic Client Registration","description":"Register a client via software_statement JWT (Gemini Enterprise DCR).","operationId":"dcr_endpoint_assistant_api_v1_tenants__tenant__a2a_dcr_post","parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/a2a":{"post":{"tags":["a2a"],"summary":"Process A2A Request","description":"Handles JSON-RPC requests for message/send and message/stream.","operationId":"process_request_assistant_api_v1_a2a_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/assistant/api/v1/tenants/{tenant}/a2a":{"post":{"tags":["a2a"],"summary":"Process A2A Request","description":"Handles JSON-RPC requests for message/send and message/stream.","operationId":"process_request_assistant_api_v1_tenants__tenant__a2a_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/assistant/api/v1/tenants/{tenant}/agents/{agent_id}/a2a":{"get":{"tags":["a2a"],"summary":"Get Agent-Specific Agent Card","description":"Retrieves the A2A configuration card for a specific agent.","operationId":"get_agent_agent_card_assistant_api_v1_tenants__tenant__agents__agent_id__a2a_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["a2a"],"summary":"Process Agent-Specific A2A Request","description":"Handles JSON-RPC requests scoped to a specific agent.","operationId":"process_agent_request_assistant_api_v1_tenants__tenant__agents__agent_id__a2a_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string","title":"Tenant"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assistant/api/v1/tenants/{tenant}/contact":{"post":{"tags":["tenant","tenant"],"summary":"Contact","description":"Ask the sales team to contact the tenant","operationId":"contact_assistant_api_v1_tenants__tenant__contact_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The domain of the customer","examples":["example.com"],"title":"Tenant"},"description":"The domain of the customer"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AODocsFilterOperator":{"type":"string","enum":["==","!=",">","<",">=","<=","in","nin"],"title":"AODocsFilterOperator"},"AdminAgentMessageRequest":{"properties":{"message":{"type":"string","title":"Message","description":"The message to send to the admin agent"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"Existing conversation ID. If omitted, a new conversation is created."},"library_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Library Ids","description":"Optional library scope for future admin-agent specialists."}},"type":"object","required":["message"],"title":"AdminAgentMessageRequest"},"Agent":{"properties":{"audience":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Audience","description":"Who the agent serves (e.g. 'bank advisors who use AIDA to understand internal documents')"},"assistant_role":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Assistant Role","description":"The role the assistant plays (e.g. 'an expert banking assistant that helps advisors')"},"tone":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Tone","description":"The tone of responses (e.g. 'professional, concise, supportive')"},"response_behavior":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Response Behavior","description":"How the agent should respond (e.g. who to address, how to structure answers)"},"guardrails":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Guardrails","description":"Constraints the agent must respect or things it must verify before answering"},"output_format":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Output Format","description":"The preferred structure or format of the answer"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the agent"},"name":{"type":"string","title":"Name","description":"The name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the agent"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"The date when the agent was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date when the agent was last updated"},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/Permission"},"type":"array"},{"type":"null"}],"title":"Permissions","description":"The permissions of the agent"},"sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/DataSource"},"type":"array"},{"type":"null"}],"title":"Sources","description":"The sources of the agent"},"glossary_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Glossary Ids","description":"The IDs of glossaries associated with the agent"},"skill_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skill Ids","description":"The IDs of skills associated with the agent"},"dynamic_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AgentMetadataFilterField"},"type":"array"},{"type":"null"}],"title":"Dynamic Filters","description":"Low-cardinality metadata fields that the agent may use to scope searches"},"dynamic_filter_instructions":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Dynamic Filter Instructions","description":"Instructions that help the agent select metadata filter values for a question"}},"type":"object","required":["name"],"title":"Agent"},"AgentBehavior":{"properties":{"audience":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Audience","description":"Who the agent serves (e.g. 'bank advisors who use AIDA to understand internal documents')"},"assistant_role":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Assistant Role","description":"The role the assistant plays (e.g. 'an expert banking assistant that helps advisors')"},"tone":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Tone","description":"The tone of responses (e.g. 'professional, concise, supportive')"},"response_behavior":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Response Behavior","description":"How the agent should respond (e.g. who to address, how to structure answers)"},"guardrails":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Guardrails","description":"Constraints the agent must respect or things it must verify before answering"},"output_format":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Output Format","description":"The preferred structure or format of the answer"}},"type":"object","title":"AgentBehavior","description":"The six free-text behavior fields that shape how an agent's assistant\nresponds. Shared by `Agent` (where they are stored) and the behavior\nsuggestion endpoint (which only suggests them)."},"AgentBehaviorSuggestionRequest":{"properties":{"description":{"type":"string","maxLength":10000,"minLength":1,"title":"Description","description":"A free-text description of the agent to create, used to suggest values for the behavior fields"}},"type":"object","required":["description"],"title":"AgentBehaviorSuggestionRequest"},"AgentList":{"properties":{"agents":{"items":{"$ref":"#/components/schemas/Agent"},"type":"array","title":"Agents","description":"The list of agents"}},"type":"object","required":["agents"],"title":"AgentList"},"AgentMetadataFilterField":{"properties":{"id":{"type":"string","minLength":1,"title":"Id","description":"The id of the metadata field that the agent may filter on"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The current display name of the metadata field. This value is resolved by the server and ignored when writing an agent.","readOnly":true}},"additionalProperties":false,"type":"object","required":["id"],"title":"AgentMetadataFilterField"},"ApiAnthropicConfig":{"properties":{"secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Id","description":"Secret id where the Anthropic API key is stored in the CustomerSecretManager"},"default_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Model","description":"Default LLM model to use for the Anthropic provider. Must be a valid Anthropic model name."}},"type":"object","title":"ApiAnthropicConfig"},"ApiAvailableLlmModels":{"properties":{"default_provider":{"$ref":"#/components/schemas/LlmProvider","description":"Provider this tenant uses by default."},"providers":{"items":{"$ref":"#/components/schemas/ApiLlmProviderModels"},"type":"array","title":"Providers","description":"Providers with the models available to the tenant, in display order."}},"type":"object","required":["default_provider","providers"],"title":"ApiAvailableLlmModels"},"ApiCapabilities":{"properties":{"capabilities":{"items":{"$ref":"#/components/schemas/ApiCapability"},"type":"array","title":"Capabilities","description":"Tenant capabilities with their enabled flag, with defaults applied for capabilities not explicitly configured."}},"type":"object","required":["capabilities"],"title":"ApiCapabilities"},"ApiCapability":{"properties":{"capability":{"$ref":"#/components/schemas/CapabilityType","description":"The capability type"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether the capability is enabled"}},"type":"object","required":["capability","enabled"],"title":"ApiCapability"},"ApiChatFeedback":{"properties":{"feedback_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Text","description":"User feedback text"},"feedback_type":{"$ref":"#/components/schemas/FeedbackType","description":"The type of the feedback"},"rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rating","description":"Optional star rating between 1 and 5"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories","description":"Optional list of up to 3 unique feedback category codes: answer_incorrect, sources_wrong, sources_missing, answer_incomplete, too_slow, format_unclear, other"}},"type":"object","required":["feedback_type"],"title":"ApiChatFeedback"},"ApiDocumentResult":{"properties":{"evaluation_id":{"type":"string","title":"Evaluation Id"},"document_id":{"type":"string","title":"Document Id"},"document_title":{"type":"string","title":"Document Title"},"extraction_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Extraction Cost","description":"LLM cost in USD for extracting this document's metadata."},"correct_fields":{"type":"integer","title":"Correct Fields"},"total_fields":{"type":"integer","title":"Total Fields"},"accuracy":{"type":"number","title":"Accuracy","description":"Fraction of fields correct (0.0–1.0)."}},"type":"object","required":["evaluation_id","document_id","document_title","correct_fields","total_fields","accuracy"],"title":"ApiDocumentResult"},"ApiDocumentResultList":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/ApiDocumentResult"},"type":"array","title":"Documents"},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"type":"object","required":["documents"],"title":"ApiDocumentResultList"},"ApiEmbedding":{"properties":{"backend":{"$ref":"#/components/schemas/DocumentIndexBackend","description":"The service that owns this document index.","default":"opensearch"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"The provider of an OpenSearch embedding."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"The model of the embedding"},"suffix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suffix","description":"The Search Service embedding configuration suffix."},"vector_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vector Size","description":"The Search Service embedding vector size."},"schema_version":{"$ref":"#/components/schemas/DocumentSchemaVersion","description":"The schema version of the embedding","default":"v1"},"engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine","description":"Server-managed OpenSearch vector engine of the live index. Read-only: populated from the index, ignored on write."},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"The configuration of the embedding"}},"type":"object","title":"ApiEmbedding"},"ApiEvaluation":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"library_id":{"type":"string","title":"Library Id"},"name":{"type":"string","title":"Name"},"created_by":{"type":"string","title":"Created By"},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"document_ids":{"items":{"type":"string"},"type":"array","title":"Document Ids"},"status":{"type":"string","title":"Status","description":"PENDING | RUNNING | DONE | FAILED | CANCELLED"},"total_documents":{"type":"integer","title":"Total Documents"},"processed_documents":{"type":"integer","title":"Processed Documents"},"failed_documents":{"type":"integer","title":"Failed Documents"},"created_at":{"type":"string","title":"Created At","description":"ISO 8601 timestamp"},"expire_at":{"type":"string","title":"Expire At","description":"ISO 8601 timestamp — entity is auto-deleted after this date"},"overall_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Overall Accuracy","description":"Average correctness across all document+field pairs (0.0–1.0). Populated when status=DONE."},"field_accuracies":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ApiFieldAccuracy"},"type":"object"},{"type":"null"}],"title":"Field Accuracies","description":"Per-field accuracy keyed by field ID. Populated when status=DONE."},"fully_correct_document_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fully Correct Document Ratio","description":"Fraction of documents where every evaluated field was correct (0.0–1.0). Populated when status=DONE."},"total_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost","description":"Total LLM cost in USD across all evaluated documents. Populated when status=DONE."},"average_cost_per_document":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Cost Per Document","description":"Average LLM cost in USD per document. Populated when status=DONE."}},"type":"object","required":["id","tenant_id","library_id","name","created_by","document_ids","status","total_documents","processed_documents","failed_documents","created_at","expire_at"],"title":"ApiEvaluation"},"ApiEvaluationList":{"properties":{"evaluations":{"items":{"$ref":"#/components/schemas/ApiEvaluation"},"type":"array","title":"Evaluations"},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"type":"object","required":["evaluations"],"title":"ApiEvaluationList"},"ApiEvaluationResult":{"properties":{"evaluation_id":{"type":"string","title":"Evaluation Id"},"document_id":{"type":"string","title":"Document Id"},"document_title":{"type":"string","title":"Document Title"},"field_id":{"type":"string","title":"Field Id"},"field_name":{"type":"string","title":"Field Name"},"field_type":{"type":"string","title":"Field Type"},"expected_values":{"items":{"type":"string"},"type":"array","title":"Expected Values","description":"Ground truth values from the document at evaluation time"},"actual_values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Actual Values","description":"Values extracted by the LLM. None if extraction failed."},"is_correct":{"type":"boolean","title":"Is Correct"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["evaluation_id","document_id","document_title","field_id","field_name","field_type","expected_values","is_correct"],"title":"ApiEvaluationResult"},"ApiEvaluationResultList":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ApiEvaluationResult"},"type":"array","title":"Results"},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"type":"object","required":["results"],"title":"ApiEvaluationResultList"},"ApiFieldAccuracy":{"properties":{"name":{"type":"string","title":"Name","description":"Field name"},"accuracy":{"type":"number","title":"Accuracy","description":"Fraction of documents where this field was extracted correctly (0.0–1.0)"}},"type":"object","required":["name","accuracy"],"title":"ApiFieldAccuracy"},"ApiGlossary":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the glossary"},"name":{"type":"string","title":"Name","description":"The name of the glossary"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the glossary"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"The date when the glossary was created"},"last_modified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified At","description":"The date when the glossary was last modified"},"creator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator","description":"The email of the glossary creator"},"number_of_entries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Entries","description":"The number of entries in the glossary"}},"type":"object","required":["name"],"title":"ApiGlossary"},"ApiGoogleConfig":{"properties":{"gcp_project":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gcp Project","description":"The GCP project id for Google LLMs"},"secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Id","description":"Secret id where the Google API key is stored in the CustomerSecretManager"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location","description":"Vertex AI location to use for Google LLMs. If not specified the global endpoint is used."},"default_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Model","description":"Default LLM model to use for the Google provider. Must be a valid Google model name."}},"type":"object","title":"ApiGoogleConfig"},"ApiIndexationStatus":{"properties":{"documents_in_library":{"type":"integer","title":"Documents In Library"},"indexed_documents":{"type":"integer","title":"Indexed Documents"},"estimated_minutes_to_completion":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Minutes To Completion"}},"type":"object","required":["documents_in_library","indexed_documents","estimated_minutes_to_completion"],"title":"ApiIndexationStatus"},"ApiKnowledgeBase":{"properties":{"library_id":{"type":"string","title":"Library Id","description":"Library id of the tenant-curated support knowledge base. The support flow answers from this library (in the tenant's own namespace, using the requesting user's credentials) instead of the shared Altirnao-hosted knowledge base. To disable the per-tenant knowledge base, send `knowledge_base: null` on the tenant PUT payload."},"document_class_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class Id","description":"Optional document class id to scope searches within the knowledge base library."}},"type":"object","required":["library_id"],"title":"ApiKnowledgeBase"},"ApiLibrary":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"use_default_capabilities":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Default Capabilities","description":"Whether this library uses tenant default capabilities."},"capabilities":{"items":{"$ref":"#/components/schemas/ApiLibraryCapability"},"type":"array","title":"Capabilities","description":"List of library capabilities","default":[]},"indexation_status":{"anyOf":[{"$ref":"#/components/schemas/ApiIndexationStatus"},{"type":"null"}]},"statistics":{"anyOf":[{"$ref":"#/components/schemas/ApiStatistics"},{"type":"null"}]},"default_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Agent Id","description":"Default agent ID for this library, overrides tenant default."}},"type":"object","title":"ApiLibrary"},"ApiLibraryCapability":{"properties":{"capability":{"$ref":"#/components/schemas/CapabilityType","description":"The capability type"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether the capability is enabled","default":true}},"type":"object","required":["capability"],"title":"ApiLibraryCapability"},"ApiLlmModel":{"properties":{"model":{"type":"string","title":"Model","description":"Model id used when submitting an extraction request."},"display_name":{"type":"string","title":"Display Name","description":"Human-readable label for the model."}},"type":"object","required":["model","display_name"],"title":"ApiLlmModel"},"ApiLlmProviderModels":{"properties":{"provider":{"$ref":"#/components/schemas/LlmProvider","description":"LLM provider."},"default_model":{"type":"string","title":"Default Model","description":"Model this tenant uses by default for this provider."},"models":{"items":{"$ref":"#/components/schemas/ApiLlmModel"},"type":"array","title":"Models","description":"Models available to the tenant for this provider."}},"type":"object","required":["provider","default_model","models"],"title":"ApiLlmProviderModels"},"ApiMistralAIConfig":{"properties":{"secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Id","description":"Secret id where the MistralAI API key is stored in the CustomerSecretManager"},"default_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Model","description":"Default LLM model to use for the MistralAI provider. Must be a valid MistralAI model name."}},"type":"object","title":"ApiMistralAIConfig"},"ApiOpenAIConfig":{"properties":{"secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Id","description":"Secret id where the OpenAI API key is stored in the CustomerSecretManager"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint","description":"The OpenAI endpoint. If not specified the default endpoint is used.\n            Azure endpoints look like this: https://aodocsopenaitest.openai.azure.com/\n            Customer gateways may instead supply a complete deployment-level Chat Completions or Responses URL.\n"},"deployment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deployment Name","description":"Used for Azure deployments.\n            This value will correspond to the custom name you chose for your deployment when you deployed a model.\n            This value can be found under Resource Management > Model Deployments in the Azure portal or via\n            the Deployments page in Azure AI Foundry portal.\n"},"api_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Version","description":"Azure OpenAI API version. Examples: `2024-10-21`, `preview`, `v1`.\n            Native PDF input for Azure is enabled only on API versions that support it.\n"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"When you use Azure OpenAI, then you deploy a specific model to the deployment.\n            That model name must be used here to send the correct requests to Azure.\n            This field is mandatory in case of a deployment and optional otherwise.\n"},"default_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Model","description":"Default LLM model to use for the OpenAI provider. Must be a valid OpenAI model name. Cannot be set when Azure model is configured."}},"type":"object","title":"ApiOpenAIConfig"},"ApiStatistics":{"properties":{"documents_in_library":{"type":"integer","title":"Documents In Library"},"indexed_documents":{"type":"integer","title":"Indexed Documents"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["documents_in_library","indexed_documents","updated_at"],"title":"ApiStatistics"},"ApiTenant":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the tenant. Readonly field."},"authorized_group":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Authorized Group","description":"If specified only members of this group can access the tenant"},"indexing_daily_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Indexing Daily Quota","description":"The daily spending quota on indexing in dollars"},"chat_daily_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Daily Quota","description":"The daily spending quota on chat with the assistant in dollars"},"document_count_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Document Count Quota","description":"The maximum number of documents allowed across all configured libraries."},"document_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Document Count","description":"The current number of documents across all configured libraries. Readonly field."},"primary_llm_provider":{"$ref":"#/components/schemas/LlmProvider","description":"The primary LLM provider of the tenant.","default":"OpenAI"},"google_config":{"anyOf":[{"$ref":"#/components/schemas/ApiGoogleConfig"},{"type":"null"}],"description":"Google provider configuration"},"openai_config":{"anyOf":[{"$ref":"#/components/schemas/ApiOpenAIConfig"},{"type":"null"}],"description":"OpenAI configuration"},"mistralai_config":{"anyOf":[{"$ref":"#/components/schemas/ApiMistralAIConfig"},{"type":"null"}],"description":"MistralAI configuration"},"anthropic_config":{"anyOf":[{"$ref":"#/components/schemas/ApiAnthropicConfig"},{"type":"null"}],"description":"Anthropic configuration"},"trial":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trial","description":"Indicating trial mode. Readonly field."},"trial_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trial Available","description":"Indicating if the trial is available. Readonly field.","default":false},"paid_plan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Paid Plan","description":"Indicating if the tenant is on a paid plan. Readonly field.","default":false},"paid_by":{"anyOf":[{"$ref":"#/components/schemas/Payer"},{"type":"null"}],"description":"Who pays for the llm calls"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End","description":"The end date of the trial. Readonly field."},"library_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Library Count","description":"The number of libraries in the tenant. Readonly field."},"maximum_library_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maximum Library Count","description":"The maximum number of libraries allowed in the tenant. Readonly field."},"capabilities":{"items":{"$ref":"#/components/schemas/ApiTenantCapability"},"type":"array","title":"Capabilities","description":"List of tenant capabilities. Readonly field.","default":[]},"default_library_capabilities":{"anyOf":[{"items":{"$ref":"#/components/schemas/ApiLibraryCapability"},"type":"array"},{"type":"null"}],"title":"Default Library Capabilities","description":"Default capabilities for newly created libraries. Libraries using defaults will dynamically follow these."},"super_admin_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Super Admin Email","description":"Super admin email used for AODocs API calls that require domain-wide access, such as listing all libraries."},"assistant_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Assistant Name","description":"Name displayed by the UI and used by the assistant to refer to itself."},"default_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Agent Id","description":"Default agent ID used when no agent is specified in a chat request."},"knowledge_base":{"anyOf":[{"$ref":"#/components/schemas/ApiKnowledgeBase"},{"type":"null"}],"description":"Per-tenant support knowledge base configuration. When set, the support flow answers questions from the configured library in this tenant instead of the shared environment-level knowledge base."}},"type":"object","title":"ApiTenant"},"ApiTenantBranding":{"properties":{"assistant_name":{"type":"string","title":"Assistant Name","description":"Effective assistant name displayed by the UI."}},"type":"object","required":["assistant_name"],"title":"ApiTenantBranding"},"ApiTenantCapability":{"properties":{"capability":{"$ref":"#/components/schemas/CapabilityType","description":"The capability type"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether the capability is enabled","default":true},"quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quota","description":"Optional quota for the capability. For document_vector_indexing this is the maximum total number of documents in vector-enabled libraries. For document_conflict_checking and document_validation this is the daily spending quota in dollars."},"value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value","description":"Current total number of documents in vector-enabled libraries. Only used for document_vector_indexing."}},"type":"object","required":["capability"],"title":"ApiTenantCapability"},"AttachmentFilter":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the attachment to match (it can be a regular expression)"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the matched attachment"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type","description":"The mimetype of the matched attachment"}},"type":"object","title":"AttachmentFilter","description":"Match an attachment by identifier, MIME type, or name expression."},"AttachmentsExtractionSource":{"properties":{"type":{"type":"string","const":"attachments","title":"Type","default":"attachments"},"include":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Include","description":"Attachment filters to include. If omitted, all attachments are included. If empty, no attachments are included."},"exclude":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Exclude","description":"Attachment filters to exclude after applying include filters. Exclusion takes precedence over inclusion."}},"type":"object","title":"AttachmentsExtractionSource"},"AvailableRuleCatalogResponse":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/AvailableRuleDescriptor"},"type":"array","title":"Rules","description":"All available document validation rules for the tenant."},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"type":"object","required":["rules"],"title":"AvailableRuleCatalogResponse"},"AvailableRuleDescriptor":{"properties":{"rule_id":{"type":"string","title":"Rule Id","description":"Stable rule ID."},"kind":{"$ref":"#/components/schemas/ValidationRuleKind","description":"The executable rule kind."},"display_name":{"type":"string","title":"Display Name","description":"Human-readable label for the UI."},"description":{"type":"string","title":"Description","description":"Human-readable description of the rule."},"requires_visual_processing":{"type":"boolean","title":"Requires Visual Processing","description":"Whether the rule requires multimodal attachment input."},"include_violation_details":{"type":"boolean","title":"Include Violation Details","description":"Whether violation details (matched_text, snippet) are included by default for this rule.","default":true},"can_update":{"type":"boolean","title":"Can Update","description":"Whether the caller may modify the rule definition."},"can_delete":{"type":"boolean","title":"Can Delete","description":"Whether the caller may delete the rule definition."},"pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern","description":"Regex pattern for editable custom regex rules."},"flags":{"anyOf":[{"items":{"$ref":"#/components/schemas/RegexFlag"},"type":"array"},{"type":"null"}],"title":"Flags","description":"Regex flags for editable custom regex rules."},"terms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Terms","description":"Blacklist terms for editable custom blacklist rules."},"case_sensitive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Case Sensitive","description":"Blacklist case-sensitivity for editable custom blacklist rules."},"rule_intent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Intent","description":"High-level purpose of the rule, when LLM-based."},"violation_definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Violation Definition","description":"What counts as a violation, when LLM-based."},"non_violation_definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Non Violation Definition","description":"What should not be flagged, when LLM-based."}},"type":"object","required":["rule_id","kind","display_name","description","requires_visual_processing","can_update","can_delete"],"title":"AvailableRuleDescriptor"},"BlacklistRule":{"properties":{"kind":{"type":"string","const":"blacklist","title":"Kind","default":"blacklist"},"rule_id":{"type":"string","title":"Rule Id","description":"Stable rule ID supplied by the caller."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Optional human-readable label for the rule."},"terms":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Terms","description":"Exact terms that should trigger a violation when found in the document."},"case_sensitive":{"type":"boolean","title":"Case Sensitive","description":"Whether blacklist matching should be case sensitive.","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional human-readable description of the rule."},"include_violation_details":{"type":"boolean","title":"Include Violation Details","description":"Whether the response should include matched_text and snippet for violations from this rule.","default":true}},"type":"object","required":["rule_id","terms"],"title":"BlacklistRule"},"Body_create_glossary_assistant_api_v1_tenants__tenant__glossaries_post":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the glossary"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"CSV file with glossary items"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the glossary"}},"type":"object","required":["name","file"],"title":"Body_create_glossary_assistant_api_v1_tenants__tenant__glossaries_post"},"Body_update_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__put":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the glossary"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the glossary"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"CSV file with glossary items"}},"type":"object","required":["name"],"title":"Body_update_glossary_assistant_api_v1_tenants__tenant__glossaries__glossary_id__put"},"BoundingBox":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id","description":"ID of the attachment containing the box"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"1-based page number"},"x":{"type":"number","maximum":1.0,"minimum":0.0,"title":"X"},"y":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Y"},"width":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Width"},"height":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Height"}},"type":"object","required":["attachment_id","page","x","y","width","height"],"title":"BoundingBox","description":"A rectangle in the full attachment page or image viewport.\n\nCoordinates are normalized fractions in the range 0.0-1.0 with a top-left\norigin. PDF coordinates refer to the complete rotated page before whitespace\ntrimming or tiling; standalone images use their EXIF-normalized orientation."},"BoundingBoxDiagnostics":{"properties":{"strategy":{"$ref":"#/components/schemas/LocationSource"},"status":{"$ref":"#/components/schemas/BoundingBoxStatus"},"pdf_attachments_selected":{"type":"integer","minimum":0.0,"title":"Pdf Attachments Selected"},"pdf_attachments_retained":{"type":"integer","minimum":0.0,"title":"Pdf Attachments Retained"},"pdf_attachments_skipped":{"type":"integer","minimum":0.0,"title":"Pdf Attachments Skipped"},"image_attachments_selected":{"type":"integer","minimum":0.0,"title":"Image Attachments Selected","default":0},"image_attachments_retained":{"type":"integer","minimum":0.0,"title":"Image Attachments Retained","default":0},"image_attachments_skipped":{"type":"integer","minimum":0.0,"title":"Image Attachments Skipped","default":0},"pages_scanned":{"type":"integer","minimum":0.0,"title":"Pages Scanned"},"pages_without_text":{"type":"integer","minimum":0.0,"title":"Pages Without Text"},"occurrences_found":{"type":"integer","minimum":0.0,"title":"Occurrences Found"},"boxes_returned":{"type":"integer","minimum":0.0,"title":"Boxes Returned"},"ocr_pages_inspected":{"type":"integer","minimum":0.0,"title":"Ocr Pages Inspected","default":0},"ocr_images_inspected":{"type":"integer","minimum":0.0,"title":"Ocr Images Inspected","default":0},"ocr_images_eligible":{"type":"integer","minimum":0.0,"title":"Ocr Images Eligible","default":0},"ocr_unique_images":{"type":"integer","minimum":0.0,"title":"Ocr Unique Images","default":0},"ocr_duplicate_placements":{"type":"integer","minimum":0.0,"title":"Ocr Duplicate Placements","default":0},"ocr_failed_images":{"type":"integer","minimum":0.0,"title":"Ocr Failed Images","default":0},"truncated":{"type":"boolean","title":"Truncated","default":false}},"type":"object","required":["strategy","status","pdf_attachments_selected","pdf_attachments_retained","pdf_attachments_skipped","pages_scanned","pages_without_text","occurrences_found","boxes_returned"],"title":"BoundingBoxDiagnostics"},"BoundingBoxStatus":{"type":"string","enum":["matched","missing_quote","no_pdf_source","no_text_layer","no_match","error"],"title":"BoundingBoxStatus"},"CapabilityType":{"type":"string","enum":["chat","document_vector_indexing","library_summarization","metadata_extraction","document_splitting","document_conflict_checking","document_editing","document_translation","document_validation","advanced_document_indexing","transcription"],"title":"CapabilityType"},"CategoryHierarchy":{"properties":{"hierarchy":{"items":{"$ref":"#/components/schemas/CategoryValue"},"type":"array","title":"Hierarchy","description":"The full hierarchy of the value starting from the root. If the value is not hierarchical then just a single value."}},"type":"object","required":["hierarchy"],"title":"CategoryHierarchy"},"CategoryValue":{"properties":{"id":{"type":"string","title":"Id","description":"The id of the value"},"name":{"type":"string","title":"Name","description":"The name of the value"}},"type":"object","required":["id","name"],"title":"CategoryValue"},"ChatFeatureConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"data_retention_policy":{"$ref":"#/components/schemas/DataRetentionPolicy","description":"Whether attachments may be stored remotely while being delivered to the LLM. inline_only permits only inline attachment delivery and falls back to extracted text when an attachment exceeds the provider's inline limit.","default":"remote_storage_allowed"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Override the agent_id from the request. When set, this takes priority over request.agent_id."},"sources_to_use":{"type":"integer","title":"Sources To Use","description":"Number of relevant sources provided to the LLM","default":2},"dynamic_number_of_sources":{"type":"boolean","title":"Dynamic Number Of Sources","description":"Select if the number of sources should by dynamic based on the quality of results","default":false},"use_reranking":{"type":"boolean","title":"Use Reranking","description":"Use custom solution to rerank nodes to answer messages","default":true},"embedding":{"anyOf":[{"$ref":"#/components/schemas/ApiEmbedding"},{"type":"null"}],"description":"The embedding to be used for the chat request"},"report_progress":{"type":"boolean","title":"Report Progress","description":"Report progress of the agent to the user","default":false},"content_question_prompt_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Content Question Prompt Version","description":"Override the content-question answering prompt version; None uses the default"},"document_query_prompt_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Document Query Prompt Version","description":"Override the document-query agent prompt version; None uses the default"},"semantic_search_candidate_pool_size":{"type":"integer","title":"Semantic Search Candidate Pool Size","description":"Number of candidates to consider for semantic search reranking","default":10},"semantic_search_limit":{"type":"integer","title":"Semantic Search Limit","description":"Number of results to return from semantic search after reranking","default":5},"combined_search":{"type":"boolean","title":"Combined Search","description":"Enable combined semantic and literal attachment-content retrieval. The lexical branch uses a dedicated keyword_query — a short, entity/terms-focused rephrasing collected as an extra semantic_search tool arg — and falls back to the natural-language query when it is absent or empty. Search Service executes this as one native-hybrid request and owns merging and reranking. Disabling this reverts to a vector-only search whose tool takes no keyword_query","default":true},"use_search_service":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Search Service","description":"Deprecated backend override. Prefer embedding.backend.","deprecated":true},"use_visual_content":{"type":"boolean","title":"Use Visual Content","description":"When enabled, document content retrieval includes the original file or page images alongside extracted text for models that support visual input","default":true},"use_pptx_as_pdf":{"type":"boolean","title":"Use Pptx As Pdf","description":"With visual content on, eligible PPTX attachments are converted to PDF for native model file input, falling back to OCR text when the model does not accept PDF files or the conversion cannot be delivered. Disable to keep every PPTX on the OCR-text path","default":true},"use_docx_direct":{"type":"boolean","title":"Use Docx Direct","description":"With visual content on, DOCX attachments are sent to the model as files instead of extracted text, letting the provider parse the document server-side. Disable to keep every DOCX on the text path. Only Mistral accepts DOCX this way; other providers keep extracting text regardless of this setting","default":true},"processing_timeout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processing Timeout","description":"Processing timeout in seconds."},"use_structured_answer_validation":{"type":"boolean","title":"Use Structured Answer Validation","description":"Use structured JSON output for answer validation instead of free-form text parsing. Separates reasoning from verdict to prevent missclassification when the LLM changes its mind mid-response","default":true},"glossary_relevancy_threshold":{"type":"number","title":"Glossary Relevancy Threshold","description":"Minimum relevance score for glossary items to be included in LLM context","default":0.25},"glossary_from_chunks":{"type":"boolean","title":"Glossary From Chunks","description":"When enabled, glossary entries are also searched based on semantic search chunks returned by the content question flow","default":false},"use_known_documents_context":{"type":"boolean","title":"Use Known Documents Context","description":"When enabled, the content-question flow reminds the model each turn of documents already identified in this conversation — cited in earlier turns' answers, or discovered by find_documents earlier in this same turn — instructing it to scope a follow-up question to the matching document's id via document_ids instead of re-running an unscoped library-wide search or asking for clarification","default":false},"escalate_document_query_to_content":{"type":"boolean","title":"Escalate Document Query To Content","description":"When enabled, a document-query turn that found documents whose metadata does not hold the answer may hand the question to the content-question flow instead of giving up. Addresses libraries whose schema advertises fields that are barely populated, where the classifier routes a value lookup to the metadata path and the value only exists in the document text. Costs a second agent loop on the turns that request it","default":false},"use_supporting_quotes":{"type":"boolean","title":"Use Supporting Quotes","description":"When enabled, answer validation asks the model for a short verbatim quote supporting each grounded claim; the quote is checked against the cited source's text and attached to its Reference. Requires use_structured_answer_validation, since the quote is only extractable from structured validation output. Disable it to keep the full retrieved chunk in every citation's quoted_text.","default":true},"use_direct_attachment_quotes":{"type":"boolean","title":"Use Direct Attachment Quotes","description":"When enabled, attachments delivered to the model as native files also have their extracted text fetched, purely so supporting quotes have something to verify against; without it those citations can never carry a quoted_text. Off by default until the verified-quote rate is measured: the model quotes from the provider's own parse of the file while verification runs against Tika's, so the rate depends on how closely the two agree","default":false},"use_content_processing_quotes":{"type":"boolean","title":"Use Content Processing Quotes","description":"When enabled, the content-processing flow also asks answer validation for a supporting quote per grounded claim and narrows its citations to the verified excerpt, as the content-question flow already does. Off by default because that flow's output is largely derived — summaries, translations, analyses — where a claim is meant to be a paraphrase, so verbatim verification legitimately fails on much of it. Only grounded items are ever narrowed, and a failed verification leaves the source text in place rather than clearing it","default":false}},"type":"object","title":"ChatFeatureConfig"},"ChatLink":{"properties":{"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"}},"type":"object","required":["title","url"],"title":"ChatLink"},"ChatRequest":{"properties":{"message":{"type":"string","title":"Message","description":"The message to be sent to the assistant"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"The id of the agent to scope this chat request"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message.<br>\n            If not provided a new conversation will be created."},"library_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Id","description":"Use library_ids field, answer the question in the context of the library","deprecated":true},"library_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Library Ids","description":"Answer the question in the context of these libraries"},"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"DEPRECATED: use document_ids field, answer the question in the context of the document","deprecated":true},"document_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Ids","description":"Answer the question in the context of these documents"},"view_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Id","description":"Answer the question in the context of the view"},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"These filters limit which documents are considered as sources during the answer generation."},"timezone":{"type":"integer","title":"Timezone","description":"Timezone of the user. If is not provided we use UTC timezone.<br> We use this information to accurately interpret time-related queries.<br> Format: offset from UTC, in minutes","default":0},"read_only":{"type":"boolean","title":"Read Only","description":"Disable tools that can modify documents for this request","default":false}},"type":"object","required":["message"],"title":"ChatRequest"},"ChatRequestV2":{"properties":{"message":{"type":"string","title":"Message","description":"The message to be sent to the assistant"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"The id of the agent to scope this chat request"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message. If not provided, a new conversation will be created."},"library_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Library Ids","description":"Answer the question in the context of these libraries"},"document_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Ids","description":"Answer the question in the context of these documents"},"view_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Id","description":"Answer the question in the context of the view"},"timezone":{"type":"integer","title":"Timezone","description":"Timezone of the user. If not provided we use UTC timezone. Format: offset from UTC, in minutes (JavaScript getTimezoneOffset)","default":0},"read_only":{"type":"boolean","title":"Read Only","description":"Disable tools that can modify documents for this request","default":false}},"type":"object","required":["message"],"title":"ChatRequestV2","description":"V2 Chat request model with deprecated fields removed.\n\nChanges from V1:\n- Removed library_id (use library_ids)\n- Removed document_id (use document_ids)\n- Removed view_params (not needed in v2)\n- Removed filters (handled internally)\n- Removed use_header_prefix (streaming format changed)"},"ChatResponse":{"properties":{"metadata":{"$ref":"#/components/schemas/ChatResponseMetadata"},"response":{"type":"string","title":"Response"}},"type":"object","required":["metadata","response"],"title":"ChatResponse"},"ChatResponseItemV2":{"properties":{"text":{"type":"string","title":"Text","description":"The text content of this response item (paragraph)"},"citations":{"items":{"$ref":"#/components/schemas/Reference"},"type":"array","title":"Citations","description":"Document sources cited in this specific paragraph. Each citation includes document info, quoted text, and location."},"links":{"items":{"$ref":"#/components/schemas/ChatLink"},"type":"array","title":"Links","description":"Search result links related to this specific paragraph. These are typically AODocs view links showing the source documents."}},"type":"object","required":["text"],"title":"ChatResponseItemV2","description":"A single response item (typically a paragraph) with its own citations and links.\n\nThis structure enables:\n- Inline citation display per paragraph\n- Contextual search links\n- Better transparency about source attribution"},"ChatResponseMetadata":{"properties":{"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message"},"message_id":{"type":"string","title":"Message Id","description":"The message ID of the chat message"},"response_id":{"type":"string","title":"Response Id","description":"The response ID of the chat message"},"sources":{"items":{"$ref":"#/components/schemas/Reference"},"type":"array","title":"Sources","description":"Document information used to generate the response","default":[]},"links":{"items":{"$ref":"#/components/schemas/ChatLink"},"type":"array","title":"Links","description":"Links to be displayed in the response","default":[]}},"type":"object","required":["conversation_id","message_id","response_id"],"title":"ChatResponseMetadata"},"ChatResponseMetadataV2":{"properties":{"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message"},"message_id":{"type":"string","title":"Message Id","description":"The message ID of the chat message"},"response_id":{"type":"string","title":"Response Id","description":"The response ID of the chat message"}},"type":"object","required":["conversation_id","message_id","response_id"],"title":"ChatResponseMetadataV2","description":"Metadata about the chat response.\n\nSimplified from V1 - sources and links moved to per-item level."},"ChatResponseV2":{"properties":{"metadata":{"$ref":"#/components/schemas/ChatResponseMetadataV2","description":"Metadata including conversation, message, and response IDs"},"items":{"items":{"$ref":"#/components/schemas/ChatResponseItemV2"},"type":"array","title":"Items","description":"Structured response items, typically paragraphs with their sources"}},"type":"object","required":["metadata","items"],"title":"ChatResponseV2","description":"Structured chat response preserving paragraph-level granularity.\n\nEach response item represents a logical unit (typically a paragraph) with its\nown citations, links, and search metadata. This allows clients to:\n- Display inline citations per paragraph\n- Show relevant search links contextually\n- Understand which searches contributed to each answer part\n\nExample:\n{\n    \"metadata\": {\n        \"conversation_id\": \"uuid\",\n        \"message_id\": \"uuid\",\n        \"response_id\": \"uuid\"\n    },\n    \"items\": [\n        {\n            \"text\": \"Alice is 32 years old.\",\n            \"citations\": [{\"document_title\": \"Employee Records\", ...}],\n            \"links\": []\n        },\n        {\n            \"text\": \"She works at AODocs as a software engineer.\",\n            \"citations\": [{\"document_title\": \"Team Directory\", ...}],\n            \"links\": [{\"title\": \"View team directory\", \"url\": \"...\"}]\n        }\n    ]\n}"},"ComparedDocumentResult":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"Matched target document ID."},"document_title":{"type":"string","title":"Document Title","description":"Matched target document title."},"document_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Link","description":"Link to the matched target document."},"conflicts":{"items":{"$ref":"#/components/schemas/MetadataConflict"},"type":"array","title":"Conflicts","description":"Metadata conflicts detected for this target document."},"llm_conflicts":{"items":{"$ref":"#/components/schemas/LLMConflict"},"type":"array","title":"Llm Conflicts","description":"LLM-detected conflicts for this target document."},"has_conflict":{"type":"boolean","title":"Has Conflict","description":"Whether this target document has a conflict."}},"type":"object","required":["document_id","document_title","conflicts","has_conflict"],"title":"ComparedDocumentResult"},"ConfidenceLevel":{"type":"string","enum":["low","medium","high"],"title":"ConfidenceLevel"},"ConflictCheckConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"max_llm_comparisons":{"type":"integer","minimum":1.0,"title":"Max Llm Comparisons","description":"Maximum number of target documents sent to the LLM per job. LLM comparisons are far more expensive than metadata set comparisons, so they are capped per job; targets beyond the cap are reported as truncated.","default":50},"llm_comparison_concurrency":{"type":"integer","minimum":1.0,"title":"Llm Comparison Concurrency","description":"Maximum number of target documents compared by the LLM concurrently within a single job.","default":3},"max_conflicts_per_target":{"type":"integer","minimum":1.0,"title":"Max Conflicts Per Target","description":"Maximum number of LLM-detected conflicts kept per target document. Caps unbounded model output before it is persisted and published.","default":50},"max_conflict_summary_length":{"type":"integer","minimum":1.0,"title":"Max Conflict Summary Length","description":"Maximum character length of an LLM conflict summary; longer summaries are truncated before being persisted and published.","default":1000},"max_conflict_evidence_length":{"type":"integer","minimum":1.0,"title":"Max Conflict Evidence Length","description":"Maximum character length of each LLM conflict evidence excerpt (base and target); longer excerpts are truncated before being persisted and published.","default":2000}},"type":"object","title":"ConflictCheckConfig"},"ConflictCheckJobResponse":{"properties":{"job_id":{"type":"string","title":"Job Id","description":"Conflict-check job ID."},"status":{"$ref":"#/components/schemas/ConflictCheckStatus","description":"Job status."},"document_id":{"type":"string","title":"Document Id","description":"Base document ID."},"target_library_id":{"type":"string","title":"Target Library Id","description":"Target library ID."},"target_document_class_id":{"type":"string","title":"Target Document Class Id","description":"Target document class ID."},"matched_documents":{"type":"integer","title":"Matched Documents","description":"Number of matched target documents."},"conflicted_documents":{"type":"integer","title":"Conflicted Documents","description":"Number of matched target documents with conflicts."},"notification_status":{"$ref":"#/components/schemas/NotificationStatus","description":"Pub/Sub notification state for the final job envelope."},"result":{"anyOf":[{"$ref":"#/components/schemas/ConflictCheckResult"},{"type":"null"}],"description":"Final result when the job has completed."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Failure reason when the job has failed."},"expire_at":{"type":"string","format":"date-time","title":"Expire At","description":"Automatic cleanup timestamp for the stored job."}},"type":"object","required":["job_id","status","document_id","target_library_id","target_document_class_id","matched_documents","conflicted_documents","notification_status","expire_at"],"title":"ConflictCheckJobResponse"},"ConflictCheckResult":{"properties":{"matched_documents":{"type":"integer","title":"Matched Documents","description":"Number of matched target documents evaluated."},"conflicted_documents":{"type":"integer","title":"Conflicted Documents","description":"Number of matched target documents with at least one conflict."},"returned_conflicted_documents":{"type":"integer","title":"Returned Conflicted Documents","description":"Number of conflicted target documents included in this result payload."},"truncated":{"type":"boolean","title":"Truncated","description":"Whether conflicted target documents were capped in the result payload."},"llm_truncated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Llm Truncated","description":"Whether some matched documents were not checked by the LLM because the per-job LLM comparison budget was exhausted. None when the request had no LLM rule."},"llm_compared_documents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Llm Compared Documents","description":"Number of matched documents actually compared by the LLM. None when the request had no LLM rule."},"llm_skipped_documents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Llm Skipped Documents","description":"Number of matched documents skipped by the LLM because the per-job LLM comparison budget was exhausted. None when the request had no LLM rule."},"documents":{"items":{"$ref":"#/components/schemas/ComparedDocumentResult"},"type":"array","title":"Documents","description":"Conflicted target documents included in the result payload."}},"type":"object","required":["matched_documents","conflicted_documents","returned_conflicted_documents","truncated","documents"],"title":"ConflictCheckResult"},"ConflictCheckStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","FAILED"],"title":"ConflictCheckStatus"},"ContactRequest":{"properties":{"email":{"type":"string","title":"Email"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["email"],"title":"ContactRequest"},"ConversationDto":{"properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"description":{"type":"string","title":"Description"}},"type":"object","required":["conversation_id","created_at","updated_at","description"],"title":"ConversationDto"},"ConversationsDto":{"properties":{"conversations":{"items":{"$ref":"#/components/schemas/ConversationDto"},"type":"array","title":"Conversations"},"nextPageToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextpagetoken"}},"type":"object","required":["conversations","nextPageToken"],"title":"ConversationsDto"},"CreateEvaluationRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Human-readable label for this evaluation run"},"document_ids":{"items":{"type":"string"},"type":"array","title":"Document Ids","description":"IDs of the AODocs documents to evaluate against their current field values"},"extraction_request":{"$ref":"#/components/schemas/MetadataExtractRequest","description":"The full extraction request configuration to use (fields, registries, example_documents, feature_config). The document_id field is ignored here and overridden per-document during evaluation."}},"type":"object","required":["name","document_ids","extraction_request"],"title":"CreateEvaluationRequest"},"CustomMetadataExtractRequest":{"properties":{"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to use. If not provided, the default provider will be used."},"llm_model_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model Prefix","description":"The prefix of the LLM model name to use. If not provided, the default model will be used.","examples":["gemini-2.5-pro","gemini-2.5-pro-preview-05-06","gpt-4.1"]},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the files"},"attachment_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Attachment Filters","description":"The attachments to extract metadata from.\n            If provided then only the attachments matching one of the rules are used.\n            If not provided then all attachments will be extracted.\n            Deprecated: use sources with an attachments entry instead. ","deprecated":true},"sources":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/DescriptionExtractionSource"},{"$ref":"#/components/schemas/AttachmentsExtractionSource"}],"discriminator":{"propertyName":"type","mapping":{"attachments":"#/components/schemas/AttachmentsExtractionSource","description":"#/components/schemas/DescriptionExtractionSource"}}},"type":"array","minItems":1},{"type":"null"}],"title":"Sources","description":"The ordered document content sources to extract metadata from.\n            If omitted, attachment-only extraction is used for backward compatibility.\n            Description sources are opt-in. "},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"The prompt extension for the metadata extraction"},"provide_location":{"type":"boolean","title":"Provide Location","description":"Whether to calculate and return page locations (bounding boxes) for the quote supporting each extracted field. Quotes are matched against textual and scanned PDF attachments plus PNG, JPEG, and WebP images without changing extracted values. Unsupported attachment types and quotes that do not occur verbatim after normalization do not produce boxes.","default":false},"json_schema":{"$ref":"#/components/schemas/OpenAISchema","description":"The metadata schema to be extracted.\n            It is the OpenAI supported subset of the JSON schema.\n            The additional_properties and required fields are automatically generated so their value is ignored."},"integer_decimal_handling":{"$ref":"#/components/schemas/IntegerDecimalHandling","description":"How to coerce a decimal value the LLM returns for any integer-typed field in the schema: `truncate` drops the fractional part (3.7 → 3), `round` rounds to the nearest integer (3.5 → 4, 3.4 → 3), `roundup` always rounds up toward positive infinity (3.2 → 4), `error` raises an extraction error (default — current behavior). Applies uniformly to all integer fields in the JSON schema.","default":"error"}},"type":"object","required":["document_id","json_schema"],"title":"CustomMetadataExtractRequest"},"DCRRequest":{"properties":{"software_statement":{"type":"string","title":"Software Statement"}},"type":"object","required":["software_statement"],"title":"DCRRequest"},"DataRetentionPolicy":{"type":"string","enum":["inline_only","remote_storage_allowed"],"title":"DataRetentionPolicy","description":"Tenant policy relevant to whether attachment bytes may be stored remotely."},"DataSource":{"properties":{"library_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Id","description":"The id of the library in which we want to answer questions"},"library_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Name","description":"The name of the library in which we want to answer questions"},"class_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Id","description":"The id of the class in which we want to answer questions"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name","description":"The name of the class in which we want to answer questions"},"metadata_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/DataSourceMetadataFilter"},"type":"array"},{"type":"null"}],"title":"Metadata Filters","description":"Optional metadata filters applied automatically to both semantic and keyword search. Keys are field ids from the library/class schema."}},"additionalProperties":false,"type":"object","title":"DataSource"},"DataSourceMetadataFilter":{"properties":{"key":{"type":"string","title":"Key","description":"The field id (not the display name) of the metadata field to filter on"},"value":{"anyOf":[{"type":"integer"},{"type":"boolean"},{"type":"number"},{"type":"string"},{"items":{"type":"string"},"type":"array"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"integer"},"type":"array"}],"title":"Value","description":"The value or list of values to compare against"},"operator":{"$ref":"#/components/schemas/AODocsFilterOperator","description":"The comparison operator","default":"=="}},"additionalProperties":false,"type":"object","required":["key","value"],"title":"DataSourceMetadataFilter"},"DescriptionExtractionSource":{"properties":{"type":{"type":"string","const":"description","title":"Type","default":"description"}},"type":"object","title":"DescriptionExtractionSource"},"DocumentConflictCheckRequest":{"properties":{"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to use. If not provided, the default provider will be used."},"llm_model_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model Prefix","description":"The prefix of the LLM model name to use. If not provided, the default model will be used.","examples":["gemini-2.5-pro","gemini-2.5-pro-preview-05-06","gpt-4.1"]},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the files"},"target_library_id":{"type":"string","title":"Target Library Id","description":"Library ID containing the target documents to compare against."},"target_document_class_id":{"type":"string","title":"Target Document Class Id","description":"Document class ID containing the target documents to compare against."},"pubsub_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pubsub Topic","description":"Pub/Sub topic that will receive the final job envelope."},"join_conditions":{"items":{"$ref":"#/components/schemas/JoinCondition"},"type":"array","minItems":1,"title":"Join Conditions","description":"All join conditions must match for a target document to be included."},"rules":{"items":{"oneOf":[{"$ref":"#/components/schemas/MetadataConflictRule"},{"$ref":"#/components/schemas/LLMConflictRule"}],"discriminator":{"propertyName":"kind","mapping":{"llm":"#/components/schemas/LLMConflictRule","metadata":"#/components/schemas/MetadataConflictRule"}}},"type":"array","minItems":1,"title":"Rules","description":"Conflict rules to execute on each matched target document."}},"type":"object","required":["document_id","target_library_id","target_document_class_id","join_conditions","rules"],"title":"DocumentConflictCheckRequest"},"DocumentIndexBackend":{"type":"string","enum":["opensearch","search_service"],"title":"DocumentIndexBackend"},"DocumentSchemaVersion":{"type":"string","enum":["v1","v2"],"title":"DocumentSchemaVersion","description":"Available schema versions."},"DocumentSimilarityInclude":{"properties":{"text":{"type":"boolean","title":"Text","description":"Whether to include text snippets in the results","default":true}},"type":"object","title":"DocumentSimilarityInclude"},"DocumentSplit":{"properties":{"library_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Id","description":"The ID of the library the document belongs to. None for uncategorized documents."},"document_class_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class Id","description":"The ID of the document class the document belongs to. None for uncategorized documents."},"document_class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class Name","description":"The name of the document class the document belongs to."},"page_ranges":{"items":{"$ref":"#/components/schemas/PageRange"},"type":"array","title":"Page Ranges","description":"The list of page ranges in the original document that belong to this split document. Supports non-consecutive pages for future iterations where pages may be shuffled during scanning."},"confidence":{"anyOf":[{"$ref":"#/components/schemas/ConfidenceLevel"},{"type":"null"}],"description":"The confidence level of the split."},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning","description":"The reasoning behind the split decision provided by the LLM."}},"type":"object","required":["library_id","document_class_id","page_ranges"],"title":"DocumentSplit","description":"Represents one logical document resulting from a split operation."},"DocumentSplitConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"checkpoint_interval_seconds":{"type":"integer","exclusiveMinimum":0.0,"title":"Checkpoint Interval Seconds","description":"Time interval in seconds after which to checkpoint progress for large documents.","default":180},"max_validation_attempts":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Validation Attempts","description":"Maximum number of attempts to extract and validate the split plan from LLM response. ","default":3},"provide_page_numbers":{"type":"boolean","title":"Provide Page Numbers","description":"Whether to provide page numbers in the LLM prompt when splitting documents.","default":true}},"type":"object","title":"DocumentSplitConfig"},"DocumentSplitStatus":{"type":"string","enum":["in_progress","completed","failed"],"title":"DocumentSplitStatus"},"DocumentValidationConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"max_validation_attempts":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Validation Attempts","description":"Maximum number of retries when the LLM output is invalid.","default":2},"max_llm_rules_per_batch":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Llm Rules Per Batch","description":"Maximum number of LLM rules to evaluate in a single LLM call.","default":10},"snippet_context_chars":{"type":"integer","minimum":0.0,"title":"Snippet Context Chars","description":"Number of surrounding characters to include on each side of a local text match.","default":80},"require_llm_violation_verdict":{"type":"boolean","title":"Require Llm Violation Verdict","description":"When True (the default), each item the model reports for an LLM rule must carry a `reasoning` and an `is_violation` verdict, and items with `is_violation=false` are dropped. The reasoning is never returned (it is captured only in the raw LLM response stored in the validation BigQuery log). Adds output tokens and latency. Set to False to return every item the model reports.","default":true}},"type":"object","title":"DocumentValidationConfig"},"DocumentValidationRequest":{"properties":{"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to use. If not provided, the default provider will be used."},"llm_model_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model Prefix","description":"The prefix of the LLM model name to use. If not provided, the default model will be used.","examples":["gemini-2.5-pro","gemini-2.5-pro-preview-05-06","gpt-4.1"]},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the files"},"attachment_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Attachment Filters","description":"Optional attachment filters. If omitted, all attachments are validated."},"rules":{"items":{"oneOf":[{"$ref":"#/components/schemas/StoredRuleRef"},{"$ref":"#/components/schemas/RegexRule"},{"$ref":"#/components/schemas/BlacklistRule"},{"$ref":"#/components/schemas/LlmRule"}],"discriminator":{"propertyName":"kind","mapping":{"blacklist":"#/components/schemas/BlacklistRule","llm":"#/components/schemas/LlmRule","regex":"#/components/schemas/RegexRule","stored":"#/components/schemas/StoredRuleRef"}}},"type":"array","minItems":1,"title":"Rules","description":"Validation rules to execute against the selected attachments."},"whitelist":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Whitelist","description":"Values that should be ignored even if one of the rules detects them."}},"type":"object","required":["document_id","rules"],"title":"DocumentValidationRequest"},"DocumentValidationResponse":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"The validated document ID."},"passed":{"type":"boolean","title":"Passed","description":"Whether the document passed validation after whitelist suppression."},"violations":{"items":{"$ref":"#/components/schemas/ValidationViolation"},"type":"array","title":"Violations","description":"Flat list of detected violations."}},"type":"object","required":["document_id","passed","violations"],"title":"DocumentValidationResponse"},"ExtendedExtractedMetadata":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the field"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the field"},"type":{"anyOf":[{"$ref":"#/components/schemas/FieldType"},{"type":"null"}],"description":"The type of the field"},"quote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote","description":"A sentence quoted from text that proves the extracted value. At least 10 words."},"bounding_boxes":{"anyOf":[{"items":{"$ref":"#/components/schemas/BoundingBox"},"type":"array"},{"type":"null"}],"title":"Bounding Boxes","description":"Locations of decoded values or quoted evidence in attachments, in full-page normalized coordinates."},"confidence":{"anyOf":[{"$ref":"#/components/schemas/ConfidenceLevel"},{"type":"null"}],"description":"Confidence in the correcteness of the extraction"},"value":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Value","description":"Human readable format of the extracted field value."},"category_value":{"anyOf":[{"items":{"$ref":"#/components/schemas/CategoryHierarchy"},"type":"array"},{"type":"null"}],"title":"Category Value","description":"The extracted category value if the field type is category"},"reference_catalog_value":{"anyOf":[{"items":{"$ref":"#/components/schemas/ReferenceCatalogValue"},"type":"array"},{"type":"null"}],"title":"Reference Catalog Value","description":"The extracted reference catalog value if the field type is reference catalog"},"person_value":{"anyOf":[{"items":{"$ref":"#/components/schemas/Person"},"type":"array"},{"type":"null"}],"title":"Person Value","description":"The extracted person value if the field type is person"},"table_value":{"anyOf":[{"items":{"$ref":"#/components/schemas/TableRow"},"type":"array"},{"type":"null"}],"title":"Table Value","description":"The extracted table rows if the field type is table"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"The error message if the extraction failed. Otherwise None."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Any additional notes or comments about the extraction."}},"type":"object","title":"ExtendedExtractedMetadata"},"ExtendedExtractedMetadataList":{"properties":{"values":{"items":{"$ref":"#/components/schemas/ExtendedExtractedMetadata"},"type":"array","title":"Values"},"registry_matches":{"anyOf":[{"items":{"$ref":"#/components/schemas/RegistryMatch"},"type":"array"},{"type":"null"}],"title":"Registry Matches","description":"Information about the matched registry entries and the strength of the match"}},"type":"object","required":["values"],"title":"ExtendedExtractedMetadataList"},"ExtractionSuggestion":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FieldSuggestion"},"type":"array","title":"Fields","description":"The suggested instructions for extracting the fields"},"extraction_instruction":{"type":"string","title":"Extraction Instruction","description":"The suggested instruction for the whole document"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment","description":"Reason for the instruction change"}},"type":"object","required":["fields","extraction_instruction","comment"],"title":"ExtractionSuggestion"},"FeedbackCategory":{"type":"string","enum":["answer_incorrect","sources_wrong","sources_missing","answer_incomplete","too_slow","format_unclear","other"],"title":"FeedbackCategory"},"FeedbackDto":{"properties":{"type":{"$ref":"#/components/schemas/FeedbackType"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rating"},"categories":{"items":{"$ref":"#/components/schemas/FeedbackCategory"},"type":"array","title":"Categories","default":[]}},"type":"object","required":["type"],"title":"FeedbackDto"},"FeedbackType":{"type":"string","enum":["Like","Dislike","Cancel"],"title":"FeedbackType"},"FieldMapping":{"properties":{"extracted_field":{"type":"string","title":"Extracted Field","description":"The id of the field in the extracted metadata"},"registry_field":{"type":"string","title":"Registry Field","description":"The id of the field in the metadata registry"},"key_field":{"type":"boolean","title":"Key Field","description":"If true, the field is used to match the document to the metadata registry. \nWe need at least one key field to match the document to the metadata registry.","default":false},"optional_key":{"type":"boolean","title":"Optional Key","description":"If True, this key field is optional—if it's missing in the extracted data, the match can still succeed as long as other key fields are present and match.","default":false},"similarity_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Similarity Threshold","description":"For key fields only: how closely the extracted and registry values need to match (0.0 = no similarity, 1.0 = perfect match). If more than one record matches, the one with the highest total similarity across all key fields will be chosen.","default":1.0}},"type":"object","required":["extracted_field","registry_field"],"title":"FieldMapping"},"FieldSpec":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the metadata field. Either the name or id is mandatory"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the metadata field. Either the name or id is mandatory"},"instruction":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Instruction","description":"Custom instruction for extracting this field"},"barcode":{"type":"boolean","title":"Barcode","description":"Extract decoded barcode content and locations without using the LLM. Supported only for STRING and TEXT fields.","default":false},"integer_decimal_handling":{"$ref":"#/components/schemas/IntegerDecimalHandling","description":"How to coerce a decimal value the LLM returns for this integer-typed field: `truncate` drops the fractional part (3.7 → 3), `round` rounds to the nearest integer (3.5 → 4, 3.4 → 3), `roundup` always rounds up toward positive infinity (3.2 → 4), `error` raises an extraction error (default — current behavior). Applies only to integer fields; ignored otherwise.","default":"error"},"table_search":{"anyOf":[{"$ref":"#/components/schemas/TableSearchConfig"},{"type":"null"}],"description":"Optional request-scoped table-search configuration used to validate and canonicalize STRING, CATEGORY, REFERENCE_CATALOG, or TABLE values. Complete low-cardinality enum values remain available to the extraction model; incomplete or high-cardinality enums are extracted as plain text."}},"type":"object","title":"FieldSpec"},"FieldSuggestion":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the field"},"extraction_instruction":{"type":"string","title":"Extraction Instruction","description":"The suggested instruction for extracting this field"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment","description":"Reason for the instruction change. You can argue here if the expected value is wrong and no reasonable instruction can be provided."}},"type":"object","required":["name","extraction_instruction","comment"],"title":"FieldSuggestion"},"FieldType":{"type":"string","enum":["STRING","TEXT","CATEGORY","DATE","DATETIME","TIME","INTEGER","DECIMAL","PERSON","BOOLEAN","URL","REFERENCE_CATALOG","TABLE"],"title":"FieldType"},"FindSimilarConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"use_reranking":{"type":"boolean","title":"Use Reranking","description":"Whether to rerank retrieved chunk candidates for each input chunk search. Disabled by default because document similarity primarily relies on embedding retrieval and cross-encoder reranking can add significant latency.","default":false},"limit_multiplier":{"type":"number","exclusiveMinimum":1.0,"title":"Limit Multiplier","description":"Multiplier to determine the initial number of chunk candidates to retrieve for each input chunk. This is important because we return a document only once but because it has multiple chunks it may be included in the results multiple times. The initial limit is calculated as max_results * limit_multiplier.","default":5.0},"chunk_size":{"type":"integer","maximum":1024.0,"exclusiveMinimum":128.0,"title":"Chunk Size","description":"The size of text chunks (in tokens, per the resolved embedding model's tokenizer) to split the input text into for finding similar documents.","default":1024},"selection_strategy":{"$ref":"#/components/schemas/SelectionStrategy","description":"The strategy to use for selecting similar documents from the search results.","default":"most_similar_chunk"}},"type":"object","title":"FindSimilarConfig"},"FindSimilarRequest":{"properties":{"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"The document ID to find similar documents for. Mutually exclusive with text."},"attachment_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Attachment Filters","description":"List of attachment filters within the document to consider for finding similar documents. If provided then only the attachments matching one of the rules are used otherwise all attachments will be used. It can be used only if the document_id field is provided."},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Finds similar documents to this text. Mutually exclusive with document_id."},"libraries":{"anyOf":[{"items":{"$ref":"#/components/schemas/LibraryFilter"},"type":"array"},{"type":"null"}],"title":"Libraries","description":"List of libraries to limit the search for similar documents. If None, then all libraries will be searched. "},"similarity_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Similarity Threshold","description":"The similarity threshold (between 0 and 1) above which documents are considered similar. Higher values mean more similar documents. Ignored when 'absolute_duplicates_only' is true.","default":0.7},"absolute_duplicates_only":{"type":"boolean","title":"Absolute Duplicates Only","description":"If true, return only absolute duplicates (documents sharing an attachment MD5 checksum with the source document); 'similarity_threshold' is ignored. If false, absolute duplicates are returned first and semantically-similar matches are used to fill any remaining result slots up to 'max_results'. Can only be used together with 'document_id'.","default":false},"max_results":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Results","description":"The maximum number of similar documents to return.","default":10},"include":{"$ref":"#/components/schemas/DocumentSimilarityInclude","description":"Which fields to include in the results"}},"type":"object","title":"FindSimilarRequest"},"FindSimilarResponse":{"properties":{"similar_documents":{"items":{"$ref":"#/components/schemas/SimilarDocument"},"type":"array","title":"Similar Documents","description":"List of similar documents found."}},"type":"object","required":["similar_documents"],"title":"FindSimilarResponse"},"GetMessagesDto":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/MessageDto"},"type":"array","title":"Messages"},"nextPageToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextpagetoken"}},"type":"object","required":["messages","nextPageToken"],"title":"GetMessagesDto"},"GlossaryItem":{"properties":{"id":{"type":"string","title":"Id","description":"Unique entry identifier"},"acronym":{"type":"string","maxLength":20,"title":"Acronym","description":"Acronym"},"label":{"type":"string","maxLength":150,"title":"Label","description":"Label for the acronym"},"domain":{"type":"string","maxLength":30,"title":"Domain","description":"Domain/category"},"description":{"type":"string","maxLength":500,"title":"Description","description":"Description of the acronym"}},"type":"object","required":["id","acronym","label","domain","description"],"title":"GlossaryItem"},"GlossaryItemList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlossaryItem"},"type":"array","title":"Items","description":"The list of glossary items"},"nextPageToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextpagetoken","description":"Token for the next page"}},"type":"object","required":["items"],"title":"GlossaryItemList"},"GlossaryList":{"properties":{"glossaries":{"items":{"$ref":"#/components/schemas/ApiGlossary"},"type":"array","title":"Glossaries","description":"The list of glossaries"},"nextPageToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextpagetoken","description":"Token for the next page"}},"type":"object","required":["glossaries"],"title":"GlossaryList"},"GlossarySearchRequest":{"properties":{"glossary_ids":{"items":{"type":"string"},"type":"array","title":"Glossary Ids","description":"List of glossary IDs to search"},"query":{"type":"string","title":"Query","description":"Search query"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Maximum results to return","default":10}},"type":"object","required":["glossary_ids","query"],"title":"GlossarySearchRequest"},"GlossarySearchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlossarySearchResultItem"},"type":"array","title":"Items","description":"The search results"}},"type":"object","required":["items"],"title":"GlossarySearchResponse"},"GlossarySearchResultItem":{"properties":{"id":{"type":"string","title":"Id","description":"Unique entry identifier"},"glossary_id":{"type":"string","title":"Glossary Id","description":"The ID of the glossary"},"acronym":{"type":"string","title":"Acronym","description":"The acronym"},"label":{"type":"string","title":"Label","description":"The label"},"domain":{"type":"string","title":"Domain","description":"The domain"},"description":{"type":"string","title":"Description","description":"The description"},"score":{"type":"number","title":"Score","description":"The relevance score"}},"type":"object","required":["id","glossary_id","acronym","label","domain","description","score"],"title":"GlossarySearchResultItem"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntegerDecimalHandling":{"type":"string","enum":["truncate","round","roundup","error"],"title":"IntegerDecimalHandling"},"JoinCondition":{"properties":{"base_field_id":{"type":"string","title":"Base Field Id","description":"Field ID on the base document side."},"target_field_id":{"type":"string","title":"Target Field Id","description":"Field ID on the target document side."}},"type":"object","required":["base_field_id","target_field_id"],"title":"JoinCondition"},"JsonSchemaType":{"type":"string","enum":["string","number","boolean","integer","object","array","null"],"title":"JsonSchemaType"},"KeyMatch":{"properties":{"extracted_field_name":{"type":"string","title":"Extracted Field Name","description":"The name of the extracted field that matched the registry value"},"extracted_field_id":{"type":"string","title":"Extracted Field Id","description":"The id of the extracted field that matched the registry value"},"extracted_value":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extracted Value","description":"The value extracted from the document"},"registry_value":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Registry Value","description":"The value matched in the registry"},"similarity":{"type":"number","title":"Similarity","description":"How similar the extracted value is to the registry value (between 0.0 and 1.0). 1.0 means perfect match, 0.0 means no similarity."}},"type":"object","required":["extracted_field_name","extracted_field_id","extracted_value","registry_value","similarity"],"title":"KeyMatch"},"LLMConflict":{"properties":{"rule_id":{"type":"string","title":"Rule Id","description":"The rule that detected this conflict."},"summary":{"type":"string","title":"Summary","description":"Human-readable description of the detected conflict."},"base_evidence":{"type":"string","title":"Base Evidence","description":"Verbatim excerpt from the base document supporting the conflict."},"target_evidence":{"type":"string","title":"Target Evidence","description":"Verbatim excerpt from the target document supporting the conflict."}},"type":"object","required":["rule_id","summary","base_evidence","target_evidence"],"title":"LLMConflict"},"LLMConflictRule":{"properties":{"kind":{"type":"string","const":"llm","title":"Kind","default":"llm"},"rule_id":{"type":"string","maxLength":100,"title":"Rule Id","description":"Stable rule ID supplied by the caller."},"display_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Display Name","description":"Optional human-readable label for the rule."},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description","description":"Optional human-readable description of the rule for callers."},"conflict_definition":{"type":"string","maxLength":500,"title":"Conflict Definition","description":"What should be treated as a conflict for this rule, e.g. 'any difference in the numeric interest rate or product fees'. This is the primary guidance the LLM uses to detect conflicts for this rule."},"examples":{"anyOf":[{"items":{"type":"string","maxLength":200},"type":"array","maxItems":5},{"type":"null"}],"title":"Examples","description":"Optional example conflict descriptions to steer the model."},"additional_instructions":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Additional Instructions","description":"Optional free-form extra guidance for the conflict detection."}},"type":"object","required":["rule_id","conflict_definition"],"title":"LLMConflictRule"},"LibraryFilter":{"properties":{"id":{"type":"string","title":"Id","description":"The ID of the library to filter similar documents from."},"document_classes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Classes","description":"List of document class IDs to limit the search for similar documents within this library. If None, then all document classes within the library will be searched. "}},"type":"object","required":["id"],"title":"LibraryFilter"},"LinkDto":{"properties":{"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"}},"type":"object","required":["title","url"],"title":"LinkDto"},"LlmProvider":{"type":"string","enum":["OpenAI","Google","Altirnao","MistralAI","Anthropic"],"title":"LlmProvider"},"LlmRule":{"properties":{"kind":{"type":"string","const":"llm","title":"Kind","default":"llm"},"rule_id":{"type":"string","title":"Rule Id","description":"Stable rule ID supplied by the caller."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Optional human-readable label for the rule."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional human-readable description of the rule."},"rule_intent":{"type":"string","title":"Rule Intent","description":"High-level purpose of the rule, shown to the LLM."},"violation_definition":{"type":"string","title":"Violation Definition","description":"What counts as a violation for this rule."},"non_violation_definition":{"type":"string","title":"Non Violation Definition","description":"What should not be flagged for this rule."},"requires_visual_processing":{"type":"boolean","title":"Requires Visual Processing","description":"Whether this rule requires multimodal attachment input in addition to text.","default":false},"include_violation_details":{"type":"boolean","title":"Include Violation Details","description":"Whether the response should include matched_text and snippet for violations from this rule.","default":true}},"type":"object","required":["rule_id","rule_intent","violation_definition","non_violation_definition"],"title":"LlmRule"},"LocationSource":{"type":"string","enum":["pdf_text","pdf_hybrid","paddle_ocr"],"title":"LocationSource"},"MatchKind":{"type":"string","enum":["normalized_exact"],"title":"MatchKind"},"MatchMode":{"type":"string","enum":["ALL","ANY"],"title":"MatchMode"},"McpServerConfigDTO":{"properties":{"name":{"type":"string","title":"Name","description":"Human-readable name for this MCP server"},"url":{"type":"string","title":"Url","description":"MCP server endpoint URL (streamable-HTTP)"},"secret_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Id","description":"Secret Manager reference for bearer token authentication"}},"type":"object","required":["name","url"],"title":"McpServerConfigDTO"},"MessageDto":{"properties":{"message_id":{"type":"string","title":"Message Id"},"timestamp":{"type":"string","title":"Timestamp"},"message":{"type":"string","title":"Message"},"responses":{"items":{"$ref":"#/components/schemas/ResponseDto"},"type":"array","title":"Responses"}},"type":"object","required":["message_id","timestamp","message","responses"],"title":"MessageDto"},"Metadata":{"properties":{"properties":{"items":{"$ref":"#/components/schemas/Property"},"type":"array","title":"Properties"},"extraction_instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extraction Instruction","description":"The instruction for extracting this document class"}},"type":"object","required":["properties"],"title":"Metadata"},"MetadataConflict":{"properties":{"rule_id":{"type":"string","title":"Rule Id","description":"The rule that detected this conflict."},"base_field_id":{"type":"string","title":"Base Field Id","description":"Field ID on the base document side."},"target_field_id":{"type":"string","title":"Target Field Id","description":"Field ID on the target document side."},"base_values":{"items":{"type":"string"},"type":"array","title":"Base Values","description":"Normalized display values from the base document."},"target_values":{"items":{"type":"string"},"type":"array","title":"Target Values","description":"Normalized display values from the target document."},"explanation":{"type":"string","title":"Explanation","description":"Human-readable explanation of the conflict."}},"type":"object","required":["rule_id","base_field_id","target_field_id","base_values","target_values","explanation"],"title":"MetadataConflict"},"MetadataConflictRule":{"properties":{"kind":{"type":"string","const":"metadata","title":"Kind","default":"metadata"},"rule_id":{"type":"string","title":"Rule Id","description":"Stable rule ID supplied by the caller."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Optional human-readable label for the rule."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional human-readable description of the rule."},"base_field_id":{"type":"string","title":"Base Field Id","description":"Field ID on the base document side for this rule."},"target_field_id":{"type":"string","title":"Target Field Id","description":"Field ID on the target document side for this rule."}},"type":"object","required":["rule_id","base_field_id","target_field_id"],"title":"MetadataConflictRule"},"MetadataExtractConfig":{"properties":{"completion_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completion Model","description":"The LLM model to be used for the request"},"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to be used for the request"},"temperature":{"type":"number","title":"Temperature","description":"The temperature to be used for the request","default":0},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"Top p used during the generation of the completion"},"use_strict_function_calling":{"type":"boolean","title":"Use Strict Function Calling","description":"Use strict function calling (only for OpenAI models)","default":true},"malformed_response_retries":{"type":"integer","title":"Malformed Response Retries","description":"How many times to re-prompt the model when its tool-choice response cannot be parsed into the expected structure (schema-invalid / unparseable output). Each retry feeds the failure back so the model can self-correct, instead of failing the whole request on the first malformed response. 0 restores the previous fail-fast behavior","default":1},"verbose_logging":{"type":"boolean","title":"Verbose Logging","description":"Enable verbose logging for the request","default":false},"reasoning_effort":{"anyOf":[{"type":"string","enum":["none","minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort","description":"Reasoning effort level for reasoning models (OpenAI reasoning models, and Gemini 3.x via thinking_level)"},"verbosity":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Verbosity","description":"Verbosity level for model responses (only for OpenAI models)"},"provide_examples":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Provide Examples","description":"Whether to provide examples for the metadata extraction","default":false},"ignore_custom_instructions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Custom Instructions","description":"Whether to ignore custom instructions for metadata extraction","default":false},"max_extraction_complexity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Extraction Complexity","description":"The maximum complexity of the metadata extraction. The complexity is calculated as the sum of the number of values for each field + 3 for the confidence level enum."},"max_extraction_fields":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Extraction Fields","description":"The maximum number of fields to extract in a single request. If the number of fields exceeds this limit, the fields will be partitioned into multiple requests.","default":25},"long_field_name_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Long Field Name Length","description":"Field names that are longer than this are considered long. For Gemini models these field names will add extra complexity during extraction."},"long_field_name_complexity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Long Field Name Complexity","description":"The complexity added for long field names. For Gemini models these field names will add extra complexity during extraction."},"add_none_enum_value":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Add None Enum Value","description":"When True, add a `__NONE__` sentinel to every CATEGORY / REFERENCE_CATALOG enum in the extraction schema and translate it back to a null value in the parsed response. Works around Gemini's tendency to always pick one of the enum options even when the document has no information about the field."},"emit_extraction_thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Emit Extraction Thought","description":"When True, prepend a required `thought` reasoning field to the extraction wrapper for CATEGORY / REFERENCE_CATALOG (enum) fields so the model must reason before committing to an enum value. The thought is never persisted or returned as an extracted value (it is captured only in the raw LLM response stored in the extraction BigQuery log). Adds output tokens and latency."},"hierarchical_taxonomy_extraction":{"type":"boolean","title":"Hierarchical Taxonomy Extraction","description":"When True, CATEGORY / REFERENCE_CATALOG fields whose cached taxonomy declares ordered level names are extracted as one object per level instead of a single flattened path enum. Taxonomies that are incomplete, single-level, or structurally invalid keep the flat schema and parser.","default":false},"max_table_search_clarification_rounds":{"type":"integer","maximum":5.0,"minimum":0.0,"title":"Max Table Search Clarification Rounds","description":"Maximum number of batched LLM clarification rounds after the initial table-search lookup. Set to 0 to disable clarification.","default":2},"promote_field_instructions":{"type":"boolean","title":"Promote Field Instructions","description":"When True, mirror every requested field's per-field instruction into the system prompt, in addition to the JSON-schema field description where it already lives. A schema description is treated by the model as a weak hint, so identical guidance is enforced less reliably than the same text placed in the general instruction. Promoting field instructions to the system prompt gives them the same authority as the general instruction (AIGEN-1650).","default":false},"omit_null_value_rule":{"type":"boolean","title":"Omit Null Value Rule","description":"When True, drop the general system-prompt rule telling the model to return null instead of a placeholder string when it cannot find a field's value (AIGEN-2592). The type-specific null rules for INTEGER fields and declared field types remain.","default":false},"bounding_box_diagnostics":{"type":"boolean","title":"Bounding Box Diagnostics","description":"When bounding-box enrichment is enabled, include hidden matcher diagnostics in the response.","default":false}},"type":"object","title":"MetadataExtractConfig"},"MetadataExtractRequest":{"properties":{"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to use. If not provided, the default provider will be used."},"llm_model_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model Prefix","description":"The prefix of the LLM model name to use. If not provided, the default model will be used.","examples":["gemini-2.5-pro","gemini-2.5-pro-preview-05-06","gpt-4.1"]},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the files"},"attachment_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Attachment Filters","description":"The attachments to extract metadata from.\n            If provided then only the attachments matching one of the rules are used.\n            If not provided then all attachments will be extracted.\n            Deprecated: use sources with an attachments entry instead. ","deprecated":true},"sources":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/DescriptionExtractionSource"},{"$ref":"#/components/schemas/AttachmentsExtractionSource"}],"discriminator":{"propertyName":"type","mapping":{"attachments":"#/components/schemas/AttachmentsExtractionSource","description":"#/components/schemas/DescriptionExtractionSource"}}},"type":"array","minItems":1},{"type":"null"}],"title":"Sources","description":"The ordered document content sources to extract metadata from.\n            If omitted, attachment-only extraction is used for backward compatibility.\n            Description sources are opt-in. "},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"The prompt extension for the metadata extraction"},"provide_location":{"type":"boolean","title":"Provide Location","description":"Whether to calculate and return page locations (bounding boxes) for the quote supporting each extracted field. Quotes are matched against textual and scanned PDF attachments plus PNG, JPEG, and WebP images without changing extracted values. Unsupported attachment types and quotes that do not occur verbatim after normalization do not produce boxes.","default":false},"fields":{"anyOf":[{"items":{"$ref":"#/components/schemas/FieldSpec"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fields","description":"Specification which metadata to extract and how. If not provided, all fields will be extracted."},"example_documents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Example Documents","description":"A list of example documents to use for metadata extraction. If provided, the LLM will use these documents to better understand the context and provide more accurate extractions."},"registries":{"anyOf":[{"items":{"$ref":"#/components/schemas/Registry"},"type":"array"},{"type":"null"}],"title":"Registries","description":"A list of metadata registries to use for metadata extraction. If provided, the LLM will use these registries to better understand the context and provide more accurate extractions."}},"type":"object","required":["document_id"],"title":"MetadataExtractRequest"},"NotificationStatus":{"type":"string","enum":["PENDING","SENT","FAILED"],"title":"NotificationStatus"},"OpenAISchema":{"properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/JsonSchemaType"},{"items":{"$ref":"#/components/schemas/JsonSchemaType"},"type":"array"},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"enum":{"anyOf":[{"items":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"array"},{"type":"null"}],"title":"Enum"},"properties":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/OpenAISchema"},"type":"object"},{"type":"null"}],"title":"Properties"},"items":{"anyOf":[{"$ref":"#/components/schemas/OpenAISchema"},{"type":"null"}]},"anyOf":{"anyOf":[{"items":{"$ref":"#/components/schemas/OpenAISchema"},"type":"array"},{"type":"null"}],"title":"Anyof"},"$ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"$Ref"},"$defs":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/OpenAISchema"},"type":"object"},{"type":"null"}],"title":"$Defs"},"format":{"anyOf":[{"type":"string","enum":["date-time","time","date","duration","email","hostname","ipv4","ipv6","uuid"]},{"type":"null"}],"title":"Format"},"pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern"},"required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required","description":"If provided it must be equal to the keys of properties."}},"additionalProperties":false,"type":"object","title":"OpenAISchema","description":"Represents the OpenAI compatible subset of the JSON schema.\nThe required and additionalProperties fields are automatically added\nbecause their values are always the same for OpenAI schemas."},"PageRange":{"properties":{"start":{"type":"integer","minimum":1.0,"title":"Start","description":"The start page number of the range (inclusive, 1-based)."},"end":{"type":"integer","minimum":1.0,"title":"End","description":"The end page number of the range (inclusive, 1-based)."}},"type":"object","required":["start","end"],"title":"PageRange"},"Payer":{"type":"string","enum":["altirnao","customer"],"title":"Payer"},"Permission":{"properties":{"type":{"$ref":"#/components/schemas/PermissionType","description":"The type of the permission"},"value":{"type":"string","title":"Value","description":"The value of the permission. The email for user or group and * from everybody"}},"type":"object","required":["type","value"],"title":"Permission"},"PermissionType":{"type":"string","enum":["user","group","everybody"],"title":"PermissionType"},"Person":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"The email of the person"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the person"}},"type":"object","title":"Person"},"Property":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the field"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the field"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"The type of the field"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the field"},"extraction_instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extraction Instruction","description":"The instruction for extracting this field"},"skip_extraction":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skip Extraction","description":"If this field should be skipped during extraction","default":false}},"type":"object","title":"Property"},"QuotaType":{"type":"string","enum":["INDEXING","CHAT","METADATA_EXTRACTION","DOCUMENT_VALIDATION","CONFLICT_DETECTION","TRIAL"],"title":"QuotaType"},"QuotaUsage":{"properties":{"usage":{"type":"number","title":"Usage","description":"The amount of money spent on this type of operation this day","default":0}},"type":"object","title":"QuotaUsage"},"Reference":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reference"},"library_id":{"type":"string","title":"Library Id","description":"The library ID of the node"},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the node"},"document_title":{"type":"string","title":"Document Title","description":"Title of document"},"document_link":{"type":"string","title":"Document Link","description":"Link to the document"},"quoted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quoted Text","description":"Quoted text from the document. A short excerpt that verifies verbatim against the source where the answering flow narrowed it — the default for content-search answers — and the full retrieved source chunk otherwise. quote_narrowed tells the two apart; set use_supporting_quotes to false to always keep the full chunk."},"attachment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Id","description":"The attachment ID of the node"},"attachment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Name","description":"The attachment name of the node"},"attachment_mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Mime Type","description":"The attachment mime type of the node"},"attachment_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Link","description":"The attachment link of the node"},"location_info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Info","description":"Location of the quoted text on the document (optional"},"location_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Type","description":"Type of the location of the quoted text"},"revision_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision Id","description":"The revision ID of the attachment (optional)"},"external_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Source Url","description":"URL of the external source"},"external_source_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Source Title","description":"Display name of the external source"},"quote_narrowed":{"type":"boolean","title":"Quote Narrowed","description":"True when quoted_text has already been narrowed to a short, verified supporting quote (or nulled after failing verification) instead of holding the full raw retrieved chunk. Set only where that narrowing actually happens; callers deciding whether to strip quoted_text should check this field rather than the request's feature flags, since a flag being on doesn't mean the citation's own flow acted on it.","default":false},"bounding_boxes_available":{"type":"boolean","title":"Bounding Boxes Available","description":"Whether this citation can be submitted to the bounding-box lookup endpoint.","readOnly":true}},"type":"object","required":["id","library_id","document_id","document_title","document_link","bounding_boxes_available"],"title":"Reference"},"ReferenceCatalogValue":{"properties":{"id":{"type":"string","title":"Id","description":"The id of the value"},"name":{"type":"string","title":"Name","description":"The name of the value"}},"type":"object","required":["id","name"],"title":"ReferenceCatalogValue"},"RegexFlag":{"type":"string","enum":["IGNORECASE","MULTILINE","DOTALL"],"title":"RegexFlag"},"RegexRule":{"properties":{"kind":{"type":"string","const":"regex","title":"Kind","default":"regex"},"rule_id":{"type":"string","title":"Rule Id","description":"Stable rule ID supplied by the caller."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Optional human-readable label for the rule."},"pattern":{"type":"string","title":"Pattern","description":"Regular expression used to detect violations."},"flags":{"anyOf":[{"items":{"$ref":"#/components/schemas/RegexFlag"},"type":"array"},{"type":"null"}],"title":"Flags","description":"Optional regular expression flags."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional human-readable description of the rule."},"include_violation_details":{"type":"boolean","title":"Include Violation Details","description":"Whether the response should include matched_text and snippet for violations from this rule.","default":true}},"type":"object","required":["rule_id","pattern"],"title":"RegexRule"},"Registry":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the metadata registry. This is used to identify the registry in the request."},"library_id":{"type":"string","title":"Library Id","description":"The library ID that contains the metadata registry that should be used for metadata extraction."},"document_class_id":{"type":"string","title":"Document Class Id","description":"The document class ID that contains the metadata registry that should be used for metadata extraction."},"match_mode":{"$ref":"#/components/schemas/MatchMode","description":"Specifies whether all key fields must match (ALL) or if any single key field match is sufficient (ANY) to consider a registry entry as a potential match.","default":"ALL"},"field_mappings":{"items":{"$ref":"#/components/schemas/FieldMapping"},"type":"array","title":"Field Mappings","description":"Mapping between the extracted fields and the registry \nThere should be at least one key field in this mapping."}},"type":"object","required":["name","library_id","document_class_id","field_mappings"],"title":"Registry"},"RegistryMatch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the registry"},"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"The id of the document in the registry"},"key_matches":{"anyOf":[{"items":{"$ref":"#/components/schemas/KeyMatch"},"type":"array"},{"type":"null"}],"title":"Key Matches","description":"List of key matches between the extracted values and the registry values"},"multiple_matches":{"type":"boolean","title":"Multiple Matches","description":"Whether there are multiple registry entries that match the extracted values","default":false}},"type":"object","title":"RegistryMatch"},"ResponseDto":{"properties":{"response_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Id"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/FeedbackDto"},{"type":"null"}]},"sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/Reference"},"type":"array"},{"type":"null"}],"title":"Sources"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/LinkDto"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","required":["response_id","message","feedback","sources","links"],"title":"ResponseDto"},"SelectionStrategy":{"type":"string","enum":["most_similar_chunk","average_similarity"],"title":"SelectionStrategy"},"SimilarDocument":{"properties":{"library_id":{"type":"string","title":"Library Id","description":"The library ID of the similar document"},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the similar document"},"document_title":{"type":"string","title":"Document Title","description":"Title of the similar document"},"document_link":{"type":"string","title":"Document Link","description":"Link to the similar document"},"quoted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quoted Text","description":"Quoted text from the similar document"},"attachment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Id","description":"The attachment ID of the similar document"},"attachment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Name","description":"The attachment name of the similar document"},"attachment_mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Mime Type","description":"The attachment mime type of the similar document"},"attachment_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Link","description":"The attachment link of the similar document"},"location_info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Info","description":"Location of the quoted text on the similar document (optional)"},"location_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Type","description":"Type of the location of the quoted text on the similar document"},"similarity_score":{"type":"number","title":"Similarity Score","description":"The similarity score between 0 and 1."},"absolute_duplicate":{"type":"boolean","title":"Absolute Duplicate","description":"True if this document is an absolute duplicate (matched by attachment MD5 checksum). False for semantic-only matches.","default":false}},"type":"object","required":["library_id","document_id","document_title","document_link","similarity_score"],"title":"SimilarDocument"},"Skill":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The id of the skill"},"name":{"type":"string","title":"Name","description":"The name of the skill"},"type":{"$ref":"#/components/schemas/SkillType","description":"What kind of work this skill does. A 'datasource' skill answers from data it looks up, so its answers are checked against the tool results behind them and cite those results. An 'action' skill performs something in another system and its answer is not checked.","default":"action"},"classification":{"$ref":"#/components/schemas/SkillClassificationDTO","description":"Structured classification configuration for routing requests to this skill"},"prompt":{"type":"string","title":"Prompt","description":"System prompt used when this skill handles a request"},"mcp_servers":{"items":{"$ref":"#/components/schemas/McpServerConfigDTO"},"type":"array","title":"Mcp Servers","description":"MCP server connections for this skill's tools"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"The date when the skill was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date when the skill was last updated"}},"type":"object","required":["name","classification","prompt"],"title":"Skill"},"SkillClassificationDTO":{"properties":{"description":{"type":"string","title":"Description","description":"What this skill does (used in classifier prompt)"},"example_queries":{"items":{"type":"string"},"type":"array","maxItems":10,"minItems":1,"title":"Example Queries","description":"Example user messages that should route to this skill (3-5 recommended)"},"negative_examples":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":10},{"type":"null"}],"title":"Negative Examples","description":"Example user messages that should NOT route to this skill"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Keywords","description":"Trigger words/phrases for quick matching"}},"type":"object","required":["description","example_queries"],"title":"SkillClassificationDTO"},"SkillList":{"properties":{"skills":{"items":{"$ref":"#/components/schemas/Skill"},"type":"array","title":"Skills","description":"The list of skills"}},"type":"object","required":["skills"],"title":"SkillList"},"SkillType":{"type":"string","enum":["datasource","action"],"title":"SkillType","description":"What kind of work a skill does, which decides whether its answer is checked.\n\nA ``DATASOURCE`` skill answers questions from data it looks up, so its answer must\nname the tool results supporting it and is validated against them. An ``ACTION``\nskill performs something in another system and reports the outcome, so there is no\ndata to validate it against and checking it would only manufacture failures."},"SourceBoundingBoxRequest":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/SourceBoundingBoxSource"},"type":"array","maxItems":100,"minItems":1,"title":"Sources"}},"type":"object","required":["sources"],"title":"SourceBoundingBoxRequest"},"SourceBoundingBoxResponse":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/SourceBoundingBoxResult"},"type":"array","title":"Sources"}},"type":"object","required":["sources"],"title":"SourceBoundingBoxResponse"},"SourceBoundingBoxResult":{"properties":{"id":{"type":"string","title":"Id"},"status":{"$ref":"#/components/schemas/SourceBoundingBoxStatus"},"bounding_boxes":{"items":{"$ref":"#/components/schemas/BoundingBox"},"type":"array","title":"Bounding Boxes"}},"type":"object","required":["id","status"],"title":"SourceBoundingBoxResult"},"SourceBoundingBoxSource":{"properties":{"id":{"type":"string","maxLength":512,"title":"Id"},"document_id":{"type":"string","maxLength":512,"title":"Document Id"},"attachment_id":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Attachment Id"},"attachment_mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Mime Type"},"quoted_text":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Quoted Text"},"location_info":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Location Info"},"location_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Type"},"revision_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Revision Id"}},"type":"object","required":["id","document_id"],"title":"SourceBoundingBoxSource","description":"The citation fields needed to locate a quote without coupling to chat UI data."},"SourceBoundingBoxStatus":{"type":"string","enum":["matched","no_match","unsupported","source_not_found","incomplete","error"],"title":"SourceBoundingBoxStatus"},"SplitPlan":{"properties":{"source_document_id":{"type":"string","title":"Source Document Id","description":"The ID of the original document that was split."},"document_splits":{"items":{"$ref":"#/components/schemas/DocumentSplit"},"type":"array","title":"Document Splits","description":"The list of document splits created as a result of the split."},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id","description":"Job ID if split is in progress. Null when completed."},"status":{"$ref":"#/components/schemas/DocumentSplitStatus","description":"Job status: 'in_progress', 'completed', or 'failed'."},"total_pages":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Pages","description":"Total pages in the document."},"pages_processed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pages Processed","description":"Pages processed so far."},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Error message if job failed."}},"type":"object","required":["source_document_id","document_splits","status"],"title":"SplitPlan"},"SplitRequest":{"properties":{"llm_provider":{"anyOf":[{"$ref":"#/components/schemas/LlmProvider"},{"type":"null"}],"description":"The LLM provider to use. If not provided, the default provider will be used."},"llm_model_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model Prefix","description":"The prefix of the LLM model name to use. If not provided, the default model will be used.","examples":["gemini-2.5-pro","gemini-2.5-pro-preview-05-06","gpt-4.1"]},"document_id":{"type":"string","title":"Document Id","description":"The document ID of the files"},"document_classes":{"items":{"$ref":"#/components/schemas/TargetDocumentClass"},"type":"array","title":"Document Classes","description":"The document classes to split the document into."},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"Instruction to use when splitting the document."},"batch_size":{"type":"integer","exclusiveMinimum":0.0,"title":"Batch Size","description":"Number of pages to process per batch for large documents. Documents with fewer pages than this will be processed in a single batch.","default":50},"maximal_batch_overlap":{"type":"integer","minimum":0.0,"title":"Maximal Batch Overlap","description":"Number of pages to overlap between batches. This helps prevent splits from being cut off at batch boundaries.","default":10},"pubsub_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pubsub Topic","description":"If provided, a notifications will be sent to this Pub/Sub topic upon completion."}},"type":"object","required":["document_id","document_classes"],"title":"SplitRequest"},"StoredRuleRef":{"properties":{"kind":{"type":"string","const":"stored","title":"Kind","default":"stored"},"rule_id":{"type":"string","title":"Rule Id","description":"The stored rule ID to execute. Built-in rules use the reserved 'builtin.' prefix; all other IDs resolve to tenant-scoped custom rules."},"include_violation_details":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Violation Details","description":"Override whether matched_text and snippet are included for violations from this rule. If None, uses the stored rule's own setting (defaulting to True)."}},"type":"object","required":["rule_id"],"title":"StoredRuleRef"},"SyncChatRequest":{"properties":{"message":{"type":"string","title":"Message","description":"The message to be sent to the assistant"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"The id of the agent to scope this chat request"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message.<br>\n            If not provided a new conversation will be created."},"library_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Id","description":"Use library_ids field, answer the question in the context of the library","deprecated":true},"library_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Library Ids","description":"Answer the question in the context of these libraries"},"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"DEPRECATED: use document_ids field, answer the question in the context of the document","deprecated":true},"document_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Ids","description":"Answer the question in the context of these documents"},"view_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Id","description":"Answer the question in the context of the view"},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"These filters limit which documents are considered as sources during the answer generation."},"timezone":{"type":"integer","title":"Timezone","description":"Timezone of the user. If is not provided we use UTC timezone.<br> We use this information to accurately interpret time-related queries.<br> Format: offset from UTC, in minutes","default":0},"read_only":{"type":"boolean","title":"Read Only","description":"Disable tools that can modify documents for this request","default":false},"include_quotes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Quotes","description":"Include quotes that the answer is based on in the response","default":false}},"type":"object","required":["message"],"title":"SyncChatRequest"},"SyncChatRequestV2":{"properties":{"message":{"type":"string","title":"Message","description":"The message to be sent to the assistant"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"The id of the agent to scope this chat request"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The conversation ID of the chat message. If not provided, a new conversation will be created."},"library_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Library Ids","description":"Answer the question in the context of these libraries"},"document_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Ids","description":"Answer the question in the context of these documents"},"view_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Id","description":"Answer the question in the context of the view"},"timezone":{"type":"integer","title":"Timezone","description":"Timezone of the user. If not provided we use UTC timezone. Format: offset from UTC, in minutes (JavaScript getTimezoneOffset)","default":0},"read_only":{"type":"boolean","title":"Read Only","description":"Disable tools that can modify documents for this request","default":false},"include_quotes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Quotes","description":"Include quoted text in citations. Set to false to reduce response size.","default":false}},"type":"object","required":["message"],"title":"SyncChatRequestV2","description":"Synchronous chat request with option to exclude quoted text."},"TableRow":{"properties":{"columns":{"additionalProperties":{"$ref":"#/components/schemas/ExtendedExtractedMetadata"},"type":"object","title":"Columns","description":"Column values for this row, keyed by column name"}},"type":"object","required":["columns"],"title":"TableRow","description":"Represents a single row in a table field."},"TableSearchConfig":{"properties":{"dataset_id":{"type":"string","minLength":1,"title":"Dataset Id","description":"Tenant-scoped table-search dataset ID."},"input_columns":{"anyOf":[{"items":{"type":"string"},"type":"array","minItems":1},{"type":"null"}],"title":"Input Columns","description":"Dataset filter columns. Wrap a single STRING filter in a one-item list."},"output_columns":{"anyOf":[{"items":{"$ref":"#/components/schemas/TableSearchOutputColumn"},"type":"array","minItems":1},{"type":"null"}],"title":"Output Columns","description":"Dataset output columns. Wrap a single STRING output in a one-item list."}},"type":"object","required":["dataset_id"],"title":"TableSearchConfig"},"TableSearchOutputColumn":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Dataset output column. For TABLE fields this must exactly match the metadata table-column name."},"id_column":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Id Column","description":"Companion dataset output column containing the category or reference catalog value ID. It is not exposed as a separate extracted column."}},"type":"object","required":["name"],"title":"TableSearchOutputColumn"},"TargetDocumentClass":{"properties":{"name":{"type":"string","title":"Name","description":"The name to use for this document class in the LLM prompt. Must be unique across all target document classes."},"library_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library Id","description":"The ID of the library of the document class to split the document into. None for the implicit 'Uncategorized' document class."},"document_class_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class Id","description":"The ID of the document class to split the document into. None for the implicit 'Uncategorized' document class."},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"The instruction to use when splitting the document into this document class."}},"type":"object","required":["name","library_id","document_class_id"],"title":"TargetDocumentClass"},"TranslateDocumentRequest":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"The ID of the document to translate"},"target_language":{"type":"string","title":"Target Language","description":"The target language for translation (e.g. 'French', 'German', 'Spanish')"},"attachment_filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentFilter"},"type":"array"},{"type":"null"}],"title":"Attachment Filters","description":"The attachments to translate. If provided, only attachments matching one of the filters are translated. If not provided, all supported attachments will be translated."},"prompt_extension":{"type":"string","title":"Prompt Extension","description":"Optional additional instructions appended to the translation prompt","default":""},"pubsub_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pubsub Topic","description":"Fully-qualified Pub/Sub topic ('projects/<project>/topics/<topic>') to receive per-attachment completion/failure notifications. If omitted, no notifications are sent."}},"type":"object","required":["document_id","target_language"],"title":"TranslateDocumentRequest"},"TranslateDocumentResponse":{"properties":{"translations_started":{"items":{"$ref":"#/components/schemas/TranslationStartedAttachment"},"type":"array","title":"Translations Started","description":"List of attachments for which translation has been started"}},"type":"object","required":["translations_started"],"title":"TranslateDocumentResponse"},"TranslationStartedAttachment":{"properties":{"job_id":{"type":"string","title":"Job Id","description":"Per-attachment job ID; correlates this started translation with the Pub/Sub notification that will be sent on completion or final failure."},"attachment_id":{"type":"string","title":"Attachment Id","description":"The file ID of the attachment being translated"},"attachment_title":{"type":"string","title":"Attachment Title","description":"The title of the attachment being translated"}},"type":"object","required":["job_id","attachment_id","attachment_title"],"title":"TranslationStartedAttachment"},"UsageStatistics":{"properties":{"users":{"type":"integer","title":"Users","description":"The number of unique users using AIDA in this period"},"questions":{"type":"integer","title":"Questions","description":"The number of questions asked in this period"},"indexation_cost":{"type":"number","title":"Indexation Cost","description":"The cost of indexation in this period"},"question_cost":{"type":"number","title":"Question Cost","description":"The cost of answering questions in this period"}},"type":"object","required":["users","questions","indexation_cost","question_cost"],"title":"UsageStatistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationRuleKind":{"type":"string","enum":["regex","blacklist","llm"],"title":"ValidationRuleKind"},"ValidationViolation":{"properties":{"rule_id":{"type":"string","title":"Rule Id","description":"The rule ID that produced the violation."},"rule_kind":{"$ref":"#/components/schemas/ValidationRuleKind","description":"The executable rule kind that produced the violation."},"attachment_id":{"type":"string","title":"Attachment Id","description":"The attachment ID where the match was found."},"attachment_name":{"type":"string","title":"Attachment Name","description":"The attachment name where the match was found."},"matched_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Text","description":"The exact text span that matched, when available."},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snippet","description":"Short surrounding context for the matched text, when available."},"explanation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation","description":"Optional explanation for why the violation was flagged."}},"type":"object","required":["rule_id","rule_kind","attachment_id","attachment_name"],"title":"ValidationViolation"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}