Skip to content

Commit 04b8059

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 88ddfd71 of spec repo
1 parent dc91729 commit 04b8059

File tree

14 files changed

+664
-4
lines changed

14 files changed

+664
-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:25.097845",
8-
"spec_repo_commit": "848af7a9"
7+
"regenerated": "2024-06-18 23:01:51.082661",
8+
"spec_repo_commit": "88ddfd71"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-06-18 16:37:25.115736",
13-
"spec_repo_commit": "848af7a9"
12+
"regenerated": "2024-06-18 23:01:51.100169",
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"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"log": {
3+
"_recordingName": "Security Monitoring/Convert a rule from JSON to Terraform returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.5"
8+
},
9+
"entries": [
10+
{
11+
"_id": "05c75f1c73d3863ace2fecea683b954d",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 432,
16+
"cookies": [],
17+
"headers": [
18+
{
19+
"_fromType": "array",
20+
"name": "accept",
21+
"value": "application/json"
22+
},
23+
{
24+
"_fromType": "array",
25+
"name": "content-type",
26+
"value": "application/json"
27+
}
28+
],
29+
"headersSize": 616,
30+
"httpVersion": "HTTP/1.1",
31+
"method": "POST",
32+
"postData": {
33+
"mimeType": "application/json",
34+
"params": [],
35+
"text": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Convert_a_rule_from_JSON_to_Terraform_returns_OK_response-1718751037\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metric\":\"\",\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}"
36+
},
37+
"queryString": [],
38+
"url": "https://api.datadoghq.com/api/v2/security_monitoring/rules/convert"
39+
},
40+
"response": {
41+
"bodySize": 747,
42+
"content": {
43+
"mimeType": "application/json",
44+
"size": 747,
45+
"text": "{\"terraformContent\":\"resource \\\"datadog_security_monitoring_rule\\\" \\\"test-convert_a_rule_from_json_to_terraform_returns_ok_response-1718751037\\\" {\\n\\tname = \\\"Test-Convert_a_rule_from_JSON_to_Terraform_returns_OK_response-1718751037\\\"\\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}\\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\"}\n"
46+
},
47+
"cookies": [],
48+
"headers": [
49+
{
50+
"name": "content-type",
51+
"value": "application/json"
52+
}
53+
],
54+
"headersSize": 654,
55+
"httpVersion": "HTTP/1.1",
56+
"redirectURL": "",
57+
"status": 200,
58+
"statusText": "OK"
59+
},
60+
"startedDateTime": "2024-06-18T22:50:37.139Z",
61+
"time": 309
62+
}
63+
],
64+
"pages": [],
65+
"version": "1.2"
66+
}
67+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Convert an existing rule from JSON to Terraform returns "OK" response
3+
*/
4+
5+
import { client, v2 } from "@datadog/datadog-api-client";
6+
7+
const configuration = client.createConfiguration();
8+
const apiInstance = new v2.SecurityMonitoringApi(configuration);
9+
10+
const params: v2.SecurityMonitoringApiConvertExistingSecurityMonitoringRuleRequest =
11+
{
12+
ruleId: "rule_id",
13+
};
14+
15+
apiInstance
16+
.convertExistingSecurityMonitoringRule(params)
17+
.then((data: v2.SecurityMonitoringRuleConvertResponse) => {
18+
console.log(
19+
"API called successfully. Returned data: " + JSON.stringify(data)
20+
);
21+
})
22+
.catch((error: any) => console.error(error));
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* Convert a rule from JSON to Terraform returns "OK" response
3+
*/
4+
5+
import { client, v2 } from "@datadog/datadog-api-client";
6+
7+
const configuration = client.createConfiguration();
8+
const apiInstance = new v2.SecurityMonitoringApi(configuration);
9+
10+
const params: v2.SecurityMonitoringApiConvertSecurityMonitoringRuleFromJSONToTerraformRequest =
11+
{
12+
body: {
13+
name: "Example-Security-Monitoring",
14+
queries: [
15+
{
16+
query: "@test:true",
17+
aggregation: "count",
18+
groupByFields: [],
19+
distinctFields: [],
20+
metric: "",
21+
},
22+
],
23+
filters: [],
24+
cases: [
25+
{
26+
name: "",
27+
status: "info",
28+
condition: "a > 0",
29+
notifications: [],
30+
},
31+
],
32+
options: {
33+
evaluationWindow: 900,
34+
keepAlive: 3600,
35+
maxSignalDuration: 86400,
36+
},
37+
message: "Test rule",
38+
tags: [],
39+
isEnabled: true,
40+
type: "log_detection",
41+
},
42+
};
43+
44+
apiInstance
45+
.convertSecurityMonitoringRuleFromJSONToTerraform(params)
46+
.then((data: v2.SecurityMonitoringRuleConvertResponse) => {
47+
console.log(
48+
"API called successfully. Returned data: " + JSON.stringify(data)
49+
);
50+
})
51+
.catch((error: any) => console.error(error));

features/support/scenarios_model_mapping.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4616,6 +4616,13 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = {
46164616
},
46174617
"operationResponseType": "SecurityMonitoringRuleResponse",
46184618
},
4619+
"v2.ConvertSecurityMonitoringRuleFromJSONToTerraform": {
4620+
"body": {
4621+
"type": "SecurityMonitoringRuleConvertRequest",
4622+
"format": "",
4623+
},
4624+
"operationResponseType": "SecurityMonitoringRuleConvertResponse",
4625+
},
46194626
"v2.TestSecurityMonitoringRule": {
46204627
"body": {
46214628
"type": "SecurityMonitoringRuleTestRequest",
@@ -4655,6 +4662,13 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = {
46554662
},
46564663
"operationResponseType": "SecurityMonitoringRuleResponse",
46574664
},
4665+
"v2.ConvertExistingSecurityMonitoringRule": {
4666+
"ruleId": {
4667+
"type": "string",
4668+
"format": "",
4669+
},
4670+
"operationResponseType": "SecurityMonitoringRuleConvertResponse",
4671+
},
46584672
"v2.TestExistingSecurityMonitoringRule": {
46594673
"ruleId": {
46604674
"type": "string",

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": {

0 commit comments

Comments
 (0)