Skip to content

Commit 6c3866a

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Regenerate client from commit 0f5bd41 of spec repo (#548)
Co-authored-by: ci.datadog-api-spec <[email protected]> Co-authored-by: api-clients-generation-pipeline[bot] <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com>
1 parent 60bbf27 commit 6c3866a

File tree

13 files changed

+258
-9
lines changed

13 files changed

+258
-9
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.2",
7-
"regenerated": "2022-03-01 10:11:45.143107",
8-
"spec_repo_commit": "7fe3e9a"
7+
"regenerated": "2022-03-02 11:11:25.004793",
8+
"spec_repo_commit": "0f5bd41"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.2",
12-
"regenerated": "2022-03-01 10:11:45.164871",
13-
"spec_repo_commit": "7fe3e9a"
12+
"regenerated": "2022-03-02 11:11:25.024121",
13+
"spec_repo_commit": "0f5bd41"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5145,11 +5145,13 @@ components:
51455145
- threshold
51465146
- new_value
51475147
- anomaly_detection
5148+
- impossible_travel
51485149
type: string
51495150
x-enum-varnames:
51505151
- THRESHOLD
51515152
- NEW_VALUE
51525153
- ANOMALY_DETECTION
5154+
- IMPOSSIBLE_TRAVEL
51535155
SecurityMonitoringRuleEvaluationWindow:
51545156
description: 'A time window is specified to match when at least one of the cases
51555157
matches true. This is a sliding window
@@ -5175,6 +5177,20 @@ components:
51755177
- THIRTY_MINUTES
51765178
- ONE_HOUR
51775179
- TWO_HOURS
5180+
SecurityMonitoringRuleImpossibleTravelOptions:
5181+
description: Options on impossible travel rules.
5182+
properties:
5183+
baselineUserLocations:
5184+
$ref: '#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations'
5185+
type: object
5186+
SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations:
5187+
description: 'If true, signals are suppressed for the first 24 hours. In that
5188+
time, Datadog learns the user''s regular
5189+
5190+
access locations. This can be helpful to reduce noise and infer VPN usage
5191+
or credentialed API access.'
5192+
example: true
5193+
type: boolean
51785194
SecurityMonitoringRuleKeepAlive:
51795195
description: "Once a signal is generated, the signal will remain \u201Copen\u201D
51805196
if a case is matched at least once within\nthis keep alive window."
@@ -5283,6 +5299,8 @@ components:
52835299
$ref: '#/components/schemas/SecurityMonitoringRuleDetectionMethod'
52845300
evaluationWindow:
52855301
$ref: '#/components/schemas/SecurityMonitoringRuleEvaluationWindow'
5302+
impossibleTravelOptions:
5303+
$ref: '#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptions'
52865304
keepAlive:
52875305
$ref: '#/components/schemas/SecurityMonitoringRuleKeepAlive'
52885306
maxSignalDuration:
@@ -5327,13 +5345,15 @@ components:
53275345
- sum
53285346
- max
53295347
- new_value
5348+
- geo_data
53305349
type: string
53315350
x-enum-varnames:
53325351
- COUNT
53335352
- CARDINALITY
53345353
- SUM
53355354
- MAX
53365355
- NEW_VALUE
5356+
- GEO_DATA
53375357
SecurityMonitoringRuleQueryCreate:
53385358
description: Query for matching rule.
53395359
properties:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"2022-02-28T13:21:57.338Z"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
{
2+
"log": {
3+
"_recordingName": "Security Monitoring/Create a detection rule with type 'impossible_travel' returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.4"
8+
},
9+
"entries": [
10+
{
11+
"_id": "49af63a7878d8b792558be5c73238678",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 565,
16+
"cookies": [],
17+
"headers": [
18+
{
19+
"_fromType": "array",
20+
"name": "accept",
21+
"value": "application/json"
22+
},
23+
{
24+
"_fromType": "array",
25+
"name": "content-type",
26+
"value": "application/json"
27+
}
28+
],
29+
"headersSize": 587,
30+
"httpVersion": "HTTP/1.1",
31+
"method": "POST",
32+
"postData": {
33+
"mimeType": "application/json",
34+
"params": [],
35+
"text": "{\"cases\":[{\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"hasExtendedTitle\":true,\"isEnabled\":true,\"message\":\"test\",\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1646054517\",\"options\":{\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"geo_data\",\"distinctFields\":[],\"groupByFields\":[\"@usr.id\"],\"metric\":\"@network.client.geoip\",\"query\":\"*\"}],\"tags\":[],\"type\":\"log_detection\"}"
36+
},
37+
"queryString": [],
38+
"url": "https://api.datadoghq.com/api/v2/security_monitoring/rules"
39+
},
40+
"response": {
41+
"bodySize": 695,
42+
"content": {
43+
"mimeType": "application/json;charset=utf-8",
44+
"size": 695,
45+
"text": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"test\",\"options\":{\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1646054517609,\"filters\":[],\"queries\":[{\"distinctFields\":[],\"name\":\"\",\"metric\":\"@network.client.geoip\",\"aggregation\":\"geo_data\",\"groupByFields\":[\"@usr.id\"],\"query\":\"*\"}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\"}],\"type\":\"log_detection\",\"id\":\"7xa-vww-kan\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1646054517\"}"
46+
},
47+
"cookies": [],
48+
"headers": [
49+
{
50+
"name": "content-type",
51+
"value": "application/json;charset=utf-8"
52+
}
53+
],
54+
"headersSize": 713,
55+
"httpVersion": "HTTP/1.1",
56+
"redirectURL": "",
57+
"status": 200,
58+
"statusText": "OK"
59+
},
60+
"startedDateTime": "2022-02-28T13:21:57.366Z",
61+
"time": 405
62+
},
63+
{
64+
"_id": "07886f91301edcde50ad9b96dd700e94",
65+
"_order": 0,
66+
"cache": {},
67+
"request": {
68+
"bodySize": 0,
69+
"cookies": [],
70+
"headers": [
71+
{
72+
"_fromType": "array",
73+
"name": "accept",
74+
"value": "application/json"
75+
}
76+
],
77+
"headersSize": 548,
78+
"httpVersion": "HTTP/1.1",
79+
"method": "DELETE",
80+
"queryString": [],
81+
"url": "https://api.datadoghq.com/api/v2/security_monitoring/rules/7xa-vww-kan"
82+
},
83+
"response": {
84+
"bodySize": 0,
85+
"content": {
86+
"mimeType": "text/plain",
87+
"size": 0
88+
},
89+
"cookies": [],
90+
"headers": [],
91+
"headersSize": 646,
92+
"httpVersion": "HTTP/1.1",
93+
"redirectURL": "",
94+
"status": 204,
95+
"statusText": "No Content"
96+
},
97+
"startedDateTime": "2022-02-28T13:21:57.820Z",
98+
"time": 298
99+
}
100+
],
101+
"pages": [],
102+
"version": "1.2"
103+
}
104+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/**
2+
* Create a detection rule with type 'impossible_travel' returns "OK" response
3+
*/
4+
5+
import { v2 } from "@datadog/datadog-api-client";
6+
7+
const configuration = v2.createConfiguration();
8+
const apiInstance = new v2.SecurityMonitoringApi(configuration);
9+
10+
let params: v2.SecurityMonitoringApiCreateSecurityMonitoringRuleRequest = {
11+
body: {
12+
queries: [
13+
{
14+
aggregation: "geo_data",
15+
groupByFields: ["@usr.id"],
16+
distinctFields: [],
17+
metric: "@network.client.geoip",
18+
query: "*",
19+
},
20+
],
21+
cases: [
22+
{
23+
name: "",
24+
status: "info",
25+
notifications: [],
26+
},
27+
],
28+
hasExtendedTitle: true,
29+
message: "test",
30+
isEnabled: true,
31+
options: {
32+
maxSignalDuration: 86400,
33+
evaluationWindow: 900,
34+
keepAlive: 3600,
35+
detectionMethod: "impossible_travel",
36+
impossibleTravelOptions: {
37+
baselineUserLocations: false,
38+
},
39+
},
40+
name: "Example-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response",
41+
type: "log_detection",
42+
tags: [],
43+
filters: [],
44+
},
45+
};
46+
47+
apiInstance
48+
.createSecurityMonitoringRule(params)
49+
.then((data: v2.SecurityMonitoringRuleResponse) => {
50+
console.log(
51+
"API called successfully. Returned data: " + JSON.stringify(data)
52+
);
53+
})
54+
.catch((error: any) => console.error(error));

