diff --git a/docs/reference/api/openapi-v1.yaml b/docs/reference/api/openapi-v1.yaml index 147b8ef4..bd43d2b0 100644 --- a/docs/reference/api/openapi-v1.yaml +++ b/docs/reference/api/openapi-v1.yaml @@ -65,29 +65,6 @@ info: The total number of items in the collection across all pages is returned in the `X-Total-Count` response header. - ### Bounded total counts - - An exact `X-Total-Count` gets more expensive as a collection grows, and on large - collections it can time out. Some endpoints therefore accept an optional `totalCount` - query parameter that caps the cost of counting: - - | `totalCount` | Description | - |--------------|--------------------------------------------------------------------| - | `EXACT` | Count every matching item. The default. Can time out. | - | `BOUNDED` | Stop counting at a server-side cap. May return only a lower bound. | - - Any other value is rejected with `400`. Each endpoint documents how it computes the - bounded count, on its `totalCount` parameter. - - Endpoints that accept `totalCount` also return an `X-Total-Count-Type` header saying - how to read `X-Total-Count`. They return it on every collection response, including - ones that did not opt in. - - | `X-Total-Count-Type` | Meaning | - |----------------------|----------------------------------------------------------------------| - | `EXACT` | `X-Total-Count` is the true total. | - | `AT_LEAST` | `X-Total-Count` is only a lower bound. The true total may be higher. | - ## HTTP Methods | Method | Semantics | @@ -109,15 +86,6 @@ info: Delete (`DELETE`) operations typically return `204 No Content`. - ## Timeouts - - A request that takes too long to complete is aborted and answered - with `504 Gateway Timeout` and a problem details body. Any operation - can time out, so operations do not document it individually. - - Requesting a bounded total count can avoid the timeout where the - operation supports it, because counting is often the expensive part. - ## Deprecations Operations may be removed or replaced over time. When a response @@ -141,7 +109,7 @@ paths: operationId: addMapping requestBody: content: - application/json: + '*/*': schema: $ref: "#/components/schemas/AclMappingRequest" responses: @@ -321,7 +289,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AnalysisTrailResponse" + $ref: "#/components/schemas/Analysis" description: An analysis trail "401": description: Unauthorized @@ -353,7 +321,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AnalysisTrailResponse" + $ref: "#/components/schemas/Analysis" description: The created analysis "401": description: Unauthorized @@ -526,7 +494,6 @@ paths: default: false bom: type: string - format: binary isActive: type: boolean isLatest: @@ -1132,10 +1099,6 @@ paths: $ref: "#/components/schemas/ProblemDetails" description: Access to the requested project is forbidden "404": - content: - application/problem+json: - schema: - $ref: "#/components/schemas/ProblemDetails" description: |- - The UUID of the project could not be found - The UUID of the component could not be found @@ -2064,21 +2027,6 @@ paths: name: isKev schema: type: boolean - - description: "The counting mode for `X-Total-Count`. With `BOUNDED`, the count\ - \ stops at a fixed server-side cap. `X-Total-Count` is then exact when the\ - \ count finishes within the cap, or when the requested page ends the result\ - \ set. Otherwise it is a lower bound, never below the end of the requested\ - \ page. `X-Total-Count-Type` says which case applies. See the Pagination\ - \ section of the API description." - in: query - name: totalCount - schema: - type: string - default: EXACT - description: The counting mode for the `X-Total-Count` response header. - enum: - - EXACT - - BOUNDED responses: "200": content: @@ -2090,19 +2038,10 @@ paths: description: A list of all findings headers: X-Total-Count: - description: "The number of findings, exact or a lower bound. See `X-Total-Count-Type`." + description: The total number of findings schema: format: integer style: simple - X-Total-Count-Type: - $ref: "#/components/headers/TotalCountType" - style: simple - "400": - content: - application/problem+json: - schema: - $ref: "#/components/schemas/ProblemDetails" - description: Invalid query parameter "401": description: Unauthorized security: @@ -2249,21 +2188,6 @@ paths: name: isKev schema: type: boolean - - description: "The counting mode for `X-Total-Count`. With `BOUNDED`, the count\ - \ is skipped and `X-Total-Count` reports what the requested page itself\ - \ proves. `X-Total-Count-Type` is then `EXACT` when the page ends the result\ - \ set, and `AT_LEAST` otherwise. A page past the end reports `AT_LEAST`\ - \ with a count of 0, which means the total is unknown. See the Pagination\ - \ section of the API description." - in: query - name: totalCount - schema: - type: string - default: EXACT - description: The counting mode for the `X-Total-Count` response header. - enum: - - EXACT - - BOUNDED responses: "200": content: @@ -2275,19 +2199,10 @@ paths: description: A list of all findings grouped by vulnerability headers: X-Total-Count: - description: "The number of findings, exact or a lower bound. See `X-Total-Count-Type`." + description: The total number of findings schema: format: integer style: simple - X-Total-Count-Type: - $ref: "#/components/headers/TotalCountType" - style: simple - "400": - content: - application/problem+json: - schema: - $ref: "#/components/schemas/ProblemDetails" - description: Invalid query parameter "401": description: Unauthorized security: @@ -2373,7 +2288,6 @@ paths: - OSV - SNYK - CX - - JVN - UNKNOWN - in: header name: accept @@ -2400,21 +2314,6 @@ paths: name: isKev schema: type: boolean - - description: "The counting mode for `X-Total-Count`. With `BOUNDED`, the count\ - \ stops at a fixed server-side cap. `X-Total-Count` is then exact when the\ - \ count finishes within the cap, or when the requested page ends the result\ - \ set. Otherwise it is a lower bound, never below the end of the requested\ - \ page. `X-Total-Count-Type` says which case applies. See the Pagination\ - \ section of the API description." - in: query - name: totalCount - schema: - type: string - default: EXACT - description: The counting mode for the `X-Total-Count` response header. - enum: - - EXACT - - BOUNDED responses: "200": content: @@ -2427,22 +2326,13 @@ paths: schema: type: string description: "A list of all findings for a specific project, or a SARIF\ - \ file. SARIF responses carry no count headers." + \ file" headers: X-Total-Count: - description: "The number of findings, exact or a lower bound. See `X-Total-Count-Type`." + description: The total number of findings schema: format: integer style: simple - X-Total-Count-Type: - $ref: "#/components/headers/TotalCountType" - style: simple - "400": - content: - application/problem+json: - schema: - $ref: "#/components/schemas/ProblemDetails" - description: Invalid query parameter "401": description: Unauthorized "403": @@ -2568,7 +2458,7 @@ paths: operationId: addMapping_1 requestBody: content: - application/json: + '*/*': schema: $ref: "#/components/schemas/MappedLdapGroupRequest" responses: @@ -2576,7 +2466,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/MappedLdapGroupResponse" + $ref: "#/components/schemas/MappedLdapGroup" description: The created mapping "401": description: Unauthorized @@ -2634,7 +2524,7 @@ paths: schema: type: array items: - $ref: "#/components/schemas/MappedLdapGroupResponse" + $ref: "#/components/schemas/MappedLdapGroup" description: DNs of all groups mapped to the specified team "401": description: Unauthorized @@ -2716,7 +2606,7 @@ paths: operationId: createLicense requestBody: content: - application/json: + '*/*': schema: $ref: "#/components/schemas/CreateLicenseRequest" responses: @@ -3668,7 +3558,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeleteNotificationRuleRequest" + $ref: "#/components/schemas/NotificationRule" responses: "204": description: Notification rule removed successfully @@ -4033,7 +3923,7 @@ paths: schema: type: array items: - $ref: "#/components/schemas/OidcGroupResponse" + $ref: "#/components/schemas/OidcGroup" description: A list of all groups "401": description: Unauthorized @@ -4050,13 +3940,13 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateOidcGroupRequest" + $ref: "#/components/schemas/OidcGroup" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/OidcGroupResponse" + $ref: "#/components/schemas/OidcGroup" description: The updated group "401": description: Unauthorized @@ -4073,13 +3963,13 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateOidcGroupRequest" + $ref: "#/components/schemas/OidcGroup" responses: "201": content: application/json: schema: - $ref: "#/components/schemas/OidcGroupResponse" + $ref: "#/components/schemas/OidcGroup" description: The created group "401": description: Unauthorized @@ -4183,7 +4073,7 @@ paths: operationId: addMapping_2 requestBody: content: - application/json: + '*/*': schema: $ref: "#/components/schemas/MappedOidcGroupRequest" responses: @@ -4191,7 +4081,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/MappedOidcGroupResponse" + $ref: "#/components/schemas/MappedOidcGroup" description: The created mapping "401": description: Unauthorized @@ -4939,7 +4829,7 @@ paths:
To re-parent the project, set parent to an object containing
the new parent's uuid. Omit parent (or set it to
- null) to remove the parent. Providing parent
+ null) to leave the parent unchanged. Providing parent
without a non-null uuid is rejected with 400.
Requires permission PORTFOLIO_MANAGEMENT or PORTFOLIO_MANAGEMENT_UPDATE
@@ -5453,6 +5343,7 @@ paths: - description: The version of the project to query on in: query name: version + required: true schema: type: string responses: @@ -5676,10 +5567,6 @@ paths: $ref: "#/components/schemas/ProblemDetails" description: Access to the requested project is forbidden "404": - content: - application/problem+json: - schema: - $ref: "#/components/schemas/ProblemDetails" description: The UUID of the project could not be found "500": description: Unable to delete components of the project @@ -6850,7 +6737,7 @@ paths: schema: type: array items: - $ref: "#/components/schemas/TagResponse" + $ref: "#/components/schemas/Tag" description: A list of all tags associated with a given policy headers: X-Total-Count: @@ -7501,7 +7388,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeleteTeamRequest" + $ref: "#/components/schemas/Team" responses: "204": description: Team removed successfully @@ -7747,52 +7634,8 @@ paths: - team /v1/team/visible: get: - description:Optional query parameter searchText. The search
- is case insensitive and matches team names.
pageSize.
- in: query
- name: pageNumber
- schema:
- type: string
- default: "1"
- - description: Number of elements to return per page. To be used in conjunction
- with pageNumber.
- in: query
- name: pageSize
- schema:
- type: string
- default: "100"
- - description: Offset to start returning elements from. To be used in conjunction
- with limit.
- in: query
- name: offset
- schema:
- type: string
- - description: Number of elements to return per page. To be used in conjunction
- with offset.
- in: query
- name: limit
- schema:
- type: string
- - description: Name of the resource field to sort on.
- in: query
- name: sortName
- schema:
- type: string
- - description: Ordering of items when sorting with sortName.
- in: query
- name: sortOrder
- schema:
- type: string
- enum:
- - "asc, desc"
responses:
"200":
content:
@@ -7802,12 +7645,6 @@ paths:
items:
$ref: "#/components/schemas/VisibleTeams"
description: The Visible Teams
- headers:
- X-Total-Count:
- description: The total number of visible teams
- schema:
- format: integer
- style: simple
"401":
description: Unauthorized
security:
@@ -7915,7 +7752,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/DeleteUserRequest"
+ $ref: "#/components/schemas/LdapUser"
responses:
"204":
description: LDAP user removed successfully
@@ -8045,7 +7882,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/DeleteUserRequest"
+ $ref: "#/components/schemas/ManagedUser"
responses:
"204":
description: User removed successfully
@@ -8184,7 +8021,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/DeleteUserRequest"
+ $ref: "#/components/schemas/OidcUser"
responses:
"204":
description: OIDC user removed successfully
@@ -8306,7 +8143,7 @@ paths:
operationId: updateSelf
requestBody:
content:
- application/json:
+ '*/*':
schema:
$ref: "#/components/schemas/ManagedUser"
responses:
@@ -9644,15 +9481,6 @@ paths:
tags:
- version
components:
- headers:
- TotalCountType:
- description: Whether `X-Total-Count` is exact (`EXACT`) or a lower bound (`AT_LEAST`).
- `AT_LEAST` with a count of 0 means the total is unknown.
- schema:
- type: string
- enum:
- - EXACT
- - AT_LEAST
schemas:
About:
type: object
@@ -9740,8 +9568,7 @@ components:
lastSeen:
type: integer
format: int64
- deprecated: true
- description: Deprecated; always equal to firstSeen
+ description: UNIX epoch timestamp in milliseconds
source:
type: string
enum:
@@ -9753,17 +9580,19 @@ components:
- OSV
- SNYK
- CX
- - JVN
- UNKNOWN
required:
- firstSeen
- lastSeen
- AnalysisRequest:
+ Analysis:
type: object
properties:
+ analysisComments:
+ type: array
+ items:
+ $ref: "#/components/schemas/AnalysisComment"
analysisDetails:
type: string
- pattern: "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
analysisJustification:
type: string
enum:
@@ -9795,40 +9624,60 @@ components:
- NOT_AFFECTED
- RESOLVED
- NOT_SET
- comment:
+ cvssV2Score:
+ type: number
+ cvssV2Vector:
type: string
- pattern: "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
- component:
+ cvssV3Score:
+ type: number
+ cvssV3Vector:
+ type: string
+ cvssV4Score:
+ type: number
+ cvssV4Vector:
type: string
- pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
isSuppressed:
type: boolean
- writeOnly: true
- project:
+ owaspScore:
+ type: number
+ owaspVector:
type: string
- pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
- suppressed:
- type: boolean
- vulnerability:
+ severity:
type: string
- pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
+ enum:
+ - CRITICAL
+ - HIGH
+ - MEDIUM
+ - LOW
+ - INFO
+ - UNASSIGNED
required:
- - component
- - vulnerability
- AnalysisTrailResponse:
+ - analysisDetails
+ - analysisJustification
+ - analysisResponse
+ - analysisState
+ AnalysisComment:
+ type: object
+ properties:
+ comment:
+ type: string
+ commenter:
+ type: string
+ timestamp:
+ type: integer
+ format: int64
+ description: UNIX epoch timestamp in milliseconds
+ required:
+ - comment
+ - timestamp
+ AnalysisRequest:
type: object
properties:
- analysisComments:
- type: array
- description: Audit trail of analysis comments
- items:
- $ref: "#/components/schemas/Comment"
analysisDetails:
type: string
- description: Free-form details of the analysis decision
+ pattern: "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
analysisJustification:
type: string
- description: The justification of the analysis decision
enum:
- CODE_NOT_PRESENT
- CODE_NOT_REACHABLE
@@ -9842,7 +9691,6 @@ components:
- NOT_SET
analysisResponse:
type: string
- description: The vendor response to the vulnerability
enum:
- CAN_NOT_FIX
- WILL_NOT_FIX
@@ -9852,7 +9700,6 @@ components:
- NOT_SET
analysisState:
type: string
- description: The state of the analysis decision
enum:
- EXPLOITABLE
- IN_TRIAGE
@@ -9860,47 +9707,26 @@ components:
- NOT_AFFECTED
- RESOLVED
- NOT_SET
- cvssV2Score:
- type: number
- description: CVSS v2 score assigned by the analysis
- cvssV2Vector:
- type: string
- description: CVSS v2 vector assigned by the analysis
- cvssV3Score:
- type: number
- description: CVSS v3 score assigned by the analysis
- cvssV3Vector:
+ comment:
type: string
- description: CVSS v3 vector assigned by the analysis
- cvssV4Score:
- type: number
- description: CVSS v4 score assigned by the analysis
- cvssV4Vector:
+ pattern: "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
+ component:
type: string
- description: CVSS v4 vector assigned by the analysis
+ pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
isSuppressed:
type: boolean
- description: Whether the finding is suppressed
- owaspScore:
- type: number
- description: OWASP Risk Rating score assigned by the analysis
- owaspVector:
+ writeOnly: true
+ project:
type: string
- description: OWASP Risk Rating vector assigned by the analysis
- severity:
+ pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
+ suppressed:
+ type: boolean
+ vulnerability:
type: string
- description: Severity assigned by the analysis
- enum:
- - CRITICAL
- - HIGH
- - MEDIUM
- - LOW
- - INFO
- - UNASSIGNED
+ pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
required:
- - analysisComments
- - analysisState
- - isSuppressed
+ - component
+ - vulnerability
ApiKey:
type: object
properties:
@@ -9933,7 +9759,6 @@ components:
type: boolean
bom:
type: string
- format: bytes
description: Base64 encoded BOM
example: ewogICJib21Gb3JtYXQiOiAiQ3ljbG9uZURYIiwKICAic3BlY1ZlcnNpb24iOiAiMS40IiwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImFjbWUtbGliIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjAiCiAgICB9CiAgXQp9
pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
@@ -10120,7 +9945,6 @@ components:
type: array
items:
type: string
- format: uuid
uniqueItems: true
description:
type: string
@@ -10728,17 +10552,6 @@ components:
- name
- publisher
- scope
- CreateOidcGroupRequest:
- type: object
- properties:
- name:
- type: string
- description: Name of the group to create
- maxLength: 255
- minLength: 1
- pattern: "[\\P{Cc}]+"
- required:
- - name
CreatePolicyConditionRequest:
type: object
properties:
@@ -10954,15 +10767,6 @@ components:
- UNKNOWN
name:
type: string
- DeleteNotificationRuleRequest:
- type: object
- properties:
- uuid:
- type: string
- format: uuid
- description: UUID of the notification rule to delete
- required:
- - uuid
DeleteProjectPropertyRequest:
type: object
properties:
@@ -10981,24 +10785,6 @@ components:
required:
- groupName
- propertyName
- DeleteTeamRequest:
- type: object
- properties:
- uuid:
- type: string
- format: uuid
- description: UUID of the team to delete
- required:
- - uuid
- DeleteUserRequest:
- type: object
- properties:
- username:
- type: string
- description: Username of the user to delete
- minLength: 1
- required:
- - username
DependencyGraphResponse:
type: object
properties:
@@ -11253,16 +11039,6 @@ components:
properties:
processing:
type: boolean
- status:
- type: string
- description: The processing status associated with the token. Null when
- no processing is associated with the token.
- enum:
- - PENDING
- - RUNNING
- - COMPLETED
- - FAILED
- nullable: true
required:
- processing
LdapUser:
@@ -11282,10 +11058,6 @@ components:
type: array
items:
$ref: "#/components/schemas/Permission"
- teams:
- type: array
- items:
- $ref: "#/components/schemas/Team"
username:
type: string
maxLength: 255
@@ -11609,19 +11381,6 @@ components:
required:
- dn
- team
- MappedLdapGroupResponse:
- type: object
- properties:
- dn:
- type: string
- description: Distinguished name of the mapped LDAP group
- uuid:
- type: string
- format: uuid
- description: UUID of the mapping
- required:
- - dn
- - uuid
MappedOidcGroup:
type: object
properties:
@@ -11644,18 +11403,6 @@ components:
required:
- group
- team
- MappedOidcGroupResponse:
- type: object
- properties:
- group:
- $ref: "#/components/schemas/OidcGroupResponse"
- uuid:
- type: string
- format: uuid
- description: UUID of the mapping
- required:
- - group
- - uuid
NotificationPublisher:
type: object
properties:
@@ -11845,19 +11592,6 @@ components:
required:
- name
- uuid
- OidcGroupResponse:
- type: object
- properties:
- name:
- type: string
- description: Name of the group
- uuid:
- type: string
- format: uuid
- description: UUID of the group
- required:
- - name
- - uuid
OidcUser:
type: object
properties:
@@ -11866,19 +11600,11 @@ components:
maxLength: 255
minLength: 0
pattern: "[\\P{Cc}]+"
- permissions:
- type: array
- items:
- $ref: "#/components/schemas/Permission"
subjectIdentifier:
type: string
maxLength: 255
minLength: 1
pattern: "[\\P{Cc}]+"
- teams:
- type: array
- items:
- $ref: "#/components/schemas/Team"
username:
type: string
maxLength: 255
@@ -11952,8 +11678,6 @@ components:
type: boolean
includeChildren:
type: boolean
- invertTagMatch:
- type: boolean
name:
type: string
maxLength: 255
@@ -12851,14 +12575,6 @@ components:
- detail
- status
- title
- TagResponse:
- type: object
- properties:
- name:
- type: string
- description: Name of the tag
- required:
- - name
TaggedCollectionProjectListResponseItem:
type: object
properties:
@@ -13232,22 +12948,6 @@ components:
- name
- scope
- uuid
- UpdateOidcGroupRequest:
- type: object
- properties:
- name:
- type: string
- description: New name of the group
- maxLength: 255
- minLength: 1
- pattern: "[\\P{Cc}]+"
- uuid:
- type: string
- format: uuid
- description: UUID of the group to update
- required:
- - name
- - uuid
UpdatePolicyConditionRequest:
type: object
properties:
diff --git a/docs/reference/api/openapi-v2.yaml b/docs/reference/api/openapi-v2.yaml
index 8dd3a10a..6f3cb81c 100644
--- a/docs/reference/api/openapi-v2.yaml
+++ b/docs/reference/api/openapi-v2.yaml
@@ -76,10 +76,6 @@ info:
}
```
- A request that takes too long to complete is aborted and rejected
- with `504 Gateway Timeout`. Any operation can time out, so operations
- do not document it individually.
-
## Authentication
Two credential types are accepted:
@@ -175,8 +171,6 @@ tags:
description: Endpoints related to components
- name: Extensions
description: Endpoints related to extensions
-- name: Kev Data Sources
- description: Endpoints related to KEV data sources
- name: Projects
description: Endpoints related to projects
- name: Secrets
@@ -665,89 +659,6 @@ paths:
$ref: "#/components/responses/generic-not-found-error"
default:
$ref: "#/components/responses/generic-error"
- /kev-data-sources/{name}/mirror-runs:
- post:
- tags:
- - Kev Data Sources
- summary: Trigger a KEV data source mirror run
- description: |-
- Triggers a mirror run for the given KEV data source.
-
- Requires permission `SYSTEM_CONFIGURATION` or `SYSTEM_CONFIGURATION_UPDATE`.
- operationId: triggerKevDataSourceMirrorRun
- parameters:
- - name: name
- in: path
- description: "Name of the KEV data source (e.g. `cisa`, `enisa`)."
- required: true
- schema:
- type: string
- responses:
- "202":
- description: Mirror run triggered
- headers:
- Location:
- description: URL of the latest mirror run resource.
- schema:
- type: string
- format: uri
- "400":
- description: Mirror run cannot be started
- content:
- application/problem+json:
- schema:
- $ref: "#/components/schemas/problem-details"
- "401":
- $ref: "#/components/responses/generic-unauthorized-error"
- "403":
- $ref: "#/components/responses/generic-forbidden-error"
- "404":
- $ref: "#/components/responses/generic-not-found-error"
- "409":
- description: A mirror run is already in progress
- content:
- application/problem+json:
- schema:
- $ref: "#/components/schemas/problem-details"
- default:
- $ref: "#/components/responses/generic-error"
- /kev-data-sources/{name}/mirror-runs/latest:
- get:
- tags:
- - Kev Data Sources
- summary: Get the latest KEV data source mirror run
- description: |-
- Returns the status of the most recent mirror run for a given
- KEV data source.
-
- Returns 404 if no mirror run is available
- (e.g. none has been triggered yet, or the most recent run
- is no longer retained), or if the data source is unknown.
-
- Requires permission `SYSTEM_CONFIGURATION` or `SYSTEM_CONFIGURATION_READ`.
- operationId: getLatestKevDataSourceMirrorRun
- parameters:
- - name: name
- in: path
- description: "Name of the KEV data source (e.g. `cisa`, `enisa`)."
- required: true
- schema:
- type: string
- responses:
- "200":
- description: Mirror run status
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/kev-data-source-mirror-status"
- "401":
- $ref: "#/components/responses/generic-unauthorized-error"
- "403":
- $ref: "#/components/responses/generic-forbidden-error"
- "404":
- $ref: "#/components/responses/generic-not-found-error"
- default:
- $ref: "#/components/responses/generic-error"
/projects/{uuid}/clone:
post:
tags:
@@ -2184,26 +2095,6 @@ components:
type: array
items:
$ref: "#/components/schemas/extension-test-check"
- kev-data-source-mirror-status:
- required:
- - status
- type: object
- properties:
- status:
- type: string
- description: Status of the mirror run.
- enum:
- - PENDING
- - RUNNING
- - COMPLETED
- - FAILED
- started_at:
- $ref: "#/components/schemas/timestamp"
- completed_at:
- $ref: "#/components/schemas/timestamp"
- failure_reason:
- type: string
- description: Reason for why the mirror run failed.
clone-project-request:
required:
- version
@@ -2836,16 +2727,12 @@ components:
list-extensions-response-item:
required:
- configurable
- - display_name
- name
- testable
type: object
properties:
name:
type: string
- display_name:
- type: string
- description: Human-readable name of the extension.
configurable:
type: boolean
description: Whether the extension supports runtime configuration.
@@ -3110,7 +2997,6 @@ components:
kev-assertion:
required:
- asserter
- - asserter_display_name
- created_at
- updated_at
- vuln_id
@@ -3120,10 +3006,7 @@ components:
asserter:
type: string
description: "The entity that asserted the vulnerability is known to be\
- \ exploited (e.g. `cisa`, `enisa`)."
- asserter_display_name:
- type: string
- description: Human-readable name of the asserting entity (e.g. `CISA KEV`).
+ \ exploited (e.g. `CISA`, `ENISA`)."
vuln_source:
type: string
description: Source of the asserted vulnerability identifier (e.g. `NVD`).