Skip to content

Commit 456dbdb

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Fix the Convert To Terraform Cassettes (#3280)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent a93ee21 commit 456dbdb

9 files changed

+47
-35
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "c3e3e39",
3-
"generated": "2025-08-13 13:37:18.479"
2+
"spec_repo_commit": "8001cbb",
3+
"generated": "2025-08-13 20:28:47.190"
44
}

examples/v2/security-monitoring/ConvertExistingSecurityMonitoringRule.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ import (
1313
)
1414

1515
func main() {
16-
// there is a valid "security_rule" in the system
17-
SecurityRuleID := os.Getenv("SECURITY_RULE_ID")
16+
// there is a valid "security_rule_hash" in the system
17+
SecurityRuleHashID := os.Getenv("SECURITY_RULE_HASH_ID")
1818

1919
ctx := datadog.NewDefaultContext(context.Background())
2020
configuration := datadog.NewConfiguration()
2121
apiClient := datadog.NewAPIClient(configuration)
2222
api := datadogV2.NewSecurityMonitoringApi(apiClient)
23-
resp, r, err := api.ConvertExistingSecurityMonitoringRule(ctx, SecurityRuleID)
23+
resp, r, err := api.ConvertExistingSecurityMonitoringRule(ctx, SecurityRuleHashID)
2424

2525
if err != nil {
2626
fmt.Fprintf(os.Stderr, "Error when calling `SecurityMonitoringApi.ConvertExistingSecurityMonitoringRule`: %v\n", err)

examples/v2/security-monitoring/ConvertSecurityMonitoringRuleFromJSONToTerraform.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
func main() {
1616
body := datadogV2.SecurityMonitoringRuleConvertPayload{
1717
SecurityMonitoringStandardRulePayload: &datadogV2.SecurityMonitoringStandardRulePayload{
18-
Name: "Example-Security-Monitoring",
18+
Name: "_49768568946de993",
1919
Queries: []datadogV2.SecurityMonitoringStandardRuleQuery{
2020
{
2121
Query: datadog.PtrString("@test:true"),
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025-04-24T11:34:50.866Z
1+
2025-08-13T20:13:44.192Z

tests/scenarios/cassettes/TestScenarios/v2/Feature_Security_Monitoring/Scenario_Convert_a_rule_from_JSON_to_Terraform_returns_OK_response.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
interactions:
22
- request:
33
body: |
4-
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Convert_a_rule_from_JSON_to_Terraform_returns_OK_response-1745494490","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"metric":"","query":"@test:true"}],"tags":[],"type":"log_detection"}
4+
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"_b87eac89722bbff0","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"metric":"","query":"@test:true"}],"tags":[],"type":"log_detection"}
55
form: {}
66
headers:
77
Accept:
@@ -12,14 +12,14 @@ interactions:
1212
method: POST
1313
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/convert
1414
response:
15-
body: '{"terraformContent":"resource \"datadog_security_monitoring_rule\" \"test-convert_a_rule_from_json_to_terraform_returns_ok_response-1745494490\"
16-
{\n\tname = \"Test-Convert_a_rule_from_JSON_to_Terraform_returns_OK_response-1745494490\"\n\tenabled
17-
= true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields
18-
= []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions
19-
{\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method
20-
= \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus
21-
= \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a \u003e 0\"\n\t}\n\tmessage
22-
= \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"}'
15+
body: '{"terraformContent":"resource \"datadog_security_monitoring_rule\" \"_b87eac89722bbff0\"
16+
{\n\tname = \"_b87eac89722bbff0\"\n\tenabled = true\n\tquery {\n\t\tquery =
17+
\"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation
18+
= \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive
19+
= 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window
20+
= 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications
21+
= []\n\t\tcondition = \"a \u003e 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags
22+
= []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"}'
2323
code: 200
2424
duration: 0ms
2525
headers:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025-04-24T11:34:51.208Z
1+
2025-08-13T20:13:44.611Z

tests/scenarios/cassettes/TestScenarios/v2/Feature_Security_Monitoring/Scenario_Convert_an_existing_rule_from_JSON_to_Terraform_returns_OK_response.yaml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
interactions:
22
- request:
33
body: |
4-
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"Test-Convert_an_existing_rule_from_JSON_to_Terraform_returns_OK_response-1745494491","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"metrics":[],"query":"@test:true"}],"tags":[],"type":"log_detection"}
4+
{"cases":[{"condition":"a \u003e 0","name":"","notifications":[],"status":"info"}],"filters":[],"isEnabled":true,"message":"Test rule","name":"_1166a375f2500467","options":{"evaluationWindow":900,"keepAlive":3600,"maxSignalDuration":86400},"queries":[{"aggregation":"count","distinctFields":[],"groupByFields":[],"metrics":[],"query":"@test:true"}],"tags":[],"type":"log_detection"}
55
form: {}
66
headers:
77
Accept:
@@ -12,8 +12,8 @@ interactions:
1212
method: POST
1313
url: https://api.datadoghq.com/api/v2/security_monitoring/rules
1414
response:
15-
body: '{"name":"Test-Convert_an_existing_rule_from_JSON_to_Terraform_returns_OK_response-1745494491","createdAt":1745494491502,"isDefault":false,"isPartner":false,"isEnabled":true,"isBeta":false,"isDeleted":false,"isDeprecated":false,"queries":[{"query":"@test:true","groupByFields":[],"hasOptionalGroupByFields":false,"distinctFields":[],"aggregation":"count","name":"","dataSource":"logs"}],"options":{"evaluationWindow":900,"detectionMethod":"threshold","maxSignalDuration":86400,"keepAlive":3600},"cases":[{"name":"","status":"info","notifications":[],"condition":"a
16-
\u003e 0"}],"message":"Test rule","tags":[],"hasExtendedTitle":false,"type":"log_detection","filters":[],"version":1,"id":"e60-iv6-d7e","blocking":false,"metadata":{"entities":null,"sources":null},"creationAuthorId":1445416,"creator":{"handle":"[email protected]","name":"frog"},"updater":{"handle":"","name":""}}'
15+
body: '{"name":"_1166a375f2500467","createdAt":1755116024952,"isDefault":false,"isPartner":false,"isEnabled":true,"isBeta":false,"isDeleted":false,"isDeprecated":false,"queries":[{"query":"@test:true","groupByFields":[],"hasOptionalGroupByFields":false,"distinctFields":[],"aggregation":"count","name":"","dataSource":"logs"}],"options":{"evaluationWindow":900,"detectionMethod":"threshold","maxSignalDuration":86400,"keepAlive":3600},"cases":[{"name":"","status":"info","notifications":[],"condition":"a
16+
\u003e 0"}],"message":"Test rule","tags":[],"hasExtendedTitle":false,"type":"log_detection","filters":[],"version":1,"id":"shm-tx8-e8x","blocking":false,"metadata":{"entities":null,"sources":null},"creationAuthorId":1445416,"creator":{"handle":"[email protected]","name":"frog"},"updater":{"handle":"","name":""}}'
1717
code: 200
1818
duration: 0ms
1919
headers:
@@ -28,16 +28,16 @@ interactions:
2828
- application/json
2929
id: 1
3030
method: GET
31-
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/e60-iv6-d7e/convert
31+
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/shm-tx8-e8x/convert
3232
response:
33-
body: '{"terraformContent":"resource \"datadog_security_monitoring_rule\" \"test-convert_an_existing_rule_from_json_to_terraform_returns_ok_response-1745494491\"
34-
{\n\tname = \"Test-Convert_an_existing_rule_from_JSON_to_Terraform_returns_OK_response-1745494491\"\n\tenabled
35-
= true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields
36-
= []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions
37-
{\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method
38-
= \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus
39-
= \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a \u003e 0\"\n\t}\n\tmessage
40-
= \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"}'
33+
body: '{"terraformContent":"resource \"datadog_security_monitoring_rule\" \"_1166a375f2500467\"
34+
{\n\tname = \"_1166a375f2500467\"\n\tenabled = true\n\tquery {\n\t\tquery =
35+
\"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation
36+
= \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive
37+
= 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window
38+
= 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications
39+
= []\n\t\tcondition = \"a \u003e 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags
40+
= []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"}'
4141
code: 200
4242
duration: 0ms
4343
headers:
@@ -52,7 +52,7 @@ interactions:
5252
- '*/*'
5353
id: 2
5454
method: DELETE
55-
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/e60-iv6-d7e
55+
url: https://api.datadoghq.com/api/v2/security_monitoring/rules/shm-tx8-e8x
5656
response:
5757
body: ''
5858
code: 204

tests/scenarios/features/v2/given.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,18 @@
804804
"tag": "Security Monitoring",
805805
"operationId": "CreateSecurityMonitoringRule"
806806
},
807+
{
808+
"parameters": [
809+
{
810+
"name": "body",
811+
"value": "{\n \"name\": \"_{{ unique_hash }}\",\n \"queries\": [{\n \"query\": \"@test:true\",\n \"aggregation\": \"count\",\n \"groupByFields\": [],\n \"distinctFields\": [],\n \"metrics\": []\n }],\n \"filters\": [],\n \"cases\": [{\n \"name\": \"\",\n \"status\": \"info\",\n \"condition\": \"a > 0\",\n \"notifications\": []\n }],\n \"options\": {\n \"evaluationWindow\": 900,\n \"keepAlive\": 3600,\n \"maxSignalDuration\": 86400\n },\n \"message\": \"Test rule\",\n \"tags\": [],\n \"isEnabled\": true,\n \"type\": \"log_detection\"\n}"
812+
}
813+
],
814+
"step": "there is a valid \"security_rule_hash\" in the system",
815+
"key": "security_rule_hash",
816+
"tag": "Security Monitoring",
817+
"operationId": "CreateSecurityMonitoringRule"
818+
},
807819
{
808820
"step": "a valid \"configuration\" in the system",
809821
"key": "configuration",

tests/scenarios/features/v2/security_monitoring.feature

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,10 @@ Feature: Security Monitoring
132132
@team:DataDog/k9-cloud-security-platform
133133
Scenario: Convert a rule from JSON to Terraform returns "OK" response
134134
Given new "ConvertSecurityMonitoringRuleFromJSONToTerraform" request
135-
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"}
135+
And body with value {"name":"_{{ unique_hash }}", "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"}
136136
When the request is sent
137137
Then the response status is 200 OK
138-
And the response "terraformContent" is equal to "resource \"datadog_security_monitoring_rule\" \"{{ unique_lower }}\" {\n\tname = \"{{ unique }}\"\n\tenabled = true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a > 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"
138+
And the response "terraformContent" is equal to "resource \"datadog_security_monitoring_rule\" \"_{{ unique_hash }}\" {\n\tname = \"_{{ unique_hash }}\"\n\tenabled = true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a > 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"
139139

140140
@skip @team:DataDog/k9-cloud-security-platform
141141
Scenario: Convert an existing rule from JSON to Terraform returns "Bad Request" response
@@ -154,11 +154,11 @@ Feature: Security Monitoring
154154
@team:DataDog/k9-cloud-security-platform
155155
Scenario: Convert an existing rule from JSON to Terraform returns "OK" response
156156
Given new "ConvertExistingSecurityMonitoringRule" request
157-
And there is a valid "security_rule" in the system
158-
And request contains "rule_id" parameter from "security_rule.id"
157+
And there is a valid "security_rule_hash" in the system
158+
And request contains "rule_id" parameter from "security_rule_hash.id"
159159
When the request is sent
160160
Then the response status is 200 OK
161-
And the response "terraformContent" is equal to "resource \"datadog_security_monitoring_rule\" \"{{ unique_lower }}\" {\n\tname = \"{{ unique }}\"\n\tenabled = true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a > 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"
161+
And the response "terraformContent" is equal to "resource \"datadog_security_monitoring_rule\" \"_{{ unique_hash }}\" {\n\tname = \"_{{ unique_hash }}\"\n\tenabled = true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\tdistinct_fields = []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a > 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n"
162162

163163
@skip-validation @team:DataDog/k9-cloud-security-platform
164164
Scenario: Create a cloud_configuration rule returns "OK" response

0 commit comments

Comments
 (0)