features/v2/security_monitoring.feature

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ Feature: Security Monitoring
2121
When the request is sent
2222
Then the response status is 200 OK
2323

24+
@team:DataDog/security-monitoring
25+
Scenario: Create a detection rule with type 'impossible_travel' returns "OK" response
26+
Given new "CreateSecurityMonitoringRule" request
27+
And body with value {"queries":[{"aggregation":"geo_data","groupByFields":["@usr.id"],"distinctFields":[],"metric":"@network.client.geoip","query":"*"}],"cases":[{"name":"","status":"info","notifications":[]}],"hasExtendedTitle":true,"message":"test","isEnabled":true,"options":{"maxSignalDuration":86400,"evaluationWindow":900,"keepAlive":3600,"detectionMethod":"impossible_travel","impossibleTravelOptions":{"baselineUserLocations":false}},"name":"{{ unique }}","type":"log_detection","tags":[],"filters":[]}
28+
When the request is sent
29+
Then the response status is 200 OK
30+
2431
@team:DataDog/security-monitoring
2532
Scenario: Create a detection rule with type 'workload_security' returns "OK" response
2633
Given new "CreateSecurityMonitoringRule" request
@@ -207,22 +214,22 @@ Feature: Security Monitoring
207214
Scenario: Update an existing rule returns "Bad Request" response
208215
Given new "UpdateSecurityMonitoringRule" request
209216
And request contains "rule_id" parameter from "REPLACE.ME"
210-
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
217+
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "impossibleTravelOptions": {"baselineUserLocations": true}, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
211218
When the request is sent
212219
Then the response status is 400 Bad Request
213220

