Skip to content

Commit 6bac501

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit ccc8320 of spec repo
1 parent 5c3491d commit 6bac501

12 files changed

+632
-4
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": "35630f3",
3-
"generated": "2025-08-01 18:18:42.211"
2+
"spec_repo_commit": "ccc8320",
3+
"generated": "2025-08-04 12:19:04.561"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36339,6 +36339,27 @@ components:
3633936339
- $ref: '#/components/schemas/SecurityMonitoringStandardRulePayload'
3634036340
- $ref: '#/components/schemas/SecurityMonitoringSignalRulePayload'
3634136341
- $ref: '#/components/schemas/CloudConfigurationRulePayload'
36342+
SecurityMonitoringSchedulingOptions:
36343+
description: Options for scheduled rules. When this field is present, the rule
36344+
runs based on the schedule. When absent, it runs real-time on ingested logs.
36345+
nullable: true
36346+
properties:
36347+
rrule:
36348+
description: Schedule for the rule queries, written in RRULE syntax. See
36349+
[RFC](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html)
36350+
for syntax reference.
36351+
example: FREQ=HOURLY;INTERVAL=1;
36352+
type: string
36353+
start:
36354+
description: Start date for the schedule, in ISO 8601 format without timezone.
36355+
example: '2025-07-14T12:00:00'
36356+
type: string
36357+
timezone:
36358+
description: Time zone of the start date, in the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
36359+
format.
36360+
example: America/New_York
36361+
type: string
36362+
type: object
3634236363
SecurityMonitoringSignal:
3634336364
description: Object description of a security signal.
3634436365
properties:
@@ -37017,6 +37038,12 @@ components:
3701737038
SecurityMonitoringStandardRuleCreatePayload:
3701837039
description: Create a new rule.
3701937040
properties:
37041+
calculatedFields:
37042+
description: Calculated fields. Only allowed for scheduled rules - in other
37043+
words, when schedulingOptions is also defined.
37044+
items:
37045+
$ref: '#/components/schemas/CalculatedField'
37046+
type: array
3702037047
cases:
3702137048
description: Cases for generating signals.
3702237049
example: []
@@ -37069,6 +37096,8 @@ components:
3706937096
items:
3707037097
$ref: '#/components/schemas/SecurityMonitoringReferenceTable'
3707137098
type: array
37099+
schedulingOptions:
37100+
$ref: '#/components/schemas/SecurityMonitoringSchedulingOptions'
3707237101
tags:
3707337102
description: Tags for generated signals.
3707437103
example:
@@ -37214,6 +37243,14 @@ components:
3721437243
example: false
3721537244
readOnly: true
3721637245
type: boolean
37246+
index:
37247+
description: '**This field is currently unstable and might be removed in
37248+
a minor version upgrade.**
37249+
37250+
The index to run the query on, if the `dataSource` is `logs`. Only used
37251+
for scheduled rules - in other words, when the `schedulingOptions` field
37252+
is present in the rule payload.'
37253+
type: string
3721737254
metric:
3721837255
deprecated: true
3721937256
description: '(Deprecated) The target field to aggregate over when using
@@ -37241,6 +37278,12 @@ components:
3724137278
SecurityMonitoringStandardRuleResponse:
3724237279
description: Rule.
3724337280
properties:
37281+
calculatedFields:
37282+
description: Calculated fields. Only allowed for scheduled rules - in other
37283+
words, when schedulingOptions is also defined.
37284+
items:
37285+
$ref: '#/components/schemas/CalculatedField'
37286+
type: array
3724437287
cases:
3724537288
description: Cases for generating signals.
3724637289
items:
@@ -37326,6 +37369,8 @@ components:
3732637369
items:
3732737370
$ref: '#/components/schemas/SecurityMonitoringReferenceTable'
3732837371
type: array
37372+
schedulingOptions:
37373+
$ref: '#/components/schemas/SecurityMonitoringSchedulingOptions'
3732937374
tags:
3733037375
description: Tags for generated signals.
3733137376
items:
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// Create a scheduled detection 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.SecurityMonitoringRuleResponse;
14+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleSeverity;
15+
import com.datadog.api.client.v2.model.SecurityMonitoringRuleTypeCreate;
16+
import com.datadog.api.client.v2.model.SecurityMonitoringSchedulingOptions;
17+
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleCreatePayload;
18+
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleQuery;
19+
import java.util.Collections;
20+
21+
public class Example {
22+
public static void main(String[] args) {
23+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
24+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
25+
26+
SecurityMonitoringRuleCreatePayload body =
27+
new SecurityMonitoringRuleCreatePayload(
28+
new SecurityMonitoringStandardRuleCreatePayload()
29+
.name("Example-Security-Monitoring")
30+
.queries(
31+
Collections.singletonList(
32+
new SecurityMonitoringStandardRuleQuery()
33+
.query("@test:true")
34+
.aggregation(SecurityMonitoringRuleQueryAggregation.COUNT)
35+
.index("main")))
36+
.cases(
37+
Collections.singletonList(
38+
new SecurityMonitoringRuleCaseCreate()
39+
.name("")
40+
.status(SecurityMonitoringRuleSeverity.INFO)
41+
.condition("a > 0")))
42+
.options(
43+
new SecurityMonitoringRuleOptions()
44+
.evaluationWindow(SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES)
45+
.keepAlive(SecurityMonitoringRuleKeepAlive.ONE_HOUR)
46+
.maxSignalDuration(SecurityMonitoringRuleMaxSignalDuration.ONE_DAY))
47+
.message("Test rule")
48+
.isEnabled(true)
49+
.type(SecurityMonitoringRuleTypeCreate.LOG_DETECTION)
50+
.schedulingOptions(
51+
new SecurityMonitoringSchedulingOptions()
52+
.rrule("FREQ=HOURLY;INTERVAL=2;")
53+
.start("2025-06-18T12:00:00")
54+
.timezone("Europe/Paris")));
55+
56+
try {
57+
SecurityMonitoringRuleResponse result = apiInstance.createSecurityMonitoringRule(body);
58+
System.out.println(result);
59+
} catch (ApiException e) {
60+
System.err.println(
61+
"Exception when calling SecurityMonitoringApi#createSecurityMonitoringRule");
62+
System.err.println("Status code: " + e.getCode());
63+
System.err.println("Reason: " + e.getResponseBody());
64+
System.err.println("Response headers: " + e.getResponseHeaders());
65+
e.printStackTrace();
66+
}
67+
}
68+
}
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
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.fasterxml.jackson.annotation.JsonAnyGetter;
10+
import com.fasterxml.jackson.annotation.JsonAnySetter;
11+
import com.fasterxml.jackson.annotation.JsonIgnore;
12+
import com.fasterxml.jackson.annotation.JsonInclude;
13+
import com.fasterxml.jackson.annotation.JsonProperty;
14+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
15+
import java.util.HashMap;
16+
import java.util.Map;
17+
import java.util.Objects;
18+
19+
/**
20+
* Options for scheduled rules. When this field is present, the rule runs based on the schedule.
21+
* When absent, it runs real-time on ingested logs.
22+
*/
23+
@JsonPropertyOrder({
24+
SecurityMonitoringSchedulingOptions.JSON_PROPERTY_RRULE,
25+
SecurityMonitoringSchedulingOptions.JSON_PROPERTY_START,
26+
SecurityMonitoringSchedulingOptions.JSON_PROPERTY_TIMEZONE
27+
})
28+
@jakarta.annotation.Generated(
29+
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
30+
public class SecurityMonitoringSchedulingOptions {
31+
@JsonIgnore public boolean unparsed = false;
32+
public static final String JSON_PROPERTY_RRULE = "rrule";
33+
private String rrule;
34+
35+
public static final String JSON_PROPERTY_START = "start";
36+
private String start;
37+
38+
public static final String JSON_PROPERTY_TIMEZONE = "timezone";
39+
private String timezone;
40+
41+
public SecurityMonitoringSchedulingOptions rrule(String rrule) {
42+
this.rrule = rrule;
43+
return this;
44+
}
45+
46+
/**
47+
* Schedule for the rule queries, written in RRULE syntax. See <a
48+
* href="https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html">RFC</a> for syntax
49+
* reference.
50+
*
51+
* @return rrule
52+
*/
53+
@jakarta.annotation.Nullable
54+
@JsonProperty(JSON_PROPERTY_RRULE)
55+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
56+
public String getRrule() {
57+
return rrule;
58+
}
59+
60+
public void setRrule(String rrule) {
61+
this.rrule = rrule;
62+
}
63+
64+
public SecurityMonitoringSchedulingOptions start(String start) {
65+
this.start = start;
66+
return this;
67+
}
68+
69+
/**
70+
* Start date for the schedule, in ISO 8601 format without timezone.
71+
*
72+
* @return start
73+
*/
74+
@jakarta.annotation.Nullable
75+
@JsonProperty(JSON_PROPERTY_START)
76+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
77+
public String getStart() {
78+
return start;
79+
}
80+
81+
public void setStart(String start) {
82+
this.start = start;
83+
}
84+
85+
public SecurityMonitoringSchedulingOptions timezone(String timezone) {
86+
this.timezone = timezone;
87+
return this;
88+
}
89+
90+
/**
91+
* Time zone of the start date, in the <a
92+
* href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">tz database</a> format.
93+
*
94+
* @return timezone
95+
*/
96+
@jakarta.annotation.Nullable
97+
@JsonProperty(JSON_PROPERTY_TIMEZONE)
98+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
99+
public String getTimezone() {
100+
return timezone;
101+
}
102+
103+
public void setTimezone(String timezone) {
104+
this.timezone = timezone;
105+
}
106+
107+
/**
108+
* A container for additional, undeclared properties. This is a holder for any undeclared
109+
* properties as specified with the 'additionalProperties' keyword in the OAS document.
110+
*/
111+
private Map<String, Object> additionalProperties;
112+
113+
/**
114+
* Set the additional (undeclared) property with the specified name and value. If the property
115+
* does not already exist, create it otherwise replace it.
116+
*
117+
* @param key The arbitrary key to set
118+
* @param value The associated value
119+
* @return SecurityMonitoringSchedulingOptions
120+
*/
121+
@JsonAnySetter
122+
public SecurityMonitoringSchedulingOptions putAdditionalProperty(String key, Object value) {
123+
if (this.additionalProperties == null) {
124+
this.additionalProperties = new HashMap<String, Object>();
125+
}
126+
this.additionalProperties.put(key, value);
127+
return this;
128+
}
129+
130+
/**
131+
* Return the additional (undeclared) property.
132+
*
133+
* @return The additional properties
134+
*/
135+
@JsonAnyGetter
136+
public Map<String, Object> getAdditionalProperties() {
137+
return additionalProperties;
138+
}
139+
140+
/**
141+
* Return the additional (undeclared) property with the specified name.
142+
*
143+
* @param key The arbitrary key to get
144+
* @return The specific additional property for the given key
145+
*/
146+
public Object getAdditionalProperty(String key) {
147+
if (this.additionalProperties == null) {
148+
return null;
149+
}
150+
return this.additionalProperties.get(key);
151+
}
152+
153+
/** Return true if this SecurityMonitoringSchedulingOptions object is equal to o. */
154+
@Override
155+
public boolean equals(Object o) {
156+
if (this == o) {
157+
return true;
158+
}
159+
if (o == null || getClass() != o.getClass()) {
160+
return false;
161+
}
162+
SecurityMonitoringSchedulingOptions securityMonitoringSchedulingOptions =
163+
(SecurityMonitoringSchedulingOptions) o;
164+
return Objects.equals(this.rrule, securityMonitoringSchedulingOptions.rrule)
165+
&& Objects.equals(this.start, securityMonitoringSchedulingOptions.start)
166+
&& Objects.equals(this.timezone, securityMonitoringSchedulingOptions.timezone)
167+
&& Objects.equals(
168+
this.additionalProperties, securityMonitoringSchedulingOptions.additionalProperties);
169+
}
170+
171+
@Override
172+
public int hashCode() {
173+
return Objects.hash(rrule, start, timezone, additionalProperties);
174+
}
175+
176+
@Override
177+
public String toString() {
178+
StringBuilder sb = new StringBuilder();
179+
sb.append("class SecurityMonitoringSchedulingOptions {\n");
180+
sb.append(" rrule: ").append(toIndentedString(rrule)).append("\n");
181+
sb.append(" start: ").append(toIndentedString(start)).append("\n");
182+
sb.append(" timezone: ").append(toIndentedString(timezone)).append("\n");
183+
sb.append(" additionalProperties: ")
184+
.append(toIndentedString(additionalProperties))
185+
.append("\n");
186+
sb.append('}');
187+
return sb.toString();
188+
}
189+
190+
/**
191+
* Convert the given object to string with each line indented by 4 spaces (except the first line).
192+
*/
193+
private String toIndentedString(Object o) {
194+
if (o == null) {
195+
return "null";
196+
}
197+
return o.toString().replace("\n", "\n ");
198+
}
199+
}

0 commit comments

Comments
 (0)