Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76194,6 +76194,53 @@ components:
required:
- status
type: object
SecurityMonitoringRuleConvertBulkAttributes:
description: Attributes for bulk converting security monitoring rules to Terraform.
properties:
ruleIds:
description: "List of rule IDs to convert. Each rule will be included in the resulting ZIP file\nas a separate Terraform file."
example:
- def-000-u7q
- def-000-7dd
items:
description: A rule ID to include in the bulk convert.
type: string
minItems: 1
type: array
required:
- ruleIds
type: object
SecurityMonitoringRuleConvertBulkData:
description: Data for bulk converting security monitoring rules to Terraform.
properties:
attributes:
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkAttributes"
id:
description: Request ID.
example: convert_bulk
type: string
type:
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkDataType"
required:
- attributes
- type
type: object
SecurityMonitoringRuleConvertBulkDataType:
description: The type of the resource.
enum:
- security_monitoring_rules_convert_bulk
example: security_monitoring_rules_convert_bulk
type: string
x-enum-varnames:
- SECURITY_MONITORING_RULES_CONVERT_BULK
SecurityMonitoringRuleConvertBulkPayload:
description: Payload for bulk converting security monitoring rules to Terraform.
properties:
data:
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkData"
required:
- data
type: object
SecurityMonitoringRuleConvertPayload:
description: Convert a rule from JSON to Terraform.
oneOf:
Expand Down Expand Up @@ -153576,6 +153623,63 @@ paths:
operator: OR
permissions:
- security_monitoring_rules_write
/api/v2/security_monitoring/rules/convert/bulk:
post:
description: |-
Convert a list of existing security monitoring rules to Terraform for the Datadog provider
resource `datadog_security_monitoring_rule`. Returns a ZIP archive containing one Terraform
file per rule. You can convert rules for the following types:
- App and API Protection
- Cloud SIEM (log detection and signal correlation)
- Workload Protection
operationId: BulkConvertExistingSecurityMonitoringRules
requestBody:
content:
"application/json":
examples:
default:
value:
data:
attributes:
ruleIds:
- def-000-u7q
- def-000-7dd
id: convert_bulk
type: security_monitoring_rules_convert_bulk
schema:
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkPayload"
required: true
responses:
"200":
content:
application/zip:
examples:
default:
value: "<binary zip data>"
schema:
format: binary
type: string
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
"403":
$ref: "#/components/responses/NotAuthorizedResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ:
- security_monitoring_rules_read
summary: Bulk convert rules to Terraform
tags: ["Security Monitoring"]
x-codegen-request-body-name: body
"x-permission":
operator: OR
permissions:
- security_monitoring_rules_read
/api/v2/security_monitoring/rules/test:
post:
description: |-
Expand Down
28 changes: 28 additions & 0 deletions docs/datadog_api_client.v2.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33163,6 +33163,34 @@ datadog\_api\_client.v2.model.security\_monitoring\_rule\_case\_create module
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_convert\_bulk\_attributes module
------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_attributes
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_convert\_bulk\_data module
------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_convert\_bulk\_data\_type module
------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data_type
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_convert\_bulk\_payload module
---------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_payload
:members:
:show-inheritance:

datadog\_api\_client.v2.model.security\_monitoring\_rule\_convert\_payload module
---------------------------------------------------------------------------------

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
Bulk convert rules to Terraform returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_attributes import (
SecurityMonitoringRuleConvertBulkAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data import SecurityMonitoringRuleConvertBulkData
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data_type import (
SecurityMonitoringRuleConvertBulkDataType,
)
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_payload import (
SecurityMonitoringRuleConvertBulkPayload,
)

body = SecurityMonitoringRuleConvertBulkPayload(
data=SecurityMonitoringRuleConvertBulkData(
attributes=SecurityMonitoringRuleConvertBulkAttributes(
rule_ids=[
"def-000-u7q",
"def-000-7dd",
],
),
id="convert_bulk",
type=SecurityMonitoringRuleConvertBulkDataType.SECURITY_MONITORING_RULES_CONVERT_BULK,
),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = SecurityMonitoringApi(api_client)
response = api_instance.bulk_convert_existing_security_monitoring_rules(body=body)

print(response.read())
45 changes: 45 additions & 0 deletions src/datadog_api_client/v2/api/security_monitoring_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@
from datadog_api_client.v2.model.security_monitoring_rule_convert_payload import SecurityMonitoringRuleConvertPayload
from datadog_api_client.v2.model.security_monitoring_standard_rule_payload import SecurityMonitoringStandardRulePayload
from datadog_api_client.v2.model.security_monitoring_signal_rule_payload import SecurityMonitoringSignalRulePayload
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_payload import (
SecurityMonitoringRuleConvertBulkPayload,
)
from datadog_api_client.v2.model.security_monitoring_rule_test_response import SecurityMonitoringRuleTestResponse
from datadog_api_client.v2.model.security_monitoring_rule_test_request import SecurityMonitoringRuleTestRequest
from datadog_api_client.v2.model.security_monitoring_rule_validate_payload import SecurityMonitoringRuleValidatePayload
Expand Down Expand Up @@ -353,6 +356,26 @@ def __init__(self, api_client=None):
api_client=api_client,
)

self._bulk_convert_existing_security_monitoring_rules_endpoint = _Endpoint(
settings={
"response_type": (file_type,),
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
"endpoint_path": "/api/v2/security_monitoring/rules/convert/bulk",
"operation_id": "bulk_convert_existing_security_monitoring_rules",
"http_method": "POST",
"version": "v2",
},
params_map={
"body": {
"required": True,
"openapi_types": (SecurityMonitoringRuleConvertBulkPayload,),
"location": "body",
},
},
headers_map={"accept": ["application/zip", "application/json"], "content_type": ["application/json"]},
api_client=api_client,
)

self._bulk_create_sample_log_generation_subscriptions_endpoint = _Endpoint(
settings={
"response_type": (SampleLogGenerationBulkSubscriptionResponse,),
Expand Down Expand Up @@ -3892,6 +3915,28 @@ def batch_get_security_monitoring_dataset_dependencies(

return self._batch_get_security_monitoring_dataset_dependencies_endpoint.call_with_http_info(**kwargs)

def bulk_convert_existing_security_monitoring_rules(
self,
body: SecurityMonitoringRuleConvertBulkPayload,
) -> file_type:
"""Bulk convert rules to Terraform.

Convert a list of existing security monitoring rules to Terraform for the Datadog provider
resource ``datadog_security_monitoring_rule``. Returns a ZIP archive containing one Terraform
file per rule. You can convert rules for the following types:

* App and API Protection
* Cloud SIEM (log detection and signal correlation)
* Workload Protection

:type body: SecurityMonitoringRuleConvertBulkPayload
:rtype: file_type
"""
kwargs: Dict[str, Any] = {}
kwargs["body"] = body

return self._bulk_convert_existing_security_monitoring_rules_endpoint.call_with_http_info(**kwargs)

def bulk_create_sample_log_generation_subscriptions(
self,
body: SampleLogGenerationBulkSubscriptionRequest,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import List

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
)


class SecurityMonitoringRuleConvertBulkAttributes(ModelNormal):
validations = {
"rule_ids": {
"min_items": 1,
},
}

@cached_property
def openapi_types(_):
return {
"rule_ids": ([str],),
}

attribute_map = {
"rule_ids": "ruleIds",
}

def __init__(self_, rule_ids: List[str], **kwargs):
"""
Attributes for bulk converting security monitoring rules to Terraform.

:param rule_ids: List of rule IDs to convert. Each rule will be included in the resulting ZIP file
as a separate Terraform file.
:type rule_ids: [str]
"""
super().__init__(kwargs)

self_.rule_ids = rule_ids
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import Union, TYPE_CHECKING

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
unset,
UnsetType,
)


if TYPE_CHECKING:
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_attributes import (
SecurityMonitoringRuleConvertBulkAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data_type import (
SecurityMonitoringRuleConvertBulkDataType,
)


class SecurityMonitoringRuleConvertBulkData(ModelNormal):
@cached_property
def openapi_types(_):
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_attributes import (
SecurityMonitoringRuleConvertBulkAttributes,
)
from datadog_api_client.v2.model.security_monitoring_rule_convert_bulk_data_type import (
SecurityMonitoringRuleConvertBulkDataType,
)

return {
"attributes": (SecurityMonitoringRuleConvertBulkAttributes,),
"id": (str,),
"type": (SecurityMonitoringRuleConvertBulkDataType,),
}

attribute_map = {
"attributes": "attributes",
"id": "id",
"type": "type",
}

def __init__(
self_,
attributes: SecurityMonitoringRuleConvertBulkAttributes,
type: SecurityMonitoringRuleConvertBulkDataType,
id: Union[str, UnsetType] = unset,
**kwargs,
):
"""
Data for bulk converting security monitoring rules to Terraform.

:param attributes: Attributes for bulk converting security monitoring rules to Terraform.
:type attributes: SecurityMonitoringRuleConvertBulkAttributes

:param id: Request ID.
:type id: str, optional

:param type: The type of the resource.
:type type: SecurityMonitoringRuleConvertBulkDataType
"""
if id is not unset:
kwargs["id"] = id
super().__init__(kwargs)

self_.attributes = attributes
self_.type = type
Loading
Loading