214221
@generated @skip @team:DataDog/security-monitoring
215222
Scenario: Update an existing rule returns "Not Found" response
216223
Given new "UpdateSecurityMonitoringRule" request
217224
And request contains "rule_id" parameter from "REPLACE.ME"
218-
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
225+
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "impossibleTravelOptions": {"baselineUserLocations": true}, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
219226
When the request is sent
220227
Then the response status is 404 Not Found
221228

222229
@generated @skip @team:DataDog/security-monitoring
223230
Scenario: Update an existing rule returns "OK" response
224231
Given new "UpdateSecurityMonitoringRule" request
225232
And request contains "rule_id" parameter from "REPLACE.ME"
226-
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
233+
And body with value {"cases": [{"condition": null, "name": null, "notifications": [null], "status": "critical"}], "filters": [{"action": "require", "query": null}], "hasExtendedTitle": true, "isEnabled": null, "message": null, "name": null, "options": {"detectionMethod": "threshold", "evaluationWindow": 0, "impossibleTravelOptions": {"baselineUserLocations": true}, "keepAlive": 0, "maxSignalDuration": 0, "newValueOptions": {"forgetAfter": 1, "learningDuration": 0}}, "queries": [{"aggregation": "count", "distinctFields": [null], "groupByFields": [null], "metric": null, "name": null, "query": null}], "tags": [null], "version": 1}
227234
When the request is sent
228235
Then the response status is 200 OK

packages/datadog-api-client-v2/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ models/SecurityMonitoringRuleCaseCreate.ts
370370
models/SecurityMonitoringRuleCreatePayload.ts
371371
models/SecurityMonitoringRuleDetectionMethod.ts
372372
models/SecurityMonitoringRuleEvaluationWindow.ts
373+
models/SecurityMonitoringRuleImpossibleTravelOptions.ts
373374
models/SecurityMonitoringRuleKeepAlive.ts
374375
models/SecurityMonitoringRuleMaxSignalDuration.ts
375376
models/SecurityMonitoringRuleNewValueOptions.ts

