Note: This endpoint is in Preview. If you have any feedback, contact Datadog support.
POST https://api.ap1.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.ap2.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.datadoghq.eu/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.ddog-gov.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.us2.ddog-gov.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.uk1.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.us3.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulkhttps://api.us5.datadoghq.com/api/v2/security_monitoring/terraform/{resource_type}/bulk
Présentation
Export multiple security monitoring resources to Terraform, packaged as a zip archive.
The resource_type path parameter specifies the type of resources to export
and must be one of suppressions, critical_assets, security_filters, or rules.
A maximum of 1000 resources can be exported in a single request.
For rules, partner rules cannot be exported and return a 400 error.
This endpoint requires
any
of the following permissions:
security_monitoring_suppressions_readsecurity_monitoring_rules_readsecurity_monitoring_filters_readOAuth apps require the security_monitoring_filters_read authorization scope to access this endpoint.
Arguments
Paramètres du chemin
The type of security monitoring resource to export.
Requête
Body Data (required)
The resource IDs to export.
Réponse
Exemple de code
// Export security monitoring resources to Terraform returns "OK" response
package main
import (
"context"
"fmt"
"io/ioutil"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
// there is a valid "suppression" in the system
SuppressionDataID := os.Getenv("SUPPRESSION_DATA_ID")
body := datadogV2.SecurityMonitoringTerraformBulkExportRequest{
Data: datadogV2.SecurityMonitoringTerraformBulkExportData{
Attributes: datadogV2.SecurityMonitoringTerraformBulkExportAttributes{
ResourceIds: []string{
SuppressionDataID,
},
},
Type: "bulk_export_resources",
},
}
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
configuration.SetUnstableOperationEnabled("v2.BulkExportSecurityMonitoringTerraformResources", true)
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewSecurityMonitoringApi(apiClient)
resp, r, err := api.BulkExportSecurityMonitoringTerraformResources(ctx, datadogV2.SECURITYMONITORINGTERRAFORMRESOURCETYPE_SUPPRESSIONS, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SecurityMonitoringApi.BulkExportSecurityMonitoringTerraformResources`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := ioutil.ReadAll(resp)
fmt.Fprintf(os.Stdout, "Response from `SecurityMonitoringApi.BulkExportSecurityMonitoringTerraformResources`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Export security monitoring resources to Terraform returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
import com.datadog.api.client.v2.model.SecurityMonitoringTerraformBulkExportAttributes;
import com.datadog.api.client.v2.model.SecurityMonitoringTerraformBulkExportData;
import com.datadog.api.client.v2.model.SecurityMonitoringTerraformBulkExportRequest;
import com.datadog.api.client.v2.model.SecurityMonitoringTerraformResourceType;
import java.io.File;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setUnstableOperationEnabled(
"v2.bulkExportSecurityMonitoringTerraformResources", true);
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
// there is a valid "suppression" in the system
String SUPPRESSION_DATA_ID = System.getenv("SUPPRESSION_DATA_ID");
SecurityMonitoringTerraformBulkExportRequest body =
new SecurityMonitoringTerraformBulkExportRequest()
.data(
new SecurityMonitoringTerraformBulkExportData()
.attributes(
new SecurityMonitoringTerraformBulkExportAttributes()
.resourceIds(Collections.singletonList(SUPPRESSION_DATA_ID)))
.type("bulk_export_resources"));
try {
File result =
apiInstance.bulkExportSecurityMonitoringTerraformResources(
SecurityMonitoringTerraformResourceType.SUPPRESSIONS, body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling"
+ " SecurityMonitoringApi#bulkExportSecurityMonitoringTerraformResources");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
"""
Export security monitoring resources to Terraform returns "OK" response
"""
from os import environ
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_terraform_bulk_export_attributes import (
SecurityMonitoringTerraformBulkExportAttributes,
)
from datadog_api_client.v2.model.security_monitoring_terraform_bulk_export_data import (
SecurityMonitoringTerraformBulkExportData,
)
from datadog_api_client.v2.model.security_monitoring_terraform_bulk_export_request import (
SecurityMonitoringTerraformBulkExportRequest,
)
from datadog_api_client.v2.model.security_monitoring_terraform_resource_type import (
SecurityMonitoringTerraformResourceType,
)
# there is a valid "suppression" in the system
SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"]
body = SecurityMonitoringTerraformBulkExportRequest(
data=SecurityMonitoringTerraformBulkExportData(
attributes=SecurityMonitoringTerraformBulkExportAttributes(
resource_ids=[
SUPPRESSION_DATA_ID,
],
),
type="bulk_export_resources",
),
)
configuration = Configuration()
configuration.unstable_operations["bulk_export_security_monitoring_terraform_resources"] = True
with ApiClient(configuration) as api_client:
api_instance = SecurityMonitoringApi(api_client)
response = api_instance.bulk_export_security_monitoring_terraform_resources(
resource_type=SecurityMonitoringTerraformResourceType.SUPPRESSIONS, body=body
)
print(response.read())
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Export security monitoring resources to Terraform returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.bulk_export_security_monitoring_terraform_resources".to_sym] = true
end
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
# there is a valid "suppression" in the system
SUPPRESSION_DATA_ID = ENV["SUPPRESSION_DATA_ID"]
body = DatadogAPIClient::V2::SecurityMonitoringTerraformBulkExportRequest.new({
data: DatadogAPIClient::V2::SecurityMonitoringTerraformBulkExportData.new({
attributes: DatadogAPIClient::V2::SecurityMonitoringTerraformBulkExportAttributes.new({
resource_ids: [
SUPPRESSION_DATA_ID,
],
}),
type: "bulk_export_resources",
}),
})
p api_instance.bulk_export_security_monitoring_terraform_resources(SecurityMonitoringTerraformResourceType::SUPPRESSIONS, body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Export security monitoring resources to Terraform returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
use datadog_api_client::datadogV2::model::SecurityMonitoringTerraformBulkExportAttributes;
use datadog_api_client::datadogV2::model::SecurityMonitoringTerraformBulkExportData;
use datadog_api_client::datadogV2::model::SecurityMonitoringTerraformBulkExportRequest;
use datadog_api_client::datadogV2::model::SecurityMonitoringTerraformResourceType;
#[tokio::main]
async fn main() {
// there is a valid "suppression" in the system
let suppression_data_id = std::env::var("SUPPRESSION_DATA_ID").unwrap();
let body = SecurityMonitoringTerraformBulkExportRequest::new(
SecurityMonitoringTerraformBulkExportData::new(
SecurityMonitoringTerraformBulkExportAttributes::new(vec![suppression_data_id.clone()]),
"bulk_export_resources".to_string(),
),
);
let mut configuration = datadog::Configuration::new();
configuration
.set_unstable_operation_enabled("v2.BulkExportSecurityMonitoringTerraformResources", true);
let api = SecurityMonitoringAPI::with_config(configuration);
let resp = api
.bulk_export_security_monitoring_terraform_resources(
SecurityMonitoringTerraformResourceType::SUPPRESSIONS,
body,
)
.await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
* Export security monitoring resources to Terraform returns "OK" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
configuration.unstableOperations[
"v2.bulkExportSecurityMonitoringTerraformResources"
] = true;
const apiInstance = new v2.SecurityMonitoringApi(configuration);
// there is a valid "suppression" in the system
const SUPPRESSION_DATA_ID = process.env.SUPPRESSION_DATA_ID as string;
const params: v2.SecurityMonitoringApiBulkExportSecurityMonitoringTerraformResourcesRequest =
{
body: {
data: {
attributes: {
resourceIds: [SUPPRESSION_DATA_ID],
},
type: "bulk_export_resources",
},
},
resourceType: "suppressions",
};
apiInstance
.bulkExportSecurityMonitoringTerraformResources(params)
.then((data: client.HttpFile) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"