Skip to content

Commit 1e3178d

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add vulnerability type to Findings API (#2517)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 3bc8570 commit 1e3178d

File tree

48 files changed

+198
-54
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+198
-54
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:05.129663",
8-
"spec_repo_commit": "eb227ded"
7+
"regenerated": "2024-10-09 13:48:20.142592",
8+
"spec_repo_commit": "a458c3a4"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-10-08 14:16:05.144844",
13-
"spec_repo_commit": "eb227ded"
12+
"regenerated": "2024-10-09 13:48:20.160684",
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:

src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.datadog.api.client.v2.model.Finding;
1111
import com.datadog.api.client.v2.model.FindingEvaluation;
1212
import com.datadog.api.client.v2.model.FindingStatus;
13+
import com.datadog.api.client.v2.model.FindingVulnerabilityType;
1314
import com.datadog.api.client.v2.model.GetFindingResponse;
1415
import com.datadog.api.client.v2.model.ListFindingsResponse;
1516
import com.datadog.api.client.v2.model.SecurityFilterCreateRequest;
@@ -2515,6 +2516,7 @@ public static class ListFindingsOptionalParameters {
25152516
private String filterDiscoveryTimestamp;
25162517
private FindingEvaluation filterEvaluation;
25172518
private FindingStatus filterStatus;
2519+
private List<FindingVulnerabilityType> filterVulnerabilityType;
25182520

25192521
/**
25202522
* Set pageLimit.
@@ -2655,6 +2657,19 @@ public ListFindingsOptionalParameters filterStatus(FindingStatus filterStatus) {
26552657
this.filterStatus = filterStatus;
26562658
return this;
26572659
}
2660+
2661+
/**
2662+
* Set filterVulnerabilityType.
2663+
*
2664+
* @param filterVulnerabilityType Return findings that match the selected vulnerability types
2665+
* (repeatable). (optional)
2666+
* @return ListFindingsOptionalParameters
2667+
*/
2668+
public ListFindingsOptionalParameters filterVulnerabilityType(
2669+
List<FindingVulnerabilityType> filterVulnerabilityType) {
2670+
this.filterVulnerabilityType = filterVulnerabilityType;
2671+
return this;
2672+
}
26582673
}
26592674

26602675
/**
@@ -2854,6 +2869,7 @@ public ApiResponse<ListFindingsResponse> listFindingsWithHttpInfo(
28542869
String filterDiscoveryTimestamp = parameters.filterDiscoveryTimestamp;
28552870
FindingEvaluation filterEvaluation = parameters.filterEvaluation;
28562871
FindingStatus filterStatus = parameters.filterStatus;
2872+
List<FindingVulnerabilityType> filterVulnerabilityType = parameters.filterVulnerabilityType;
28572873
// create path and map variables
28582874
String localVarPath = "/api/v2/posture_management/findings";
28592875

@@ -2877,6 +2893,8 @@ public ApiResponse<ListFindingsResponse> listFindingsWithHttpInfo(
28772893
localVarQueryParams.addAll(
28782894
apiClient.parameterToPairs("", "filter[evaluation]", filterEvaluation));
28792895
localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus));
2896+
localVarQueryParams.addAll(
2897+
apiClient.parameterToPairs("multi", "filter[vulnerability_type]", filterVulnerabilityType));
28802898

28812899
Invocation.Builder builder =
28822900
apiClient.createBuilder(
@@ -2931,6 +2949,7 @@ public CompletableFuture<ApiResponse<ListFindingsResponse>> listFindingsWithHttp
29312949
String filterDiscoveryTimestamp = parameters.filterDiscoveryTimestamp;
29322950
FindingEvaluation filterEvaluation = parameters.filterEvaluation;
29332951
FindingStatus filterStatus = parameters.filterStatus;
2952+
List<FindingVulnerabilityType> filterVulnerabilityType = parameters.filterVulnerabilityType;
29342953
// create path and map variables
29352954
String localVarPath = "/api/v2/posture_management/findings";
29362955

@@ -2954,6 +2973,8 @@ public CompletableFuture<ApiResponse<ListFindingsResponse>> listFindingsWithHttp
29542973
localVarQueryParams.addAll(
29552974
apiClient.parameterToPairs("", "filter[evaluation]", filterEvaluation));
29562975
localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus));
2976+
localVarQueryParams.addAll(
2977+
apiClient.parameterToPairs("multi", "filter[vulnerability_type]", filterVulnerabilityType));
29572978

29582979
Invocation.Builder builder;
29592980
try {

src/main/java/com/datadog/api/client/v2/model/FindingAttributes.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
FindingAttributes.JSON_PROPERTY_RESOURCE_TYPE,
2929
FindingAttributes.JSON_PROPERTY_RULE,
3030
FindingAttributes.JSON_PROPERTY_STATUS,
31-
FindingAttributes.JSON_PROPERTY_TAGS
31+
FindingAttributes.JSON_PROPERTY_TAGS,
32+
FindingAttributes.JSON_PROPERTY_VULNERABILITY_TYPE
3233
})
3334
@jakarta.annotation.Generated(
3435
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
@@ -61,6 +62,9 @@ public class FindingAttributes {
6162
public static final String JSON_PROPERTY_TAGS = "tags";
6263
private List<String> tags = null;
6364

65+
public static final String JSON_PROPERTY_VULNERABILITY_TYPE = "vulnerability_type";
66+
private FindingVulnerabilityType vulnerabilityType;
67+
6468
public FindingAttributes evaluation(FindingEvaluation evaluation) {
6569
this.evaluation = evaluation;
6670
this.unparsed |= !evaluation.isValid();
@@ -268,6 +272,31 @@ public void setTags(List<String> tags) {
268272
this.tags = tags;
269273
}
270274

275+
public FindingAttributes vulnerabilityType(FindingVulnerabilityType vulnerabilityType) {
276+
this.vulnerabilityType = vulnerabilityType;
277+
this.unparsed |= !vulnerabilityType.isValid();
278+
return this;
279+
}
280+
281+
/**
282+
* The vulnerability type of the finding.
283+
*
284+
* @return vulnerabilityType
285+
*/
286+
@jakarta.annotation.Nullable
287+
@JsonProperty(JSON_PROPERTY_VULNERABILITY_TYPE)
288+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
289+
public FindingVulnerabilityType getVulnerabilityType() {
290+
return vulnerabilityType;
291+
}
292+
293+
public void setVulnerabilityType(FindingVulnerabilityType vulnerabilityType) {
294+
if (!vulnerabilityType.isValid()) {
295+
this.unparsed = true;
296+
}
297+
this.vulnerabilityType = vulnerabilityType;
298+
}
299+
271300
/**
272301
* A container for additional, undeclared properties. This is a holder for any undeclared
273302
* properties as specified with the 'additionalProperties' keyword in the OAS document.
@@ -333,6 +362,7 @@ public boolean equals(Object o) {
333362
&& Objects.equals(this.rule, findingAttributes.rule)
334363
&& Objects.equals(this.status, findingAttributes.status)
335364
&& Objects.equals(this.tags, findingAttributes.tags)
365+
&& Objects.equals(this.vulnerabilityType, findingAttributes.vulnerabilityType)
336366
&& Objects.equals(this.additionalProperties, findingAttributes.additionalProperties);
337367
}
338368

@@ -348,6 +378,7 @@ public int hashCode() {
348378
rule,
349379
status,
350380
tags,
381+
vulnerabilityType,
351382
additionalProperties);
352383
}
353384

@@ -368,6 +399,7 @@ public String toString() {
368399
sb.append(" rule: ").append(toIndentedString(rule)).append("\n");
369400
sb.append(" status: ").append(toIndentedString(status)).append("\n");
370401
sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
402+
sb.append(" vulnerabilityType: ").append(toIndentedString(vulnerabilityType)).append("\n");
371403
sb.append(" additionalProperties: ")
372404
.append(toIndentedString(additionalProperties))
373405
.append("\n");
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2019-Present Datadog, Inc.
5+
*/
6+
7+
package com.datadog.api.client.v2.model;
8+
9+
import com.datadog.api.client.ModelEnum;
10+
import com.fasterxml.jackson.annotation.JsonCreator;
11+
import com.fasterxml.jackson.core.JsonGenerator;
12+
import com.fasterxml.jackson.core.JsonProcessingException;
13+
import com.fasterxml.jackson.databind.SerializerProvider;
14+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
15+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
16+
import java.io.IOException;
17+
import java.util.Arrays;
18+
import java.util.HashSet;
19+
import java.util.Set;
20+
21+
/** The vulnerability type of the finding. */
22+
@JsonSerialize(using = FindingVulnerabilityType.FindingVulnerabilityTypeSerializer.class)
23+
public class FindingVulnerabilityType extends ModelEnum<String> {
24+
25+
private static final Set<String> allowedValues =
26+
new HashSet<String>(
27+
Arrays.asList("misconfiguration", "attack_path", "identity_risk", "api_security"));
28+
29+
public static final FindingVulnerabilityType MISCONFIGURATION =
30+
new FindingVulnerabilityType("misconfiguration");
31+
public static final FindingVulnerabilityType ATTACK_PATH =
32+
new FindingVulnerabilityType("attack_path");
33+
public static final FindingVulnerabilityType IDENTITY_RISK =
34+
new FindingVulnerabilityType("identity_risk");
35+
public static final FindingVulnerabilityType API_SECURITY =
36+
new FindingVulnerabilityType("api_security");
37+
38+
FindingVulnerabilityType(String value) {
39+
super(value, allowedValues);
40+
}
41+
42+
public static class FindingVulnerabilityTypeSerializer
43+
extends StdSerializer<FindingVulnerabilityType> {
44+
public FindingVulnerabilityTypeSerializer(Class<FindingVulnerabilityType> t) {
45+
super(t);
46+
}
47+
48+
public FindingVulnerabilityTypeSerializer() {
49+
this(null);
50+
}
51+
52+
@Override
53+
public void serialize(
54+
FindingVulnerabilityType value, JsonGenerator jgen, SerializerProvider provider)
55+
throws IOException, JsonProcessingException {
56+
jgen.writeObject(value.value);
57+
}
58+
}
59+
60+
@JsonCreator
61+
public static FindingVulnerabilityType fromValue(String value) {
62+
return new FindingVulnerabilityType(value);
63+
}
64+
}

src/test/resources/cassettes/features/v1/Create_an_Azure_integration_returns_OK_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@
5757
"timeToLive": {
5858
"unlimited": true
5959
},
60-
"id": "92cc025e-6a5d-ac9c-a6af-65450cdedad1"
60+
"id": "92cc025e-6a5d-ac9c-a6af-65450cdedad2"
6161
}
6262
]

src/test/resources/cassettes/features/v1/Update_an_Azure_integration_returns_OK_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,6 @@
8787
"timeToLive": {
8888
"unlimited": true
8989
},
90-
"id": "92cc025e-6a5d-ac9c-a6af-65450cdedad2"
90+
"id": "92cc025e-6a5d-ac9c-a6af-65450cdedad1"
9191
}
9292
]

src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"timeToLive": {
2828
"unlimited": true
2929
},
30-
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a98"
30+
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a97"
3131
},
3232
{
3333
"httpRequest": {

src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"timeToLive": {
2828
"unlimited": true
2929
},
30-
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a91"
30+
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a99"
3131
},
3232
{
3333
"httpRequest": {

src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"timeToLive": {
2828
"unlimited": true
2929
},
30-
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a8e"
30+
"id": "0a6534d0-42f2-5075-64f8-7ab28f449a94"
3131
},
3232
{
3333
"httpRequest": {

0 commit comments

Comments
 (0)