Skip to content

Commit 2af9eb1

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
add tests for SecurityMonitoringRule endpoints (#1214)
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 0fe8e59 commit 2af9eb1

16 files changed

+1697
-74
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.4",
7-
"regenerated": "2022-10-25 17:03:46.463169",
8-
"spec_repo_commit": "9673a7f6"
7+
"regenerated": "2022-10-25 19:31:36.662942",
8+
"spec_repo_commit": "904df7aa"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.4",
12-
"regenerated": "2022-10-25 17:03:46.475072",
13-
"spec_repo_commit": "9673a7f6"
12+
"regenerated": "2022-10-25 19:31:36.677974",
13+
"spec_repo_commit": "904df7aa"
1414
}
1515
}
1616
}

examples/v2/security-monitoring/GetSecurityMonitoringRule.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22
Get a rule's details returns "OK" response
33
"""
44

5+
from os import environ
56
from datadog_api_client import ApiClient, Configuration
67
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
78

9+
# there is a valid "security_rule" in the system
10+
SECURITY_RULE_ID = environ["SECURITY_RULE_ID"]
11+
812
configuration = Configuration()
913
with ApiClient(configuration) as api_client:
1014
api_instance = SecurityMonitoringApi(api_client)
1115
response = api_instance.get_security_monitoring_rule(
12-
rule_id="rule_id",
16+
rule_id=SECURITY_RULE_ID,
1317
)
1418

1519
print(response)

examples/v2/security-monitoring/UpdateSecurityMonitoringRule.py

Lines changed: 24 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,17 @@
22
Update an existing rule returns "OK" response
33
"""
44

