Skip to content

Commit beb2195

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Document bulk delete security monitoring rules endpoint (#3450)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent f1c1baf commit beb2195

12 files changed

Lines changed: 491 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64151,6 +64151,63 @@ components:
6415164151
- TWO_DAYS
6415264152
- ONE_WEEK
6415364153
- TWO_WEEKS
64154+
SecurityMonitoringRuleBulkDeleteAttributes:
64155+
description: Attributes for bulk deleting security monitoring rules.
64156+
properties:
64157+
ruleIds:
64158+
description: List of rule IDs to delete.
64159+
example:
64160+
- abc-000-u7q
64161+
- abc-000-7dd
64162+
items:
64163+
description: A rule ID to delete.
64164+
type: string
64165+
minItems: 1
64166+
type: array
64167+
required:
64168+
- ruleIds
64169+
type: object
64170+
SecurityMonitoringRuleBulkDeleteData:
64171+
description: Data for bulk deleting security monitoring rules.
64172+
properties:
64173+
attributes:
64174+
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteAttributes"
64175+
type:
64176+
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteRequestDataType"
64177+
required:
64178+
- attributes
64179+
- type
64180+
type: object
64181+
SecurityMonitoringRuleBulkDeletePayload:
64182+
description: Payload for bulk deleting security monitoring rules.
64183+
properties:
64184+
data:
64185+
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteData"
64186+
required:
64187+
- data
64188+
type: object
64189+
SecurityMonitoringRuleBulkDeleteRequestDataType:
64190+
description: The resource type for a bulk delete request.
64191+
enum:
64192+
- bulk_delete_rules
64193+
example: bulk_delete_rules
64194+
type: string
64195+
x-enum-varnames:
64196+
- BULK_DELETE_RULES
64197+
SecurityMonitoringRuleBulkDeleteResponse:
64198+
description: Response for bulk deleting security monitoring rules.
64199+
properties:
64200+
deletedRules:
64201+
description: List of successfully deleted rule IDs.
64202+
items:
64203+
type: string
64204+
type: array
64205+
failedRules:
64206+
description: List of rule IDs that could not be deleted.
64207+
items:
64208+
type: string
64209+
type: array
64210+
type: object
6415464211
SecurityMonitoringRuleBulkExportAttributes:
6415564212
description: Attributes for bulk exporting security monitoring rules.
6415664213
properties:
@@ -123130,6 +123187,53 @@ paths:
123130123187
operator: OR
123131123188
permissions:
123132123189
- security_monitoring_rules_write
123190+
/api/v2/security_monitoring/rules/bulk_delete:
123191+
delete:
123192+
description: |-
123193+
Delete multiple security monitoring rules in a single request. Default rules cannot be deleted.
123194+
operationId: BulkDeleteSecurityMonitoringRules
123195+
requestBody:
123196+
content:
123197+
application/json:
123198+
examples:
123199+
default:
123200+
value:
123201+
data:
123202+
attributes:
123203+
ruleIds:
123204+
- abc-000-u7q
123205+
- abc-000-7dd
123206+
type: bulk_delete_rules
123207+
schema:
123208+
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeletePayload"
123209+
required: true
123210+
responses:
123211+
"200":
123212+
content:
123213+
"application/json":
123214+
schema:
123215+
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponse"
123216+
description: OK
123217+
"400":
123218+
$ref: "#/components/responses/BadRequestResponse"
123219+
"403":
123220+
$ref: "#/components/responses/NotAuthorizedResponse"
123221+
"404":
123222+
$ref: "#/components/responses/NotFoundResponse"
123223+
"429":
123224+
$ref: "#/components/responses/TooManyRequestsResponse"
123225+
security:
123226+
- apiKeyAuth: []
123227+
appKeyAuth: []
123228+
- AuthZ:
123229+
- security_monitoring_rules_write
123230+
summary: Bulk delete security monitoring rules
123231+
tags: ["Security Monitoring"]
123232+
x-codegen-request-body-name: body
123233+
"x-permission":
123234+
operator: OR
123235+
permissions:
123236+
- security_monitoring_rules_write
123133123237
/api/v2/security_monitoring/rules/bulk_export:
123134123238
post:
123135123239
description: |-

docs/datadog_api_client.v2.model.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28536,6 +28536,41 @@ datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_op
2853628536
:members:
2853728537
:show-inheritance:
2853828538

28539+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_attributes module
28540+
-----------------------------------------------------------------------------------------
28541+
28542+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes
28543+
:members:
28544+
:show-inheritance:
28545+
28546+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_data module
28547+
-----------------------------------------------------------------------------------
28548+
28549+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_data
28550+
:members:
28551+
:show-inheritance:
28552+
28553+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_payload module
28554+
--------------------------------------------------------------------------------------
28555+
28556+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload
28557+
:members:
28558+
:show-inheritance:
28559+
28560+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_request\_data\_type module
28561+
--------------------------------------------------------------------------------------------------
28562+
28563+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type
28564+
:members:
28565+
:show-inheritance:
28566+
28567+
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_response module
28568+
---------------------------------------------------------------------------------------
28569+
28570+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_response
28571+
:members:
28572+
:show-inheritance:
28573+
2853928574
datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_export\_attributes module
2854028575
-----------------------------------------------------------------------------------------
2854128576

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
Bulk delete security monitoring rules 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_bulk_delete_attributes import (
8+
SecurityMonitoringRuleBulkDeleteAttributes,
9+
)
10+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_data import SecurityMonitoringRuleBulkDeleteData
11+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload import (
12+
SecurityMonitoringRuleBulkDeletePayload,
13+
)
14+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
15+
SecurityMonitoringRuleBulkDeleteRequestDataType,
16+
)
17+
18+
body = SecurityMonitoringRuleBulkDeletePayload(
19+
data=SecurityMonitoringRuleBulkDeleteData(
20+
attributes=SecurityMonitoringRuleBulkDeleteAttributes(
21+
rule_ids=[
22+
"abc-000-u7q",
23+
"abc-000-7dd",
24+
],
25+
),
26+
type=SecurityMonitoringRuleBulkDeleteRequestDataType.BULK_DELETE_RULES,
27+
),
28+
)
29+
30+
configuration = Configuration()
31+
with ApiClient(configuration) as api_client:
32+
api_instance = SecurityMonitoringApi(api_client)
33+
response = api_instance.bulk_delete_security_monitoring_rules(body=body)
34+
35+
print(response)

