All Products
Search
Document Center

Web Application Firewall:CreateDefenseTemplate

Last Updated:Sep 09, 2026

Creates a protection template.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

yundun-waf:CreateDefenseTemplate

create

*All Resource

*

  • acs:ResourceGroupId
None

Request parameters

Parameter

Type

Required

Description

Example

InstanceId

string

Yes

The ID of the WAF instance.

Note

You can call DescribeInstance to obtain the ID of the current WAF instance.

waf_cdnsdf3****

TemplateName

string

Yes

The name of the protection template to create. The name must be 1 to 255 characters in length and can contain Chinese characters, letters, digits, underscores (_), periods (.), and hyphens (-).

Note

Template names must be unique within the same protection scenario (DefenseScene).

test221

TemplateType

string

Yes

The templatetype of the protection template to create. Valid values:

  • user_default: default protection.

  • user_custom: custom protection.

user_default

TemplateStatus

integer

Yes

The status of the protection template to create. Valid values:

  • 0: Disabled.

  • 1: Enabled.

1

DefenseScene

string

Yes

The protection scenario. For more information, see the DefenseScene parameter in CreateDefenseRule.

waf_group

TemplateOrigin

string

Yes

The source of the protection template to create. Set the value to custom, which indicates user-defined.

custom

DefenseSubScene

string

No

The sub-scenario of the protection template. This parameter is supported only for the advanced bot management scenario.

Valid values:

  • app :

    app scenario template.

  • web :

    web scenario template.

  • bot_custom_acl :

    advanced custom rule template.

web

Description

string

No

The description of the protection template to create.

test

RegionId

string

No

The detailed template information, which is a JSON-formatted string. Different key-value pairs represent different attributes of the protected object. For more information, see the Detail description.

Note

This parameter applies only to the new version of basic protection (waf_base) and the new version of bot management (bot_manager) protection scenarios. This parameter is required for the new version of bot management (bot_manager) protection scenario.

{"trafficFeature":"{\"global\":0,\"excludeStatus\":1,\"conditions\":[{\"key\":\"URL\",\"opValue\":\"not-contain\",\"values\":\"test\"}]}"}

ResourceManagerResourceGroupId

string

No

Specifies whether to enable the dry run mode. If you do not specify this parameter, a normal request is sent. Valid values:

  • true: A dry run request is sent. The system checks whether the request meets the execution conditions without performing the specified operation. If the dry run fails, the corresponding error code is returned. If the dry run succeeds, the error code Defense.Control.DryRunOperation is returned.

  • false: A normal request is sent. The specified operation is performed after the request passes the check.

false

UnbindResources

array

No

The region where the WAF instance resides. Valid values:

  • cn-hangzhou: the Chinese mainland.

  • ap-southeast-1: outside the Chinese mainland.

cn-hangzhou

string

No

The protected object to unbind.

abc

UnbindResourceGroups

array

No

The ID of the Alibaba Cloud resource group.

rg-acfm***q

string

No

The protected object group to unbind.

group1

No

The protected objects to unbind when creating a default protection template. Use the format ["XX1","XX2",……].

Note

This parameter takes effect only when creating a default template (when TemplateType is set to user_default).

No

The protected object groups to unbind when creating a default protection template. Use the format ["group1","group2",……].

Note

This parameter takes effect only when creating a default template (when TemplateType is set to user_default).

Detail parameter description

The content of the Detail parameter varies depending on the protection scenario (DefenseScene) of the protection template.

New version of Web core protection (waf_base)

Parameter description

NameTypeRequiredExampleDescription
aiWhitelistStatusintegerNo1The status of the intelligent whitelisting engine for the new version of basic protection. Valid values:
- 0 (default): Disabled.
- 1: Enabled.




Example

{
  "aiWhitelistStatus": 1
}

New version of bot management (bot_manager)

Parameter description

NameTypeRequiredExampleDescription
trafficFeatureStringNo{"global":1,"excludeStatus":1,"staticFile":".css,.js,.jpg,……"}The protection scope parameter settings of the bot management protection template, described in JSON string format. This parameter is required when the protection scenario (DefenseScene) is bot_manager. For more information, see trafficFeature detailed parameter settings.

trafficFeature detailed parameter settings

NameTypeRequiredExampleDescription
globalIntegerYes1Specifies whether the protection scope covers the entire site. Valid values:
- 0: Custom protection scope. Use conditions to specify the traffic characteristics that take effect.
- 1: Global protection. The template takes effect on all requests to the protected object.




excludeStatusIntegerNo1Specifies whether to exclude static resources. Requests that match the static file suffixes specified in staticFile do not enter bot protection. Valid values:
- 0: Static resources are not excluded.
- 1: Static resources are excluded. Use staticFile to specify the static file suffixes to exclude.




staticFileStringNo.7z,.aac,.css,.js,.jpg,.png,.pdf,.zip,……The list of static file suffixes to exclude, represented as a comma-separated (,) string. Each suffix starts with a period (.). Configure this parameter only when excludeStatus is set to 1.
conditionsArrayNo[{"key":"URL","opValue":"not-contain","values":"test"}]The traffic characteristics for the custom protection scope, described in JSON string format. This parameter can be configured only when global is set to 0. For more information, see the conditions parameter settings in Protection rule parameter settings.

Example

{
  "trafficFeature": "{\"global\":0,\"excludeStatus\":1,\"conditions\":[{\"key\":\"URL\",\"opValue\":\"not-contain\",\"values\":\"test\"}]}"
}

Response elements

Element

Type

Description

Example

object

The response struct.

RequestId

string

The request ID.

F48ABDF7-D777-5F26-892A-57349765D7A9

TemplateId

integer

The ID of the protection template.

2212

Examples

Success response

JSON format

{
  "RequestId": "F48ABDF7-D777-5F26-892A-57349765D7A9",
  "TemplateId": 2212
}

Error codes

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.