Scan Configuration APIs
Add Scannable Resource (POST)
Add Scannable Resource.
Route
|
URI |
/api/v1/ScanConfiguration/AddScannableResource |
|
Method |
POST |
|
Result |
JSON – IActionResult |
Parameters
None
Example
POST http://localhost/api/v1/ScanConfiguration/AddScannableResource
Get All Scan Jobs (GET)
Get all active and recently completed scan jobs. Use this endpoint when reconnecting (e.g., after login) to restore job status UI.
Route
|
URI |
/api/v1/ScanConfiguration/AllScanJobs |
|
Method |
GET |
|
Result |
JSON – Object containing active and completed jobs |
Parameters
None
Example
GET http://localhost/api/v1/ScanConfiguration/AllScanJobs
Cancel Scan (POST)
Cancel Scan.
Route
|
URI |
/api/v1/ScanConfiguration/CancelScan/{resourceId} |
|
Method |
POST |
|
Result |
JSON – IActionResult |
Parameters
|
Name |
Type |
Mandatory |
Description |
|---|---|---|---|
|
resourceId |
Guid |
Yes |
|
Example
POST http://localhost/api/v1/ScanConfiguration/CancelScan/{resourceId}
Delete Scan Resources (DELETE)
Delete scan resource configurations and optionally their scan data
Route
|
URI |
/api/v1/ScanConfiguration/DeleteScanResources |
|
Method |
DELETE |
|
Result |
JSON – Result indicating success or failure |
Request Payload
DeleteScanResourcesRequest object:
|
Property |
Type |
Mandatory |
Description |
|---|---|---|---|
|
ResourceIds |
Guid[] |
No |
Array of resource GUIDs to delete |
|
Comment |
string |
No |
Comment describing the reason for deletion |
|
DeleteScanData |
bool? |
No |
If true, also deletes scan data from database; otherwise only removes resource configuration (default: true) |
Example
DELETE http://localhost/api/v1/ScanConfiguration/DeleteScanResources
Execute Scan (POST)
Execute Scan.
Route
|
URI |
/api/v1/ScanConfiguration/ExecuteScan/{resourceId} |
|
Method |
POST |
|
Result |
JSON – IActionResult |
Parameters
|
Name |
Type |
Mandatory |
Description |
|---|---|---|---|
|
resourceId |
Guid |
Yes |
|
Example
POST http://localhost/api/v1/ScanConfiguration/ExecuteScan/{resourceId}
Get Jobs Summary (GET)
Gets scan jobs summary (Scheduled, Executing, Succeeded, Failed).
Route
|
URI |
/api/v1/ScanConfiguration/JobsSummary |
|
Method |
GET |
|
Result |
JSON – Object containing all scan job summary with counts |
Parameters
None
Example
GET http://localhost/api/v1/ScanConfiguration/JobsSummary
Save Configuration (POST)
Save Configuration.
Route
|
URI |
/api/v1/ScanConfiguration/SaveScanConfig |
|
Method |
POST |
|
Result |
JSON – IActionResult |
Request Payload
ScannableResource object:
|
Property |
Type |
Mandatory |
Description |
|---|---|---|---|
|
ResourceName |
abstract string |
Yes |
|
|
ResourceScanConfiguration |
ResourceScanConfiguration |
Yes |
|
|
MaxParallelRequests |
int |
No |
|
|
TenantId |
string |
No |
|
|
Type |
abstract ResourceType |
No |
|
|
HasScans |
abstract bool |
No |
True, if this technology can have scans (we guess) |
Example
POST http://localhost/api/v1/ScanConfiguration/SaveScanConfig Content-Type: application/json
{
"ResourceName": {},
"ResourceScanConfiguration": {},
"MaxParallelRequests": 1,
"TenantId": "sample",
"Type": {},
"HasScans": {}
}
Get Configurations (GET)
Get Configurations.
Route
|
URI |
/api/v1/ScanConfiguration/ScanConfigurations |
|
Method |
GET |
|
Result |
JSON – IActionResult |
Parameters
None
Example
GET http://localhost/api/v1/ScanConfiguration/ScanConfigurations
Get (GET)
get configured scans
Route
|
URI |
/api/v1/ScanConfiguration/scanjobdetail |
|
Method |
GET |
|
Result |
JSON – <see cref="ScanConfigurationJobDetails"/> |
Parameters
|
Name |
Type |
Mandatory |
Description |
|---|---|---|---|
|
plannedJobs |
bool? |
No |
|
Example
GET http://localhost/api/v1/ScanConfiguration/scanjobdetail
Get Scan Job Status (GET)
Get the current status of a scan job
Route
|
URI |
/api/v1/ScanConfiguration/ScanJobStatus/{jobId} |
|
Method |
GET |
|
Result |
JSON – Current job status information |
Parameters
|
Name |
Type |
Mandatory |
Description |
|---|---|---|---|
|
jobId |
Guid |
Yes |
The job ID to query |
Example
GET http://localhost/api/v1/ScanConfiguration/ScanJobStatus/{jobId}
Get Scannable Resources (POST)
Get Scannable resources for discovery (e.g., Active Directory domains) Accepts credentials from the frontend for network scanning
Route
|
URI |
/api/v1/ScanConfiguration/ScannableResources/{resourceType} |
|
Method |
POST |
|
Result |
JSON – Array of Scannable resources that can be configured for scanning |
Request Payload
ScannableResourcesRequest object:
|
Property |
Type |
Mandatory |
Description |
|---|---|---|---|
|
Username |
string |
No |
The username for the credential |
|
Domain |
string |
No |
The system/domain name for the credential |
|
Password |
string |
No |
The password for the credential |
|
VendorName |
string |
No |
The vendor name for the credential |
|
TechnologyId |
int |
No |
The technology ID for the credential |
|
Uri |
string |
No |
Optional URI for specific resource discovery |
Example
POST http://localhost/api/v1/ScanConfiguration/ScannableResources/{resourceType} Content-Type: application/json
{
"Username": "sample",
"Domain": "sample",
"Password": "sample",
"VendorName": "sample",
"TechnologyId": 1,
"Uri": "sample"
}
Validate Credential (POST)
Validates the provided credentials against Active Directory. - For domain accounts: LDAP/Kerberos bind via LdapConnection - For local accounts: Win32 LogonUser API
Route
|
URI |
/api/v1/ScanConfiguration/ValidateCredential |
|
Method |
POST |
|
Result |
JSON – Credential validation result with success/failure details |
Request Payload
ScannableResourcesRequest object:
|
Property |
Type |
Mandatory |
Description |
|---|---|---|---|
|
Username |
string |
No |
The username for the credential |
|
Domain |
string |
No |
The system/domain name for the credential |
|
Password |
string |
No |
The password for the credential |
|
VendorName |
string |
No |
The vendor name for the credential |
|
TechnologyId |
int |
No |
The technology ID for the credential |
|
Uri |
string |
No |
Optional URI for specific resource discovery |
Example
POST http://localhost/api/v1/ScanConfiguration/ValidateCredential Content-Type: application/json
{
"Username": "sample",
"Domain": "sample",
"Password": "sample",
"VendorName": "sample",
"TechnologyId": 1,
"Uri": "sample"
}