The definition of ApplicationSecurityWafCustomRuleAction object.
action
enum
Override the default action to take when the WAF custom rule would block.
Allowed enum values: redirect_request,block_request
default: block_request
parameters
object
The definition of ApplicationSecurityWafCustomRuleActionParameters object.
location
string
The location to redirect to when the WAF custom rule triggers.
status_code
int64
The status code to return when the WAF custom rule triggers.
default: 403
blocking [required]
boolean
Indicates whether the WAF custom rule will block the request.
conditions [required]
[object]
Conditions for which the WAF Custom Rule will triggers, all conditions needs to match in order for the WAF
rule to trigger.
operator [required]
enum
Operator to use for the WAF Condition.
Allowed enum values: match_regex,!match_regex,phrase_match,!phrase_match,is_xss,is_sqli,exact_match,!exact_match,ip_match,!ip_matchShow 5 more,capture_data,exists,!exists,equals,!equals
parameters [required]
object
The scope of the WAF custom rule.
data
string
Identifier of a list of data from the denylist. Can only be used as substitution from the list parameter.
inputs [required]
[object]
List of inputs on which at least one should match with the given operator.
address [required]
enum
Input from the request on which the condition should apply.
Allowed enum values: server.db.statement,server.io.fs.file,server.io.net.url,server.sys.shell.cmd,server.request.method,server.request.uri.raw,server.request.path_params,server.request.query,server.request.headers,server.request.headers.no_cookiesShow 21 more,server.request.custom-auth,server.request.cookies,server.request.trailers,server.request.body,server.request.body.filenames,server.response.status,server.response.headers.no_cookies,server.response.trailers,server.response.body,grpc.server.request.metadata,grpc.server.request.message,grpc.server.method,graphql.server.all_resolvers,usr.id,http.client_ip,server.llm.event,server.llm.guard.verdict,_dd.appsec.fp.http.header,_dd.appsec.fp.http.network,_dd.appsec.fp.session,_dd.appsec.fp.http.endpoint
key_path
[string]
Specific path for the input.
list
[string]
List of value to use with the condition. Only used with the phrase_match, !phrase_match, exact_match and
!exact_match operator.
options
object
Options for the operator of this condition.
case_sensitive
boolean
Evaluate the value as case sensitive.
min_length
int64
Only evaluate this condition if the value has a minimum amount of characters.
regex
string
Regex to use with the condition. Only used with match_regex and !match_regex operator.
type
enum
The type of the value to compare against. Only used with the equals and !equals operator.
Allowed enum values: boolean,signed,unsigned,float,string
value
string
Store the captured value in the specified tag name. Only used with the capture_data operator.
enabled [required]
boolean
Indicates whether the WAF custom rule is enabled.
name [required]
string
The name of the WAF custom rule.
path_glob
string
The path glob for the WAF custom rule.
scope
[object]
The scope of the WAF custom rule.
env [required]
string
The environment scope for the WAF custom rule.
service [required]
string
The service scope for the WAF custom rule.
tags [required]
object
Tags associated with the WAF Custom Rule. The concatenation of category and type will form the security
activity field associated with the traces.
category [required]
enum
The category of the WAF Rule, can be either business_logic, attack_attempt or security_response.
Allowed enum values: attack_attempt,business_logic,security_response
type [required]
string
The type of the WAF rule, associated with the category will form the security activity.
type [required]
enum
The type of the resource. The value should always be custom_rule.
Allowed enum values: custom_rule
Response object that includes a single WAF custom rule.
Expand All
フィールド
種類
説明
data
object
Object for a single WAF custom rule.
attributes
object
A WAF custom rule.
action
object
The definition of ApplicationSecurityWafCustomRuleAction object.
action
enum
Override the default action to take when the WAF custom rule would block.
Allowed enum values: redirect_request,block_request
default: block_request
parameters
object
The definition of ApplicationSecurityWafCustomRuleActionParameters object.
location
string
The location to redirect to when the WAF custom rule triggers.
status_code
int64
The status code to return when the WAF custom rule triggers.
default: 403
blocking [required]
boolean
Indicates whether the WAF custom rule will block the request.
conditions [required]
[object]
Conditions for which the WAF Custom Rule will triggers, all conditions needs to match in order for the WAF
rule to trigger.
operator [required]
enum
Operator to use for the WAF Condition.
Allowed enum values: match_regex,!match_regex,phrase_match,!phrase_match,is_xss,is_sqli,exact_match,!exact_match,ip_match,!ip_matchShow 5 more,capture_data,exists,!exists,equals,!equals
parameters [required]
object
The scope of the WAF custom rule.
data
string
Identifier of a list of data from the denylist. Can only be used as substitution from the list parameter.
inputs [required]
[object]
List of inputs on which at least one should match with the given operator.
address [required]
enum
Input from the request on which the condition should apply.
Allowed enum values: server.db.statement,server.io.fs.file,server.io.net.url,server.sys.shell.cmd,server.request.method,server.request.uri.raw,server.request.path_params,server.request.query,server.request.headers,server.request.headers.no_cookiesShow 21 more,server.request.custom-auth,server.request.cookies,server.request.trailers,server.request.body,server.request.body.filenames,server.response.status,server.response.headers.no_cookies,server.response.trailers,server.response.body,grpc.server.request.metadata,grpc.server.request.message,grpc.server.method,graphql.server.all_resolvers,usr.id,http.client_ip,server.llm.event,server.llm.guard.verdict,_dd.appsec.fp.http.header,_dd.appsec.fp.http.network,_dd.appsec.fp.session,_dd.appsec.fp.http.endpoint
key_path
[string]
Specific path for the input.
list
[string]
List of value to use with the condition. Only used with the phrase_match, !phrase_match, exact_match and
!exact_match operator.
options
object
Options for the operator of this condition.
case_sensitive
boolean
Evaluate the value as case sensitive.
min_length
int64
Only evaluate this condition if the value has a minimum amount of characters.
regex
string
Regex to use with the condition. Only used with match_regex and !match_regex operator.
type
enum
The type of the value to compare against. Only used with the equals and !equals operator.
Allowed enum values: boolean,signed,unsigned,float,string
value
string
Store the captured value in the specified tag name. Only used with the capture_data operator.
enabled [required]
boolean
Indicates whether the WAF custom rule is enabled.
metadata
object
Metadata associated with the WAF Custom Rule.
added_at
date-time
The date and time the WAF custom rule was created.
added_by
string
The handle of the user who created the WAF custom rule.
added_by_name
string
The name of the user who created the WAF custom rule.
modified_at
date-time
The date and time the WAF custom rule was last updated.
modified_by
string
The handle of the user who last updated the WAF custom rule.
modified_by_name
string
The name of the user who last updated the WAF custom rule.
name [required]
string
The name of the WAF custom rule.
path_glob
string
The path glob for the WAF custom rule.
scope
[object]
The scope of the WAF custom rule.
env [required]
string
The environment scope for the WAF custom rule.
service [required]
string
The service scope for the WAF custom rule.
tags [required]
object
Tags associated with the WAF Custom Rule. The concatenation of category and type will form the security
activity field associated with the traces.
category [required]
enum
The category of the WAF Rule, can be either business_logic, attack_attempt or security_response.
Allowed enum values: attack_attempt,business_logic,security_response
type [required]
string
The type of the WAF rule, associated with the category will form the security activity.
id
string
The ID of the custom rule.
type
enum
The type of the resource. The value should always be custom_rule.
Allowed enum values: custom_rule
default: custom_rule
{"data":{"attributes":{"action":{"action":"block_request","parameters":{"location":"/blocking","status_code":403}},"blocking":false,"conditions":[{"operator":"match_regex","parameters":{"data":"blocked_users","inputs":[{"address":"server.db.statement","key_path":[]}],"list":[],"options":{"case_sensitive":false,"min_length":"integer"},"regex":"path.*","type":"string","value":"custom_tag"}}],"enabled":false,"metadata":{"added_at":"2021-01-01T00:00:00Z","added_by":"[email protected]","added_by_name":"John Doe","modified_at":"2021-01-01T00:00:00Z","modified_by":"[email protected]","modified_by_name":"John Doe"},"name":"Block request from bad useragent","path_glob":"/api/search/*","scope":[{"env":"prod","service":"billing-service"}],"tags":{"category":"business_logic","type":"users.login.success"}},"id":"2857c47d-1e3a-4300-8b2f-dc24089c084b","type":"custom_rule"}}
// Update a WAF Custom Rule returns "OK" responsepackagemainimport("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")funcmain(){// there is a valid "custom_rule" in the systemCustomRuleDataID:=os.Getenv("CUSTOM_RULE_DATA_ID")body:=datadogV2.ApplicationSecurityWafCustomRuleUpdateRequest{Data:datadogV2.ApplicationSecurityWafCustomRuleUpdateData{Type:datadogV2.APPLICATIONSECURITYWAFCUSTOMRULETYPE_CUSTOM_RULE,Attributes:datadogV2.ApplicationSecurityWafCustomRuleUpdateAttributes{Blocking:false,Conditions:[]datadogV2.ApplicationSecurityWafCustomRuleCondition{{Operator:datadogV2.APPLICATIONSECURITYWAFCUSTOMRULECONDITIONOPERATOR_MATCH_REGEX,Parameters:datadogV2.ApplicationSecurityWafCustomRuleConditionParameters{Inputs:[]datadogV2.ApplicationSecurityWafCustomRuleConditionInput{{Address:datadogV2.APPLICATIONSECURITYWAFCUSTOMRULECONDITIONINPUTADDRESS_SERVER_REQUEST_QUERY,KeyPath:[]string{"id",},},},Regex:datadog.PtrString("badactor"),},},},Enabled:false,Name:"test",PathGlob:datadog.PtrString("/test"),Scope:[]datadogV2.ApplicationSecurityWafCustomRuleScope{{Env:"test",Service:"test",},},Tags:datadogV2.ApplicationSecurityWafCustomRuleTags{Category:datadogV2.APPLICATIONSECURITYWAFCUSTOMRULETAGSCATEGORY_ATTACK_ATTEMPT,Type:"test",},},},}ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewApplicationSecurityApi(apiClient)resp,r,err:=api.UpdateApplicationSecurityWafCustomRule(ctx,CustomRuleDataID,body)iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `ApplicationSecurityApi.UpdateApplicationSecurityWafCustomRule`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `ApplicationSecurityApi.UpdateApplicationSecurityWafCustomRule`:\n%s\n",responseContent)}
// Update a WAF Custom Rule returns "OK" responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.ApplicationSecurityApi;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleCondition;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionInput;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionInputAddress;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionOperator;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionParameters;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleResponse;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleScope;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleTags;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleTagsCategory;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleType;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleUpdateAttributes;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleUpdateData;importcom.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleUpdateRequest;importjava.util.Collections;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();ApplicationSecurityApiapiInstance=newApplicationSecurityApi(defaultClient);// there is a valid "custom_rule" in the systemStringCUSTOM_RULE_DATA_ID=System.getenv("CUSTOM_RULE_DATA_ID");ApplicationSecurityWafCustomRuleUpdateRequestbody=newApplicationSecurityWafCustomRuleUpdateRequest().data(newApplicationSecurityWafCustomRuleUpdateData().type(ApplicationSecurityWafCustomRuleType.CUSTOM_RULE).attributes(newApplicationSecurityWafCustomRuleUpdateAttributes().blocking(false).conditions(Collections.singletonList(newApplicationSecurityWafCustomRuleCondition().operator(ApplicationSecurityWafCustomRuleConditionOperator.MATCH_REGEX).parameters(newApplicationSecurityWafCustomRuleConditionParameters().inputs(Collections.singletonList(newApplicationSecurityWafCustomRuleConditionInput().address(ApplicationSecurityWafCustomRuleConditionInputAddress.SERVER_REQUEST_QUERY).keyPath(Collections.singletonList("id")))).regex("badactor")))).enabled(false).name("test").pathGlob("/test").scope(Collections.singletonList(newApplicationSecurityWafCustomRuleScope().env("test").service("test"))).tags(newApplicationSecurityWafCustomRuleTags().category(ApplicationSecurityWafCustomRuleTagsCategory.ATTACK_ATTEMPT).type("test"))));try{ApplicationSecurityWafCustomRuleResponseresult=apiInstance.updateApplicationSecurityWafCustomRule(CUSTOM_RULE_DATA_ID,body);System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling ApplicationSecurityApi#updateApplicationSecurityWafCustomRule");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
"""
Update a WAF Custom Rule returns "OK" response
"""fromosimportenvironfromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.application_security_apiimportApplicationSecurityApifromdatadog_api_client.v2.model.application_security_waf_custom_rule_conditionimport(ApplicationSecurityWafCustomRuleCondition,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_condition_inputimport(ApplicationSecurityWafCustomRuleConditionInput,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_condition_input_addressimport(ApplicationSecurityWafCustomRuleConditionInputAddress,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_condition_operatorimport(ApplicationSecurityWafCustomRuleConditionOperator,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_condition_parametersimport(ApplicationSecurityWafCustomRuleConditionParameters,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_scopeimportApplicationSecurityWafCustomRuleScopefromdatadog_api_client.v2.model.application_security_waf_custom_rule_tagsimportApplicationSecurityWafCustomRuleTagsfromdatadog_api_client.v2.model.application_security_waf_custom_rule_tags_categoryimport(ApplicationSecurityWafCustomRuleTagsCategory,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_typeimportApplicationSecurityWafCustomRuleTypefromdatadog_api_client.v2.model.application_security_waf_custom_rule_update_attributesimport(ApplicationSecurityWafCustomRuleUpdateAttributes,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_update_dataimport(ApplicationSecurityWafCustomRuleUpdateData,)fromdatadog_api_client.v2.model.application_security_waf_custom_rule_update_requestimport(ApplicationSecurityWafCustomRuleUpdateRequest,)# there is a valid "custom_rule" in the systemCUSTOM_RULE_DATA_ID=environ["CUSTOM_RULE_DATA_ID"]body=ApplicationSecurityWafCustomRuleUpdateRequest(data=ApplicationSecurityWafCustomRuleUpdateData(type=ApplicationSecurityWafCustomRuleType.CUSTOM_RULE,attributes=ApplicationSecurityWafCustomRuleUpdateAttributes(blocking=False,conditions=[ApplicationSecurityWafCustomRuleCondition(operator=ApplicationSecurityWafCustomRuleConditionOperator.MATCH_REGEX,parameters=ApplicationSecurityWafCustomRuleConditionParameters(inputs=[ApplicationSecurityWafCustomRuleConditionInput(address=ApplicationSecurityWafCustomRuleConditionInputAddress.SERVER_REQUEST_QUERY,key_path=["id",],),],regex="badactor",),),],enabled=False,name="test",path_glob="/test",scope=[ApplicationSecurityWafCustomRuleScope(env="test",service="test",),],tags=ApplicationSecurityWafCustomRuleTags(category=ApplicationSecurityWafCustomRuleTagsCategory.ATTACK_ATTEMPT,type="test",),),),)configuration=Configuration()withApiClient(configuration)asapi_client:api_instance=ApplicationSecurityApi(api_client)response=api_instance.update_application_security_waf_custom_rule(custom_rule_id=CUSTOM_RULE_DATA_ID,body=body)print(response)
# Update a WAF Custom Rule returns "OK" responserequire"datadog_api_client"api_instance=DatadogAPIClient::V2::ApplicationSecurityAPI.new# there is a valid "custom_rule" in the systemCUSTOM_RULE_DATA_ID=ENV["CUSTOM_RULE_DATA_ID"]body=DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleUpdateRequest.new({data:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleUpdateData.new({type:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleType::CUSTOM_RULE,attributes:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleUpdateAttributes.new({blocking:false,conditions:[DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleCondition.new({operator:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleConditionOperator::MATCH_REGEX,parameters:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleConditionParameters.new({inputs:[DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleConditionInput.new({address:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleConditionInputAddress::SERVER_REQUEST_QUERY,key_path:["id",],}),],regex:"badactor",}),}),],enabled:false,name:"test",path_glob:"/test",scope:[DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleScope.new({env:"test",service:"test",}),],tags:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleTags.new({category:DatadogAPIClient::V2::ApplicationSecurityWafCustomRuleTagsCategory::ATTACK_ATTEMPT,type:"test",}),}),}),})papi_instance.update_application_security_waf_custom_rule(CUSTOM_RULE_DATA_ID,body)
// Update a WAF Custom Rule returns "OK" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleCondition;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionInput;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionInputAddress;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionOperator;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionParameters;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleScope;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleTags;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleTagsCategory;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleType;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateAttributes;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateData;usedatadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateRequest;usestd::collections::BTreeMap;#[tokio::main]asyncfnmain(){// there is a valid "custom_rule" in the system
letcustom_rule_data_id=std::env::var("CUSTOM_RULE_DATA_ID").unwrap();letbody=ApplicationSecurityWafCustomRuleUpdateRequest::new(ApplicationSecurityWafCustomRuleUpdateData::new(ApplicationSecurityWafCustomRuleUpdateAttributes::new(false,vec![ApplicationSecurityWafCustomRuleCondition::new(ApplicationSecurityWafCustomRuleConditionOperator::MATCH_REGEX,ApplicationSecurityWafCustomRuleConditionParameters::new(vec![ApplicationSecurityWafCustomRuleConditionInput::new(ApplicationSecurityWafCustomRuleConditionInputAddress::SERVER_REQUEST_QUERY,).key_path(vec!["id".to_string()])],).regex("badactor".to_string()),)],false,"test".to_string(),ApplicationSecurityWafCustomRuleTags::new(ApplicationSecurityWafCustomRuleTagsCategory::ATTACK_ATTEMPT,"test".to_string(),).additional_properties(BTreeMap::from([])),).path_glob("/test".to_string()).scope(vec![ApplicationSecurityWafCustomRuleScope::new("test".to_string(),"test".to_string())]),ApplicationSecurityWafCustomRuleType::CUSTOM_RULE,),);letconfiguration=datadog::Configuration::new();letapi=ApplicationSecurityAPI::with_config(configuration);letresp=api.update_application_security_waf_custom_rule(custom_rule_data_id.clone(),body).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_API_KEY="<API-KEY>"DD_APP_KEY="<APP-KEY>"cargo run
/**
* Update a WAF Custom Rule returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.ApplicationSecurityApi(configuration);// there is a valid "custom_rule" in the system
constCUSTOM_RULE_DATA_ID=process.env.CUSTOM_RULE_DATA_IDasstring;constparams: v2.ApplicationSecurityApiUpdateApplicationSecurityWafCustomRuleRequest={body:{data:{type:"custom_rule",attributes:{blocking: false,conditions:[{operator:"match_regex",parameters:{inputs:[{address:"server.request.query",keyPath:["id"],},],regex:"badactor",},},],enabled: false,name:"test",pathGlob:"/test",scope:[{env:"test",service:"test",},],tags:{category:"attack_attempt",type:"test",},},},},customRuleId: CUSTOM_RULE_DATA_ID,};apiInstance.updateApplicationSecurityWafCustomRule(params).then((data: v2.ApplicationSecurityWafCustomRuleResponse)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));