Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63313,6 +63313,63 @@ components:
- TWO_DAYS
- ONE_WEEK
- TWO_WEEKS
SecurityMonitoringRuleBulkDeleteAttributes:
description: Attributes for bulk deleting security monitoring rules.
properties:
ruleIds:
description: List of rule IDs to delete.
example:
- abc-000-u7q
- abc-000-7dd
items:
description: A rule ID to delete.
type: string
minItems: 1
type: array
required:
- ruleIds
type: object
SecurityMonitoringRuleBulkDeleteData:
description: Data for bulk deleting security monitoring rules.
properties:
attributes:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteAttributes"
type:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteRequestDataType"
required:
- attributes
- type
type: object
SecurityMonitoringRuleBulkDeletePayload:
description: Payload for bulk deleting security monitoring rules.
properties:
data:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteData"
required:
- data
type: object
SecurityMonitoringRuleBulkDeleteRequestDataType:
description: The resource type for a bulk delete request.
enum:
- bulk_delete_rules
example: bulk_delete_rules
type: string
x-enum-varnames:
- BULK_DELETE_RULES
SecurityMonitoringRuleBulkDeleteResponse:
description: Response for bulk deleting security monitoring rules.
properties:
deletedRules:
description: List of successfully deleted rule IDs.
items:
type: string
type: array
failedRules:
description: List of rule IDs that could not be deleted.
items:
type: string
type: array
type: object
SecurityMonitoringRuleBulkExportAttributes:
description: Attributes for bulk exporting security monitoring rules.
properties:
Expand Down Expand Up @@ -121305,6 +121362,53 @@ paths:
operator: OR
permissions:
- security_monitoring_rules_write
/api/v2/security_monitoring/rules/bulk_delete:
delete:
description: |-
Delete multiple security monitoring rules in a single request. Default rules cannot be deleted.
operationId: BulkDeleteSecurityMonitoringRules
requestBody:
content:
application/json:
examples:
default:
value:
data:
attributes:
ruleIds:
- abc-000-u7q
- abc-000-7dd
type: bulk_delete_rules
schema:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeletePayload"
required: true
responses:
"200":
content:
"application/json":
schema:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponse"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
"403":
$ref: "#/components/responses/NotAuthorizedResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ:
- security_monitoring_rules_write
summary: Bulk delete security monitoring rules
tags: ["Security Monitoring"]
x-codegen-request-body-name: body
"x-permission":
operator: OR
permissions:
- security_monitoring_rules_write
/api/v2/security_monitoring/rules/bulk_export:
post:
description: |-
Expand Down
35 changes: 35 additions & 0 deletions docs/datadog_api_client.v2.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28221,6 +28221,41 @@ datadog\_api\_client.v2.model.security\_monitoring\_rule\_anomaly\_detection\_op
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_attributes module
-----------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_data module
-----------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_data
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_payload module
--------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_request\_data\_type module
--------------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_delete\_response module
---------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_response
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_bulk\_export\_attributes module
-----------------------------------------------------------------------------------------

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"""
Bulk delete security monitoring rules returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes import (
SecurityMonitoringRuleBulkDeleteAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_data import SecurityMonitoringRuleBulkDeleteData
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload import (
SecurityMonitoringRuleBulkDeletePayload,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
SecurityMonitoringRuleBulkDeleteRequestDataType,
)

body = SecurityMonitoringRuleBulkDeletePayload(
data=SecurityMonitoringRuleBulkDeleteData(
attributes=SecurityMonitoringRuleBulkDeleteAttributes(
rule_ids=[
"abc-000-u7q",
"abc-000-7dd",
],
),
type=SecurityMonitoringRuleBulkDeleteRequestDataType.BULK_DELETE_RULES,
),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = SecurityMonitoringApi(api_client)
response = api_instance.bulk_delete_security_monitoring_rules(body=body)

print(response)
42 changes: 42 additions & 0 deletions src/datadog_api_client/v2/api/security_monitoring_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@
from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse
from datadog_api_client.v2.model.security_monitoring_rule_sort import SecurityMonitoringRuleSort
from datadog_api_client.v2.model.security_monitoring_rule_response import SecurityMonitoringRuleResponse
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_response import (
SecurityMonitoringRuleBulkDeleteResponse,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_payload import (
SecurityMonitoringRuleBulkDeletePayload,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_export_payload import (
SecurityMonitoringRuleBulkExportPayload,
)
Expand Down Expand Up @@ -258,6 +264,26 @@ def __init__(self, api_client=None):
api_client=api_client,
)

self._bulk_delete_security_monitoring_rules_endpoint = _Endpoint(
settings={
"response_type": (SecurityMonitoringRuleBulkDeleteResponse,),
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
"endpoint_path": "/api/v2/security_monitoring/rules/bulk_delete",
"operation_id": "bulk_delete_security_monitoring_rules",
"http_method": "DELETE",
"version": "v2",
},
params_map={
"body": {
"required": True,
"openapi_types": (SecurityMonitoringRuleBulkDeletePayload,),
"location": "body",
},
},
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
api_client=api_client,
)

self._bulk_edit_security_monitoring_signals_endpoint = _Endpoint(
settings={
"response_type": (SecurityMonitoringSignalsBulkTriageUpdateResponse,),
Expand Down Expand Up @@ -3045,6 +3071,22 @@ def attach_jira_issue(

return self._attach_jira_issue_endpoint.call_with_http_info(**kwargs)

def bulk_delete_security_monitoring_rules(
self,
body: SecurityMonitoringRuleBulkDeletePayload,
) -> SecurityMonitoringRuleBulkDeleteResponse:
"""Bulk delete security monitoring rules.

