POST https://api.ap1.datadoghq.com/api/v2/remote_config/products/cws/policy https://api.ap2.datadoghq.com/api/v2/remote_config/products/cws/policy https://api.datadoghq.eu/api/v2/remote_config/products/cws/policy https://api.ddog-gov.com/api/v2/remote_config/products/cws/policy https://api.us2.ddog-gov.com/api/v2/remote_config/products/cws/policy https://api.datadoghq.com/api/v2/remote_config/products/cws/policy https://api.us3.datadoghq.com/api/v2/remote_config/products/cws/policy https://api.us5.datadoghq.com/api/v2/remote_config/products/cws/policy
Overview
Create a new Workload Protection policy with the given parameters.
Note : This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.
Request Body Data (required) The definition of the new Agent policy
Expand All
Object for a single Agent rule
Create a new Cloud Workload Security Agent policy
The description of the policy
Whether the policy is enabled
The host tags defining where this policy is deployed
The host tags defining where this policy is deployed, the inner values are linked with AND, the outer values are linked with OR
The type of the resource, must always be policy
Allowed enum values: policy
default: policy
{
"data" : {
"attributes" : {
"description" : "My agent policy" ,
"enabled" : true ,
"hostTagsLists" : [
[
"env:test"
]
],
"name" : "my_agent_policy_2"
},
"type" : "policy"
}
} Response OK
Response object that includes an Agent policy
Expand All
Object for a single Agent policy
A Cloud Workload Security Agent policy returned by the API
The number of rules with the blocking feature in this policy
Whether the policy is managed by Datadog
The description of the policy
The number of rules that are disabled in this policy
Whether the Agent policy is enabled
The host tags defining where this policy is deployed
The host tags defining where this policy is deployed, the inner values are linked with AND, the outer values are linked with OR
The number of rules in the monitoring state in this policy
Whether the policy is pinned
The version of the policy
The priority of the policy
The number of rules in this policy
Timestamp in milliseconds when the policy was last updated
When the policy was last updated, timestamp in milliseconds
The attributes of the user who last updated the policy
The versions of the policy
The date and time the version was created
The version of the policy
The ID of the Agent policy
The type of the resource, must always be policy
Allowed enum values: policy
default: policy
{
"data" : {
"attributes" : {
"blockingRulesCount" : 100 ,
"datadogManaged" : false ,
"description" : "My agent policy" ,
"disabledRulesCount" : 100 ,
"enabled" : true ,
"hostTags" : [],
"hostTagsLists" : [],
"monitoringRulesCount" : 100 ,
"name" : "my_agent_policy" ,
"pinned" : false ,
"policyType" : "policy" ,
"policyVersion" : "1" ,
"priority" : 10 ,
"ruleCount" : 100 ,
"updateDate" : 1624366480320 ,
"updatedAt" : 1624366480320 ,
"updater" : {
"handle" : "datadog.user@example.com" ,
"name" : "Datadog User"
},
"versions" : [
{
"date" : "string" ,
"name" : "1.47.0-rc2"
}
]
},
"id" : "6517fcc1-cec7-4394-a655-8d6e9d085255" ,
"type" : "policy"
}
} Bad Request
{
"errors" : [
"Bad Request"
]
} Not Authorized
{
"errors" : [
"Bad Request"
]
} Conflict
{
"errors" : [
"Bad Request"
]
} Too many requests
{
"errors" : [
"Bad Request"
]
} Code Example Copy
## default
#
# Curl command curl -X POST "https://api.ap1.datadoghq.com "https://api.ap2.datadoghq.com "https://api.datadoghq.eu "https://api.ddog-gov.com "https://api.us2.ddog-gov.com "https://api.datadoghq.com "https://api.us3.datadoghq.com "https://api.us5.datadoghq.com /api/v2/remote_config/products/cws/policy " \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY} " \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY} " \
-d @- << EOF
{
"data": {
"attributes": {
"description": "My agent policy",
"enabled": true,
"hostTagsLists": [
[
"env:test"
]
],
"name": "my_agent_policy"
},
"type": "policy"
}
}
EOF
// Create a Workload Protection policy returns "OK" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main () {
body := datadogV2 . CloudWorkloadSecurityAgentPolicyCreateRequest {
Data : datadogV2 . CloudWorkloadSecurityAgentPolicyCreateData {
Attributes : datadogV2 . CloudWorkloadSecurityAgentPolicyCreateAttributes {
Description : datadog . PtrString ( "My agent policy" ),
Enabled : datadog . PtrBool ( true ),
HostTagsLists : [][] string {
{
"env:test" ,
},
},
Name : "my_agent_policy_2" ,
},
Type : datadogV2 . CLOUDWORKLOADSECURITYAGENTPOLICYTYPE_POLICY ,
},
}
ctx := datadog . NewDefaultContext ( context . Background ())
configuration := datadog . NewConfiguration ()
apiClient := datadog . NewAPIClient ( configuration )
api := datadogV2 . NewCSMThreatsApi ( apiClient )
resp , r , err := api . CreateCSMThreatsAgentPolicy ( ctx , body )
if err != nil {
fmt . Fprintf ( os . Stderr , "Error when calling `CSMThreatsApi.CreateCSMThreatsAgentPolicy`: %v\n" , err )
fmt . Fprintf ( os . Stderr , "Full HTTP response: %v\n" , r )
}
responseContent , _ := json . MarshalIndent ( resp , "" , " " )
fmt . Fprintf ( os . Stdout , "Response from `CSMThreatsApi.CreateCSMThreatsAgentPolicy`:\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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" go run "main.go"
// Create a Workload Protection policy returns "OK" response
import com.datadog.api.client.ApiClient ;
import com.datadog.api.client.ApiException ;
import com.datadog.api.client.v2.api.CsmThreatsApi ;
import com.datadog.api.client.v2.model.CloudWorkloadSecurityAgentPolicyCreateAttributes ;
import com.datadog.api.client.v2.model.CloudWorkloadSecurityAgentPolicyCreateData ;
import com.datadog.api.client.v2.model.CloudWorkloadSecurityAgentPolicyCreateRequest ;
import com.datadog.api.client.v2.model.CloudWorkloadSecurityAgentPolicyResponse ;
import com.datadog.api.client.v2.model.CloudWorkloadSecurityAgentPolicyType ;
import java.util.Collections ;
public class Example {
public static void main ( String [] args ) {
ApiClient defaultClient = ApiClient . getDefaultApiClient ();
CsmThreatsApi apiInstance = new CsmThreatsApi ( defaultClient );
CloudWorkloadSecurityAgentPolicyCreateRequest body =
new CloudWorkloadSecurityAgentPolicyCreateRequest ()
. data (
new CloudWorkloadSecurityAgentPolicyCreateData ()
. attributes (
new CloudWorkloadSecurityAgentPolicyCreateAttributes ()
. description ( "My agent policy" )
. enabled ( true )
. hostTagsLists (
Collections . singletonList ( Collections . singletonList ( "env:test" )))
. name ( "my_agent_policy_2" ))
. type ( CloudWorkloadSecurityAgentPolicyType . POLICY ));
try {
CloudWorkloadSecurityAgentPolicyResponse result =
apiInstance . createCSMThreatsAgentPolicy ( body );
System . out . println ( result );
} catch ( ApiException e ) {
System . err . println ( "Exception when calling CsmThreatsApi#createCSMThreatsAgentPolicy" );
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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" java "Example.java"
"""
Create a Workload Protection policy returns "OK" response
"""
from datadog_api_client import ApiClient , Configuration
from datadog_api_client.v2.api.csm_threats_api import CSMThreatsApi
from datadog_api_client.v2.model.cloud_workload_security_agent_policy_create_attributes import (
CloudWorkloadSecurityAgentPolicyCreateAttributes ,
)
from datadog_api_client.v2.model.cloud_workload_security_agent_policy_create_data import (
CloudWorkloadSecurityAgentPolicyCreateData ,
)
from datadog_api_client.v2.model.cloud_workload_security_agent_policy_create_request import (
CloudWorkloadSecurityAgentPolicyCreateRequest ,
)
from datadog_api_client.v2.model.cloud_workload_security_agent_policy_type import CloudWorkloadSecurityAgentPolicyType
body = CloudWorkloadSecurityAgentPolicyCreateRequest (
data = CloudWorkloadSecurityAgentPolicyCreateData (
attributes = CloudWorkloadSecurityAgentPolicyCreateAttributes (
description = "My agent policy" ,
enabled = True ,
host_tags_lists = [
[
"env:test" ,
],
],
name = "my_agent_policy_2" ,
),
type = CloudWorkloadSecurityAgentPolicyType . POLICY ,
),
)
configuration = Configuration ()
with ApiClient ( configuration ) as api_client :
api_instance = CSMThreatsApi ( api_client )
response = api_instance . create_csm_threats_agent_policy ( body = body )
print ( response )
Instructions First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE = "datadoghq.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" python3 "example.py"
# Create a Workload Protection policy returns "OK" response
require "datadog_api_client"
api_instance = DatadogAPIClient :: V2 :: CSMThreatsAPI . new
body = DatadogAPIClient :: V2 :: CloudWorkloadSecurityAgentPolicyCreateRequest . new ({
data : DatadogAPIClient :: V2 :: CloudWorkloadSecurityAgentPolicyCreateData . new ({
attributes : DatadogAPIClient :: V2 :: CloudWorkloadSecurityAgentPolicyCreateAttributes . new ({
description : "My agent policy" ,
enabled : true ,
host_tags_lists : [
[
"env:test" ,
] ,
] ,
name : "my_agent_policy_2" ,
}),
type : DatadogAPIClient :: V2 :: CloudWorkloadSecurityAgentPolicyType :: POLICY ,
}),
})
p api_instance . create_csm_threats_agent_policy ( body )
Instructions First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE = "datadoghq.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" rb "example.rb"
// Create a Workload Protection policy returns "OK" response
use datadog_api_client ::datadog ;
use datadog_api_client ::datadogV2 ::api_csm_threats ::CSMThreatsAPI ;
use datadog_api_client ::datadogV2 ::model ::CloudWorkloadSecurityAgentPolicyCreateAttributes ;
use datadog_api_client ::datadogV2 ::model ::CloudWorkloadSecurityAgentPolicyCreateData ;
use datadog_api_client ::datadogV2 ::model ::CloudWorkloadSecurityAgentPolicyCreateRequest ;
use datadog_api_client ::datadogV2 ::model ::CloudWorkloadSecurityAgentPolicyType ;
#[tokio::main]
async fn main () {
let body = CloudWorkloadSecurityAgentPolicyCreateRequest ::new (
CloudWorkloadSecurityAgentPolicyCreateData ::new (
CloudWorkloadSecurityAgentPolicyCreateAttributes ::new ( "my_agent_policy_2" . to_string ())
. description ( "My agent policy" . to_string ())
. enabled ( true )
. host_tags_lists ( vec! [ vec! [ "env:test" . to_string ()]]),
CloudWorkloadSecurityAgentPolicyType ::POLICY ,
),
);
let configuration = datadog ::Configuration ::new ();
let api = CSMThreatsAPI ::with_config ( configuration );
let resp = api . create_csm_threats_agent_policy ( 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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" cargo run
/**
* Create a Workload Protection policy returns "OK" response
*/
import { client , v2 } from "@datadog/datadog-api-client" ;
const configuration = client . createConfiguration ();
const apiInstance = new v2 . CSMThreatsApi ( configuration );
const params : v2.CSMThreatsApiCreateCSMThreatsAgentPolicyRequest = {
body : {
data : {
attributes : {
description : "My agent policy" ,
enabled : true ,
hostTagsLists : [[ "env:test" ]],
name : "my_agent_policy_2" ,
},
type : "policy" ,
},
},
};
apiInstance
. createCSMThreatsAgentPolicy ( params )
. then (( data : v2.CloudWorkloadSecurityAgentPolicyResponse ) => {
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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<API-KEY>" DD_APP_KEY = "<APP-KEY>" tsc "example.ts"