Skip to content

Commit 56577ca

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 7d6e091 of spec repo
1 parent 1229026 commit 56577ca

11 files changed

+1066
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49518,6 +49518,7 @@ components:
4951849518
- third_party
4951949519
- anomaly_threshold
4952049520
- sequence_detection
49521+
example: threshold
4952149522
type: string
4952249523
x-enum-varnames:
4952349524
- THRESHOLD
@@ -49617,6 +49618,58 @@ components:
4961749618
- SIX_HOURS
4961849619
- TWELVE_HOURS
4961949620
- ONE_DAY
49621+
SecurityMonitoringRuleLivetailRequest:
49622+
description: Request to preview a rule query with applied filters.
49623+
properties:
49624+
dataSource:
49625+
description: Data source for the query.
49626+
example: logs
49627+
type: string
49628+
detectionMethod:
49629+
$ref: '#/components/schemas/SecurityMonitoringRuleDetectionMethod'
49630+
distinctFields:
49631+
description: Fields to apply distinct on.
49632+
items:
49633+
type: string
49634+
type: array
49635+
filters:
49636+
description: Additional security filters to apply.
49637+
items:
49638+
$ref: '#/components/schemas/SecurityMonitoringFilter'
49639+
type: array
49640+
groupByFields:
49641+
description: Fields to group by.
49642+
items:
49643+
type: string
49644+
type: array
49645+
query:
49646+
description: The query to preview.
49647+
example: source:java
49648+
type: string
49649+
queryIndex:
49650+
description: Index of the query in the rule.
49651+
example: 0
49652+
format: int32
49653+
maximum: 9
49654+
minimum: 0
49655+
type: integer
49656+
type:
49657+
$ref: '#/components/schemas/SecurityMonitoringRuleTypeRead'
49658+
required:
49659+
- query
49660+
- queryIndex
49661+
- type
49662+
- detectionMethod
49663+
- dataSource
49664+
type: object
49665+
SecurityMonitoringRuleLivetailResponse:
49666+
description: Response containing the modified query with applied filters.
49667+
properties:
49668+
query:
49669+
description: The modified query with all filters applied.
49670+
example: source:java (service:payment OR service:auth)
49671+
type: string
49672+
type: object
4962049673
SecurityMonitoringRuleMaxSignalDuration:
4962149674
description: 'A signal will "close" regardless of the query being matched once
4962249675
the time exceeds the maximum duration.
@@ -49962,6 +50015,7 @@ components:
4996250015
- cloud_configuration
4996350016
- application_security
4996450017
- api_security
50018+
example: log_detection
4996550019
type: string
4996650020
x-enum-varnames:
4996750021
- LOG_DETECTION
@@ -86008,6 +86062,46 @@ paths:
8600886062
summary: Get a suppression's version history
8600986063
tags:
8601086064
- Security Monitoring
86065+
/api/v2/security_monitoring/livetail:
86066+
post:
86067+
description: 'Preview a security monitoring rule query with security filters,
86068+
group by fields, and distinct fields applied.
86069+
86070+
This endpoint is used in the rule editor to show how the query will be transformed
86071+
after applying additional filters.'
86072+
operationId: PreviewSecurityMonitoringRuleQuery
86073+
requestBody:
86074+
content:
86075+
application/json:
86076+
schema:
86077+
$ref: '#/components/schemas/SecurityMonitoringRuleLivetailRequest'
86078+
required: true
86079+
responses:
86080+
'200':
86081+
content:
86082+
application/json:
86083+
schema:
86084+
$ref: '#/components/schemas/SecurityMonitoringRuleLivetailResponse'
86085+
description: OK
86086+
'400':
86087+
$ref: '#/components/responses/BadRequestResponse'
86088+
'403':
86089+
$ref: '#/components/responses/NotAuthorizedResponse'
86090+
'429':
86091+
$ref: '#/components/responses/TooManyRequestsResponse'
86092+
security:
86093+
- apiKeyAuth: []
86094+
appKeyAuth: []
86095+
- AuthZ:
86096+
- security_monitoring_rules_read
86097+
summary: Preview a rule query with applied filters
86098+
tags:
86099+
- Security Monitoring
86100+
x-codegen-request-body-name: body
86101+
x-permission:
86102+
operator: OR
86103+
permissions:
86104+
- security_monitoring_rules_read
8601186105
/api/v2/security_monitoring/rules:
8601286106
get:
8601386107
description: List rules.

