1316 lines
49 KiB
JSON
1316 lines
49 KiB
JSON
|
|
{
|
||
|
|
"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"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|