Skip to content

Commit 2e0f2fb

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 326f3019 of spec repo
1 parent 467ec30 commit 2e0f2fb

16 files changed

+539
-6
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-07-03 18:25:16.853230",
8-
"spec_repo_commit": "ce846cd6"
7+
"regenerated": "2024-07-08 17:11:03.803784",
8+
"spec_repo_commit": "326f3019"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-07-03 18:25:16.870911",
13-
"spec_repo_commit": "ce846cd6"
12+
"regenerated": "2024-07-08 17:11:03.821880",
13+
"spec_repo_commit": "326f3019"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17373,6 +17373,18 @@ components:
1737317373
required:
1737417374
- status
1737517375
type: object
17376+
SecurityMonitoringRuleConvertPayload:
17377+
description: Convert a rule from JSON to Terraform.
17378+
oneOf:
17379+
- $ref: '#/components/schemas/SecurityMonitoringStandardRulePayload'
17380+
- $ref: '#/components/schemas/SecurityMonitoringSignalRulePayload'
17381+
SecurityMonitoringRuleConvertResponse:
17382+
description: Result of the convert rule request containing Terraform content.
17383+
properties:
17384+
terraformContent:
17385+
description: Terraform string as a result of converting the rule from JSON.
17386+
type: string
17387+
type: object
1737617388
SecurityMonitoringRuleCreatePayload:
1737717389
description: Create a new rule.
1737817390
oneOf:
@@ -33242,6 +33254,47 @@ paths:
3324233254
tags:
3324333255
- Security Monitoring
3324433256
x-codegen-request-body-name: body
33257+
/api/v2/security_monitoring/rules/convert:
33258+
post:
33259+
description: 'Convert a rule that doesn''t (yet) exist from JSON to Terraform
33260+
for datadog provider
33261+
33262+
resource datadog_security_monitoring_rule.'
33263+
operationId: ConvertSecurityMonitoringRuleFromJSONToTerraform
33264+
requestBody:
33265+
content:
33266+
application/json:
33267+
schema:
33268+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertPayload'
33269+
required: true
33270+
responses:
33271+
'200':
33272+
content:
33273+
application/json:
33274+
schema:
33275+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33276+
description: OK
33277+
'400':
33278+
$ref: '#/components/responses/BadRequestResponse'
33279+
'401':
33280+
$ref: '#/components/responses/ConcurrentModificationResponse'
33281+
'403':
33282+
$ref: '#/components/responses/NotAuthorizedResponse'
33283+
'404':
33284+
$ref: '#/components/responses/NotFoundResponse'
33285+
'429':
33286+
$ref: '#/components/responses/TooManyRequestsResponse'
33287+
security:
33288+
- apiKeyAuth: []
33289+
appKeyAuth: []
33290+
- AuthZ:
33291+
- security_monitoring_rules_write
33292+
summary: Convert a rule from JSON to Terraform
33293+
tags:
33294+
- Security Monitoring
33295+
x-codegen-request-body-name: body
33296+
x-unstable: '**Note**: This feature is in private beta. Reach out to support
33297+
to request access.'
3324533298
/api/v2/security_monitoring/rules/test:
3324633299
post:
3324733300
description: Test a rule.
@@ -33399,6 +33452,39 @@ paths:
3339933452
tags:
3340033453
- Security Monitoring
3340133454
x-codegen-request-body-name: body
33455+
/api/v2/security_monitoring/rules/{rule_id}/convert:
33456+
get:
33457+
description: 'Convert an existing rule from JSON to Terraform for datadog provider
33458+
33459+
resource datadog_security_monitoring_rule.'
33460+
operationId: ConvertExistingSecurityMonitoringRule
33461+
parameters:
33462+
- $ref: '#/components/parameters/SecurityMonitoringRuleID'
33463+
responses:
33464+
'200':
33465+
content:
33466+
application/json:
33467+
schema:
33468+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33469+
description: OK
33470+
'400':
33471+
$ref: '#/components/responses/BadRequestResponse'
33472+
'403':
33473+
$ref: '#/components/responses/NotAuthorizedResponse'
33474+
'404':
33475+
$ref: '#/components/responses/NotFoundResponse'
33476+
'429':
33477+
$ref: '#/components/responses/TooManyRequestsResponse'
33478+
security:
33479+
- apiKeyAuth: []
33480+
appKeyAuth: []
33481+
- AuthZ:
33482+
- security_monitoring_rules_read
33483+
summary: Convert an existing rule from JSON to Terraform
33484+
tags:
33485+
- Security Monitoring
33486+
x-unstable: '**Note**: This feature is in private beta. Reach out to support
33487+
to request access.'
3340233488
/api/v2/security_monitoring/rules/{rule_id}/test:
3340333489
post:
3340433490
description: Test an existing rule.

docs/datadog_api_client.v2.model.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7855,6 +7855,20 @@ security\_monitoring\_rule\_case\_create
78557855
:members:
78567856
:show-inheritance:
78577857

