/** * Type definitions for NeuBird API requests and responses * Based on NeuBird API documentation and reference code */ export interface LoginRequest { email: string; password: string; } export interface LoginResponse { access_token: string; } export interface Project { uuid: string; name: string; description: string; state: string; sync_state: string; training_state: string; created_at: string; updated_at: string; organization_uuid: string; icon_style?: string; gendb_spec?: { uuid: string; [key: string]: any; }; } export interface ListProjectsResponse { specs: Project[]; } export interface Session { session_uuid?: string; name: string; create_time?: string; last_update?: string; project_uuid?: string; organization_uuid?: string; prompt_cycle_count?: number; prompt_cycle_ids?: string[]; incident_info?: { id: string; title?: string; [key: string]: any; }; [key: string]: any; } export interface CreateSessionRequest { filter_chain: null; gendb_spec: { uuid: string; }; organization_uuid: string; project_uuid: string; request: { request_id: string; }; } export interface CreateSessionResponse { uuid: string; [key: string]: any; } export interface PaginationFilter { field: string; operator: string; value: string; } export interface PaginationOptions { limit: number; sort: null | string; start: number; filters?: PaginationFilter[]; } export interface ListSessionsRequest { request: { id?: string; request_id?: string; }; project_uuid: string; organization_uuid: string; pagination?: PaginationOptions | { filters?: Array<{ key: string; value: string; operator: string; }>; page_size?: number; page_token?: string; }; } export interface ListSessionsResponse { sessions: Session[]; next_page_token?: string; } export interface InspectSessionRequest { request: { id: string; }; session_uuid: string; project_uuid: string; organization_uuid: string; } export interface ChainOfThought { description: string; investigation?: string; sources?: any[]; [key: string]: any; } export interface PromptCycle { id: string; status: string; request: { messages: Array<{ content: { content_type: string; parts: string[]; }; }>; }; final_answer?: string; chain_of_thoughts: ChainOfThought[]; sources: any[]; follow_up_suggestions?: string[]; [key: string]: any; } export interface InspectSessionResponse { session_uuid?: string; name?: string; create_time?: string; last_update?: string; project_uuid?: string; organization_uuid?: string; prompt_cycle_count?: number; state?: string; final_answer?: string; chain_of_thoughts?: ChainOfThought[]; sources?: any[]; incident_info?: { id: string; [key: string]: any; }; session_info?: { session_uuid: string; name: string; create_time: string; last_update: string; }; prompt_cycle?: PromptCycle[]; [key: string]: any; } export interface SessionReport { create_time: string; prompt: string; session_link: string; summary: string; time_saved: number; } export interface SessionSummary { session_info?: { session_uuid: string; project_uuid: string; name: string; session_type: string; investigation_status: string; [key: string]: unknown; }; session_summary?: { /** * Formatted analysis including RCA, timeline, corrective actions, and time savings * This is markdown-formatted text that includes all investigation details */ analysis?: string; analysis_score?: { accuracy: { root_cause_correct: 'Yes' | 'No' | 'Partial'; impact_analysis_correct: 'Yes' | 'No' | 'Partial'; timeline_accurate: 'Yes' | 'No' | 'Partial'; overall_score: number; }; completeness: { data_sources: number; remediation_steps: number; prevention_measures: number; business_impact: number; overall_score: number; }; qualitative: { trust_without_review: 'Yes' | 'No' | 'Maybe'; missing_elements: string; additional_notes: string; improvement_suggestions: string; }; scored_by: string; scored_during_call: boolean; call_recording_url: string | null; }; time_saved_summary?: { time_saved_seconds: number; time_saved_minutes: number; standard_investigation_time_minutes: number; hawkeye_investigation_time_minutes: number; }; sources_involved?: string[]; users_involved?: string[]; }; } export interface PriorityReport { avg_investigation_time_minutes: number; avg_mttr: number; avg_time_saved_minutes: number; investigated_incidents: number; percent_grouped: number; priority: string; total_incidents: number; } export interface IncidentTypeReport { incident_type: string; priority_reports: PriorityReport[]; } export interface IncidentReport { avg_investigation_time_saved_minutes: number; avg_mttr: number; end_time: string; start_time: string; incident_type_reports: IncidentTypeReport[]; noise_reduction: number; total_incidents: number; total_investigation_time_saved_hours: number; total_investigations: number; } export interface SendPromptRequest { action: 'ACTION_NEXT'; session_uuid: string; project_uuid: string; messages: Array<{ content: { content_type: 'CONTENT_TYPE_CHAT_PROMPT'; parts: string[]; }; }>; request: { request_id: string; }; prompt_options: { disable_replay: boolean; source_focus_categories: string[]; }; } export interface SendPromptResponse { status: string; [key: string]: any; } export declare enum ConnectionType { AWS = "CONNECTION_TYPE_AWS", AZURE = "CONNECTION_TYPE_AZURE", GCP = "CONNECTION_TYPE_GCP", PAGERDUTY = "CONNECTION_TYPE_PAGERDUTY", SERVICENOW = "CONNECTION_TYPE_SERVICENOW", FIREHYDRANT = "CONNECTION_TYPE_FIREHYDRANT", INCIDENTIO = "CONNECTION_TYPE_INCIDENTIO", OPSGENIE = "CONNECTION_TYPE_OPSGENIE", DATADOG = "CONNECTION_TYPE_LOG_DATADOG", SPLUNK = "CONNECTION_TYPE_LOG_SPLUNK", ELASTIC = "CONNECTION_TYPE_LOG_ELASTIC", OPENSEARCH = "CONNECTION_TYPE_OPENSEARCH", IBMLOGS = "CONNECTION_TYPE_IBMLOGS", OTEL = "CONNECTION_TYPE_LOG_OTEL", SNOWFLAKE = "CONNECTION_TYPE_LOG_SNOWFLAKE", SYSDIG = "CONNECTION_TYPE_SYSDIG", DYNATRACE = "CONNECTION_TYPE_DYNATRACE", NEWRELIC = "CONNECTION_TYPE_NEWRELIC", SENTRY = "CONNECTION_TYPE_SENTRY", SIGNALFX = "CONNECTION_TYPE_SIGNALFX", NAGIOS = "CONNECTION_TYPE_NAGIOS", PROMETHEUS = "CONNECTION_TYPE_METRIC_PROMETHEUS", KLOUDFUSE = "CONNECTION_TYPE_KLOUDFUSE", GRAFANA = "CONNECTION_TYPE_GRAFANA", INFLUX_DB = "CONNECTION_TYPE_INFLUX_DB", GITHUB = "CONNECTION_TYPE_GITHUB", GITLAB = "CONNECTION_TYPE_GITLAB", ARGO_WORKFLOW = "CONNECTION_TYPE_ARGO_WORKFLOW", JIRA = "CONNECTION_TYPE_JIRA", K8S = "CONNECTION_TYPE_K8S", MONGODB = "CONNECTION_TYPE_MONGODB", CLICKHOUSE = "CONNECTION_TYPE_CLICKHOUSE", SLACK = "CONNECTION_TYPE_SLACK", EXTERNAL_TOOL = "CONNECTION_TYPE_EXTERNAL_TOOL", AZURE_DEVOPS = "CONNECTION_TYPE_AZURE_DEVOPS" } export declare enum TelemetryType { CONFIG = "TELEMETRY_TYPE_CONFIG", ALERT = "TELEMETRY_TYPE_ALERT", LOG = "TELEMETRY_TYPE_LOG", METRIC = "TELEMETRY_TYPE_METRIC", TRACE = "TELEMETRY_TYPE_TRACE" } export declare enum SyncState { NOT_SYNCED = "SYNC_STATE_NOT_SYNCED", SYNCING = "SYNC_STATE_SYNCING", SYNCED = "SYNC_STATE_SYNCED", ERROR = "SYNC_STATE_ERROR" } export interface AWSConnectionInfo { role_arn: string; external_id: string; regions: string[]; } export interface AzureConnectionInfo { client_id: string; client_secret: string; tenant_id: string; } export interface GCPConnectionInfo { service_account_key: string; } export interface PagerDutyConnectionInfo { api_access_key: string; } export interface ServiceNowConnectionInfo { api_access_key: string; customer_url: string; } export interface GitHubConnectionInfo { installation_id: string; } export interface DatadogConnectionInfo { api_key: string; app_key: string; endpoint: string; } export interface SplunkConnectionInfo { url: string; api_key: string; } export interface ElasticConnectionInfo { url: string; api_key: string; } export interface PrometheusConnectionInfo { url: string; } export interface GrafanaConnectionInfo { endpoint: string; token: string; teleport?: Record; } export interface FireHydrantConnectionInfo { api_key: string; } export interface DynatraceConnectionInfo { endpoint: string; api_key: string; client_id?: string; client_secret?: string; } export interface Connection { uuid: string; name: string; description?: string; connection_type: string; sync_state: string; training_state: string; telemetry_type_sync_states?: Record; created_at?: string; updated_at?: string; aws_connection_info?: AWSConnectionInfo; azure_connection_info?: AzureConnectionInfo; gcp_connection_info?: GCPConnectionInfo; pagerduty_connection_info?: PagerDutyConnectionInfo; servicenow_connection_info?: ServiceNowConnectionInfo; github_connection_info?: GitHubConnectionInfo; log_datadog_connection_info?: DatadogConnectionInfo; log_splunk_connection_info?: SplunkConnectionInfo; log_elastic_connection_info?: ElasticConnectionInfo; metric_prometheus_connection_info?: PrometheusConnectionInfo; grafana_connection_info?: GrafanaConnectionInfo; firehydrant_connection_info?: FireHydrantConnectionInfo; dynatrace_connection_info?: DynatraceConnectionInfo; [key: string]: any; } export interface ListConnectionsResponse { specs: Connection[]; } export interface CreateConnectionRequest { connection: { name: string; connection_type: string; description?: string; aws_connection_info?: AWSConnectionInfo; azure_connection_info?: AzureConnectionInfo; gcp_connection_info?: GCPConnectionInfo; pagerduty_connection_info?: PagerDutyConnectionInfo; servicenow_connection_info?: ServiceNowConnectionInfo; github_connection_info?: GitHubConnectionInfo; log_datadog_connection_info?: DatadogConnectionInfo; log_splunk_connection_info?: SplunkConnectionInfo; log_elastic_connection_info?: ElasticConnectionInfo; metric_prometheus_connection_info?: PrometheusConnectionInfo; grafana_connection_info?: GrafanaConnectionInfo; firehydrant_connection_info?: FireHydrantConnectionInfo; dynatrace_connection_info?: DynatraceConnectionInfo; [key: string]: any; }; } export interface CreateConnectionResponse { response?: { uuid: string; [key: string]: any; }; uuid?: string; } export interface ResourceId { name: string; native_id: string; resource_type: string; uuid: string; } export interface Resource { id: ResourceId; connection_uuid: string; telemetry_type: string; resource_type?: string; accessibility?: string; description?: string; create_time?: string; update_time?: string; generation_number?: string; alarm_info?: any; log_group_info?: any; metric_info?: any; config_info?: any; [key: string]: any; } export interface ListResourcesResponse { specs: Resource[]; pagination_response?: { limit: number; total: number; next_pagination_token?: { offset: number; token: string; }; }; response?: { request_id: string; }; } export declare enum InstructionType { FILTER = "INSTRUCTION_TYPE_FILTER", SYSTEM = "INSTRUCTION_TYPE_SYSTEM", GROUPING = "INSTRUCTION_TYPE_GROUPING", RCA = "INSTRUCTION_TYPE_RCA" } export declare enum InstructionStatus { ENABLED = "INSTRUCTION_STATUS_ENABLED", DISABLED = "INSTRUCTION_STATUS_DISABLED" } export interface Instruction { uuid: string; name: string; type: string; content: string; project_uuid?: string; session_uuid?: string; created_at?: string; updated_at?: string; } export interface CreateInstructionRequest { instruction: { name: string; type: string; content: string; project: string; session_uuid: string; }; } export interface CreateInstructionResponse { response: { request_id: string; uuid: string; }; } export interface ListInstructionsResponse { instructions?: Instruction[]; specs?: Instruction[]; [key: string]: any; } export interface RequestMetadata { id?: string; request_id?: string; } export declare function generateRequestId(): string;