src/datadog_api_client/v2/api/security_monitoring_api.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@
113113
from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse
114114
from datadog_api_client.v2.model.security_monitoring_rule_sort import SecurityMonitoringRuleSort
115115
from datadog_api_client.v2.model.security_monitoring_rule_response import SecurityMonitoringRuleResponse
116+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_response import (
117+
SecurityMonitoringRuleBulkDeleteResponse,
118+
)
119+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload import (
120+
SecurityMonitoringRuleBulkDeletePayload,
121+
)
116122
from datadog_api_client.v2.model.security_monitoring_rule_bulk_export_payload import (
117123
SecurityMonitoringRuleBulkExportPayload,
118124
)
@@ -260,6 +266,26 @@ def __init__(self, api_client=None):
260266
api_client=api_client,
261267
)
262268

269+
self._bulk_delete_security_monitoring_rules_endpoint = _Endpoint(
270+
settings={
271+
"response_type": (SecurityMonitoringRuleBulkDeleteResponse,),
272+
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
273+
"endpoint_path": "/api/v2/security_monitoring/rules/bulk_delete",
274+
"operation_id": "bulk_delete_security_monitoring_rules",
275+
"http_method": "DELETE",
276+
"version": "v2",
277+
},
278+
params_map={
279+
"body": {
280+
"required": True,
281+
"openapi_types": (SecurityMonitoringRuleBulkDeletePayload,),
282+
"location": "body",
283+
},
284+
},
285+
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
286+
api_client=api_client,
287+
)
288+
263289
self._bulk_edit_security_monitoring_signals_endpoint = _Endpoint(
264290
settings={
265291
"response_type": (SecurityMonitoringSignalsBulkTriageUpdateResponse,),
@@ -3067,6 +3093,22 @@ def attach_jira_issue(
30673093

30683094
return self._attach_jira_issue_endpoint.call_with_http_info(**kwargs)
30693095

3096+
def bulk_delete_security_monitoring_rules(
3097+
self,
3098+
body: SecurityMonitoringRuleBulkDeletePayload,
3099+
) -> SecurityMonitoringRuleBulkDeleteResponse:
3100+
"""Bulk delete security monitoring rules.
3101+
3102+
Delete multiple security monitoring rules in a single request. Default rules cannot be deleted.
3103+
3104+
:type body: SecurityMonitoringRuleBulkDeletePayload
3105+
:rtype: SecurityMonitoringRuleBulkDeleteResponse
3106+
"""
3107+
kwargs: Dict[str, Any] = {}
3108+
kwargs["body"] = body
3109+
3110+
return self._bulk_delete_security_monitoring_rules_endpoint.call_with_http_info(**kwargs)
3111+
30703112
def bulk_edit_security_monitoring_signals(
30713113
self,
30723114
body: SecurityMonitoringSignalsBulkUpdateRequest,
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
)
12+
13+
14+
class SecurityMonitoringRuleBulkDeleteAttributes(ModelNormal):
15+
validations = {
16+
"rule_ids": {
17+
"min_items": 1,
18+
},
19+
}
20+
21+
@cached_property
22+
def openapi_types(_):
23+
return {
24+
"rule_ids": ([str],),
25+
}
26+
27+
attribute_map = {
28+
"rule_ids": "ruleIds",
29+
}
30+
31+
def __init__(self_, rule_ids: List[str], **kwargs):
32+
"""
33+
Attributes for bulk deleting security monitoring rules.
34+
35+
:param rule_ids: List of rule IDs to delete.
36+
:type rule_ids: [str]
37+
"""
38+
super().__init__(kwargs)
39+
40+
self_.rule_ids = rule_ids
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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 TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
)
12+
13+
14+
if TYPE_CHECKING:
15+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes import (
16+
SecurityMonitoringRuleBulkDeleteAttributes,
17+
)
18+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
19+
SecurityMonitoringRuleBulkDeleteRequestDataType,
20+
)
21+
22+
23+
class SecurityMonitoringRuleBulkDeleteData(ModelNormal):
24+
@cached_property
25+
def openapi_types(_):
26+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes import (
27+
SecurityMonitoringRuleBulkDeleteAttributes,
28+
)
29+
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
30+
SecurityMonitoringRuleBulkDeleteRequestDataType,
31+
)
32+
33+
return {
34+
"attributes": (SecurityMonitoringRuleBulkDeleteAttributes,),
35+
"type": (SecurityMonitoringRuleBulkDeleteRequestDataType,),
36+
}
37+
38+
attribute_map = {
39+
"attributes": "attributes",
40+
"type": "type",
41+
}
42+
43+
def __init__(
44+
self_,
45+
attributes: SecurityMonitoringRuleBulkDeleteAttributes,
46+
type: SecurityMonitoringRuleBulkDeleteRequestDataType,
47+
**kwargs,
48+
):
49+
"""
50+
Data for bulk deleting security monitoring rules.
51+
52+
:param attributes: Attributes for bulk deleting security monitoring rules.
53+
:type attributes: SecurityMonitoringRuleBulkDeleteAttributes
54+
55+
:param type: The resource type for a bulk delete request.
56+
:type type: SecurityMonitoringRuleBulkDeleteRequestDataType
57+
"""
58+
super().__init__(kwargs)
59+
60+
self_.attributes = attributes
61+
self_.type = type

0 commit comments

Comments
 (0)