Skip to content

Commit 0639ef6

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add MuteSecurityFindings endpoint spec (#3755)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent b53ee46 commit 0639ef6

29 files changed

Lines changed: 2163 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45082,6 +45082,125 @@ components:
4508245082
meta:
4508345083
$ref: "#/components/schemas/MonthlyCostAttributionMeta"
4508445084
type: object
45085+
MuteDataType:
45086+
default: mute
45087+
description: Mute resource type.
45088+
enum:
45089+
- mute
45090+
example: mute
45091+
type: string
45092+
x-enum-varnames:
45093+
- MUTE
45094+
MuteFindingsMuteAttributes:
45095+
description: Mute properties to apply to the findings.
45096+
properties:
45097+
description:
45098+
description: Additional information about the reason why the findings are muted or unmuted. This field has a limit of 280 characters.
45099+
example: "To be resolved later."
45100+
type: string
45101+
expire_at:
45102+
description: >-
45103+
The expiration date of the mute action (Unix ms). It must be set to a value greater than the current timestamp. If this field is not provided, the findings remain muted indefinitely.
45104+
example: 1778721573794
45105+
format: int64
45106+
type: integer
45107+
is_muted:
45108+
description: Whether the findings should be muted or unmuted.
45109+
example: true
45110+
type: boolean
45111+
reason:
45112+
$ref: "#/components/schemas/MuteFindingsReason"
45113+
description: The reason why the findings are muted or unmuted.
45114+
required:
45115+
- is_muted
45116+
- reason
45117+
type: object
45118+
MuteFindingsReason:
45119+
description: The reason why the findings are muted or unmuted.
45120+
enum:
45121+
- PENDING_FIX
45122+
- FALSE_POSITIVE
45123+
- OTHER
45124+
- NO_FIX
45125+
- DUPLICATE
45126+
- RISK_ACCEPTED
45127+
- NO_PENDING_FIX
45128+
- HUMAN_ERROR
45129+
- NO_LONGER_ACCEPTED_RISK
45130+
example: PENDING_FIX
45131+
type: string
45132+
x-enum-varnames:
45133+
- PENDING_FIX
45134+
- FALSE_POSITIVE
45135+
- OTHER
45136+
- NO_FIX
45137+
- DUPLICATE
45138+
- RISK_ACCEPTED
45139+
- NO_PENDING_FIX
45140+
- HUMAN_ERROR
45141+
- NO_LONGER_ACCEPTED_RISK
45142+
MuteFindingsRequest:
45143+
description: Request to mute or unmute security findings.
45144+
properties:
45145+
data:
45146+
$ref: "#/components/schemas/MuteFindingsRequestData"
45147+
required:
45148+
- data
45149+
type: object
45150+
MuteFindingsRequestData:
45151+
description: Data of the mute request.
45152+
properties:
45153+
attributes:
45154+
$ref: "#/components/schemas/MuteFindingsRequestDataAttributes"
45155+
id:
45156+
description: Unique identifier of the mute request.
45157+
example: "93bfeb70-af47-424d-908a-948d3f08e37f"
45158+
type: string
45159+
relationships:
45160+
$ref: "#/components/schemas/MuteFindingsRequestDataRelationships"
45161+
type:
45162+
$ref: "#/components/schemas/MuteDataType"
45163+
required:
45164+
- attributes
45165+
- relationships
45166+
- type
45167+
type: object
45168+
MuteFindingsRequestDataAttributes:
45169+
description: Attributes of the mute request.
45170+
properties:
45171+
mute:
45172+
$ref: "#/components/schemas/MuteFindingsMuteAttributes"
45173+
required:
45174+
- mute
45175+
type: object
45176+
MuteFindingsRequestDataRelationships:
45177+
description: Relationships of the mute request.
45178+
properties:
45179+
findings:
45180+
$ref: "#/components/schemas/Findings"
45181+
description: Security findings to mute or unmute.
45182+
required:
45183+
- findings
45184+
type: object
45185+
MuteFindingsResponse:
45186+
description: Response for the mute or unmute request.
45187+
properties:
45188+
data:
45189+
$ref: "#/components/schemas/MuteFindingsResponseData"
45190+
type: object
45191+
MuteFindingsResponseData:
45192+
description: Data of the mute response.
45193+
properties:
45194+
id:
45195+
description: Unique identifier of the mute request.
45196+
example: "93bfeb70-af47-424d-908a-948d3f08e37f"
45197+
type: string
45198+
type:
45199+
$ref: "#/components/schemas/MuteDataType"
45200+
required:
45201+
- type
45202+
- id
45203+
type: object
4508545204
NotebookCreateData:
4508645205
description: Notebook creation data
4508745206
properties:
@@ -119237,6 +119356,74 @@ paths:
119237119356
permissions:
119238119357
- security_monitoring_findings_write
119239119358
- appsec_vm_write
119359+
/api/v2/security/findings/mute:
119360+
patch:
119361+
description: >-
119362+
Mute or unmute security findings.
119363+
119364+
You can mute or unmute up to 100 security findings per request. The request body must include `is_muted` and `reason` attributes. The allowed reasons depend on whether the finding is being muted or unmuted:
119365+
- To mute a finding: `PENDING_FIX`, `FALSE_POSITIVE`, `OTHER`, `NO_FIX`, `DUPLICATE`, `RISK_ACCEPTED`.
119366+
- To unmute a finding: `NO_PENDING_FIX`, `HUMAN_ERROR`, `NO_LONGER_ACCEPTED_RISK`, `OTHER`.
119367+
operationId: MuteSecurityFindings
119368+
requestBody:
119369+
content:
119370+
application/json:
119371+
examples:
119372+
default:
119373+
value:
119374+
data:
119375+
attributes:
119376+
mute:
119377+
description: "To be resolved later."
119378+
expire_at: 1778721573794
119379+
is_muted: true
119380+
reason: "RISK_ACCEPTED"
119381+
relationships:
119382+
findings:
119383+
data:
119384+
- id: "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw=="
119385+
type: "findings"
119386+
type: "mute"
119387+
schema:
119388+
$ref: "#/components/schemas/MuteFindingsRequest"
119389+
required: true
119390+
responses:
119391+
"202":
119392+
content:
119393+
application/json:
119394+
schema:
119395+
$ref: "#/components/schemas/MuteFindingsResponse"
119396+
description: Accepted
119397+
"400":
119398+
$ref: "#/components/responses/BadRequestResponse"
119399+
"401":
119400+
$ref: "#/components/responses/UnauthorizedResponse"
119401+
"404":
119402+
$ref: "#/components/responses/NotFoundResponse"
119403+
"422":
119404+
content:
119405+
application/json:
119406+
schema:
119407+
$ref: "#/components/schemas/JSONAPIErrorResponse"
119408+
description: "Unprocessable Entity"
119409+
"429":
119410+
$ref: "#/components/responses/TooManyRequestsResponse"
119411+
security:
119412+
- apiKeyAuth: []
119413+
appKeyAuth: []
119414+
- AuthZ: []
119415+
summary: Mute or unmute security findings
119416+
tags:
119417+
- "Security Monitoring"
119418+
x-codegen-request-body-name: body
119419+
"x-permission":
119420+
operator: OR
119421+
permissions:
119422+
- security_monitoring_findings_write
119423+
- appsec_vm_write
119424+
x-unstable: |-
119425+
**Note**: This endpoint is in preview and is subject to change.
119426+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
119240119427
/api/v2/security/findings/search:
119241119428
post:
119242119429
description: |-
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Mute or unmute security findings returns "Accepted" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
6+
import com.datadog.api.client.v2.model.FindingData;
7+
import com.datadog.api.client.v2.model.FindingDataType;
8+
import com.datadog.api.client.v2.model.Findings;
9+
import com.datadog.api.client.v2.model.MuteDataType;
10+
import com.datadog.api.client.v2.model.MuteFindingsMuteAttributes;
11+
import com.datadog.api.client.v2.model.MuteFindingsReason;
12+
import com.datadog.api.client.v2.model.MuteFindingsRequest;
13+
import com.datadog.api.client.v2.model.MuteFindingsRequestData;
14+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataAttributes;
15+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataRelationships;
16+
import com.datadog.api.client.v2.model.MuteFindingsResponse;
17+
import java.util.Collections;
18+
19+
public class Example {
20+
public static void main(String[] args) {
21+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
22+
defaultClient.setUnstableOperationEnabled("v2.muteSecurityFindings", true);
23+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
24+
25+
MuteFindingsRequest body =
26+
new MuteFindingsRequest()
27+
.data(
28+
new MuteFindingsRequestData()
29+
.attributes(
30+
new MuteFindingsRequestDataAttributes()
31+
.mute(
32+
new MuteFindingsMuteAttributes()
33+
.description("To be resolved later.")
34+
.expireAt(1778721573794L)
35+
.isMuted(true)
36+
.reason(MuteFindingsReason.PENDING_FIX)))
37+
.id("93bfeb70-af47-424d-908a-948d3f08e37f")
38+
.relationships(
39+
new MuteFindingsRequestDataRelationships()
40+
.findings(
41+
new Findings()
42+
.data(
43+
Collections.singletonList(
44+
new FindingData()
45+
.id("ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==")
46+
.type(FindingDataType.FINDINGS)))))
47+
.type(MuteDataType.MUTE));
48+
49+
try {
50+
MuteFindingsResponse result = apiInstance.muteSecurityFindings(body);
51+
System.out.println(result);
52+
} catch (ApiException e) {
53+
System.err.println("Exception when calling SecurityMonitoringApi#muteSecurityFindings");
54+
System.err.println("Status code: " + e.getCode());
55+
System.err.println("Reason: " + e.getResponseBody());
56+
System.err.println("Response headers: " + e.getResponseHeaders());
57+
e.printStackTrace();
58+
}
59+
}
60+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// Unmute security findings returns "Accepted" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
6+
import com.datadog.api.client.v2.model.FindingData;
7+
import com.datadog.api.client.v2.model.FindingDataType;
8+
import com.datadog.api.client.v2.model.Findings;
9+
import com.datadog.api.client.v2.model.MuteDataType;
10+
import com.datadog.api.client.v2.model.MuteFindingsMuteAttributes;
11+
import com.datadog.api.client.v2.model.MuteFindingsReason;
12+
import com.datadog.api.client.v2.model.MuteFindingsRequest;
13+
import com.datadog.api.client.v2.model.MuteFindingsRequestData;
14+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataAttributes;
15+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataRelationships;
16+
import com.datadog.api.client.v2.model.MuteFindingsResponse;
17+
import java.util.Collections;
18+
19+
public class Example {
20+
public static void main(String[] args) {
21+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
22+
defaultClient.setUnstableOperationEnabled("v2.muteSecurityFindings", true);
23+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
24+
25+
MuteFindingsRequest body =
26+
new MuteFindingsRequest()
27+
.data(
28+
new MuteFindingsRequestData()
29+
.attributes(
30+
new MuteFindingsRequestDataAttributes()
31+
.mute(
32+
new MuteFindingsMuteAttributes()
33+
.description("Resolved.")
34+
.isMuted(false)
35+
.reason(MuteFindingsReason.NO_PENDING_FIX)))
36+
.relationships(
37+
new MuteFindingsRequestDataRelationships()
38+
.findings(
39+
new Findings()
40+
.data(
41+
Collections.singletonList(
42+
new FindingData()
43+
.id(
44+
"ZGVmLTAwMC0wYmd-MDE4NjcyMDJkMzE4MDE5ODY5MGE4ZmQ2MmFlMjg0Y2M=")
45+
.type(FindingDataType.FINDINGS)))))
46+
.type(MuteDataType.MUTE));
47+
48+
try {
49+
MuteFindingsResponse result = apiInstance.muteSecurityFindings(body);
50+
System.out.println(result);
51+
} catch (ApiException e) {
52+
System.err.println("Exception when calling SecurityMonitoringApi#muteSecurityFindings");
53+
System.err.println("Status code: " + e.getCode());
54+
System.err.println("Reason: " + e.getResponseBody());
55+
System.err.println("Response headers: " + e.getResponseHeaders());
56+
e.printStackTrace();
57+
}
58+
}
59+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Mute security findings returns "Accepted" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
6+
import com.datadog.api.client.v2.model.FindingData;
7+
import com.datadog.api.client.v2.model.FindingDataType;
8+
import com.datadog.api.client.v2.model.Findings;
9+
import com.datadog.api.client.v2.model.MuteDataType;
10+
import com.datadog.api.client.v2.model.MuteFindingsMuteAttributes;
11+
import com.datadog.api.client.v2.model.MuteFindingsReason;
12+
import com.datadog.api.client.v2.model.MuteFindingsRequest;
13+
import com.datadog.api.client.v2.model.MuteFindingsRequestData;
14+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataAttributes;
15+
import com.datadog.api.client.v2.model.MuteFindingsRequestDataRelationships;
16+
import com.datadog.api.client.v2.model.MuteFindingsResponse;
17+
import java.util.Collections;
18+
19+
public class Example {
20+
public static void main(String[] args) {
21+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
22+
defaultClient.setUnstableOperationEnabled("v2.muteSecurityFindings", true);
23+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
24+
25+
MuteFindingsRequest body =
26+
new MuteFindingsRequest()
27+
.data(
28+
new MuteFindingsRequestData()
29+
.attributes(
30+
new MuteFindingsRequestDataAttributes()
31+
.mute(
32+
new MuteFindingsMuteAttributes()
33+
.description("To be resolved later.")
34+
.expireAt(1778721573794L)
35+
.isMuted(true)
36+
.reason(MuteFindingsReason.RISK_ACCEPTED)))
37+
.relationships(
38+
new MuteFindingsRequestDataRelationships()
39+
.findings(
40+
new Findings()
41+
.data(
42+
Collections.singletonList(
43+
new FindingData()
44+
.id(
45+
"ZGVmLTAwMC0wYmd-MDE4NjcyMDJkMzE4MDE5ODY5MGE4ZmQ2MmFlMjg0Y2M=")
46+
.type(FindingDataType.FINDINGS)))))
47+
.type(MuteDataType.MUTE));
48+
49+
try {
50+
MuteFindingsResponse result = apiInstance.muteSecurityFindings(body);
51+
System.out.println(result);
52+
} catch (ApiException e) {
53+
System.err.println("Exception when calling SecurityMonitoringApi#muteSecurityFindings");
54+
System.err.println("Status code: " + e.getCode());
55+
System.err.println("Reason: " + e.getResponseBody());
56+
System.err.println("Response headers: " + e.getResponseHeaders());
57+
e.printStackTrace();
58+
}
59+
}
60+
}

src/main/java/com/datadog/api/client/ApiClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,7 @@ public class ApiClient {
858858
put("v2.listVulnerabilities", false);
859859
put("v2.listVulnerableAssets", false);
860860
put("v2.muteFindings", false);
861+
put("v2.muteSecurityFindings", false);
861862
put("v2.runHistoricalJob", false);
862863
put("v2.searchSecurityMonitoringHistsignals", false);
863864
put("v2.getCodeCoverageBranchSummary", false);

0 commit comments

Comments
 (0)