7858+
security\_monitoring\_rule\_convert\_payload
7859+
--------------------------------------------
7860+
7861+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_payload
7862+
:members:
7863+
:show-inheritance:
7864+
7865+
security\_monitoring\_rule\_convert\_response
7866+
---------------------------------------------
7867+
7868+
.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_response
7869+
:members:
7870+
:show-inheritance:
7871+
78587872
security\_monitoring\_rule\_create\_payload
78597873
-------------------------------------------
78607874

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""
2+
Convert an existing rule from JSON to Terraform returns "OK" response
3+
"""
4+
5+
from os import environ
6+
from datadog_api_client import ApiClient, Configuration
7+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
8+
9+
# there is a valid "security_rule" in the system
10+
SECURITY_RULE_ID = environ["SECURITY_RULE_ID"]
11+
12+
configuration = Configuration()
13+
with ApiClient(configuration) as api_client:
14+
api_instance = SecurityMonitoringApi(api_client)
15+
response = api_instance.convert_existing_security_monitoring_rule(
16+
rule_id=SECURITY_RULE_ID,
17+
)
18+
19+
print(response)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"""
2+
Convert a rule from JSON to Terraform returns "OK" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
7+
from datadog_api_client.v2.model.security_monitoring_rule_case_create import SecurityMonitoringRuleCaseCreate
8+
from datadog_api_client.v2.model.security_monitoring_rule_evaluation_window import (
9+
SecurityMonitoringRuleEvaluationWindow,
10+
)
11+
from datadog_api_client.v2.model.security_monitoring_rule_keep_alive import SecurityMonitoringRuleKeepAlive
12+
from datadog_api_client.v2.model.security_monitoring_rule_max_signal_duration import (
13+
SecurityMonitoringRuleMaxSignalDuration,
14+
)
15+
from datadog_api_client.v2.model.security_monitoring_rule_options import SecurityMonitoringRuleOptions
16+
from datadog_api_client.v2.model.security_monitoring_rule_query_aggregation import (
17+
SecurityMonitoringRuleQueryAggregation,
18+
)
19+
from datadog_api_client.v2.model.security_monitoring_rule_severity import SecurityMonitoringRuleSeverity
20+
from datadog_api_client.v2.model.security_monitoring_rule_type_create import SecurityMonitoringRuleTypeCreate
21+
from datadog_api_client.v2.model.security_monitoring_standard_rule_payload import SecurityMonitoringStandardRulePayload
22+
from datadog_api_client.v2.model.security_monitoring_standard_rule_query import SecurityMonitoringStandardRuleQuery
23+
24+
body = SecurityMonitoringStandardRulePayload(
25+
name="Example-Security-Monitoring",
26+
queries=[
27+
SecurityMonitoringStandardRuleQuery(
28+
query="@test:true",
29+
aggregation=SecurityMonitoringRuleQueryAggregation.COUNT,
30+
group_by_fields=[],
31+
distinct_fields=[],
32+
metric="",
33+
),
34+
],
35+
filters=[],
36+
cases=[
37+
SecurityMonitoringRuleCaseCreate(
38+
name="",
39+
status=SecurityMonitoringRuleSeverity.INFO,
40+
condition="a > 0",
41+
notifications=[],
42+
),
43+
],
44+
options=SecurityMonitoringRuleOptions(
45+
evaluation_window=SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES,
46+
keep_alive=SecurityMonitoringRuleKeepAlive.ONE_HOUR,
47+
max_signal_duration=SecurityMonitoringRuleMaxSignalDuration.ONE_DAY,
48+
),
49+
message="Test rule",
50+
tags=[],
51+
is_enabled=True,
52+
type=SecurityMonitoringRuleTypeCreate.LOG_DETECTION,
53+
)
54+
55+
configuration = Configuration()
56+
with ApiClient(configuration) as api_client:
57+
api_instance = SecurityMonitoringApi(api_client)
58+
response = api_instance.convert_security_monitoring_rule_from_json_to_terraform(body=body)
59+
60+
print(response)

