Skip to content

Commit a629034

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Update security_monitoring endpoints for cloud_configuration rules (#949)
Co-authored-by: ci.datadog-api-spec <[email protected]> Co-authored-by: api-clients-generation-pipeline[bot] <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com>
1 parent cbc9eb3 commit a629034

26 files changed

+1143
-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.4",
7-
"regenerated": "2022-12-13 20:15:30.242009",
8-
"spec_repo_commit": "cb07e37b"
7+
"regenerated": "2022-12-14 13:19:02.571339",
8+
"spec_repo_commit": "72a02090"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.4",
12-
"regenerated": "2022-12-13 20:15:30.253488",
13-
"spec_repo_commit": "cb07e37b"
12+
"regenerated": "2022-12-14 13:19:02.583378",
13+
"spec_repo_commit": "72a02090"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,6 +1761,148 @@ components:
17611761
example: infra_host
17621762
type: string
17631763
type: object
1764+
CloudConfigurationComplianceRuleOptions:
1765+
description: Options for cloud_configuration rules.
1766+
properties:
1767+
complexRule:
1768+
description: 'Whether the rule is a complex one.
1769+
1770+
Must be set to true if `regoRule.resourceTypes` contains more than one
1771+
item. Defaults to false.
1772+
1773+
'
1774+
type: boolean
1775+
regoRule:
1776+
$ref: '#/components/schemas/CloudConfigurationRegoRule'
1777+
required:
1778+
- regoRule
1779+
type: object
1780+
CloudConfigurationRegoRule:
1781+
description: Rule details.
1782+
properties:
1783+
policy:
1784+
description: 'The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/'
1785+
example: "package datadog\n\nimport data.datadog.output as dd_output\nimport
1786+
future.keywords.contains\nimport future.keywords.if\nimport future.keywords.in\n\neval(resource)
1787+
= \"skip\" if {\n # Logic that evaluates to true if the resource should
1788+
be skipped\n true\n} else = \"pass\" {\n # Logic that evaluates to true
1789+
if the resource is compliant\n true\n} else = \"fail\" {\n # Logic that
1790+
evaluates to true if the resource is not compliant\n true\n}\n\n# This
1791+
part remains unchanged for all rules\nresults contains result if {\n some
1792+
resource in input.resources[input.main_resource_type]\n result := dd_output.format(resource,
1793+
eval(resource))\n}\n"
1794+
type: string
1795+
resourceTypes:
1796+
description: List of resource types that will be evaluated upon. Must have
1797+
at least one element.
1798+
example:
1799+
- gcp_iam_service_account
1800+
- gcp_iam_policy
1801+
items:
1802+
type: string
1803+
type: array
1804+
required:
1805+
- policy
1806+
- resourceTypes
1807+
type: object
1808+
CloudConfigurationRuleCaseCreate:
1809+
description: Description of signals.
1810+
properties:
1811+
notifications:
1812+
description: Notification targets for each rule case.
1813+
items:
1814+
description: Notification.
1815+
type: string
1816+
type: array
1817+
status:
1818+
$ref: '#/components/schemas/SecurityMonitoringRuleSeverity'
1819+
required:
1820+
- status
1821+
type: object
1822+
CloudConfigurationRuleComplianceSignalOptions:
1823+
description: How to generate compliance signals. Useful for cloud_configuration
1824+
rules only.
1825+
properties:
1826+
userActivationStatus:
1827+
description: Whether signals will be sent.
1828+
type: boolean
1829+
userGroupByFields:
1830+
description: Fields to use to group findings by when sending signals.
1831+
items:
1832+
type: string
1833+
type: array
1834+
type: object
1835+
CloudConfigurationRuleCreatePayload:
1836+
description: Create a new cloud configuration rule.
1837+
properties:
1838+
cases:
1839+
description: 'Description of generated findings and signals (severity and
1840+
channels to be notified in case of a signal). Must contain exactly one
1841+
item.
1842+
1843+
'
1844+
items:
1845+
$ref: '#/components/schemas/CloudConfigurationRuleCaseCreate'
1846+
type: array
1847+
complianceSignalOptions:
1848+
$ref: '#/components/schemas/CloudConfigurationRuleComplianceSignalOptions'
1849+
isEnabled:
1850+
description: Whether the rule is enabled.
1851+
example: true
1852+
type: boolean
1853+
message:
1854+
description: Message in markdown format for generated findings and signals.
1855+
example: '#Description
1856+
1857+
Explanation of the rule.
1858+
1859+
1860+
#Remediation
1861+
1862+
How to fix the security issue.
1863+
1864+
'
1865+
type: string
1866+
name:
1867+
description: The name of the rule.
1868+
example: My security monitoring rule.
1869+
type: string
1870+
options:
1871+
$ref: '#/components/schemas/CloudConfigurationRuleOptions'
1872+
tags:
1873+
description: Tags for generated findings and signals.
1874+
example:
1875+
- env:prod
1876+
- team:security
1877+
items:
1878+
description: Tag.
1879+
type: string
1880+
type: array
1881+
type:
1882+
$ref: '#/components/schemas/CloudConfigurationRuleType'
1883+
required:
1884+
- name
1885+
- isEnabled
1886+
- options
1887+
- complianceSignalOptions
1888+
- cases
1889+
- message
1890+
type: object
1891+
CloudConfigurationRuleOptions:
1892+
description: Options on cloud configuration rules.
1893+
properties:
1894+
complianceRuleOptions:
1895+
$ref: '#/components/schemas/CloudConfigurationComplianceRuleOptions'
1896+
required:
1897+
- complianceRuleOptions
1898+
type: object
1899+
CloudConfigurationRuleType:
1900+
description: The rule type.
1901+
enum:
1902+
- cloud_configuration
1903+
type: string
1904+
x-enum-varnames:
1905+
- CLOUD_CONFIGURATION
17641906
CloudWorkloadSecurityAgentRuleAttributes:
17651907
description: A Cloud Workload Security Agent rule returned by the API.
17661908
properties:
@@ -8344,6 +8486,7 @@ components:
83448486
oneOf:
83458487
- $ref: '#/components/schemas/SecurityMonitoringStandardRuleCreatePayload'
83468488
- $ref: '#/components/schemas/SecurityMonitoringSignalRuleCreatePayload'
8489+
- $ref: '#/components/schemas/CloudConfigurationRuleCreatePayload'
83478490
type: object
83488491
SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv:
83498492
description: 'If true, signals in non-production environments have a lower severity
@@ -8549,6 +8692,8 @@ components:
85498692
SecurityMonitoringRuleOptions:
85508693
description: Options on rules.
85518694
properties:
8695+
complianceRuleOptions:
8696+
$ref: '#/components/schemas/CloudConfigurationComplianceRuleOptions'
85528697
decreaseCriticalityBasedOnEnv:
85538698
$ref: '#/components/schemas/SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv'
85548699
detectionMethod:
@@ -8643,6 +8788,8 @@ components:
86438788
items:
86448789
$ref: '#/components/schemas/SecurityMonitoringRuleCase'
86458790
type: array
8791+
complianceSignalOptions:
8792+
$ref: '#/components/schemas/CloudConfigurationRuleComplianceSignalOptions'
86468793
filters:
86478794
description: Additional queries to filter matched events before they are
86488795
processed.
@@ -9323,6 +9470,8 @@ components:
93239470
items:
93249471
$ref: '#/components/schemas/SecurityMonitoringRuleCase'
93259472
type: array
9473+
complianceSignalOptions:
9474+
$ref: '#/components/schemas/CloudConfigurationRuleComplianceSignalOptions'
93269475
createdAt:
93279476
description: When the rule was created, timestamp in milliseconds.
93289477
format: int64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"2022-12-14T08:46:48.145Z"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
{
2+
"log": {
3+
"_recordingName": "Security Monitoring/Create a cloud_configuration rule returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.5"
8+
},
9+
"entries": [
10+
{
11+
"_id": "772e2279ea37038de0db5cedb9ca0988",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 452,
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": 588,
30+
"httpVersion": "HTTP/1.1",
31+
"method": "POST",
32+
"postData": {
33+
"mimeType": "application/json",
34+
"params": [],
35+
"text": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"isEnabled\":false,\"message\":\"ddd\",\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1671007608_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]}}},\"tags\":[\"my:tag\"],\"type\":\"cloud_configuration\"}"
36+
},
37+
"queryString": [],
38+
"url": "https://api.datadoghq.com/api/v2/security_monitoring/rules"
39+
},
40+
"response": {
41+
"bodySize": 953,
42+
"content": {
43+
"mimeType": "application/json",
44+
"size": 953,
45+
"text": "{\"creationAuthorId\":1445416,\"tags\":[\"my:tag\"],\"type\":\"cloud_configuration\",\"isEnabled\":false,\"hasExtendedTitle\":true,\"message\":\"ddd\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"regoRule\":{\"policy\":\"package datadog\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false},\"keepAlive\":21600},\"version\":1,\"createdAt\":1671007608778,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"userActivationStatus\":true,\"defaultGroupByFields\":null,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"status\":\"info\",\"notifications\":[\"channel\"],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"azn-bwu-qdq\",\"isDefault\":false,\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1671007608_cloud\"}\n"
46+
},
47+
"cookies": [],
48+
"headers": [
49+
{
50+
"name": "content-type",
51+
"value": "application/json"
52+
}
53+
],
54+
"headersSize": 627,
55+
"httpVersion": "HTTP/1.1",
56+
"redirectURL": "",
57+
"status": 200,
58+
"statusText": "OK"
59+
},
60+
"startedDateTime": "2022-12-14T08:46:48.168Z",
61+
"time": 650
62+
},
63+
{
64+
"_id": "a62082f226fe37813367e23af6dfb0e5",
65+
"_order": 0,
66+
"cache": {},
67+
"request": {
68+
"bodySize": 0,
69+
"cookies": [],
70+
"headers": [
71+
{
72+
"_fromType": "array",
73+
"name": "accept",
74+
"value": "*/*"
75+
}
76+
],
77+
"headersSize": 536,
78+
"httpVersion": "HTTP/1.1",
79+
"method": "DELETE",
80+
"queryString": [],
81+
"url": "https://api.datadoghq.com/api/v2/security_monitoring/rules/azn-bwu-qdq"
82+
},
83+
"response": {
84+
"bodySize": 0,
85+
"content": {
86+
"mimeType": "text/plain",
87+
"size": 0
88+
},
89+
"cookies": [],
90+
"headers": [],
91+
"headersSize": 574,
92+
"httpVersion": "HTTP/1.1",
93+
"redirectURL": "",
94+
"status": 204,
95+
"statusText": "No Content"
96+
},
97+
"startedDateTime": "2022-12-14T08:46:48.846Z",
98+
"time": 145
99+
}
100+
],
101+
"pages": [],
102+
"version": "1.2"
103+
}
104+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"2022-12-14T08:46:49.009Z"

0 commit comments

Comments
 (0)