Skip to content

Commit 1290aae

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

12 files changed

Lines changed: 764 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: |-
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Bulk delete security monitoring rules returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
5+
6+
body = DatadogAPIClient::V2::SecurityMonitoringRuleBulkDeletePayload.new({
7+
data: DatadogAPIClient::V2::SecurityMonitoringRuleBulkDeleteData.new({
8+
attributes: DatadogAPIClient::V2::SecurityMonitoringRuleBulkDeleteAttributes.new({
9+
rule_ids: [
10+
"abc-000-u7q",
11+
"abc-000-7dd",
12+
],
13+
}),
14+
type: DatadogAPIClient::V2::SecurityMonitoringRuleBulkDeleteRequestDataType::BULK_DELETE_RULES,
15+
}),
16+
})
17+
p api_instance.bulk_delete_security_monitoring_rules(body)

features/scenarios_model_mapping.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,9 @@
19341934
"v2.CreateSecurityMonitoringRule" => {
19351935
"body" => "SecurityMonitoringRuleCreatePayload",
19361936
},
1937+
"v2.BulkDeleteSecurityMonitoringRules" => {
1938+
"body" => "SecurityMonitoringRuleBulkDeletePayload",
1939+
},
19371940
"v2.BulkExportSecurityMonitoringRules" => {
19381941
"body" => "SecurityMonitoringRuleBulkExportPayload",
19391942
},

features/v2/security_monitoring.feature

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,27 @@ Feature: Security Monitoring
9999
And the response "data.attributes.insights" has item with field "resource_id" with value "ZGZhMDI3ZjdjMDM3YjJmNzcxNTlhZGMwMjdmZWNiNTZ-MTVlYTNmYWU3NjNlOTNlYTE2YjM4N2JmZmI4Yjk5N2Y="
100100
And the response "data.attributes.insights" has item with field "resource_id" with value "MmUzMzZkODQ2YTI3NDU0OTk4NDk3NzhkOTY5YjU2Zjh-YWJjZGI1ODI4OTYzNWM3ZmUwZTBlOWRkYTRiMGUyOGQ="
101101

102+
@generated @skip @team:DataDog/k9-cloud-siem
103+
Scenario: Bulk delete security monitoring rules returns "Bad Request" response
104+
Given new "BulkDeleteSecurityMonitoringRules" request
105+
And body with value {"data": {"attributes": {"ruleIds": ["abc-000-u7q", "abc-000-7dd"]}, "type": "bulk_delete_rules"}}
106+
When the request is sent
107+
Then the response status is 400 Bad Request
108+
109+
@generated @skip @team:DataDog/k9-cloud-siem
110+
Scenario: Bulk delete security monitoring rules returns "Not Found" response
111+
Given new "BulkDeleteSecurityMonitoringRules" request
112+
And body with value {"data": {"attributes": {"ruleIds": ["abc-000-u7q", "abc-000-7dd"]}, "type": "bulk_delete_rules"}}
113+
When the request is sent
114+
Then the response status is 404 Not Found
115+
116+
@generated @skip @team:DataDog/k9-cloud-siem
117+
Scenario: Bulk delete security monitoring rules returns "OK" response
118+
Given new "BulkDeleteSecurityMonitoringRules" request
119+
And body with value {"data": {"attributes": {"ruleIds": ["abc-000-u7q", "abc-000-7dd"]}, "type": "bulk_delete_rules"}}
120+
When the request is sent
121+
Then the response status is 200 OK
122+
102123
@skip @team:DataDog/k9-cloud-siem
103124
Scenario: Bulk export security monitoring rules returns "Bad Request" response
104125
Given new "BulkExportSecurityMonitoringRules" request

