Skip to content

Commit 824ee7f

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit d83fe206 of spec repo
1 parent 90cbc20 commit 824ee7f

16 files changed

+543
-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-11 14:29:30.187479",
8-
"spec_repo_commit": "3eedf0af"
7+
"regenerated": "2024-07-11 16:35:12.035901",
8+
"spec_repo_commit": "d83fe206"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-07-11 14:29:30.204297",
13-
"spec_repo_commit": "3eedf0af"
12+
"regenerated": "2024-07-11 16:35:12.052518",
13+
"spec_repo_commit": "d83fe206"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17377,6 +17377,18 @@ components:
1737717377
required:
1737817378
- status
1737917379
type: object
17380+
SecurityMonitoringRuleConvertPayload:
17381+
description: Convert a rule from JSON to Terraform.
17382+
oneOf:
17383+
- $ref: '#/components/schemas/SecurityMonitoringStandardRulePayload'
17384+
- $ref: '#/components/schemas/SecurityMonitoringSignalRulePayload'
17385+
SecurityMonitoringRuleConvertResponse:
17386+
description: Result of the convert rule request containing Terraform content.
17387+
properties:
17388+
terraformContent:
17389+
description: Terraform string as a result of converting the rule from JSON.
17390+
type: string
17391+
type: object
1738017392
SecurityMonitoringRuleCreatePayload:
1738117393
description: Create a new rule.
1738217394
oneOf:
@@ -33246,6 +33258,47 @@ paths:
3324633258
tags:
3324733259
- Security Monitoring
3324833260
x-codegen-request-body-name: body
33261+
/api/v2/security_monitoring/rules/convert:
33262+
post:
33263+
description: 'Convert a rule that doesn''t (yet) exist from JSON to Terraform
33264+
for datadog provider
33265+
33266+
resource datadog_security_monitoring_rule.'
33267+
operationId: ConvertSecurityMonitoringRuleFromJSONToTerraform
33268+
requestBody:
33269+
content:
33270+
application/json:
33271+
schema:
33272+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertPayload'
33273+
required: true
33274+
responses:
33275+
'200':
33276+
content:
33277+
application/json:
33278+
schema:
33279+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33280+
description: OK
33281+
'400':
33282+
$ref: '#/components/responses/BadRequestResponse'
33283+
'401':
33284+
$ref: '#/components/responses/ConcurrentModificationResponse'
33285+
'403':
33286+
$ref: '#/components/responses/NotAuthorizedResponse'
33287+
'404':
33288+
$ref: '#/components/responses/NotFoundResponse'
33289+
'429':
33290+
$ref: '#/components/responses/TooManyRequestsResponse'
33291+
security:
33292+
- apiKeyAuth: []
33293+
appKeyAuth: []
33294+
- AuthZ:
33295+
- security_monitoring_rules_write
33296+
summary: Convert a rule from JSON to Terraform
33297+
tags:
33298+
- Security Monitoring
33299+
x-codegen-request-body-name: body
33300+
x-unstable: '**Note**: This feature is in private beta. Reach out to support
33301+
to request access.'
3324933302
/api/v2/security_monitoring/rules/test:
3325033303
post:
3325133304
description: Test a rule.
@@ -33403,6 +33456,39 @@ paths:
3340333456
tags:
3340433457
- Security Monitoring
3340533458
x-codegen-request-body-name: body
33459+
/api/v2/security_monitoring/rules/{rule_id}/convert:
33460+
get:
33461+
description: 'Convert an existing rule from JSON to Terraform for datadog provider
33462+
33463+
resource datadog_security_monitoring_rule.'
33464+
operationId: ConvertExistingSecurityMonitoringRule
33465+
parameters:
33466+
- $ref: '#/components/parameters/SecurityMonitoringRuleID'
33467+
responses:
33468+
'200':
33469+
content:
33470+
application/json:
33471+
schema:
33472+
$ref: '#/components/schemas/SecurityMonitoringRuleConvertResponse'
33473+
description: OK
33474+
'400':
33475+
$ref: '#/components/responses/BadRequestResponse'
33476+
'403':
33477+
$ref: '#/components/responses/NotAuthorizedResponse'
33478+
'404':
33479+
$ref: '#/components/responses/NotFoundResponse'
33480+
'429':
33481+
$ref: '#/components/responses/TooManyRequestsResponse'
33482+
security:
33483+
- apiKeyAuth: []
33484+
appKeyAuth: []
33485+
- AuthZ:
33486+
- security_monitoring_rules_read
33487+
summary: Convert an existing rule from JSON to Terraform
33488+
tags:
33489+
- Security Monitoring
33490+
x-unstable: '**Note**: This feature is in private beta. Reach out to support
33491+
to request access.'
3340633492
/api/v2/security_monitoring/rules/{rule_id}/test:
3340733493
post:
3340833494
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: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
configuration.unstable_operations["convert_existing_security_monitoring_rule"] = True
14+
with ApiClient(configuration) as api_client:
15+
api_instance = SecurityMonitoringApi(api_client)
16+
response = api_instance.convert_existing_security_monitoring_rule(
17+
rule_id=SECURITY_RULE_ID,
18+
)
19+
20+
print(response)
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
configuration.unstable_operations["convert_security_monitoring_rule_from_json_to_terraform"] = True
57+
with ApiClient(configuration) as api_client:
58+
api_instance = SecurityMonitoringApi(api_client)
59+
response = api_instance.convert_security_monitoring_rule_from_json_to_terraform(body=body)
60+
61+
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)