Skip to content

Commit a07129d

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 216c60c of spec repo
1 parent 8d11342 commit a07129d

File tree

7 files changed

+622
-0
lines changed

7 files changed

+622
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63779,6 +63779,65 @@ paths:
6377963779
tags:
6378063780
- Security Monitoring
6378163781
x-codegen-request-body-name: body
63782+
/api/v2/security_monitoring/configuration/suppressions/rules:
63783+
post:
63784+
description: Get the list of suppressions that would affect a rule.
63785+
operationId: GetSuppressionsAffectingFutureRule
63786+
requestBody:
63787+
content:
63788+
application/json:
63789+
schema:
63790+
$ref: '#/components/schemas/SecurityMonitoringRuleCreatePayload'
63791+
required: true
63792+
responses:
63793+
'200':
63794+
content:
63795+
application/json:
63796+
schema:
63797+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse'
63798+
description: OK
63799+
'400':
63800+
$ref: '#/components/responses/BadRequestResponse'
63801+
'403':
63802+
$ref: '#/components/responses/NotAuthorizedResponse'
63803+
'429':
63804+
$ref: '#/components/responses/TooManyRequestsResponse'
63805+
security:
63806+
- apiKeyAuth: []
63807+
appKeyAuth: []
63808+
- AuthZ:
63809+
- security_monitoring_suppressions_read
63810+
summary: Get suppressions affecting future rule
63811+
tags:
63812+
- Security Monitoring
63813+
/api/v2/security_monitoring/configuration/suppressions/rules/{rule_id}:
63814+
get:
63815+
description: Get the list of suppressions that affect a specific existing rule
63816+
by its ID.
63817+
operationId: GetSuppressionsAffectingRule
63818+
parameters:
63819+
- $ref: '#/components/parameters/SecurityMonitoringRuleID'
63820+
responses:
63821+
'200':
63822+
content:
63823+
application/json:
63824+
schema:
63825+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse'
63826+
description: OK
63827+
'403':
63828+
$ref: '#/components/responses/NotAuthorizedResponse'
63829+
'404':
63830+
$ref: '#/components/responses/NotFoundResponse'
63831+
'429':
63832+
$ref: '#/components/responses/TooManyRequestsResponse'
63833+
security:
63834+
- apiKeyAuth: []
63835+
appKeyAuth: []
63836+
- AuthZ:
63837+
- security_monitoring_suppressions_read
63838+
summary: Get suppressions affecting a specific rule
63839+
tags:
63840+
- Security Monitoring
6378263841
/api/v2/security_monitoring/configuration/suppressions/{suppression_id}:
6378363842
delete:
6378463843
description: Delete a specific suppression rule.
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
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.CalculatedField;
7+
import com.datadog.api.client.v2.model.CloudConfigurationComplianceRuleOptions;
8+
import com.datadog.api.client.v2.model.CloudConfigurationRegoRule;
9+
import com.datadog.api.client.v2.model.SecurityMonitoringFilter;
10+
import com.datadog.api.client.v2.model.SecurityMonitoringFilterAction;
11+
import com.datadog.api.client.v2.model.SecurityMonitoringReferenceTable;
12+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCreatePayload;
13+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleDetectionMethod;
14+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleEvaluationWindow;
15+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleHardcodedEvaluatorType;
16+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleImpossibleTravelOptions;
17+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleKeepAlive;
18+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleMaxSignalDuration;
19+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleNewValueOptions;
20+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleNewValueOptionsForgetAfter;
21+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleNewValueOptionsLearningDuration;
22+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleNewValueOptionsLearningMethod;
23+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleNewValueOptionsLearningThreshold;
24+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleOptions;
25+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleSeverity;
26+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleThirdPartyOptions;
27+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleTypeCreate;
28+
import com.datadog.api.client.v2.model.SecurityMonitoringSchedulingOptions;
29+
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleCreatePayload;
30+
import com.datadog.api.client.v2.model.SecurityMonitoringSuppressionsResponse;
31+
import com.datadog.api.client.v2.model.SecurityMonitoringThirdPartyRootQuery;
32+
import java.util.Arrays;
33+
import java.util.Collections;
34+
35+
public class Example {
36+
public static void main(String[] args) {
37+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
38+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
39+
40+
SecurityMonitoringRuleCreatePayload body =
41+
new SecurityMonitoringRuleCreatePayload(
42+
new SecurityMonitoringStandardRuleCreatePayload()
43+
.calculatedFields(
44+
Collections.singletonList(
45+
new CalculatedField()
46+
.expression("@request_end_timestamp - @request_start_timestamp")
47+
.name("response_time")))
48+
.filters(
49+
Collections.singletonList(
50+
new SecurityMonitoringFilter()
51+
.action(SecurityMonitoringFilterAction.REQUIRE)))
52+
.groupSignalsBy(Collections.singletonList("service"))
53+
.hasExtendedTitle(true)
54+
.isEnabled(true)
55+
.message("")
56+
.name("My security monitoring rule.")
57+
.options(
58+
new SecurityMonitoringRuleOptions()
59+
.complianceRuleOptions(
60+
new CloudConfigurationComplianceRuleOptions()
61+
.regoRule(
62+
new CloudConfigurationRegoRule()
63+
.policy(
64+
"""
65+
package datadog
66+
67+
import data.datadog.output as dd_output
68+
import future.keywords.contains
69+
import future.keywords.if
70+
import future.keywords.in
71+
72+
eval(resource) = "skip" if {
73+
# Logic that evaluates to true if the resource should be skipped
74+
true
75+
} else = "pass" {
76+
# Logic that evaluates to true if the resource is compliant
77+
true
78+
} else = "fail" {
79+
# Logic that evaluates to true if the resource is not compliant
80+
true
81+
}
82+
83+
# This part remains unchanged for all rules
84+
results contains result if {
85+
some resource in input.resources[input.main_resource_type]
86+
result := dd_output.format(resource, eval(resource))
87+
}
88+
89+
""")
90+
.resourceTypes(
91+
Arrays.asList(
92+
"gcp_iam_service_account", "gcp_iam_policy")))
93+
.resourceType("aws_acm"))
94+
.decreaseCriticalityBasedOnEnv(false)
95+
.detectionMethod(SecurityMonitoringRuleDetectionMethod.THRESHOLD)
96+
.evaluationWindow(SecurityMonitoringRuleEvaluationWindow.ZERO_MINUTES)
97+
.hardcodedEvaluatorType(
98+
SecurityMonitoringRuleHardcodedEvaluatorType.LOG4SHELL)
99+
.impossibleTravelOptions(
100+
new SecurityMonitoringRuleImpossibleTravelOptions()
101+
.baselineUserLocations(true))
102+
.keepAlive(SecurityMonitoringRuleKeepAlive.ZERO_MINUTES)
103+
.maxSignalDuration(SecurityMonitoringRuleMaxSignalDuration.ZERO_MINUTES)
104+
.newValueOptions(
105+
new SecurityMonitoringRuleNewValueOptions()
106+
.forgetAfter(
107+
SecurityMonitoringRuleNewValueOptionsForgetAfter.ONE_DAY)
108+
.learningDuration(
109+
SecurityMonitoringRuleNewValueOptionsLearningDuration.ZERO_DAYS)
110+
.learningMethod(
111+
SecurityMonitoringRuleNewValueOptionsLearningMethod.DURATION)
112+
.learningThreshold(
113+
SecurityMonitoringRuleNewValueOptionsLearningThreshold
114+
.ZERO_OCCURRENCES))
115+
.thirdPartyRuleOptions(
116+
new SecurityMonitoringRuleThirdPartyOptions()
117+
.defaultStatus(SecurityMonitoringRuleSeverity.CRITICAL)
118+
.rootQueries(
119+
Collections.singletonList(
120+
new SecurityMonitoringThirdPartyRootQuery()
121+
.query("source:cloudtrail")))))
122+
.referenceTables(Collections.singletonList(new SecurityMonitoringReferenceTable()))
123+
.schedulingOptions(
124+
new SecurityMonitoringSchedulingOptions()
125+
.rrule("FREQ=HOURLY;INTERVAL=1;")
126+
.start("2025-07-14T12:00:00")
127+
.timezone("America/New_York"))
128+
.tags(Arrays.asList("env:prod", "team:security"))
129+
.type(SecurityMonitoringRuleTypeCreate.API_SECURITY));
130+
131+
try {
132+
SecurityMonitoringSuppressionsResponse result =
133+
apiInstance.getSuppressionsAffectingFutureRule(body);
134+
System.out.println(result);
135+
} catch (ApiException e) {
136+
System.err.println(
137+
"Exception when calling SecurityMonitoringApi#getSuppressionsAffectingFutureRule");
138+
System.err.println("Status code: " + e.getCode());
139+
System.err.println("Reason: " + e.getResponseBody());
140+
System.err.println("Response headers: " + e.getResponseHeaders());
141+
e.printStackTrace();
142+
}
143+
}
144+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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+
try {
14+
SecurityMonitoringSuppressionsResponse result =
15+
apiInstance.getSuppressionsAffectingRule("rule_id");
16+
System.out.println(result);
17+
} catch (ApiException e) {
18+
System.err.println(
19+
"Exception when calling SecurityMonitoringApi#getSuppressionsAffectingRule");
20+
System.err.println("Status code: " + e.getCode());
21+
System.err.println("Reason: " + e.getResponseBody());
22+
System.err.println("Response headers: " + e.getResponseHeaders());
23+
e.printStackTrace();
24+
}
25+
}
26+
}

0 commit comments

Comments
 (0)