Release 3.20.1 API
February 06, 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.
What's New?
![]() |
Cloud Agent |
Updated SwCA Component Report Download API: Download SwCA Component Report for Multiple Assets
New or Updated API | Updated |
API Endpoint | /qps/rest/1.0/download/ca/downloadcdxsbom/ |
Method | POST |
DTD or XSD Changes | Yes |
With this release, we have added support for downloading Software Composition Analysis (SwCA) Scan Report for multiple assets as per Cyclone Dx standard in JSON format.
We are providing Criteria filter to specify the assets for which you want to download the SwCA scan report. You can specify the assets using different parameters such as tagName, id, activationKey, and so on.
Input ParametersInput Parameters
Input Parameter | Mandatory/Optional | Data Type | Description |
---|---|---|---|
cdxschemaversion |
Mandatory | String | Use this parameter to specify the report version you want to download. Acceptable values: CYCLONE_DX_1_4, CYCLONE_DX_1_6 |
tagName | Optional | String | Use this parameter to specify the assets using the asset tags associated with them. |
id | Optional | Integer | Use this parameter to specify the assets using asset IDs. You can enter single or multiple asset IDs. |
activationKey | Optional | String | Use this parameter to specify the assets using activation key. |
Sample: Download SwCA Scan Report for Multiple Assets as per Cyclone Dx StandardSample: Download SwCA Scan Report for Multiple Assets as per Cyclone Dx Standard
The following sample illustrates downloading SwCA scan report for multiple assets in JSON format as per Cyclone Dx standard.
API Request
curl --location '
<qualys_base_url>/qps/rest/1.0/download/ca/downloadcdxsbom/' \
--header 'Content-Type: application/xml' \
--header 'Authorization: <authentication_token>' \
--header 'Cookie: JSESSIONID=EACF8DCFC60B2028B6F5F19D01AE2D9E' \
--data '
API Request Body
<ServiceRequest>
<data>
<DownloadCDXSbom>
<cdxschemaversion>CYCLONE_DX_1_4</cdxschemaversion>
</DownloadCDXSbom>
</data>
<filters>
<Criteria field="tagName" operator="EQUALS">Cloud Agent</Criteria>
</filters>
</ServiceRequest>
API Response
200 OK.
Click the Send and Download on the API response page to download the SwCA component report in JSON format as per the Cyclone Dx standard.
Updated ParametersUpdated Parameters
With this release, we are deprecating support for the following parameter(s) used in the SwCA Scan Report Download API.
Parameter Change | Change Description |
---|---|
assetId | We have removed the support for the assetId parameter that was used for specifying the assets for which you wanted to download the SwCA Component Report.Now you can use the Criteria filter with the id parameter to specify the asset IDs.
|
Updated XSD for SwCA Component Report Download APIUpdated XSD for SwCA Component Report Download API
The following is the updated XSD for the SwCA Component Report Download API (cyclonedxschemaversion.xsd
).
We have removed the <assetId> tag from the XSD as we no longer support the assetId parameter for the SwCA Component Report Download API.
cyclonedxschemaversion.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schemaxmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ca.oxm.api.portal.qualys.com/v1"
elementFormDefault="qualified"
xmlns:QG="http://ca.oxm.api.portal.qualys.com/v1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
jaxb:version="2.1"
xmlns:qcommon="http://oxm.api.portal.qualys.com/common">
<import namespace="http://oxm.api.portal.qualys.com/common"
schemaLocation="http://oxm.api.portal.qualys.com/common/qualys_common.xsd"/>
<include schemaLocation="cyclonedxschemaversion.xsd"/>
<complexType name="DownloadCDXSbom">
<sequence>
<element name="cdxschemaversion" type="QG:CycloneDXSchemaVersion" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
</schema>
![]() |
Web Application Scanning |
Updated Search Findings API: Limit Previous Records for Findings
New or Updated API | Updated |
API Endpoint | /qps/rest/3.0/search/was/finding/ |
Method | POST |
DTD or XSD Changes | Yes |
With this release, we are introducing a parameter — limitHistories
, to limit the maximum number of previous records associated with a finding that can be returned in the Search Findings API response. Using this parameter, you can reduce the processing time required to generate an API response.
Input ParameterInput Parameter
Use the following input parameter(s) to limit the maximum number of previous records.
Input Parameter | Mandatory/Optional | Data Type | Description |
---|---|---|---|
limitHistories | Optional | Integer | Specify the number of previous records associated with a finding that the API should return in response. For example, if you provide 10 as a parameter value then 10 previous records associated with a finding are returned in API response. Default value is 0. By default, the API would not return any previous records associated with a finding. |
Sample: Limit Previous Records for Findings in API ResponseSample: Limit Previous Records for Findings in API Response
The following sample illustrates limiting the previous records that would be returned in the Search Findings API response, using limitHistories
parameter.
API Request
curl -u "USERNAME:PASSWORD" -H "content-type: text/xml" -X "POST" --data-binary @- "
<qualys_base_url>/qps/rest/3.0/search/was/finding/" < file.xml
The file.xml contains the request POST data.
API Request Body
<ServiceRequest>
<preferences>
<limitResults>10</limitResults>
<verbose>true</verbose>
<custom>
<Preference name="limitHistories">2</Preference>
</custom>
</preferences>
<filters>
<Criteria field="id" operator="IN">149269</Criteria>
</filters>
</ServiceRequest>
API Response
<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="<qualys_base_url>/qps/xsd/3.0/was/finding.xsd">
<responseCode>SUCCESS</responseCode>
<count>1</count>
<hasMoreRecords>false</hasMoreRecords>
<data>
<Finding>
<id>149269</id>
<uniqueId>1a2b3456-8c9d-123e-4567-f89g12h345a6</uniqueId>
<qid>150603</qid>
<detectionScore>55</detectionScore>
<name>
<![CDATA[U.S. Social Security Number Pattern Identified In HTML]]>
</name>
<type>SENSITIVE_CONTENT</type>
<potential>true</potential>
<findingType>QUALYS</findingType>
<cwe>
<count>1</count>
<list>
<long>201</long>
</list>
</cwe>
<owasp>
<count>1</count>
<list>
<OWASP>
<name>
<![CDATA[Cryptographic Failures]]>
</name>
<url>
<![CDATA[https://owasp.org/Top10/A02_2021-Cryptographic_Failures/]]>
</url>
<code>2</code>
</OWASP>
</list>
</owasp>
<wasc>
<count>1</count>
<list>
<WASC>
<name>
<![CDATA[INFORMATION LEAKAGE]]>
</name>
<url>
<![CDATA[http://projects.webappsec.org/w/page/12345678/WASC]]>
</url>
<code>13</code>
</WASC>
</list>
</wasc>
<resultList>
<count>1</count>
<list>
<Result>
<authentication>false</authentication>
<accessPath>
<count>3</count>
<list>
<Url>
<![CDATA[https://12.34.56.789/]]>
</Url>
<Url>
<![CDATA[https://12.34.56.789/boq/parseAction.php]]>
</Url>
<Url>
<![CDATA[https://12.34.56.789/boq/protected/]]>
</Url>
</list>
</accessPath>
<ajax>false</ajax>
<payloads>
<count>1</count>
<list>
<PayloadInstance>
<request>
<method>
<![CDATA[GET]]>
</method>
<link>
<![CDATA[https://12.34.56.789/boq/protected/Employee_List.html]]>
</link>
<headers>
<![CDATA[header_value]]>
</headers>
</request>
<response>
<![CDATA[133-96-xxxx]]>
</response>
</PayloadInstance>
</list>
</payloads>
</Result>
</list>
</resultList>
<severity>3</severity>
<url>
<![CDATA[https://12.34.56.789/boq/protected/Employee_List.html]]>
</url>
<status>ACTIVE</status>
<firstDetectedDate>2023-08-15T12:39:32Z</firstDetectedDate>
<lastDetectedDate>2023-08-20T20:56:00Z</lastDetectedDate>
<lastTestedDate>2023-08-20T20:56:00Z</lastTestedDate>
<timesDetected>2</timesDetected>
<webApp>
<id>456789321</id>
<name>
<![CDATA[bank of Qualys]]>
</name>
<url>
<![CDATA[https://12.34.56.789]]>
</url>
<tags>
<count>4</count>
<list>
<Tag>
<id>423456789</id>
<name>
<![CDATA[bank tag dynamic]]>
</name>
</Tag>
<Tag>
<id>323456789</id>
<name>
<![CDATA[perf-test-namecontains-10]]>
</name>
</Tag>
<Tag>
<id>223456789</id>
<name>
<![CDATA[perf-test-namecontains-1]]>
</name>
</Tag>
<Tag>
<id>123456789</id>
<name>
<![CDATA[CheckWebappReportlimit]]>
</name>
</Tag>
</list>
</tags>
</webApp>
<isIgnored>false</isIgnored>
<cvssV3>
<base>7.5</base>
<temporal>6.7</temporal>
<attackVector>Network</attackVector>
</cvssV3>
<history>
<set>
<WebAppFindingHistory>
<scanData>
<id>2345678</id>
<reference>was/1234567891234.1234567.1</reference>
<launchedDate>2024-10-22T08:47:10Z</launchedDate>
</scanData>
</WebAppFindingHistory>
<WebAppFindingHistory>
<scanData>
<id>1234567</id>
<reference>was/2234567891234.1234567.1</reference>
<launchedDate>2024-10-20T08:47:38Z</launchedDate>
</scanData>
</WebAppFindingHistory>
</set>
</history>
<updatedDate>2023-12-04T22:43:52Z</updatedDate>
</Finding>
</data>
</ServiceResponse>
Updated XSD for Search Findings APIUpdated XSD for Search Findings API
The following XSD highlights the changes made to the Search Findings API XSD (finding.xsd).
finding.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!-- REQUEST -->
<xs:element name="ServiceRequest">
<xs:complexType>
<xs:all>
<xs:element name="filters" type="ServiceRequestFilters" minOccurs="0"/>
<xs:element name="preferences" type="ServiceRequestPreferences" minOccurs="0"/>
<xs:element name="data" type="ServiceRequestData" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:complexType name="ServiceRequestFilters">
<xs:sequence>
<xs:element name="Criteria" type="Criteria" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceRequestCustomPreferences">
<xs:sequence>
<xs:element name="Preference" type="Preference" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Criteria">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="field" type="xs:string"/>
<xs:attribute name="operator">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CONTAINS"/>
<xs:enumeration value="IN"/>
<xs:enumeration value="EQUALS"/>
<xs:enumeration value="NOT EQUALS"/>
<xs:enumeration value="GREATER"/>
<xs:enumeration value="LESSER"/>
<xs:enumeration value="NONE"/>
<xs:enumeration value="IS EMPTY"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Preference">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ServiceRequestPreferences">
<xs:all> <xs:element name="startFromId" type="xs:long" minOccurs="0"/>
<xs:element name="startFromOffset" type="xs:int" minOccurs="0"/>
<xs:element name="limitResults" type="xs:int" minOccurs="0"/>
<xs:element name="verbose" type="xs:boolean" minOccurs="0"/>
<xs:element name="custom" type="ServiceRequestCustomPreferences" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="ServiceRequestData">
<xs:sequence>
<xs:element name="Finding" type="Finding" minOccurs="0"/>
</xs:sequence> </xs:complexType>
<!-- RESPONSE -->
<xs:element name="ServiceResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="responseCode" type="ResponseCode"/>
<xs:element name="responseErrorDetails" type="ResponseErrorObject" minOccurs="0"/>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="hasMoreRecords" type="xs:boolean" minOccurs="0"/>
<xs:element name="lastId" type="xs:long" minOccurs="0"/>
<xs:element name="data" type="ServiceResponseData" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="ResponseCode">
<xs:restriction base="xs:string">
<xs:enumeration value="CANNOT_BE_NULL"/>
<xs:enumeration value="INVALID_XML"/>
<xs:enumeration value="INVALID_CREDENTIALS"/>
<xs:enumeration value="INVALID_API_VERSION"/>
<xs:enumeration value="INVALID_PARAM"/>
<xs:enumeration value="INVALID_URL"/>
<xs:enumeration value="INVALID_REQUEST"/>
<xs:enumeration value="NOT_FOUND"/>
<xs:enumeration value="OTHER_ERROR"/>
<xs:enumeration value="OPERATION_NOT_SUPPORTED"/>
<xs:enumeration value="EVALUATION_EXPIRED"/>
<xs:enumeration value="JMS_SERVER_DOWN"/>
<xs:enumeration value="RMI_SERVER_DOWN"/>
<xs:enumeration value="SUCCESS"/>
<xs:enumeration value="STILL_PROCESSING"/>
<xs:enumeration value="UNAUTHORIZED"/>
<xs:enumeration value="UNAUTHORIZED_DESTINATION_APPS"/>
<xs:enumeration value="UNIDENTIFIED_PRODUCER"/>
<xs:enumeration value="UNKNOWN_OBJECT"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ResponseErrorObject">
<xs:sequence>
<xs:element name="errorMessage" type="xs:string"/>
<xs:element name="errorResolution" type="xs:string" minOccurs="0"/>
<xs:element name="internalErrorCodeId" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceResponseData">
<xs:sequence>
<xs:element name="Finding" type="Finding" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- DATA -->
<xs:complexType name="Finding">
<xs:all>
<xs:element name="id" type="xs:long" minOccurs="0"/>
<xs:element name="uniqueId" type="uuid" minOccurs="0"/>
<xs:element name="qid" type="xs:long" minOccurs="0"/>
<xs:element name="detectionScore" type="xs:int" minOccurs="0"/>
<xs:element name="name" type="Cdata" minOccurs="0"/>
<xs:element name="type" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="VULNERABILITY"/>
<xs:enumeration value="SENSITIVE_CONTENT"/>
<xs:enumeration value="INFORMATION_GATHERED"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="potential" minOccurs="0" type="xs:boolean"/>
<xs:element name="findingType" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="QUALYS"/>
<xs:enumeration value="BURP"/>
<xs:enumeration value="BUGCROWD"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="group" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="XSS"/>
<xs:enumeration value="SQL"/>
<xs:enumeration value="INFO"/>
<xs:enumeration value="PATH"/>
<xs:enumeration value="CC"/>
<xs:enumeration value="SSN-US"/>
<xs:enumeration value="CUSTOM"/>
<xs:enumeration value="IG-DIAG"/>
<xs:enumeration value="IG-WEAK"/>
<xs:enumeration value="COMPLIANCE"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cwe" type="CWEList" minOccurs="0"/>
<xs:element name="owasp" type="OWASPList" minOccurs="0"/>
<xs:element name="wasc" type="WASCList" minOccurs="0"/>
<xs:element name="param" type="Cdata" minOccurs="0" />
<xs:element name="function" type="Cdata" minOccurs="0" />
<xs:element name="content" type="Cdata" minOccurs="0" />
<xs:element name="resultList" type="ResultList" minOccurs="0" />
<xs:element name="severity" type="xs:string" minOccurs="0"/>
<xs:element name="originalSeverity" type="xs:string" minOccurs="0"/>
<xs:element name="url" type="Url" minOccurs="0"/>
<xs:element name="status" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NEW"/>
<xs:enumeration value="ACTIVE"/>
<xs:enumeration value="REOPENED"/>
<xs:enumeration value="FIXED"/>
<xs:enumeration value="PROTECTED"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="firstDetectedDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="lastDetectedDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="lastTestedDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="fixedDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="timesDetected" type="xs:long" minOccurs="0"/>
<xs:element name="webApp" type="WebApp" minOccurs="0"/>
<xs:element name="patch" type="xs:long" minOccurs="0"/>
<xs:element name="isIgnored" type="xs:boolean" minOccurs="0"/>
<!-- Following element will be available only if finding is ignored and this will also be used for 'ignore' operation for providing reason -->
<xs:element name="ignoredReason" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="FALSE_POSITIVE"/>
<xs:enumeration value="RISK_ACCEPTED"/>
<xs:enumeration value="NOT_APPLICABLE"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- Following element will be available only if finding is ignored -->
<xs:element name="ignoredBy" type="User" minOccurs="0"/>
<!-- Following element will be available only if finding is ignored -->
<xs:element name="ignoredDate" type="xs:dateTime" minOccurs="0"/>
<!-- Following element will be available only if finding is ignored and this will also be used for 'ignore' operation for providing comment -->
<xs:element name="ignoredComment" type="Cdata" minOccurs="0"/>
<!-- Following element will be available only if finding is ignored -->
<xs:element name="reactivateIn" type="xs:int" minOccurs="0"/>
<!-- Following element will be available only if finding is ignored -->
<xs:element name="reactivateDate" type="xs:date" minOccurs="0"/>
<xs:element name="externalRef" type="Cdata" minOccurs="0"/>
<!-- Following element will be available only if severity level is edited and this will also be used for 'edit sevrity' operation for providing comment -->
<xs:element name="severityComment" type="Cdata" minOccurs="0"/>
<!-- Following element will be available only if severity level is edited -->
<xs:element name="editedSeverityUser" type="User" minOccurs="0"/>
<!-- Following element will be available only if severity level is edited -->
<xs:element name="editedSeverityDate" type="xs:dateTime" minOccurs="0"/>
<!-- Following element will be available only if finding is retested -->
<!-- Following element will be available only if finding is retested -->
<xs:element name="retest" type="Retest" minOccurs="0"/>
<!-- Following data will populate only for SSL QIDs-->
<xs:element name="sslData" type="SSLData" minOccurs="0"/>
<xs:element name="cvssV3" type="CvssV3" minOccurs="0"/>
<xs:element name="history" type="HistoryList" minOccurs="0"/>
<xs:element name="updatedDate" type="xs:dateTime" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CvssV3">
<xs:all>
<xs:element name="base" type="xs:float"/>
<xs:element name="temporal" type="xs:float"/>
<xs:element name="attackVector" type="xs:string"/>
</xs:all>
</xs:complexType>
<xs:complexType name="WebApp">
<xs:all>
<xs:element name="id" type="xs:long" minOccurs="0"/>
<xs:element name="name" type="Cdata" minOccurs="0"/>
<xs:element name="url" type="Url" minOccurs="0"/>
<xs:element name="tags" type="TagList" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="TagList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="Tag" type="Tag" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="set" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="Tag" type="Tag" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Tag">
<xs:all>
<xs:element name="id" type="xs:long"/>
<xs:element name="name" type="Cdata" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="Cdata">
<xs:simpleContent> <xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="uuid">
<xs:restriction base="xs:string"> <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="UrlList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="Url" type="Url" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Url">
<xs:simpleContent>
<xs:extension base="Cdata"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ResultList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" > <xs:complexType>
<xs:sequence> <xs:element name="Result" type="Result" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Result">
<xs:all>
<xs:element name="authentication" type="xs:boolean" minOccurs="0" />
<xs:element name="formLocation" type="Url" minOccurs="0" />
<xs:element name="accessPath" type="UrlList" minOccurs="0" />
<xs:element name="ajax" type="xs:boolean" minOccurs="0" />
<xs:element name="ajaxRequestId" type="xs:string" minOccurs="0" />
<xs:element name="payloads" type="PayloadList" minOccurs="0"/>
<!-- Following data will populate only for finding type 'IG' -->
<xs:element name="data" type="Cdata" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="PayloadList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="PayloadInstance" type="PayloadInstance" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="PayloadInstance">
<xs:all>
<xs:element name="payload" type="Cdata" minOccurs="0" />
<xs:element name="request" type="PayLoadRequest" minOccurs="0" />
<xs:element name="response" type="Cdata" minOccurs="0" />
<xs:element name="payloadResult" type="PayloadResult" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="PayloadResult">
<xs:all>
<xs:element name="offset" type="xs:long" minOccurs="0" />
<xs:element name="length" type="xs:long" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="PayLoadRequest">
<xs:all>
<xs:element name="method" type="Cdata" minOccurs="0" />
<xs:element name="link" type="Url" minOccurs="0" />
<xs:element name="headers" type="Cdata" minOccurs="0" />
<xs:element name="body" type="Cdata" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="OWASPList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="OWASP" type="OWASP" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="WebAppFindingHistory">
<xs:sequence>
<xs:element name="scan" type="WasScan"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="WasScan">
<xs:sequence>
<xs:element name="id" type="xs:long"/>
<xs:element name="reference" type="xs:string"/>
<xs:element name="launchedDate" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="HistoryList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="set" minOccurs="0" > <xs:complexType> <xs:sequence>
<xs:element name="WebAppFindingHistory" type="WebAppFindingHistory" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="OWASP">
<xs:all>
<xs:element name="name" type="Cdata" minOccurs="0" />
<xs:element name="url" type="Url" minOccurs="0" />
<xs:element name="code" type="xs:long" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="WASCList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="WASC" type="WASC" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="WASC">
<xs:all>
<xs:element name="name" type="Cdata" minOccurs="0" />
<xs:element name="url" type="Url" minOccurs="0" />
<xs:element name="code" type="xs:long" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CWEList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="long" type="xs:long" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="User">
<xs:all>
<xs:element name="id" type="xs:long"/>
<xs:element name="username" type="xs:string" minOccurs="0"/>
<xs:element name="firstName" type="Cdata" minOccurs="0"/>
<xs:element name="lastName" type="Cdata" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="RetestStatus" >
<xs:restriction base="xs:string">
<xs:enumeration value="NO_RETEST"/>
<xs:enumeration value="UNDER_RETEST"/>
<xs:enumeration value="RETESTED"/>
<xs:enumeration value="CANCELING"/>
<xs:enumeration value="CANCELED"/>
</xs:restriction> </xs:simpleType>
<xs:complexType name="Retest">
<xs:all>
<xs:element name="retestStatus" type="RetestStatus" minOccurs="0"/>
<xs:element name="retestedDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="retestedUser" type="User" minOccurs="0"/>
<!-- Status and reason only available is retestStatus is RETESTED -->
<xs:element name="findingStatus" type="xs:string" minOccurs="0"/>
<xs:element name="reason" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="SSLData">
<xs:all>
<xs:element name="flags" type="xs:string" minOccurs="0" />
<xs:element name="protocol" type="xs:string" minOccurs="0" />
<xs:element name="virtualhost" type="xs:string" minOccurs="0" />
<xs:element name="ip" type="xs:string" minOccurs="0" />
<xs:element name="port" type="xs:string" minOccurs="0" />
<xs:element name="result" type="Cdata" minOccurs="0" />
<xs:element name="sslDataInfoList" type="SSLDataInfoList" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataInfoList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="SSLDataInfo" type="SSLDataInfo" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataInfo">
<xs:all>
<xs:element name="certificateFingerprint" type="xs:string" minOccurs="0" />
<xs:element name="sslDataCipherList" type="SSLDataCipherList" minOccurs="0" />
<xs:element name="sslDataKexList" type="SSLDataKexList" minOccurs="0" />
<xs:element name="sslDataPropList" type="SSLDataPropList" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataCipherList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" > <xs:complexType> <xs:sequence>
<xs:element name="SSLDataCipher" type="SSLDataCipher" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataKexList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="SSLDataKex" type="SSLDataKex" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataPropList">
<xs:all>
<xs:element name="count" type="xs:int" minOccurs="0"/>
<xs:element name="list" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element name="SSLDataProp" type="SSLDataProp" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataCipher">
<xs:all>
<xs:element name="protocol" type="xs:string" minOccurs="0" />
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="keyExchange" type="xs:string" minOccurs="0" />
<xs:element name="auth" type="xs:string" minOccurs="0" />
<xs:element name="mac" type="xs:string" minOccurs="0" />
<xs:element name="encryption" type="xs:string" minOccurs="0" />
<xs:element name="grade" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataKex">
<xs:all>
<xs:element name="protocol" type="xs:string" minOccurs="0" />
<xs:element name="kex" type="xs:string" minOccurs="0" />
<xs:element name="group" type="xs:string" minOccurs="0" />
<xs:element name="keysize" type="xs:string" minOccurs="0" />
<xs:element name="fwdsec" type="xs:string" minOccurs="0" />
<xs:element name="classical" type="xs:string" minOccurs="0" />
<xs:element name="quantum" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="SSLDataProp">
<xs:all>
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="value" type="xs:string" minOccurs="0" />
<xs:element name="protocol" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:schema>