Skip to content

Commit b96e12b

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Regenerate client from commit 0767ae6 of spec repo (#3402)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 2973bb7 commit b96e12b

8 files changed

+56
-11
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43891,6 +43891,14 @@ components:
4389143891
for scheduled rules - in other words, when the `schedulingOptions` field
4389243892
is present in the rule payload.'
4389343893
type: string
43894+
indexes:
43895+
description: List of indexes to query when the `dataSource` is `logs`. Only
43896+
used for scheduled rules, such as when the `schedulingOptions` field is
43897+
present in the rule payload.
43898+
items:
43899+
description: Index.
43900+
type: string
43901+
type: array
4389443902
metric:
4389543903
deprecated: true
4389643904
description: '(Deprecated) The target field to aggregate over when using

api/datadogV2/model_security_monitoring_standard_rule_query.go

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ type SecurityMonitoringStandardRuleQuery struct {
2525
// **This field is currently unstable and might be removed in a minor version upgrade.**
2626
// The index to run the query on, if the `dataSource` is `logs`. Only used for scheduled rules - in other words, when the `schedulingOptions` field is present in the rule payload.
2727
Index *string `json:"index,omitempty"`
28+
// List of indexes to query when the `dataSource` is `logs`. Only used for scheduled rules, such as when the `schedulingOptions` field is present in the rule payload.
29+
Indexes []string `json:"indexes,omitempty"`
2830
// (Deprecated) The target field to aggregate over when using the sum or max
2931
// aggregations. `metrics` field should be used instead.
3032
// Deprecated
@@ -261,6 +263,34 @@ func (o *SecurityMonitoringStandardRuleQuery) SetIndex(v string) {
261263
o.Index = &v
262264
}
263265

266+
// GetIndexes returns the Indexes field value if set, zero value otherwise.
267+
func (o *SecurityMonitoringStandardRuleQuery) GetIndexes() []string {
268+
if o == nil || o.Indexes == nil {
269+
var ret []string
270+
return ret
271+
}
272+
return o.Indexes
273+
}
274+
275+
// GetIndexesOk returns a tuple with the Indexes field value if set, nil otherwise
276+
// and a boolean to check if the value has been set.
277+
func (o *SecurityMonitoringStandardRuleQuery) GetIndexesOk() (*[]string, bool) {
278+
if o == nil || o.Indexes == nil {
279+
return nil, false
280+
}
281+
return &o.Indexes, true
282+
}
283+
284+
// HasIndexes returns a boolean if a field has been set.
285+
func (o *SecurityMonitoringStandardRuleQuery) HasIndexes() bool {
286+
return o != nil && o.Indexes != nil
287+
}
288+
289+
// SetIndexes gets a reference to the given []string and assigns it to the Indexes field.
290+
func (o *SecurityMonitoringStandardRuleQuery) SetIndexes(v []string) {
291+
o.Indexes = v
292+
}
293+
264294
// GetMetric returns the Metric field value if set, zero value otherwise.
265295
// Deprecated
266296
func (o *SecurityMonitoringStandardRuleQuery) GetMetric() string {
@@ -403,6 +433,9 @@ func (o SecurityMonitoringStandardRuleQuery) MarshalJSON() ([]byte, error) {
403433
if o.Index != nil {
404434
toSerialize["index"] = o.Index
405435
}
436+
if o.Indexes != nil {
437+
toSerialize["indexes"] = o.Indexes
438+
}
406439
if o.Metric != nil {
407440
toSerialize["metric"] = o.Metric
408441
}
@@ -432,6 +465,7 @@ func (o *SecurityMonitoringStandardRuleQuery) UnmarshalJSON(bytes []byte) (err e
432465
GroupByFields []string `json:"groupByFields,omitempty"`
433466
HasOptionalGroupByFields *bool `json:"hasOptionalGroupByFields,omitempty"`
434467
Index *string `json:"index,omitempty"`
468+
Indexes []string `json:"indexes,omitempty"`
435469
Metric *string `json:"metric,omitempty"`
436470
Metrics []string `json:"metrics,omitempty"`
437471
Name *string `json:"name,omitempty"`
@@ -442,7 +476,7 @@ func (o *SecurityMonitoringStandardRuleQuery) UnmarshalJSON(bytes []byte) (err e
442476
}
443477
additionalProperties := make(map[string]interface{})
444478
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
445-
datadog.DeleteKeys(additionalProperties, &[]string{"aggregation", "customQueryExtension", "dataSource", "distinctFields", "groupByFields", "hasOptionalGroupByFields", "index", "metric", "metrics", "name", "query"})
479+
datadog.DeleteKeys(additionalProperties, &[]string{"aggregation", "customQueryExtension", "dataSource", "distinctFields", "groupByFields", "hasOptionalGroupByFields", "index", "indexes", "metric", "metrics", "name", "query"})
446480
} else {
447481
return err
448482
}
@@ -463,6 +497,7 @@ func (o *SecurityMonitoringStandardRuleQuery) UnmarshalJSON(bytes []byte) (err e
463497
o.GroupByFields = all.GroupByFields
464498
o.HasOptionalGroupByFields = all.HasOptionalGroupByFields
465499
o.Index = all.Index
500+
o.Indexes = all.Indexes
466501
o.Metric = all.Metric
467502
o.Metrics = all.Metrics
468503
o.Name = all.Name

examples/v2/security-monitoring/CreateSecurityMonitoringRule_868881438.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ func main() {
2222
Aggregation: datadogV2.SECURITYMONITORINGRULEQUERYAGGREGATION_COUNT.Ptr(),
2323
GroupByFields: []string{},
2424
DistinctFields: []string{},
25-
Index: datadog.PtrString("main"),
25+
Indexes: []string{
26+
"main",
27+
},
2628
},
2729
},
2830
Filters: []datadogV2.SecurityMonitoringFilter{},
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025-07-31T07:48:27.113Z
1+
2025-10-13T21:11:45.641Z

tests/scenarios/cassettes/TestScenarios/v2/Feature_Security_Monitoring/Scenario_Create_a_scheduled_detection_rule_returns_OK_response.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
interactions:
22
- request:
33
body: |
4-
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Create_a_scheduled_detection_rule_returns_OK_response-1753948107","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"index":"main","query":"@test:true"}],"schedulingOptions":{"rrule":"FREQ=HOURLY;INTERVAL=2;","start":"2025-06-18T12:00:00","timezone":"Europe/Paris"},"tags":[],"type":"log_detection"}
4+
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Create_a_scheduled_detection_rule_returns_OK_response-1760389905","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"indexes":["main"],"query":"@test:true"}],"schedulingOptions":{"rrule":"FREQ=HOURLY;INTERVAL=2;","start":"2025-06-18T12:00:00","timezone":"Europe/Paris"},"tags":[],"type":"log_detection"}
55
form: {}
66
headers:
77
Accept:
@@ -12,8 +12,8 @@ interactions:
1212
method: POST
1313
url: https://api.datadoghq.com/api/v2/security_monitoring/rules
1414
response:
15-
body: '{"name":"Test-Create_a_scheduled_detection_rule_returns_OK_response-1753948107","createdAt":1753948107557,"isDefault":false,"isPartner":false,"isEnabled":true,"isBeta":false,"isDeleted":false,"isDeprecated":false,"queries":[{"query":"@test:true","groupByFields":[],"hasOptionalGroupByFields":false,"distinctFields":[],"aggregation":"count","name":"","dataSource":"logs","index":"main"}],"options":{"evaluationWindow":900,"detectionMethod":"threshold","maxSignalDuration":86400,"keepAlive":3600},"cases":[{"name":"","status":"info","notifications":[],"condition":"a
16-
\u003e 0"}],"message":"Test rule","tags":[],"hasExtendedTitle":false,"type":"log_detection","filters":[],"version":1,"id":"8dd-els-oyn","blocking":false,"metadata":{"entities":null,"sources":null},"creationAuthorId":1445416,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"updater":{"handle":"","name":""},"schedulingOptions":{"rrule":"FREQ=HOURLY;INTERVAL=2;","start":"2025-06-18T12:00:00","timezone":"Europe/Paris"}}'
15+
body: '{"name":"Test-Create_a_scheduled_detection_rule_returns_OK_response-1760389905","createdAt":1760389906051,"isDefault":false,"isPartner":false,"isEnabled":true,"isBeta":false,"isDeleted":false,"isDeprecated":false,"queries":[{"query":"@test:true","groupByFields":[],"hasOptionalGroupByFields":false,"distinctFields":[],"aggregation":"count","name":"","dataSource":"logs","index":"main","indexes":["main"]}],"options":{"evaluationWindow":900,"detectionMethod":"threshold","maxSignalDuration":86400,"keepAlive":3600},"cases":[{"name":"","status":"info","notifications":[],"condition":"a
16+
\u003e 0"}],"message":"Test rule","tags":[],"hasExtendedTitle":false,"type":"log_detection","filters":[],"version":1,"id":"vgs-rrg-orf","blocking":false,"metadata":{"entities":null,"sources":null},"creationAuthorId":1445416,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"updater":{"handle":"","name":""},"schedulingOptions":{"rrule":"FREQ=HOURLY;INTERVAL=2;","start":"2025-06-18T12:00:00","timezone":"Europe/Paris"}}'
1717
code: 200
1818
duration: 0ms
1919
headers:
@@ -28,7 +28,7 @@ interactions:
2828
- '*/*'
2929
id: 1
3030
method: DELETE
31-
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/8dd-els-oyn
31+
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/vgs-rrg-orf
3232
response:
3333
body: ''
3434
code: 204
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025-07-31T07:49:14.474Z
1+
2025-10-13T21:12:46.212Z