features/v2/undo.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5675,6 +5675,12 @@
56755675
"type": "unsafe"
56765676
}
56775677
},
5678+
"BulkDeleteSecurityMonitoringRules": {
5679+
"tag": "Security Monitoring",
5680+
"undo": {
5681+
"type": "idempotent"
5682+
}
5683+
},
56785684
"BulkExportSecurityMonitoringRules": {
56795685
"tag": "Security Monitoring",
56805686
"undo": {

lib/datadog_api_client/inflector.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5149,6 +5149,11 @@ def overrides
51495149
"v2.security_monitoring_rule_anomaly_detection_options_bucket_duration" => "SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration",
51505150
"v2.security_monitoring_rule_anomaly_detection_options_detection_tolerance" => "SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance",
51515151
"v2.security_monitoring_rule_anomaly_detection_options_learning_duration" => "SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration",
5152+
"v2.security_monitoring_rule_bulk_delete_attributes" => "SecurityMonitoringRuleBulkDeleteAttributes",
5153+
"v2.security_monitoring_rule_bulk_delete_data" => "SecurityMonitoringRuleBulkDeleteData",
5154+
"v2.security_monitoring_rule_bulk_delete_payload" => "SecurityMonitoringRuleBulkDeletePayload",
5155+
"v2.security_monitoring_rule_bulk_delete_request_data_type" => "SecurityMonitoringRuleBulkDeleteRequestDataType",
5156+
"v2.security_monitoring_rule_bulk_delete_response" => "SecurityMonitoringRuleBulkDeleteResponse",
51525157
"v2.security_monitoring_rule_bulk_export_attributes" => "SecurityMonitoringRuleBulkExportAttributes",
51535158
"v2.security_monitoring_rule_bulk_export_data" => "SecurityMonitoringRuleBulkExportData",
51545159
"v2.security_monitoring_rule_bulk_export_data_type" => "SecurityMonitoringRuleBulkExportDataType",

lib/datadog_api_client/v2/api/security_monitoring_api.rb

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,73 @@ def attach_jira_issue_with_http_info(body, opts = {})
237237
return data, status_code, headers
238238
end
239239

240+
# Bulk delete security monitoring rules.
241+
#
242+
# @see #bulk_delete_security_monitoring_rules_with_http_info
243+
def bulk_delete_security_monitoring_rules(body, opts = {})
244+
data, _status_code, _headers = bulk_delete_security_monitoring_rules_with_http_info(body, opts)
245+
data
246+
end
247+
248+
# Bulk delete security monitoring rules.
249+
#
250+
# Delete multiple security monitoring rules in a single request. Default rules cannot be deleted.
251+
#
252+
# @param body [SecurityMonitoringRuleBulkDeletePayload]
253+
# @param opts [Hash] the optional parameters
254+
# @return [Array<(SecurityMonitoringRuleBulkDeleteResponse, Integer, Hash)>] SecurityMonitoringRuleBulkDeleteResponse data, response status code and response headers
255+
def bulk_delete_security_monitoring_rules_with_http_info(body, opts = {})
256+
257+
if @api_client.config.debugging
258+
@api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.bulk_delete_security_monitoring_rules ...'
259+
end
260+
# verify the required parameter 'body' is set
261+
if @api_client.config.client_side_validation && body.nil?
262+
fail ArgumentError, "Missing the required parameter 'body' when calling SecurityMonitoringAPI.bulk_delete_security_monitoring_rules"
263+
end
264+
# resource path
265+
local_var_path = '/api/v2/security_monitoring/rules/bulk_delete'
266+
267+
# query parameters
268+
query_params = opts[:query_params] || {}
269+
270+
# header parameters
271+
header_params = opts[:header_params] || {}
272+
# HTTP header 'Accept' (if needed)
273+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
274+
# HTTP header 'Content-Type'
275+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
276+
277+
# form parameters
278+
form_params = opts[:form_params] || {}
279+
280+
# http body (model)
281+
post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
282+
283+
# return_type
284+
return_type = opts[:debug_return_type] || 'SecurityMonitoringRuleBulkDeleteResponse'
285+
286+
# auth_names
287+
auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
288+
289+
new_options = opts.merge(
290+
:operation => :bulk_delete_security_monitoring_rules,
291+
:header_params => header_params,
292+
:query_params => query_params,
293+
:form_params => form_params,
294+
:body => post_body,
295+
:auth_names => auth_names,
296+
:return_type => return_type,
297+
:api_version => "V2"
298+
)
299+
300+
data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options)
301+
if @api_client.config.debugging
302+
@api_client.config.logger.debug "API called: SecurityMonitoringAPI#bulk_delete_security_monitoring_rules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
303+
end
304+
return data, status_code, headers
305+
end
306+
240307
# Bulk update security signals.
241308
#
242309
# @see #bulk_edit_security_monitoring_signals_with_http_info

0 commit comments

Comments
 (0)