Skip to content

Commit e9df6eb

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add vulnerability type to Findings API (#2200)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent a689b05 commit e9df6eb

File tree

7 files changed

+114
-5
lines changed

7 files changed

+114
-5
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2024-10-08 14:16:15.442616",
8-
"spec_repo_commit": "eb227ded"
7+
"regenerated": "2024-10-09 13:48:31.125396",
8+
"spec_repo_commit": "a458c3a4"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-10-08 14:16:15.459899",
13-
"spec_repo_commit": "eb227ded"
12+
"regenerated": "2024-10-09 13:48:31.266147",
13+
"spec_repo_commit": "a458c3a4"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9230,6 +9230,8 @@ components:
92309230
$ref: '#/components/schemas/FindingStatus'
92319231
tags:
92329232
$ref: '#/components/schemas/FindingTags'
9233+
vulnerability_type:
9234+
$ref: '#/components/schemas/FindingVulnerabilityType'
92339235
type: object
92349236
FindingEvaluation:
92359237
description: The evaluation of the finding.
@@ -9363,6 +9365,20 @@ components:
93639365
type: string
93649366
x-enum-varnames:
93659367
- FINDING
9368+
FindingVulnerabilityType:
9369+
description: The vulnerability type of the finding.
9370+
enum:
9371+
- misconfiguration
9372+
- attack_path
9373+
- identity_risk
9374+
- api_security
9375+
example: misconfiguration
9376+
type: string
9377+
x-enum-varnames:
9378+
- MISCONFIGURATION
9379+
- ATTACK_PATH
9380+
- IDENTITY_RISK
9381+
- API_SECURITY
93669382
FormulaLimit:
93679383
description: 'Message for specifying limits to the number of values returned
93689384
by a query.
@@ -34377,6 +34393,17 @@ paths:
3437734393
required: false
3437834394
schema:
3437934395
$ref: '#/components/schemas/FindingStatus'
34396+
- description: Return findings that match the selected vulnerability types (repeatable).
34397+
example:
34398+
- misconfiguration
34399+
explode: true
34400+
in: query
34401+
name: filter[vulnerability_type]
34402+
required: false
34403+
schema:
34404+
items:
34405+
$ref: '#/components/schemas/FindingVulnerabilityType'
34406+
type: array
3438034407
responses:
3438134408
'200':
3438234409
content:

docs/datadog_api_client.v2.model.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3770,6 +3770,13 @@ datadog\_api\_client.v2.model.finding\_type module
37703770
:members:
37713771
:show-inheritance:
37723772

3773+
datadog\_api\_client.v2.model.finding\_vulnerability\_type module
3774+
-----------------------------------------------------------------
3775+
3776+
.. automodule:: datadog_api_client.v2.model.finding_vulnerability_type
3777+
:members:
3778+
:show-inheritance:
3779+
37733780
datadog\_api\_client.v2.model.formula\_limit module
37743781
---------------------------------------------------
37753782

src/datadog_api_client/v2/api/security_monitoring_api.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from __future__ import annotations
55

66
import collections
7-
from typing import Any, Dict, Union
7+
from typing import Any, Dict, List, Union
88

99
from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint
1010
from datadog_api_client.configuration import Configuration
@@ -18,6 +18,7 @@
1818
from datadog_api_client.v2.model.list_findings_response import ListFindingsResponse
1919
from datadog_api_client.v2.model.finding_evaluation import FindingEvaluation
2020
from datadog_api_client.v2.model.finding_status import FindingStatus
21+
from datadog_api_client.v2.model.finding_vulnerability_type import FindingVulnerabilityType
2122
from datadog_api_client.v2.model.finding import Finding
2223
from datadog_api_client.v2.model.bulk_mute_findings_response import BulkMuteFindingsResponse
2324
from datadog_api_client.v2.model.bulk_mute_findings_request import BulkMuteFindingsRequest
@@ -532,6 +533,12 @@ def __init__(self, api_client=None):
532533
"attribute": "filter[status]",
533534
"location": "query",
534535
},
536+
"filter_vulnerability_type": {
537+
"openapi_types": ([FindingVulnerabilityType],),
538+
"attribute": "filter[vulnerability_type]",
539+
"location": "query",
540+
"collection_format": "multi",
541+
},
535542
},
536543
headers_map={
537544
"accept": ["application/json"],
@@ -1155,6 +1162,7 @@ def list_findings(
11551162
filter_discovery_timestamp: Union[str, UnsetType] = unset,
11561163
filter_evaluation: Union[FindingEvaluation, UnsetType] = unset,
11571164
filter_status: Union[FindingStatus, UnsetType] = unset,
1165+
filter_vulnerability_type: Union[List[FindingVulnerabilityType], UnsetType] = unset,
11581166
) -> ListFindingsResponse:
11591167
"""List findings.
11601168
@@ -1213,6 +1221,8 @@ def list_findings(
12131221
:type filter_evaluation: FindingEvaluation, optional
12141222
:param filter_status: Return only findings with the specified status.
12151223
:type filter_status: FindingStatus, optional
1224+
:param filter_vulnerability_type: Return findings that match the selected vulnerability types (repeatable).
1225+
:type filter_vulnerability_type: [FindingVulnerabilityType], optional
12161226
:rtype: ListFindingsResponse
12171227
"""
12181228
kwargs: Dict[str, Any] = {}
@@ -1252,6 +1262,9 @@ def list_findings(
12521262
if filter_status is not unset:
12531263
kwargs["filter_status"] = filter_status
12541264

1265+
if filter_vulnerability_type is not unset:
1266+
kwargs["filter_vulnerability_type"] = filter_vulnerability_type
1267+
12551268
return self._list_findings_endpoint.call_with_http_info(**kwargs)
12561269

12571270
def list_findings_with_pagination(
@@ -1269,6 +1282,7 @@ def list_findings_with_pagination(
12691282
filter_discovery_timestamp: Union[str, UnsetType] = unset,
12701283
filter_evaluation: Union[FindingEvaluation, UnsetType] = unset,
12711284
filter_status: Union[FindingStatus, UnsetType] = unset,
1285+
filter_vulnerability_type: Union[List[FindingVulnerabilityType], UnsetType] = unset,
12721286
) -> collections.abc.Iterable[Finding]:
12731287
"""List findings.
12741288
@@ -1298,6 +1312,8 @@ def list_findings_with_pagination(
12981312
:type filter_evaluation: FindingEvaluation, optional
12991313
:param filter_status: Return only findings with the specified status.
13001314
:type filter_status: FindingStatus, optional
1315+
:param filter_vulnerability_type: Return findings that match the selected vulnerability types (repeatable).
1316+
:type filter_vulnerability_type: [FindingVulnerabilityType], optional
13011317
13021318
:return: A generator of paginated results.
13031319
:rtype: collections.abc.Iterable[Finding]
@@ -1339,6 +1355,9 @@ def list_findings_with_pagination(
13391355
if filter_status is not unset:
13401356
kwargs["filter_status"] = filter_status
13411357

1358+
if filter_vulnerability_type is not unset:
1359+
kwargs["filter_vulnerability_type"] = filter_vulnerability_type
1360+
13421361
local_page_size = get_attribute_from_path(kwargs, "page_limit", 100)
13431362
endpoint = self._list_findings_endpoint
13441363
set_attribute_from_path(kwargs, "page_limit", local_page_size, endpoint.params_map)

src/datadog_api_client/v2/model/finding_attributes.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from datadog_api_client.v2.model.finding_mute import FindingMute
1919
from datadog_api_client.v2.model.finding_rule import FindingRule
2020
from datadog_api_client.v2.model.finding_status import FindingStatus
21+
from datadog_api_client.v2.model.finding_vulnerability_type import FindingVulnerabilityType
2122

2223

2324
class FindingAttributes(ModelNormal):
@@ -36,6 +37,7 @@ def openapi_types(_):
3637
from datadog_api_client.v2.model.finding_mute import FindingMute
3738
from datadog_api_client.v2.model.finding_rule import FindingRule
3839
from datadog_api_client.v2.model.finding_status import FindingStatus
40+
from datadog_api_client.v2.model.finding_vulnerability_type import FindingVulnerabilityType
3941

4042
return {
4143
"evaluation": (FindingEvaluation,),
@@ -47,6 +49,7 @@ def openapi_types(_):
4749
"rule": (FindingRule,),
4850
"status": (FindingStatus,),
4951
"tags": ([str],),
52+
"vulnerability_type": (FindingVulnerabilityType,),
5053
}
5154

5255
attribute_map = {
@@ -59,6 +62,7 @@ def openapi_types(_):
5962
"rule": "rule",
6063
"status": "status",
6164
"tags": "tags",
65+
"vulnerability_type": "vulnerability_type",
6266
}
6367

6468
def __init__(
@@ -72,6 +76,7 @@ def __init__(
7276
rule: Union[FindingRule, UnsetType] = unset,
7377
status: Union[FindingStatus, UnsetType] = unset,
7478
tags: Union[List[str], UnsetType] = unset,
79+
vulnerability_type: Union[FindingVulnerabilityType, UnsetType] = unset,
7580
**kwargs,
7681
):
7782
"""
@@ -103,6 +108,9 @@ def __init__(
103108
104109
:param tags: The tags associated with this finding.
105110
:type tags: [str], optional
111+
112+
:param vulnerability_type: The vulnerability type of the finding.
113+
:type vulnerability_type: FindingVulnerabilityType, optional
106114
"""
107115
if evaluation is not unset:
108116
kwargs["evaluation"] = evaluation
@@ -122,4 +130,6 @@ def __init__(
122130
kwargs["status"] = status
123131
if tags is not unset:
124132
kwargs["tags"] = tags
133+
if vulnerability_type is not unset:
134+
kwargs["vulnerability_type"] = vulnerability_type
125135
super().__init__(kwargs)
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
7+
from datadog_api_client.model_utils import (
8+
ModelSimple,
9+
cached_property,
10+
)
11+
12+
from typing import ClassVar
13+
14+
15+
class FindingVulnerabilityType(ModelSimple):
16+
"""
17+
The vulnerability type of the finding.
18+
19+
:param value: Must be one of ["misconfiguration", "attack_path", "identity_risk", "api_security"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"misconfiguration",
25+
"attack_path",
26+
"identity_risk",
27+
"api_security",
28+
}
29+
MISCONFIGURATION: ClassVar["FindingVulnerabilityType"]
30+
ATTACK_PATH: ClassVar["FindingVulnerabilityType"]
31+
IDENTITY_RISK: ClassVar["FindingVulnerabilityType"]
32+
API_SECURITY: ClassVar["FindingVulnerabilityType"]
33+
34+
@cached_property
35+
def openapi_types(_):
36+
return {
37+
"value": (str,),
38+
}
39+
40+
41+
FindingVulnerabilityType.MISCONFIGURATION = FindingVulnerabilityType("misconfiguration")
42+
FindingVulnerabilityType.ATTACK_PATH = FindingVulnerabilityType("attack_path")
43+
FindingVulnerabilityType.IDENTITY_RISK = FindingVulnerabilityType("identity_risk")
44+
FindingVulnerabilityType.API_SECURITY = FindingVulnerabilityType("api_security")

src/datadog_api_client/v2/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@
669669
from datadog_api_client.v2.model.finding_rule import FindingRule
670670
from datadog_api_client.v2.model.finding_status import FindingStatus
671671
from datadog_api_client.v2.model.finding_type import FindingType
672+
from datadog_api_client.v2.model.finding_vulnerability_type import FindingVulnerabilityType
672673
from datadog_api_client.v2.model.formula_limit import FormulaLimit
673674
from datadog_api_client.v2.model.full_api_key import FullAPIKey
674675
from datadog_api_client.v2.model.full_api_key_attributes import FullAPIKeyAttributes
@@ -2548,6 +2549,7 @@
25482549
"FindingRule",
25492550
"FindingStatus",
25502551
"FindingType",
2552+
"FindingVulnerabilityType",
25512553
"FormulaLimit",
25522554
"FullAPIKey",
25532555
"FullAPIKeyAttributes",

0 commit comments

Comments
 (0)