5+
from os import environ
56
from datadog_api_client import ApiClient, Configuration
67
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
7-
from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter
8-
from datadog_api_client.v2.model.security_monitoring_filter_action import SecurityMonitoringFilterAction
98
from datadog_api_client.v2.model.security_monitoring_rule_case import SecurityMonitoringRuleCase
10-
from datadog_api_client.v2.model.security_monitoring_rule_detection_method import SecurityMonitoringRuleDetectionMethod
119
from datadog_api_client.v2.model.security_monitoring_rule_evaluation_window import (
1210
SecurityMonitoringRuleEvaluationWindow,
1311
)
14-
from datadog_api_client.v2.model.security_monitoring_rule_hardcoded_evaluator_type import (
15-
SecurityMonitoringRuleHardcodedEvaluatorType,
16-
)
17-
from datadog_api_client.v2.model.security_monitoring_rule_impossible_travel_options import (
18-
SecurityMonitoringRuleImpossibleTravelOptions,
19-
)
2012
from datadog_api_client.v2.model.security_monitoring_rule_keep_alive import SecurityMonitoringRuleKeepAlive
2113
from datadog_api_client.v2.model.security_monitoring_rule_max_signal_duration import (
2214
SecurityMonitoringRuleMaxSignalDuration,
2315
)
24-
from datadog_api_client.v2.model.security_monitoring_rule_new_value_options import SecurityMonitoringRuleNewValueOptions
25-
from datadog_api_client.v2.model.security_monitoring_rule_new_value_options_forget_after import (
26-
SecurityMonitoringRuleNewValueOptionsForgetAfter,
27-
)
28-
from datadog_api_client.v2.model.security_monitoring_rule_new_value_options_learning_duration import (
29-
SecurityMonitoringRuleNewValueOptionsLearningDuration,
30-
)
31-
from datadog_api_client.v2.model.security_monitoring_rule_new_value_options_learning_method import (
32-
SecurityMonitoringRuleNewValueOptionsLearningMethod,
33-
)
34-
from datadog_api_client.v2.model.security_monitoring_rule_new_value_options_learning_threshold import (
35-
SecurityMonitoringRuleNewValueOptionsLearningThreshold,
36-
)
3716
from datadog_api_client.v2.model.security_monitoring_rule_options import SecurityMonitoringRuleOptions
3817
from datadog_api_client.v2.model.security_monitoring_rule_query_aggregation import (
3918
SecurityMonitoringRuleQueryAggregation,
@@ -42,52 +21,42 @@
4221
from datadog_api_client.v2.model.security_monitoring_rule_update_payload import SecurityMonitoringRuleUpdatePayload
4322
from datadog_api_client.v2.model.security_monitoring_standard_rule_query import SecurityMonitoringStandardRuleQuery
4423

24+
# there is a valid "security_rule" in the system
25+
SECURITY_RULE_ID = environ["SECURITY_RULE_ID"]
26+
4527
body = SecurityMonitoringRuleUpdatePayload(
46-
cases=[
47-
SecurityMonitoringRuleCase(
48-
notifications=[],
49-
status=SecurityMonitoringRuleSeverity.CRITICAL,
50-
),
51-
],
52-
filters=[
53-
SecurityMonitoringFilter(
54-
action=SecurityMonitoringFilterAction.REQUIRE,
55-
),
56-
],
57-
has_extended_title=True,
58-
options=SecurityMonitoringRuleOptions(
59-
decrease_criticality_based_on_env=False,
60-
detection_method=SecurityMonitoringRuleDetectionMethod.THRESHOLD,
61-
evaluation_window=SecurityMonitoringRuleEvaluationWindow.ZERO_MINUTES,
62-
hardcoded_evaluator_type=SecurityMonitoringRuleHardcodedEvaluatorType.LOG4SHELL,
63-
impossible_travel_options=SecurityMonitoringRuleImpossibleTravelOptions(
64-
baseline_user_locations=True,
65-
),
66-
keep_alive=SecurityMonitoringRuleKeepAlive.ZERO_MINUTES,
67-
max_signal_duration=SecurityMonitoringRuleMaxSignalDuration.ZERO_MINUTES,
68-
new_value_options=SecurityMonitoringRuleNewValueOptions(
69-
forget_after=SecurityMonitoringRuleNewValueOptionsForgetAfter.ONE_DAY,
70-
learning_duration=SecurityMonitoringRuleNewValueOptionsLearningDuration.ZERO_DAYS,
71-
learning_method=SecurityMonitoringRuleNewValueOptionsLearningMethod.DURATION,
72-
learning_threshold=SecurityMonitoringRuleNewValueOptionsLearningThreshold.ZERO_OCCURRENCES,
73-
),
74-
),
28+
name="Example-Update_an_existing_rule_returns_OK_response-Updated",
7529
queries=[
7630
SecurityMonitoringStandardRuleQuery(
31+
query="@test:true",
7732
aggregation=SecurityMonitoringRuleQueryAggregation.COUNT,
78-
distinct_fields=[],
7933
group_by_fields=[],
34+
distinct_fields=[],
8035
metrics=[],
81-
query="a > 3",
8236
),
8337
],
38+
filters=[],
39+
cases=[
40+
SecurityMonitoringRuleCase(
41+
name="",
42+
status=SecurityMonitoringRuleSeverity.INFO,
43+
condition="a > 0",
44+
notifications=[],
45+
),
46+
],
47+
options=SecurityMonitoringRuleOptions(
48+
evaluation_window=SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES,
49+
keep_alive=SecurityMonitoringRuleKeepAlive.ONE_HOUR,
50+
max_signal_duration=SecurityMonitoringRuleMaxSignalDuration.ONE_DAY,
51+
),
52+
message="Test rule",
8453
tags=[],
85-
version=1,
54+
is_enabled=True,
8655
)
8756

8857
configuration = Configuration()
8958
with ApiClient(configuration) as api_client:
9059
api_instance = SecurityMonitoringApi(api_client)
91-
response = api_instance.update_security_monitoring_rule(rule_id="rule_id", body=body)
60+
response = api_instance.update_security_monitoring_rule(rule_id=SECURITY_RULE_ID, body=body)
9261

9362
print(response)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2022-10-24T20:38:11.940Z

0 commit comments

Comments
 (0)