Skip to content

Commit 377934b

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 88ddfd71 of spec repo
1 parent 06788d9 commit 377934b

13 files changed

+499
-4
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2024-06-18 16:37:21.936295",
8-
"spec_repo_commit": "848af7a9"
7+
"regenerated": "2024-06-18 23:01:59.313179",
8+
"spec_repo_commit": "88ddfd71"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-06-18 16:37:21.954135",
13-
"spec_repo_commit": "848af7a9"
12+
"regenerated": "2024-06-18 23:01:59.331027",
13+
"spec_repo_commit": "88ddfd71"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17368,6 +17368,19 @@ components:
1736817368
required:
1736917369
- status
1737017370
type: object
17371+
SecurityMonitoringRuleConvertRequest:
17372+
description: Convert the rule from JSON to Terraform.
17373+
oneOf:
17374+
- $ref: '#/components/schemas/SecurityMonitoringStandardRuleCreatePayload'
17375+
- $ref: '#/components/schemas/SecurityMonitoringSignalRuleCreatePayload'
17376+
- $ref: '#/components/schemas/CloudConfigurationRuleCreatePayload'
17377+
SecurityMonitoringRuleConvertResponse:
17378+
description: Result of the test of the rule queries.
17379+
properties:
17380+
terraformContent:
17381+
description: Terraform string as a result of converting the rule query payloads.
17382+
type: string
17383+
type: object
1737117384
SecurityMonitoringRuleCreatePayload:
1737217385
description: Create a new rule.
1737317386
oneOf:
@@ -33197,6 +33210,42 @@ paths:
3319733210
tags:
3319833211
- Security Monitoring
3319933212
x-codegen-request-body-name: body
33213+
/api/v2/security_monitoring/rules/convert:
33214+
post:
33215+
description: Convert a rule from JSON to Terraform.
33216+
operationId: ConvertSecurityMonitoringRuleFromJSONToTerraform
33217+
requestBody:
33218+
content:
33219+
application/json:
33220+
schema:
33221+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertRequest'
33222+
required: true
33223+
responses:
33224+
'200':
33225+
content:
33226+
application/json:
33227+
schema:
33228+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33229+
description: OK
33230+
'400':
33231+
$ref: '#/components/responses/BadRequestResponse'
33232+
'401':
33233+
$ref: '#/components/responses/ConcurrentModificationResponse'
33234+
'403':
33235+
$ref: '#/components/responses/NotAuthorizedResponse'
33236+
'404':
33237+
$ref: '#/components/responses/NotFoundResponse'
33238+
'429':
33239+
$ref: '#/components/responses/TooManyRequestsResponse'
33240+
security:
33241+
- apiKeyAuth: []
33242+
appKeyAuth: []
33243+
- AuthZ:
33244+
- security_monitoring_rules_write
33245+
summary: Convert a rule from JSON to Terraform
33246+
tags:
33247+
- Security Monitoring
33248+
x-codegen-request-body-name: body
3320033249
/api/v2/security_monitoring/rules/test:
3320133250
post:
3320233251
description: Test a rule.
@@ -33354,6 +33403,37 @@ paths:
3335433403
tags:
3335533404
- Security Monitoring
3335633405
x-codegen-request-body-name: body
33406+
/api/v2/security_monitoring/rules/{rule_id}/convert:
33407+
get:
33408+
description: Convert an existing rule from JSON to Terraform.
33409+
operationId: ConvertExistingSecurityMonitoringRule
33410+
parameters:
33411+
- $ref: '#/components/parameters/SecurityMonitoringRuleID'
33412+
responses:
33413+
'200':
33414+
content:
33415+
application/json:
33416+
schema:
33417+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33418+
description: OK
33419+
'400':
33420+
$ref: '#/components/responses/BadRequestResponse'
33421+
'401':
33422+
$ref: '#/components/responses/ConcurrentModificationResponse'
33423+
'403':
33424+
$ref: '#/components/responses/NotAuthorizedResponse'
33425+
'404':
33426+
$ref: '#/components/responses/NotFoundResponse'
33427+
'429':
33428+
$ref: '#/components/responses/TooManyRequestsResponse'
33429+
security:
33430+
- apiKeyAuth: []
33431+
appKeyAuth: []
33432+
- AuthZ:
33433+
- security_monitoring_rules_write
33434+
summary: Convert an existing rule from JSON to Terraform
33435+
tags:
33436+
- Security Monitoring
3335733437
/api/v2/security_monitoring/rules/{rule_id}/test:
3335833438
post:
3335933439
description: Test an existing rule.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2024-06-18T22:50:37.129Z