Delete multiple security monitoring rules in a single request. Default rules cannot be deleted.

:type body: SecurityMonitoringRuleBulkDeletePayload
:rtype: SecurityMonitoringRuleBulkDeleteResponse
"""
kwargs: Dict[str, Any] = {}
kwargs["body"] = body

return self._bulk_delete_security_monitoring_rules_endpoint.call_with_http_info(**kwargs)

def bulk_edit_security_monitoring_signals(
self,
body: SecurityMonitoringSignalsBulkUpdateRequest,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import List

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
)


class SecurityMonitoringRuleBulkDeleteAttributes(ModelNormal):
validations = {
"rule_ids": {
"min_items": 1,
},
}

@cached_property
def openapi_types(_):
return {
"rule_ids": ([str],),
}

attribute_map = {
"rule_ids": "ruleIds",
}

def __init__(self_, rule_ids: List[str], **kwargs):
"""
Attributes for bulk deleting security monitoring rules.

:param rule_ids: List of rule IDs to delete.
:type rule_ids: [str]
"""
super().__init__(kwargs)

self_.rule_ids = rule_ids
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import TYPE_CHECKING

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
)


if TYPE_CHECKING:
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes import (
SecurityMonitoringRuleBulkDeleteAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
SecurityMonitoringRuleBulkDeleteRequestDataType,
)


class SecurityMonitoringRuleBulkDeleteData(ModelNormal):
@cached_property
def openapi_types(_):
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_attributes import (
SecurityMonitoringRuleBulkDeleteAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_bulk_delete_request_data_type import (
SecurityMonitoringRuleBulkDeleteRequestDataType,
)

return {
"attributes": (SecurityMonitoringRuleBulkDeleteAttributes,),
"type": (SecurityMonitoringRuleBulkDeleteRequestDataType,),
}

attribute_map = {
"attributes": "attributes",
"type": "type",
}

def __init__(
self_,
attributes: SecurityMonitoringRuleBulkDeleteAttributes,
type: SecurityMonitoringRuleBulkDeleteRequestDataType,
**kwargs,
):
"""
Data for bulk deleting security monitoring rules.

:param attributes: Attributes for bulk deleting security monitoring rules.
:type attributes: SecurityMonitoringRuleBulkDeleteAttributes

:param type: The resource type for a bulk delete request.
:type type: SecurityMonitoringRuleBulkDeleteRequestDataType
"""
super().__init__(kwargs)

self_.attributes = attributes
self_.type = type
Loading
Loading