Skip to content

Commit 07657c3

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Security Findings Public API beta endpoints (#3020)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent ce28f2e commit 07657c3

File tree

36 files changed

+1797
-0
lines changed

36 files changed

+1797
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30917,6 +30917,19 @@ components:
3091730917
example: /api/v2/scorecard/rules?page%5Blimit%5D=2&page%5Boffset%5D=2&page%5Bsize%5D=2
3091830918
type: string
3091930919
type: object
30920+
ListSecurityFindingsResponse:
30921+
description: The expected response schema when listing security findings.
30922+
properties:
30923+
data:
30924+
description: Array of security findings matching the search query.
30925+
items:
30926+
$ref: '#/components/schemas/SecurityFindingsData'
30927+
type: array
30928+
links:
30929+
$ref: '#/components/schemas/SecurityFindingsLinks'
30930+
meta:
30931+
$ref: '#/components/schemas/SecurityFindingsMeta'
30932+
type: object
3092030933
ListTagsResponse:
3092130934
description: List tags response.
3092230935
properties:
@@ -47811,6 +47824,148 @@ components:
4781147824
meta:
4781247825
$ref: '#/components/schemas/SecurityFilterMeta'
4781347826
type: object
47827+
SecurityFindingsAttributes:
47828+
description: The JSON object containing all attributes of the security finding.
47829+
properties:
47830+
attributes:
47831+
additionalProperties: {}
47832+
description: The custom attributes of the security finding.
47833+
example:
47834+
severity: high
47835+
status: open
47836+
type: object
47837+
tags:
47838+
description: List of tags associated with the security finding.
47839+
example:
47840+
- team:platform
47841+
- env:prod
47842+
items:
47843+
type: string
47844+
type: array
47845+
timestamp:
47846+
description: The Unix timestamp at which the detection changed for the resource.
47847+
Same value as @detection_changed_at.
47848+
example: 1765901760
47849+
format: int64
47850+
type: integer
47851+
type: object
47852+
SecurityFindingsData:
47853+
description: A single security finding.
47854+
properties:
47855+
attributes:
47856+
$ref: '#/components/schemas/SecurityFindingsAttributes'
47857+
id:
47858+
description: The unique ID of the security finding.
47859+
example: ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==
47860+
type: string
47861+
type:
47862+
$ref: '#/components/schemas/SecurityFindingsDataType'
47863+
type: object
47864+
SecurityFindingsDataType:
47865+
default: finding
47866+
description: The type of the security finding resource.
47867+
enum:
47868+
- finding
47869+
example: finding
47870+
type: string
47871+
x-enum-varnames:
47872+
- FINDING
47873+
SecurityFindingsLinks:
47874+
description: Links for pagination.
47875+
properties:
47876+
next:
47877+
description: Link for the next page of results. Note that paginated requests
47878+
can also be made using the POST endpoint.
47879+
example: https://app.datadoghq.com/api/v2/security/findings?page[cursor]=eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==&page[limit]=25
47880+
type: string
47881+
type: object
47882+
SecurityFindingsMeta:
47883+
description: Metadata about the response.
47884+
properties:
47885+
elapsed:
47886+
description: The time elapsed in milliseconds.
47887+
example: 548
47888+
format: int64
47889+
type: integer
47890+
page:
47891+
$ref: '#/components/schemas/SecurityFindingsPage'
47892+
request_id:
47893+
description: The identifier of the request.
47894+
example: pddv1ChZwVlMxMUdYRFRMQ1lyb3B4MGNYbFlnIi0KHQu35LDbucx
47895+
type: string
47896+
status:
47897+
$ref: '#/components/schemas/SecurityFindingsStatus'
47898+
type: object
47899+
SecurityFindingsPage:
47900+
description: Pagination information.
47901+
properties:
47902+
after:
47903+
description: The cursor used to get the next page of results.
47904+
example: eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=
47905+
type: string
47906+
type: object
47907+
SecurityFindingsSearchRequest:
47908+
description: The request body for searching security findings.
47909+
properties:
47910+
data:
47911+
$ref: '#/components/schemas/SecurityFindingsSearchRequestData'
47912+
type: object
47913+
SecurityFindingsSearchRequestData:
47914+
description: Request data for searching security findings.
47915+
properties:
47916+
attributes:
47917+
$ref: '#/components/schemas/SecurityFindingsSearchRequestDataAttributes'
47918+
type: object
47919+
SecurityFindingsSearchRequestDataAttributes:
47920+
description: Request attributes for searching security findings.
47921+
properties:
47922+
filter:
47923+
default: '*'
47924+
description: The search query following log search syntax.
47925+
example: '@severity:(critical OR high) @status:open team:platform'
47926+
type: string
47927+
page:
47928+
$ref: '#/components/schemas/SecurityFindingsSearchRequestPage'
47929+
sort:
47930+
$ref: '#/components/schemas/SecurityFindingsSort'
47931+
type: object
47932+
SecurityFindingsSearchRequestPage:
47933+
description: Pagination attributes for the search request.
47934+
properties:
47935+
cursor:
47936+
description: Get the next page of results with a cursor provided in the
47937+
previous query.
47938+
example: eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==
47939+
type: string
47940+
limit:
47941+
default: 10
47942+
description: The maximum number of security findings in the response.
47943+
example: 25
47944+
format: int64
47945+
maximum: 150
47946+
minimum: 1
47947+
type: integer
47948+
type: object
47949+
SecurityFindingsSort:
47950+
default: -@detection_changed_at
47951+
description: The sort parameters when querying security findings.
47952+
enum:
47953+
- '@detection_changed_at'
47954+
- -@detection_changed_at
47955+
type: string
47956+
x-enum-varnames:
47957+
- DETECTION_CHANGED_AT_ASC
47958+
- DETECTION_CHANGED_AT_DESC
47959+
SecurityFindingsStatus:
47960+
description: The status of the response.
47961+
enum:
47962+
- done
47963+
- timeout
47964+
example: done
47965+
type: string
47966+
x-enum-varnames:
47967+
- DONE
47968+
- TIMEOUT
4781447969
SecurityMonitoringFilter:
4781547970
description: The rule's suppression filter.
4781647971
properties:
@@ -59411,6 +59566,8 @@ components:
5941159566
apm_service_catalog_read: View service catalog and service definitions.
5941259567
apm_service_catalog_write: Add, modify, and delete service catalog definitions
5941359568
when those definitions are maintained by Datadog.
59569+
appsec_vm_read: View infrastructure, application code, and library vulnerability
59570+
findings.
5941459571
billing_read: View your organization's billing information.
5941559572
cases_read: View Cases.
5941659573
cases_write: Create and update cases.
@@ -82013,6 +82170,98 @@ paths:
8201382170
operator: OR
8201482171
permissions:
8201582172
- security_monitoring_cws_agent_rules_read
82173+
/api/v2/security/findings:
82174+
get:
82175+
description: 'Get a list of security findings that match a search query.
82176+
82177+
82178+
This endpoint requires one of the following permissions:
82179+
82180+
- `security_monitoring_findings_read`
82181+
82182+
- `appsec_vm_read`
82183+
82184+
82185+
### Query Syntax
82186+
82187+
82188+
This endpoint uses the logs query syntax. Findings attributes (living in the
82189+
custom. namespace) are prefixed by @ when queried. Tags are queried without
82190+
a prefix.
82191+
82192+
82193+
Example: `@severity:(critical OR high) @status:open team:platform`'
82194+
operationId: ListSecurityFindings
82195+
parameters:
82196+
- description: The search query following log search syntax.
82197+
example: '@severity:(critical OR high) @status:open team:platform'
82198+
in: query
82199+
name: filter[query]
82200+
required: false
82201+
schema:
82202+
default: '*'
82203+
type: string
82204+
- description: Get the next page of results with a cursor provided in the previous
82205+
query.
82206+
example: eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==
82207+
in: query
82208+
name: page[cursor]
82209+
required: false
82210+
schema:
82211+
type: string
82212+
- description: The maximum number of findings in the response.
82213+
example: 25
82214+
in: query
82215+
name: page[limit]
82216+
required: false
82217+
schema:
82218+
default: 10
82219+
format: int64
82220+
maximum: 150
82221+
minimum: 1
82222+
type: integer
82223+
- description: Sorts by @detection_changed_at.
82224+
in: query
82225+
name: sort
82226+
required: false
82227+
schema:
82228+
$ref: '#/components/schemas/SecurityFindingsSort'
82229+
responses:
82230+
'200':
82231+
content:
82232+
application/json:
82233+
schema:
82234+
$ref: '#/components/schemas/ListSecurityFindingsResponse'
82235+
description: OK
82236+
'400':
82237+
$ref: '#/components/responses/BadRequestResponse'
82238+
'403':
82239+
$ref: '#/components/responses/ForbiddenResponse'
82240+
'429':
82241+
$ref: '#/components/responses/TooManyRequestsResponse'
82242+
security:
82243+
- apiKeyAuth: []
82244+
appKeyAuth: []
82245+
- AuthZ:
82246+
- security_monitoring_findings_read
82247+
- AuthZ:
82248+
- appsec_vm_read
82249+
summary: List security findings
82250+
tags:
82251+
- Security Monitoring
82252+
x-pagination:
82253+
cursorParam: page[cursor]
82254+
cursorPath: meta.page.after
82255+
limitParam: page[limit]
82256+
resultsPath: data
82257+
x-permission:
82258+
operator: OR
82259+
permissions:
82260+
- security_monitoring_findings_read
82261+
- appsec_vm_read
82262+
x-unstable: '**Note**: This endpoint is in beta and subject to change.
82263+
82264+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
8201682265
/api/v2/security/findings/cases:
8201782266
delete:
8201882267
description: 'Detach security findings from their case.
@@ -82232,6 +82481,70 @@ paths:
8223282481
x-unstable: '**Note**: This endpoint is in beta and is subject to change.
8223382482

8223482483
Please check the documentation regularly for updates.'
82484+
/api/v2/security/findings/search:
82485+
post:
82486+
description: 'Get a list of security findings that match a search query.
82487+
82488+
82489+
This endpoint requires one of the following permissions:
82490+
82491+
- `security_monitoring_findings_read`
82492+
82493+
- `appsec_vm_read`
82494+
82495+
82496+
### Query Syntax
82497+
82498+
82499+
The API uses the logs query syntax. Findings attributes (living in the custom.
82500+
namespace) are prefixed by @ when queried. Tags are queried without a prefix.
82501+
82502+
82503+
Example: `@severity:(critical OR high) @status:open team:platform`'
82504+
operationId: SearchSecurityFindings
82505+
requestBody:
82506+
content:
82507+
application/json:
82508+
schema:
82509+
$ref: '#/components/schemas/SecurityFindingsSearchRequest'
82510+
required: true
82511+
responses:
82512+
'200':
82513+
content:
82514+
application/json:
82515+
schema:
82516+
$ref: '#/components/schemas/ListSecurityFindingsResponse'
82517+
description: OK
82518+
'400':
82519+
$ref: '#/components/responses/BadRequestResponse'
82520+
'403':
82521+
$ref: '#/components/responses/ForbiddenResponse'
82522+
'429':
82523+
$ref: '#/components/responses/TooManyRequestsResponse'
82524+
security:
82525+
- apiKeyAuth: []
82526+
appKeyAuth: []
82527+
- AuthZ:
82528+
- security_monitoring_findings_read
82529+
- AuthZ:
82530+
- appsec_vm_read
82531+
summary: Search security findings
82532+
tags:
82533+
- Security Monitoring
82534+
x-codegen-request-body-name: body
82535+
x-pagination:
82536+
cursorParam: body.data.attributes.page.cursor
82537+
cursorPath: meta.page.after
82538+
limitParam: body.data.attributes.page.limit
82539+
resultsPath: data
82540+
x-permission:
82541+
operator: OR
82542+
permissions:
82543+
- security_monitoring_findings_read
82544+
- appsec_vm_read
82545+
x-unstable: '**Note**: This endpoint is in beta and subject to change.
82546+
82547+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
8223582548
/api/v2/security/sboms:
8223682549
get:
8223782550
description: 'Get a list of assets SBOMs for an organization.

0 commit comments

Comments
 (0)