cassettes/features/v2/security_monitoring/Convert-a-rule-from-JSON-to-Terraform-returns-OK-response.yml

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Convert an existing rule from JSON to Terraform returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
5+
p api_instance.convert_existing_security_monitoring_rule("rule_id")
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Convert a rule from JSON to Terraform returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
5+
6+
body = DatadogAPIClient::V2::SecurityMonitoringStandardRuleCreatePayload.new({
7+
name: "Example-Security-Monitoring",
8+
queries: [
9+
DatadogAPIClient::V2::SecurityMonitoringStandardRuleQuery.new({
10+
query: "@test:true",
11+
aggregation: DatadogAPIClient::V2::SecurityMonitoringRuleQueryAggregation::COUNT,
12+
group_by_fields: [],
13+
distinct_fields: [],
14+
metric: "",
15+
}),
16+
],
17+
filters: [],
18+
cases: [
19+
DatadogAPIClient::V2::SecurityMonitoringRuleCaseCreate.new({
20+
name: "",
21+
status: DatadogAPIClient::V2::SecurityMonitoringRuleSeverity::INFO,
22+
condition: "a > 0",
23+
notifications: [],
24+
}),
25+
],
26+
options: DatadogAPIClient::V2::SecurityMonitoringRuleOptions.new({
27+
evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::FIFTEEN_MINUTES,
28+
keep_alive: DatadogAPIClient::V2::SecurityMonitoringRuleKeepAlive::ONE_HOUR,
29+
max_signal_duration: DatadogAPIClient::V2::SecurityMonitoringRuleMaxSignalDuration::ONE_DAY,
30+
}),
31+
message: "Test rule",
32+
tags: [],
33+
is_enabled: true,
34+
type: DatadogAPIClient::V2::SecurityMonitoringRuleTypeCreate::LOG_DETECTION,
35+
})
36+
p api_instance.convert_security_monitoring_rule_from_json_to_terraform(body)

