Skip to content

Commit 406068c

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Security Monitoring - Related Suppressions for a Rule (#3103)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 3e06752 commit 406068c

15 files changed

+676
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64757,6 +64757,65 @@ paths:
6475764757
tags:
6475864758
- Security Monitoring
6475964759
x-codegen-request-body-name: body
64760+
/api/v2/security_monitoring/configuration/suppressions/rules:
64761+
post:
64762+
description: Get the list of suppressions that would affect a rule.
64763+
operationId: GetSuppressionsAffectingFutureRule
64764+
requestBody:
64765+
content:
64766+
application/json:
64767+
schema:
64768+
$ref: '#/components/schemas/SecurityMonitoringRuleCreatePayload'
64769+
required: true
64770+
responses:
64771+
'200':
64772+
content:
64773+
application/json:
64774+
schema:
64775+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse'
64776+
description: OK
64777+
'400':
64778+
$ref: '#/components/responses/BadRequestResponse'
64779+
'403':
64780+
$ref: '#/components/responses/NotAuthorizedResponse'
64781+
'429':
64782+
$ref: '#/components/responses/TooManyRequestsResponse'
64783+
security:
64784+
- apiKeyAuth: []
64785+
appKeyAuth: []
64786+
- AuthZ:
64787+
- security_monitoring_suppressions_read
64788+
summary: Get suppressions affecting future rule
64789+
tags:
64790+
- Security Monitoring
64791+
/api/v2/security_monitoring/configuration/suppressions/rules/{rule_id}:
64792+
get:
64793+
description: Get the list of suppressions that affect a specific existing rule
64794+
by its ID.
64795+
operationId: GetSuppressionsAffectingRule
64796+
parameters:
64797+
- $ref: '#/components/parameters/SecurityMonitoringRuleID'
64798+
responses:
64799+
'200':
64800+
content:
64801+
application/json:
64802+
schema:
64803+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse'
64804+
description: OK
64805+
'403':
64806+
$ref: '#/components/responses/NotAuthorizedResponse'
64807+
'404':
64808+
$ref: '#/components/responses/NotFoundResponse'
64809+
'429':
64810+
$ref: '#/components/responses/TooManyRequestsResponse'
64811+
security:
64812+
- apiKeyAuth: []
64813+
appKeyAuth: []
64814+
- AuthZ:
64815+
- security_monitoring_suppressions_read
64816+
summary: Get suppressions affecting a specific rule
64817+
tags:
64818+
- Security Monitoring
6476064819
/api/v2/security_monitoring/configuration/suppressions/{suppression_id}:
6476164820
delete:
6476264821
description: Delete a specific suppression rule.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// Get suppressions affecting future rule returns "OK" 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.SecurityMonitoringRuleCaseCreate;
7+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCreatePayload;
8+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleEvaluationWindow;
9+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleKeepAlive;
10+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleMaxSignalDuration;
11+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleOptions;
12+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleQueryAggregation;
13+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleSeverity;
14+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleTypeCreate;
15+
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleCreatePayload;
16+
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleQuery;
17+
import com.datadog.api.client.v2.model.SecurityMonitoringSuppressionsResponse;
18+
import java.util.Collections;
19+
20+
public class Example {
21+
public static void main(String[] args) {
22+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
23+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
24+
25+
SecurityMonitoringRuleCreatePayload body =
26+
new SecurityMonitoringRuleCreatePayload(
27+
new SecurityMonitoringStandardRuleCreatePayload()
28+
.name("Example-Security-Monitoring")
29+
.queries(
30+
Collections.singletonList(
31+
new SecurityMonitoringStandardRuleQuery()
32+
.query("@test:true")
33+
.aggregation(SecurityMonitoringRuleQueryAggregation.COUNT)))
34+
.cases(
35+
Collections.singletonList(
36+
new SecurityMonitoringRuleCaseCreate()
37+
.name("")
38+
.status(SecurityMonitoringRuleSeverity.INFO)
39+
.condition("a > 0")))
40+
.options(
41+
new SecurityMonitoringRuleOptions()
42+
.evaluationWindow(SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES)
43+
.keepAlive(SecurityMonitoringRuleKeepAlive.ONE_HOUR)
44+
.maxSignalDuration(SecurityMonitoringRuleMaxSignalDuration.ONE_DAY))
45+
.message("Test rule")
46+
.isEnabled(true)
47+
.type(SecurityMonitoringRuleTypeCreate.LOG_DETECTION));
48+
49+
try {
50+
SecurityMonitoringSuppressionsResponse result =
51+
apiInstance.getSuppressionsAffectingFutureRule(body);
52+
System.out.println(result);
53+
} catch (ApiException e) {
54+
System.err.println(
55+
"Exception when calling SecurityMonitoringApi#getSuppressionsAffectingFutureRule");
56+
System.err.println("Status code: " + e.getCode());
57+
System.err.println("Reason: " + e.getResponseBody());
58+
System.err.println("Response headers: " + e.getResponseHeaders());
59+
e.printStackTrace();
60+
}
61+
}
62+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Get suppressions affecting a specific rule returns "OK" 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.SecurityMonitoringSuppressionsResponse;
7+
8+
public class Example {
9+
public static void main(String[] args) {
10+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
11+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
12+
13+
// there is a valid "security_rule" in the system
14+
String SECURITY_RULE_ID = System.getenv("SECURITY_RULE_ID");
15+
16+
try {
17+
SecurityMonitoringSuppressionsResponse result =
18+
apiInstance.getSuppressionsAffectingRule(SECURITY_RULE_ID);
19+
System.out.println(result);
20+
} catch (ApiException e) {
21+
System.err.println(
22+
"Exception when calling SecurityMonitoringApi#getSuppressionsAffectingRule");
23+
System.err.println("Status code: " + e.getCode());
24+
System.err.println("Reason: " + e.getResponseBody());
25+
System.err.println("Response headers: " + e.getResponseHeaders());
26+
e.printStackTrace();
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)