docs/datadog_api_client.v2.model.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21879,6 +21879,20 @@ datadog\_api\_client.v2.model.security\_monitoring\_rule\_keep\_alive module
2187921879
:members:
2188021880
:show-inheritance:
2188121881

21882+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_livetail\_request module
21883+
----------------------------------------------------------------------------------
21884+
21885+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_livetail_request
21886+
:members:
21887+
:show-inheritance:
21888+
21889+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_livetail\_response module
21890+
-----------------------------------------------------------------------------------
21891+
21892+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_livetail_response
21893+
:members:
21894+
:show-inheritance:
21895+
2188221896
datadog\_api\_client.v2.model.security\_monitoring\_rule\_max\_signal\_duration module
2188321897
--------------------------------------------------------------------------------------
2188421898

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"""
2+
Preview a rule query with applied filters 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_detection_method import SecurityMonitoringRuleDetectionMethod
8+
from datadog_api_client.v2.model.security_monitoring_rule_livetail_request import SecurityMonitoringRuleLivetailRequest
9+
from datadog_api_client.v2.model.security_monitoring_rule_type_read import SecurityMonitoringRuleTypeRead
10+
11+
body = SecurityMonitoringRuleLivetailRequest(
12+
query="source:cloudtrail",
13+
query_index=0,
14+
filters=[],
15+
type=SecurityMonitoringRuleTypeRead.LOG_DETECTION,
16+
detection_method=SecurityMonitoringRuleDetectionMethod.THRESHOLD,
17+
data_source="logs",
18+
group_by_fields=[],
19+
distinct_fields=[],
20+
)
21+
22+
configuration = Configuration()
23+
with ApiClient(configuration) as api_client:
24+
api_instance = SecurityMonitoringApi(api_client)
25+
response = api_instance.preview_security_monitoring_rule_query(body=body)
26+
27+
print(response)

src/datadog_api_client/v2/api/security_monitoring_api.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@
101101
SecurityMonitoringSuppressionUpdateRequest,
102102
)
103103
from datadog_api_client.v2.model.get_suppression_version_history_response import GetSuppressionVersionHistoryResponse
104+
from datadog_api_client.v2.model.security_monitoring_rule_livetail_response import (
105+
SecurityMonitoringRuleLivetailResponse,
106+
)
107+
from datadog_api_client.v2.model.security_monitoring_rule_livetail_request import SecurityMonitoringRuleLivetailRequest
104108
from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse
105109
from datadog_api_client.v2.model.security_monitoring_rule_response import SecurityMonitoringRuleResponse
106110
from datadog_api_client.v2.model.security_monitoring_rule_convert_response import SecurityMonitoringRuleConvertResponse
@@ -2263,6 +2267,26 @@ def __init__(self, api_client=None):
22632267
api_client=api_client,
22642268
)
22652269

2270+
self._preview_security_monitoring_rule_query_endpoint = _Endpoint(
2271+
settings={
2272+
"response_type": (SecurityMonitoringRuleLivetailResponse,),
2273+
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
2274+
"endpoint_path": "/api/v2/security_monitoring/livetail",
2275+
"operation_id": "preview_security_monitoring_rule_query",
2276+
"http_method": "POST",
2277+
"version": "v2",
2278+
},
2279+
params_map={
2280+
"body": {
2281+
"required": True,
2282+
"openapi_types": (SecurityMonitoringRuleLivetailRequest,),
2283+
"location": "body",
2284+
},
2285+
},
2286+
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
2287+
api_client=api_client,
2288+
)
2289+
22662290
self._run_threat_hunting_job_endpoint = _Endpoint(
22672291
settings={
22682292
"response_type": (JobCreateResponse,),
@@ -4979,6 +5003,23 @@ def patch_vulnerability_notification_rule(
49795003

49805004
return self._patch_vulnerability_notification_rule_endpoint.call_with_http_info(**kwargs)
49815005

5006+
def preview_security_monitoring_rule_query(
5007+
self,
5008+
body: SecurityMonitoringRuleLivetailRequest,
5009+
) -> SecurityMonitoringRuleLivetailResponse:
5010+
"""Preview a rule query with applied filters.
5011+
5012+
Preview a security monitoring rule query with security filters, group by fields, and distinct fields applied.
5013+
This endpoint is used in the rule editor to show how the query will be transformed after applying additional filters.
5014+
5015+
:type body: SecurityMonitoringRuleLivetailRequest
5016+
:rtype: SecurityMonitoringRuleLivetailResponse
5017+
"""
5018+
kwargs: Dict[str, Any] = {}
5019+
kwargs["body"] = body
5020+
5021+
return self._preview_security_monitoring_rule_query_endpoint.call_with_http_info(**kwargs)
5022+
49825023
def run_threat_hunting_job(
49835024
self,
49845025
body: RunThreatHuntingJobRequest,
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
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 List, 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_detection_method import (
18+
SecurityMonitoringRuleDetectionMethod,
19+
)
20+
from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter
21+
from datadog_api_client.v2.model.security_monitoring_rule_type_read import SecurityMonitoringRuleTypeRead
22+
23+
24+
class SecurityMonitoringRuleLivetailRequest(ModelNormal):
25+
validations = {
26+
"query_index": {
27+
"inclusive_maximum": 9,
28+
"inclusive_minimum": 0,
29+
},
30+
}
31+
32+
@cached_property
33+
def openapi_types(_):
34+
from datadog_api_client.v2.model.security_monitoring_rule_detection_method import (
35+
SecurityMonitoringRuleDetectionMethod,
36+
)
37+
from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter
38+
from datadog_api_client.v2.model.security_monitoring_rule_type_read import SecurityMonitoringRuleTypeRead
39+
40+
return {
41+
"data_source": (str,),
42+
"detection_method": (SecurityMonitoringRuleDetectionMethod,),
43+
"distinct_fields": ([str],),
44+
"filters": ([SecurityMonitoringFilter],),
45+
"group_by_fields": ([str],),
46+
"query": (str,),
47+
"query_index": (int,),
48+
"type": (SecurityMonitoringRuleTypeRead,),
49+
}
50+
51+
attribute_map = {
52+
"data_source": "dataSource",
53+
"detection_method": "detectionMethod",
54+
"distinct_fields": "distinctFields",
55+
"filters": "filters",
56+
"group_by_fields": "groupByFields",
57+
"query": "query",
58+
"query_index": "queryIndex",
59+
"type": "type",
60+
}
61+
62+
def __init__(
63+
self_,
64+
data_source: str,
65+
detection_method: SecurityMonitoringRuleDetectionMethod,
66+
query: str,
67+
query_index: int,
68+
type: SecurityMonitoringRuleTypeRead,
69+
distinct_fields: Union[List[str], UnsetType] = unset,
70+
filters: Union[List[SecurityMonitoringFilter], UnsetType] = unset,
71+
group_by_fields: Union[List[str], UnsetType] = unset,
72+
**kwargs,
73+
):
74+
"""
75+
Request to preview a rule query with applied filters.
76+
77+
:param data_source: Data source for the query.
78+
:type data_source: str
79+
80+
:param detection_method: The detection method.
81+
:type detection_method: SecurityMonitoringRuleDetectionMethod
82+
83+
:param distinct_fields: Fields to apply distinct on.
84+
:type distinct_fields: [str], optional
85+
86+
:param filters: Additional security filters to apply.
87+
:type filters: [SecurityMonitoringFilter], optional
88+
89+
:param group_by_fields: Fields to group by.
90+
:type group_by_fields: [str], optional
91+
92+
:param query: The query to preview.
93+
:type query: str
94+
95+
:param query_index: Index of the query in the rule.
96+
:type query_index: int
97+
98+
:param type: The rule type.
99+
:type type: SecurityMonitoringRuleTypeRead
100+
"""
101+
if distinct_fields is not unset:
102+
kwargs["distinct_fields"] = distinct_fields
103+
if filters is not unset:
104+
kwargs["filters"] = filters
105+
if group_by_fields is not unset:
106+
kwargs["group_by_fields"] = group_by_fields
107+
super().__init__(kwargs)
108+
109+
self_.data_source = data_source
110+
self_.detection_method = detection_method
111+
self_.query = query
112+
self_.query_index = query_index
113+
self_.type = type
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
unset,
12+
UnsetType,
13+
)
14+
15+
16+
class SecurityMonitoringRuleLivetailResponse(ModelNormal):
17+
@cached_property
18+
def openapi_types(_):
19+
return {
20+
"query": (str,),
21+
}
22+
23+
attribute_map = {
24+
"query": "query",
25+
}
26+
27+
def __init__(self_, query: Union[str, UnsetType] = unset, **kwargs):
28+
"""
29+
Response containing the modified query with applied filters.
30+
31+
:param query: The modified query with all filters applied.
32+
:type query: str, optional
33+
"""
34+
if query is not unset:
35+
kwargs["query"] = query
36+
super().__init__(kwargs)

0 commit comments

Comments
 (0)