src/datadog_api_client/configuration.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ def __init__(
265265
"v2.update_incident_todo": False,
266266
"v2.query_scalar_data": False,
267267
"v2.query_timeseries_data": False,
268+
"v2.convert_existing_security_monitoring_rule": False,
269+
"v2.convert_security_monitoring_rule_from_json_to_terraform": False,
268270
"v2.get_finding": False,
269271
"v2.list_findings": False,
270272
"v2.mute_findings": False,

src/datadog_api_client/v2/api/security_monitoring_api.py

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,13 @@
4444
SecurityMonitoringSignalRuleCreatePayload,
4545
)
4646
from datadog_api_client.v2.model.cloud_configuration_rule_create_payload import CloudConfigurationRuleCreatePayload
47+
from datadog_api_client.v2.model.security_monitoring_rule_convert_response import SecurityMonitoringRuleConvertResponse
48+
from datadog_api_client.v2.model.security_monitoring_rule_convert_payload import SecurityMonitoringRuleConvertPayload
49+
from datadog_api_client.v2.model.security_monitoring_standard_rule_payload import SecurityMonitoringStandardRulePayload
50+
from datadog_api_client.v2.model.security_monitoring_signal_rule_payload import SecurityMonitoringSignalRulePayload
4751
from datadog_api_client.v2.model.security_monitoring_rule_test_response import SecurityMonitoringRuleTestResponse
4852
from datadog_api_client.v2.model.security_monitoring_rule_test_request import SecurityMonitoringRuleTestRequest
4953
from datadog_api_client.v2.model.security_monitoring_rule_validate_payload import SecurityMonitoringRuleValidatePayload
50-
from datadog_api_client.v2.model.security_monitoring_standard_rule_payload import SecurityMonitoringStandardRulePayload
51-
from datadog_api_client.v2.model.security_monitoring_signal_rule_payload import SecurityMonitoringSignalRulePayload
5254
from datadog_api_client.v2.model.cloud_configuration_rule_payload import CloudConfigurationRulePayload
5355
from datadog_api_client.v2.model.security_monitoring_rule_update_payload import SecurityMonitoringRuleUpdatePayload
5456
from datadog_api_client.v2.model.security_monitoring_signals_list_response import SecurityMonitoringSignalsListResponse
@@ -80,6 +82,49 @@ def __init__(self, api_client=None):
8082
api_client = ApiClient(Configuration())
8183
self.api_client = api_client
8284

85+
self._convert_existing_security_monitoring_rule_endpoint = _Endpoint(
86+
settings={
87+
"response_type": (SecurityMonitoringRuleConvertResponse,),
88+
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
89+
"endpoint_path": "/api/v2/security_monitoring/rules/{rule_id}/convert",
90+
"operation_id": "convert_existing_security_monitoring_rule",
91+
"http_method": "GET",
92+
"version": "v2",
93+
},
94+
params_map={
95+
"rule_id": {
96+
"required": True,
97+
"openapi_types": (str,),
98+
"attribute": "rule_id",
99+
"location": "path",
100+
},
101+
},
102+
headers_map={
103+
"accept": ["application/json"],
104+
},
105+
api_client=api_client,
106+
)
107+
108+
self._convert_security_monitoring_rule_from_json_to_terraform_endpoint = _Endpoint(
109+
settings={
110+
"response_type": (SecurityMonitoringRuleConvertResponse,),
111+
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
112+
"endpoint_path": "/api/v2/security_monitoring/rules/convert",
113+
"operation_id": "convert_security_monitoring_rule_from_json_to_terraform",
114+
"http_method": "POST",
115+
"version": "v2",
116+
},
117+
params_map={
118+
"body": {
119+
"required": True,
120+
"openapi_types": (SecurityMonitoringRuleConvertPayload,),
121+
"location": "body",
122+
},
123+
},
124+
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
125+
api_client=api_client,
126+
)
127+
83128
self._create_security_filter_endpoint = _Endpoint(
84129
settings={
85130
"response_type": (SecurityFilterResponse,),
@@ -786,6 +831,45 @@ def __init__(self, api_client=None):
786831
api_client=api_client,
787832
)
788833

834+
def convert_existing_security_monitoring_rule(
835+
self,
836+
rule_id: str,
837+
) -> SecurityMonitoringRuleConvertResponse:
838+
"""Convert an existing rule from JSON to Terraform.
839+
840+
Convert an existing rule from JSON to Terraform for datadog provider
841+
resource datadog_security_monitoring_rule.
842+
843+
:param rule_id: The ID of the rule.
844+
:type rule_id: str
845+
:rtype: SecurityMonitoringRuleConvertResponse
846+
"""
847+
kwargs: Dict[str, Any] = {}
848+
kwargs["rule_id"] = rule_id
849+
850+
return self._convert_existing_security_monitoring_rule_endpoint.call_with_http_info(**kwargs)
851+
852+
def convert_security_monitoring_rule_from_json_to_terraform(
853+
self,
854+
body: Union[
855+
SecurityMonitoringRuleConvertPayload,
856+
SecurityMonitoringStandardRulePayload,
857+
SecurityMonitoringSignalRulePayload,
858+
],
859+
) -> SecurityMonitoringRuleConvertResponse:
860+
"""Convert a rule from JSON to Terraform.
861+
862+
Convert a rule that doesn't (yet) exist from JSON to Terraform for datadog provider
863+
resource datadog_security_monitoring_rule.
864+
865+
:type body: SecurityMonitoringRuleConvertPayload
866+
:rtype: SecurityMonitoringRuleConvertResponse
867+
"""
868+
kwargs: Dict[str, Any] = {}
869+
kwargs["body"] = body
870+
871+
return self._convert_security_monitoring_rule_from_json_to_terraform_endpoint.call_with_http_info(**kwargs)
872+
789873
def create_security_filter(
790874
self,
791875
body: SecurityFilterCreateRequest,

0 commit comments

Comments
 (0)