{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/error":{"get":{"summary":"Read Error","operationId":"read_error_error_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/test-eks-deploy":{"get":{"summary":"Test Eks Deploy","description":"Simple test endpoint to verify EKS multi-region deployment is working.","operationId":"test_eks_deploy_api_test_eks_deploy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp/.well-known/oauth-protected-resource":{"get":{"summary":"Mcp Subapp Protected Resource Metadata","operationId":"mcp_subapp_protected_resource_metadata_mcp__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Mcp Protected Resource Metadata","operationId":"mcp_protected_resource_metadata__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server/mcp":{"get":{"summary":"Mcp Oauth Authorization Server Metadata","operationId":"mcp_oauth_authorization_server_metadata__well_known_oauth_authorization_server_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/start-code-gen-task":{"post":{"summary":"Start Code Gen Task","description":"Start a Fargate task for code generation with specified parameters.\n\nThis endpoint launches an ECS Fargate task with the provided configuration\nas environment variables.\n\nAlternatively, if `use_claude_gha` is True, creates a GitHub issue with @claude\nin the body to trigger the Claude Code GitHub Action workflow.\n\nNetwork Configuration:\n- If subnets are not provided, the default VPC's subnets will be used automatically\n- If security groups are not provided, the default security group will be used\n- Fargate requires subnets because each task gets its own network interface (awsvpc mode)","operationId":"start_code_gen_task_api_start_code_gen_task_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/code-gen/callback":{"post":{"summary":"Code Gen Callback","description":"Callback for the codegen agent to report completion and update the original\n\"Creating PR...\" Slack message with the PR link.","operationId":"code_gen_callback_api_code_gen_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeGenCompletionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat":{"options":{"summary":"Options Chat","operationId":"options_chat_api_chat_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"get":{"summary":"Get Recent Chats","description":"Get paginated list of chats for the authenticated user's team.","operationId":"get_recent_chats_api_chat_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Count"},"description":"Number of items per page"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Deprecated alias for count","title":"Limit"},"description":"Deprecated alias for count"},{"name":"my_chats","in":"query","required":false,"schema":{"type":"boolean","description":"Filter to only show chats initiated by the current user","default":false,"title":"My Chats"},"description":"Filter to only show chats initiated by the current user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/{chat_id}":{"get":{"summary":"Get Chat","operationId":"get_chat_api_chat__chat_id__get","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tool-results/{tool_id}":{"get":{"summary":"Get Tool Result","operationId":"get_tool_result_api_tool_results__tool_id__get","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/chat/{chat_id}/title":{"patch":{"summary":"Update Chat Title","operationId":"update_chat_title_api_chat__chat_id__title_patch","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatTitleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat-viz":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_api_chat_viz_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/chat-editor":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_api_chat_editor_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitoring-chat":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_api_monitoring_chat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitoring-chat/list":{"get":{"summary":"List Monitoring Chats","description":"List all monitoring agent chats for the authenticated user's team.","operationId":"list_monitoring_chats_api_monitoring_chat_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoringChatListResponse"}}}}}}},"/api/monitoring-chat/{chat_id}":{"delete":{"summary":"Delete Monitoring Chat","description":"Delete a monitoring agent chat and its sessions.","operationId":"delete_monitoring_chat_api_monitoring_chat__chat_id__delete","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitoring-chat/{chat_id}/config":{"get":{"summary":"Get Agent Config","description":"Get monitoring agent configuration (notification channel, eviction hours).","operationId":"get_agent_config_api_monitoring_chat__chat_id__config_get","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Agent Config","description":"Update monitoring agent notification channel and/or eviction hours.","operationId":"update_agent_config_api_monitoring_chat__chat_id__config_patch","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgentChannelRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitoring-chat/{chat_id}/plan":{"get":{"summary":"Get Monitoring Plan","description":"Get the monitoring plan for a chat.","operationId":"get_monitoring_plan_api_monitoring_chat__chat_id__plan_get","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Monitoring Plan","description":"Update the monitoring plan and/or active status.","operationId":"update_monitoring_plan_api_monitoring_chat__chat_id__plan_patch","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/extract-citation":{"post":{"summary":"Extract Citation","description":"Extract the relevant excerpts from a tool_result that support a citation.\n\nGiven:\n- tool_result: The full data returned by a tool call\n- citation_id: The citation number (e.g., 1 for [1])\n- text_with_citation: The text that cites this data (e.g., \"There are 3 errors [1]\")\n\nReturns:\n- excerpts: List of relevant chunks from tool_result that support the citation","operationId":"extract_citation_api_extract_citation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationExtractionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationExtractionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor":{"post":{"summary":"Monitor","operationId":"monitor_api_monitor_post","parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/list":{"get":{"tags":["satellite"],"summary":"List Satellites","description":"List all satellites for a team.","operationId":"list_satellites_satellite_list_get","parameters":[{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SatellitesListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/{satellite_id}":{"get":{"tags":["satellite"],"summary":"Get Satellite","description":"Get satellite details.","operationId":"get_satellite_satellite__satellite_id__get","parameters":[{"name":"satellite_id","in":"path","required":true,"schema":{"type":"string","title":"Satellite Id"}},{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SatelliteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["satellite"],"summary":"Delete Satellite","description":"Delete a satellite registration.\n\nNote: This only removes the registration. The satellite\nwill re-register on next heartbeat if still running.","operationId":"delete_satellite_satellite__satellite_id__delete","parameters":[{"name":"satellite_id","in":"path","required":true,"schema":{"type":"string","title":"Satellite Id"}},{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/{satellite_id}/clusters":{"get":{"tags":["satellite"],"summary":"Get Satellite Clusters","description":"Get cluster states for a satellite.","operationId":"get_satellite_clusters_satellite__satellite_id__clusters_get","parameters":[{"name":"satellite_id","in":"path","required":true,"schema":{"type":"string","title":"Satellite Id"}},{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClusterStateResponse"},"title":"Response Get Satellite Clusters Satellite  Satellite Id  Clusters Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/{satellite_id}/dependencies":{"get":{"tags":["satellite"],"summary":"Get Satellite Dependencies","description":"Get service dependencies from a satellite.","operationId":"get_satellite_dependencies_satellite__satellite_id__dependencies_get","parameters":[{"name":"satellite_id","in":"path","required":true,"schema":{"type":"string","title":"Satellite Id"}},{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max edges to return","default":1000,"title":"Limit"},"description":"Max edges to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DependencyGraphResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/tools/list":{"get":{"tags":["satellite"],"summary":"List Mcp Tools","description":"List all MCP tools available from satellites.","operationId":"list_mcp_tools_satellite_tools_list_get","parameters":[{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID","title":"Team Id"},"description":"Team ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPToolsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/query/integration":{"post":{"tags":["satellite"],"summary":"Query Integration","description":"Query an integration via satellite.\n\nThis endpoint proxies queries to on-prem observability tools\n(Datadog, Grafana, Splunk) through the satellite.","operationId":"query_integration_satellite_query_integration_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/query/mcp":{"post":{"tags":["satellite"],"summary":"Call Mcp Tool","description":"Call an MCP tool via satellite.\n\nThis endpoint proxies MCP tool calls to customer-hosted\nMCP servers through the satellite.","operationId":"call_mcp_tool_satellite_query_mcp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPToolCallRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/satellite/query/dependencies":{"post":{"tags":["satellite"],"summary":"Query Dependencies","description":"Query the live dependency graph via satellite.\n\nQuery types:\n- get_downstream: What does this service call?\n- get_upstream: What depends on this service?\n- get_impact: If this service fails, what's affected?","operationId":"query_dependencies_satellite_query_dependencies_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DependencyQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workspace/tree":{"get":{"tags":["workspace-editor"],"summary":"Get File Tree","description":"REST fallback: Get directory listing.","operationId":"get_file_tree_api_workspace_tree_get","parameters":[{"name":"path","in":"query","required":false,"schema":{"type":"string","default":".","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workspace/file":{"get":{"tags":["workspace-editor"],"summary":"Read File","description":"REST fallback: Read file contents.","operationId":"read_file_api_workspace_file_get","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["workspace-editor"],"summary":"Write File","description":"REST fallback: Write file.","operationId":"write_file_api_workspace_file_put","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileContent"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workspace-editor"],"summary":"Create File","description":"REST fallback: Create file.","operationId":"create_file_api_workspace_file_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["workspace-editor"],"summary":"Edit File","description":"REST fallback: Edit file with search/replace.","operationId":"edit_file_api_workspace_file_patch","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileEdit"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["workspace-editor"],"summary":"Delete File","description":"REST fallback: Delete file or directory.","operationId":"delete_file_api_workspace_file_delete","parameters":[{"name":"path","in":"query","required":true,"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/workspace/search":{"get":{"tags":["workspace-editor"],"summary":"Search Files","description":"REST fallback: Search files.","operationId":"search_files_api_workspace_search_get","parameters":[{"name":"pattern","in":"query","required":true,"schema":{"type":"string","title":"Pattern"}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":".","title":"Path"}},{"name":"flags","in":"query","required":false,"schema":{"type":"string","default":"","title":"Flags"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workspace/diff":{"get":{"tags":["workspace-editor"],"summary":"Get Diff","description":"REST fallback: Get diff (always empty with direct commits).","operationId":"get_diff_api_workspace_diff_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workspace/commit":{"post":{"tags":["workspace-editor"],"summary":"Commit Changes","description":"REST fallback: Commit changes (no-op with direct commits).","operationId":"commit_changes_api_workspace_commit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workspace/batch":{"post":{"tags":["workspace-editor"],"summary":"Batch Write","description":"REST endpoint: Atomic multi-file commit.","operationId":"batch_write_api_workspace_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchWriteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workspace/connections":{"get":{"tags":["workspace-editor"],"summary":"Get Connections","description":"Get number of active WebSocket connections for the team.","operationId":"get_connections_api_workspace_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workspace/webhook/github":{"post":{"tags":["workspace-editor"],"summary":"Github Webhook","description":"Handle GitHub webhook events to keep mirrors in sync.\n\nCalled when:\n- push events (repo updated)\n- create/delete events (branches)","operationId":"github_webhook_api_workspace_webhook_github_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"}}}}}}},"/api/onboarding/newrelic/step1":{"post":{"tags":["newrelic-onboarding"],"summary":"Onboarding Step1","description":"Step 1: Validate API key and discover accounts.\n\n- Validates API key by calling New Relic GraphQL API\n- Returns list of discovered accounts\n- If single account, auto-marks as default and completes onboarding","operationId":"onboarding_step1_api_onboarding_newrelic_step1_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Step1Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Step1Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/newrelic/step2":{"post":{"tags":["newrelic-onboarding"],"summary":"Onboarding Step2","description":"Step 2: Select default account and complete setup.\n\nOnly needed if multiple accounts were discovered in Step 1.","operationId":"onboarding_step2_api_onboarding_newrelic_step2_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Step2Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/newrelic/status":{"get":{"tags":["newrelic-onboarding"],"summary":"Get Status","description":"Get current New Relic integration status.","operationId":"get_status_api_onboarding_newrelic_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__new_relic__models__StatusResponse"}}}}}}},"/api/onboarding/newrelic/":{"delete":{"tags":["newrelic-onboarding"],"summary":"Remove Integration Endpoint","description":"Remove New Relic integration.","operationId":"remove_integration_endpoint_api_onboarding_newrelic__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__new_relic__models__RemoveResponse"}}}}}}},"/api/onboarding/postgres/status":{"get":{"tags":["postgres-onboarding"],"summary":"Get Status","operationId":"get_status_api_onboarding_postgres_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresStatusResponse"}}}}}}},"/api/onboarding/postgres/integrations":{"post":{"tags":["postgres-onboarding"],"summary":"Create Integration","operationId":"create_integration_api_onboarding_postgres_integrations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/postgres/integrations/{integration_id}":{"put":{"tags":["postgres-onboarding"],"summary":"Update Integration","operationId":"update_integration_api_onboarding_postgres_integrations__integration_id__put","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["postgres-onboarding"],"summary":"Delete Integration","operationId":"delete_integration_api_onboarding_postgres_integrations__integration_id__delete","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/postgres/test":{"post":{"tags":["postgres-onboarding"],"summary":"Test Integration Payload","operationId":"test_integration_payload_api_onboarding_postgres_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationTestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/postgres/integrations/{integration_id}/test":{"post":{"tags":["postgres-onboarding"],"summary":"Test Saved Integration","operationId":"test_saved_integration_api_onboarding_postgres_integrations__integration_id__test_post","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/postgres/integrations/{integration_id}/toggle":{"post":{"tags":["postgres-onboarding"],"summary":"Toggle Integration","operationId":"toggle_integration_api_onboarding_postgres_integrations__integration_id__toggle_post","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresToggleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresIntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/azure-monitor/connect":{"post":{"tags":["azure-monitor-onboarding"],"summary":"Connect","description":"Connect Azure Monitor integration.\n\nStores tenant ID and subscription ID, then enables the MCP.","operationId":"connect_api_onboarding_azure_monitor_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__azure_monitor__models__ConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__azure_monitor__models__ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/azure-monitor/status":{"get":{"tags":["azure-monitor-onboarding"],"summary":"Get Status","description":"Get current Azure Monitor integration status.","operationId":"get_status_api_onboarding_azure_monitor_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__azure_monitor__models__StatusResponse"}}}}}}},"/api/onboarding/azure-monitor/":{"delete":{"tags":["azure-monitor-onboarding"],"summary":"Remove Integration Endpoint","description":"Remove Azure Monitor integration.","operationId":"remove_integration_endpoint_api_onboarding_azure_monitor__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__azure_monitor__models__RemoveResponse"}}}}}}},"/api/onboarding/gcp/connect":{"post":{"tags":["gcp-onboarding"],"summary":"Connect","operationId":"connect_api_onboarding_gcp_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__ConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp/callback":{"post":{"tags":["gcp-onboarding"],"summary":"Callback","operationId":"callback_api_onboarding_gcp_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp/status":{"get":{"tags":["gcp-onboarding"],"summary":"Get Status","operationId":"get_status_api_onboarding_gcp_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__StatusResponse"}}}}}}},"/api/onboarding/gcp/":{"delete":{"tags":["gcp-onboarding"],"summary":"Remove Integration Endpoint","operationId":"remove_integration_endpoint_api_onboarding_gcp__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__RemoveResponse"}}}}}}},"/api/onboarding/gcp/sa/connect":{"post":{"tags":["gcp-onboarding"],"summary":"Sa Connect","operationId":"sa_connect_api_onboarding_gcp_sa_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp/sa/status":{"get":{"tags":["gcp-onboarding"],"summary":"Sa Status","operationId":"sa_status_api_onboarding_gcp_sa_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAStatusResponse"}}}}}}},"/api/onboarding/gcp/sa/":{"delete":{"tags":["gcp-onboarding"],"summary":"Sa Remove","operationId":"sa_remove_api_onboarding_gcp_sa__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__RemoveResponse"}}}}}}},"/api/onboarding/gcp-official/connect":{"post":{"tags":["gcp-onboarding"],"summary":"Connect","operationId":"connect_api_onboarding_gcp_official_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__ConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp-official/callback":{"post":{"tags":["gcp-onboarding"],"summary":"Callback","operationId":"callback_api_onboarding_gcp_official_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp-official/status":{"get":{"tags":["gcp-onboarding"],"summary":"Get Status","operationId":"get_status_api_onboarding_gcp_official_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__StatusResponse"}}}}}}},"/api/onboarding/gcp-official/":{"delete":{"tags":["gcp-onboarding"],"summary":"Remove Integration Endpoint","operationId":"remove_integration_endpoint_api_onboarding_gcp_official__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__RemoveResponse"}}}}}}},"/api/onboarding/gcp-official/sa/connect":{"post":{"tags":["gcp-onboarding"],"summary":"Sa Connect","operationId":"sa_connect_api_onboarding_gcp_official_sa_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/gcp-official/sa/status":{"get":{"tags":["gcp-onboarding"],"summary":"Sa Status","operationId":"sa_status_api_onboarding_gcp_official_sa_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SAStatusResponse"}}}}}}},"/api/onboarding/gcp-official/sa/":{"delete":{"tags":["gcp-onboarding"],"summary":"Sa Remove","operationId":"sa_remove_api_onboarding_gcp_official_sa__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__gcp_official__models__RemoveResponse"}}}}}}},"/api/gitlab/oauth/url":{"post":{"tags":["gitlab-code"],"summary":"Oauth Url","operationId":"oauth_url_api_gitlab_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gitlab/oauth/callback":{"post":{"tags":["gitlab-code"],"summary":"Oauth Callback","operationId":"oauth_callback_api_gitlab_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gitlab/status":{"get":{"tags":["gitlab-code"],"summary":"Status","operationId":"status_api_gitlab_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabStatusResponse"}}}}}}},"/api/gitlab/resync":{"post":{"tags":["gitlab-code"],"summary":"Resync","operationId":"resync_api_gitlab_resync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabResyncResponse"}}}}}}},"/api/gitlab/":{"delete":{"tags":["gitlab-code"],"summary":"Remove Integration","operationId":"remove_integration_api_gitlab__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRemoveResponse"}}}}}}},"/api/onboarding/clickhouse/status":{"get":{"tags":["clickhouse-onboarding"],"summary":"Get Status","operationId":"get_status_api_onboarding_clickhouse_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseStatusResponse"}}}}}}},"/api/onboarding/clickhouse/integrations":{"post":{"tags":["clickhouse-onboarding"],"summary":"Create Integration","operationId":"create_integration_api_onboarding_clickhouse_integrations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseCredentialResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/clickhouse/integrations/{integration_id}":{"put":{"tags":["clickhouse-onboarding"],"summary":"Update Integration","operationId":"update_integration_api_onboarding_clickhouse_integrations__integration_id__put","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseCredentialResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["clickhouse-onboarding"],"summary":"Delete Integration","operationId":"delete_integration_api_onboarding_clickhouse_integrations__integration_id__delete","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/clickhouse/test":{"post":{"tags":["clickhouse-onboarding"],"summary":"Test Connection","operationId":"test_connection_api_onboarding_clickhouse_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseTestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/clickhouse/integrations/{integration_id}/test":{"post":{"tags":["clickhouse-onboarding"],"summary":"Test Saved Integration","operationId":"test_saved_integration_api_onboarding_clickhouse_integrations__integration_id__test_post","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/clickhouse/integrations/{integration_id}/toggle":{"post":{"tags":["clickhouse-onboarding"],"summary":"Toggle Integration","operationId":"toggle_integration_api_onboarding_clickhouse_integrations__integration_id__toggle_post","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseToggleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseCredentialResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/cloudflare/connect":{"post":{"tags":["cloudflare-onboarding"],"summary":"Connect","operationId":"connect_api_onboarding_cloudflare_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__cloudflare__models__ConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__cloudflare__models__ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/onboarding/cloudflare/status":{"get":{"tags":["cloudflare-onboarding"],"summary":"Get Status","operationId":"get_status_api_onboarding_cloudflare_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__cloudflare__models__StatusResponse"}}}}}}},"/api/onboarding/cloudflare/":{"delete":{"tags":["cloudflare-onboarding"],"summary":"Remove Integration Endpoint","operationId":"remove_integration_endpoint_api_onboarding_cloudflare__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__onboarding__cloudflare__models__RemoveResponse"}}}}}}},"/api/ci-autofix/config":{"get":{"tags":["ci-autofix"],"summary":"Get Config","operationId":"get_config_api_ci_autofix_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIAutofixConfigResponse"}}}}}}},"/api/ci-autofix/configure":{"post":{"tags":["ci-autofix"],"summary":"Configure","operationId":"configure_api_ci_autofix_configure_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIAutofixConfigPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIAutofixConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ci-autofix/runs":{"get":{"tags":["ci-autofix"],"summary":"List Runs","operationId":"list_runs_api_ci_autofix_runs_get","parameters":[{"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":{"$ref":"#/components/schemas/CIAutofixRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ci-autofix/workflow-runs":{"get":{"tags":["ci-autofix"],"summary":"List Workflow Runs","operationId":"list_workflow_runs_api_ci_autofix_workflow_runs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIWorkflowRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ci-autofix/runs/{run_id}":{"get":{"tags":["ci-autofix"],"summary":"Get Run","operationId":"get_run_api_ci_autofix_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIAutofixRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ci-autofix/runs/{run_id}/retry":{"post":{"tags":["ci-autofix"],"summary":"Retry Run","operationId":"retry_run_api_ci_autofix_runs__run_id__retry_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIAutofixRetryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/check":{"get":{"tags":["admin"],"summary":"Check Admin Status","description":"Check if current user is an admin.","operationId":"check_admin_status_api_admin_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCheckResponse"}}}}}}},"/api/admin/usage":{"get":{"tags":["admin"],"summary":"Get Usage Dashboard","description":"Get team usage dashboard.\n\nRequires admin access. Returns usage metrics for:\n- Chats by user (combined Slack + UI, from initiated_by_email)\n- Manual investigations by user (from initiated_by_slack_user_id)\n- PostHog active users (filtered by team domain)","operationId":"get_usage_dashboard_api_admin_usage_get","parameters":[{"name":"time_filter","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TimeFilter","default":"weekly"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageDashboardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/attribution-report/download":{"get":{"tags":["attribution-report"],"summary":"Download Attribution Report","description":"Download attribution report as CSV.\n\nReturns investigation attribution data for the authenticated user's team\nwithin the specified date range.","operationId":"download_attribution_report_api_attribution_report_download_get","parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start date for report (ISO format). Defaults to 14 days ago.","title":"Start Date"},"description":"Start date for report (ISO format). Defaults to 14 days ago."},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End date for report (ISO format). Defaults to now.","title":"End Date"},"description":"End date for report (ISO format). Defaults to now."},{"name":"include_summary","in":"query","required":false,"schema":{"type":"boolean","description":"Include summary statistics at end of CSV","default":true,"title":"Include Summary"},"description":"Include summary statistics at end of CSV"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/create-pr/from-chat":{"post":{"tags":["create-pr"],"summary":"Create Pr From Chat","description":"Create a PR from a chat's suggest_pr tool call.","operationId":"create_pr_from_chat_api_create_pr_from_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCreatePRRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__code_gen__router__CreatePRResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/create-pr/from-investigation":{"post":{"tags":["create-pr"],"summary":"Create Pr From Investigation","description":"Create a PR from an investigation's recommended_pr data.","operationId":"create_pr_from_investigation_api_create_pr_from_investigation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestigationCreatePRRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__code_gen__router__CreatePRResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/create-pr/branches":{"get":{"tags":["create-pr"],"summary":"Get Branches","description":"Fetch available branches for a repo to populate branch selector.","operationId":"get_branches_api_create_pr_branches_get","parameters":[{"name":"repo","in":"query","required":true,"schema":{"type":"string","description":"Full repo name (e.g., 'owner/repo')","title":"Repo"},"description":"Full repo name (e.g., 'owner/repo')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/available-workflows":{"get":{"tags":["actions"],"summary":"Get Available Workflows","description":"Fetch all workflow_dispatch-enabled workflows from team's connected repos.","operationId":"get_available_workflows_api_actions_available_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/actions":{"get":{"tags":["actions"],"summary":"List Actions","description":"List team's configured actions.","operationId":"list_actions_api_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["actions"],"summary":"Create Action","description":"Enable a GitHub workflow as a team action (generates template script).","operationId":"create_action_api_actions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/custom-script":{"post":{"tags":["actions"],"summary":"Create Custom Script","description":"Create a custom script action.","operationId":"create_custom_script_api_actions_custom_script_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomScriptRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/{action_id}":{"patch":{"tags":["actions"],"summary":"Update Action","description":"Update an existing action configuration.","operationId":"update_action_api_actions__action_id__patch","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["actions"],"summary":"Delete Action","description":"Remove a configured action.","operationId":"delete_action_api_actions__action_id__delete","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/available-credentials":{"get":{"tags":["actions"],"summary":"Available Credentials","description":"List team's configured credentials available for script injection.","operationId":"available_credentials_api_actions_available_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/actions/{action_id}/script":{"get":{"tags":["actions"],"summary":"Get Script","description":"Get the script code for an action (for View Code toggle).","operationId":"get_script_api_actions__action_id__script_get","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["actions"],"summary":"Update Script","description":"Update script code and bump version.","operationId":"update_script_api_actions__action_id__script_put","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScriptRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/{action_id}/test":{"post":{"tags":["actions"],"summary":"Test Script","description":"Test-run a script action in a sandbox.","operationId":"test_script_api_actions__action_id__test_post","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestScriptRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/dispatch":{"post":{"tags":["actions"],"summary":"Dispatch Action","description":"Dispatch an action (executes script in Modal sandbox).","operationId":"dispatch_action_api_actions_dispatch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actions/dispatch-status":{"get":{"tags":["actions"],"summary":"Get Dispatch Status","description":"Poll for action dispatch status.","operationId":"get_dispatch_status_api_actions_dispatch_status_get","parameters":[{"name":"chat_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"}},{"name":"investigation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat-actions":{"post":{"tags":["actions-chat"],"summary":"Actions Chat","description":"Interactive chat for custom action/script creation.\n\nUses the same harness as the main chat (MCP tools, web search, workspace\nhydration) plus extra tools for listing credentials and saving actions.","operationId":"actions_chat_api_chat_actions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/dedup-scan/runs":{"post":{"tags":["dedup-scan"],"summary":"Create Scan Run","description":"Create and start a dedup scan.\n\nIn dev mode: Executes synchronously, returns completed results inline\nIn prod mode: Enqueues to SQS, returns pending scan_run for polling","operationId":"create_scan_run_api_dedup_scan_runs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanRunWithResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dedup-scan"],"summary":"List Scan Runs","description":"List recent scan runs for the authenticated user's team.","operationId":"list_scan_runs_api_dedup_scan_runs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/api__dedup_scan__router__ScanRunResponse"},"title":"Response List Scan Runs Api Dedup Scan Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/runs/{run_id}":{"get":{"tags":["dedup-scan"],"summary":"Get Scan Run","description":"Get details of a specific scan run.","operationId":"get_scan_run_api_dedup_scan_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__ScanRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/runs/{run_id}/results":{"get":{"tags":["dedup-scan"],"summary":"Get Scan Run Results","description":"Get results for a specific scan run.","operationId":"get_scan_run_results_api_dedup_scan_runs__run_id__results_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScanResultItem"},"title":"Response Get Scan Run Results Api Dedup Scan Runs  Run Id  Results Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/runs/{run_id}/trends":{"get":{"tags":["dedup-scan"],"summary":"Get Scan Run Trends","description":"Get trend data for all results in a scan run.\n\nSeparated from /results to allow the frontend to render\nissues immediately without waiting for trend computation.","operationId":"get_scan_run_trends_api_dedup_scan_runs__run_id__trends_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrendsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}":{"get":{"tags":["dedup-scan"],"summary":"Get Result By Id","description":"Get a single dedup scan result by ID.","operationId":"get_result_by_id_api_dedup_scan_results__result_id__get","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResultItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}/history":{"get":{"tags":["dedup-scan"],"summary":"Get Result History","description":"Get the trend history of an issue as time-bucketed investigation counts.\n\nFinds all investigations belonging to this issue (via embedding-matched\nscan results), then buckets them into non-overlapping time windows\nsized by hours_lookback. Each investigation is counted exactly once.","operationId":"get_result_history_api_dedup_scan_results__result_id__history_get","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrendHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}/route":{"post":{"tags":["dedup-scan"],"summary":"Route Result","description":"Route a deduped issue to its likely owner(s) via Slack.","operationId":"route_result_api_dedup_scan_results__result_id__route_post","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RouteIssueRequest"},{"type":"null"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteIssueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}/create-pr":{"post":{"tags":["dedup-scan"],"summary":"Create Pr From Result","description":"Create a PR to fix a dedup scan issue using the code gen agent.","operationId":"create_pr_from_result_api_dedup_scan_results__result_id__create_pr_post","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__CreatePRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__CreatePRResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}/silence":{"post":{"tags":["dedup-scan"],"summary":"Silence Result","description":"Silence a dedup scan result so its investigations are excluded from future scans.","operationId":"silence_result_api_dedup_scan_results__result_id__silence_post","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/results/{result_id}/unsilence":{"post":{"tags":["dedup-scan"],"summary":"Unsilence Result","description":"Unsilence a previously silenced dedup scan result.","operationId":"unsilence_result_api_dedup_scan_results__result_id__unsilence_post","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-scan/schedules":{"get":{"tags":["dedup-scan"],"summary":"Get Schedule","description":"Get the dedup schedule for the authenticated user's team.","operationId":"get_schedule_api_dedup_scan_schedules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__ScheduleResponse"}}}}}},"post":{"tags":["dedup-scan"],"summary":"Create Or Update Schedule","description":"Create or update a dedup schedule for the authenticated user's team.","operationId":"create_or_update_schedule_api_dedup_scan_schedules_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__ScheduleCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__dedup_scan__router__ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["dedup-scan"],"summary":"Disable Schedule","description":"Disable the dedup schedule for the authenticated user's team.","operationId":"disable_schedule_api_dedup_scan_schedules_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/endpoint-monitor/endpoints":{"get":{"tags":["endpoint-monitor"],"summary":"List Endpoints","description":"List all monitored endpoints for the team.","operationId":"list_endpoints_api_endpoint_monitor_endpoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EndpointResponse"},"type":"array","title":"Response List Endpoints Api Endpoint Monitor Endpoints Get"}}}}}},"post":{"tags":["endpoint-monitor"],"summary":"Add Endpoint","description":"Register an endpoint for monitoring. Kicks off profiling in background.","operationId":"add_endpoint_api_endpoint_monitor_endpoints_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddEndpointRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}":{"delete":{"tags":["endpoint-monitor"],"summary":"Delete Endpoint","description":"Remove an endpoint from monitoring.","operationId":"delete_endpoint_api_endpoint_monitor_endpoints__endpoint_id__delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/reprofile":{"post":{"tags":["endpoint-monitor"],"summary":"Reprofile Endpoint","description":"Re-run latency investigation for an endpoint.","operationId":"reprofile_endpoint_api_endpoint_monitor_endpoints__endpoint_id__reprofile_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/profile":{"patch":{"tags":["endpoint-monitor"],"summary":"Update Endpoint Profile","description":"Update an endpoint's profile fields manually.","operationId":"update_endpoint_profile_api_endpoint_monitor_endpoints__endpoint_id__profile_patch","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/runs":{"post":{"tags":["endpoint-monitor"],"summary":"Create Scan Run","description":"Trigger an on-demand scan of all monitored endpoints.","operationId":"create_scan_run_api_endpoint_monitor_runs_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScanRunResponse"}}}}}},"get":{"tags":["endpoint-monitor"],"summary":"List Scan Runs","description":"List scan runs for the team (current + history).","operationId":"list_scan_runs_api_endpoint_monitor_runs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/api__proactive_scan__router__ScanRunResponse"},"title":"Response List Scan Runs Api Endpoint Monitor Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/runs/{run_id}":{"get":{"tags":["endpoint-monitor"],"summary":"Get Scan Run","description":"Get details of a specific scan run.","operationId":"get_scan_run_api_endpoint_monitor_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScanRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/runs/{run_id}/results":{"get":{"tags":["endpoint-monitor"],"summary":"Get Scan Run Results","description":"Get per-endpoint results for a scan run.","operationId":"get_scan_run_results_api_endpoint_monitor_runs__run_id__results_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScanResultResponse"},"title":"Response Get Scan Run Results Api Endpoint Monitor Runs  Run Id  Results Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/schedule":{"post":{"tags":["endpoint-monitor"],"summary":"Create Or Update Endpoint Schedule","description":"Create or update a scan schedule for a specific endpoint.","operationId":"create_or_update_endpoint_schedule_api_endpoint_monitor_endpoints__endpoint_id__schedule_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScheduleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["endpoint-monitor"],"summary":"Get Endpoint Schedule","description":"Get the scan schedule for a specific endpoint.","operationId":"get_endpoint_schedule_api_endpoint_monitor_endpoints__endpoint_id__schedule_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["endpoint-monitor"],"summary":"Disable Endpoint Schedule","description":"Disable the scan schedule for a specific endpoint.","operationId":"disable_endpoint_schedule_api_endpoint_monitor_endpoints__endpoint_id__schedule_delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/schedules":{"get":{"tags":["endpoint-monitor"],"summary":"Get Schedule","description":"Get the first enabled schedule for the team (legacy).","operationId":"get_schedule_api_endpoint_monitor_schedules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__ScheduleResponse"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/investigations":{"get":{"tags":["endpoint-monitor"],"summary":"Get Endpoint Investigations","description":"Get investigation history for an endpoint.","operationId":"get_endpoint_investigations_api_endpoint_monitor_endpoints__endpoint_id__investigations_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"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":{"type":"array","items":{"$ref":"#/components/schemas/EndpointInvestigationResponse"},"title":"Response Get Endpoint Investigations Api Endpoint Monitor Endpoints  Endpoint Id  Investigations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/dashboard-views":{"post":{"tags":["endpoint-monitor"],"summary":"Add Dashboard View","description":"Add a dashboard view by pasting a URL. Parses the URL to extract provider, UID, and variable bindings.","operationId":"add_dashboard_view_api_endpoint_monitor_endpoints__endpoint_id__dashboard_views_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDashboardViewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["endpoint-monitor"],"summary":"Get Dashboard Views","description":"Get all saved dashboard views for an endpoint.","operationId":"get_dashboard_views_api_endpoint_monitor_endpoints__endpoint_id__dashboard_views_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DashboardViewResponse"},"title":"Response Get Dashboard Views Api Endpoint Monitor Endpoints  Endpoint Id  Dashboard Views Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/dashboard-views/{view_id}":{"delete":{"tags":["endpoint-monitor"],"summary":"Delete Dashboard View","description":"Remove a dashboard view.","operationId":"delete_dashboard_view_api_endpoint_monitor_endpoints__endpoint_id__dashboard_views__view_id__delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/dashboard-preview":{"post":{"tags":["endpoint-monitor"],"summary":"Preview Dashboard","description":"Parse a dashboard URL and render preview panel screenshots.\n\nReturns JSON with base64-encoded PNG images for each panel.","operationId":"preview_dashboard_api_endpoint_monitor_dashboard_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDashboardViewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/metric-source/validate":{"post":{"tags":["endpoint-monitor"],"summary":"Validate Metric Query","description":"Validate a metric query by running it against the datasource.\nReturns the number of data points found and a sample value.\nDoes NOT save anything.","operationId":"validate_metric_query_api_endpoint_monitor_endpoints__endpoint_id__metric_source_validate_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateMetricRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/metric-source":{"patch":{"tags":["endpoint-monitor"],"summary":"Update Metric Source","description":"Update the latency metric query for an endpoint. Validates the query first.","operationId":"update_metric_source_api_endpoint_monitor_endpoints__endpoint_id__metric_source_patch","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMetricSourceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["endpoint-monitor"],"summary":"Clear Metric Source","description":"Remove the metric source config (falls back to dashboard-based scans).","operationId":"clear_metric_source_api_endpoint_monitor_endpoints__endpoint_id__metric_source_delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/investigations/{inv_id}/create-pr":{"post":{"tags":["endpoint-monitor"],"summary":"Create Pr From Investigation","description":"Create a PR to fix an issue found in an endpoint investigation.","operationId":"create_pr_from_investigation_api_endpoint_monitor_investigations__inv_id__create_pr_post","parameters":[{"name":"inv_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Inv Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__CreatePRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/scan-results/{result_id}/create-pr":{"post":{"tags":["endpoint-monitor"],"summary":"Create Pr From Scan Result","description":"Create a PR to fix an anomaly detected in a scan result.","operationId":"create_pr_from_scan_result_api_endpoint_monitor_scan_results__result_id__create_pr_post","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__proactive_scan__router__CreatePRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/notification-channel":{"put":{"tags":["endpoint-monitor"],"summary":"Update Notification Channel","description":"Set or clear the Slack notification channel for an endpoint.","operationId":"update_notification_channel_api_endpoint_monitor_endpoints__endpoint_id__notification_channel_put","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationChannelRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/endpoints/{endpoint_id}/notification-status":{"get":{"tags":["endpoint-monitor"],"summary":"Get Notification Status","description":"Check how anomaly notifications will be delivered for this endpoint.","operationId":"get_notification_status_api_endpoint_monitor_endpoints__endpoint_id__notification_status_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/endpoint-monitor/can-dm-me":{"get":{"tags":["endpoint-monitor"],"summary":"Can Dm Me","description":"Check if the current user's email matches a Slack user (DM feasibility).","operationId":"can_dm_me_api_endpoint_monitor_can_dm_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitoring/sessions":{"get":{"tags":["monitoring"],"summary":"List Sessions","operationId":"list_sessions_api_monitoring_sessions_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"chat_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by monitoring agent chat ID","title":"Chat Id"},"description":"Filter sessions by monitoring agent chat ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitoring/sessions/{session_id}":{"get":{"tags":["monitoring"],"summary":"Get Session","operationId":"get_session_api_monitoring_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry/query":{"post":{"tags":["telemetry"],"summary":"Query Telemetry Endpoint","operationId":"query_telemetry_endpoint_api_telemetry_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Query Telemetry Endpoint Api Telemetry Query Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/execution-capture/query":{"post":{"tags":["execution-capture"],"summary":"Query Execution Capture Endpoint","operationId":"query_execution_capture_endpoint_api_execution_capture_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutionCaptureQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Query Execution Capture Endpoint Api Execution Capture Query Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/execution-capture/query-events":{"post":{"tags":["execution-capture"],"summary":"Query Execution Capture Events Endpoint","operationId":"query_execution_capture_events_endpoint_api_execution_capture_query_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutionCaptureEventQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Query Execution Capture Events Endpoint Api Execution Capture Query Events Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/execution-capture/render":{"post":{"tags":["execution-capture"],"summary":"Render Execution Capture Endpoint","operationId":"render_execution_capture_endpoint_api_execution_capture_render_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutionCaptureRenderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Render Execution Capture Endpoint Api Execution Capture Render Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/async-tasks":{"get":{"summary":"Get Async Tasks","operationId":"get_async_tasks_internal_async_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Async Tasks Internal Async Tasks Get"}}}}}}},"/api/telemetry-optimizer/observations/backfill-chat":{"post":{"tags":["telemetry-optimizer"],"summary":"Backfill Chat Endpoint","operationId":"backfill_chat_endpoint_api_telemetry_optimizer_observations_backfill_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"integer"},"type":"object","title":"Response Backfill Chat Endpoint Api Telemetry Optimizer Observations Backfill Chat Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/candidates":{"get":{"tags":["telemetry-optimizer"],"summary":"List Candidates Endpoint","operationId":"list_candidates_endpoint_api_telemetry_optimizer_candidates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Candidates Endpoint Api Telemetry Optimizer Candidates Get"}}}}}}},"/api/telemetry-optimizer/actions":{"get":{"tags":["telemetry-optimizer"],"summary":"List Actions Endpoint","operationId":"list_actions_endpoint_api_telemetry_optimizer_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Actions Endpoint Api Telemetry Optimizer Actions Get"}}}}}},"post":{"tags":["telemetry-optimizer"],"summary":"Create Action Endpoint","operationId":"create_action_endpoint_api_telemetry_optimizer_actions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOptimizerActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Action Endpoint Api Telemetry Optimizer Actions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/iceberg-columns":{"post":{"tags":["telemetry-optimizer"],"summary":"Add Iceberg Column Endpoint","operationId":"add_iceberg_column_endpoint_api_telemetry_optimizer_iceberg_columns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddIcebergColumnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Add Iceberg Column Endpoint Api Telemetry Optimizer Iceberg Columns Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/iceberg-partitions":{"post":{"tags":["telemetry-optimizer"],"summary":"Add Iceberg Partition Endpoint","operationId":"add_iceberg_partition_endpoint_api_telemetry_optimizer_iceberg_partitions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddIcebergPartitionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Add Iceberg Partition Endpoint Api Telemetry Optimizer Iceberg Partitions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/accelerators/recent-count-rollup/backfill":{"post":{"tags":["telemetry-optimizer"],"summary":"Backfill Recent Count Rollup Endpoint","operationId":"backfill_recent_count_rollup_endpoint_api_telemetry_optimizer_accelerators_recent_count_rollup_backfill_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillRecentCountRollupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Backfill Recent Count Rollup Endpoint Api Telemetry Optimizer Accelerators Recent Count Rollup Backfill Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/summary-tables/spans-service-hourly":{"post":{"tags":["telemetry-optimizer"],"summary":"Build Spans Service Hourly Summary Endpoint","operationId":"build_spans_service_hourly_summary_endpoint_api_telemetry_optimizer_summary_tables_spans_service_hourly_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildSpansServiceHourlySummaryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Build Spans Service Hourly Summary Endpoint Api Telemetry Optimizer Summary Tables Spans Service Hourly Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/rewrite-jobs/compact":{"post":{"tags":["telemetry-optimizer"],"summary":"Compact Telemetry Table Endpoint","operationId":"compact_telemetry_table_endpoint_api_telemetry_optimizer_rewrite_jobs_compact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompactTelemetryTableRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Compact Telemetry Table Endpoint Api Telemetry Optimizer Rewrite Jobs Compact Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/actions/{action_id}/execute":{"post":{"tags":["telemetry-optimizer"],"summary":"Execute Action Endpoint","operationId":"execute_action_endpoint_api_telemetry_optimizer_actions__action_id__execute_post","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Execute Action Endpoint Api Telemetry Optimizer Actions  Action Id  Execute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/actions/{action_id}":{"get":{"tags":["telemetry-optimizer"],"summary":"Get Action Endpoint","operationId":"get_action_endpoint_api_telemetry_optimizer_actions__action_id__get","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Action Endpoint Api Telemetry Optimizer Actions  Action Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telemetry-optimizer/layout-registry":{"get":{"tags":["telemetry-optimizer"],"summary":"Layout Registry Endpoint","operationId":"layout_registry_endpoint_api_telemetry_optimizer_layout_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Layout Registry Endpoint Api Telemetry Optimizer Layout Registry Get"}}}}}}},"/api/monitors":{"post":{"tags":["monitors"],"summary":"Create Monitor","operationId":"create_monitor_api_monitors_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMonitorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["monitors"],"summary":"List Monitors","operationId":"list_monitors_api_monitors_get","parameters":[{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/provisioning":{"post":{"tags":["monitors"],"summary":"Create Provisioning Monitor","description":"Create a placeholder monitor in 'provisioning' state while an agent sets it up.","operationId":"create_provisioning_monitor_api_monitors_provisioning_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningMonitorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/provisioning/{monitor_id}":{"delete":{"tags":["monitors"],"summary":"Delete Provisioning Monitor","description":"Delete a provisioning placeholder monitor.","operationId":"delete_provisioning_monitor_api_monitors_provisioning__monitor_id__delete","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}":{"get":{"tags":["monitors"],"summary":"Get Monitor","operationId":"get_monitor_api_monitors__monitor_id__get","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["monitors"],"summary":"Update Monitor","operationId":"update_monitor_api_monitors__monitor_id__put","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMonitorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["monitors"],"summary":"Delete Monitor","operationId":"delete_monitor_api_monitors__monitor_id__delete","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}/evaluations":{"get":{"tags":["monitors"],"summary":"List Evaluations","operationId":"list_evaluations_api_monitors__monitor_id__evaluations_get","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/monitors/{monitor_id}/evaluate":{"post":{"tags":["monitors"],"summary":"Trigger Evaluation","description":"Trigger an immediate evaluation of a monitor (for testing).","operationId":"trigger_evaluation_api_monitors__monitor_id__evaluate_post","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}/proposals":{"get":{"tags":["monitors"],"summary":"List Proposals","operationId":"list_proposals_api_monitors__monitor_id__proposals_get","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"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/monitors/{monitor_id}/proposals/pending":{"get":{"tags":["monitors"],"summary":"Get Pending Proposal","operationId":"get_pending_proposal_api_monitors__monitor_id__proposals_pending_get","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}/proposals/{proposal_id}/accept":{"post":{"tags":["monitors"],"summary":"Accept Proposal","operationId":"accept_proposal_api_monitors__monitor_id__proposals__proposal_id__accept_post","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}/proposals/{proposal_id}/decline":{"post":{"tags":["monitors"],"summary":"Decline Proposal","operationId":"decline_proposal_api_monitors__monitor_id__proposals__proposal_id__decline_post","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitors/{monitor_id}/proposals/{proposal_id}/undo":{"post":{"tags":["monitors"],"summary":"Undo Proposal","operationId":"undo_proposal_api_monitors__monitor_id__proposals__proposal_id__undo_post","parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude-sdk-proxy/token":{"post":{"tags":["claude-sdk-proxy"],"summary":"Create Proxy Token","operationId":"create_proxy_token_api_claude_sdk_proxy_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProxyTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProxyTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude-sdk-proxy/session/close":{"post":{"tags":["claude-sdk-proxy"],"summary":"Close Proxy Session","operationId":"close_proxy_session_api_claude_sdk_proxy_session_close_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseProxySessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Close Proxy Session Api Claude Sdk Proxy Session Close Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/posthog/static/{path}":{"get":{"tags":["posthog-proxy"],"summary":"Proxy Posthog Static","description":"Proxy PostHog static assets (toolbar, surveys, etc.).","operationId":"proxy_posthog_static_api_posthog_static__path__get","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"head":{"tags":["posthog-proxy"],"summary":"Proxy Posthog Static","description":"Proxy PostHog static assets (toolbar, surveys, etc.).","operationId":"proxy_posthog_static_api_posthog_static__path__get","parameters":[{"name":"path","in":"path","required":true,"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/posthog/{path}":{"delete":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"options":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"post":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"head":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"patch":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"get":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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"}}}}}},"put":{"tags":["posthog-proxy"],"summary":"Proxy Posthog","description":"Proxy requests to PostHog ingestion API.","operationId":"proxy_posthog_api_posthog__path__delete","parameters":[{"name":"path","in":"path","required":true,"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/webhooks":{"get":{"tags":["webhooks"],"summary":"List Webhooks","operationId":"list_webhooks_api_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["webhooks"],"summary":"Create Webhook","operationId":"create_webhook_api_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/{webhook_id}":{"patch":{"tags":["webhooks"],"summary":"Update Webhook","operationId":"update_webhook_api_webhooks__webhook_id__patch","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}}},"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","operationId":"delete_webhook_api_webhooks__webhook_id__delete","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","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/webhooks/{webhook_id}/test":{"post":{"tags":["webhooks"],"summary":"Test Webhook","operationId":"test_webhook_api_webhooks__webhook_id__test_post","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","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/webhooks/{webhook_id}/deliveries":{"get":{"tags":["webhooks"],"summary":"List Deliveries","operationId":"list_deliveries_api_webhooks__webhook_id__deliveries_get","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"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/escalations":{"get":{"tags":["escalations"],"summary":"List Escalations","operationId":"list_escalations_api_escalations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["escalations"],"summary":"Create Escalation","operationId":"create_escalation_api_escalations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEscalationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escalations/providers":{"get":{"tags":["escalations"],"summary":"List Providers","description":"List available escalation providers with config field schemas.","operationId":"list_providers_api_escalations_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/oncall-sources":{"get":{"tags":["escalations"],"summary":"List Oncall Sources","description":"Return available on-call data sources for the team.\n\nChecks which incident management integrations the team has configured.","operationId":"list_oncall_sources_api_escalations_oncall_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/pd-services":{"get":{"tags":["escalations"],"summary":"List Pd Services","description":"Fetch PagerDuty services using the team's REST API token.","operationId":"list_pd_services_api_escalations_pd_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/template-variables":{"get":{"tags":["escalations"],"summary":"List Template Variables","description":"Return available template variables for message templates.","operationId":"list_template_variables_api_escalations_template_variables_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/slack-users":{"get":{"tags":["escalations"],"summary":"List Slack Users","description":"List non-bot, non-deactivated Slack users for the team (for user picker).","operationId":"list_slack_users_api_escalations_slack_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/slack-channels":{"get":{"tags":["escalations"],"summary":"List Slack Channels","description":"List Slack channels the Deeptrace bot is currently a member of.","operationId":"list_slack_channels_api_escalations_slack_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escalations/{rule_id}":{"patch":{"tags":["escalations"],"summary":"Update Escalation","operationId":"update_escalation_api_escalations__rule_id__patch","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEscalationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["escalations"],"summary":"Delete Escalation","operationId":"delete_escalation_api_escalations__rule_id__delete","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escalations/{rule_id}/test":{"post":{"tags":["escalations"],"summary":"Test Escalation","operationId":"test_escalation_api_escalations__rule_id__test_post","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escalations/{rule_id}/deliveries":{"get":{"tags":["escalations"],"summary":"List Deliveries","operationId":"list_deliveries_api_escalations__rule_id__deliveries_get","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"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/svc/alpha":{"get":{"tags":["test"],"summary":"Alpha","description":"Baseline: steady 10 req/s, ~50ms. Realistic jitter + periodic 30min spikes.","operationId":"alpha_api_svc_alpha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/beta":{"post":{"tags":["test"],"summary":"Beta","description":"Baseline: steady 2 req/s, ~2-5s. Realistic jitter.","operationId":"beta_api_svc_beta_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/gamma":{"get":{"tags":["test"],"summary":"Gamma","description":"Baseline: sporadic bursts, ~200ms. Realistic jitter.","operationId":"gamma_api_svc_gamma_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/delta":{"get":{"tags":["test"],"summary":"Delta","description":"Baseline: steady 5 req/s, ~50ms. Realistic jitter + periodic 30min spikes.","operationId":"delta_api_svc_delta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/epsilon":{"get":{"tags":["test"],"summary":"Epsilon","description":"Baseline: steady 5 req/s, ~50ms, 0% errors. Realistic jitter.","operationId":"epsilon_api_svc_epsilon_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/zeta":{"post":{"tags":["test"],"summary":"Zeta","description":"Baseline: steady 2 req/s, ~2s. Realistic jitter.","operationId":"zeta_api_svc_zeta_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/eta":{"get":{"tags":["test"],"summary":"Eta","description":"Baseline: steady 5 req/s, ~50ms. Gradual degradation when injected.","operationId":"eta_api_svc_eta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/theta":{"get":{"tags":["test"],"summary":"Theta","description":"Baseline: steady 5 req/s, ~50ms. Anomaly: traffic stops.","operationId":"theta_api_svc_theta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/iota":{"get":{"tags":["test"],"summary":"Iota","description":"Mirrors the hand-drawn screenshot pattern:\nHuge initial spike that decays, then noisy sawtooth oscillation\nwith occasional medium spikes. Baseline ~100ms.","operationId":"iota_api_svc_iota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/kappa":{"get":{"tags":["test"],"summary":"Kappa","description":"Realistic noisy endpoint: ~80ms baseline with frequent small spikes,\noccasional medium spikes (~3x), and rare large spikes (~8x) every ~30min.\nGood for testing false positive suppression.","operationId":"kappa_api_svc_kappa_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/inject":{"post":{"tags":["test"],"summary":"Inject Anomalies","description":"Turn ON all anomalies at once.","operationId":"inject_anomalies_api_svc_inject_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/inject-timed":{"post":{"tags":["test"],"summary":"Inject Timed","description":"Inject anomaly for a single endpoint with auto-expiry and severity.\n\nseverity: \"low\" (subtle), \"medium\" (moderate), \"high\" (obvious, default)","operationId":"inject_timed_api_svc_inject_timed_post","parameters":[{"name":"endpoint","in":"query","required":true,"schema":{"type":"string","title":"Endpoint"}},{"name":"duration_minutes","in":"query","required":false,"schema":{"type":"number","default":4.0,"title":"Duration Minutes"}},{"name":"severity","in":"query","required":false,"schema":{"type":"string","default":"high","title":"Severity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/svc/reset":{"post":{"tags":["test"],"summary":"Reset Anomalies","description":"Turn OFF all anomalies.","operationId":"reset_anomalies_api_svc_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/svc/status":{"get":{"tags":["test"],"summary":"Injection Status","description":"Check which anomalies are active.","operationId":"injection_status_api_svc_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/investigate":{"post":{"summary":"Trigger a new investigation","description":"Start a Deeptrace investigation asynchronously. Returns an ``investigation_id`` immediately — poll ``GET /api/v1/investigations/{id}`` for results.","operationId":"trigger_investigation_api_v1_investigate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestigateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestigateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/investigations/{investigation_id}":{"get":{"summary":"Get investigation status and results","description":"Retrieve the current status of an investigation. Poll until ``status`` is ``completed``.","operationId":"get_investigation_api_v1_investigations__investigation_id__get","parameters":[{"name":"investigation_id","in":"path","required":true,"schema":{"type":"string","title":"Investigation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestigationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search-investigations":{"get":{"summary":"Search past investigations","description":"Semantic search over past investigations. Supports natural-language queries and exact Sentry issue ID matching.","operationId":"search_investigations_api_v1_search_investigations_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Natural-language search query","default":"","title":"Query"},"description":"Natural-language search query"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"Maximum results to return","default":5,"title":"Limit"},"description":"Maximum results to return"},{"name":"days_back","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"description":"How far back to search","default":365,"title":"Days Back"},"description":"How far back to search"},{"name":"sentry_issue_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sentry issue ID for exact lookup","title":"Sentry Issue Id"},"description":"Sentry issue ID for exact lookup"},{"name":"include_incomplete","in":"query","required":false,"schema":{"type":"boolean","description":"Include in-progress investigations","default":true,"title":"Include Incomplete"},"description":"Include in-progress investigations"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Investigations Api V1 Search Investigations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chats/{chat_id}":{"get":{"summary":"Get a specific chat","description":"Retrieve a chat by ID including the full conversation and metadata.","operationId":"get_chat_api_v1_chats__chat_id__get","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Chat Api V1 Chats  Chat Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat":{"post":{"summary":"Send a chat message","description":"Send a message to Deeptrace and receive an AI response. Supports multi-turn conversations via ``chat_id``. Set ``stream=true`` for Server-Sent Events streaming.","operationId":"chat_api_v1_chat_post","parameters":[{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","description":"Enable SSE streaming","default":false,"title":"Stream"},"description":"Enable SSE streaming"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/slack/interactive":{"post":{"summary":"Slack Interactive Handler","description":"Handle Slack interactive component interactions (buttons, shortcuts, etc.).\nSlack sends interactive payloads as application/x-www-form-urlencoded with a 'payload' field.","operationId":"slack_interactive_handler_api_slack_interactive_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/alert":{"post":{"summary":"Slack Alert Handler","description":"Slack verification endpoint that responds to challenge requests and processes messages through full investigation.","operationId":"slack_alert_handler_api_alert_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"}}}}}}},"/api/internal/rerun-alert":{"post":{"summary":"Rerun Alert Direct","description":"Rerun an investigation for a Slack message, bypassing all dedup and rule evaluation.\n\nThis is the HTTP equivalent of the Slack \"Re-run Investigation\" button handler —\nit calls process_investigation_background() directly so the investigation always runs.","operationId":"rerun_alert_direct_api_internal_rerun_alert_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/investigations/{investigation_id}":{"get":{"summary":"Get Investigation Endpoint","description":"Get an investigation by ID","operationId":"get_investigation_endpoint_api_investigations__investigation_id__get","parameters":[{"name":"investigation_id","in":"path","required":true,"schema":{"type":"string","title":"Investigation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/investigations/batch/titles":{"post":{"summary":"Get Investigation Titles Batch","description":"Get titles (alert_summary) for multiple investigations by their IDs","operationId":"get_investigation_titles_batch_api_investigations_batch_titles_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/experiment_investigations/{investigation_id}":{"get":{"summary":"Get Experiment Investigation Endpoint","description":"Get an experiment investigation by ID","operationId":"get_experiment_investigation_endpoint_api_experiment_investigations__investigation_id__get","parameters":[{"name":"investigation_id","in":"path","required":true,"schema":{"type":"string","title":"Investigation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/github-webhook":{"post":{"summary":"Github Webhook","description":"Handle GitHub webhook events.","operationId":"github_webhook_api_github_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/initiate_github_connection":{"post":{"summary":"Initiate Github","description":"Initiate GitHub connection for authenticated user.","operationId":"initiate_github_api_initiate_github_connection_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_github_installation_id":{"post":{"summary":"Set Github Installation Id","description":"Set GitHub installation ID for authenticated user after state validation or handle installation requests.","operationId":"set_github_installation_id_api_set_github_installation_id_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/installations":{"get":{"summary":"Get Installations","description":"Get the authenticated user's installation data.","operationId":"get_installations_api_installations_get","parameters":[{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/set_slack_installation_id":{"post":{"summary":"Set Slack Installation Id","description":"Set Slack team ID for authenticated user after OAuth code exchange.","operationId":"set_slack_installation_id_api_set_slack_installation_id_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_datadog_credentials":{"post":{"summary":"Set Datadog Credentials","description":"Set Datadog credentials for authenticated user.","operationId":"set_datadog_credentials_api_set_datadog_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_signoz_credentials":{"post":{"summary":"Set Signoz Credentials","description":"Set SigNoz credentials for authenticated user.","operationId":"set_signoz_credentials_api_set_signoz_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_pagerduty_credentials":{"post":{"summary":"Set Pagerduty Credentials","description":"Set PagerDuty credentials for authenticated user.","operationId":"set_pagerduty_credentials_api_set_pagerduty_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_honeycomb_credentials":{"post":{"summary":"Set Honeycomb Credentials","description":"Set Honeycomb credentials for authenticated user.","operationId":"set_honeycomb_credentials_api_set_honeycomb_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_firestore_credentials":{"post":{"summary":"Set Firestore Credentials","description":"Set Firestore credentials for authenticated user using GCP Service Account.\n\nThis endpoint configures Firestore access using a GCP Service Account.\nCollection-level access is controlled programmatically via allowed_collections.\n\nPayload:\n{\n    \"project_id\": \"your-gcp-project\",  # GCP project ID (required)\n    \"service_account_key\": {...},  # Service account JSON key (required)\n    \"allowed_collections\": [\"users\", \"orders\", \"products/*/reviews\"]  # Optional\n}\n\nSetup steps for the customer:\n1. Create a GCP Service Account with Firestore Viewer role (roles/datastore.viewer)\n2. Generate a JSON key for the service account\n3. Provide the JSON key and optionally specify which collections to allow access to\n\nSecurity notes:\n- Service account has IAM-level access to Firestore (database-wide)\n- Collection-level restrictions are enforced programmatically by Deeptrace\n- Credentials are encrypted at rest\n- Wildcards supported in allowed_collections (e.g., \"users/*/orders\")","operationId":"set_firestore_credentials_api_set_firestore_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/firestore/credentials":{"delete":{"summary":"Delete Firestore Credentials","description":"Delete Firestore credentials for the authenticated user's team.","operationId":"delete_firestore_credentials_api_firestore_credentials_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/firestore/status":{"get":{"summary":"Get Firestore Status","description":"Get Firestore integration status for the authenticated user's team.\n\nReturns connection status and configuration details.","operationId":"get_firestore_status_api_firestore_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/firestore/allowed_collections":{"patch":{"summary":"Update Firestore Allowed Collections","description":"Update allowed collections for Firestore access.\n\nThis allows updating the collection-level restrictions without\nre-uploading the service account credentials.\n\nPayload:\n{\n    \"allowed_collections\": [\"users\", \"orders\"]  # Array of collection paths, or null for all\n}\n\nSet allowed_collections to null to allow access to all collections.\nSupports wildcards like \"users/*/orders\" for subcollections.","operationId":"update_firestore_allowed_collections_api_firestore_allowed_collections_patch","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_pganalyze_credentials":{"post":{"summary":"Set Pganalyze Credentials","description":"Set pganalyze credentials for authenticated user.","operationId":"set_pganalyze_credentials_api_set_pganalyze_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_grafana_credentials":{"post":{"summary":"Set Grafana Credentials","description":"Set Grafana credentials for authenticated user.","operationId":"set_grafana_credentials_api_set_grafana_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_self_hosted_grafana_credentials":{"post":{"summary":"Set Self Hosted Grafana Credentials","description":"Set self-hosted Grafana MCP credentials for authenticated user.\nThis is for teams that run their own Grafana MCP server instead of using Grafana Cloud.\n\npayload:\n{\n    \"grafana_mcp_url\": \"http://your-server:8443/mcp\", required\n    \"grafana_mcp_auth_token\": \"your-auth-token\", required\n}","operationId":"set_self_hosted_grafana_credentials_api_set_self_hosted_grafana_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/test_self_hosted_grafana_connection":{"post":{"summary":"Test Self Hosted Grafana Connection","description":"Test connection to a self-hosted Grafana MCP server before saving credentials.\nTests both the health endpoint and MCP tools list.\n\npayload:\n{\n    \"grafana_mcp_url\": \"http://your-server:8443/mcp\", required\n    \"grafana_mcp_auth_token\": \"your-auth-token\", required\n}","operationId":"test_self_hosted_grafana_connection_api_test_self_hosted_grafana_connection_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_posthog_credentials":{"post":{"summary":"Set Posthog Credentials","description":"Set PostHog credentials for authenticated user.","operationId":"set_posthog_credentials_api_set_posthog_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_coda_credentials":{"post":{"summary":"Set Coda Credentials","description":"Set Coda credentials for authenticated user.","operationId":"set_coda_credentials_api_set_coda_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_rollbar_credentials":{"post":{"summary":"Set Rollbar Credentials","description":"Set Rollbar credentials for authenticated user.","operationId":"set_rollbar_credentials_api_set_rollbar_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_groundcover_credentials":{"post":{"summary":"Set Groundcover Credentials","description":"Set groundcover credentials for authenticated user.","operationId":"set_groundcover_credentials_api_set_groundcover_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_incidentio_credentials":{"post":{"summary":"Set Incidentio Credentials","description":"Set incident.io credentials for authenticated user.","operationId":"set_incidentio_credentials_api_set_incidentio_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_launchdarkly_credentials":{"post":{"summary":"Set Launchdarkly Credentials","description":"Set LaunchDarkly credentials for authenticated user.","operationId":"set_launchdarkly_credentials_api_set_launchdarkly_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_bigquery_credentials":{"post":{"summary":"Set Bigquery Credentials","description":"Set BigQuery credentials for authenticated user.","operationId":"set_bigquery_credentials_api_set_bigquery_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bigquery/status":{"get":{"summary":"Get Bigquery Status","description":"Get BigQuery integration status for the authenticated user's team.","operationId":"get_bigquery_status_api_bigquery_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bigquery/datasets":{"get":{"summary":"List Bigquery Datasets","description":"List all datasets in the team's BigQuery project.","operationId":"list_bigquery_datasets_api_bigquery_datasets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bigquery/datasets/{dataset_id}/tables":{"get":{"summary":"List Bigquery Tables","description":"List all tables in a BigQuery dataset.","operationId":"list_bigquery_tables_api_bigquery_datasets__dataset_id__tables_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/set_anthropic_key":{"post":{"summary":"Set Anthropic Key","description":"Set or clear the Anthropic API key for the authenticated user's team.","operationId":"set_anthropic_key_api_set_anthropic_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/team-settings":{"get":{"summary":"Get Team Settings","description":"Get team settings for the authenticated user's team.","operationId":"get_team_settings_api_team_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Update Team Settings","description":"Update team settings for the authenticated user's team.\n\nWhen default_opted_out is changed, automatically disables all active rules\nto prevent unintended consequences from the mode switch.","operationId":"update_team_settings_api_team_settings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_aws_cloudwatch_tenant_arn":{"post":{"summary":"Set Aws Cloudwatch Tenant Arn","description":"Set AWS CloudWatch tenant ARN for the authenticated user's team.","operationId":"set_aws_cloudwatch_tenant_arn_api_set_aws_cloudwatch_tenant_arn_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/verify_proof":{"options":{"summary":"Options Verify Proof","description":"Handle preflight OPTIONS request for verify-proof endpoint","operationId":"options_verify_proof_api_verify_proof_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/full_investigation_async":{"post":{"summary":"Full Investigation Async","description":"Start an investigation asynchronously and return immediately.\n\nThis is the correct pattern for long-running investigations behind an ALB/CDN:\n- Create a placeholder investigation row immediately\n- Spawn the investigation in the background\n- Caller polls `GET /api/investigations/{id}` (or MCP `get_investigation`) for results\n\nBody format (FastAPI multi-body-params):\n  {\n    \"request\": {\"query\": \"...\", \"system_message\": \"...\"},\n    \"mcps\": [\"sentry-mcp\", ...]       // optional — falls back to team DB config\n  }","operationId":"full_investigation_async_api_full_investigation_async_post","parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"anthropic_api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anthropic Api Key"}},{"name":"custom_context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Context"}},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"claude-opus-4-6","title":"Model"}},{"name":"enable_alt_hypotheses","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Enable Alt Hypotheses"}},{"name":"is_hypothesis_investigation","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Is Hypothesis Investigation"}},{"name":"enable_explore_subagents","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Explore Subagents"}},{"name":"initiated_by_slack_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiated By Slack User Id"}},{"name":"existing_investigation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Investigation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_full_investigation_async_api_full_investigation_async_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Full Investigation Async Api Full Investigation Async Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search-investigations-internal":{"get":{"summary":"Search Investigations Internal","description":"Internal endpoint for the EC2 MCP server to search investigations via EKS.\n\nNot authenticated — only reachable on the internal network (same pattern as\n``/api/full_investigation_async``).","operationId":"search_investigations_internal_api_search_investigations_internal_get","parameters":[{"name":"team_id","in":"query","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","default":"","title":"Query"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"title":"Limit"}},{"name":"days_back","in":"query","required":false,"schema":{"type":"integer","default":365,"title":"Days Back"}},{"name":"sentry_issue_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sentry Issue Id"}},{"name":"include_incomplete","in":"query","required":false,"schema":{"type":"string","default":"true","title":"Include Incomplete"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/full_investigation":{"post":{"summary":"Full Investigation","description":"End-to-end investigation pipeline that processes a query and returns final analysis.\n\nArgs:\n    existing_investigation_id: Optional pre-created investigation ID (placeholder) to update instead of creating new.\n    enable_alt_hypotheses: Whether to generate alternative hypotheses (default True).\n    is_hypothesis_investigation: If True, use \"Hypothesis Result\" instead of \"Quick Summary\" in prompts.\n    alert_timestamp: Optional datetime to use for timestamp context instead of current time.\n                    Used for backtesting to provide the original alert time context.","operationId":"full_investigation_api_full_investigation_post","parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"slack_perma_link","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slack Perma Link"}},{"name":"message_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Ts"}},{"name":"channel_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"}},{"name":"anthropic_api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anthropic Api Key"}},{"name":"custom_context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Context"}},{"name":"skip_db_save","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Skip Db Save"}},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"claude-opus-4-6","title":"Model"}},{"name":"old_investigation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Investigation Id"}},{"name":"existing_investigation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Investigation Id"}},{"name":"enable_alt_hypotheses","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enable Alt Hypotheses"}},{"name":"is_hypothesis_investigation","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Is Hypothesis Investigation"}},{"name":"alert_timestamp","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Alert Timestamp"}},{"name":"enable_explore_subagents","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Explore Subagents"}},{"name":"initiated_by_slack_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiated By Slack User Id"}},{"name":"investigation_monitor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Monitor Id"}},{"name":"investigation_source","in":"query","required":false,"schema":{"type":"string","default":"slack","title":"Investigation Source"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_full_investigation_api_full_investigation_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullInvestigationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categorize-investigation":{"post":{"summary":"Categorize Investigation Endpoint","description":"Categorize an investigation based on the investigation ID.","operationId":"categorize_investigation_endpoint_api_categorize_investigation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorizeInvestigationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/issues":{"get":{"summary":"Get Issues List","description":"Get paginated list of issues filtered by last X days.","operationId":"get_issues_list_api_issues_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Count"},"description":"Number of items per page"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of days to look back (default: 7)","default":7,"title":"Days"},"description":"Number of days to look back (default: 7)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/investigations_from_issue":{"get":{"summary":"Get Investigations From Issue","description":"Get paginated list of investigations linked to a specific issue.","operationId":"get_investigations_from_issue_api_investigations_from_issue_get","parameters":[{"name":"issue_id","in":"query","required":true,"schema":{"type":"string","description":"Issue ID to get investigations for","title":"Issue Id"},"description":"Issue ID to get investigations for"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Count"},"description":"Number of items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/investigation-list":{"get":{"summary":"Get Investigation List","description":"Get paginated list of investigations with optional category and repo filtering.","operationId":"get_investigation_list_api_investigation_list_get","parameters":[{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated category names to filter by","title":"Categories"},"description":"Comma-separated category names to filter by"},{"name":"repos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated repo names in 'owner/name' format to filter by","title":"Repos"},"description":"Comma-separated repo names in 'owner/name' format to filter by"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Count"},"description":"Number of items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/attributed-repos":{"get":{"summary":"Get Attributed Repos","description":"Get list of configured repos for the team (from team.repo_owner + team.repo_names).","operationId":"get_attributed_repos_api_attributed_repos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/investigation-categories":{"get":{"summary":"Get Investigation Categories","description":"Get list of unique categories for the team's investigations.","operationId":"get_investigation_categories_api_investigation_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/team/feature-flags":{"get":{"summary":"Get Team Feature Flags","description":"Get feature flags for the team.","operationId":"get_team_feature_flags_api_team_feature_flags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/set_owner_mention_severity_threshold":{"post":{"summary":"Set Owner Mention Severity Threshold","description":"Set the minimum severity threshold (1-5) for owner mention pings. Pass null to clear.","operationId":"set_owner_mention_severity_threshold_api_set_owner_mention_severity_threshold_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/investigation-counts":{"get":{"summary":"Get Investigation Counts","description":"Get daily investigation counts for the past N days (including today) for the user's team.","operationId":"get_investigation_counts_api_investigation_counts_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Number of past days including today","default":7,"title":"Days"},"description":"Number of past days including today"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat-counts":{"get":{"summary":"Get Chat Counts","description":"Get daily chat counts for the past N days (including today) for the user's team.","operationId":"get_chat_counts_api_chat_counts_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Number of past days including today","default":7,"title":"Days"},"description":"Number of past days including today"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search-investigation":{"get":{"summary":"Search Investigation","description":"Search investigations by keyword with optional category filtering and pagination.","operationId":"search_investigation_api_search_investigation_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Keyword to search in investigation summaries","title":"Q"},"description":"Keyword to search in investigation summaries"},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated category names to filter by","title":"Categories"},"description":"Comma-separated category names to filter by"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Count"},"description":"Number of items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dedup-investigations":{"get":{"summary":"Get Deduped Investigations","description":"Group investigations from the past N hours by root cause into deduped issues.\n\nUses intelligent LLM-based clustering to identify investigations that share\nthe same underlying root cause and groups them together.","operationId":"get_deduped_investigations_api_dedup_investigations_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"Number of hours to look back (default: 24, max: 168)","default":24,"title":"Hours"},"description":"Number of hours to look back (default: 24, max: 168)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/investigation-success":{"get":{"summary":"Get Investigation Success","description":"Get investigation success analytics per channel.","operationId":"get_investigation_success_api_investigation_success_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sentry/oauth/url":{"post":{"summary":"Get Sentry Oauth Url","description":"Generate the Sentry OAuth authorization URL and return it to the frontend.\nImplements manual PKCE/state with DB persistence so callback can be handled statelessly.","operationId":"get_sentry_oauth_url_api_sentry_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentryOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentryOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jam/oauth/url":{"post":{"summary":"Get Jam Oauth Url","description":"Generate the Jam OAuth authorization URL and return it to the frontend.\nImplements manual PKCE/state with DB persistence so callback can be handled statelessly.","operationId":"get_jam_oauth_url_api_jam_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JamOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JamOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/satellite-tokens":{"get":{"tags":["satellite-tokens"],"summary":"List Tokens","description":"List all ingest tokens for the user's team.","operationId":"list_tokens_api_satellite_tokens_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TokenResponse"},"type":"array","title":"Response List Tokens Api Satellite Tokens Get"}}}}}},"post":{"tags":["satellite-tokens"],"summary":"Create Token","description":"Create a new ingest token.\n\nThe full token is only returned once. Store it securely!","operationId":"create_token_api_satellite_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/satellite-tokens/{token_id}":{"delete":{"tags":["satellite-tokens"],"summary":"Revoke Token","description":"Revoke an ingest token.\n\nThe token will immediately stop working.","operationId":"revoke_token_api_satellite_tokens__token_id__delete","parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/satellite-management/dashboard":{"get":{"tags":["satellite-management"],"summary":"Get Satellite Dashboard","description":"Get satellite dashboard data for a team.","operationId":"get_satellite_dashboard_api_satellite_management_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardResponse"}}}}}}},"/api/sentry/oauth/callback":{"post":{"summary":"Sentry Oauth Callback","description":"Accept the OAuth callback URL, exchange code for tokens using stored PKCE/state, and persist to DB.","operationId":"sentry_oauth_callback_api_sentry_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentryOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentryOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jam/oauth/callback":{"post":{"summary":"Jam Oauth Callback","description":"Accept the OAuth callback URL, exchange code for tokens using stored PKCE/state, and persist to DB.","operationId":"jam_oauth_callback_api_jam_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JamOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JamOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/atlassian/oauth/url":{"post":{"summary":"Get Atlassian Oauth Url","description":"Generate the Atlassian OAuth authorization URL and return it to the frontend.\nImplements manual PKCE/state with DB persistence so callback can be handled statelessly.","operationId":"get_atlassian_oauth_url_api_atlassian_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtlassianOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtlassianOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/atlassian/oauth/callback":{"post":{"summary":"Atlassian Oauth Callback","description":"Accept the OAuth callback URL, exchange code for tokens using stored PKCE/state, and persist to DB.","operationId":"atlassian_oauth_callback_api_atlassian_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtlassianOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtlassianOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notion/oauth/url":{"post":{"summary":"Get Notion Oauth Url","description":"Generate the Notion OAuth authorization URL and return it to the frontend.","operationId":"get_notion_oauth_url_api_notion_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notion/oauth/callback":{"post":{"summary":"Notion Oauth Callback","description":"Accept the OAuth callback URL, exchange code for tokens using stored PKCE/state, and persist to DB.","operationId":"notion_oauth_callback_api_notion_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/linear/oauth/url":{"post":{"summary":"Get Linear Oauth Url","description":"Generate the Linear OAuth authorization URL and return it to the frontend.\nLinear uses standard OAuth 2.0 with PKCE flow.","operationId":"get_linear_oauth_url_api_linear_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearOAuthURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearOAuthURLResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/linear/oauth/callback":{"post":{"summary":"Linear Oauth Callback","description":"Accept the OAuth callback URL, exchange code for tokens using stored PKCE/state, and persist to DB.","operationId":"linear_oauth_callback_api_linear_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/linear-webhook":{"post":{"summary":"Linear Webhook","description":"Webhook endpoint for Linear events.\n\nHandles:\n- OAuthAuthorization revoked events: When Deeptrace integration is revoked, removes\n  linear_oauth_token_id and linear-mcp from team config.\n- Issue create/update events: Triggers investigations when configured (feature-flagged).\n- AgentSessionEvent: Chat-style responses when @Deeptrace is mentioned, using\n  Linear's Agent Interaction protocol (AgentActivity mutations).\n- Comment events: Ignored (agent mentions use AgentSessionEvent instead).\n\nLinear webhook payload structure:\n{\n   \"action\": \"create\" | \"update\" | \"revoked\" | \"created\" | \"prompted\",\n   \"type\": \"Issue\" | \"Comment\" | \"OAuthAuthorization\" | \"AgentSessionEvent\",\n   \"organizationId\": \"...\",\n   \"data\": { ... }  // for Issue/Comment\n   \"agentSession\": { ... }  // for AgentSessionEvent\n}","operationId":"linear_webhook_api_linear_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/linear/organization-info":{"get":{"summary":"Get Linear Org Info","description":"Get the Linear organization info (including urlKey/slug) for the authenticated user's team.\nReturns the organization ID and urlKey that can be used to construct the Linear settings URL.","operationId":"get_linear_org_info_api_linear_organization_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/linear-ticket-trigger/config":{"get":{"summary":"Get Linear Ticket Trigger Config","description":"Get the Linear ticket trigger configuration for the authenticated team.","operationId":"get_linear_ticket_trigger_config_api_linear_ticket_trigger_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/linear-ticket-trigger/configure":{"post":{"summary":"Configure Linear Ticket Trigger","description":"Update the Linear ticket trigger configuration for the authenticated team.","operationId":"configure_linear_ticket_trigger_api_linear_ticket_trigger_configure_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/linear-ticket-trigger/teams":{"get":{"summary":"List Linear Teams For Trigger","description":"List available Linear teams for trigger configuration.","operationId":"list_linear_teams_for_trigger_api_linear_ticket_trigger_teams_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/create-user-webhook":{"post":{"summary":"Create User Webhook","description":"Webhook endpoint for Clerk user creation events","operationId":"create_user_webhook_api_create_user_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/rules":{"get":{"summary":"Get Rules","description":"Get all rules for the user's team - uses precomputed cache for fast reads.","operationId":"get_rules_api_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/slack-users":{"get":{"summary":"Get Slack Users","description":"Get Slack users for the user's team.","operationId":"get_slack_users_api_slack_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/slack-users/humans":{"get":{"summary":"Get Slack Users Humans","description":"Get human (non-bot) Slack users for the user's team. Used by escalation config UI.","operationId":"get_slack_users_humans_api_slack_users_humans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/slack-channels":{"get":{"summary":"Get Slack Channels","description":"Get Slack channels for the user's team.","operationId":"get_slack_channels_api_slack_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/slack-channels/{channel_id}/auto-investigate":{"post":{"summary":"Set Channel Auto Investigate","description":"Enable or disable auto-investigation for a specific Slack channel.\n\nBody: { \"auto_investigate\": true | false }\n- true: auto-investigate bot messages in this channel\n- false: don't auto-investigate (can still be overridden by 'investigate' rules)","operationId":"set_channel_auto_investigate_api_slack_channels__channel_id__auto_investigate_post","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/slack-channels/{channel_id}/investigate-all-messages":{"post":{"summary":"Set Channel Investigate All Messages","description":"Enable or disable human message investigation for a specific Slack channel.\n\nBody: { \"investigate_all_messages\": true | false }\n- true: investigate human messages in this channel.\n- false: revert to bot-only investigation (unless rules match).","operationId":"set_channel_investigate_all_messages_api_slack_channels__channel_id__investigate_all_messages_post","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/add_context":{"post":{"summary":"Add Custom Context","description":"Add a new row to custom_context with the user's team.\n\n- description: required in body\n- channel_id: optional list of channel IDs (e.g., [\"C123\", \"C456\"]) or None for all channels\n- chat_enabled: optional in body\n- enabled: optional in body\nOther fields (id, created_at) are auto-filled by DB defaults.","operationId":"add_custom_context_api_add_context_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddContextRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/get_context":{"get":{"summary":"Get Custom Context","description":"Get all custom_context rows for the authenticated user's team.","operationId":"get_custom_context_api_get_context_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetContextResponse"}}}}}}},"/api/edit_context":{"put":{"summary":"Edit Custom Context","description":"Edit an existing custom_context row. User must own the team that owns the context.","operationId":"edit_custom_context_api_edit_context_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditContextRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/delete_context/{context_id}":{"delete":{"summary":"Delete Custom Context","description":"Delete a custom_context row. User must own the team that owns the context.","operationId":"delete_custom_context_api_delete_context__context_id__delete","parameters":[{"name":"context_id","in":"path","required":true,"schema":{"type":"string","title":"Context Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/static":{"post":{"summary":"Save Static Rule","description":"Save or update static rule configuration.","operationId":"save_static_rule_api_rules_static_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticRuleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/dynamic":{"post":{"summary":"Save Dynamic Rule","description":"Create a new dynamic rule.","operationId":"save_dynamic_rule_api_rules_dynamic_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DynamicRuleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/auto-join":{"get":{"summary":"Get Auto Join Rules","description":"Get all auto-join rules for the authenticated user's team.","operationId":"get_auto_join_rules_api_rules_auto_join_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Auto Join Rule","description":"Create an auto-join rule that joins channels matching a name pattern.","operationId":"create_auto_join_rule_api_rules_auto_join_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoJoinRuleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/auto-join/{rule_id}":{"delete":{"summary":"Delete Auto Join Rule","description":"Delete an auto-join rule.","operationId":"delete_auto_join_rule_api_rules_auto_join__rule_id__delete","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/{rule_id}/toggle":{"post":{"summary":"Toggle Rule","description":"Toggle the active status of a rule.","operationId":"toggle_rule_api_rules__rule_id__toggle_post","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleToggleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rules/{rule_id}":{"put":{"summary":"Update Dynamic Rule","description":"Update a dynamic rule.","operationId":"update_dynamic_rule_api_rules__rule_id__put","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DynamicRuleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Rule","description":"Delete a rule.","operationId":"delete_rule_api_rules__rule_id__delete","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aws-config-yaml":{"get":{"summary":"Get Aws Config Yaml","description":"Generate and return a customized AWS CloudFormation config.yaml with team-specific external ID.","operationId":"get_aws_config_yaml_api_aws_config_yaml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/custom-mcp":{"get":{"summary":"List Custom Mcps","description":"List all custom MCP servers for the team.","operationId":"list_custom_mcps_api_custom_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CustomMCPResponse"},"type":"array","title":"Response List Custom Mcps Api Custom Mcp Get"}}}}}},"post":{"summary":"Create Custom Mcp","description":"Create a new custom MCP server for the team.","operationId":"create_custom_mcp_api_custom_mcp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/custom-mcp/{mcp_id}":{"put":{"summary":"Update Custom Mcp","description":"Update an existing custom MCP server. If auth_header_value is not provided, the existing value is preserved.","operationId":"update_custom_mcp_api_custom_mcp__mcp_id__put","parameters":[{"name":"mcp_id","in":"path","required":true,"schema":{"type":"string","title":"Mcp Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Custom Mcp","description":"Delete a custom MCP server.","operationId":"delete_custom_mcp_api_custom_mcp__mcp_id__delete","parameters":[{"name":"mcp_id","in":"path","required":true,"schema":{"type":"string","title":"Mcp Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/custom-mcp/{mcp_id}/toggle":{"post":{"summary":"Toggle Custom Mcp","description":"Toggle the enabled status of a custom MCP server.","operationId":"toggle_custom_mcp_api_custom_mcp__mcp_id__toggle_post","parameters":[{"name":"mcp_id","in":"path","required":true,"schema":{"type":"string","title":"Mcp Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPToggleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomMCPResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/custom-mcp/{mcp_id}/test":{"post":{"summary":"Test Custom Mcp","description":"Test connection to a custom MCP server.","operationId":"test_custom_mcp_api_custom_mcp__mcp_id__test_post","parameters":[{"name":"mcp_id","in":"path","required":true,"schema":{"type":"string","title":"Mcp Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/snowflake/oauth/config":{"post":{"summary":"Store Snowflake Oauth Config","description":"Store Snowflake OAuth client configuration (client_id, client_secret, account) for the user's team.\nThis sets up the team to be able to complete the OAuth flow with Snowflake.","operationId":"store_snowflake_oauth_config_api_snowflake_oauth_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnowflakeOAuthConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnowflakeOAuthConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/snowflake/oauth/callback":{"post":{"summary":"Snowflake Oauth Callback","description":"Exchange an OAuth authorization code for access and refresh tokens from Snowflake.\nUses the team's stored client_id, client_secret, and account to perform the exchange.","operationId":"snowflake_oauth_callback_api_snowflake_oauth_callback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnowflakeOAuthCallbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnowflakeOAuthCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mcp-api-keys":{"get":{"summary":"List Mcp Api Keys","description":"List all MCP API keys created by the authenticated user.\n\nOnly shows keys created by the current user (creator-only visibility).\nThe full API key is never returned - only the prefix for identification.","operationId":"list_mcp_api_keys_api_mcp_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MCPApiKeyListItem"},"type":"array","title":"Response List Mcp Api Keys Api Mcp Api Keys Get"}}}}}},"post":{"summary":"Create Mcp Api Key","description":"Create a new MCP API key for the authenticated user.\n\nThe API key is returned only once upon creation and cannot be retrieved later.\nStore it securely.\n\nUse this key in Claude Code or Cursor with:\n{\n    \"mcpServers\": {\n        \"deeptrace\": {\n            \"url\": \"https://api.deeptrace.ai/mcp/sse\",\n            \"headers\": {\n                \"Authorization\": \"Bearer <your_api_key>\"\n            }\n        }\n    }\n}","operationId":"create_mcp_api_key_api_mcp_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMCPApiKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mcp-api-keys/{key_id}":{"delete":{"summary":"Revoke Mcp Api Key","description":"Revoke an MCP API key.\n\nOnly the user who created the key can revoke it.\nThe key will immediately stop working for all MCP requests.","operationId":"revoke_mcp_api_key_api_mcp_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api-keys":{"get":{"summary":"List Api Keys","description":"List all Deeptrace API keys for the authenticated user's team.\n\nAll team members can see all API keys created by anyone on the team.","operationId":"list_api_keys_api_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MCPApiKeyListItem"},"type":"array","title":"Response List Api Keys Api Api Keys Get"}}}}}},"post":{"summary":"Create Api Key","description":"Create a new Deeptrace API key for the authenticated user.\n\nAPI keys are used to trigger and retrieve investigations via the REST API\n(POST /api/v1/investigate, GET /api/v1/investigations/{id}).\n\nThe API key is returned only once upon creation and cannot be retrieved later.","operationId":"create_api_key_api_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMCPApiKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api-keys/{key_id}":{"delete":{"summary":"Revoke Api Key","description":"Revoke a Deeptrace API key.\n\nAny member of the same team can revoke the key.\nThe key will immediately stop working for all REST API requests.","operationId":"revoke_api_key_api_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AddContextRequest":{"properties":{"description":{"type":"string","title":"Description"},"channel_id":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channel Id"},"chat_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chat Enabled"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","required":["description"],"title":"AddContextRequest","description":"Request model for adding a custom context row."},"AddDashboardViewRequest":{"properties":{"url":{"type":"string","title":"Url"},"role":{"type":"string","title":"Role","default":"watch"}},"type":"object","required":["url"],"title":"AddDashboardViewRequest","description":"Request to add a dashboard view by pasting a URL."},"AddEndpointRequest":{"properties":{"endpoint_route":{"type":"string","title":"Endpoint Route"},"service_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Name"},"customer_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Description"},"metric_preference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Preference"}},"type":"object","required":["endpoint_route"],"title":"AddEndpointRequest","description":"Request to register an endpoint for monitoring."},"AddIcebergColumnRequest":{"properties":{"table_name":{"type":"string","minLength":1,"title":"Table Name"},"column_name":{"type":"string","minLength":1,"title":"Column Name"},"column_type":{"type":"string","minLength":1,"title":"Column Type","default":"string"},"include_lanes":{"type":"boolean","title":"Include Lanes","default":true},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","required":["table_name","column_name"],"title":"AddIcebergColumnRequest"},"AddIcebergPartitionRequest":{"properties":{"table_name":{"type":"string","minLength":1,"title":"Table Name"},"column_name":{"type":"string","minLength":1,"title":"Column Name"},"include_lanes":{"type":"boolean","title":"Include Lanes","default":true},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","required":["table_name","column_name"],"title":"AddIcebergPartitionRequest"},"AdminCheckResponse":{"properties":{"is_admin":{"type":"boolean","title":"Is Admin"},"user_id":{"type":"string","title":"User Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},"type":"object","required":["is_admin","user_id"],"title":"AdminCheckResponse","description":"Response for admin status check."},"AtlassianOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"AtlassianOAuthCallbackRequest"},"AtlassianOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"AtlassianOAuthCallbackResponse"},"AtlassianOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"read:jira-work read:confluence-content.all"}},"type":"object","title":"AtlassianOAuthURLRequest"},"AtlassianOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"AtlassianOAuthURLResponse"},"AutoJoinRuleRequest":{"properties":{"channel_name_pattern":{"type":"string","title":"Channel Name Pattern"}},"type":"object","required":["channel_name_pattern"],"title":"AutoJoinRuleRequest","description":"Request model for auto-join rule creation."},"BackfillChatRequest":{"properties":{"chat_id":{"type":"string","title":"Chat Id","description":"Chat UUID to backfill from"}},"type":"object","required":["chat_id"],"title":"BackfillChatRequest"},"BackfillRecentCountRollupRequest":{"properties":{"table_name":{"type":"string","minLength":1,"title":"Table Name"},"lookback_hours":{"type":"integer","maximum":168.0,"minimum":1.0,"title":"Lookback Hours","default":24},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","required":["table_name"],"title":"BackfillRecentCountRollupRequest"},"BatchFileChange":{"properties":{"path":{"type":"string","title":"Path"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"action":{"type":"string","title":"Action","default":"update"}},"type":"object","required":["path"],"title":"BatchFileChange"},"BatchWriteRequest":{"properties":{"files":{"items":{"$ref":"#/components/schemas/BatchFileChange"},"type":"array","title":"Files"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["files"],"title":"BatchWriteRequest"},"Body_full_investigation_api_full_investigation_post":{"properties":{"request":{"$ref":"#/components/schemas/FullInvestigationRequest"},"mcps":{"items":{"type":"string"},"type":"array","title":"Mcps"},"disabled_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Disabled Tools"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images"},"ci_history_tool_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ci History Tool Context"}},"type":"object","required":["request","mcps"],"title":"Body_full_investigation_api_full_investigation_post"},"Body_full_investigation_async_api_full_investigation_async_post":{"properties":{"request":{"$ref":"#/components/schemas/FullInvestigationRequest"},"mcps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcps","description":"List of MCP server names to use for the investigation. If omitted, pulled from team config."},"disabled_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Disabled Tools"}},"type":"object","required":["request"],"title":"Body_full_investigation_async_api_full_investigation_async_post"},"BuildSpansServiceHourlySummaryRequest":{"properties":{"lookback_hours":{"type":"integer","maximum":168.0,"minimum":1.0,"title":"Lookback Hours","default":24},"summary_table_name":{"type":"string","minLength":1,"title":"Summary Table Name","default":"summary_spans_service_hourly"},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","title":"BuildSpansServiceHourlySummaryRequest"},"CIAutofixConfigPayload":{"properties":{"repo_allowlist":{"items":{"type":"string"},"type":"array","title":"Repo Allowlist"},"workflow_allowlist":{"items":{"type":"string"},"type":"array","title":"Workflow Allowlist"},"draft_prs":{"type":"boolean","title":"Draft Prs","default":true}},"type":"object","title":"CIAutofixConfigPayload"},"CIAutofixConfigResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"config":{"$ref":"#/components/schemas/CIAutofixConfigPayload"}},"type":"object","required":["enabled","config"],"title":"CIAutofixConfigResponse"},"CIAutofixRetryResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"status":{"type":"string","title":"Status"}},"type":"object","required":["success","status"],"title":"CIAutofixRetryResponse"},"CIAutofixRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"repo_owner":{"type":"string","title":"Repo Owner"},"repo_name":{"type":"string","title":"Repo Name"},"run_id":{"type":"integer","title":"Run Id"},"run_attempt":{"type":"integer","title":"Run Attempt"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name"},"run_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Url"},"head_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Head Sha"},"head_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Head Branch"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Branch"},"event_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Name"},"conclusion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conclusion"},"status":{"type":"string","enum":["queued","awaiting_snapshot","investigating","completed_no_fix","pr_opened","verifying_fix","verified_fix","suppressed_duplicate_run","suppressed_existing_pr","superseded","failed_snapshot_stale","failed"],"title":"Status"},"failing_jobs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Failing Jobs"},"failure_signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Signature"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"attempt_count":{"type":"integer","title":"Attempt Count","default":0},"investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"},"recommended_pr":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Recommended Pr"},"pr_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pr Number"},"pr_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pr Url"},"pr_is_draft":{"type":"boolean","title":"Pr Is Draft","default":true},"suppressed_by_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suppressed By Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","team_id","repo_owner","repo_name","run_id","run_attempt","status","created_at","updated_at"],"title":"CIAutofixRunResponse"},"CIAutofixRunsResponse":{"properties":{"runs":{"items":{"$ref":"#/components/schemas/CIAutofixRunResponse"},"type":"array","title":"Runs"}},"type":"object","title":"CIAutofixRunsResponse"},"CIWorkflowRunResponse":{"properties":{"run_id":{"type":"integer","title":"Run Id"},"run_attempt":{"type":"integer","title":"Run Attempt"},"repo_owner":{"type":"string","title":"Repo Owner"},"repo_name":{"type":"string","title":"Repo Name"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name"},"run_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Url"},"head_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Head Sha"},"head_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Head Branch"},"event_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"conclusion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conclusion"},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Seconds"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"autofix_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Autofix Run Id"},"autofix_status":{"anyOf":[{"type":"string","enum":["queued","awaiting_snapshot","investigating","completed_no_fix","pr_opened","verifying_fix","verified_fix","suppressed_duplicate_run","suppressed_existing_pr","superseded","failed_snapshot_stale","failed"]},{"type":"null"}],"title":"Autofix Status"},"autofix_investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Autofix Investigation Id"},"autofix_pr_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Autofix Pr Number"},"autofix_pr_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Autofix Pr Url"}},"type":"object","required":["run_id","run_attempt","repo_owner","repo_name","created_at","updated_at"],"title":"CIWorkflowRunResponse"},"CIWorkflowRunsResponse":{"properties":{"workflow_runs":{"items":{"$ref":"#/components/schemas/CIWorkflowRunResponse"},"type":"array","title":"Workflow Runs"}},"type":"object","title":"CIWorkflowRunsResponse"},"CRDInfo":{"properties":{"group":{"type":"string","title":"Group"},"version":{"type":"string","title":"Version"},"resource":{"type":"string","title":"Resource"},"kind":{"type":"string","title":"Kind"}},"type":"object","required":["group","version","resource","kind"],"title":"CRDInfo","description":"CRD information."},"CallbackRequest":{"properties":{"callback_url":{"type":"string","minLength":1,"title":"Callback Url","description":"Full callback URL returned by Google"}},"type":"object","required":["callback_url"],"title":"CallbackRequest","description":"Request body for completing the OAuth flow."},"CallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"CallbackResponse","description":"Response after storing OAuth tokens."},"CategorizeInvestigationRequest":{"properties":{"investigation_id":{"type":"string","title":"Investigation Id"}},"type":"object","required":["investigation_id"],"title":"CategorizeInvestigationRequest","description":"Request body for categorizing an investigation."},"ChatCreatePRRequest":{"properties":{"chat_id":{"type":"string","title":"Chat Id"},"repo":{"type":"string","title":"Repo"},"change":{"type":"string","title":"Change"},"base_branch":{"type":"string","title":"Base Branch","default":"main"}},"type":"object","required":["chat_id","repo","change"],"title":"ChatCreatePRRequest","description":"Request to create a PR from a chat's suggest_pr tool call."},"ChatListItem":{"properties":{"id":{"type":"string","title":"Id"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"title":{"type":"string","title":"Title"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"initiated_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiated By Email"}},"type":"object","required":["id","created_at","title","preview","initiated_by_email"],"title":"ChatListItem","description":"Single chat item for the list."},"ChatListResponse":{"properties":{"chats":{"items":{"$ref":"#/components/schemas/ChatListItem"},"type":"array","title":"Chats"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"count":{"type":"integer","title":"Count"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["chats","total_count","page","count","has_more"],"title":"ChatListResponse","description":"Response model for chat list with pagination."},"ChatMessage":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"}},"type":"object","required":["role","content"],"title":"ChatMessage","description":"A single message in a chat conversation."},"ChatRequest":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/ChatMessage"},"type":"array","minItems":1,"title":"Messages"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"}},"type":"object","required":["messages"],"title":"ChatRequest","description":"Request body for ``POST /api/v1/chat``."},"ChatTitleUpdateRequest":{"properties":{"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"}},"type":"object","required":["title"],"title":"ChatTitleUpdateRequest"},"ChatUsage":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserUsageMetric"},"type":"array","title":"Users"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["users","total_count"],"title":"ChatUsage","description":"Combined Slack + UI chat usage by user."},"CitationExtractionRequest":{"properties":{"tool_result":{"type":"string","title":"Tool Result"},"citation_id":{"type":"integer","title":"Citation Id"},"text_with_citation":{"type":"string","title":"Text With Citation"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},"type":"object","required":["tool_result","citation_id","text_with_citation"],"title":"CitationExtractionRequest"},"CitationExtractionResponse":{"properties":{"excerpts":{"items":{"type":"string"},"type":"array","title":"Excerpts"}},"type":"object","required":["excerpts"],"title":"CitationExtractionResponse"},"ClickHouseCreateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Display name for this service"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description","description":"What this service contains"},"host":{"type":"string","minLength":1,"title":"Host","description":"ClickHouse host or IP"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":8443},"username":{"type":"string","minLength":1,"title":"Username","description":"ClickHouse username"},"password":{"type":"string","minLength":1,"title":"Password","description":"ClickHouse password"},"use_ssl":{"type":"boolean","title":"Use Ssl","description":"Use HTTPS","default":true}},"type":"object","required":["name","host","username","password"],"title":"ClickHouseCreateRequest","description":"Create a new ClickHouse service integration for a team."},"ClickHouseCredentialResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"username":{"type":"string","title":"Username"},"use_ssl":{"type":"boolean","title":"Use Ssl"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","host","port","username","use_ssl","is_enabled","created_at","updated_at"],"title":"ClickHouseCredentialResponse","description":"Sanitized ClickHouse credential response (no password)."},"ClickHouseDeleteResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"ClickHouseDeleteResponse","description":"Delete response."},"ClickHouseStatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"enabled":{"type":"boolean","title":"Enabled"},"integrations":{"items":{"$ref":"#/components/schemas/ClickHouseCredentialResponse"},"type":"array","title":"Integrations"}},"type":"object","required":["configured","enabled"],"title":"ClickHouseStatusResponse","description":"Overall ClickHouse integration status for a team."},"ClickHouseTestRequest":{"properties":{"host":{"type":"string","minLength":1,"title":"Host","description":"ClickHouse host or IP"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":8443},"username":{"type":"string","minLength":1,"title":"Username","description":"ClickHouse username"},"password":{"type":"string","minLength":1,"title":"Password","description":"ClickHouse password"},"use_ssl":{"type":"boolean","title":"Use Ssl","description":"Use HTTPS","default":true}},"type":"object","required":["host","username","password"],"title":"ClickHouseTestRequest","description":"Test an unsaved ClickHouse connection."},"ClickHouseTestResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"server_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Version"},"current_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Database"}},"type":"object","required":["success","message"],"title":"ClickHouseTestResponse","description":"Connection test result."},"ClickHouseToggleRequest":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["is_enabled"],"title":"ClickHouseToggleRequest","description":"Enable/disable a saved ClickHouse service integration."},"ClickHouseUpdateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Display name for this service"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description","description":"What this service contains"},"host":{"type":"string","minLength":1,"title":"Host","description":"ClickHouse host or IP"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":8443},"username":{"type":"string","minLength":1,"title":"Username"},"password":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Password","description":"New password (omit to keep existing)"},"use_ssl":{"type":"boolean","title":"Use Ssl","default":true}},"type":"object","required":["name","host","username"],"title":"ClickHouseUpdateRequest","description":"Update an existing ClickHouse service integration."},"CloseProxySessionRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"CloseProxySessionRequest"},"CloudflareAccount":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["id"],"title":"CloudflareAccount","description":"A Cloudflare account visible to the integration."},"CloudflareTokenType":{"type":"string","enum":["account"],"title":"CloudflareTokenType","description":"Supported Cloudflare API token ownership modes."},"CloudflareZone":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"}},"type":"object","required":["id","name"],"title":"CloudflareZone","description":"A Cloudflare zone visible to the integration."},"ClusterInfo":{"properties":{"name":{"type":"string","title":"Name"},"is_primary":{"type":"boolean","title":"Is Primary"},"satellites":{"items":{"$ref":"#/components/schemas/SatelliteInfo"},"type":"array","title":"Satellites"},"total_replicas":{"type":"integer","title":"Total Replicas"},"connected_replicas":{"type":"integer","title":"Connected Replicas"},"integrations":{"items":{"$ref":"#/components/schemas/IntegrationInfo"},"type":"array","title":"Integrations"},"mcp_servers":{"items":{"$ref":"#/components/schemas/MCPServerInfo"},"type":"array","title":"Mcp Servers"},"crds":{"items":{"$ref":"#/components/schemas/CRDInfo"},"type":"array","title":"Crds"},"last_activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Activity"},"watched_by_cluster":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Watched By Cluster"}},"type":"object","required":["name","is_primary","satellites","total_replicas","connected_replicas","integrations","mcp_servers","crds","last_activity","watched_by_cluster"],"title":"ClusterInfo","description":"Cluster with satellites and capabilities."},"ClusterStateResponse":{"properties":{"cluster_name":{"type":"string","title":"Cluster Name"},"synced_at":{"type":"string","format":"date-time","title":"Synced At"},"pods_count":{"type":"integer","title":"Pods Count"},"services_count":{"type":"integer","title":"Services Count"},"deployments_count":{"type":"integer","title":"Deployments Count"}},"type":"object","required":["cluster_name","synced_at","pods_count","services_count","deployments_count"],"title":"ClusterStateResponse","description":"Cluster state."},"CodeGenCompletionRequest":{"properties":{"slack_channel_id":{"type":"string","title":"Slack Channel Id"},"slack_message_ts":{"type":"string","title":"Slack Message Ts"},"pr_url":{"type":"string","title":"Pr Url"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"message_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Prefix","default":"PR created:"},"branch_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Name"}},"type":"object","required":["slack_channel_id","slack_message_ts","pr_url"],"title":"CodeGenCompletionRequest"},"CodeGenRequest":{"properties":{"target_repo":{"type":"string","title":"Target Repo"},"target_base_branch":{"type":"string","title":"Target Base Branch"},"github_app_installation_id":{"type":"integer","title":"Github App Installation Id"},"target_repo_owner":{"type":"string","title":"Target Repo Owner"},"target_repo_name":{"type":"string","title":"Target Repo Name"},"initial_prompt":{"type":"string","title":"Initial Prompt"},"slack_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slack Channel Id"},"slack_message_ts":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slack Message Ts"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"cluster_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cluster Name"},"task_definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Definition"},"subnets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Subnets"},"security_groups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Security Groups"},"use_claude_gha":{"type":"boolean","title":"Use Claude Gha","default":false},"issue_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issue Title"},"use_modal":{"type":"boolean","title":"Use Modal","default":true},"requester_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requester Name"},"requester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requester Email"}},"type":"object","required":["target_repo","target_base_branch","github_app_installation_id","target_repo_owner","target_repo_name","initial_prompt"],"title":"CodeGenRequest","description":"Request model for starting a code generation task"},"CompactTelemetryTableRequest":{"properties":{"table_name":{"type":"string","minLength":1,"title":"Table Name"},"include_lanes":{"type":"boolean","title":"Include Lanes","default":true},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","required":["table_name"],"title":"CompactTelemetryTableRequest"},"ConfigureActionRequest":{"properties":{"repo_full_name":{"type":"string","title":"Repo Full Name"},"workflow_id":{"type":"integer","title":"Workflow Id"},"workflow_name":{"type":"string","title":"Workflow Name"},"workflow_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Path"},"approval_mode":{"type":"string","title":"Approval Mode","default":"requires_approval"},"default_ref":{"type":"string","title":"Default Ref","default":"main"},"workflow_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Inputs"}},"type":"object","required":["repo_full_name","workflow_id","workflow_name"],"title":"ConfigureActionRequest","description":"Request to enable a GitHub Actions workflow as a team action."},"CreateCustomScriptRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"script_code":{"type":"string","title":"Script Code"},"script_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Script Prompt"},"script_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Script Inputs"},"credential_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Credential Keys"},"approval_mode":{"type":"string","title":"Approval Mode","default":"requires_approval"}},"type":"object","required":["name","script_code"],"title":"CreateCustomScriptRequest","description":"Request to create a custom script action."},"CreateEscalationRequest":{"properties":{"name":{"type":"string","title":"Name"},"provider":{"type":"string","title":"Provider"},"provider_config":{"additionalProperties":true,"type":"object","title":"Provider Config"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"},"conditions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conditions"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"priority":{"type":"integer","title":"Priority","default":0},"source_channel_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Channel Ids"},"source_channel_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Channel Names"},"message_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Template"}},"type":"object","required":["name","provider","provider_config"],"title":"CreateEscalationRequest"},"CreateFileRequest":{"properties":{"path":{"type":"string","title":"Path"},"content":{"type":"string","title":"Content","default":""}},"type":"object","required":["path"],"title":"CreateFileRequest"},"CreateMCPApiKeyRequest":{"properties":{"name":{"type":"string","title":"Name","description":"A descriptive name for this API key (e.g., 'My Cursor', 'Claude Desktop')"},"expires_in_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Days","description":"Number of days until the key expires. Null for no expiration."}},"type":"object","required":["name"],"title":"CreateMCPApiKeyRequest","description":"Request body for creating an MCP API key."},"CreateMonitorRequest":{"properties":{"name":{"type":"string","title":"Name"},"query":{"type":"string","title":"Query"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"monitor_type":{"type":"string","title":"Monitor Type","default":"threshold"},"query_provider":{"type":"string","enum":["postgres","telemetry"],"title":"Query Provider","default":"telemetry"},"evaluation_interval_seconds":{"type":"integer","minimum":5.0,"title":"Evaluation Interval Seconds","default":300},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"},"options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Options"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"auto_investigate":{"type":"boolean","title":"Auto Investigate","default":true},"approval_mode":{"type":"string","title":"Approval Mode","default":"require_approval"}},"type":"object","required":["name","query"],"title":"CreateMonitorRequest"},"CreateOptimizerActionRequest":{"properties":{"action_type":{"type":"string","minLength":1,"title":"Action Type"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"},"execute_immediately":{"type":"boolean","title":"Execute Immediately","default":true}},"type":"object","required":["action_type"],"title":"CreateOptimizerActionRequest"},"CreateProxyTokenRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"ttl_seconds":{"type":"integer","maximum":86400.0,"minimum":60.0,"title":"Ttl Seconds","default":3600},"mcp_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Servers"},"disabled_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Disabled Tools"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"satellite_session_scope_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Satellite Session Scope Id"},"terminal_tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terminal Tool Name"},"enable_workspace_sandbox":{"type":"boolean","title":"Enable Workspace Sandbox","default":false},"enable_workspace_write":{"type":"boolean","title":"Enable Workspace Write","default":false},"enable_code_sandbox":{"type":"boolean","title":"Enable Code Sandbox","default":false},"code_snapshot_info":{"anyOf":[{"prefixItems":[{"type":"string"},{"anyOf":[{"type":"string"},{"type":"integer"}]},{"additionalProperties":{"type":"string"},"type":"object"}],"type":"array","maxItems":3,"minItems":3},{"type":"null"}],"title":"Code Snapshot Info"}},"type":"object","title":"CreateProxyTokenRequest"},"CreateScanRunRequest":{"properties":{"hours_lookback":{"type":"integer","title":"Hours Lookback","default":24},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"}},"type":"object","title":"CreateScanRunRequest","description":"Request to create a new scan run."},"CreateTokenRequest":{"properties":{"name":{"type":"string","title":"Name"},"expires_in_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Days"}},"type":"object","required":["name"],"title":"CreateTokenRequest","description":"Request to create a new ingest token."},"CreateWebhookRequest":{"properties":{"name":{"type":"string","title":"Name","default":"Webhook"},"url":{"type":"string","title":"Url"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["url"],"title":"CreateWebhookRequest"},"CustomContextItem":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description"},"created_at":{"type":"string","title":"Created At"},"channel_id":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channel Id"},"chat_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chat Enabled"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","required":["id","description","created_at"],"title":"CustomContextItem","description":"Single custom context record."},"CustomMCPRequest":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"Display name for the MCP server"},"server_url":{"type":"string","title":"Server Url","description":"Streamable HTTP endpoint URL for the MCP server"},"auth_header_name":{"type":"string","maxLength":100,"title":"Auth Header Name","description":"Header name for authentication","default":"Authorization"},"auth_header_value":{"type":"string","title":"Auth Header Value","description":"Pre-shared secret or API key for authentication"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of what this MCP server does"}},"type":"object","required":["name","server_url","auth_header_value"],"title":"CustomMCPRequest","description":"Request body for creating a custom MCP server."},"CustomMCPResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"server_url":{"type":"string","title":"Server Url"},"auth_header_name":{"type":"string","title":"Auth Header Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","name","server_url","auth_header_name","description","is_enabled","created_at","updated_at"],"title":"CustomMCPResponse","description":"Response model for a custom MCP server."},"CustomMCPToggleRequest":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["is_enabled"],"title":"CustomMCPToggleRequest","description":"Request body for toggling a custom MCP server."},"CustomMCPUpdateRequest":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"Display name for the MCP server"},"server_url":{"type":"string","title":"Server Url","description":"Streamable HTTP endpoint URL for the MCP server"},"auth_header_name":{"type":"string","maxLength":100,"title":"Auth Header Name","description":"Header name for authentication","default":"Authorization"},"auth_header_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth Header Value","description":"Pre-shared secret or API key for authentication (optional - if not provided, existing value is preserved)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of what this MCP server does"}},"type":"object","required":["name","server_url"],"title":"CustomMCPUpdateRequest","description":"Request body for updating a custom MCP server. auth_header_value is optional - if not provided, the existing value is preserved."},"DashboardResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/ClusterInfo"},"type":"array","title":"Clusters"},"total_satellites":{"type":"integer","title":"Total Satellites"},"total_replicas":{"type":"integer","title":"Total Replicas"},"connected_replicas":{"type":"integer","title":"Connected Replicas"},"total_integrations":{"type":"integer","title":"Total Integrations"},"total_mcp_tools":{"type":"integer","title":"Total Mcp Tools"},"primary_cluster_count":{"type":"integer","title":"Primary Cluster Count"},"remote_cluster_count":{"type":"integer","title":"Remote Cluster Count"}},"type":"object","required":["clusters","total_satellites","total_replicas","connected_replicas","total_integrations","total_mcp_tools","primary_cluster_count","remote_cluster_count"],"title":"DashboardResponse","description":"Complete satellite dashboard data."},"DashboardViewResponse":{"properties":{"id":{"type":"string","title":"Id"},"source_url":{"type":"string","title":"Source Url"},"provider":{"type":"string","title":"Provider"},"dashboard_uid":{"type":"string","title":"Dashboard Uid"},"dashboard_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dashboard Name"},"var_bindings":{"additionalProperties":true,"type":"object","title":"Var Bindings"},"panel_ids":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Panel Ids"},"extra_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Metadata"},"role":{"type":"string","title":"Role","default":"watch"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","source_url","provider","dashboard_uid","dashboard_name","var_bindings","panel_ids","extra_metadata","created_at"],"title":"DashboardViewResponse","description":"A saved dashboard view for an endpoint."},"DependencyEdgeResponse":{"properties":{"edge_id":{"type":"string","title":"Edge Id"},"source_service":{"type":"string","title":"Source Service"},"source_namespace":{"type":"string","title":"Source Namespace"},"target_service":{"type":"string","title":"Target Service"},"target_namespace":{"type":"string","title":"Target Namespace"},"first_seen":{"type":"string","format":"date-time","title":"First Seen"},"last_seen":{"type":"string","format":"date-time","title":"Last Seen"},"query_count":{"type":"integer","title":"Query Count"}},"type":"object","required":["edge_id","source_service","source_namespace","target_service","target_namespace","first_seen","last_seen","query_count"],"title":"DependencyEdgeResponse","description":"Service dependency edge."},"DependencyGraphResponse":{"properties":{"edges":{"items":{"$ref":"#/components/schemas/DependencyEdgeResponse"},"type":"array","title":"Edges"},"total_edges":{"type":"integer","title":"Total Edges"},"total_services":{"type":"integer","title":"Total Services"}},"type":"object","required":["edges","total_edges","total_services"],"title":"DependencyGraphResponse","description":"Service dependency graph."},"DependencyQueryRequest":{"properties":{"satellite_id":{"type":"string","title":"Satellite Id"},"query_type":{"type":"string","title":"Query Type"},"service":{"type":"string","title":"Service"},"namespace":{"type":"string","title":"Namespace"},"max_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Depth","default":3}},"type":"object","required":["satellite_id","query_type","service","namespace"],"title":"DependencyQueryRequest","description":"Dependency query request."},"DispatchActionRequest":{"properties":{"action_id":{"type":"string","title":"Action Id"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref"},"inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inputs"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"}},"type":"object","required":["action_id"],"title":"DispatchActionRequest","description":"Request to dispatch an action."},"DynamicRuleRequest":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"filter_phrases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filter Phrases","default":[]},"user_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"User Ids"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"channels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channels","default":[]},"rule_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Action"},"include_human_messages":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Human Messages","default":false}},"type":"object","title":"DynamicRuleRequest","description":"Request model for dynamic rule creation and update."},"EditContextRequest":{"properties":{"id":{"type":"string","title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"channel_id":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channel Id"},"chat_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chat Enabled"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","required":["id"],"title":"EditContextRequest","description":"Request model for editing a custom context row."},"EndpointInvestigationResponse":{"properties":{"id":{"type":"string","title":"Id"},"investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"},"trigger_type":{"type":"string","title":"Trigger Type"},"status":{"type":"string","title":"Status"},"has_issues":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Issues"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"scan_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scan Run Id"},"created_at":{"type":"string","title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"code_gen_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Gen Status"},"pr_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pr Url"}},"type":"object","required":["id","investigation_id","trigger_type","status","has_issues","summary","scan_run_id","created_at","completed_at"],"title":"EndpointInvestigationResponse","description":"A single investigation history entry for an endpoint."},"EndpointResponse":{"properties":{"id":{"type":"string","title":"Id"},"endpoint_route":{"type":"string","title":"Endpoint Route"},"service_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Name"},"customer_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Description"},"profile":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Profile"},"last_profiled_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Profiled At"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","title":"Created At"},"latest_investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Investigation Id"},"latest_investigation_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Investigation Status"},"latest_investigation_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Investigation Summary"},"has_recommended_pr":{"type":"boolean","title":"Has Recommended Pr","default":false},"dashboard_uids":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dashboard Uids"},"dashboard_views":{"anyOf":[{"items":{"$ref":"#/components/schemas/DashboardViewResponse"},"type":"array"},{"type":"null"}],"title":"Dashboard Views"},"metric_source_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metric Source Config"},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"}},"type":"object","required":["id","endpoint_route","service_name","customer_description","profile","last_profiled_at","is_active","created_at"],"title":"EndpointResponse","description":"Response with endpoint details."},"ExecutionCaptureEventQueryRequest":{"properties":{"capture_session_id":{"type":"string","minLength":1,"title":"Capture Session Id","description":"Execution-capture session id"},"sql":{"type":"string","minLength":1,"title":"Sql","description":"DuckDB SQL over execution_capture_events for one session"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Execution-capture tenant to query","default":"deeptrace-internal"},"source_mode":{"type":"string","pattern":"^(auto|git|worktree)$","title":"Source Mode","default":"auto"}},"type":"object","required":["capture_session_id","sql"],"title":"ExecutionCaptureEventQueryRequest"},"ExecutionCaptureQueryRequest":{"properties":{"sql":{"type":"string","minLength":1,"title":"Sql","description":"DuckDB SQL over execution_capture_sessions"},"lookback_hours":{"type":"integer","maximum":168.0,"minimum":0.0,"title":"Lookback Hours","description":"How many hours of capture sessions to load","default":24},"tenant_id":{"type":"string","title":"Tenant Id","description":"Execution-capture tenant to query","default":"deeptrace-internal"}},"type":"object","required":["sql"],"title":"ExecutionCaptureQueryRequest"},"ExecutionCaptureRenderRequest":{"properties":{"capture_session_id":{"type":"string","minLength":1,"title":"Capture Session Id","description":"Execution-capture session id"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Execution-capture tenant to query","default":"deeptrace-internal"},"source_mode":{"type":"string","pattern":"^(auto|git|worktree)$","title":"Source Mode","default":"auto"},"max_events":{"type":"integer","maximum":2000.0,"minimum":1.0,"title":"Max Events","default":200},"event_offset":{"type":"integer","minimum":0.0,"title":"Event Offset","description":"How many earlier events to skip before rendering","default":0}},"type":"object","required":["capture_session_id"],"title":"ExecutionCaptureRenderRequest"},"FileContent":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"FileContent"},"FileEdit":{"properties":{"old_text":{"type":"string","title":"Old Text"},"new_text":{"type":"string","title":"New Text"}},"type":"object","required":["old_text","new_text"],"title":"FileEdit"},"FullInvestigationRequest":{"properties":{"query":{"type":"string","title":"Query"},"system_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Message"}},"type":"object","required":["query"],"title":"FullInvestigationRequest","description":"Request body for full investigation pipeline."},"FullInvestigationResponse":{"properties":{"final_answer":{"type":"string","title":"Final Answer"},"assistant_response":{"type":"string","title":"Assistant Response"},"investigation_count":{"type":"integer","title":"Investigation Count"},"processing_summary":{"type":"string","title":"Processing Summary"},"investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"},"blocks":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Blocks"},"recommended_pr":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Recommended Pr"},"trigger_action_data":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Trigger Action Data"},"quick_summary_citations":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Quick Summary Citations"},"data_sources":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Data Sources"},"original_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Query"},"alt_hypotheses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alt Hypotheses"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage"},"severity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Severity"},"suggest_ticket_called":{"type":"boolean","title":"Suggest Ticket Called","default":false}},"type":"object","required":["final_answer","assistant_response","investigation_count","processing_summary"],"title":"FullInvestigationResponse","description":"Response from full investigation pipeline."},"GetContextResponse":{"properties":{"context":{"items":{"$ref":"#/components/schemas/CustomContextItem"},"type":"array","title":"Context"}},"type":"object","required":["context"],"title":"GetContextResponse","description":"Response model for custom context list."},"GitLabOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","minLength":1,"title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"GitLabOAuthCallbackRequest","description":"Request body for completing the GitLab OAuth callback."},"GitLabOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"project_paths":{"items":{"type":"string"},"type":"array","title":"Project Paths"}},"type":"object","required":["success","message"],"title":"GitLabOAuthCallbackResponse","description":"Response returned after GitLab OAuth succeeds."},"GitLabOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri","description":"Frontend callback URL registered with the GitLab OAuth application."},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"Space-delimited GitLab OAuth scopes."},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url","description":"GitLab base URL, for example https://gitlab.com."}},"type":"object","title":"GitLabOAuthURLRequest","description":"Request body for generating a GitLab OAuth URL."},"GitLabOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"GitLabOAuthURLResponse","description":"Authorization URL response."},"GitLabRemoveResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"GitLabRemoveResponse","description":"Response returned after removing the GitLab integration."},"GitLabResyncResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"collection_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Name"}},"type":"object","required":["success","message"],"title":"GitLabResyncResponse","description":"Response returned after kicking off a GitLab resync."},"GitLabStatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"project_paths":{"items":{"type":"string"},"type":"array","title":"Project Paths"},"collection_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Name"}},"type":"object","required":["configured"],"title":"GitLabStatusResponse","description":"Current GitLab code integration status."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntegrationInfo":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"access_level":{"type":"string","title":"Access Level"},"discovered_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discovered At"}},"type":"object","required":["name","type","access_level","discovered_at"],"title":"IntegrationInfo","description":"Integration details."},"IntegrationQueryRequest":{"properties":{"satellite_id":{"type":"string","title":"Satellite Id"},"integration_name":{"type":"string","title":"Integration Name"},"action":{"type":"string","title":"Action"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["satellite_id","integration_name","action","params"],"title":"IntegrationQueryRequest","description":"Integration query request."},"InvestigateRequest":{"properties":{"query":{"type":"string","title":"Query"}},"type":"object","required":["query"],"title":"InvestigateRequest","description":"Request body for ``POST /api/v1/investigate``."},"InvestigateResponse":{"properties":{"investigation_id":{"type":"string","title":"Investigation Id"},"status":{"type":"string","title":"Status","default":"processing"}},"type":"object","required":["investigation_id"],"title":"InvestigateResponse","description":"Response from ``POST /api/v1/investigate``."},"InvestigationCreatePRRequest":{"properties":{"investigation_id":{"type":"string","title":"Investigation Id"},"repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo"},"change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change"},"base_branch":{"type":"string","title":"Base Branch","default":"main"},"action_type":{"type":"string","enum":["fix","silence","add_observability"],"title":"Action Type","default":"fix"}},"type":"object","required":["investigation_id"],"title":"InvestigationCreatePRRequest","description":"Request to create a PR from an investigation's recommended_pr."},"InvestigationStatusResponse":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"alert_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Summary"},"investigation_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Text"}},"type":"object","required":["id","status"],"title":"InvestigationStatusResponse","description":"Response from ``GET /api/v1/investigations/{id}``."},"InvestigationUsage":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserUsageMetric"},"type":"array","title":"Users"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["users","total_count"],"title":"InvestigationUsage","description":"Manual investigation usage by user."},"IssueRoutingTarget":{"properties":{"target_type":{"type":"string","enum":["user","group"],"title":"Target Type"},"target_id":{"type":"string","title":"Target Id"},"display_name":{"type":"string","title":"Display Name"},"mention_text":{"type":"string","title":"Mention Text"},"investigation_count":{"type":"integer","title":"Investigation Count"},"repos":{"items":{"type":"string"},"type":"array","title":"Repos","default":[]},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["target_type","target_id","display_name","mention_text","investigation_count","reason"],"title":"IssueRoutingTarget","description":"A likely owner or owner group for a deduped issue."},"JamOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"JamOAuthCallbackRequest"},"JamOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"JamOAuthCallbackResponse"},"JamOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"mcp:read recordingLinks:read"}},"type":"object","title":"JamOAuthURLRequest"},"JamOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"JamOAuthURLResponse"},"LinearOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"LinearOAuthCallbackRequest"},"LinearOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"LinearOAuthCallbackResponse"},"LinearOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"read write issues:create comments:create"}},"type":"object","title":"LinearOAuthURLRequest"},"LinearOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"LinearOAuthURLResponse"},"MCPApiKeyListItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"is_active":{"type":"boolean","title":"Is Active"},"created_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Email"}},"type":"object","required":["id","name","key_prefix","created_at","expires_at","last_used_at","is_active"],"title":"MCPApiKeyListItem","description":"API key info for listing (does not include the full key)."},"MCPApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"api_key":{"type":"string","title":"Api Key"},"key_prefix":{"type":"string","title":"Key Prefix"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","name","api_key","key_prefix","expires_at","created_at"],"title":"MCPApiKeyResponse","description":"Response containing the newly created API key (shown only once)."},"MCPServerInfo":{"properties":{"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"tool_count":{"type":"integer","title":"Tool Count"},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"},"stateless":{"type":"boolean","title":"Stateless"}},"type":"object","required":["name","url","tool_count","tools","stateless"],"title":"MCPServerInfo","description":"MCP server with tool count."},"MCPToolCallRequest":{"properties":{"satellite_id":{"type":"string","title":"Satellite Id"},"mcp_name":{"type":"string","title":"Mcp Name"},"tool_name":{"type":"string","title":"Tool Name"},"arguments":{"additionalProperties":true,"type":"object","title":"Arguments"}},"type":"object","required":["satellite_id","mcp_name","tool_name","arguments"],"title":"MCPToolCallRequest","description":"MCP tool call request."},"MCPToolResponse":{"properties":{"mcp_name":{"type":"string","title":"Mcp Name"},"tool_name":{"type":"string","title":"Tool Name"},"description":{"type":"string","title":"Description"},"satellite_id":{"type":"string","title":"Satellite Id"}},"type":"object","required":["mcp_name","tool_name","description","satellite_id"],"title":"MCPToolResponse","description":"MCP tool."},"MCPToolsListResponse":{"properties":{"tools":{"items":{"$ref":"#/components/schemas/MCPToolResponse"},"type":"array","title":"Tools"}},"type":"object","required":["tools"],"title":"MCPToolsListResponse","description":"List of MCP tools."},"MonitorRequest":{"properties":{"team_id":{"type":"string","title":"Team Id"}},"type":"object","required":["team_id"],"title":"MonitorRequest"},"MonitoringChatListItem":{"properties":{"id":{"type":"string","title":"Id"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"initiated_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiated By Email"}},"type":"object","required":["id"],"title":"MonitoringChatListItem"},"MonitoringChatListResponse":{"properties":{"chats":{"items":{"$ref":"#/components/schemas/MonitoringChatListItem"},"type":"array","title":"Chats"}},"type":"object","required":["chats"],"title":"MonitoringChatListResponse"},"NewRelicAccount":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","required":["id","name"],"title":"NewRelicAccount","description":"A New Relic account."},"NewRelicRegion":{"type":"string","enum":["US","EU"],"title":"NewRelicRegion","description":"New Relic region options."},"NewTokenResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"token":{"type":"string","title":"Token"},"token_prefix":{"type":"string","title":"Token Prefix"},"created_at":{"type":"string","title":"Created At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","name","token","token_prefix","created_at","expires_at"],"title":"NewTokenResponse","description":"Response when creating a new token (includes full token)."},"NotionOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"NotionOAuthCallbackRequest"},"NotionOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"NotionOAuthCallbackResponse"},"NotionOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},"type":"object","title":"NotionOAuthURLRequest"},"NotionOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"NotionOAuthURLResponse"},"OnboardingCompleteResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"accounts":{"items":{"$ref":"#/components/schemas/NewRelicAccount"},"type":"array","title":"Accounts"},"default_account_id":{"type":"string","title":"Default Account Id"}},"type":"object","required":["success","message","accounts","default_account_id"],"title":"OnboardingCompleteResponse","description":"Response after completing onboarding."},"PostHogActiveUser":{"properties":{"email":{"type":"string","title":"Email"},"event_count":{"type":"integer","title":"Event Count"}},"type":"object","required":["email","event_count"],"title":"PostHogActiveUser","description":"Active user from PostHog."},"PostHogUsage":{"properties":{"daily_active_users":{"type":"integer","title":"Daily Active Users"},"weekly_active_users":{"type":"integer","title":"Weekly Active Users"},"page_views":{"type":"integer","title":"Page Views"},"total_unique_users":{"type":"integer","title":"Total Unique Users"},"users":{"items":{"$ref":"#/components/schemas/PostHogActiveUser"},"type":"array","title":"Users"},"configured":{"type":"boolean","title":"Configured"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["daily_active_users","weekly_active_users","page_views","total_unique_users","users","configured"],"title":"PostHogUsage","description":"PostHog active users for the team with DAU/WAU counts and page views."},"PostgresDeleteResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"PostgresDeleteResponse","description":"Delete response."},"PostgresIntegrationCreateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Display name for this integration"},"host":{"type":"string","minLength":1,"title":"Host","description":"Postgres host or IP"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":5432},"database_name":{"type":"string","minLength":1,"title":"Database Name","description":"Database name"},"username":{"type":"string","minLength":1,"title":"Username","description":"Database username"},"password":{"type":"string","minLength":1,"title":"Password","description":"Database password"},"ssl_mode":{"$ref":"#/components/schemas/PostgresSSLMode","default":"require"},"connect_timeout_seconds":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Connect Timeout Seconds","default":10},"query_timeout_seconds":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Query Timeout Seconds","default":30},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["name","host","database_name","username","password"],"title":"PostgresIntegrationCreateRequest","description":"Create a new team Postgres integration config."},"PostgresIntegrationResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"database_name":{"type":"string","title":"Database Name"},"username":{"type":"string","title":"Username"},"ssl_mode":{"type":"string","title":"Ssl Mode"},"connect_timeout_seconds":{"type":"integer","title":"Connect Timeout Seconds"},"query_timeout_seconds":{"type":"integer","title":"Query Timeout Seconds"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","host","port","database_name","username","ssl_mode","connect_timeout_seconds","query_timeout_seconds","is_enabled","created_at","updated_at"],"title":"PostgresIntegrationResponse","description":"Sanitized Postgres integration config response."},"PostgresIntegrationTestRequest":{"properties":{"host":{"type":"string","minLength":1,"title":"Host"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":5432},"database_name":{"type":"string","minLength":1,"title":"Database Name"},"username":{"type":"string","minLength":1,"title":"Username"},"password":{"type":"string","minLength":1,"title":"Password"},"ssl_mode":{"$ref":"#/components/schemas/PostgresSSLMode","default":"require"},"connect_timeout_seconds":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Connect Timeout Seconds","default":10},"query_timeout_seconds":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Query Timeout Seconds","default":30}},"type":"object","required":["host","database_name","username","password"],"title":"PostgresIntegrationTestRequest","description":"Test an unsaved Postgres integration."},"PostgresIntegrationUpdateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Display name for this integration"},"host":{"type":"string","minLength":1,"title":"Host","description":"Postgres host or IP"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":5432},"database_name":{"type":"string","minLength":1,"title":"Database Name","description":"Database name"},"username":{"type":"string","minLength":1,"title":"Username","description":"Database username"},"password":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Password","description":"Optional new database password"},"ssl_mode":{"$ref":"#/components/schemas/PostgresSSLMode","default":"require"},"connect_timeout_seconds":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Connect Timeout Seconds","default":10},"query_timeout_seconds":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Query Timeout Seconds","default":30},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["name","host","database_name","username"],"title":"PostgresIntegrationUpdateRequest","description":"Update an existing team Postgres integration config."},"PostgresSSLMode":{"type":"string","enum":["disable","allow","prefer","require","verify-ca","verify-full"],"title":"PostgresSSLMode","description":"Supported Postgres SSL modes."},"PostgresStatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"enabled":{"type":"boolean","title":"Enabled"},"integrations":{"items":{"$ref":"#/components/schemas/PostgresIntegrationResponse"},"type":"array","title":"Integrations"}},"type":"object","required":["configured","enabled"],"title":"PostgresStatusResponse","description":"Overall Postgres integration status for a team."},"PostgresTestResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"server_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Version"},"current_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Database"},"current_user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current User"}},"type":"object","required":["success","message"],"title":"PostgresTestResponse","description":"Integration test response."},"PostgresToggleRequest":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["is_enabled"],"title":"PostgresToggleRequest","description":"Enable/disable a saved Postgres integration."},"ProvisioningMonitorRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"ProvisioningMonitorRequest"},"ProxyTokenResponse":{"properties":{"token":{"type":"string","title":"Token"},"session_id":{"type":"string","title":"Session Id"},"expires_at":{"type":"integer","title":"Expires At"},"mcp_proxy_url":{"type":"string","title":"Mcp Proxy Url"},"mcp_servers":{"items":{"type":"string"},"type":"array","title":"Mcp Servers"},"disabled_tools":{"items":{"type":"string"},"type":"array","title":"Disabled Tools"}},"type":"object","required":["token","session_id","expires_at","mcp_proxy_url","mcp_servers","disabled_tools"],"title":"ProxyTokenResponse"},"RouteIssueRequest":{"properties":{"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"}},"type":"object","title":"RouteIssueRequest","description":"Request to route a deduped issue notification."},"RouteIssueResponse":{"properties":{"status":{"type":"string","title":"Status"},"channel_id":{"type":"string","title":"Channel Id"},"message":{"type":"string","title":"Message"},"message_ts":{"type":"string","title":"Message Ts"},"routed_to":{"items":{"$ref":"#/components/schemas/IssueRoutingTarget"},"type":"array","title":"Routed To","default":[]}},"type":"object","required":["status","channel_id","message","message_ts"],"title":"RouteIssueResponse","description":"Response after routing a deduped issue notification."},"RuleToggleRequest":{"properties":{"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["is_active"],"title":"RuleToggleRequest","description":"Request model for toggling rule active status."},"SAConnectRequest":{"properties":{"service_account_key":{"additionalProperties":true,"type":"object","title":"Service Account Key","description":"Google Cloud service account key JSON object."},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id","description":"Google Cloud project ID. Defaults to the one in the service account key."}},"type":"object","required":["service_account_key"],"title":"SAConnectRequest","description":"Request body for service account onboarding."},"SAConnectResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"internal_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Mode"},"transport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transport"},"statsig_gate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statsig Gate"}},"type":"object","required":["success","message"],"title":"SAConnectResponse","description":"Response after service account onboarding."},"SAStatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"connected":{"type":"boolean","title":"Connected"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"services":{"items":{"type":"string"},"type":"array","title":"Services"},"auth_type":{"type":"string","title":"Auth Type","default":"service_account"},"rollout_enabled":{"type":"boolean","title":"Rollout Enabled","default":false},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"internal_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Mode"},"transport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transport"},"statsig_gate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statsig Gate"},"official_rollout_enabled":{"type":"boolean","title":"Official Rollout Enabled","default":false},"self_hosted_rollout_enabled":{"type":"boolean","title":"Self Hosted Rollout Enabled","default":false}},"type":"object","required":["configured","connected"],"title":"SAStatusResponse","description":"Status for self-hosted GCP MCP."},"SatelliteInfo":{"properties":{"id":{"type":"string","title":"Id"},"satellite_id":{"type":"string","title":"Satellite Id"},"status":{"type":"string","title":"Status"},"last_heartbeat":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Heartbeat"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"environment":{"type":"string","title":"Environment"},"is_connected":{"type":"boolean","title":"Is Connected"},"primary_cluster":{"type":"string","title":"Primary Cluster"}},"type":"object","required":["id","satellite_id","status","last_heartbeat","version","environment","is_connected","primary_cluster"],"title":"SatelliteInfo","description":"Satellite replica information."},"SatelliteResponse":{"properties":{"id":{"type":"string","title":"Id"},"satellite_id":{"type":"string","title":"Satellite Id"},"cluster_name":{"type":"string","title":"Cluster Name"},"environment":{"type":"string","title":"Environment"},"status":{"type":"string","title":"Status"},"last_heartbeat":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Heartbeat"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","satellite_id","cluster_name","environment","status","last_heartbeat","version","created_at"],"title":"SatelliteResponse","description":"Satellite information."},"SatellitesListResponse":{"properties":{"satellites":{"items":{"$ref":"#/components/schemas/SatelliteResponse"},"type":"array","title":"Satellites"}},"type":"object","required":["satellites"],"title":"SatellitesListResponse","description":"List of satellites."},"ScanResultItem":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"report":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report"},"severity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Severity"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"suggested_fix_repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Fix Repo"},"code_gen_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Gen Status"},"code_gen_action_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Gen Action Type"},"pr_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pr Url"},"investigation_ids":{"items":{"type":"string"},"type":"array","title":"Investigation Ids"},"investigation_count":{"type":"integer","title":"Investigation Count"},"triggered_by_users":{"items":{"$ref":"#/components/schemas/TriggeredByUser"},"type":"array","title":"Triggered By Users","default":[]},"routing_targets":{"items":{"$ref":"#/components/schemas/IssueRoutingTarget"},"type":"array","title":"Routing Targets","default":[]},"source":{"type":"string","title":"Source","default":"scan"},"silenced_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Silenced At"},"trend":{"anyOf":[{"$ref":"#/components/schemas/TrendInfo"},{"type":"null"}]},"sentry_issue_ids":{"items":{"type":"string"},"type":"array","title":"Sentry Issue Ids","default":[]},"session_replays":{"items":{"$ref":"#/components/schemas/SessionReplayInfo"},"type":"array","title":"Session Replays","default":[]}},"type":"object","required":["id","title","summary","report","investigation_ids","investigation_count"],"title":"ScanResultItem","description":"Single deduped issue result."},"ScanResultResponse":{"properties":{"id":{"type":"string","title":"Id"},"scan_run_id":{"type":"string","title":"Scan Run Id"},"endpoint_route":{"type":"string","title":"Endpoint Route"},"status":{"type":"string","title":"Status"},"assessment_evidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assessment Evidence"},"anomaly_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anomaly Type"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"investigation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investigation Id"},"investigation_verdict":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Investigation Verdict"},"created_at":{"type":"string","title":"Created At"},"detection_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detection Method"},"anomaly_windows":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Anomaly Windows"},"chart_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chart Image"}},"type":"object","required":["id","scan_run_id","endpoint_route","status","assessment_evidence","anomaly_type","severity","investigation_id","investigation_verdict","created_at"],"title":"ScanResultResponse","description":"Per-endpoint result within a scan run."},"ScanRunWithResultsResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"status":{"type":"string","title":"Status"},"hours_lookback":{"type":"integer","title":"Hours Lookback"},"result_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result Summary"},"results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Results"},"synthesis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Synthesis"}},"type":"object","required":["id","team_id","status","hours_lookback","result_summary","results"],"title":"ScanRunWithResultsResponse","description":"Response with scan run details and inline results (for dev mode)."},"SentryOAuthCallbackRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"SentryOAuthCallbackRequest"},"SentryOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"SentryOAuthCallbackResponse"},"SentryOAuthURLRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"org:read project:read team:read event:read"}},"type":"object","title":"SentryOAuthURLRequest"},"SentryOAuthURLResponse":{"properties":{"authorization_url":{"type":"string","title":"Authorization Url"}},"type":"object","required":["authorization_url"],"title":"SentryOAuthURLResponse"},"SessionReplayInfo":{"properties":{"recording_id":{"type":"string","title":"Recording Id"},"start_time":{"type":"string","title":"Start Time"},"duration_seconds":{"type":"number","title":"Duration Seconds"},"start_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Url"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"click_count":{"type":"integer","title":"Click Count","default":0},"console_error_count":{"type":"integer","title":"Console Error Count","default":0},"posthog_url":{"type":"string","title":"Posthog Url"},"relevance_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relevance Reason"},"console_errors":{"items":{"type":"string"},"type":"array","title":"Console Errors","default":[]}},"type":"object","required":["recording_id","start_time","duration_seconds","posthog_url"],"title":"SessionReplayInfo","description":"PostHog session replay metadata."},"SnowflakeOAuthCallbackRequest":{"properties":{"code":{"type":"string","title":"Code","description":"OAuth authorization code from Snowflake"},"redirect_uri":{"type":"string","title":"Redirect Uri","description":"The redirect URI used in the authorization request"}},"type":"object","required":["code","redirect_uri"],"title":"SnowflakeOAuthCallbackRequest","description":"Request body for exchanging OAuth code for tokens."},"SnowflakeOAuthCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success"}},"type":"object","required":["success"],"title":"SnowflakeOAuthCallbackResponse","description":"Response for Snowflake OAuth callback."},"SnowflakeOAuthConfigRequest":{"properties":{"client_id":{"type":"string","title":"Client Id","description":"Snowflake OAuth client ID"},"client_secret":{"type":"string","title":"Client Secret","description":"Snowflake OAuth client secret"},"account":{"type":"string","title":"Account","description":"Snowflake account identifier (e.g., xy12345.us-east-1)"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","description":"Snowflake role to use for queries (e.g., ACCOUNTADMIN)"}},"type":"object","required":["client_id","client_secret","account"],"title":"SnowflakeOAuthConfigRequest","description":"Request body for storing Snowflake OAuth configuration."},"SnowflakeOAuthConfigResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"snowflake_oauth_id":{"type":"string","title":"Snowflake Oauth Id"}},"type":"object","required":["success","snowflake_oauth_id"],"title":"SnowflakeOAuthConfigResponse","description":"Response for Snowflake OAuth configuration."},"StaticRuleRequest":{"properties":{"rule_type":{"type":"string","enum":["static_repeat_hour","static_sentry"],"title":"Rule Type"},"enabled":{"type":"boolean","title":"Enabled"},"channels":{"items":{"type":"string"},"type":"array","title":"Channels"},"users":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Users"},"hours_back":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hours Back","default":1},"reinvestigate_after_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reinvestigate After Days"}},"type":"object","required":["rule_type","enabled","channels"],"title":"StaticRuleRequest","description":"Request model for static rule configuration."},"Step1Request":{"properties":{"api_key":{"type":"string","minLength":1,"title":"Api Key","description":"New Relic User API Key (NRAK-...)"},"region":{"$ref":"#/components/schemas/NewRelicRegion","description":"New Relic region (US or EU)","default":"US"}},"type":"object","required":["api_key"],"title":"Step1Request","description":"Step 1 request: Collect API key and region."},"Step1Response":{"properties":{"success":{"type":"boolean","title":"Success"},"accounts":{"items":{"$ref":"#/components/schemas/NewRelicAccount"},"type":"array","title":"Accounts","default":[]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"onboarding_complete":{"type":"boolean","title":"Onboarding Complete","default":false}},"type":"object","required":["success"],"title":"Step1Response","description":"Step 1 response: Validation result and discovered accounts."},"Step2Request":{"properties":{"default_account_id":{"type":"string","title":"Default Account Id","description":"Account ID to set as default"}},"type":"object","required":["default_account_id"],"title":"Step2Request","description":"Step 2 request: Select default account (if multiple accounts)."},"TelemetryQueryRequest":{"properties":{"sql":{"type":"string","minLength":1,"title":"Sql","description":"DuckDB SQL over logs/spans/metrics"},"lookback_hours":{"type":"integer","maximum":168.0,"minimum":0.0,"title":"Lookback Hours","description":"How many hours of data to consider","default":24},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id","description":"Optional sandbox cache key for repeated queries"}},"type":"object","required":["sql"],"title":"TelemetryQueryRequest"},"TestScriptRequest":{"properties":{"inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inputs"}},"type":"object","title":"TestScriptRequest","description":"Request to test-run a script."},"TimeFilter":{"type":"string","enum":["daily","weekly","all_time"],"title":"TimeFilter","description":"Time filter options for usage queries."},"TokenResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"created_at":{"type":"string","title":"Created At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","name","token_prefix","created_at","expires_at","last_used_at","is_active"],"title":"TokenResponse","description":"Ingest token response (without full token)."},"TrendHistoryPoint":{"properties":{"bucket_start":{"type":"string","title":"Bucket Start"},"bucket_end":{"type":"string","title":"Bucket End"},"investigation_count":{"type":"integer","title":"Investigation Count"}},"type":"object","required":["bucket_start","bucket_end","investigation_count"],"title":"TrendHistoryPoint","description":"One data point in the issue trend time series."},"TrendHistoryResponse":{"properties":{"result_id":{"type":"string","title":"Result Id"},"title":{"type":"string","title":"Title"},"points":{"items":{"$ref":"#/components/schemas/TrendHistoryPoint"},"type":"array","title":"Points"}},"type":"object","required":["result_id","title","points"],"title":"TrendHistoryResponse","description":"Full trend history for an issue across scans."},"TrendInfo":{"properties":{"direction":{"type":"string","enum":["up","down","stable","new"],"title":"Direction"},"previous_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Count"},"delta":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta"}},"type":"object","required":["direction"],"title":"TrendInfo","description":"Trend data comparing an issue to the previous scan."},"TrendsResponse":{"properties":{"trends":{"additionalProperties":{"$ref":"#/components/schemas/TrendInfo"},"type":"object","title":"Trends"}},"type":"object","required":["trends"],"title":"TrendsResponse","description":"Mapping of result_id -> TrendInfo for a scan run."},"TriggeredByUser":{"properties":{"slack_user_id":{"type":"string","title":"Slack User Id"},"real_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Real Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_bot":{"type":"boolean","title":"Is Bot","default":false}},"type":"object","required":["slack_user_id","real_name","email"],"title":"TriggeredByUser","description":"A Slack user who triggered an investigation."},"UpdateActionRequest":{"properties":{"approval_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Mode"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"default_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Ref"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateActionRequest","description":"Request to update an existing action configuration."},"UpdateAgentChannelRequest":{"properties":{"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"},"eviction_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Eviction Hours"}},"type":"object","title":"UpdateAgentChannelRequest"},"UpdateEscalationRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"provider_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Provider Config"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"},"conditions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conditions"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"source_channel_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Channel Ids"},"source_channel_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Channel Names"},"message_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Template"}},"type":"object","title":"UpdateEscalationRequest"},"UpdateMetricSourceRequest":{"properties":{"name":{"type":"string","title":"Name","default":"P95 Latency"},"query":{"type":"string","title":"Query"},"provider":{"type":"string","title":"Provider","default":"grafana"},"datasource_uid":{"type":"string","title":"Datasource Uid","default":""}},"type":"object","required":["query"],"title":"UpdateMetricSourceRequest","description":"Request to update the monitored latency metric for an endpoint."},"UpdateMonitorRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"monitor_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitor Type"},"query_provider":{"anyOf":[{"type":"string","enum":["postgres","telemetry"]},{"type":"null"}],"title":"Query Provider"},"evaluation_interval_seconds":{"anyOf":[{"type":"integer","minimum":5.0},{"type":"null"}],"title":"Evaluation Interval Seconds"},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"},"options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Options"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"auto_investigate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Investigate"},"approval_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Mode"}},"type":"object","title":"UpdateMonitorRequest"},"UpdateNotificationChannelRequest":{"properties":{"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"}},"type":"object","title":"UpdateNotificationChannelRequest","description":"Request to set or clear the notification channel for an endpoint."},"UpdatePlanRequest":{"properties":{"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"UpdatePlanRequest"},"UpdateProfileRequest":{"properties":{"profile_text":{"type":"string","title":"Profile Text"}},"type":"object","required":["profile_text"],"title":"UpdateProfileRequest","description":"Request to update an endpoint's profile (single text document)."},"UpdateScriptRequest":{"properties":{"script_code":{"type":"string","title":"Script Code"},"script_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Script Inputs"},"credential_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Credential Keys"}},"type":"object","required":["script_code"],"title":"UpdateScriptRequest","description":"Request to update script code."},"UpdateWebhookRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateWebhookRequest"},"UsageDashboardResponse":{"properties":{"time_filter":{"$ref":"#/components/schemas/TimeFilter"},"chats":{"$ref":"#/components/schemas/ChatUsage"},"investigations":{"$ref":"#/components/schemas/InvestigationUsage"},"posthog":{"$ref":"#/components/schemas/PostHogUsage"}},"type":"object","required":["time_filter","chats","investigations","posthog"],"title":"UsageDashboardResponse","description":"Complete usage dashboard response."},"UserUsageMetric":{"properties":{"identifier":{"type":"string","title":"Identifier"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_bot":{"type":"boolean","title":"Is Bot","default":false},"count":{"type":"integer","title":"Count"}},"type":"object","required":["identifier","count"],"title":"UserUsageMetric","description":"Usage metric for a single user."},"ValidateMetricRequest":{"properties":{"query":{"type":"string","title":"Query"},"provider":{"type":"string","title":"Provider","default":"grafana"},"datasource_uid":{"type":"string","title":"Datasource Uid","default":""}},"type":"object","required":["query"],"title":"ValidateMetricRequest","description":"Request to validate a metric query without saving it."},"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"},"api__code_gen__router__CreatePRResponse":{"properties":{"status":{"type":"string","title":"Status"},"task_id":{"type":"string","title":"Task Id"},"message":{"type":"string","title":"Message"},"target_repo":{"type":"string","title":"Target Repo"}},"type":"object","required":["status","task_id","message","target_repo"],"title":"CreatePRResponse","description":"Response after kicking off PR creation."},"api__dedup_scan__router__CreatePRRequest":{"properties":{"repo_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Name"},"base_branch":{"type":"string","title":"Base Branch","default":"main"},"action_type":{"type":"string","enum":["fix","silence","add_observability"],"title":"Action Type","default":"fix"}},"type":"object","title":"CreatePRRequest","description":"Request to create a PR from a dedup scan result."},"api__dedup_scan__router__CreatePRResponse":{"properties":{"status":{"type":"string","title":"Status"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"message":{"type":"string","title":"Message"},"target_repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Repo"},"action_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Type"}},"type":"object","required":["status","message"],"title":"CreatePRResponse","description":"Response after kicking off PR creation."},"api__dedup_scan__router__ScanRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"status":{"type":"string","title":"Status"},"hours_lookback":{"type":"integer","title":"Hours Lookback"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"result_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result Summary"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","title":"Created At"},"synthesis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Synthesis"}},"type":"object","required":["id","team_id","schedule_id","status","hours_lookback","started_at","completed_at","result_summary","error_message","created_at"],"title":"ScanRunResponse","description":"Response with scan run details."},"api__dedup_scan__router__ScheduleCreateRequest":{"properties":{"interval_hours":{"type":"integer","enum":[12,24,168],"title":"Interval Hours"},"hours_lookback":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hours Lookback"},"run_at_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run At Hour"},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"}},"type":"object","required":["interval_hours"],"title":"ScheduleCreateRequest","description":"Request to create or update a schedule."},"api__dedup_scan__router__ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"interval_hours":{"type":"integer","title":"Interval Hours"},"hours_lookback":{"type":"integer","title":"Hours Lookback"},"run_at_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run At Hour"},"notification_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel Id"},"next_run_at":{"type":"string","title":"Next Run At"},"last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run At"}},"type":"object","required":["id","team_id","is_enabled","interval_hours","hours_lookback","run_at_hour","next_run_at","last_run_at"],"title":"ScheduleResponse","description":"Response with schedule details."},"api__onboarding__azure_monitor__models__ConnectRequest":{"properties":{"azure_tenant_id":{"type":"string","minLength":1,"title":"Azure Tenant Id","description":"Azure AD tenant ID"},"azure_subscription_id":{"type":"string","minLength":1,"title":"Azure Subscription Id","description":"Azure subscription ID"}},"type":"object","required":["azure_tenant_id","azure_subscription_id"],"title":"ConnectRequest","description":"Request to connect Azure Monitor integration."},"api__onboarding__azure_monitor__models__ConnectResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"ConnectResponse","description":"Response after connecting Azure Monitor."},"api__onboarding__azure_monitor__models__RemoveResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"RemoveResponse","description":"Response after removing integration."},"api__onboarding__azure_monitor__models__StatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"azure_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Azure Tenant Id"},"azure_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Azure Subscription Id"}},"type":"object","required":["configured"],"title":"StatusResponse","description":"Response for integration status check."},"api__onboarding__cloudflare__models__ConnectRequest":{"properties":{"api_token":{"type":"string","minLength":1,"title":"Api Token","description":"Cloudflare API token"},"token_type":{"$ref":"#/components/schemas/CloudflareTokenType","description":"Cloudflare account-owned API token type","default":"account"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id","description":"Default Cloudflare account ID. Required for Cloudflare account tokens."}},"type":"object","required":["api_token"],"title":"ConnectRequest","description":"Request body for connecting a Cloudflare integration."},"api__onboarding__cloudflare__models__ConnectResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"accounts":{"items":{"$ref":"#/components/schemas/CloudflareAccount"},"type":"array","title":"Accounts"},"zones":{"items":{"$ref":"#/components/schemas/CloudflareZone"},"type":"array","title":"Zones"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["success","message"],"title":"ConnectResponse","description":"Response returned after connecting Cloudflare."},"api__onboarding__cloudflare__models__RemoveResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"RemoveResponse","description":"Response returned after removing Cloudflare."},"api__onboarding__cloudflare__models__StatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"accounts":{"items":{"$ref":"#/components/schemas/CloudflareAccount"},"type":"array","title":"Accounts"},"zones":{"items":{"$ref":"#/components/schemas/CloudflareZone"},"type":"array","title":"Zones"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"}},"type":"object","required":["configured"],"title":"StatusResponse","description":"Current Cloudflare integration status for a team."},"api__onboarding__gcp_official__models__ConnectRequest":{"properties":{"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri","description":"OAuth redirect URI. Defaults to the configured redirect URL."},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id","description":"Google Cloud project ID used for MCP quota and billing."}},"type":"object","title":"ConnectRequest","description":"Request body for starting Google Cloud MCP onboarding."},"api__onboarding__gcp_official__models__ConnectResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"authorization_url":{"type":"string","title":"Authorization Url"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"transport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transport"},"statsig_gate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statsig Gate"}},"type":"object","required":["success","message","authorization_url"],"title":"ConnectResponse","description":"Response body for starting the OAuth flow."},"api__onboarding__gcp_official__models__RemoveResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"RemoveResponse","description":"Response after removing the integration."},"api__onboarding__gcp_official__models__StatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"connected":{"type":"boolean","title":"Connected"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"mcp_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Url"},"oauth_scopes":{"items":{"type":"string"},"type":"array","title":"Oauth Scopes"},"services":{"items":{"type":"string"},"type":"array","title":"Services"},"rollout_enabled":{"type":"boolean","title":"Rollout Enabled","default":false},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"transport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transport"},"statsig_gate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statsig Gate"},"official_rollout_enabled":{"type":"boolean","title":"Official Rollout Enabled","default":false},"self_hosted_rollout_enabled":{"type":"boolean","title":"Self Hosted Rollout Enabled","default":false}},"type":"object","required":["configured","connected"],"title":"StatusResponse","description":"Current Google Cloud MCP configuration status."},"api__onboarding__new_relic__models__RemoveResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"RemoveResponse","description":"Response after removing integration."},"api__onboarding__new_relic__models__StatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"accounts":{"items":{"$ref":"#/components/schemas/NewRelicAccount"},"type":"array","title":"Accounts","default":[]},"default_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Account Id"}},"type":"object","required":["configured"],"title":"StatusResponse","description":"Response for integration status check."},"api__proactive_scan__router__CreatePRRequest":{"properties":{"repo_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Name"},"base_branch":{"type":"string","title":"Base Branch","default":"main"},"action_type":{"type":"string","enum":["fix","silence","add_observability"],"title":"Action Type","default":"fix"}},"type":"object","title":"CreatePRRequest","description":"Request to create a PR from an investigation or scan result."},"api__proactive_scan__router__ScanRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"status":{"type":"string","title":"Status"},"endpoints_checked":{"type":"integer","title":"Endpoints Checked"},"anomalies_found":{"type":"integer","title":"Anomalies Found"},"investigations_run":{"type":"integer","title":"Investigations Run"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","team_id","status","endpoints_checked","anomalies_found","investigations_run","started_at","completed_at","error_message","created_at"],"title":"ScanRunResponse","description":"Response with scan run details."},"api__proactive_scan__router__ScheduleCreateRequest":{"properties":{"interval_minutes":{"type":"integer","title":"Interval Minutes"},"run_at_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run At Hour"}},"type":"object","required":["interval_minutes"],"title":"ScheduleCreateRequest","description":"Request to create or update an endpoint monitor schedule."},"api__proactive_scan__router__ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"team_id":{"type":"string","title":"Team Id"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"interval_minutes":{"type":"integer","title":"Interval Minutes"},"run_at_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run At Hour"},"next_run_at":{"type":"string","title":"Next Run At"},"last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run At"}},"type":"object","required":["id","team_id","is_enabled","interval_minutes","run_at_hour","next_run_at","last_run_at"],"title":"ScheduleResponse","description":"Response with schedule details."}}}}