packages/datadog-api-client-v2/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,7 @@ export { SecurityMonitoringRuleCaseCreate } from "./models/SecurityMonitoringRul
507507
export { SecurityMonitoringRuleCreatePayload } from "./models/SecurityMonitoringRuleCreatePayload";
508508
export { SecurityMonitoringRuleDetectionMethod } from "./models/SecurityMonitoringRuleDetectionMethod";
509509
export { SecurityMonitoringRuleEvaluationWindow } from "./models/SecurityMonitoringRuleEvaluationWindow";
510+
export { SecurityMonitoringRuleImpossibleTravelOptions } from "./models/SecurityMonitoringRuleImpossibleTravelOptions";
510511
export { SecurityMonitoringRuleKeepAlive } from "./models/SecurityMonitoringRuleKeepAlive";
511512
export { SecurityMonitoringRuleMaxSignalDuration } from "./models/SecurityMonitoringRuleMaxSignalDuration";
512513
export { SecurityMonitoringRuleNewValueOptions } from "./models/SecurityMonitoringRuleNewValueOptions";

packages/datadog-api-client-v2/models/ObjectSerializer.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ import { SecurityMonitoringListRulesResponse } from "./SecurityMonitoringListRul
260260
import { SecurityMonitoringRuleCase } from "./SecurityMonitoringRuleCase";
261261
import { SecurityMonitoringRuleCaseCreate } from "./SecurityMonitoringRuleCaseCreate";
262262
import { SecurityMonitoringRuleCreatePayload } from "./SecurityMonitoringRuleCreatePayload";
263+
import { SecurityMonitoringRuleImpossibleTravelOptions } from "./SecurityMonitoringRuleImpossibleTravelOptions";
263264
import { SecurityMonitoringRuleNewValueOptions } from "./SecurityMonitoringRuleNewValueOptions";
264265
import { SecurityMonitoringRuleOptions } from "./SecurityMonitoringRuleOptions";
265266
import { SecurityMonitoringRuleQuery } from "./SecurityMonitoringRuleQuery";
@@ -433,6 +434,7 @@ const enumsMap: { [key: string]: any[] } = {
433434
"threshold",
434435
"new_value",
435436
"anomaly_detection",
437+
"impossible_travel",
436438
],
437439
SecurityMonitoringRuleEvaluationWindow: [
438440
0, 60, 300, 600, 900, 1800, 3600, 7200,
@@ -451,6 +453,7 @@ const enumsMap: { [key: string]: any[] } = {
451453
"sum",
452454
"max",
453455
"new_value",
456+
"geo_data",
454457
],
455458
SecurityMonitoringRuleSeverity: ["info", "low", "medium", "high", "critical"],
456459
SecurityMonitoringRuleTypeCreate: ["log_detection", "workload_security"],
@@ -749,6 +752,8 @@ const typeMap: { [index: string]: any } = {
749752
SecurityMonitoringRuleCase: SecurityMonitoringRuleCase,
750753
SecurityMonitoringRuleCaseCreate: SecurityMonitoringRuleCaseCreate,
751754
SecurityMonitoringRuleCreatePayload: SecurityMonitoringRuleCreatePayload,
755+
SecurityMonitoringRuleImpossibleTravelOptions:
756+
SecurityMonitoringRuleImpossibleTravelOptions,
752757
SecurityMonitoringRuleNewValueOptions: SecurityMonitoringRuleNewValueOptions,
753758
SecurityMonitoringRuleOptions: SecurityMonitoringRuleOptions,
754759
SecurityMonitoringRuleQuery: SecurityMonitoringRuleQuery,

packages/datadog-api-client-v2/models/SecurityMonitoringRuleDetectionMethod.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
export type SecurityMonitoringRuleDetectionMethod =
1212
| typeof THRESHOLD
1313
| typeof NEW_VALUE
14-
| typeof ANOMALY_DETECTION;
14+
| typeof ANOMALY_DETECTION
15+
| typeof IMPOSSIBLE_TRAVEL;
1516
export const THRESHOLD = "threshold";
1617
export const NEW_VALUE = "new_value";
1718
export const ANOMALY_DETECTION = "anomaly_detection";
19+
export const IMPOSSIBLE_TRAVEL = "impossible_travel";

0 commit comments

Comments
 (0)