Qulays Patch Management Release 3.5 API
April 21, 2025
Before understanding the API release highlights, learn more about the API server URL to be used in your API requests by referring to the Know Your Qualys API Server URL section. For this API Release Notes, <qualys_base_url> is mentioned in the sample API requests.
Enhanced Linux Deployment Job APIs
Enhanced API: Create a Linux Deployment Job
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob |
Method | POST |
DTD or XSD changes | Not Applicable |
In earlier release, certain errors occurred in Linux patching as the package cache was not updated correctly, due to which users had to run commands to update the cache.
With this release, a new feature Linux Package Cache Update is introduced as a toggle in the Linux deployment creation job. With this enhancement in API, the script updates the package repository that performs the Linux deployment successfully.
Input ParametersInput Parameters
Parameter |
Sub Parameters |
Mandatory/ |
Data Type |
Description |
---|---|---|---|---|
preDeployActions | action | Optional | String | Specify the action. For example, Run Script |
actionItem | Optional | String | Specify the actionItem. For example, makeCache Pre-Action |
|
defaultScriptType | Optional | String | Specify the default script type. For example, MakeCache |
|
scriptType | Optional | String | Specify the scriptType. For example: sh |
|
script | Optional | String | The value must be empty. For example: script: " " |
Sample - Create a Linux Deployment JobSample - Create a Linux Deployment Job
API Request
curl -X POST "<qualys_base_url>/pm/v1/deploymentjob"
-H "accept: application/json"
-H "Authorization: Bearer <<jwt token>>"
Request Body
{
"approvedPatches": [],
"dynamicPatchesQQL": "",
"isDynamicPatchesQQL": false,
"additionalDynamicPatchesQQL": "",
"additionalDynamicQQLType": "",
"dynamicQQLType": 1,
"linkedJobId": "",
"assetIds": [
"08a028e6-7e1d-4dbf-b040-48d9059dee08"
],
"isAssetImported": false,
"assetFilePath": null,
"assetTagIds": [],
"deleted": false,
"duringDeployment": {
"userMessage": "",
"description": ""
},
"name": "Demo_MakeCache",
"description": "",
"createdBy": null,
"patchCount": 0,
"postDeployment": {
"suppressreboots": false,
"onComplete": {
"userMessage": "",
"description": ""
}
},
"preDeployment": {
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
},
"userMessage": "",
"description": ""
},
"recurring": false,
"dayOfMonth": null,
"recurringLastDayOfMonth": false,
"recurringDayOfMonth": null,
"patchTuesdayPlusXDays": null,
"monthlyRecurringType": null,
"recurringWeekDayOfMonth": null,
"recurringWeekDays": "",
"scheduleType": "On-demand",
"schemaVersion": "1.0",
"startDateTime": null,
"status": "Enabled",
"opportunisticDownloads": false,
"minimizeWindow": false,
"timeout": -1,
"timeoutUnit": "HOURS",
"timezone": null,
"timezoneType": null,
"type": "Install",
"filterType": "Any",
"exclusionFilterType": "Any",
"exclusionTagIds": [],
"matchAllTagIds": [],
"coAuthorUserIds": [],
"platform": "Linux",
"continueOnPatchFailure": false,
"exclusionAssetIds": [],
"jobCategory": null,
"jobSource": 2,
"preDeployActions": [
{
"action": "Run Script",
"params": {
"actionItem": "makecache Pre-Action",
"remediationScope": false,
"defaultScriptType": "MakeCache"
},
"scriptType": "sh",
"script": ""
}
],
"postDeployActions": [],
"notification": null,
"remediationQids": [],
"isVulnContext": false,
"subCategory": "Patch",
"chainedJobRule": [],
"hostIsolationConfig": null,
"quarantineAssetRequestNotification": null
}
API Response
{ "customerId": "8ac1558c-cbdf-c133-80c6-0fcf7d68e79c", "id": "8df80cf0-e24c-4d7c-877f-10700250c906", "schemaVersion": "1.0", "name": "Demo_MakeCache", "type": "Install", "status": "Enabled", "assetIds": [ "08a028e6-7e1d-4dbf-b040-48d9059dee08" ], "assetTagIds": [], "matchAllTagIds": [], "exclusionTagIds": [], "exclusionAssetIds": [], "coAuthorUserIds": [], "approvedPatches": [], "disabledPatches": null, "patchCount": 0, "scheduleType": "On-demand", "startDateTime": "2025-3-19 04:59:17 AM", "recurring": false, "recurringWeekDays": "", "dayOfMonth": null, "recurringDayOfMonth": null, "recurringWeekDayOfMonth": null, "timezoneType": "SPECIFIC_TZ", "timezone": "UTC", "timeout": -1, "timeoutUnit": "HOURS", "preDeployment": { "userMessage": "", "description": "", "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" } }, "duringDeployment": { "userMessage": "", "description": "" }, "postDeployment": { "suppressReboots": false, "rebootHonorOnUserLogin": false, "rebootOption": { "userMessage": "", "description": "", "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" } }, "rebootCountdown": { "interval": 15, "intervalUnit": "MINUTES", "userMessage": "", "description": "" }, "onComplete": { "userMessage": "", "description": "", "alwaysShowCompletedPrompt": false } }, "description": "", "createdBy": { "user": { "id": "9ea81ebb-1830-5f23-8389-2921ae95238f", "name": "quaysxkm14", "fullName": "Karan Mehta" }, "date": 1742360357346 }, "updatedBy": { "user": null, "date": null }, "deletedBy": { "user": null, "date": null }, "assetCount": null, "opportunisticDownloads": false, "filterType": "Any", "exclusionFilterType": "Any", "taggedAssetCount": 0, "minimizeWindow": false, "dynamicPatchesQQL": "", "isDynamicPatchesQQL": false, "dynamicQQLType": 1, "platform": "Linux", "continueOnPatchFailure": false, "preDeployActions": [ { "actionId": "926ff25c-e1c4-4613-a446-53268fed1b52", "action": "Run Script", "actionType": "predeploy", "params": { "actionItem": "makecache Pre-Action", "timeout": 180, "remediationScope": false, "defaultScriptType": "MakeCache" }, "script": "default/MakeCache/makecache", "scriptType": "sh", "actionLinkedToJob": false } ], "postDeployActions": null, "applicableAssetCount": 1, "monthlyRecurringType": null, "patchTuesdayPlusXDays": null, "recurringLastDayOfMonth": false, "jobCategory": 3, "jobTriggerStatus": null, "completionPercent": null, "totalAssetCount": null, "assetResultReceivedCount": null, "jobSource": 3, "readOnly": false, "notification": null, "linkedJobId": null, "linkedToJob": null, "linkedJobs": null, "jobStartCountdown": null, "passwordAction": null, "subCategory": "Patch", "additionalDynamicQQLType": null, "additionalDynamicPatchesQQL": null, "downloadRandomizeTime": 0, "downloadRandomizeTimeUnit": "MINUTES", "customPatchURLId": null, "isVulnContext": false, "remediationQids": [], "isAssetImported": false, "hostIsolationConfig": null, "quarantineAssetRequestNotification": null, "enableReattemptFailedPatches": null, "reattemptFailedPatches": null }
Enhanced API: Update Linux Deployment Job
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob/update/{deploymentJobId} |
Method | PATCH |
DTD or XSD changes | Not Applicable |
In this release, this API is updated to include the Linux Package Cache Update details in the existing Linux deployment job for a specific job ID.
Input ParametersInput Parameters
Parameter |
Sub Parameters |
Mandatory/ |
Data Type |
Description |
---|---|---|---|---|
preDeployActions | action | Optional | String | Enter action |
actionItem | Optional | String | Specify the action item. For example: makecache Pre-Action |
|
defaultScriptType | Optional | String | Specify the defaultScriptType. For example: MakeCache |
|
scriptType | Optional | String | Provide script type. For example: sh |
|
script | Optional | String | The value must be empty. For example: script: " " |
Sample - Update a Linux Deployment JobSample - Update a Linux Deployment Job
API Request
curl -X PATCH
"<qualys_base_url>/pm/v1/deploymentjob/update/16be09aa-5415-4a58-8295-8a4ac8db6f26"
-H "accept: application/json"
-H "Authorization: <<Jwt Token>>"
-H "Content-Type: application/json"
Request Body
{ "approvedPatches": [], "dynamicPatchesQQL": "", "isDynamicPatchesQQL": false, "additionalDynamicPatchesQQL": "", "additionalDynamicQQLType": "", "dynamicQQLType": 1, "linkedJobId": "", "assetIds": [ "08a028e6-7e1d-4dbf-b040-48d9059dee08" ], "isAssetImported": false, "assetFilePath": null, "assetTagIds": [], "deleted": false, "duringDeployment": { "userMessage": "", "description": "" }, "name": "Demo_Job_MakeCache", "description": "", "createdBy": null, "patchCount": 0, "postDeployment": { "suppressreboots": false, "onComplete": { "userMessage": "", "description": "" } }, "preDeployment": { "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" }, "userMessage": "", "description": "" }, "recurring": false, "dayOfMonth": null, "recurringLastDayOfMonth": false, "recurringDayOfMonth": null, "patchTuesdayPlusXDays": null, "monthlyRecurringType": null, "recurringWeekDayOfMonth": null, "recurringWeekDays": "", "scheduleType": "On-demand", "schemaVersion": "1.0", "startDateTime": null, "status": "Enabled", "opportunisticDownloads": false, "minimizeWindow": false, "timeout": -1, "timeoutUnit": "HOURS", "timezone": null, "timezoneType": null, "type": "Install", "filterType": "Any", "exclusionFilterType": "Any", "exclusionTagIds": [], "matchAllTagIds": [], "coAuthorUserIds": [], "platform": "Linux", "continueOnPatchFailure": false, "exclusionAssetIds": [], "jobCategory": null, "jobSource": 2, "preDeployActions": [ { "action": "Run Script", "params": { "actionItem": "makecache Pre-Action", "remediationScope": false, "defaultScriptType": "MakeCache" }, "scriptType": "sh", "script": "" } ], "postDeployActions": [], "notification": null, "remediationQids": [], "isVulnContext": false, "subCategory": "Patch", "chainedJobRule": [], "hostIsolationConfig": null, "quarantineAssetRequestNotification": null }
API Response
{ "customerId": "8ac1558c-cbdf-c133-80c6-0fcf7d68e79c", "id": "16be09aa-5415-4a58-8295-8a4ac8db6f26", "schemaVersion": "1.0", "name": "Demo_Job_MakeCache", "type": "Install", "status": "Enabled", "assetIds": [ "08a028e6-7e1d-4dbf-b040-48d9059dee08" ], "assetTagIds": [], "matchAllTagIds": [], "exclusionTagIds": [], "exclusionAssetIds": [], "coAuthorUserIds": [], "approvedPatches": [], "disabledPatches": null, "patchCount": 0, "scheduleType": "On-demand", "startDateTime": null, "recurring": false, "recurringWeekDays": "", "dayOfMonth": null, "recurringDayOfMonth": null, "recurringWeekDayOfMonth": null, "timezoneType": null, "timezone": null, "timeout": -1, "timeoutUnit": "HOURS", "preDeployment": { "userMessage": "", "description": "", "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" } }, "duringDeployment": { "userMessage": "", "description": "" }, "postDeployment": { "suppressReboots": false, "rebootHonorOnUserLogin": false, "rebootOption": { "userMessage": "", "description": "", "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" } }, "rebootCountdown": { "interval": 15, "intervalUnit": "MINUTES", "userMessage": "", "description": "" }, "onComplete": { "userMessage": "", "description": "" } }, "description": "", "createdBy": null, "updatedBy": { "user": { "id": "9ea81ebb-1830-5f23-8389-2921ae95238f", "name": "quaysxkm14", "fullName": null }, "date": 1742360741491 }, "deletedBy": null, "assetCount": null, "opportunisticDownloads": false, "filterType": "Any", "exclusionFilterType": "Any", "taggedAssetCount": 0, "minimizeWindow": false, "dynamicPatchesQQL": "", "isDynamicPatchesQQL": false, "dynamicQQLType": 1, "platform": "Linux", "continueOnPatchFailure": false, "preDeployActions": [ { "actionId": "3b6d5ef7-c165-46f4-b29f-3d978f2b8c6d", "action": "Run Script", "actionType": "predeploy", "params": { "actionItem": "makecache Pre-Action", "timeout": 180, "remediationScope": false, "defaultScriptType": "MakeCache" }, "script": "default/MakeCache/makecache", "scriptType": "sh", "actionLinkedToJob": false } ], "postDeployActions": [], "applicableAssetCount": 1, "monthlyRecurringType": null, "patchTuesdayPlusXDays": null, "recurringLastDayOfMonth": false, "jobCategory": null, "jobTriggerStatus": null, "completionPercent": null, "totalAssetCount": null, "assetResultReceivedCount": null, "jobSource": 3, "readOnly": false, "notification": null, "linkedJobId": null, "linkedToJob": null, "linkedJobs": null, "jobStartCountdown": null, "passwordAction": null, "subCategory": "Patch", "additionalDynamicQQLType": null, "additionalDynamicPatchesQQL": null, "downloadRandomizeTime": 0, "downloadRandomizeTimeUnit": "MINUTES", "customPatchURLId": null, "isVulnContext": false, "remediationQids": [], "isAssetImported": false, "hostIsolationConfig": null, "quarantineAssetRequestNotification": null, "enableReattemptFailedPatches": null, "reattemptFailedPatches": null }
Enhanced API: Get Linux Deployment Job Details by JobID
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob/{deploymentJobId} |
Method | GET |
DTD or XSD changes | Not Applicable |
With this release, we have updated this API to include the Linux MakeCache details in the existing jobs that has MakeCache enabled in the Linux deployment jobs.
Sample - Get Linux Job Details for specific JobIDSample - Get Linux Job Details for specific JobID
API Request
curl -X GET
"<qualys_base_url>/pm/v1/deploymentjob/16be09aa-5415-4a58-8295-8a4ac8db6f26"
-H "accept: application/json"
-H "Authorization: Bearer <<jwt token>>"
API Response
{
"customerId": "8ac1558c-cbdf-c133-80c6-0fcf7d68e79c",
"id": "16be09aa-5415-4a58-8295-8a4ac8db6f26",
"schemaVersion": "1.0",
"name": "Demo_Job_MakeCache",
"type": "Install",
"status": "Prepared",
"assetIds": [
"08a028e6-7e1d-4dbf-b040-48d9059dee08"
],
"assetTagIds": null,
"matchAllTagIds": null,
"exclusionTagIds": null,
"exclusionAssetIds": null,
"coAuthorUserIds": null,
"approvedPatches": null,
"disabledPatches": null,
"patchCount": 0,
"scheduleType": "On-demand",
"startDateTime": "2025-3-19 05:05:43 AM",
"recurring": false,
"recurringWeekDays": "",
"dayOfMonth": null,
"recurringDayOfMonth": null,
"recurringWeekDayOfMonth": null,
"timezoneType": "SPECIFIC_TZ",
"timezone": "UTC",
"timeout": -1,
"timeoutUnit": "HOURS",
"preDeployment": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"duringDeployment": {
"userMessage": "",
"description": ""
},
"postDeployment": {
"suppressReboots": false,
"rebootHonorOnUserLogin": false,
"rebootOption": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"rebootCountdown": {
"interval": 15,
"intervalUnit": "MINUTES",
"userMessage": "",
"description": ""
},
"onComplete": {
"userMessage": "",
"description": "",
"alwaysShowCompletedPrompt": false
}
},
"description": "",
"createdBy": {
"user": {
"id": "9ea81ebb-1830-5f23-8389-2921ae95238f",
"name": "quaysxkm14",
"fullName": "Karan Mehta"
},
"date": 1742360595685
},
"updatedBy": {
"user": {
"id": "9ea81ebb-1830-5f23-8389-2921ae95238f",
"name": "quaysxkm14",
"fullName": null
},
"date": 1742360816864
},
"deletedBy": {
"user": null,
"date": null
},
"assetCount": null,
"opportunisticDownloads": false,
"filterType": "Any",
"exclusionFilterType": "Any",
"taggedAssetCount": 0,
"minimizeWindow": false,
"dynamicPatchesQQL": "",
"isDynamicPatchesQQL": false,
"dynamicQQLType": 1,
"platform": "Linux",
"continueOnPatchFailure": false,
"preDeployActions": [
{
"actionId": "3b6d5ef7-c165-46f4-b29f-3d978f2b8c6d",
"action": "Run Script",
"actionType": "predeploy",
"params": {
"actionItem": "makecache Pre-Action",
"timeout": 180,
"remediationScope": false,
"defaultScriptType": "MakeCache"
},
"script": "IyEvYmluL2Jhc2gKREFURT0kKGRhdGUgKyVGKQpMT0dCQVNFPSIvdG1wIgpVUERBVEVfTE9HPSIke0xPR0JBU0V9L3VwZGF0ZWxvZ18ke0RBVEV9LmxvZyIKRVJST1JfTE9HPSIke0xPR0JBU0V9L2Vycm9ybG9nXyR7REFURX0ubG9nIgpUUkFOU0FDVElPTl9JRD0iL3Vzci9sb2NhbC9xdWFseXMvY2xvdWQtYWdlbnQvdHJhbnNhY3Rpb25tcG9yYXJ5IGZpbGUKICAgICAgICAgcm0gL3RtcC95dW1faGlzdG9yeV9pbmZvLnR4dAogICAgICAgICBleGl0IDEKICAgIGZpCiAgICAjIENsZWFuIHVwIHRlbXBvcmFyeSBmaWxlCiAgICBybSAvdG1wL3l1bV9oaXN0b3J5X2luZm8udHh0Cn0KIyBNYWluIHNjcmlwdCBleGVjdXRpb24KY2hlY2tfb3MKaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgIHNldF95dW0KICAgIHVwZGF0ZV9zeXN0ZW0KICAgIGV4dHJhY3RfbGFzdF90cmFuc2FjdGlvbl9pZAogICAgY2hlY2tfbGFzdF90cmFuc2FjdGlvbgplbHNlCiAgICBlY2hvICJFeGl0aW5nIHNjcmlwdCBhcyBPUyBpcyBub3QgUkhFTC1iYXNlZCIKICAgIGV4aXQgMQpmaQ==",
"scriptType": "sh",
"actionLinkedToJob": false
}
],
"postDeployActions": null,
"applicableAssetCount": 1,
"monthlyRecurringType": null,
"patchTuesdayPlusXDays": null,
"recurringLastDayOfMonth": false,
"jobCategory": 3,
"jobTriggerStatus": 1,
"completionPercent": null,
"totalAssetCount": null,
"assetResultReceivedCount": null,
"jobSource": 3,
"readOnly": false,
"notification": null,
"linkedJobId": null,
"linkedToJob": null,
"linkedJobs": null,
"jobStartCountdown": null,
"passwordAction": null,
"subCategory": "Patch",
"additionalDynamicQQLType": null,
"additionalDynamicPatchesQQL": null,
"downloadRandomizeTime": 0,
"downloadRandomizeTimeUnit": "MINUTES",
"customPatchURLId": null,
"isVulnContext": false,
"remediationQids": null,
"isAssetImported": false,
"hostIsolationConfig": null,
"quarantineAssetRequestNotification": null,
"enableReattemptFailedPatches": null,
"reattemptFailedPatches": null
}
Enhanced Windows Deployment Job APIs
Enhanced API: Create Windows Deployment Job
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob |
Method | POST |
DTD or XSD changes | Not Applicable |
With this release, we have updated the Create Deployment Job API for Windows with options to retry the deployment of failed patches again in the same job, once the job is completed.
Input ParametersInput Parameters
Parameter |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
reattemptFailedPatches | Optional | Boolean | Specify the value as True or false. |
noOfReattempts | Optional | Integer | Specify the number of re-attempts. Provide values between 1-5. |
exponentialBackoffInterval | Optional | Integer | Specify valid backoff interval between retries. Provide values between 1 to 15. |
Sample - Create Windows Deployment JobSample - Create Windows Deployment Job
API Request
curl -X POST
"https://<QualysBaseURL>/pm/v1/deploymentjob"
-H "accept: application/json"
-H "Authorization: Bearer <<jwt token>>"
Request Body
{
"approvedPatches": [
"444ba31a-0f94-3199-870e-ef8ab1a5a477",
"b91fca0e-2a07-3155-909c-fc50ba1863ed"
],
"dynamicPatchesQQL": "",
"isDynamicPatchesQQL": false,
"linkedJobId": "",
"dynamicQQLType": 1,
"assetIds": [
"ffb6aa16-f342-4f94-99c1-3ae941ce6357"
],
"assetTagIds": [],
"deleted": false,
"duringDeployment": {
"userMessage": "",
"description": ""
},
"name": "TestAPI_CreateJobNew222",
"description": "",
"createdBy": null,
"postDeployment": {
"suppressreboots": false,
"onComplete": {
"userMessage": "",
"description": ""
},
"rebootCountdown": {
"interval": 15,
"intervalUnit": "MINUTES",
"userMessage": "Reboot countdown started",
"description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
},
"rebootOption": {
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
},
"userMessage": "",
"description": ""
}
},
"preDeployment": {
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
},
"userMessage": "",
"description": ""
},
"recurring": false,
"dayOfMonth": null,
"recurringLastDayOfMonth": false,
"patchTuesdayPlusXDays": null,
"monthlyRecurringType": null,
"recurringDayOfMonth": null,
"recurringWeekDayOfMonth": null,
"recurringWeekDays": "",
"scheduleType": "On-demand",
"schemaVersion": "1.0",
"startDateTime": null,
"status": "Disabled",
"opportunisticDownloads": false,
"minimizeWindow": false,
"timeout": -1,
"timeoutUnit": "HOURS",
"timezone": null,
"timezoneType": null,
"type": "Install",
"filterType": "Any",
"exclusionFilterType": "Any",
"exclusionTagIds": [],
"matchAllTagIds": [],
"coAuthorUserIds": [],
"platform": "Windows",
"exclusionAssetIds": [],
"preDeployActions": [],
"postDeployActions": [],
"jobCategory": null,
"jobSource": 2,
"notification": null,
"enableReattemptFailedPatches": true,
"reattemptFailedPatches": {
"noOfReattempts": 5,
"exponentialBackoffInterval": 15
}
}
API Response
{
"customerId": "c8f2006c-3f0a-5d94-83c7-2ac1dc78063b",
"id": "44ae1515-a51c-4d67-87ae-aef57d1e26b2",
"schemaVersion": "1.0",
"name": "TestAPI_CreateJobNew222",
"type": "Install",
"status": "Disabled",
"assetIds": [
"ffb6aa16-f342-4f94-99c1-3ae941ce6357"
],
"assetTagIds": [],
"matchAllTagIds": [],
"exclusionTagIds": [],
"exclusionAssetIds": [],
"coAuthorUserIds": [],
"approvedPatches": [
"444ba31a-0f94-3199-870e-ef8ab1a5a477",
"b91fca0e-2a07-3155-909c-fc50ba1863ed"
],
"disabledPatches": null,
"patchCount": 2,
"scheduleType": "On-demand",
"startDateTime": "2025-3-18 09:47:32 AM",
"recurring": false,
"recurringWeekDays": "",
"dayOfMonth": null,
"recurringDayOfMonth": null,
"recurringWeekDayOfMonth": null,
"timezoneType": "SPECIFIC_TZ",
"timezone": "UTC",
"timeout": -1,
"timeoutUnit": "HOURS",
"preDeployment": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"duringDeployment": {
"userMessage": "",
"description": ""
},
"postDeployment": {
"suppressReboots": false,
"rebootHonorOnUserLogin": false,
"rebootOption": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"rebootCountdown": {
"interval": 15,
"intervalUnit": "MINUTES",
"userMessage": "Reboot countdown started",
"description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
},
"onComplete": {
"userMessage": "",
"description": "",
"alwaysShowCompletedPrompt": false
}
},
"description": "",
"createdBy": {
"user": {
"id": "30ce0a0f-05b4-db48-8296-b7dd8a6d2943",
"name": "quays_vy59",
"fullName": "Sagar Thorat"
},
"date": 1742291252281
},
"updatedBy": {
"user": null,
"date": null
},
"deletedBy": {
"user": null,
"date": null
},
"assetCount": null,
"opportunisticDownloads": false,
"filterType": "Any",
"exclusionFilterType": "Any",
"taggedAssetCount": 0,
"minimizeWindow": false,
"dynamicPatchesQQL": "",
"isDynamicPatchesQQL": false,
"dynamicQQLType": 1,
"platform": "Windows",
"continueOnPatchFailure": false,
"preDeployActions": null,
"postDeployActions": null,
"applicableAssetCount": 1,
"monthlyRecurringType": null,
"patchTuesdayPlusXDays": null,
"recurringLastDayOfMonth": false,
"jobCategory": 3,
"jobTriggerStatus": null,
"completionPercent": null,
"totalAssetCount": null,
"assetResultReceivedCount": null,
"jobSource": 3,
"readOnly": false,
"notification": null,
"linkedJobId": null,
"linkedToJob": null,
"linkedJobs": null,
"jobStartCountdown": null,
"passwordAction": null,
"subCategory": "Patch",
"additionalDynamicQQLType": null,
"additionalDynamicPatchesQQL": null,
"downloadRandomizeTime": 0,
"downloadRandomizeTimeUnit": "MINUTES",
"customPatchURLId": null,
"isVulnContext": null,
"remediationQids": null,
"isAssetImported": false,
"hostIsolationConfig": null,
"quarantineAssetRequestNotification": null,
"enableReattemptFailedPatches": true,
"reattemptFailedPatches": {
"noOfReattempts": 5,
"exponentialBackoffInterval": 15
}
}
Enhanced API: Get Windows Deployment Job Details by JobID
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob/{deploymentJobId} |
Method | GET |
DTD or XSD changes | Not Applicable |
In this release, we have enhanced this API response to include options that retry the deployment of failed patches again for the deployment job for the specified job ID.
Sample - Get Windows Deployment Job Details by Job IDSample - Get Windows Deployment Job Details by Job ID
API Request
curl -X GET "<qualys_base_url>/pm/v1/deploymentjob/c8f2006c-3f0a-5d94-83c7-2ac1dc78063b" -H "accept: application/json" -H "Authorization: Bearer <<jwt token>>"
API Response
{
"customerId": "c8f2006c-3f0a-5d94-83c7-2ac1dc78063b",
"id": "1ca9c211-6c0a-4855-ac49-f9d735b1563c",
"schemaVersion": "1.0",
"name": "WinOnDemJob_Update_1742489647906",
"type": "Install",
"status": "Prepared",
"assetIds": [
"6df4bc50-83ce-49e5-a5c2-1814413f8057"
],
"assetTagIds": null,
"matchAllTagIds": null,
"exclusionTagIds": null,
"exclusionAssetIds": null,
"coAuthorUserIds": null,
"approvedPatches": [
"444ba31a-0f94-3199-870e-ef8ab1a5a477",
"b91fca0e-2a07-3155-909c-fc50ba1863ed"
],
"disabledPatches": null,
"patchCount": 2,
"scheduleType": "On-demand",
"startDateTime": "2025-3-21 05:14:11 AM",
"recurring": false,
"recurringWeekDays": "",
"dayOfMonth": null,
"recurringDayOfMonth": null,
"recurringWeekDayOfMonth": null,
"timezoneType": "SPECIFIC_TZ",
"timezone": "UTC",
"timeout": -1,
"timeoutUnit": "HOURS",
"preDeployment": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"duringDeployment": {
"userMessage": "",
"description": ""
},
"postDeployment": {
"suppressReboots": false,
"rebootHonorOnUserLogin": false,
"rebootOption": {
"userMessage": "",
"description": "",
"deferment": {
"count": 3,
"interval": 1,
"intervalUnit": "HOURS"
}
},
"rebootCountdown": {
"interval": 15,
"intervalUnit": "MINUTES",
"userMessage": "Reboot countdown started",
"description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
},
"onComplete": {
"userMessage": "",
"description": "",
"alwaysShowCompletedPrompt": false
}
},
"description": "Updated Job",
"createdBy": {
"user": {
"id": "30ce0a0f-05b4-db48-8296-b7dd8a6d2943",
"name": "quays_vy59",
"fullName": "Sagar Thorat"
},
"date": 1742489646254
},
"updatedBy": {
"user": {
"id": "30ce0a0f-05b4-db48-8296-b7dd8a6d2943",
"name": "quays_vy59",
"fullName": null
},
"date": 1742534123567
},
"deletedBy": {
"user": null,
"date": null
},
"assetCount": null,
"opportunisticDownloads": false,
"filterType": "Any",
"exclusionFilterType": "Any",
"taggedAssetCount": 0,
"minimizeWindow": false,
"dynamicPatchesQQL": "",
"isDynamicPatchesQQL": false,
"dynamicQQLType": 1,
"platform": "Windows",
"continueOnPatchFailure": false,
"preDeployActions": null,
"postDeployActions": null,
"applicableAssetCount": 1,
"monthlyRecurringType": null,
"patchTuesdayPlusXDays": null,
"recurringLastDayOfMonth": false,
"jobCategory": 3,
"jobTriggerStatus": 1,
"completionPercent": null,
"totalAssetCount": null,
"assetResultReceivedCount": null,
"jobSource": 3,
"readOnly": false,
"notification": null,
"linkedJobId": null,
"linkedToJob": null,
"linkedJobs": null,
"jobStartCountdown": null,
"passwordAction": null,
"subCategory": "Patch",
"additionalDynamicQQLType": null,
"additionalDynamicPatchesQQL": null,
"downloadRandomizeTime": 0,
"downloadRandomizeTimeUnit": "MINUTES",
"customPatchURLId": null,
"isVulnContext": false,
"remediationQids": null,
"isAssetImported": false,
"hostIsolationConfig": null,
"quarantineAssetRequestNotification": null,
"enableReattemptFailedPatches": true,
"reattemptFailedPatches": {
"noOfReattempts": 1,
"exponentialBackoffInterval": 5
}
}
Enhanced API: Get Windows Deployment Job Results Summary by Job ID
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob/{deploymentJobId}/deploymentjobresult/summary |
Method | GET |
DTD or XSD changes | Not Applicable |
In this release, we have enhanced this API to get the deployment job results based on the specified job ID.
Sample - Get Windows Deployment Job Results Summary by Job IDSample - Get Windows Deployment Job Results Summary by Job ID
API Request
curl -X GET
"<qualys_base_url>/pm/v1/deploymentjob/16be09aa-5415-4a58-8295-8a4ac8db6f26"
-H "accept: application/json"
-H "Authorization: Bearer <<jwt token>>"
API Response
{
"id": "4cd571f5-e470-4b7d-926d-eb7cafb7326d",
"name": "WinOnDemJob_Update_1742921174193",
"assetCount": 1,
"patchCount": 2,
"createdBy": "quays_vy59",
"createdOn": 1742921172719,
"assets": [
{
"asset": {
"id": "6df4bc50-83ce-49e5-a5c2-1814413f8057",
"name": "PMUI_AUTOMATION_ASSET_WINDOWS_EXCLUSION",
"operatingSystem": "Windows Microsoft Windows 10 Pro 10.0.17134 Build 17134",
"tags": [
{
"id": "236bdc33-a0c7-4baf-8ce3-fc89ad5302ce",
"name": null
},
{
"id": "6d1cd4b6-378d-4c95-ad47-f459882e7c35",
"name": null
},
{
"id": "e8acf5ba-577f-47b7-80a8-8888704d9117",
"name": null
},
{
"id": "ce1e4d6a-7119-4177-9bcc-0b31c39aad1b",
"name": null
}
],
"lastLoggedOnUser": "",
"successPatches": 0,
"installedPatches": 0,
"failedPatches": 0,
"supersededPatches": 0,
"notApplicablePatches": 2,
"executing": 0,
"pendingExecution": 0,
"pendingReboot": 0,
"pendingVerification": 0,
"jobInstanceId": 1,
"interfaces": [
{
"interfaceName": null,
"macAddress": null,
"address": "10.115.109.163",
"gatewayAddress": null
}
],
"skipPatchCount": 2,
"additionalFields": {
"failedPatchRetryNumber": 1,
"totalAvailableFailedPatchRetries": 3
}
},
"endDateTime": 1742925811729,
"startDateTime": 1742921179378,
"statusDateTime": 1742925808761,
"status": "Reattempting",
"statusCode": "20740",
"jobSentOn": 1742921262874,
"installed": [],
"failed": [],
"success": null,
"superseded": [],
"notApplicable": [
"b91fca0e-2a07-3155-909c-fc50ba1863ed",
"444ba31a-0f94-3199-870e-ef8ab1a5a477"
],
"failedActionsCount": 0,
"successfulActionsCount": 0,
"skippedActionsCount": 0,
"interimResultStatus": null,
"jobInstanceId": 1,
"totalPatchCount": 0,
"runId": 2,
"scanDateTime": 1742990566879,
"pendingForRebootInAnotherJob": false,
"pendingForRebootInAnotherJobName": null,
"osIdentifier": "WINDOWS",
"isolation": null
}
]
}
Enhanced API: Update Windows Deployment Job by JobID
New or Updated API | Updated |
API Endpoint | /pm/v1/deploymentjob/update/{deploymentJobId} |
Method | PATCH |
DTD or XSD changes | Not Applicable |
In this release, we have enhanced this API to include the options that retry the deployment of failed patches again while updating a Windows deployment job for a particular job ID.
Sample - Update Windows Deployment Job by Job IDSample - Update Windows Deployment Job by Job ID
API Request
curl -X PATCH
"https://<QualysBaseURL>/pm/v1/deploymentjob/update/c08769ba-aa65-4b77-b224-f2c789ce7970"
-H "accept: application/json"
-H "Authorization: <<Jwt Token>>"
-H "Content-Type: application/json"
Request Body
{ "approvedPatches": [ "444ba31a-0f94-3199-870e-ef8ab1a5a477", "b91fca0e-2a07-3155-909c-fc50ba1863ed" ], "dynamicPatchesQQL": "", "isDynamicPatchesQQL": false, "linkedJobId": "", "dynamicQQLType": 1, "assetIds": [ "65dad690-0144-0004-596b-005056aa5259" ], "assetTagIds": [], "deleted": false, "duringDeployment": { "userMessage": "", "description": "" }, "name": "TestAPI_Update_New", "description": "", "createdBy": null, "postDeployment": { "suppressreboots": false, "onComplete": { "userMessage": "", "description": "" }, "rebootCountdown": { "interval": 15, "intervalUnit": "MINUTES", "userMessage": "Reboot countdown started", "description": "The system reboot is initiated. It will reboot automatically after the timer countdown." }, "rebootOption": { "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" }, "userMessage": "", "description": "" } }, "preDeployment": { "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" }, "userMessage": "", "description": "" }, "recurring": false, "dayOfMonth": null, "recurringLastDayOfMonth": false, "patchTuesdayPlusXDays": null, "monthlyRecurringType": null, "recurringDayOfMonth": null, "recurringWeekDayOfMonth": null, "recurringWeekDays": "", "scheduleType": "On-demand", "schemaVersion": "1.0", "startDateTime": null, "status": "Disabled", "opportunisticDownloads": false, "minimizeWindow": false, "timeout": -1, "timeoutUnit": "HOURS", "timezone": null, "timezoneType": null, "type": "Install", "filterType": "Any", "exclusionFilterType": "Any", "exclusionTagIds": [], "matchAllTagIds": [], "coAuthorUserIds": [], "platform": "Windows", "exclusionAssetIds": [], "preDeployActions": [], "postDeployActions": [], "jobCategory": null, "jobSource": 2, "notification": null, "enableReattemptFailedPatches": true, "reattemptFailedPatches": { "noOfReattempts": 4, "exponentialBackoffInterval": 10 } }
API Response
"approvedPatches": [ "444ba31a-0f94-3199-870e-ef8ab1a5a477", "b91fca0e-2a07-3155-909c-fc50ba1863ed" ], "dynamicPatchesQQL": "", "isDynamicPatchesQQL": false, "linkedJobId": "", "dynamicQQLType": 1, "assetIds": [ "65dad690-0144-0004-596b-005056aa5259" ], "assetTagIds": [], "deleted": false, "duringDeployment": { "userMessage": "", "description": "" }, "name": "TestAPI_Update_New", "description": "", "createdBy": null, "postDeployment": { "suppressreboots": false, "onComplete": { "userMessage": "", "description": "" }, "rebootCountdown": { "interval": 15, "intervalUnit": "MINUTES", "userMessage": "Reboot countdown started", "description": "The system reboot is initiated. It will reboot automatically after the timer countdown." }, "rebootOption": { "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" }, "userMessage": "", "description": "" } }, "preDeployment": { "deferment": { "count": 3, "interval": 1, "intervalUnit": "HOURS" }, "userMessage": "", "description": "" }, "recurring": false, "dayOfMonth": null, "recurringLastDayOfMonth": false, "patchTuesdayPlusXDays": null, "monthlyRecurringType": null, "recurringDayOfMonth": null, "recurringWeekDayOfMonth": null, "recurringWeekDays": "", "scheduleType": "On-demand", "schemaVersion": "1.0", "startDateTime": null, "status": "Disabled", "opportunisticDownloads": false, "minimizeWindow": false, "timeout": -1, "timeoutUnit": "HOURS", "timezone": null, "timezoneType": null, "type": "Install", "filterType": "Any", "exclusionFilterType": "Any", "exclusionTagIds": [], "matchAllTagIds": [], "coAuthorUserIds": [], "platform": "Windows", "exclusionAssetIds": [], "preDeployActions": [], "postDeployActions": [], "jobCategory": null, "jobSource": 2, "notification": null, "enableReattemptFailedPatches": true, "reattemptFailedPatches": { "noOfReattempts": 4, "exponentialBackoffInterval": 10 } }