{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v1/keys":{"post":{"tags":["v1"],"summary":"Create Api Key Endpoint","description":"Generates a new API Key for the authenticated user.\nThe generated key will be returned in the 'key' field. Store it securely, as it won't be shown again.","operationId":"create_api_key_endpoint_api_v1_keys_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}},{"name":"expires_in_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Days"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["v1"],"summary":"Get User Api Keys Endpoint","description":"Retrieves all API Keys (active and inactive) associated with the authenticated user.","operationId":"get_user_api_keys_endpoint_api_v1_keys_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"},"title":"Response Get User Api Keys Endpoint Api V1 Keys Get"}}}}}}},"/api/v1/alias":{"get":{"tags":["v1"],"summary":"Get User Alias Endpoint","description":"Retrieves all alias associated with the authenticated user.","operationId":"get_user_alias_endpoint_api_v1_alias_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Alias Endpoint Api V1 Alias Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/regions":{"get":{"tags":["v1"],"summary":"Get User Regions Keys Endpoint","description":"Retrieves all regions associated with the authenticated user.","operationId":"get_user_regions_keys_endpoint_api_v1_regions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Regions Keys Endpoint Api V1 Regions Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/keys/{key_value}":{"delete":{"tags":["v1"],"summary":"Revoke Api Key Endpoint","description":"Revokes a specific API Key (marks it as inactive).","operationId":"revoke_api_key_endpoint_api_v1_keys__key_value__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"key_value","in":"path","required":true,"schema":{"type":"string","title":"Key Value"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search":{"post":{"tags":["v1"],"summary":"Perform Search","description":"Recibe una búsqueda, guarda el request en MongoDB como \"pending\"\ny dependiendo de async_mode la procesa en el momento o la encola en Redis.","operationId":"perform_search_api_v1_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OneShotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/feedback":{"post":{"tags":["v1"],"summary":"Submit Feedback","description":"Submits user feedback on a search query and its response.\nRequires authentication (JWT or API Key).","operationId":"submit_feedback_api_v1_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feedback"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/reports/download_csv":{"post":{"tags":["v1"],"summary":"Download Report Csv","description":"Genera un reporte CSV incluyendo todos los metadatos posibles\nencontrados en los registros (campo 'metadata').","operationId":"download_report_csv_api_v1_reports_download_csv_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/webhook":{"post":{"tags":["v1"],"summary":"Webhook","operationId":"webhook_api_v1_webhook_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/expert_feedback":{"post":{"tags":["v1"],"summary":"Submit Expert Feedback","description":"Submits an expert tip for RAG knowledge.","operationId":"submit_expert_feedback_api_v1_expert_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpertTipCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/settings/change-password":{"post":{"tags":["v1"],"summary":"Change Password","description":"Allows a logged-in user to change their password.","operationId":"change_password_api_settings_change_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/settings":{"get":{"tags":["v1"],"summary":"Get Settings","description":"Retrieves the current settings for the logged-in user.","operationId":"get_settings_api_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSettingsUpdate"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["v1"],"summary":"Update Settings","description":"Updates the settings for the logged-in user.","operationId":"update_settings_api_settings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/settings/tour-flags":{"get":{"tags":["v1"],"summary":"Get Tour Flags","description":"Devuelve los módulos cuyo recorrido guiado ya se vio/salteó (por tenant).","operationId":"get_tour_flags_api_settings_tour_flags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["v1"],"summary":"Mark Tour Seen","description":"Marca el recorrido de un módulo como visto/salteado (idempotente, por tenant).","operationId":"mark_tour_seen_api_settings_tour_flags_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TourSeenUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/integrations/google-drive/toggle":{"post":{"tags":["v1"],"summary":"Toggle Google Drive","description":"Toggles the Google Drive integration status for the logged-in user.\nThis is a placeholder; real integration would involve OAuth2.","operationId":"toggle_google_drive_api_integrations_google_drive_toggle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/settings/widget/avatar":{"post":{"tags":["v1"],"summary":"Upload Widget Avatar","description":"Uploads an avatar image for the widget and returns its public URL.","operationId":"upload_widget_avatar_api_v1_settings_widget_avatar_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_widget_avatar_api_v1_settings_widget_avatar_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/settings/alias-versions":{"get":{"tags":["v1"],"summary":"List Alias Versions","description":"Lista el histórico de cambios de configuración de alias.","operationId":"list_alias_versions_api_settings_alias_versions_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/settings/alias-versions/{version_id}/restore":{"post":{"tags":["v1"],"summary":"Restore Alias Version","description":"Restaura la configuración de un alias a una versión anterior.","operationId":"restore_alias_version_api_settings_alias_versions__version_id__restore_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subusers":{"post":{"tags":["v1"],"summary":"Create Subuser","operationId":"create_subuser_api_v1_subusers_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubUserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["v1"],"summary":"List Subusers","operationId":"list_subusers_api_v1_subusers_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subusers/{subuser_id}":{"put":{"tags":["v1"],"summary":"Update Subuser","operationId":"update_subuser_api_v1_subusers__subuser_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"subuser_id","in":"path","required":true,"schema":{"type":"string","title":"Subuser Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubUserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["v1"],"summary":"Delete Subuser","operationId":"delete_subuser_api_v1_subusers__subuser_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"subuser_id","in":"path","required":true,"schema":{"type":"string","title":"Subuser Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subusers/catalog":{"get":{"tags":["v1"],"summary":"Subusers Catalog","description":"Catálogo (módulos + canales) para parametrizar permisos de subusuarios.","operationId":"subusers_catalog_api_v1_subusers_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/subusers/{user_id}/reset-password":{"post":{"tags":["v1"],"summary":"Reset Subuser Password","description":"Resetea la contraseña de un subusuario.\nSolo permitido si current_user tiene permisos (ej: admin).","operationId":"reset_subuser_password_api_v1_subusers__user_id__reset_password_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history":{"get":{"tags":["v1"],"summary":"List Histories","operationId":"list_histories_api_v1_history_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"default":10,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Texto a buscar en query o metadata","title":"Search"},"description":"Texto a buscar en query o metadata"},{"name":"alias_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por alias (id o nombre)","title":"Alias Filter"},"description":"Filtrar por alias (id o nombre)"},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por estado","title":"Status Filter"},"description":"Filtrar por estado"},{"name":"external_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filtrar por búsqueda externa","title":"External Filter"},"description":"Filtrar por búsqueda externa"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ordenar por: date | query","default":"date","title":"Sort By"},"description":"Ordenar por: date | query"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Dirección: asc | desc","default":"desc","title":"Sort Order"},"description":"Dirección: asc | desc"},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fecha desde (YYYY-MM-DD)","title":"From Date"},"description":"Fecha desde (YYYY-MM-DD)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fecha hasta (YYYY-MM-DD)","title":"To Date"},"description":"Fecha hasta (YYYY-MM-DD)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dashboard":{"get":{"tags":["v1"],"summary":"Get Dashboard Metrics","description":"Devuelve métricas agregadas para el dashboard,\nincluyendo globales, por usuario (con nombres) y por día del mes.\nIncluye métricas de 'consultas con búsqueda externa'.","operationId":"get_dashboard_metrics_api_v1_dashboard_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":2000,"description":"Año para filtrar","title":"Year"},"description":"Año para filtrar"},{"name":"month","in":"query","required":true,"schema":{"type":"integer","maximum":12,"minimum":1,"description":"Mes para filtrar","title":"Month"},"description":"Mes para filtrar"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dashboard/chats":{"get":{"tags":["v1"],"summary":"Get Chats Dashboard Metrics","operationId":"get_chats_dashboard_metrics_api_v1_dashboard_chats_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de inicio (YYYY-MM-DD)","title":"Start Date"},"description":"Fecha de inicio (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de fin (YYYY-MM-DD)","title":"End Date"},"description":"Fecha de fin (YYYY-MM-DD)"},{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id de Alias para filtrar","title":"Alias Id"},"description":"Id de Alias para filtrar"},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canal para filtrar","title":"Channel"},"description":"Canal para filtrar"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dashboard/chats/export/csv":{"get":{"tags":["v1"],"summary":"Export Chats Dashboard Csv","operationId":"export_chats_dashboard_csv_api_v1_dashboard_chats_export_csv_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de inicio (YYYY-MM-DD)","title":"Start Date"},"description":"Fecha de inicio (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de fin (YYYY-MM-DD)","title":"End Date"},"description":"Fecha de fin (YYYY-MM-DD)"},{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id de Alias para filtrar","title":"Alias Id"},"description":"Id de Alias para filtrar"},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canal para filtrar","title":"Channel"},"description":"Canal para filtrar"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dashboard/chats/export/pdf":{"get":{"tags":["v1"],"summary":"Export Chats Dashboard Pdf","operationId":"export_chats_dashboard_pdf_api_v1_dashboard_chats_export_pdf_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de inicio (YYYY-MM-DD)","title":"Start Date"},"description":"Fecha de inicio (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Fecha de fin (YYYY-MM-DD)","title":"End Date"},"description":"Fecha de fin (YYYY-MM-DD)"},{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id de Alias para filtrar","title":"Alias Id"},"description":"Id de Alias para filtrar"},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canal para filtrar","title":"Channel"},"description":"Canal para filtrar"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/oauth/url":{"get":{"tags":["v1","drive"],"summary":"Get Oauth Url","operationId":"get_oauth_url_api_v1_drive_oauth_url_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/oauth/callback":{"get":{"tags":["v1","drive"],"summary":"Oauth Callback","operationId":"oauth_callback_api_v1_drive_oauth_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/folders":{"get":{"tags":["v1","drive"],"summary":"List Drive Folders","operationId":"list_drive_folders_api_v1_drive_folders_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"root","title":"Parent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/folders/select":{"post":{"tags":["v1","drive"],"summary":"Select Folder","operationId":"select_folder_api_v1_drive_folders_select_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveSyncRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/sync/trigger":{"post":{"tags":["v1","drive"],"summary":"Trigger Sync","description":"Manually trigger a Drive folder synchronization (Full Scan).\nCan target a specific subfolder if sync_request is provided.","operationId":"trigger_sync_api_v1_drive_sync_trigger_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DriveSyncRequest"},{"type":"null"}],"title":"Sync Request"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/sync/pending":{"post":{"tags":["v1","drive"],"summary":"Trigger Process Pending","description":"Trigger processing of pending files ONLY (No scan).","operationId":"trigger_process_pending_api_v1_drive_sync_pending_post","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/sync/stop":{"post":{"tags":["v1","drive"],"summary":"Stop Sync","description":"Manually stop the Drive synchronization.","operationId":"stop_sync_api_v1_drive_sync_stop_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/disconnect":{"delete":{"tags":["v1","drive"],"summary":"Disconnect Drive","operationId":"disconnect_drive_api_v1_drive_disconnect_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/status":{"get":{"tags":["v1","drive"],"summary":"Get Drive Status","operationId":"get_drive_status_api_v1_drive_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/files":{"get":{"tags":["v1","drive"],"summary":"List Synced Files","description":"List files synchronized from Drive (stored in MongoDB).","operationId":"list_synced_files_api_v1_drive_files_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/stats":{"get":{"tags":["v1","drive"],"summary":"Get Drive Stats Proxy","description":"Get global usage statistics for the user's Drive.","operationId":"get_drive_stats_proxy_api_v1_drive_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/drive/search":{"get":{"tags":["v1","drive"],"summary":"Search Drive Files Proxy","description":"Search files globally across all folders.","operationId":"search_drive_files_proxy_api_v1_drive_search_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/{file_id}/chunks":{"get":{"tags":["v1","files"],"summary":"Get File Chunks","description":"Get all chunks for a specific document.","operationId":"get_file_chunks_api_v1_files__file_id__chunks_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"path","in":"query","required":false,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/{file_id}/graph":{"get":{"tags":["v1","files"],"summary":"Get File Graph","description":"Get graph representation for a specific document.","operationId":"get_file_graph_api_v1_files__file_id__graph_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"path","in":"query","required":false,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/clean-all":{"delete":{"tags":["v1","files"],"summary":"Clean All Client Data","description":"NUCLEAR OPTION: Deletes ALL data (Neo4j, Qdrant, MongoDB) for a client.\nCan be used by admins to completely wipe a client's files data.","operationId":"clean_all_client_data_api_v1_files_clean_all_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/files/tree":{"get":{"tags":["v1","files"],"summary":"Get Files Tree","description":"Get hierarchical file tree from Neo4j documents.","operationId":"get_files_tree_api_v1_files_tree_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/files/search":{"get":{"tags":["v1","files"],"summary":"Search Files","description":"Search files and folders by name/path for lazy-loading pickers.\nReturns a flat list of matching items (folders and files).","operationId":"search_files_api_v1_files_search_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/{documento_id}/content":{"get":{"tags":["v1","files"],"summary":"Get File Content","description":"Get full file content by concatenating its chunks.","operationId":"get_file_content_api_v1_files__documento_id__content_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"documento_id","in":"path","required":true,"schema":{"type":"string","title":"Documento Id"}},{"name":"path","in":"query","required":false,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webchunks/content":{"get":{"tags":["v1","files"],"summary":"Get Webchunks Content","description":"Devuelve TODOS los chunks indexados en ``webchunk_embeddings`` para una URL\nexterna, para que el visor de fuentes pueda mostrar el contenido completo de\nla URL (y el frontend marque cuáles se usaron en la respuesta y cuáles no).","operationId":"get_webchunks_content_api_v1_webchunks_content_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/reindex/{file_id}":{"post":{"tags":["v1","files"],"summary":"Reindex File","description":"Mark a specific file for reindexing.\nSets its status to 'pending' in MongoDB and triggers processing immediately.","operationId":"reindex_file_api_v1_files_reindex__file_id__post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graph/initial":{"get":{"tags":["v1","graph"],"summary":"Get Graph Initial Proxy","operationId":"get_graph_initial_proxy_api_v1_graph_initial_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/graph/expand":{"get":{"tags":["v1","graph"],"summary":"Expand Graph Node Proxy","operationId":"expand_graph_node_proxy_api_v1_graph_expand_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"node_type","in":"query","required":true,"schema":{"type":"string","title":"Node Type"}},{"name":"node_id","in":"query","required":true,"schema":{"type":"string","title":"Node Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webs/analyze":{"post":{"tags":["webs"],"summary":"Proxy Analyze Website","description":"Proxy for analyzing a website.","operationId":"proxy_analyze_website_api_webs_analyze_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/webs":{"get":{"tags":["webs"],"summary":"Proxy List Websites","operationId":"proxy_list_websites_api_webs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["webs"],"summary":"Proxy Create Website","operationId":"proxy_create_website_api_webs_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/webs/{site_id}":{"delete":{"tags":["webs"],"summary":"Proxy Delete Website","operationId":"proxy_delete_website_api_webs__site_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webs/{site_id}/process":{"post":{"tags":["webs"],"summary":"Proxy Process Website","operationId":"proxy_process_website_api_webs__site_id__process_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webs/{site_id}/cancel":{"post":{"tags":["webs"],"summary":"Proxy Cancel Scraping","operationId":"proxy_cancel_scraping_api_webs__site_id__cancel_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webs/{site_id}/chunks":{"get":{"tags":["webs"],"summary":"Proxy Get Website Chunks","operationId":"proxy_get_website_chunks_api_webs__site_id__chunks_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webs/{site_id}/pages":{"get":{"tags":["webs"],"summary":"Proxy List Pages","operationId":"proxy_list_pages_api_webs__site_id__pages_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks":{"get":{"tags":["webhooks"],"summary":"List Webhooks","description":"Return all non-deleted webhook configs for the authenticated user.","operationId":"list_webhooks_api_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["webhooks"],"summary":"Create Webhook","description":"Register a new third-party webhook URL.","operationId":"create_webhook_api_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookConfigCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/webhooks/{webhook_id}":{"put":{"tags":["webhooks"],"summary":"Update Webhook","description":"Update url, name, or active status of a webhook config.","operationId":"update_webhook_api_v1_webhooks__webhook_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookConfigCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["webhooks"],"summary":"Delete Webhook","description":"Logically delete a webhook config (is_deleted=True). History is preserved.","operationId":"delete_webhook_api_v1_webhooks__webhook_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{webhook_id}/test":{"post":{"tags":["webhooks"],"summary":"Test Webhook","description":"Send a sample payload to the webhook URL and log the result.","operationId":"test_webhook_api_v1_webhooks__webhook_id__test_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/deliveries":{"get":{"tags":["webhooks"],"summary":"List Deliveries","description":"Paginated delivery history with optional filters.","operationId":"list_deliveries_api_v1_webhooks_deliveries_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"webhook_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date YYYY-MM-DD","title":"Date From"},"description":"ISO date YYYY-MM-DD"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date YYYY-MM-DD","title":"Date To"},"description":"ISO date YYYY-MM-DD"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/deliveries/export":{"get":{"tags":["webhooks"],"summary":"Export Deliveries","description":"Download delivery history as CSV or JSON.","operationId":"export_deliveries_api_v1_webhooks_deliveries_export_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"fmt","in":"query","required":false,"schema":{"type":"string","pattern":"^(csv|json)$","default":"csv","title":"Fmt"}},{"name":"webhook_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/omnichannel/meta/webhook/{tenant_id}":{"get":{"tags":["omnichannel"],"summary":"Verify Meta Webhook","description":"Endpoint de validación requerido por Meta. Validamos que el tenant exista\ny que el token (sha256 del user_id) coincida.","operationId":"verify_meta_webhook_api_v1_omnichannel_meta_webhook__tenant_id__get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"hub.mode","in":"query","required":false,"schema":{"type":"string","title":"Hub.Mode"}},{"name":"hub.challenge","in":"query","required":false,"schema":{"type":"string","title":"Hub.Challenge"}},{"name":"hub.verify_token","in":"query","required":false,"schema":{"type":"string","title":"Hub.Verify Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["omnichannel"],"summary":"Receive Meta Webhook","description":"Endpoint único para recibir eventos de WhatsApp, Messenger e Instagram.","operationId":"receive_meta_webhook_api_v1_omnichannel_meta_webhook__tenant_id__post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/templates":{"get":{"tags":["campaigns"],"summary":"List Templates","description":"Lista las plantillas disponibles desde WhatsApp iterando sobre los alias configurados.","operationId":"list_templates_api_v1_marketing_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/marketing/campaigns":{"get":{"tags":["campaigns"],"summary":"List Campaigns","operationId":"list_campaigns_api_v1_marketing_campaigns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["campaigns"],"summary":"Create Campaign","operationId":"create_campaign_api_v1_marketing_campaigns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/marketing/campaigns/{campaign_id}":{"get":{"tags":["campaigns"],"summary":"Get Campaign Details","operationId":"get_campaign_details_api_v1_marketing_campaigns__campaign_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/campaigns/{campaign_id}/retry":{"post":{"tags":["campaigns"],"summary":"Retry Campaign","operationId":"retry_campaign_api_v1_marketing_campaigns__campaign_id__retry_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/campaigns/{campaign_id}/pause":{"post":{"tags":["campaigns"],"summary":"Pause Campaign","operationId":"pause_campaign_api_v1_marketing_campaigns__campaign_id__pause_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/campaigns/{campaign_id}/resume":{"post":{"tags":["campaigns"],"summary":"Resume Campaign","operationId":"resume_campaign_api_v1_marketing_campaigns__campaign_id__resume_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/campaigns/{campaign_id}/cancel":{"post":{"tags":["campaigns"],"summary":"Cancel Campaign","operationId":"cancel_campaign_api_v1_marketing_campaigns__campaign_id__cancel_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/contacts":{"get":{"tags":["campaigns"],"summary":"Get Contacts","operationId":"get_contacts_api_v1_marketing_contacts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/marketing/contacts/upload":{"post":{"tags":["campaigns"],"summary":"Upload Contacts","operationId":"upload_contacts_api_v1_marketing_contacts_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_contacts_api_v1_marketing_contacts_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/marketing/contacts/{contact_id}":{"put":{"tags":["campaigns"],"summary":"Update Contact","operationId":"update_contact_api_v1_marketing_contacts__contact_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/chats":{"get":{"tags":["admin"],"summary":"List Recent Chats","operationId":"list_recent_chats_api_v1_admin_chats_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/chats/{thread_id}":{"get":{"tags":["admin"],"summary":"Get Admin Chat Detail","operationId":"get_admin_chat_detail_api_v1_admin_chats__thread_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/settings/billing":{"get":{"tags":["admin"],"summary":"Get Billing Settings","operationId":"get_billing_settings_api_v1_admin_settings_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"put":{"tags":["admin"],"summary":"Update Billing Settings","operationId":"update_billing_settings_api_v1_admin_settings_billing_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/settings/company-costs":{"get":{"tags":["admin"],"summary":"Get Company Costs","operationId":"get_company_costs_api_v1_admin_settings_company_costs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"put":{"tags":["admin"],"summary":"Update Company Costs","operationId":"update_company_costs_api_v1_admin_settings_company_costs_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/settings/feature-flags":{"get":{"tags":["admin"],"summary":"Get Feature Flags","operationId":"get_feature_flags_api_v1_admin_settings_feature_flags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"put":{"tags":["admin"],"summary":"Update Feature Flags","operationId":"update_feature_flags_api_v1_admin_settings_feature_flags_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/settings/external-search-config":{"get":{"tags":["admin"],"summary":"Get External Search Config","operationId":"get_external_search_config_api_v1_admin_settings_external_search_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"put":{"tags":["admin"],"summary":"Update External Search Config","operationId":"update_external_search_config_api_v1_admin_settings_external_search_config_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/users/{user_id}/stats":{"get":{"tags":["admin"],"summary":"Get User Stats","operationId":"get_user_stats_api_v1_admin_users__user_id__stats_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/finances":{"get":{"tags":["admin"],"summary":"Get User Finances","operationId":"get_user_finances_api_v1_admin_users__user_id__finances_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"month","in":"query","required":true,"schema":{"type":"integer","maximum":12,"minimum":1,"title":"Month"}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","minimum":2020,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/requests_list":{"get":{"tags":["admin"],"summary":"List User Requests","operationId":"list_user_requests_api_v1_admin_users__user_id__requests_list_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":20,"title":"Limit"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"recent (default) | expensive | margin","title":"Sort"},"description":"recent (default) | expensive | margin"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/brain-consultations":{"get":{"tags":["admin"],"summary":"List Brain Consultations","description":"Lista las consultas al tester de Corpus con su costo real (LLM).","operationId":"list_brain_consultations_api_v1_admin_brain_consultations_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":20,"title":"Limit"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/requests/{request_uuid}":{"get":{"tags":["admin"],"summary":"Get Request Raw Detail","operationId":"get_request_raw_detail_api_v1_admin_requests__request_uuid__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/impersonate":{"post":{"tags":["admin"],"summary":"Impersonate User","description":"Impersona a un usuario primario: genera su token y lo deja en la cookie.","operationId":"impersonate_user_api_v1_admin_users__user_id__impersonate_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/impersonation-logs":{"get":{"tags":["admin"],"summary":"List Impersonation Logs","description":"Últimos impersonates (auditoría).","operationId":"list_impersonation_logs_api_v1_admin_impersonation_logs_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/collections":{"get":{"tags":["admin"],"summary":"Get User Collections","description":"Cobranzas de un cliente: resumen (al día / pendiente / moroso) + listado.","operationId":"get_user_collections_api_v1_admin_users__user_id__collections_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users":{"get":{"tags":["admin"],"summary":"List Primary Users","operationId":"list_primary_users_api_v1_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Primary Users Api V1 Admin Users Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["admin"],"summary":"Create Primary User","operationId":"create_primary_user_api_v1_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"User Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/users/{user_id}":{"put":{"tags":["admin"],"summary":"Update User","operationId":"update_user_api_v1_admin_users__user_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Update Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin"],"summary":"Delete User","operationId":"delete_user_api_v1_admin_users__user_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/aliases/{alias_id}":{"put":{"tags":["admin"],"summary":"Update User Alias","description":"Update specific alias settings (e.g. commands) for a user.","operationId":"update_user_alias_api_v1_admin_users__user_id__aliases__alias_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"alias_id","in":"path","required":true,"schema":{"type":"string","title":"Alias Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/requests/{request_uuid}/retry":{"post":{"tags":["admin"],"summary":"Retry Request","description":"Permite a un admin reintentar una consulta, opcionalmente modificando el prompt.","operationId":"retry_request_api_v1_admin_requests__request_uuid__retry_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/qdrant/collections":{"get":{"tags":["admin"],"summary":"Get Qdrant Collections","operationId":"get_qdrant_collections_api_v1_admin_qdrant_collections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/qdrant/collection/{collection_name}":{"get":{"tags":["admin"],"summary":"Get Qdrant Collection","operationId":"get_qdrant_collection_api_v1_admin_qdrant_collection__collection_name__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"collection_name","in":"path","required":true,"schema":{"type":"string","title":"Collection Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/qdrant/search":{"post":{"tags":["admin"],"summary":"Qdrant Search","operationId":"qdrant_search_api_v1_admin_qdrant_search_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/qdrant/scroll":{"post":{"tags":["admin"],"summary":"Qdrant Scroll","operationId":"qdrant_scroll_api_v1_admin_qdrant_scroll_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/qdrant/points/{collection_name}/{point_id}":{"get":{"tags":["admin"],"summary":"Qdrant Get Point","operationId":"qdrant_get_point_api_v1_admin_qdrant_points__collection_name___point_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"collection_name","in":"path","required":true,"schema":{"type":"string","title":"Collection Name"}},{"name":"point_id","in":"path","required":true,"schema":{"type":"string","title":"Point Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/qdrant/delete":{"post":{"tags":["admin"],"summary":"Qdrant Delete","operationId":"qdrant_delete_api_v1_admin_qdrant_delete_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/qdrant/snapshots/{collection_name}":{"get":{"tags":["admin"],"summary":"List Qdrant Snapshots","operationId":"list_qdrant_snapshots_api_v1_admin_qdrant_snapshots__collection_name__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"collection_name","in":"path","required":true,"schema":{"type":"string","title":"Collection Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin"],"summary":"Create Qdrant Snapshot","operationId":"create_qdrant_snapshot_api_v1_admin_qdrant_snapshots__collection_name__post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"collection_name","in":"path","required":true,"schema":{"type":"string","title":"Collection Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/qdrant/snapshots/{collection_name}/download/{snapshot_name}":{"get":{"tags":["admin"],"summary":"Download Qdrant Snapshot","operationId":"download_qdrant_snapshot_api_v1_admin_qdrant_snapshots__collection_name__download__snapshot_name__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"collection_name","in":"path","required":true,"schema":{"type":"string","title":"Collection Name"}},{"name":"snapshot_name","in":"path","required":true,"schema":{"type":"string","title":"Snapshot Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/prompts":{"get":{"tags":["admin"],"summary":"Admin List Prompts","operationId":"admin_list_prompts_api_v1_admin_prompts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/prompts/{prompt_id}":{"put":{"tags":["admin"],"summary":"Admin Upsert Prompt","operationId":"admin_upsert_prompt_api_v1_admin_prompts__prompt_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/model-registry":{"get":{"tags":["admin"],"summary":"Admin Get Model Registry","operationId":"admin_get_model_registry_api_v1_admin_model_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"put":{"tags":["admin"],"summary":"Admin Put Model Registry","operationId":"admin_put_model_registry_api_v1_admin_model_registry_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/model-pricing/sync":{"post":{"tags":["admin"],"summary":"Admin Sync Model Pricing","operationId":"admin_sync_model_pricing_api_v1_admin_model_pricing_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/metrics":{"get":{"tags":["admin"],"summary":"Admin Get Metrics","operationId":"admin_get_metrics_api_v1_admin_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/tickets-collaborators":{"get":{"tags":["tickets"],"summary":"Get Tickets Collaborators","operationId":"get_tickets_collaborators_api_v1_tickets_collaborators_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/tickets/{ticket_id}/generate_summary":{"get":{"tags":["tickets"],"summary":"Generate Ticket Summary","operationId":"generate_ticket_summary_api_v1_tickets__ticket_id__generate_summary_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/diagnose":{"post":{"tags":["tickets"],"summary":"Rediagnose Ticket","operationId":"rediagnose_ticket_api_v1_tickets__ticket_id__diagnose_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/close":{"post":{"tags":["tickets"],"summary":"Close Ticket With Summary","operationId":"close_ticket_with_summary_api_v1_tickets__ticket_id__close_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}":{"delete":{"tags":["tickets"],"summary":"Delete Ticket","operationId":"delete_ticket_api_v1_tickets__ticket_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tickets"],"summary":"Get Ticket","operationId":"get_ticket_api_v1_tickets__ticket_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/upload":{"post":{"tags":["tickets"],"summary":"Upload Ticket Image","operationId":"upload_ticket_image_api_v1_tickets_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_ticket_image_api_v1_tickets_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/tickets":{"get":{"tags":["tickets"],"summary":"List Tickets","operationId":"list_tickets_api_v1_tickets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["tickets"],"summary":"Create Ticket","operationId":"create_ticket_api_v1_tickets_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/tickets/{ticket_id}/reexecute":{"post":{"tags":["tickets"],"summary":"Reexecute Ticket Query","operationId":"reexecute_ticket_query_api_v1_tickets__ticket_id__reexecute_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReexecutePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/tracking/{request_id}":{"get":{"tags":["tickets"],"summary":"Get Ticket Tracking","operationId":"get_ticket_tracking_api_v1_tickets_tracking__request_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/comments":{"post":{"tags":["tickets"],"summary":"Add Comment","operationId":"add_comment_api_v1_tickets__ticket_id__comments_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/status":{"put":{"tags":["tickets"],"summary":"Update Ticket Status","operationId":"update_ticket_status_api_v1_tickets__ticket_id__status_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/classification":{"put":{"tags":["tickets"],"summary":"Update Ticket Classification","operationId":"update_ticket_classification_api_v1_tickets__ticket_id__classification_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickets/{ticket_id}/collaborators":{"put":{"tags":["tickets"],"summary":"Update Ticket Collaborators","operationId":"update_ticket_collaborators_api_v1_tickets__ticket_id__collaborators_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/sets":{"get":{"tags":["test_sets"],"summary":"Get Test Sets","operationId":"get_test_sets_api_v1_test_sets_sets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TestSet"},"type":"array","title":"Response Get Test Sets Api V1 Test Sets Sets Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["test_sets"],"summary":"Create Test Set","operationId":"create_test_set_api_v1_test_sets_sets_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestSet"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/test_sets/sets/{set_id}":{"patch":{"tags":["test_sets"],"summary":"Update Test Set","operationId":"update_test_set_api_v1_test_sets_sets__set_id__patch","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestSet"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["test_sets"],"summary":"Delete Test Set","operationId":"delete_test_set_api_v1_test_sets_sets__set_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/seed":{"post":{"tags":["test_sets"],"summary":"Seed Test Set","description":"Crea un Test Set sembrando N casos históricos aleatorios por alias.\n\nBody esperado:\n    {\n        \"name\": str,\n        \"description\": str,\n        \"aliases\": [{\"alias_id\": str, \"n\": int}, ...],\n        \"date_from\": \"YYYY-MM-DD\" | ISO,\n        \"date_to\": \"YYYY-MM-DD\" | ISO\n    }","operationId":"seed_test_set_api_v1_test_sets_seed_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/test_sets/sets/{set_id}/cases":{"get":{"tags":["test_sets"],"summary":"Get Test Cases","operationId":"get_test_cases_api_v1_test_sets_sets__set_id__cases_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TestCase"},"title":"Response Get Test Cases Api V1 Test Sets Sets  Set Id  Cases Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["test_sets"],"summary":"Create Test Case","operationId":"create_test_case_api_v1_test_sets_sets__set_id__cases_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCase"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/cases/{case_id}":{"patch":{"tags":["test_sets"],"summary":"Update Test Case","operationId":"update_test_case_api_v1_test_sets_cases__case_id__patch","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCase"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["test_sets"],"summary":"Delete Test Case","operationId":"delete_test_case_api_v1_test_sets_cases__case_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/sets/{set_id}/executions":{"get":{"tags":["test_sets"],"summary":"Get Test Executions","operationId":"get_test_executions_api_v1_test_sets_sets__set_id__executions_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Test Executions Api V1 Test Sets Sets  Set Id  Executions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/executions/{execution_id}/results":{"get":{"tags":["test_sets"],"summary":"Get Execution Results","operationId":"get_execution_results_api_v1_test_sets_executions__execution_id__results_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TestCaseResult"},"title":"Response Get Execution Results Api V1 Test Sets Executions  Execution Id  Results Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/results/{result_id}":{"patch":{"tags":["test_sets"],"summary":"Update Result Manual Score","description":"Corrige manualmente el score asignado por el juez a un resultado.\n\nBody:\n    {\"manual_score\": 0.85, \"manual_note\": \"...\"} para pisar el score (0-1),\n    o {\"manual_score\": null} para quitar el override y volver al score del juez.","operationId":"update_result_manual_score_api_v1_test_sets_results__result_id__patch","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","title":"Result Id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/results/{result_id}/rerun":{"post":{"tags":["test_sets"],"summary":"Rerun Single Result","description":"Re-ejecuta un único caso (su resultado) sin recalcular el resto del set.","operationId":"rerun_single_result_api_v1_test_sets_results__result_id__rerun_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","title":"Result Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/sets/{set_id}/dashboard":{"get":{"tags":["test_sets"],"summary":"Get Set Dashboard","description":"Agrega KPIs, tendencia y resultados por caso (con delta vs la ejecución previa).","operationId":"get_set_dashboard_api_v1_test_sets_sets__set_id__dashboard_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/sets/{set_id}/compare":{"get":{"tags":["test_sets"],"summary":"Compare Executions","description":"Compara dos ejecuciones por caso (score y delta).","operationId":"compare_executions_api_v1_test_sets_sets__set_id__compare_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"exec_a","in":"query","required":true,"schema":{"type":"string","title":"Exec A"}},{"name":"exec_b","in":"query","required":true,"schema":{"type":"string","title":"Exec B"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/analysis/{execution_id}/feedback":{"post":{"tags":["test_sets"],"summary":"Feedback Analysis","description":"Registra el feedback (aceptar/rechazar) sobre una sugerencia del análisis IA.","operationId":"feedback_analysis_api_v1_test_sets_analysis__execution_id__feedback_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/sets/{set_id}/execute":{"post":{"tags":["test_sets"],"summary":"Execute Test Set","operationId":"execute_test_set_api_v1_test_sets_sets__set_id__execute_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestExecution"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test_sets/executions/{execution_id}/report":{"get":{"tags":["test_sets"],"summary":"Get Execution Report","operationId":"get_execution_report_api_v1_test_sets_executions__execution_id__report_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wise/webhook/{client_id}":{"post":{"tags":["wise"],"summary":"Wise Webhook","description":"Inbound webhook for Wise.\nReceives any payload and returns 200 OK.","operationId":"wise_webhook_api_v1_wise_webhook__client_id__post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wise/transactions":{"get":{"tags":["wise"],"summary":"Get Wise Transactions","description":"Recupera el historial de transacciones de Wise CX para el cliente logueado.","operationId":"get_wise_transactions_api_v1_wise_transactions_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/credentials":{"get":{"tags":["agent"],"summary":"List Credentials","operationId":"list_credentials_api_v1_agent_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Credential"},"type":"array","title":"Response List Credentials Api V1 Agent Credentials Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["agent"],"summary":"Create Credential","operationId":"create_credential_api_v1_agent_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/agent/credentials/{cred_id}":{"delete":{"tags":["agent"],"summary":"Delete Credential","operationId":"delete_credential_api_v1_agent_credentials__cred_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"cred_id","in":"path","required":true,"schema":{"type":"string","title":"Cred Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/tools/test":{"post":{"tags":["agent"],"summary":"Test Tool","description":"Delegates tool testing to the API service.","operationId":"test_tool_api_v1_agent_tools_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolTestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/agent/tools":{"get":{"tags":["agent"],"summary":"List Tools","operationId":"list_tools_api_v1_agent_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentTool"},"type":"array","title":"Response List Tools Api V1 Agent Tools Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["agent"],"summary":"Create Tool","operationId":"create_tool_api_v1_agent_tools_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTool"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTool"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/agent/tools/{tool_id}":{"delete":{"tags":["agent"],"summary":"Delete Tool","operationId":"delete_tool_api_v1_agent_tools__tool_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string","title":"Tool Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/execute_raw":{"post":{"tags":["agent"],"summary":"Execute Raw Tool Endpoint","description":"Executes a tool on-the-fly using the provided configuration document,\nwithout requiring it to be saved in the database.","operationId":"execute_raw_tool_endpoint_api_v1_tools_execute_raw_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RawToolExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/tools/{tool_id}/execute":{"post":{"tags":["agent"],"summary":"Execute Tool Endpoint","description":"Executes a registered tool by its ID, resolving the provided variables\nagainst the tool's config template. Returns the raw tool output.","operationId":"execute_tool_endpoint_api_v1_tools__tool_id__execute_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string","title":"Tool Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolExecuteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/flows":{"get":{"tags":["agent"],"summary":"List Flows","operationId":"list_flows_api_v1_agent_flows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentFlow"},"type":"array","title":"Response List Flows Api V1 Agent Flows Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["agent"],"summary":"Create Flow","operationId":"create_flow_api_v1_agent_flows_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFlow"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFlow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/agent/flows/{flow_id}":{"get":{"tags":["agent"],"summary":"Get Flow","operationId":"get_flow_api_v1_agent_flows__flow_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","title":"Flow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFlow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agent"],"summary":"Delete Flow","operationId":"delete_flow_api_v1_agent_flows__flow_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","title":"Flow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads":{"post":{"tags":["chat"],"summary":"Create Thread","description":"Crea un nuevo hilo de chat, opcionalmente vinculado a un alias.","operationId":"create_thread_api_v1_chat_threads_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatThread"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"List Threads","description":"Lista hilos de chat del usuario (resumen ligero, sin prompts/memoria/costos).\n\nSoporta filtros opcionales por texto (``q``) y por rango de fechas de\nactividad (``start_date``/``end_date`` en formato YYYY-MM-DD).","operationId":"list_threads_api_v1_chat_threads_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"alias_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChatThreadSummary"},"title":"Response List Threads Api V1 Chat Threads Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}/messages":{"post":{"tags":["chat"],"summary":"Send Message","description":"Encola un mensaje para su procesamiento asíncrono.","operationId":"send_message_api_v1_chat_threads__thread_id__messages_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"Get History","description":"Recupera el historial de un hilo (lectura directa de MongoDB).","operationId":"get_history_api_v1_chat_threads__thread_id__messages_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChatMessage"},"title":"Response Get History Api V1 Chat Threads  Thread Id  Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}":{"get":{"tags":["chat"],"summary":"Get Chat Thread","description":"Obtiene detalles completos de un hilo específico, incluyendo su memoria.","operationId":"get_chat_thread_api_v1_chat_threads__thread_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatThread"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}/archive":{"post":{"tags":["chat"],"summary":"Archive Thread","description":"Archiva un hilo de chat.","operationId":"archive_thread_api_v1_chat_threads__thread_id__archive_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}/human-response":{"post":{"tags":["chat"],"summary":"Send Human Response","description":"Permite a un humano enviar un mensaje en el hilo e interviene en la conversación.","operationId":"send_human_response_api_v1_chat_threads__thread_id__human_response_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}/state":{"patch":{"tags":["chat"],"summary":"Update Thread State","description":"Actualiza el estado o la asignación de un hilo.","operationId":"update_thread_state_api_v1_chat_threads__thread_id__state_patch","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/public/threads":{"post":{"tags":["chat"],"summary":"Create Public Thread","description":"Crea un hilo público para el widget.","operationId":"create_public_thread_api_v1_chat_public_threads_post","parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"alias_id","in":"query","required":true,"schema":{"type":"string","title":"Alias Id"}},{"name":"visitor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatThread"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/public/threads/{thread_id}/messages":{"post":{"tags":["chat"],"summary":"Send Public Message","description":"Encola un mensaje público para su procesamiento.","operationId":"send_public_message_api_v1_chat_public_threads__thread_id__messages_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"client_id","in":"query","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"Get Public History","description":"Historial público para el widget.","operationId":"get_public_history_api_v1_chat_public_threads__thread_id__messages_get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"client_id","in":"query","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChatMessage"},"title":"Response Get Public History Api V1 Chat Public Threads  Thread Id  Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/requests":{"get":{"tags":["qa-lab"],"summary":"List Qa Lab Requests","operationId":"list_qa_lab_requests_api_v1_qa_lab_requests_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"default":10,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"alias_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Filter"}},{"name":"qa_status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qa Status Filter"}},{"name":"has_the_answer_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has The Answer Filter"}},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Min Score"}},{"name":"max_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Max Score"}},{"name":"system_status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Status Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/kpis":{"get":{"tags":["qa-lab"],"summary":"Get Qa Lab Kpis","operationId":"get_qa_lab_kpis_api_v1_qa_lab_kpis_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":1},{"type":"null"}],"title":"Month"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":2000},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/audit/{request_id}":{"post":{"tags":["qa-lab"],"summary":"Save Qa Lab Audit","operationId":"save_qa_lab_audit_api_v1_qa_lab_audit__request_id__post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Audit Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/auto-qa/{request_id}":{"post":{"tags":["qa-lab"],"summary":"Run Qa Lab Auto Qa","operationId":"run_qa_lab_auto_qa_api_v1_qa_lab_auto_qa__request_id__post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/auto-qa/{request_id}/status":{"get":{"tags":["qa-lab"],"summary":"Get Auto Qa Status","operationId":"get_auto_qa_status_api_v1_qa_lab_auto_qa__request_id__status_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/auto-qa/{request_id}/stream":{"get":{"tags":["qa-lab"],"summary":"Stream Auto Qa Status","operationId":"stream_auto_qa_status_api_v1_qa_lab_auto_qa__request_id__stream_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/simulate":{"post":{"tags":["qa-lab"],"summary":"Simulate Prompt Tuning","operationId":"simulate_prompt_tuning_api_v1_qa_lab_simulate_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/qa-lab/simulate/{sim_id}/status":{"get":{"tags":["qa-lab"],"summary":"Get Simulation Status","operationId":"get_simulation_status_api_v1_qa_lab_simulate__sim_id__status_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"sim_id","in":"path","required":true,"schema":{"type":"string","title":"Sim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/simulate/{sim_id}/stream":{"get":{"tags":["qa-lab"],"summary":"Stream Simulation Status","operationId":"stream_simulation_status_api_v1_qa_lab_simulate__sim_id__stream_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"sim_id","in":"path","required":true,"schema":{"type":"string","title":"Sim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/apply-prompt":{"post":{"tags":["qa-lab"],"summary":"Apply Prompt To Production","operationId":"apply_prompt_to_production_api_v1_qa_lab_apply_prompt_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/qa-lab/prompt-versions":{"get":{"tags":["qa-lab"],"summary":"List Prompt Versions","operationId":"list_prompt_versions_api_v1_qa_lab_prompt_versions_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"alias","in":"query","required":true,"schema":{"type":"string","title":"Alias"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/prompt-rollback":{"post":{"tags":["qa-lab"],"summary":"Rollback Prompt Version","operationId":"rollback_prompt_version_api_v1_qa_lab_prompt_rollback_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/qa-lab/simulate/history":{"get":{"tags":["qa-lab"],"summary":"Get Simulation History","operationId":"get_simulation_history_api_v1_qa_lab_simulate_history_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/audits":{"get":{"tags":["qa-lab"],"summary":"List Qa Lab Audits","operationId":"list_qa_lab_audits_api_v1_qa_lab_audits_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"alias_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Filter"}},{"name":"qa_status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qa Status Filter"}},{"name":"root_cause_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Cause Filter"}},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Min Score"}},{"name":"max_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Max Score"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa-lab/analysts":{"get":{"tags":["qa-lab"],"summary":"List Qa Lab Analysts","operationId":"list_qa_lab_analysts_api_v1_qa_lab_analysts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/qa-lab/prompt-versions/{version_id}/content":{"get":{"tags":["qa-lab"],"summary":"Get Prompt Version Content","operationId":"get_prompt_version_content_api_v1_qa_lab_prompt_versions__version_id__content_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cron":{"get":{"tags":["cron"],"summary":"List Cron Jobs","operationId":"list_cron_jobs_api_v1_cron_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["cron"],"summary":"Create Cron Job","operationId":"create_cron_job_api_v1_cron_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CronJobCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/cron/{job_id}":{"put":{"tags":["cron"],"summary":"Update Cron Job","operationId":"update_cron_job_api_v1_cron__job_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CronJobCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["cron"],"summary":"Delete Cron Job","operationId":"delete_cron_job_api_v1_cron__job_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cron/{job_id}/run":{"post":{"tags":["cron"],"summary":"Run Cron Job Now","operationId":"run_cron_job_now_api_v1_cron__job_id__run_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cron/{job_id}/toggle":{"post":{"tags":["cron"],"summary":"Toggle Cron Job","operationId":"toggle_cron_job_api_v1_cron__job_id__toggle_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cron/{job_id}/runs":{"get":{"tags":["cron"],"summary":"List Cron Runs","operationId":"list_cron_runs_api_v1_cron__job_id__runs_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cron/{job_id}/runs/{run_id}":{"get":{"tags":["cron"],"summary":"Get Cron Run","description":"Detalle completo de una ejecución (step_log, timings, traceback y salidas).","operationId":"get_cron_run_api_v1_cron__job_id__runs__run_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/inbound/{tenant_id}":{"post":{"tags":["email"],"summary":"Email Inbound","operationId":"email_inbound_api_v1_email_inbound__tenant_id__post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/channels":{"get":{"tags":["email"],"summary":"List Email Channels","operationId":"list_email_channels_api_v1_email_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["email"],"summary":"Create Email Channel","operationId":"create_email_channel_api_v1_email_channels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailChannelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/email/channels/{channel_id}":{"put":{"tags":["email"],"summary":"Update Email Channel","operationId":"update_email_channel_api_v1_email_channels__channel_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailChannelCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["email"],"summary":"Delete Email Channel","operationId":"delete_email_channel_api_v1_email_channels__channel_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/channels/{channel_id}/regenerate-webhook-secret":{"post":{"tags":["email"],"summary":"Regenerate Email Webhook Secret","description":"Genera un nuevo webhook_secret aleatorio y lo devuelve UNA sola vez.","operationId":"regenerate_email_webhook_secret_api_v1_email_channels__channel_id__regenerate_webhook_secret_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs":{"get":{"tags":["graphs"],"summary":"List Graphs","operationId":"list_graphs_api_v1_graphs_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["graphs"],"summary":"Create Graph","operationId":"create_graph_api_v1_graphs_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}":{"delete":{"tags":["graphs"],"summary":"Delete Graph","operationId":"delete_graph_api_v1_graphs__graph_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/git/branches":{"get":{"tags":["graphs"],"summary":"Git Branches","operationId":"git_branches_api_v1_graphs_git_branches_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/sources/{source_id}/progress":{"get":{"tags":["graphs"],"summary":"Source Progress","operationId":"source_progress_api_v1_graphs__graph_id__sources__source_id__progress_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/view":{"get":{"tags":["graphs"],"summary":"View Graph","operationId":"view_graph_api_v1_graphs__graph_id__view_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/file":{"get":{"tags":["graphs"],"summary":"Graph File Detail","operationId":"graph_file_detail_api_v1_graphs__graph_id__file_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/structure":{"get":{"tags":["graphs"],"summary":"Graph Structure","operationId":"graph_structure_api_v1_graphs__graph_id__structure_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/concept":{"get":{"tags":["graphs"],"summary":"Graph Concept","operationId":"graph_concept_api_v1_graphs__graph_id__concept_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/vectors":{"get":{"tags":["graphs"],"summary":"Graph Vectors","operationId":"graph_vectors_api_v1_graphs__graph_id__vectors_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/ask":{"post":{"tags":["graphs"],"summary":"Ask Brain","operationId":"ask_brain_api_v1_graphs__graph_id__ask_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/sources/{source_id}/sync":{"post":{"tags":["graphs"],"summary":"Sync Source","operationId":"sync_source_api_v1_graphs__graph_id__sources__source_id__sync_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/sources/{source_id}/cancel":{"post":{"tags":["graphs"],"summary":"Cancel Source","operationId":"cancel_source_api_v1_graphs__graph_id__sources__source_id__cancel_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/sources/{source_id}/stream":{"get":{"tags":["graphs"],"summary":"Source Sync Stream","description":"Proxy SSE: reenvía el stream de progreso del core sin buffering.","operationId":"source_sync_stream_api_v1_graphs__graph_id__sources__source_id__stream_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graphs/{graph_id}/upload":{"post":{"tags":["graphs"],"summary":"Upload To Graph","operationId":"upload_to_graph_api_v1_graphs__graph_id__upload_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_to_graph_api_v1_graphs__graph_id__upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans/catalog":{"get":{"tags":["admin","plans"],"summary":"Plans Catalog","operationId":"plans_catalog_api_v1_admin_plans_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/plans":{"get":{"tags":["admin","plans"],"summary":"List Plans","operationId":"list_plans_api_v1_admin_plans_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin","plans"],"summary":"Create Plan","operationId":"create_plan_api_v1_admin_plans_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans/{plan_id}":{"get":{"tags":["admin","plans"],"summary":"Get Plan","operationId":"get_plan_api_v1_admin_plans__plan_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin","plans"],"summary":"Update Plan","operationId":"update_plan_api_v1_admin_plans__plan_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin","plans"],"summary":"Delete Plan","operationId":"delete_plan_api_v1_admin_plans__plan_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans/{plan_id}/duplicate":{"post":{"tags":["admin","plans"],"summary":"Duplicate Plan","operationId":"duplicate_plan_api_v1_admin_plans__plan_id__duplicate_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans/estimate":{"post":{"tags":["admin","plans"],"summary":"Estimate Plan","description":"Estima costo y margen según el precio del plan y el % de uso de sus cuotas.\n\nBody: ``{\"price\": float, \"limits\": {...}}``. Devuelve el desglose del costo\na uso pleno (100%) y el costo/margen para 0/25/50/75/100% de uso.","operationId":"estimate_plan_api_v1_admin_plans_estimate_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/plans/{plan_id}/push":{"post":{"tags":["admin","plans"],"summary":"Push Plan","operationId":"push_plan_api_v1_admin_plans__plan_id__push_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanPushRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients":{"get":{"tags":["admin","plans"],"summary":"List Clients","operationId":"list_clients_api_v1_admin_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["admin","plans"],"summary":"Create Client","description":"Crea un cliente nuevo (usuario + doc ``clients``) con plan o límites custom.","operationId":"create_client_api_v1_admin_clients_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/clients/{client_id}":{"get":{"tags":["admin","plans"],"summary":"Get Client Detail","operationId":"get_client_detail_api_v1_admin_clients__client_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/seed-demo":{"post":{"tags":["admin","plans"],"summary":"Seed Demo Client","description":"Rellena un cliente existente con datos demo (idempotente).\n\nSiembra aliases, regiones, webs, herramientas, flow, historial (requests),\nchats y uso (metering), todo consistente entre sí.\n\nBody opcional: ``{\"requests\": 5, \"with_graphs\": true, \"reset\": false}``.","operationId":"seed_demo_client_api_v1_admin_clients__client_id__seed_demo_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/limits":{"put":{"tags":["admin","plans"],"summary":"Set Client Custom Limits","description":"Establece límites 'custom' directamente sobre un cliente.","operationId":"set_client_custom_limits_api_v1_admin_clients__client_id__limits_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Limits"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/fee":{"put":{"tags":["admin","plans"],"summary":"Set Client Fee","description":"Establece la cuota mensual fija (USD) de un cliente custom.","operationId":"set_client_fee_api_v1_admin_clients__client_id__fee_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/plan":{"put":{"tags":["admin","plans"],"summary":"Set Client Plan","description":"Asigna un plan a un cliente (materializa sus límites). Respeta plan_locked salvo force.","operationId":"set_client_plan_api_v1_admin_clients__client_id__plan_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/locked":{"put":{"tags":["admin","plans"],"summary":"Set Client Locked","operationId":"set_client_locked_api_v1_admin_clients__client_id__locked_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"locked","in":"query","required":true,"schema":{"type":"boolean","description":"true para bloquear el cambio de plan","title":"Locked"},"description":"true para bloquear el cambio de plan"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/backfill":{"post":{"tags":["admin","plans"],"summary":"Backfill Clients","description":"Crea el doc ``clients`` para todo usuario primario existente (no subuser).","operationId":"backfill_clients_api_v1_admin_clients_backfill_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/partners":{"get":{"tags":["admin","plans"],"summary":"List Partners","operationId":"list_partners_api_v1_admin_partners_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"post":{"tags":["admin","plans"],"summary":"Create Partner","description":"Crea un partner (usuario con rol ``partner``).","operationId":"create_partner_api_v1_admin_partners_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/partners/{partner_id}":{"get":{"tags":["admin","plans"],"summary":"Get Partner","description":"Detalle de un partner (incluye comisión).","operationId":"get_partner_api_v1_admin_partners__partner_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"string","title":"Partner Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin","plans"],"summary":"Update Partner","description":"Edita datos comerciales de un partner (nombre, email, comisión).","operationId":"update_partner_api_v1_admin_partners__partner_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"string","title":"Partner Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin","plans"],"summary":"Delete Partner","operationId":"delete_partner_api_v1_admin_partners__partner_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"string","title":"Partner Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections":{"get":{"tags":["admin","collections"],"summary":"List Collections","operationId":"list_collections_api_v1_admin_collections_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},{"name":"partner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/generate":{"post":{"tags":["admin","collections"],"summary":"Generate Collections","operationId":"generate_collections_api_v1_admin_collections_generate_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/generate-due":{"post":{"tags":["admin","collections"],"summary":"Generate Due Collections","description":"Genera las cobranzas cuyos ciclos ya cerraron (según la fecha de corte de cada cliente).","operationId":"generate_due_collections_api_v1_admin_collections_generate_due_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/collections/backfill-legacy-clients":{"post":{"tags":["admin","collections"],"summary":"Backfill Legacy Clients","description":"Backfill one-off: registra los clientes legacy (role admin sin doc ``clients``).","operationId":"backfill_legacy_clients_api_v1_admin_collections_backfill_legacy_clients_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/collections/export.csv":{"get":{"tags":["admin","collections"],"summary":"Export Collections Csv","operationId":"export_collections_csv_api_v1_admin_collections_export_csv_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},{"name":"partner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/commissions/export.csv":{"get":{"tags":["admin","collections"],"summary":"Export Commissions Csv","operationId":"export_commissions_csv_api_v1_admin_commissions_export_csv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/admin/clients/{client_id}/billing-cutoff":{"put":{"tags":["admin","collections"],"summary":"Set Client Billing Cutoff","description":"Setea la fecha de corte del cliente: eom | d1..d28 | first_X | last_X.","operationId":"set_client_billing_cutoff_api_v1_admin_clients__client_id__billing_cutoff_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/timezone":{"put":{"tags":["admin","collections"],"summary":"Set Client Timezone","description":"Setea la zona horaria IANA del cliente (para generar cobranzas a hora local).","operationId":"set_client_timezone_api_v1_admin_clients__client_id__timezone_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}":{"get":{"tags":["admin","collections"],"summary":"Get Collection","operationId":"get_collection_api_v1_admin_collections__invoice_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin","collections"],"summary":"Update Collection","operationId":"update_collection_api_v1_admin_collections__invoice_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}/confirm":{"post":{"tags":["admin","collections"],"summary":"Confirm Collection","operationId":"confirm_collection_api_v1_admin_collections__invoice_id__confirm_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceConfirm"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}/reopen":{"post":{"tags":["admin","collections"],"summary":"Reopen Collection","operationId":"reopen_collection_api_v1_admin_collections__invoice_id__reopen_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}/evidence":{"post":{"tags":["admin","collections"],"summary":"Add Evidence","operationId":"add_evidence_api_v1_admin_collections__invoice_id__evidence_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}/evidence/upload":{"post":{"tags":["admin","collections"],"summary":"Upload Evidence","operationId":"upload_evidence_api_v1_admin_collections__invoice_id__evidence_upload_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_evidence_api_v1_admin_collections__invoice_id__evidence_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collections/{invoice_id}/evidence/{evidence_id}/download":{"get":{"tags":["admin","collections"],"summary":"Download Evidence","operationId":"download_evidence_api_v1_admin_collections__invoice_id__evidence__evidence_id__download_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}},{"name":"evidence_id","in":"path","required":true,"schema":{"type":"string","title":"Evidence Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage":{"get":{"tags":["quota"],"summary":"My Usage","description":"Snapshot de uso del mes en curso + límites efectivos del plan.","operationId":"my_usage_api_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/me":{"get":{"tags":["partner"],"summary":"Partner Me","description":"Perfil del partner (incluye su comisión).","operationId":"partner_me_api_v1_partner_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/overview":{"get":{"tags":["partner"],"summary":"Partner Overview","description":"Dashboard del partner: KPIs, facturación estimada, comisión y cartera.","operationId":"partner_overview_api_v1_partner_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/plans":{"get":{"tags":["partner"],"summary":"Partner List Plans","description":"Planes activos disponibles para asignar a clientes (solo lectura, paginada).","operationId":"partner_list_plans_api_v1_partner_plans_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/plans/catalog":{"get":{"tags":["partner"],"summary":"Partner Plans Catalog","description":"Catálogo (módulos, recursos, canales, tipos) para el editor de límites.","operationId":"partner_plans_catalog_api_v1_partner_plans_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/clients":{"get":{"tags":["partner"],"summary":"Partner List Clients","description":"Clientes que pertenecen a este partner.\n\nSin paginación por defecto (el Kanban necesita toda la cartera); opcional con\n``limit``/``offset`` para consumidores de API.","operationId":"partner_list_clients_api_v1_partner_clients_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["partner"],"summary":"Partner Create Client","description":"Crea un cliente nuevo bajo este partner (plan o límites custom).","operationId":"partner_create_client_api_v1_partner_clients_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}":{"get":{"tags":["partner"],"summary":"Partner Get Client","description":"Detalle de un cliente del partner.","operationId":"partner_get_client_api_v1_partner_clients__client_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["partner"],"summary":"Partner Update Client","description":"Edita un cliente: cambia plan, estado o cuota fija.","operationId":"partner_update_client_api_v1_partner_clients__client_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/stage":{"put":{"tags":["partner"],"summary":"Partner Update Client Stage","description":"Mueve el cliente a otra etapa del pipeline (kanban).","operationId":"partner_update_client_stage_api_v1_partner_clients__client_id__stage_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/impersonate":{"post":{"tags":["partner"],"summary":"Partner Impersonate Client","description":"Entra como el cliente (impersonate) para ver su cuenta y asistirlo.","operationId":"partner_impersonate_client_api_v1_partner_clients__client_id__impersonate_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/billing":{"get":{"tags":["partner"],"summary":"Partner Client Billing","description":"Facturación estimada (fijo + consumo), contadores y límites del cliente.","operationId":"partner_client_billing_api_v1_partner_clients__client_id__billing_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/tickets":{"get":{"tags":["partner"],"summary":"Partner Client Tickets","description":"Tickets del cliente (y de sus subusuarios).","operationId":"partner_client_tickets_api_v1_partner_clients__client_id__tickets_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["partner"],"summary":"Partner Create Ticket","description":"Crea un ticket a nombre del cliente (el partner actúa como soporte).","operationId":"partner_create_ticket_api_v1_partner_clients__client_id__tickets_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/tickets/{ticket_id}":{"get":{"tags":["partner"],"summary":"Partner Get Ticket","description":"Detalle de un ticket del cliente (con comentarios).","operationId":"partner_get_ticket_api_v1_partner_clients__client_id__tickets__ticket_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/tickets/{ticket_id}/comments":{"post":{"tags":["partner"],"summary":"Partner Reply Ticket","description":"Responde un ticket del cliente (partner como soporte).","operationId":"partner_reply_ticket_api_v1_partner_clients__client_id__tickets__ticket_id__comments_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/tickets":{"get":{"tags":["partner"],"summary":"Partner Inbox Tickets","description":"Bandeja de entrada: tickets de los clientes del partner (paginada).","operationId":"partner_inbox_tickets_api_v1_partner_tickets_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/tickets/{ticket_id}":{"get":{"tags":["partner"],"summary":"Partner Inbox Ticket","description":"Detalle de un ticket del partner (con comentarios y creador).","operationId":"partner_inbox_ticket_api_v1_partner_tickets__ticket_id__get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/tickets/{ticket_id}/comments":{"post":{"tags":["partner"],"summary":"Partner Inbox Reply","description":"Responde un ticket (el partner actúa como soporte).","operationId":"partner_inbox_reply_api_v1_partner_tickets__ticket_id__comments_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/tickets/{ticket_id}/status":{"put":{"tags":["partner"],"summary":"Partner Inbox Status","description":"Cambia el estado de un ticket del partner.","operationId":"partner_inbox_status_api_v1_partner_tickets__ticket_id__status_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/tickets/{ticket_id}/classification":{"put":{"tags":["partner"],"summary":"Partner Inbox Classification","description":"Cambia la clasificación de un ticket del partner.","operationId":"partner_inbox_classification_api_v1_partner_tickets__ticket_id__classification_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/limits":{"put":{"tags":["partner"],"summary":"Partner Update Client Limits","description":"Actualiza los límites del cliente (lo convierte en custom, sin plan).","operationId":"partner_update_client_limits_api_v1_partner_clients__client_id__limits_put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/activities":{"get":{"tags":["partner"],"summary":"Partner List Activities","description":"Línea de tiempo de seguimiento (notas, citas, llamadas, tareas) del cliente.","operationId":"partner_list_activities_api_v1_partner_clients__client_id__activities_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["partner"],"summary":"Partner Create Activity","description":"Crea una actividad de seguimiento para el cliente.","operationId":"partner_create_activity_api_v1_partner_clients__client_id__activities_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientActivityCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/activities/{activity_id}":{"put":{"tags":["partner"],"summary":"Partner Update Activity","description":"Actualiza una actividad (título, descripción, estado, fecha).","operationId":"partner_update_activity_api_v1_partner_clients__client_id__activities__activity_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"activity_id","in":"path","required":true,"schema":{"type":"string","title":"Activity Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientActivityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["partner"],"summary":"Partner Delete Activity","description":"Elimina una actividad de seguimiento.","operationId":"partner_delete_activity_api_v1_partner_clients__client_id__activities__activity_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"activity_id","in":"path","required":true,"schema":{"type":"string","title":"Activity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/agenda":{"get":{"tags":["partner"],"summary":"Partner Agenda","description":"Próximas citas y tareas pendientes de toda la cartera del partner.","operationId":"partner_agenda_api_v1_partner_agenda_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/clients/{client_id}/contacts":{"get":{"tags":["partner"],"summary":"Partner List Contacts","description":"Contactos de un cliente (decisores, técnicos, facturación, etc.).","operationId":"partner_list_contacts_api_v1_partner_clients__client_id__contacts_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["partner"],"summary":"Partner Create Contact","description":"Agrega un contacto al cliente.","operationId":"partner_create_contact_api_v1_partner_clients__client_id__contacts_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientContactCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/contacts/{contact_id}":{"put":{"tags":["partner"],"summary":"Partner Update Contact","description":"Edita un contacto del cliente.","operationId":"partner_update_contact_api_v1_partner_clients__client_id__contacts__contact_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientContactUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["partner"],"summary":"Partner Delete Contact","description":"Elimina un contacto del cliente.","operationId":"partner_delete_contact_api_v1_partner_clients__client_id__contacts__contact_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/requests":{"get":{"tags":["partner"],"summary":"Partner List Requests","description":"Peticiones del cliente (qué pidió, qué está pendiente).","operationId":"partner_list_requests_api_v1_partner_clients__client_id__requests_get","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["partner"],"summary":"Partner Create Request","description":"Crea una petición para el cliente.","operationId":"partner_create_request_api_v1_partner_clients__client_id__requests_post","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/requests/{request_id}":{"put":{"tags":["partner"],"summary":"Partner Update Request","description":"Edita una petición (título, norte, estado, costo, fecha).","operationId":"partner_update_request_api_v1_partner_clients__client_id__requests__request_id__put","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["partner"],"summary":"Partner Delete Request","description":"Elimina una petición.","operationId":"partner_delete_request_api_v1_partner_clients__client_id__requests__request_id__delete","security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/requests/alerts":{"get":{"tags":["partner"],"summary":"Partner Requests Alerts","description":"Peticiones pendientes de toda la cartera, con alertas por vencimiento.","operationId":"partner_requests_alerts_api_v1_partner_requests_alerts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/partner/commissions/history":{"get":{"tags":["partner"],"summary":"Partner Commissions History","description":"Comisión por mes (últimos 12 meses) basada en cobranzas CONFIRMADAS.\n\nSolo las cobranzas confirmadas por el superadmin comisionan. Los extras\n(horas de soporte, etc.) quedan excluidos: se usa ``commissionable_total``\n(cuota + consumo).","operationId":"partner_commissions_history_api_v1_partner_commissions_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/git/config":{"get":{"tags":["git"],"summary":"Git Config","operationId":"git_config_api_v1_git_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/git/runs":{"get":{"tags":["git"],"summary":"Git Runs","operationId":"git_runs_api_v1_git_runs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/git/seed":{"post":{"tags":["git"],"summary":"Git Seed","description":"Provisiona las tools + flujos por defecto del Dev Agent (sin seed por CLI).","operationId":"git_seed_api_v1_git_seed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/api/v1/git/webhooks/github/{client_id}":{"post":{"tags":["git"],"summary":"Github Webhook","operationId":"github_webhook_api_v1_git_webhooks_github__client_id__post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/git/webhooks/gitlab/{client_id}":{"post":{"tags":["git"],"summary":"Gitlab Webhook","operationId":"gitlab_webhook_api_v1_git_webhooks_gitlab__client_id__post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/git/webhooks/bitbucket/{client_id}":{"post":{"tags":["git"],"summary":"Bitbucket Webhook","operationId":"bitbucket_webhook_api_v1_git_webhooks_bitbucket__client_id__post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/git/webhooks/error/{client_id}":{"post":{"tags":["git"],"summary":"Error Webhook","operationId":"error_webhook_api_v1_git_webhooks_error__client_id__post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/{token}.js":{"get":{"summary":"Get Widget Js By Token","description":"Genera un script JS dinámico para el widget basado en un token único.","operationId":"get_widget_js_by_token_widget__token__js_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/{client_id}/{alias_id}.js":{"get":{"summary":"Get Widget Js","description":"Genera un script JS dinámico para el widget basado en IDs (Legacy/Internal).","operationId":"get_widget_js_widget__client_id___alias_id__js_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"alias_id","in":"path","required":true,"schema":{"type":"string","title":"Alias Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contact":{"post":{"summary":"Submit Contact Form","description":"Handles contact form submissions from the landing page and sends an email.","operationId":"submit_contact_form_api_v1_contact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactForm"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/me":{"get":{"summary":"Get Current User Info","operationId":"get_current_user_info_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}}},"components":{"schemas":{"AgentFlow":{"properties":{"id":{"type":"string","title":"Id"},"client_id":{"type":"string","title":"Client Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"start_step_id":{"type":"string","title":"Start Step Id"},"steps":{"items":{"$ref":"#/components/schemas/FlowStep"},"type":"array","title":"Steps"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["client_id","name","start_step_id","steps"],"title":"AgentFlow"},"AgentTool":{"properties":{"id":{"type":"string","title":"Id"},"client_id":{"type":"string","title":"Client Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"type":{"type":"string","title":"Type"},"credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Id"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["client_id","name","description","type"],"title":"AgentTool"},"Alias":{"properties":{"name":{"type":"string","title":"Name"},"paths":{"items":{"type":"string"},"type":"array","title":"Paths"},"external_search":{"type":"boolean","title":"External Search"},"gemini_search":{"type":"boolean","title":"Gemini Search","default":false},"gemini_restricted":{"type":"boolean","title":"Gemini Restricted","default":false},"compatibility_broad_search":{"type":"boolean","title":"Compatibility Broad Search","default":false},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"commands":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commands","default":""},"has_the_answer_rules":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Has The Answer Rules","default":""},"mode":{"type":"string","enum":["oneshot","agent"],"title":"Mode","default":"oneshot"},"flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow Id"},"model_guard_enabled":{"type":"boolean","title":"Model Guard Enabled","default":true},"model_guard_mode":{"type":"string","title":"Model Guard Mode","description":"Grado del guard de SKU post-generación: 'strict' (reemplaza si el SKU exacto no aparece literal), 'gradual' (caveat si está el modelo base), 'off' (sin guard).","default":"gradual"},"agentic":{"type":"boolean","title":"Agentic","default":false},"veracity_mode":{"type":"string","title":"Veracity Mode","description":"'fast' (equilibrado) o 'strict' (máxima precisión, verifica groundedness)","default":"fast"},"agentic_tools":{"type":"boolean","title":"Agentic Tools","default":false},"tool_ids":{"items":{"type":"string"},"type":"array","title":"Tool Ids","description":"Allowlist de tools para el Agentic Answer Loop"},"graphs":{"additionalProperties":true,"type":"object","title":"Graphs","description":"Autorización de corpus (knowledge/code): {allowed_graph_ids: [...]}"},"chat_enabled":{"type":"boolean","title":"Chat Enabled","default":false},"chat_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Display Name"},"chat_avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Avatar Url"},"chat_system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat System Prompt"},"chat_operation_mode":{"type":"string","enum":["full","copilot","restricted"],"title":"Chat Operation Mode","default":"full"},"chat_welcome_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Welcome Message"},"chat_window_size":{"type":"integer","title":"Chat Window Size","default":10},"chat_wait_time":{"type":"integer","maximum":30.0,"minimum":5.0,"title":"Chat Wait Time","description":"Tiempo de espera en segundos antes de procesar el chat.","default":5},"simplified_chat":{"type":"boolean","title":"Simplified Chat","default":true},"channels":{"additionalProperties":{"$ref":"#/components/schemas/ChannelConfig"},"type":"object","title":"Channels","description":"Configuración de canales por tipo (ej. 'whatsapp', 'instagram')"},"human_handoff":{"additionalProperties":true,"type":"object","title":"Human Handoff"},"public_widget":{"additionalProperties":true,"type":"object","title":"Public Widget"}},"type":"object","required":["name","paths","external_search"],"title":"Alias"},"AliasSnapshot":{"properties":{"name":{"type":"string","title":"Name"},"mode":{"type":"string","enum":["oneshot","agent"],"title":"Mode"},"flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow Id"},"agentic_tools":{"type":"boolean","title":"Agentic Tools","default":false},"tool_ids":{"items":{"type":"string"},"type":"array","title":"Tool Ids"},"external_search":{"type":"boolean","title":"External Search","default":false},"folder_include":{"items":{"type":"string"},"type":"array","title":"Folder Include"},"chat_system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat System Prompt"},"chat_welcome_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Welcome Message"},"chat_window_size":{"type":"integer","title":"Chat Window Size","default":10},"simplified_chat":{"type":"boolean","title":"Simplified Chat","default":true}},"type":"object","required":["name","mode"],"title":"AliasSnapshot"},"AliasSnapshotSummary":{"properties":{"name":{"type":"string","title":"Name","default":"Asistente General"},"mode":{"type":"string","enum":["oneshot","agent"],"title":"Mode","default":"oneshot"}},"type":"object","title":"AliasSnapshotSummary","description":"Versión ligera de AliasSnapshot para listados (evita transferir prompts grandes)."},"ApiKey":{"properties":{"key":{"type":"string","maxLength":64,"minLength":32,"title":"Key"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["key","user_id","name"],"title":"ApiKey","description":"Representa una API Key para acceso al sistema."},"Body_upload_contacts_api_v1_marketing_contacts_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_contacts_api_v1_marketing_contacts_upload_post"},"Body_upload_evidence_api_v1_admin_collections__invoice_id__evidence_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_evidence_api_v1_admin_collections__invoice_id__evidence_upload_post"},"Body_upload_ticket_image_api_v1_tickets_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_ticket_image_api_v1_tickets_upload_post"},"Body_upload_to_graph_api_v1_graphs__graph_id__upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_to_graph_api_v1_graphs__graph_id__upload_post"},"Body_upload_widget_avatar_api_v1_settings_widget_avatar_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_widget_avatar_api_v1_settings_widget_avatar_post"},"CampaignCreate":{"properties":{"name":{"type":"string","title":"Name"},"audience_type":{"type":"string","title":"Audience Type"},"template_name":{"type":"string","title":"Template Name"},"template_language":{"type":"string","title":"Template Language"},"variables_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Variables Mapping"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"test_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Number"},"selected_phones":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Selected Phones"}},"type":"object","required":["name","audience_type","template_name","template_language"],"title":"CampaignCreate"},"ChangePasswordRequest":{"properties":{"current_password":{"type":"string","minLength":8,"title":"Current Password"},"new_password":{"type":"string","minLength":8,"title":"New Password"},"confirm_password":{"type":"string","minLength":8,"title":"Confirm Password"}},"type":"object","required":["current_password","new_password","confirm_password"],"title":"ChangePasswordRequest"},"ChannelConfig":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Nombre personalizado del canal"},"provider":{"type":"string","title":"Provider","description":"e.g., 'meta', 'imap'"},"channel_type":{"type":"string","title":"Channel Type","description":"e.g., 'whatsapp', 'instagram', 'messenger', 'email'"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"},"verify_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verify Token"},"business_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Account Id"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"additionalProperties":true,"type":"object","required":["provider","channel_type"],"title":"ChannelConfig"},"ChatMessage":{"properties":{"message_id":{"type":"string","title":"Message Id"},"thread_id":{"type":"string","title":"Thread Id"},"client_id":{"type":"string","title":"Client Id"},"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"},"thought":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thought"},"status":{"type":"string","title":"Status","default":"sent"},"tracking_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tracking Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["thread_id","client_id","role","content"],"title":"ChatMessage"},"ChatThread":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"client_id":{"type":"string","title":"Client Id"},"visitor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Id"},"alias_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"},"alias_snapshot":{"$ref":"#/components/schemas/AliasSnapshot"},"channel":{"type":"string","title":"Channel","default":"internal"},"channel_metadata":{"additionalProperties":true,"type":"object","title":"Channel Metadata"},"operation_mode":{"type":"string","title":"Operation Mode","default":"full"},"state":{"type":"string","title":"State","default":"active"},"state_metadata":{"additionalProperties":true,"type":"object","title":"State Metadata"},"assigned_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To"},"context_config":{"additionalProperties":true,"type":"object","title":"Context Config"},"memory_summary":{"additionalProperties":true,"type":"object","title":"Memory Summary"},"memory_history":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Memory History"},"total_cost":{"type":"number","title":"Total Cost","default":0.0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_activity_at":{"type":"string","format":"date-time","title":"Last Activity At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"last_message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Preview"},"last_message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Role"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["client_id","alias_snapshot"],"title":"ChatThread"},"ChatThreadSummary":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"client_id":{"type":"string","title":"Client Id"},"visitor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Id"},"alias_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"},"alias_snapshot":{"$ref":"#/components/schemas/AliasSnapshotSummary"},"channel":{"type":"string","title":"Channel","default":"internal"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"state":{"type":"string","title":"State","default":"active"},"assigned_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"last_message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Preview"},"last_message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Role"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["thread_id","client_id"],"title":"ChatThreadSummary","description":"Resumen ligero de un hilo de chat para listados (sidebar)."},"ClientActivityCreate":{"properties":{"type":{"type":"string","title":"Type","default":"note"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"type":"string","title":"Status","default":"pending"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["title"],"title":"ClientActivityCreate","description":"Actividad de CRM del partner sobre un cliente."},"ClientActivityUpdate":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","title":"ClientActivityUpdate"},"ClientContactCreate":{"properties":{"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_primary":{"type":"boolean","title":"Is Primary","default":false}},"type":"object","required":["name"],"title":"ClientContactCreate","description":"Contacto de un cliente (decisor, técnico, facturación, etc.)."},"ClientContactUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_primary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary"}},"type":"object","title":"ClientContactUpdate"},"ClientCreate":{"properties":{"name":{"type":"string","title":"Name"},"username":{"type":"string","title":"Username"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"password":{"type":"string","title":"Password"},"partner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Id"},"plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Id"},"monthly_fee":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Monthly Fee"},"limits":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Limits"},"plan_locked":{"type":"boolean","title":"Plan Locked","default":false},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"billing_cutoff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Cutoff"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"}},"type":"object","required":["name","username","password"],"title":"ClientCreate","description":"Alta de un cliente nuevo (usuario primario + doc ``clients``)."},"ClientRequestCreate":{"properties":{"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"norte":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Norte"},"status":{"type":"string","title":"Status","default":"pending"},"cost":{"type":"number","title":"Cost","default":0.0},"due_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due Date"}},"type":"object","required":["title"],"title":"ClientRequestCreate","description":"Petición / trabajo solicitado por el cliente (gestión del cliente)."},"ClientRequestUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"norte":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Norte"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost"},"due_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due Date"}},"type":"object","title":"ClientRequestUpdate"},"ContactForm":{"properties":{"name":{"type":"string","title":"Name"},"company":{"type":"string","title":"Company"},"email":{"type":"string","title":"Email"},"message":{"type":"string","title":"Message"}},"type":"object","required":["name","company","email","message"],"title":"ContactForm"},"ContactUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","default":""},"phone":{"type":"string","title":"Phone"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"attributes":{"additionalProperties":{"type":"string"},"type":"object","title":"Attributes","default":{}}},"type":"object","required":["phone"],"title":"ContactUpdate"},"Credential":{"properties":{"id":{"type":"string","title":"Id"},"client_id":{"type":"string","title":"Client Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","enum":["google_sa","api_key","db_creds","oauth2","mongodb_conn"],"title":"Type"},"encrypted_value":{"type":"string","title":"Encrypted Value"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["client_id","name","type","encrypted_value"],"title":"Credential"},"CredentialCreate":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"value":{"type":"string","title":"Value"}},"type":"object","required":["name","type","value"],"title":"CredentialCreate"},"CronJobCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"flow_id":{"type":"string","title":"Flow Id"},"alias_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Id"},"schedule":{"type":"string","title":"Schedule","default":"0 9 * * 1"},"timezone":{"type":"string","title":"Timezone","default":"UTC"},"input_query":{"type":"string","title":"Input Query","default":""},"input_variables":{"additionalProperties":true,"type":"object","title":"Input Variables"},"outputs":{"items":{"$ref":"#/components/schemas/CronJobOutput"},"type":"array","title":"Outputs"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name","flow_id"],"title":"CronJobCreate"},"CronJobOutput":{"properties":{"type":{"type":"string","enum":["webhook","email"],"title":"Type","default":"webhook"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret"},"to":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"To"},"subject_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Template"},"body_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Template"}},"type":"object","title":"CronJobOutput"},"DriveSyncRequest":{"properties":{"folder_id":{"type":"string","title":"Folder Id","description":"Google Drive folder ID to sync"},"folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Name","description":"Folder name for display"}},"type":"object","required":["folder_id"],"title":"DriveSyncRequest","description":"Request to start Drive folder synchronization."},"EmailChannelCreate":{"properties":{"alias_id":{"type":"string","title":"Alias Id"},"bot_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Address"},"from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Address"},"imap_host":{"type":"string","title":"Imap Host"},"imap_port":{"type":"integer","title":"Imap Port","default":993},"imap_ssl":{"type":"boolean","title":"Imap Ssl","default":true},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"mention_token":{"type":"string","title":"Mention Token","default":"@lumentia"},"folder":{"type":"string","title":"Folder","default":"INBOX"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["alias_id","imap_host","username","password"],"title":"EmailChannelCreate"},"EvidenceCreate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"EvidenceCreate","description":"Agregar una evidencia a una cobranza."},"EvidenceItem":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","default":"Evidencia"},"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"EvidenceItem","description":"Evidencia de pago (enlace a comprobante/recibo)."},"ExpertTipCreate":{"properties":{"query":{"type":"string","title":"Query"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"tip":{"type":"string","title":"Tip"},"response_uuid":{"type":"string","title":"Response Uuid"},"product_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Category"},"issue_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issue Category"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id","description":"Dueño del tip (multi-tenant). Lo setea el backend desde el usuario autenticado."}},"type":"object","required":["query","tip","response_uuid"],"title":"ExpertTipCreate"},"Feedback":{"properties":{"query":{"type":"string","title":"Query"},"response":{"type":"string","title":"Response"},"positive":{"type":"boolean","title":"Positive"},"response_uuid":{"type":"string","title":"Response Uuid"},"observation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Observation"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","default":"2026-10-21T01:49:56.646459Z"}},"type":"object","required":["query","response","positive","response_uuid"],"title":"Feedback"},"FlowStep":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"output_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Output Keys"},"output_schema":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Output Schema"},"next_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step"},"logic":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Logic"},"tool_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Id"},"flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow Id"},"parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Parameters"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"is_final":{"type":"boolean","title":"Is Final","default":false},"on_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Error"},"ui_x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ui X"},"ui_y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ui Y"}},"type":"object","required":["id","type"],"title":"FlowStep"},"Fuente":{"properties":{"archivo":{"type":"string","title":"Archivo"},"documento_id":{"type":"string","title":"Documento Id"},"chunk_text":{"type":"string","title":"Chunk Text"},"entidades":{"items":{"type":"string"},"type":"array","title":"Entidades"}},"type":"object","required":["archivo","documento_id","chunk_text","entidades"],"title":"Fuente","description":"Represents a source document from the internal knowledge base."},"FuenteExterna":{"properties":{"type":{"type":"string","const":"URL","title":"Type"},"source":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["type","source"],"title":"FuenteExterna","description":"Represents an external source, like a URL."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvoiceConfirm":{"properties":{"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"evidence":{"anyOf":[{"items":{"$ref":"#/components/schemas/EvidenceItem"},"type":"array"},{"type":"null"}],"title":"Evidence"}},"type":"object","title":"InvoiceConfirm","description":"Confirmación de pago de una cobranza."},"InvoiceExtraItem":{"properties":{"description":{"type":"string","title":"Description"},"amount":{"type":"number","minimum":0.0,"title":"Amount","default":0.0}},"type":"object","required":["description"],"title":"InvoiceExtraItem","description":"Ítem extra de una cobranza (no comisiona al partner)."},"InvoiceUpdate":{"properties":{"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"due_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due Date"},"extras":{"anyOf":[{"items":{"$ref":"#/components/schemas/InvoiceExtraItem"},"type":"array"},{"type":"null"}],"title":"Extras"}},"type":"object","title":"InvoiceUpdate","description":"Edición de una cobranza pendiente (notas, vencimiento, extras)."},"OneShotResponse":{"properties":{"response":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}],"title":"Response"},"fuentes":{"items":{"$ref":"#/components/schemas/Fuente"},"type":"array","title":"Fuentes"},"fuentes_externas":{"items":{"$ref":"#/components/schemas/FuenteExterna"},"type":"array","title":"Fuentes Externas"},"tiempo_total_segundos":{"type":"number","title":"Tiempo Total Segundos"},"debug_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Debug Info"}},"type":"object","required":["response","tiempo_total_segundos"],"title":"OneShotResponse","description":"The full response structure from the /api/one_shot endpoint."},"PartnerCreate":{"properties":{"name":{"type":"string","title":"Name"},"username":{"type":"string","title":"Username"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"password":{"type":"string","title":"Password"},"commission_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Commission Rate"}},"type":"object","required":["name","username","password"],"title":"PartnerCreate","description":"Alta de un partner (usuario con rol ``partner``)."},"PartnerUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"commission_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Commission Rate"}},"type":"object","title":"PartnerUpdate","description":"Edición de un partner (datos comerciales)."},"PlanCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price","default":0.0},"limits":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Limits"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"PlanCreate"},"PlanPushRequest":{"properties":{"client_ids":{"items":{"type":"string"},"type":"array","title":"Client Ids"},"force":{"type":"boolean","title":"Force","default":false}},"type":"object","required":["client_ids"],"title":"PlanPushRequest"},"PlanUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"limits":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Limits"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"PlanUpdate"},"RawToolExecuteRequest":{"properties":{"tool":{"additionalProperties":true,"type":"object","title":"Tool"},"variables":{"additionalProperties":true,"type":"object","title":"Variables","default":{}}},"type":"object","required":["tool"],"title":"RawToolExecuteRequest"},"ReexecutePayload":{"properties":{"custom_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Command"}},"type":"object","title":"ReexecutePayload"},"ReportQuery":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date","description":"Start date for the report (YYYY-MM-DD)"},"end_date":{"type":"string","format":"date","title":"End Date","description":"End date for the report (YYYY-MM-DD)"},"only_comparation":{"type":"boolean","title":"Only Comparation","description":"If true, only include entries that have comparison data.","default":false}},"type":"object","required":["start_date","end_date"],"title":"ReportQuery","description":"Pydantic model for the request body of the CSV report endpoint.\nDefines the date range and the 'only_comparation' filter."},"ResetPasswordRequest":{"properties":{"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["new_password"],"title":"ResetPasswordRequest"},"SearchQuery":{"properties":{"query":{"type":"string","title":"Query"},"compare":{"type":"boolean","title":"Compare","default":false},"expected_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Response"},"external_search":{"type":"boolean","title":"External Search","default":false},"gemini_search":{"type":"boolean","title":"Gemini Search","default":false},"gemini_restricted":{"type":"boolean","title":"Gemini Restricted","default":false},"region_sites":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Sites"},"folder_include":{"items":{"type":"string"},"type":"array","title":"Folder Include"},"async_mode":{"type":"boolean","title":"Async Mode","default":false},"front_id":{"type":"string","title":"Front Id"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"response_format":{"type":"string","title":"Response Format","description":"Can be 'text' or 'json_mode'","default":"text"},"json_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Schema","description":"Optional JSON schema for structured output when response_format is 'json_mode'"},"auditable":{"type":"boolean","title":"Auditable","description":"Marca explícita del router para que la consulta aparezca en el QA-Lab","default":false},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"JSON plano con pares key-value (sin objetos o listas anidadas)","example":{"device":"desktop","lang":"es","user_id":42}}},"type":"object","required":["query","front_id"],"title":"SearchQuery"},"SubUserCreate":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role","default":"agent"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"permissions":{"anyOf":[{"$ref":"#/components/schemas/SubUserPermissions"},{"type":"null"}]}},"type":"object","required":["username","password","name"],"title":"SubUserCreate"},"SubUserPermissions":{"properties":{"modules":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Modules"},"channels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channels"}},"type":"object","title":"SubUserPermissions","description":"Permisos por subusuario (override del plan del tenant).\n\n``modules`` / ``channels``: lista de lo que el subusuario PUEDE usar.\n``None`` (o ausente) = hereda todo lo que habilita el plan del tenant.\nEl plan siempre actúa de techo: si el plan no habilita algo, el subusuario\ntampoco puede usarlo aunque figure en su lista."},"SubUserUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disabled"},"permissions":{"anyOf":[{"$ref":"#/components/schemas/SubUserPermissions"},{"type":"null"}]}},"type":"object","title":"SubUserUpdate"},"TestCase":{"properties":{"id":{"type":"string","title":"Id"},"test_set_id":{"type":"string","title":"Test Set Id"},"query":{"type":"string","title":"Query"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Paths"},"payload_sent":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Sent"},"expected_answer":{"type":"string","title":"Expected Answer"},"gemini_search":{"type":"boolean","title":"Gemini Search","default":false},"external_search":{"type":"boolean","title":"External Search","default":true},"response_format":{"type":"string","title":"Response Format","default":"json_mode"},"json_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Schema"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["test_set_id","query","expected_answer"],"title":"TestCase"},"TestCaseResult":{"properties":{"id":{"type":"string","title":"Id"},"test_case_id":{"type":"string","title":"Test Case Id"},"execution_id":{"type":"string","title":"Execution Id"},"response":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}],"title":"Response"},"evaluation_score":{"type":"number","title":"Evaluation Score"},"evaluation_rationale":{"type":"string","title":"Evaluation Rationale"},"judge_flags":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Judge Flags"},"config_used":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Used"},"model_guard":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Model Guard"},"fuentes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Fuentes"},"fuentes_externas":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Fuentes Externas"},"manual_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Manual Score"},"manual_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manual Note"},"rerunning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rerunning"},"executed_at":{"type":"string","format":"date-time","title":"Executed At"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"tokens_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens In"},"tokens_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens Out"},"passed":{"type":"boolean","title":"Passed","default":false}},"type":"object","required":["test_case_id","execution_id","response","evaluation_score","evaluation_rationale"],"title":"TestCaseResult"},"TestExecution":{"properties":{"id":{"type":"string","title":"Id"},"test_set_id":{"type":"string","title":"Test Set Id"},"user_id":{"type":"string","title":"User Id"},"test_mode":{"type":"string","title":"Test Mode","default":"regression"},"status":{"type":"string","title":"Status","default":"running"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Score"},"pass_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pass Rate"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"tokens_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens In"},"tokens_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens Out"},"config_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Snapshot"}},"type":"object","required":["test_set_id","user_id"],"title":"TestExecution"},"TestSet":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_deleted":{"type":"boolean","title":"Is Deleted","default":false}},"type":"object","required":["user_id","name"],"title":"TestSet"},"ToolExecuteRequest":{"properties":{"variables":{"additionalProperties":true,"type":"object","title":"Variables","default":{}}},"type":"object","title":"ToolExecuteRequest"},"ToolTestRequest":{"properties":{"tool":{"$ref":"#/components/schemas/AgentTool"},"test_variables":{"additionalProperties":true,"type":"object","title":"Test Variables","default":{}}},"type":"object","required":["tool"],"title":"ToolTestRequest"},"TourSeenUpdate":{"properties":{"module":{"type":"string","title":"Module"}},"type":"object","required":["module"],"title":"TourSeenUpdate"},"UserSettingsUpdate":{"properties":{"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"restricted_search":{"type":"boolean","title":"Restricted Search","default":false},"allowed_websites":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allowed Websites"},"allowed_websites_regions":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/WebsiteRegion"},"type":"object"},{"type":"null"}],"title":"Allowed Websites Regions"},"allowed_ips":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allowed Ips"},"drive_connected":{"type":"boolean","title":"Drive Connected","default":false},"drive_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drive Folder Id"},"drive_folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drive Folder Name"},"drive_last_sync":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Drive Last Sync"},"drive_sync_enabled":{"type":"boolean","title":"Drive Sync Enabled","default":true},"files_tree":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Files Tree"},"aliases":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Alias"},"type":"object"},{"type":"null"}],"title":"Aliases"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","default":"America/Argentina/Buenos_Aires"},"wise_integration_active":{"type":"boolean","title":"Wise Integration Active","default":false},"wise_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise Api Key"},"wise_user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise User"},"wise_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise Alias"},"wise_fallback_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise Fallback Action","description":"ignore, webhook, or pool","default":"ignore"},"wise_fallback_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise Fallback Webhook Url"},"wise_fallback_pool_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wise Fallback Pool Id"},"qa_auto_eval_enabled":{"type":"boolean","title":"Qa Auto Eval Enabled","default":false},"git_webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Git Webhook Secret"},"dev_agent":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dev Agent"},"tour_seen":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tour Seen"}},"type":"object","title":"UserSettingsUpdate"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookConfigCreate":{"properties":{"url":{"type":"string","title":"Url"},"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["url","name"],"title":"WebhookConfigCreate","description":"Payload para crear/editar un webhook."},"WebsiteRegion":{"properties":{"name":{"type":"string","title":"Name"},"websites":{"type":"string","title":"Websites"}},"type":"object","required":["name","websites"],"title":"WebsiteRegion"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/login"}}},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}