{ "openapi": "3.1.0", "info": { "title": "Atlas InfoSec API Webserver", "description": "FastAPI webserver providing optimized access to Atlas Security data with Bearer token authentication", "version": "1.0.0" }, "paths": { "/kenna-owners": { "get": { "summary": "Get Kenna Owners", "operationId": "get_kenna_owners_kenna_owners_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/kenna-assets": { "get": { "summary": "Get Kenna Assets", "operationId": "get_kenna_assets_kenna_assets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "summary": "Get Kenna Assets By Owners Endpoint", "operationId": "get_kenna_assets_by_owners_endpoint_kenna_assets_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KennaOwnersList" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/kenna-assets/{page}": { "get": { "summary": "Get Kenna Assets Paginated", "operationId": "get_kenna_assets_paginated_kenna_assets__page__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "type": "integer", "title": "Page" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/kenna-vulnerabilities/{asset_id}/{cve_id}": { "get": { "summary": "Get Kenna Vulnerability By Asset Cve", "description": "Get vulnerability details for specific asset and CVE combination", "operationId": "get_kenna_vulnerability_by_asset_cve_kenna_vulnerabilities__asset_id___cve_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Asset Id" } }, { "name": "cve_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Cve Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/kenna-vulnerabilities": { "post": { "summary": "Get Bulk Kenna Vulnerabilities By Asset Cve", "description": "Get vulnerability details for multiple asset+CVE combinations", "operationId": "get_bulk_kenna_vulnerabilities_by_asset_cve_kenna_vulnerabilities_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KennaAssetCvesBulk" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/refresh-kenna": { "post": { "summary": "Refresh Kenna Data Cache", "operationId": "refresh_kenna_data_cache_cache_refresh_kenna_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/ivanti-owners": { "get": { "summary": "Get Ivanti Owners", "operationId": "get_ivanti_owners_ivanti_owners_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/ivanti-assets": { "get": { "summary": "Get Ivanti Assets", "operationId": "get_ivanti_assets_ivanti_assets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "summary": "Get Ivanti Assets By Owners Endpoint", "operationId": "get_ivanti_assets_by_owners_endpoint_ivanti_assets_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IvantiOwnersList" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/ivanti-assets/{page}": { "get": { "summary": "Get Ivanti Assets Paginated", "operationId": "get_ivanti_assets_paginated_ivanti_assets__page__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "type": "integer", "title": "Page" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ivanti-asset/{host_id}": { "get": { "summary": "Get Ivanti Asset By Host", "description": "Get single active asset by host_id", "operationId": "get_ivanti_asset_by_host_ivanti_asset__host_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ivanti-vulnerabilities/{host_id}/{qualys_id}": { "get": { "summary": "Get Ivanti Vulnerability By Host Qualys", "description": "Get vulnerability details for specific host and Qualys ID combination", "operationId": "get_ivanti_vulnerability_by_host_qualys_ivanti_vulnerabilities__host_id___qualys_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host Id" } }, { "name": "qualys_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Qualys Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ivanti-vulnerabilities": { "post": { "summary": "Get Bulk Ivanti Vulnerabilities By Host Qualys", "description": "Get vulnerability details for multiple host+Qualys ID combinations", "operationId": "get_bulk_ivanti_vulnerabilities_by_host_qualys_ivanti_vulnerabilities_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IvantiHostFindingsBulk" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/ivanti-vulnerabilities-by-host/{host_id}": { "get": { "summary": "Get Active Ivanti Vulnerabilities By Host", "description": "Get all active vulnerability details for a specific host", "operationId": "get_active_ivanti_vulnerabilities_by_host_ivanti_vulnerabilities_by_host__host_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ivanti-vulnerabilities-by-host": { "post": { "summary": "Get Bulk Active Ivanti Vulnerabilities By Hosts", "description": "Get all active vulnerability details for multiple hosts", "operationId": "get_bulk_active_ivanti_vulnerabilities_by_hosts_ivanti_vulnerabilities_by_host_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IvantiHostsBulk" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/refresh-ivanti": { "post": { "summary": "Refresh Ivanti Data Cache", "operationId": "refresh_ivanti_data_cache_cache_refresh_ivanti_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/hosts/{host_id}/action-plans": { "put": { "summary": "Create Action Plan", "description": "Create action plan for host and vulnerability", "operationId": "create_action_plan_hosts__host_id__action_plans_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateActionPlanRequest" }, "examples": { "decommission": { "summary": "Decommission Plan", "description": "Plan to decommission entire host (no qualys_id needed)", "value": { "plan_type": "decommission", "commit_date": "2026-07-01" } }, "remediation": { "summary": "Remediation Plan", "description": "Promise to remediate specific vulnerability", "value": { "plan_type": "remediation", "qualys_id": "QID-12345", "commit_date": "2026-07-01" } }, "false_positive": { "summary": "False Positive Plan", "description": "Mark vulnerability as false positive (jira_vnr optional)", "value": { "plan_type": "false_positive", "qualys_id": "QID-12345", "jira_vnr": "VNR-67890", "commit_date": "2026-07-01" } }, "risk_acceptance": { "summary": "Risk Acceptance Plan", "description": "Accept risk with exemption (archer_exc optional)", "value": { "plan_type": "risk_acceptance", "qualys_id": "QID-12345", "archer_exc": "EXC-54321", "commit_date": "2026-07-01" } }, "scan_exclusion": { "summary": "Scan Exclusion Plan", "description": "Exclude entire host from scanning (asset-level, no qualys_id needed, archer_exc optional)", "value": { "plan_type": "scan_exclusion", "commit_date": "2026-07-01" } }, "remediation_by_findings_id": { "summary": "Remediation by Host Findings ID", "description": "Create plan using active_host_findings_id instead of qualys_id", "value": { "plan_type": "remediation", "active_host_findings_id": 2647708909, "commit_date": "2026-07-01" } } } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "Get Action Plans By Host", "description": "Get full action plan history (active and inactive) for a specific host_id", "operationId": "get_action_plans_by_host_hosts__host_id__action_plans_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host 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 Action Plan", "description": "Update existing action plan", "operationId": "update_action_plan_hosts__host_id__action_plans_patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "host_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Host Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateActionPlanRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/hosts/create-bulk-action-plans": { "post": { "summary": "Create Bulk Action Plans", "description": "Create action plans for multiple hosts in a single request", "operationId": "create_bulk_action_plans_hosts_create_bulk_action_plans_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateBulkActionPlansRequest" }, "examples": { "bulk_decommission": { "summary": "Bulk Decommission", "description": "Create decommission plans for multiple hosts", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "decommission", "commit_date": "2026-07-01" } }, "bulk_remediation": { "summary": "Bulk Remediation", "description": "Create remediation plans for a specific vulnerability across multiple hosts", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "remediation", "qualys_id": "QID-12345", "commit_date": "2026-07-01" } }, "bulk_false_positive": { "summary": "Bulk False Positive", "description": "Mark a vulnerability as false positive across multiple hosts (jira_vnr optional)", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "false_positive", "qualys_id": "QID-12345", "jira_vnr": "VNR-67890", "commit_date": "2026-07-01" } }, "bulk_risk_acceptance": { "summary": "Bulk Risk Acceptance", "description": "Accept risk for a vulnerability across multiple hosts (archer_exc optional)", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "risk_acceptance", "qualys_id": "QID-12345", "archer_exc": "EXC-54321", "commit_date": "2026-07-01" } }, "bulk_scan_exclusion": { "summary": "Bulk Scan Exclusion", "description": "Exclude multiple hosts from scanning (asset-level, no qualys_id needed, archer_exc optional)", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "scan_exclusion", "commit_date": "2026-07-01" } }, "bulk_remediation_by_findings_id": { "summary": "Bulk Remediation by Host Findings ID", "description": "Create remediation plans using active_host_findings_id instead of qualys_id", "value": { "host_ids": [ 123, 456, 789 ], "plan_type": "remediation", "active_host_findings_id": 2647708909, "commit_date": "2026-07-01" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health": { "get": { "summary": "Health Check", "operationId": "health_check_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/is-alive": { "get": { "summary": "Is Alive", "operationId": "is_alive_is_alive_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } } }, "components": { "schemas": { "CreateActionPlanRequest": { "properties": { "plan_type": { "type": "string", "title": "Plan Type" }, "commit_date": { "type": "string", "title": "Commit Date" }, "qualys_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Qualys Id" }, "active_host_findings_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Active Host Findings Id" }, "jira_vnr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Jira Vnr" }, "archer_exc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Archer Exc" } }, "type": "object", "required": [ "plan_type", "commit_date" ], "title": "CreateActionPlanRequest" }, "CreateBulkActionPlansRequest": { "properties": { "host_ids": { "items": { "type": "integer" }, "type": "array", "title": "Host Ids" }, "plan_type": { "type": "string", "title": "Plan Type" }, "commit_date": { "type": "string", "title": "Commit Date" }, "qualys_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Qualys Id" }, "active_host_findings_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Active Host Findings Id" }, "jira_vnr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Jira Vnr" }, "archer_exc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Archer Exc" } }, "type": "object", "required": [ "host_ids", "plan_type", "commit_date" ], "title": "CreateBulkActionPlansRequest" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "IvantiHostFindings": { "properties": { "host_id": { "type": "integer", "title": "Host Id" }, "qualys_ids": { "items": { "type": "string" }, "type": "array", "title": "Qualys Ids" } }, "type": "object", "required": [ "host_id", "qualys_ids" ], "title": "IvantiHostFindings" }, "IvantiHostFindingsBulk": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/IvantiHostFindings" }, "type": "array", "title": "Assets" } }, "type": "object", "required": [ "assets" ], "title": "IvantiHostFindingsBulk" }, "IvantiHostsBulk": { "properties": { "host_ids": { "items": { "type": "integer" }, "type": "array", "title": "Host Ids" } }, "type": "object", "required": [ "host_ids" ], "title": "IvantiHostsBulk" }, "IvantiOwnersList": { "properties": { "owners": { "items": { "type": "string" }, "type": "array", "title": "Owners" } }, "type": "object", "required": [ "owners" ], "title": "IvantiOwnersList" }, "KennaAssetCves": { "properties": { "asset_id": { "type": "integer", "title": "Asset Id" }, "cve_ids": { "items": { "type": "string" }, "type": "array", "title": "Cve Ids" } }, "type": "object", "required": [ "asset_id", "cve_ids" ], "title": "KennaAssetCves" }, "KennaAssetCvesBulk": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/KennaAssetCves" }, "type": "array", "title": "Assets" } }, "type": "object", "required": [ "assets" ], "title": "KennaAssetCvesBulk" }, "KennaOwnersList": { "properties": { "owners": { "items": { "type": "string" }, "type": "array", "title": "Owners" } }, "type": "object", "required": [ "owners" ], "title": "KennaOwnersList" }, "UpdateActionPlanRequest": { "properties": { "action_plan_id": { "type": "string", "title": "Action Plan Id" }, "updates": { "additionalProperties": true, "type": "object", "title": "Updates" } }, "type": "object", "required": [ "action_plan_id", "updates" ], "title": "UpdateActionPlanRequest" }, "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": { "APIKeyHeader": { "type": "apiKey", "description": "Input Bearer Token (e.g., Bearer eyJhbGciOiJSUzI1NiIs...)", "in": "header", "name": "Authorization" } } } }