Skip to content

Commit 9b3f06d

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 9746098 of spec repo
1 parent 2b59847 commit 9b3f06d

14 files changed

Lines changed: 593 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47052,6 +47052,88 @@ components:
4705247052
description: The name of the reference table.
4705347053
type: string
4705447054
type: object
47055+
SecurityMonitoringRuleAnomalyDetectionOptions:
47056+
description: Options on anomaly detection method.
47057+
properties:
47058+
bucketDuration:
47059+
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration'
47060+
detectionTolerance:
47061+
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance'
47062+
instantaneousBaseline:
47063+
description: If true, attempts to learn the baseline from historical data.
47064+
type: boolean
47065+
learningDuration:
47066+
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration'
47067+
learningPeriodBaseline:
47068+
description: An optional override baseline to apply while the rule is in
47069+
the learning period. Must be greater than or equal to 0.
47070+
format: int64
47071+
minimum: 0
47072+
type: integer
47073+
type: object
47074+
SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration:
47075+
description: 'Duration in seconds of the time buckets used to aggregate events
47076+
matched by the rule.
47077+
47078+
Must be greater than or equal to 300.'
47079+
enum:
47080+
- 300
47081+
- 600
47082+
- 900
47083+
- 1800
47084+
- 3600
47085+
- 10800
47086+
example: 300
47087+
format: int32
47088+
type: integer
47089+
x-enum-varnames:
47090+
- FIVE_MINUTES
47091+
- TEN_MINUTES
47092+
- FIFTEEN_MINUTES
47093+
- THIRTY_MINUTES
47094+
- ONE_HOUR
47095+
- THREE_HOURS
47096+
SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance:
47097+
description: 'An optional parameter that sets how permissive anomaly detection
47098+
is.
47099+
47100+
Higher values require higher deviations before triggering a signal.'
47101+
enum:
47102+
- 1
47103+
- 2
47104+
- 3
47105+
- 4
47106+
- 5
47107+
example: 5
47108+
format: int32
47109+
type: integer
47110+
x-enum-varnames:
47111+
- ONE
47112+
- TWO
47113+
- THREE
47114+
- FOUR
47115+
- FIVE
47116+
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration:
47117+
description: Learning duration in hours. Anomaly detection waits for at least
47118+
this amount of historical data before it starts evaluating.
47119+
enum:
47120+
- 1
47121+
- 6
47122+
- 12
47123+
- 24
47124+
- 48
47125+
- 168
47126+
- 336
47127+
format: int32
47128+
type: integer
47129+
x-enum-varnames:
47130+
- ONE_HOUR
47131+
- SIX_HOURS
47132+
- TWELVE_HOURS
47133+
- ONE_DAY
47134+
- TWO_DAYS
47135+
- ONE_WEEK
47136+
- TWO_WEEKS
4705547137
SecurityMonitoringRuleCase:
4705647138
description: Case when signal is generated.
4705747139
properties:
@@ -47408,6 +47490,8 @@ components:
4740847490
SecurityMonitoringRuleOptions:
4740947491
description: Options.
4741047492
properties:
47493+
anomalyDetectionOptions:
47494+
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions'
4741147495
complianceRuleOptions:
4741247496
$ref: '#/components/schemas/CloudConfigurationComplianceRuleOptions'
4741347497
decreaseCriticalityBasedOnEnv:
@@ -54778,6 +54862,8 @@ components:
5477854862
ThreatHuntingJobOptions:
5477954863
description: Job options.
5478054864
properties:
54865+
anomalyDetectionOptions:
54866+
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions'
5478154867
detectionMethod:
5478254868
$ref: '#/components/schemas/SecurityMonitoringRuleDetectionMethod'
5478354869
evaluationWindow:
@@ -67941,6 +68027,7 @@ paths:
6794168027
- us3.datadoghq.com
6794268028
- us5.datadoghq.com
6794368029
- ap1.datadoghq.com
68030+
- ap2.datadoghq.com
6794468031
- datadoghq.eu
6794568032
- ddog-gov.com
6794668033
subdomain:

docs/datadog_api_client.v2.model.rst

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20885,6 +20885,34 @@ datadog\_api\_client.v2.model.security\_monitoring\_reference\_table module
2088520885
:members:
2088620886
:show-inheritance:
2088720887

