Skip to content

Commit c2a46d0

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit fedf388 of spec repo
1 parent 289ffb9 commit c2a46d0

9 files changed

+138
-12
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "214381f",
3-
"generated": "2025-07-17 15:38:05.086"
2+
"spec_repo_commit": "fedf388",
3+
"generated": "2025-07-17 17:41:29.030"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34133,9 +34133,22 @@ components:
3413334133
format: int64
3413434134
minimum: 0
3413534135
type: integer
34136+
flaggedIPType:
34137+
$ref: '#/components/schemas/SecurityMonitoringRuleCaseActionOptionsFlaggedIPType'
3413634138
userBehaviorName:
3413734139
$ref: '#/components/schemas/SecurityMonitoringRuleCaseActionOptionsUserBehaviorName'
3413834140
type: object
34141+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType:
34142+
description: Used with the case action of type 'flag_ip'. The value specified
34143+
in this field is applied as a flag to the IP addresses.
34144+
enum:
34145+
- SUSPICIOUS
34146+
- FLAGGED
34147+
example: FLAGGED
34148+
type: string
34149+
x-enum-varnames:
34150+
- SUSPICIOUS
34151+
- FLAGGED
3413934152
SecurityMonitoringRuleCaseActionOptionsUserBehaviorName:
3414034153
description: Used with the case action of type 'user_behavior'. The value specified
3414134154
in this field is applied as a risk tag to all users affected by the rule.
@@ -34146,11 +34159,13 @@ components:
3414634159
- block_ip
3414734160
- block_user
3414834161
- user_behavior
34162+
- flag_ip
3414934163
type: string
3415034164
x-enum-varnames:
3415134165
- BLOCK_IP
3415234166
- BLOCK_USER
3415334167
- USER_BEHAVIOR
34168+
- FLAG_IP
3415434169
SecurityMonitoringRuleCaseCreate:
3415534170
description: Case when signal is generated.
3415634171
properties:

examples/v2/security-monitoring/CreateSecurityMonitoringRule_1965169892.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
66
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseAction;
77
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseActionOptions;
8+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseActionOptionsFlaggedIPType;
89
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseActionType;
910
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseCreate;
1011
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCreatePayload;
@@ -55,7 +56,14 @@ public static void main(String[] args) {
5556
.type(SecurityMonitoringRuleCaseActionType.USER_BEHAVIOR)
5657
.options(
5758
new SecurityMonitoringRuleCaseActionOptions()
58-
.userBehaviorName("behavior"))))))
59+
.userBehaviorName("behavior")),
60+
new SecurityMonitoringRuleCaseAction()
61+
.type(SecurityMonitoringRuleCaseActionType.FLAG_IP)
62+
.options(
63+
new SecurityMonitoringRuleCaseActionOptions()
64+
.flaggedIpType(
65+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType
66+
.FLAGGED))))))
5967
.options(
6068
new SecurityMonitoringRuleOptions()
6169
.keepAlive(SecurityMonitoringRuleKeepAlive.ONE_HOUR)

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

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
/** Options for the rule action */
2020
@JsonPropertyOrder({
2121
SecurityMonitoringRuleCaseActionOptions.JSON_PROPERTY_DURATION,
22+
SecurityMonitoringRuleCaseActionOptions.JSON_PROPERTY_FLAGGED_IP_TYPE,
2223
SecurityMonitoringRuleCaseActionOptions.JSON_PROPERTY_USER_BEHAVIOR_NAME
2324
})
2425
@jakarta.annotation.Generated(
@@ -28,6 +29,9 @@ public class SecurityMonitoringRuleCaseActionOptions {
2829
public static final String JSON_PROPERTY_DURATION = "duration";
2930
private Long duration;
3031

32+
public static final String JSON_PROPERTY_FLAGGED_IP_TYPE = "flaggedIPType";
33+
private SecurityMonitoringRuleCaseActionOptionsFlaggedIPType flaggedIpType;
34+
3135
public static final String JSON_PROPERTY_USER_BEHAVIOR_NAME = "userBehaviorName";
3236
private String userBehaviorName;
3337

@@ -52,6 +56,33 @@ public void setDuration(Long duration) {
5256
this.duration = duration;
5357
}
5458

59+
public SecurityMonitoringRuleCaseActionOptions flaggedIpType(
60+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType flaggedIpType) {
61+
this.flaggedIpType = flaggedIpType;
62+
this.unparsed |= !flaggedIpType.isValid();
63+
return this;
64+
}
65+
66+
/**
67+
* Used with the case action of type 'flag_ip'. The value specified in this field is applied as a
68+
* flag to the IP addresses.
69+
*
70+
* @return flaggedIpType
71+
*/
72+
@jakarta.annotation.Nullable
73+
@JsonProperty(JSON_PROPERTY_FLAGGED_IP_TYPE)
74+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
75+
public SecurityMonitoringRuleCaseActionOptionsFlaggedIPType getFlaggedIpType() {
76+
return flaggedIpType;
77+
}
78+
79+
public void setFlaggedIpType(SecurityMonitoringRuleCaseActionOptionsFlaggedIPType flaggedIpType) {
80+
if (!flaggedIpType.isValid()) {
81+
this.unparsed = true;
82+
}
83+
this.flaggedIpType = flaggedIpType;
84+
}
85+
5586
public SecurityMonitoringRuleCaseActionOptions userBehaviorName(String userBehaviorName) {
5687
this.userBehaviorName = userBehaviorName;
5788
return this;
@@ -132,6 +163,7 @@ public boolean equals(Object o) {
132163
SecurityMonitoringRuleCaseActionOptions securityMonitoringRuleCaseActionOptions =
133164
(SecurityMonitoringRuleCaseActionOptions) o;
134165
return Objects.equals(this.duration, securityMonitoringRuleCaseActionOptions.duration)
166+
&& Objects.equals(this.flaggedIpType, securityMonitoringRuleCaseActionOptions.flaggedIpType)
135167
&& Objects.equals(
136168
this.userBehaviorName, securityMonitoringRuleCaseActionOptions.userBehaviorName)
137169
&& Objects.equals(
@@ -141,14 +173,15 @@ public boolean equals(Object o) {
141173

142174
@Override
143175
public int hashCode() {
144-
return Objects.hash(duration, userBehaviorName, additionalProperties);
176+
return Objects.hash(duration, flaggedIpType, userBehaviorName, additionalProperties);
145177
}
146178

147179
@Override
148180
public String toString() {
149181
StringBuilder sb = new StringBuilder();
150182
sb.append("class SecurityMonitoringRuleCaseActionOptions {\n");
151183
sb.append(" duration: ").append(toIndentedString(duration)).append("\n");
184+
sb.append(" flaggedIpType: ").append(toIndentedString(flaggedIpType)).append("\n");
152185
sb.append(" userBehaviorName: ").append(toIndentedString(userBehaviorName)).append("\n");
153186
sb.append(" additionalProperties: ")
154187
.append(toIndentedString(additionalProperties))
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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+
/**
22+
* Used with the case action of type 'flag_ip'. The value specified in this field is applied as a
23+
* flag to the IP addresses.
24+
*/
25+
@JsonSerialize(
26+
using =
27+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType
28+
.SecurityMonitoringRuleCaseActionOptionsFlaggedIPTypeSerializer.class)
29+
public class SecurityMonitoringRuleCaseActionOptionsFlaggedIPType extends ModelEnum<String> {
30+
31+
private static final Set<String> allowedValues =
32+
new HashSet<String>(Arrays.asList("SUSPICIOUS", "FLAGGED"));
33+
34+
public static final SecurityMonitoringRuleCaseActionOptionsFlaggedIPType SUSPICIOUS =
35+
new SecurityMonitoringRuleCaseActionOptionsFlaggedIPType("SUSPICIOUS");
36+
public static final SecurityMonitoringRuleCaseActionOptionsFlaggedIPType FLAGGED =
37+
new SecurityMonitoringRuleCaseActionOptionsFlaggedIPType("FLAGGED");
38+
39+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType(String value) {
40+
super(value, allowedValues);
41+
}
42+
43+
public static class SecurityMonitoringRuleCaseActionOptionsFlaggedIPTypeSerializer
44+
extends StdSerializer<SecurityMonitoringRuleCaseActionOptionsFlaggedIPType> {
45+
public SecurityMonitoringRuleCaseActionOptionsFlaggedIPTypeSerializer(
46+
Class<SecurityMonitoringRuleCaseActionOptionsFlaggedIPType> t) {
47+
super(t);
48+
}
49+
50+
public SecurityMonitoringRuleCaseActionOptionsFlaggedIPTypeSerializer() {
51+
this(null);
52+
}
53+
54+
@Override
55+
public void serialize(
56+
SecurityMonitoringRuleCaseActionOptionsFlaggedIPType value,
57+
JsonGenerator jgen,
58+
SerializerProvider provider)
59+
throws IOException, JsonProcessingException {
60+
jgen.writeObject(value.value);
61+
}
62+
}
63+
64+
@JsonCreator
65+
public static SecurityMonitoringRuleCaseActionOptionsFlaggedIPType fromValue(String value) {
66+
return new SecurityMonitoringRuleCaseActionOptionsFlaggedIPType(value);
67+
}
68+
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@
2525
public class SecurityMonitoringRuleCaseActionType extends ModelEnum<String> {
2626

2727
private static final Set<String> allowedValues =
28-
new HashSet<String>(Arrays.asList("block_ip", "block_user", "user_behavior"));
28+
new HashSet<String>(Arrays.asList("block_ip", "block_user", "user_behavior", "flag_ip"));
2929

3030
public static final SecurityMonitoringRuleCaseActionType BLOCK_IP =
3131
new SecurityMonitoringRuleCaseActionType("block_ip");
3232
public static final SecurityMonitoringRuleCaseActionType BLOCK_USER =
3333
new SecurityMonitoringRuleCaseActionType("block_user");
3434
public static final SecurityMonitoringRuleCaseActionType USER_BEHAVIOR =
3535
new SecurityMonitoringRuleCaseActionType("user_behavior");
36+
public static final SecurityMonitoringRuleCaseActionType FLAG_IP =
37+
new SecurityMonitoringRuleCaseActionType("flag_ip");
3638

3739
SecurityMonitoringRuleCaseActionType(String value) {
3840
super(value, allowedValues);
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025-04-09T15:02:05.047Z
1+
2025-07-17T10:35:24.061Z

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"httpRequest": {
44
"body": {
55
"type": "JSON",
6-
"json": "{\"cases\":[{\"actions\":[{\"options\":{\"duration\":900},\"type\":\"block_ip\"},{\"options\":{\"userBehaviorName\":\"behavior\"},\"type\":\"user_behavior\"}],\"condition\":\"a > 100000\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"groupSignalsBy\":[\"service\"],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_application_security_returns_OK_response-1744210925_appsec_rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[\"service\",\"@http.client_ip\"],\"query\":\"@appsec.security_activity:business_logic.users.login.failure\"}],\"tags\":[],\"type\":\"application_security\"}"
6+
"json": "{\"cases\":[{\"actions\":[{\"options\":{\"duration\":900},\"type\":\"block_ip\"},{\"options\":{\"userBehaviorName\":\"behavior\"},\"type\":\"user_behavior\"},{\"options\":{\"flaggedIPType\":\"FLAGGED\"},\"type\":\"flag_ip\"}],\"condition\":\"a > 100000\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"groupSignalsBy\":[\"service\"],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_application_security_returns_OK_response-1752748524_appsec_rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[\"service\",\"@http.client_ip\"],\"query\":\"@appsec.security_activity:business_logic.users.login.failure\"}],\"tags\":[],\"type\":\"application_security\"}"
77
},
88
"headers": {},
99
"method": "POST",
@@ -12,7 +12,7 @@
1212
"secure": true
1313
},
1414
"httpResponse": {
15-
"body": "{\"name\":\"Test-Create_a_detection_rule_with_type_application_security_returns_OK_response-1744210925_appsec_rule\",\"createdAt\":1744210925675,\"isDefault\":false,\"isPartner\":false,\"isEnabled\":true,\"isBeta\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"@appsec.security_activity:business_logic.users.login.failure\",\"groupByFields\":[\"service\",\"@http.client_ip\"],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"dataSource\":\"app_sec_spans\"}],\"options\":{\"evaluationWindow\":900,\"detectionMethod\":\"threshold\",\"maxSignalDuration\":86400,\"keepAlive\":3600},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[],\"condition\":\"a \\u003e 100000\",\"actions\":[{\"type\":\"block_ip\",\"options\":{\"duration\":900}},{\"type\":\"user_behavior\",\"options\":{\"userBehaviorName\":\"behavior\"}}]}],\"message\":\"Test rule\",\"tags\":[],\"hasExtendedTitle\":false,\"type\":\"application_security\",\"filters\":[],\"version\":1,\"id\":\"lfr-zxg-fyc\",\"blocking\":true,\"groupSignalsBy\":[\"service\"],\"dependencies\":[\"business_logic.users.login.failure\"],\"metadata\":{\"entities\":null,\"sources\":null},\"creationAuthorId\":2320499,\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"updater\":{\"handle\":\"\",\"name\":\"\"}}",
15+
"body": "{\"name\":\"Test-Create_a_detection_rule_with_type_application_security_returns_OK_response-1752748524_appsec_rule\",\"createdAt\":1752748524806,\"isDefault\":false,\"isPartner\":false,\"isEnabled\":true,\"isBeta\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"@appsec.security_activity:business_logic.users.login.failure\",\"groupByFields\":[\"service\",\"@http.client_ip\"],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"dataSource\":\"app_sec_spans\"}],\"options\":{\"evaluationWindow\":900,\"detectionMethod\":\"threshold\",\"maxSignalDuration\":86400,\"keepAlive\":3600},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[],\"condition\":\"a \\u003e 100000\",\"actions\":[{\"type\":\"block_ip\",\"options\":{\"duration\":900}},{\"type\":\"user_behavior\",\"options\":{\"userBehaviorName\":\"behavior\"}},{\"type\":\"flag_ip\",\"options\":{\"flaggedIPType\":\"FLAGGED\"}}]}],\"message\":\"Test rule\",\"tags\":[],\"hasExtendedTitle\":false,\"type\":\"application_security\",\"filters\":[],\"version\":1,\"id\":\"wgo-lgy-ajy\",\"blocking\":true,\"groupSignalsBy\":[\"service\"],\"dependencies\":[\"business_logic.users.login.failure\"],\"metadata\":{\"entities\":null,\"sources\":null},\"creationAuthorId\":2320499,\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"updater\":{\"handle\":\"\",\"name\":\"\"}}",
1616
"headers": {
1717
"Content-Type": [
1818
"application/json"
@@ -27,13 +27,13 @@
2727
"timeToLive": {
2828
"unlimited": true
2929
},
30-
"id": "2f689fb3-a0a5-4f45-bf36-37e6331a9f25"
30+
"id": "29eb6c54-9b50-360b-d2c3-8ca9462c0177"
3131
},
3232
{
3333
"httpRequest": {
3434
"headers": {},
3535
"method": "DELETE",
36-
"path": "/api/v2/security_monitoring/rules/lfr-zxg-fyc",
36+
"path": "/api/v2/security_monitoring/rules/wgo-lgy-ajy",
3737
"keepAlive": false,
3838
"secure": true
3939
},
@@ -48,6 +48,6 @@
4848
"timeToLive": {
4949
"unlimited": true
5050
},
51-
"id": "a32045c8-5c74-ebb2-99fe-6584f15ea321"
51+
"id": "eaf198f3-1c33-3ac3-09eb-713901fb969e"
5252
}
5353
]

src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ Feature: Security Monitoring
225225
@skip-validation @team:DataDog/k9-cloud-security-platform
226226
Scenario: Create a detection rule with type 'application_security 'returns "OK" response
227227
Given new "CreateSecurityMonitoringRule" request
228-
And body with value {"type":"application_security","name":"{{unique}}_appsec_rule","queries":[{"query":"@appsec.security_activity:business_logic.users.login.failure","aggregation":"count","groupByFields":["service","@http.client_ip"],"distinctFields":[]}],"filters":[],"cases":[{"name":"","status":"info","notifications":[],"condition":"a > 100000","actions":[{"type":"block_ip","options":{"duration":900}}, {"type":"user_behavior","options":{"userBehaviorName":"behavior"}}]}],"options":{"keepAlive":3600,"maxSignalDuration":86400,"evaluationWindow":900,"detectionMethod":"threshold"},"isEnabled":true,"message":"Test rule","tags":[],"groupSignalsBy":["service"]}
228+
And body with value {"type":"application_security","name":"{{unique}}_appsec_rule","queries":[{"query":"@appsec.security_activity:business_logic.users.login.failure","aggregation":"count","groupByFields":["service","@http.client_ip"],"distinctFields":[]}],"filters":[],"cases":[{"name":"","status":"info","notifications":[],"condition":"a > 100000","actions":[{"type":"block_ip","options":{"duration":900}}, {"type":"user_behavior","options":{"userBehaviorName":"behavior"}}, {"type":"flag_ip","options":{"flaggedIPType":"FLAGGED"}}]}],"options":{"keepAlive":3600,"maxSignalDuration":86400,"evaluationWindow":900,"detectionMethod":"threshold"},"isEnabled":true,"message":"Test rule","tags":[],"groupSignalsBy":["service"]}
229229
When the request is sent
230230
Then the response status is 200 OK
231231
And the response "name" is equal to "{{ unique }}_appsec_rule"

0 commit comments

Comments
 (0)