features/scenarios_model_mapping.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,6 +1639,9 @@
16391639
"v2.CreateSecurityMonitoringRule" => {
16401640
"body" => "SecurityMonitoringRuleCreatePayload",
16411641
},
1642+
"v2.ConvertSecurityMonitoringRuleFromJSONToTerraform" => {
1643+
"body" => "SecurityMonitoringRuleConvertRequest",
1644+
},
16421645
"v2.TestSecurityMonitoringRule" => {
16431646
"body" => "SecurityMonitoringRuleTestRequest",
16441647
},
@@ -1655,6 +1658,9 @@
16551658
"rule_id" => "String",
16561659
"body" => "SecurityMonitoringRuleUpdatePayload",
16571660
},
1661+
"v2.ConvertExistingSecurityMonitoringRule" => {
1662+
"rule_id" => "String",
1663+
},
16581664
"v2.TestExistingSecurityMonitoringRule" => {
16591665
"rule_id" => "String",
16601666
"body" => "SecurityMonitoringRuleTestRequest",

features/v2/security_monitoring.feature

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,48 @@ Feature: Security Monitoring
5757
When the request is sent
5858
Then the response status is 200 OK
5959

60+
@skip @team:DataDog/k9-cloud-security-platform
61+
Scenario: Convert a rule from JSON to Terraform returns "Bad Request" response
62+
Given new "ConvertSecurityMonitoringRuleFromJSONToTerraform" request
63+
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"metric":""}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection"}
64+
When the request is sent
65+
Then the response status is 400 Bad Request
66+
67+
@skip @team:DataDog/k9-cloud-security-platform
68+
Scenario: Convert a rule from JSON to Terraform returns "Not Found" response
69+
Given new "ConvertSecurityMonitoringRuleFromJSONToTerraform" request
70+
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"metric":""}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection"}
71+
When the request is sent
72+
Then the response status is 404 Not Found
73+
74+
@skip-go @skip-java @skip-ruby @skip-typescript @team:DataDog/k9-cloud-security-platform
75+
Scenario: Convert a rule from JSON to Terraform returns "OK" response
76+
Given new "ConvertSecurityMonitoringRuleFromJSONToTerraform" request
77+
And body with value {"name":"{{ unique }}", "queries":[{"query":"@test:true","aggregation":"count","groupByFields":[],"distinctFields":[],"metric":""}],"filters":[],"cases":[{"name":"","status":"info","condition":"a > 0","notifications":[]}],"options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"message":"Test rule","tags":[],"isEnabled":true, "type":"log_detection"}
78+
When the request is sent
79+
Then the response status is 200 OK
80+
81+
@skip @team:DataDog/k9-cloud-security-platform
82+
Scenario: Convert an existing rule from JSON to Terraform returns "Bad Request" response
83+
Given new "ConvertExistingSecurityMonitoringRule" request
84+
And request contains "rule_id" parameter from "REPLACE.ME"
85+
When the request is sent
86+
Then the response status is 400 Bad Request
87+
88+
@skip @team:DataDog/k9-cloud-security-platform
89+
Scenario: Convert an existing rule from JSON to Terraform returns "Not Found" response
90+
Given new "ConvertExistingSecurityMonitoringRule" request
91+
And request contains "rule_id" parameter from "REPLACE.ME"
92+
When the request is sent
93+
Then the response status is 404 Not Found
94+
95+
@skip @team:DataDog/k9-cloud-security-platform
96+
Scenario: Convert an existing rule from JSON to Terraform returns "OK" response
97+
Given new "ConvertExistingSecurityMonitoringRule" request
98+
And request contains "rule_id" parameter from "REPLACE.ME"
99+
When the request is sent
100+
Then the response status is 200 OK
101+
60102
@skip-validation @team:DataDog/k9-cloud-security-platform
61103
Scenario: Create a cloud_configuration rule returns "OK" response
62104
Given new "CreateSecurityMonitoringRule" request

features/v2/undo.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1775,6 +1775,12 @@
17751775
"type": "unsafe"
17761776
}
17771777
},
1778+
"ConvertSecurityMonitoringRuleFromJSONToTerraform": {
1779+
"tag": "Security Monitoring",
1780+
"undo": {
1781+
"type": "idempotent"
1782+
}
1783+
},
17781784
"TestSecurityMonitoringRule": {
17791785
"tag": "Security Monitoring",
17801786
"undo": {
@@ -1805,6 +1811,12 @@
18051811
"type": "idempotent"
18061812
}
18071813
},
1814+
"ConvertExistingSecurityMonitoringRule": {
1815+
"tag": "Security Monitoring",
1816+
"undo": {
1817+
"type": "idempotent"
1818+
}
1819+
},
18081820
"TestExistingSecurityMonitoringRule": {
18091821
"tag": "Security Monitoring",
18101822
"undo": {

lib/datadog_api_client/inflector.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,6 +1964,8 @@ def overrides
19641964
"v2.security_monitoring_list_rules_response" => "SecurityMonitoringListRulesResponse",
19651965
"v2.security_monitoring_rule_case" => "SecurityMonitoringRuleCase",
19661966
"v2.security_monitoring_rule_case_create" => "SecurityMonitoringRuleCaseCreate",
1967+
"v2.security_monitoring_rule_convert_request" => "SecurityMonitoringRuleConvertRequest",
1968+
"v2.security_monitoring_rule_convert_response" => "SecurityMonitoringRuleConvertResponse",
19671969
"v2.security_monitoring_rule_create_payload" => "SecurityMonitoringRuleCreatePayload",
19681970
"v2.security_monitoring_rule_detection_method" => "SecurityMonitoringRuleDetectionMethod",
19691971
"v2.security_monitoring_rule_evaluation_window" => "SecurityMonitoringRuleEvaluationWindow",

0 commit comments

Comments
 (0)