{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Home","operationId":"home__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/login":{"get":{"summary":"Login Page","operationId":"login_page_login_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/signup":{"get":{"summary":"Signup Page","operationId":"signup_page_signup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/account":{"get":{"summary":"Account Page","operationId":"account_page_account_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard":{"get":{"summary":"Dashboard Page","operationId":"dashboard_page_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/docs":{"get":{"summary":"Docs Page","description":"Auto-generated documentation page.","operationId":"docs_page_docs_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/docs/api":{"get":{"summary":"Api Docs Page","operationId":"api_docs_page_docs_api_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/docs/api.md":{"get":{"summary":"Api Docs Markdown","operationId":"api_docs_markdown_docs_api_md_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/device":{"get":{"summary":"Device Approve Page","operationId":"device_approve_page_device_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/terms":{"get":{"summary":"Terms Page","operationId":"terms_page_terms_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/privacy":{"get":{"summary":"Privacy Page","operationId":"privacy_page_privacy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/verify-email":{"get":{"summary":"Verify Email Page","operationId":"verify_email_page_verify_email_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/install.sh":{"get":{"summary":"Install Script","operationId":"install_script_install_sh_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/install.ps1":{"get":{"summary":"Install Script Ps1","operationId":"install_script_ps1_install_ps1_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/downloads/{binary_name}":{"get":{"summary":"Download Cli","operationId":"download_cli_downloads__binary_name__get","parameters":[{"name":"binary_name","in":"path","required":true,"schema":{"type":"string","title":"Binary Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/install-tokens":{"post":{"summary":"Create Install Token","operationId":"create_install_token_api_install_tokens_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/install-tokens/redeem":{"post":{"summary":"Redeem Install Token","operationId":"redeem_install_token_api_install_tokens_redeem_post","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/auth/register":{"post":{"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Register Api Auth Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Login Api Auth Login Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/device/code":{"post":{"summary":"Device Code Create","operationId":"device_code_create_api_auth_device_code_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Device Code Create Api Auth Device Code Post"}}}}}}},"/api/auth/device/poll":{"get":{"summary":"Device Code Poll","operationId":"device_code_poll_api_auth_device_poll_get","parameters":[{"name":"device_code","in":"query","required":true,"schema":{"type":"string","title":"Device Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Device Code Poll Api Auth Device Poll Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/device/approve":{"post":{"summary":"Device Code Approve","operationId":"device_code_approve_api_auth_device_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceApproveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Device Code Approve Api Auth Device Approve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/counter/ingest":{"post":{"summary":"Ingest Metrics","operationId":"ingest_metrics_api_counter_ingest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Ingest Metrics Api Counter Ingest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/counter/metrics":{"get":{"tags":["Metrics"],"summary":"Get Metrics","description":"Query account metrics using URL parameters and an Authorization bearer token.","operationId":"get_metrics_api_counter_metrics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_type","in":"query","required":true,"schema":{"type":"string","title":"Metric Type"}},{"name":"hostname","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"}},{"name":"last","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Last"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}},{"name":"process_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Name"}},{"name":"process_pid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Pid"}},{"name":"mountpoint","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mountpoint"}},{"name":"container_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container Name"}},{"name":"interface","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interface"}},{"name":"aggregate","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Aggregate"}},{"name":"summary","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Summary"}},{"name":"breakdown","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Breakdown"}},{"name":"bucket_seconds","in":"query","required":false,"schema":{"type":"integer","default":300,"title":"Bucket Seconds"}},{"name":"top","in":"query","required":false,"schema":{"type":"integer","default":6,"title":"Top"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Metrics Api Counter Metrics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/counter/query":{"post":{"tags":["Metrics"],"summary":"Query Metrics","operationId":"query_metrics_api_counter_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Query Metrics Api Counter Query Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/counter/hosts":{"get":{"tags":["Metrics"],"summary":"List Hosts","operationId":"list_hosts_api_counter_hosts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Hosts Api Counter Hosts Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/counter/hosts/delete":{"post":{"summary":"Delete Host","operationId":"delete_host_api_counter_hosts_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHostRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Delete Host Api Counter Hosts Delete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/browser-errors":{"post":{"summary":"Ingest Browser Errors","operationId":"ingest_browser_errors_api_browser_errors_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Response Ingest Browser Errors Api Browser Errors Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/account":{"get":{"summary":"Get Account","operationId":"get_account_api_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Account Api Account Get"}}}}}},"delete":{"summary":"Delete Account","description":"Delete the authenticated user's account.\n\nRequires the user to type their email address as confirmation.","operationId":"delete_account_api_account_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAccountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Delete Account Api Account Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/send-email-verification":{"post":{"summary":"Send Email Verification","description":"Resend the email verification link.","operationId":"send_email_verification_api_auth_send_email_verification_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Send Email Verification Api Auth Send Email Verification Post"}}}}}}},"/api/auth/verify-email":{"post":{"summary":"Verify Email","description":"Verify a user's email address using the token from the email link.","operationId":"verify_email_api_auth_verify_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerificationConfirmRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Verify Email Api Auth Verify Email Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin":{"get":{"summary":"Admin Page","operationId":"admin_page_admin_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/api/stats":{"get":{"summary":"Admin Stats","operationId":"admin_stats_admin_api_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Admin Stats Admin Api Stats Get"}}}}}}},"/health":{"get":{"summary":"Health Check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Health Get"}}}}}}}},"components":{"schemas":{"AuthRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"AuthRequest"},"DeleteAccountRequest":{"properties":{"confirmation":{"type":"string","title":"Confirmation"}},"type":"object","required":["confirmation"],"title":"DeleteAccountRequest"},"DeleteHostRequest":{"properties":{"hostname":{"type":"string","title":"Hostname"}},"type":"object","required":["hostname"],"title":"DeleteHostRequest"},"DeviceApproveRequest":{"properties":{"user_code":{"type":"string","title":"User Code"}},"type":"object","required":["user_code"],"title":"DeviceApproveRequest"},"EmailVerificationConfirmRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"EmailVerificationConfirmRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MetricsBatch":{"properties":{"hostname":{"type":"string","title":"Hostname"},"timestamp":{"type":"string","title":"Timestamp"},"system":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System"},"disks":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Disks"},"network":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Network"},"processes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Processes"},"containers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Containers"}},"type":"object","required":["hostname","timestamp"],"title":"MetricsBatch"},"QueryRequest":{"properties":{"metric_type":{"type":"string","title":"Metric Type"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"last":{"type":"string","title":"Last","default":"1h"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"},"process_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Name"},"process_pid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Pid"},"mountpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mountpoint"},"container_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container Name"},"interface":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interface"},"aggregate":{"type":"boolean","title":"Aggregate","default":false},"summary":{"type":"boolean","title":"Summary","default":false},"breakdown":{"type":"boolean","title":"Breakdown","default":false},"bucket_seconds":{"type":"integer","title":"Bucket Seconds","default":300},"top":{"type":"integer","title":"Top","default":6}},"type":"object","required":["metric_type"],"title":"QueryRequest"},"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"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}