20888+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_options module
20889+
--------------------------------------------------------------------------------------------
20890+
20891+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options
20892+
:members:
20893+
:show-inheritance:
20894+
20895+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_options\_bucket\_duration module
20896+
--------------------------------------------------------------------------------------------------------------
20897+
20898+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_bucket_duration
20899+
:members:
20900+
:show-inheritance:
20901+
20902+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_options\_detection\_tolerance module
20903+
------------------------------------------------------------------------------------------------------------------
20904+
20905+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_detection_tolerance
20906+
:members:
20907+
:show-inheritance:
20908+
20909+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_options\_learning\_duration module
20910+
----------------------------------------------------------------------------------------------------------------
20911+
20912+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_learning_duration
20913+
:members:
20914+
:show-inheritance:
20915+
2088820916
datadog\_api\_client.v2.model.security\_monitoring\_rule\_case module
2088920917
---------------------------------------------------------------------
2089020918

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
"""
2+
Create a detection rule with detection method 'anomaly_detection' returns "OK" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
7+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options import (
8+
SecurityMonitoringRuleAnomalyDetectionOptions,
9+
)
10+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_bucket_duration import (
11+
SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration,
12+
)
13+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_detection_tolerance import (
14+
SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance,
15+
)
16+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_learning_duration import (
17+
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration,
18+
)
19+
from datadog_api_client.v2.model.security_monitoring_rule_case_create import SecurityMonitoringRuleCaseCreate
20+
from datadog_api_client.v2.model.security_monitoring_rule_detection_method import SecurityMonitoringRuleDetectionMethod
21+
from datadog_api_client.v2.model.security_monitoring_rule_evaluation_window import (
22+
SecurityMonitoringRuleEvaluationWindow,
23+
)
24+
from datadog_api_client.v2.model.security_monitoring_rule_keep_alive import SecurityMonitoringRuleKeepAlive
25+
from datadog_api_client.v2.model.security_monitoring_rule_max_signal_duration import (
26+
SecurityMonitoringRuleMaxSignalDuration,
27+
)
28+
from datadog_api_client.v2.model.security_monitoring_rule_options import SecurityMonitoringRuleOptions
29+
from datadog_api_client.v2.model.security_monitoring_rule_query_aggregation import (
30+
SecurityMonitoringRuleQueryAggregation,
31+
)
32+
from datadog_api_client.v2.model.security_monitoring_rule_severity import SecurityMonitoringRuleSeverity
33+
from datadog_api_client.v2.model.security_monitoring_rule_type_create import SecurityMonitoringRuleTypeCreate
34+
from datadog_api_client.v2.model.security_monitoring_standard_data_source import SecurityMonitoringStandardDataSource
35+
from datadog_api_client.v2.model.security_monitoring_standard_rule_create_payload import (
36+
SecurityMonitoringStandardRuleCreatePayload,
37+
)
38+
from datadog_api_client.v2.model.security_monitoring_standard_rule_query import SecurityMonitoringStandardRuleQuery
39+
40+
body = SecurityMonitoringStandardRuleCreatePayload(
41+
name="Example-Security-Monitoring",
42+
type=SecurityMonitoringRuleTypeCreate.LOG_DETECTION,
43+
is_enabled=True,
44+
queries=[
45+
SecurityMonitoringStandardRuleQuery(
46+
aggregation=SecurityMonitoringRuleQueryAggregation.COUNT,
47+
data_source=SecurityMonitoringStandardDataSource.LOGS,
48+
distinct_fields=[],
49+
group_by_fields=[
50+
"@usr.email",
51+
"@network.client.ip",
52+
],
53+
has_optional_group_by_fields=False,
54+
name="",
55+
query="service:app status:error",
56+
),
57+
],
58+
cases=[
59+
SecurityMonitoringRuleCaseCreate(
60+
name="",
61+
status=SecurityMonitoringRuleSeverity.INFO,
62+
notifications=[],
63+
condition="a > 0.995",
64+
),
65+
],
66+
message="An anomaly detection rule",
67+
options=SecurityMonitoringRuleOptions(
68+
detection_method=SecurityMonitoringRuleDetectionMethod.ANOMALY_DETECTION,
69+
evaluation_window=SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES,
70+
keep_alive=SecurityMonitoringRuleKeepAlive.ONE_HOUR,
71+
max_signal_duration=SecurityMonitoringRuleMaxSignalDuration.ONE_DAY,
72+
anomaly_detection_options=SecurityMonitoringRuleAnomalyDetectionOptions(
73+
bucket_duration=SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration.FIVE_MINUTES,
74+
learning_duration=SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration.ONE_DAY,
75+
instantaneous_baseline=False,
76+
detection_tolerance=SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance.THREE,
77+
learning_period_baseline=10,
78+
),
79+
),
80+
tags=[],
81+
filters=[],
82+
)
83+
84+
configuration = Configuration()
85+
with ApiClient(configuration) as api_client:
86+
api_instance = SecurityMonitoringApi(api_client)
87+
response = api_instance.create_security_monitoring_rule(body=body)
88+
89+
print(response)

src/datadog_api_client/v2/api/events_api.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def __init__(self, api_client=None):
5555
"us3.datadoghq.com",
5656
"us5.datadoghq.com",
5757
"ap1.datadoghq.com",
58+
"ap2.datadoghq.com",
5859
"datadoghq.eu",
5960
"ddog-gov.com",
6061
],
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
from typing import Union, TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
unset,
12+
UnsetType,
13+
)
14+
15+
16+
if TYPE_CHECKING:
17+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_bucket_duration import (
18+
SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration,
19+
)
20+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_detection_tolerance import (
21+
SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance,
22+
)
23+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_learning_duration import (
24+
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration,
25+
)
26+
27+
28+
class SecurityMonitoringRuleAnomalyDetectionOptions(ModelNormal):
29+
validations = {
30+
"learning_period_baseline": {
31+
"inclusive_minimum": 0,
32+
},
33+
}
34+
35+
@cached_property
36+
def openapi_types(_):
37+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_bucket_duration import (
38+
SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration,
39+
)
40+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_detection_tolerance import (
41+
SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance,
42+
)
43+
from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options_learning_duration import (
44+
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration,
45+
)
46+
47+
return {
48+
"bucket_duration": (SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration,),
49+
"detection_tolerance": (SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance,),
50+
"instantaneous_baseline": (bool,),
51+
"learning_duration": (SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration,),
52+
"learning_period_baseline": (int,),
53+
}
54+
55+
attribute_map = {
56+
"bucket_duration": "bucketDuration",
57+
"detection_tolerance": "detectionTolerance",
58+
"instantaneous_baseline": "instantaneousBaseline",
59+
"learning_duration": "learningDuration",
60+
"learning_period_baseline": "learningPeriodBaseline",
61+
}
62+
63+
def __init__(
64+
self_,
65+
bucket_duration: Union[SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration, UnsetType] = unset,
66+
detection_tolerance: Union[SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance, UnsetType] = unset,
67+
instantaneous_baseline: Union[bool, UnsetType] = unset,
68+
learning_duration: Union[SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration, UnsetType] = unset,
69+
learning_period_baseline: Union[int, UnsetType] = unset,
70+
**kwargs,
71+
):
72+
"""
73+
Options on anomaly detection method.
74+
75+
:param bucket_duration: Duration in seconds of the time buckets used to aggregate events matched by the rule.
76+
Must be greater than or equal to 300.
77+
:type bucket_duration: SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration, optional
78+
79+
:param detection_tolerance: An optional parameter that sets how permissive anomaly detection is.
80+
Higher values require higher deviations before triggering a signal.
81+
:type detection_tolerance: SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance, optional
82+
83+
:param instantaneous_baseline: If true, attempts to learn the baseline from historical data.
84+
:type instantaneous_baseline: bool, optional
85+
86+
:param learning_duration: Learning duration in hours. Anomaly detection waits for at least this amount of historical data before it starts evaluating.
87+
:type learning_duration: SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration, optional
88+
89+
:param learning_period_baseline: An optional override baseline to apply while the rule is in the learning period. Must be greater than or equal to 0.
90+
:type learning_period_baseline: int, optional
91+
"""
92+
if bucket_duration is not unset:
93+
kwargs["bucket_duration"] = bucket_duration
94+
if detection_tolerance is not unset:
95+
kwargs["detection_tolerance"] = detection_tolerance
96+
if instantaneous_baseline is not unset:
97+
kwargs["instantaneous_baseline"] = instantaneous_baseline
98+
if learning_duration is not unset:
99+
kwargs["learning_duration"] = learning_duration
100+
if learning_period_baseline is not unset:
101+
kwargs["learning_period_baseline"] = learning_period_baseline
102+
super().__init__(kwargs)

0 commit comments

Comments
 (0)