tests/scenarios/cassettes/TestScenarios/v2/Feature_Security_Monitoring/Scenario_Create_a_scheduled_rule_without_rrule_returns_Bad_Request_response.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
interactions:
22
- request:
33
body: |
4-
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Create_a_scheduled_rule_without_rrule_returns_Bad_Request_response-1753948154","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"index":"main","query":"@test:true"}],"schedulingOptions":{"start":"2025-06-18T12:00:00","timezone":"Europe/Paris"},"tags":[],"type":"log_detection"}
4+
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Create_a_scheduled_rule_without_rrule_returns_Bad_Request_response-1760389966","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"indexes":["main"],"query":"@test:true"}],"schedulingOptions":{"start":"2025-06-18T12:00:00","timezone":"Europe/Paris"},"tags":[],"type":"log_detection"}
55
form: {}
66
headers:
77
Accept:

tests/scenarios/features/v2/security_monitoring.feature

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ Feature: Security Monitoring
308308
@team:DataDog/k9-cloud-security-platform
309309
Scenario: Create a scheduled detection rule returns "OK" response
310310
Given new "CreateSecurityMonitoringRule" request
311-
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"index":"main"}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection", "schedulingOptions": {"rrule": "FREQ=HOURLY;INTERVAL=2;", "start": "2025-06-18T12:00:00", "timezone": "Europe/Paris"}}
311+
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"indexes":["main"]}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection", "schedulingOptions": {"rrule": "FREQ=HOURLY;INTERVAL=2;", "start": "2025-06-18T12:00:00", "timezone": "Europe/Paris"}}
312312
When the request is sent
313313
Then the response status is 200 OK
314314
And the response "name" is equal to "{{ unique }}"
@@ -319,7 +319,7 @@ Feature: Security Monitoring
319319
@team:DataDog/k9-cloud-security-platform
320320
Scenario: Create a scheduled rule without rrule returns "Bad Request" response
321321
Given new "CreateSecurityMonitoringRule" request
322-
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"index":"main"}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection", "schedulingOptions": {"start": "2025-06-18T12:00:00", "timezone": "Europe/Paris"}}
322+
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"indexes":["main"]}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection", "schedulingOptions": {"start": "2025-06-18T12:00:00", "timezone": "Europe/Paris"}}
323323
When the request is sent
324324
Then the response status is 400 Bad Request
325325

0 commit comments

Comments
 (0)