ALIYUN::ESA::WafRule

更新时间:
复制为 MD 格式

ALIYUN::ESA::WafRule类型用于创建WAF规则。

语法

{
  "Type": "ALIYUN::ESA::WafRule",
  "Properties": {
    "Phase": String,
    "SiteId": Integer,
    "Config": Map,
    "RulesetId": Integer,
    "Shared": Map,
    "SiteVersion": Integer
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

Phase

String

网站版本。

SiteId

Integer

网站ID。

Config

Map

规则配置。

更多信息,请参考Config属性

RulesetId

Integer

WAF规则集ID。

Shared

Map

多个规则共享的配置。

更多信息,请参考Shared属性

SiteVersion

Integer

网站ID。

Config语法

"Config": {
  "Status": String,
  "Action": String,
  "Actions": Map,
  "ManagedList": String,
  "ManagedRulesets": List,
  "Sigchl": List,
  "Name": String,
  "AppSdk": Map,
  "RateLimit": Map,
  "Type": String,
  "AppPackage": Map,
  "ManagedGroupId": Integer,
  "Timer": Map,
  "Expression": String,
  "SecurityLevel": Map,
  "Value": String,
  "Id": Integer,
  "Notes": String
}

Config属性

属性名称

类型

必须

允许更新

描述

约束

Action

String

执行动作。

Actions

Map

扩展动作。

更多信息,请参考Actions属性

AppPackage

Map

二次打包检测。

更多信息,请参考AppPackage属性

AppSdk

Map

App SDK。

更多信息,请参考AppSdk属性

Expression

String

表达式。

Id

Integer

规则ID。

ManagedGroupId

Integer

托管规则组ID。

ManagedList

String

名称列表。

ManagedRulesets

List

托管规则集列表。

更多信息,请参考ManagedRulesets属性

Name

String

规则名称。

Notes

String

备注。

RateLimit

Map

频率控制。

更多信息,请参考RateLimit属性

SecurityLevel

Map

安全级别。

更多信息,请参考SecurityLevel属性

Sigchl

List

令牌校验。

Status

String

规则状态。

Timer

Map

定时器。

更多信息,请参考Timer属性

Type

String

规则类型。

Value

String

IP访问控制值。

Actions语法

"Actions": {
  "Response": Map
}

Actions属性

属性名称

类型

必须

允许更新

描述

约束

Response

Map

自定义响应。

更多信息,请参考Response属性

Response语法

"Response": {
  "Id": Integer,
  "Code": Integer
}

Response属性

属性名称

类型

必须

允许更新

描述

约束

Code

Integer

自定义响应码。

Id

Integer

自定义响应页面ID。

Bypass语法

"Bypass": {
  "Skip": String,
  "RegularRules": List,
  "CustomRules": List,
  "RegularTypes": List,
  "Tags": List
}

Bypass属性

属性名称

类型

必须

允许更新

描述

约束

CustomRules

List

自定义规则ID列表。

RegularRules

List

托管规则ID列表。

RegularTypes

List

托管规则类型列表。

Skip

String

跳过模块类型。

Tags

List

跳过模块列表。

ManagedRulesets语法

"ManagedRulesets": [
  {
    "ProtectionLevel": Integer,
    "Action": String,
    "ManagedRules": List,
    "AttackType": Integer,
    "NumberTotal": Integer,
    "NumberEnabled": Integer
  }
]

ManagedRulesets属性

属性名称

类型

必须

允许更新

描述

约束

Action

String

执行动作。

AttackType

Integer

攻击类型。

ManagedRules

List

托管规则列表。

更多信息,请参考ManagedRules属性

NumberEnabled

Integer

已开启规则数量。

NumberTotal

Integer

规则总数。

ProtectionLevel

Integer

防护级别。

ManagedRules语法

"ManagedRules": [
  {
    "Status": String,
    "Action": String,
    "Id": Integer
  }
]

ManagedRules属性

属性名称

类型

必须

允许更新

描述

约束

Action

String

托管规则动作。

Id

Integer

托管规则ID。

Status

String

托管规则状态。

AppSdk语法

"AppSdk": {
  "CustomSign": Map,
  "CustomSignStatus": String,
  "FeatureAbnormal": List
}

AppSdk属性

属性名称

类型

必须

允许更新

描述

约束

CustomSign

Map

自定义标签字段。

更多信息,请参考CustomSign属性

CustomSignStatus

String

自定义标签字段开关。

FeatureAbnormal

List

特征异常。

CustomSign语法

"CustomSign": {
  "Value": String,
  "Key": String
}

CustomSign属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

字段名称。

Value

String

字段值。

RateLimit语法

"RateLimit": {
  "Characteristics": Map,
  "OnHit": Boolean,
  "Ttl": Integer,
  "Threshold": Map,
  "Interval": Integer
}

RateLimit属性

属性名称

类型

必须

允许更新

描述

约束

Characteristics

Map

统计对象。

更多信息,请参考Characteristics属性

Interval

Integer

统计时长。

OnHit

Boolean

应用于命中缓存的请求。

Threshold

Map

阈值。

更多信息,请参考Threshold属性

Ttl

Integer

超时时间。

Characteristics语法

"Characteristics": {
  "Criteria": List,
  "Logic": String
}

Characteristics属性

属性名称

类型

必须

允许更新

描述

约束

Criteria

List

逻辑列表。

更多信息,请参考Criteria属性

Logic

String

逻辑关系。

Criteria语法

"Criteria": [
  {
    "MatchType": String
  }
]

Criteria属性

属性名称

类型

必须

允许更新

描述

约束

MatchType

String

匹配域。

Threshold语法

"Threshold": {
  "DistinctManagedRules": Integer,
  "ManagedRulesBlocked": Integer,
  "ResponseStatus": Map,
  "Traffic": String,
  "Request": Integer
}

Threshold属性

属性名称

类型

必须

允许更新

描述

约束

DistinctManagedRules

Integer

不同托管规则阈值。

ManagedRulesBlocked

Integer

托管规则命中阈值。

Request

Integer

请求阈值。

ResponseStatus

Map

响应码阈值。

更多信息,请参考ResponseStatus属性

Traffic

String

流量阈值。

ResponseStatus语法

"ResponseStatus": {
  "Ratio": Integer,
  "Count": Integer,
  "Code": Integer
}

ResponseStatus属性

属性名称

类型

必须

允许更新

描述

约束

Code

Integer

HTTP响应码。

Count

Integer

响应码次数阈值。

Ratio

Integer

响应码百分比。

AppPackage语法

"AppPackage": {
  "PackageSigns": List
}

AppPackage属性

属性名称

类型

必须

允许更新

描述

约束

PackageSigns

List

二次打包检测。

更多信息,请参考PackageSigns属性

PackageSigns语法

"PackageSigns": [
  {
    "Sign": String,
    "Name": String
  }
]

PackageSigns属性

属性名称

类型

必须

允许更新

描述

约束

Name

String

指定合法的包名。

Sign

String

包签名。

Timer语法

"Timer": {
  "Periods": List,
  "Scopes": String,
  "Zone": Integer,
  "WeeklyPeriods": List
}

Timer属性

属性名称

类型

必须

允许更新

描述

约束

Periods

List

生效时间段。

更多信息,请参考Periods属性

Scopes

String

定时类型。

取值:

  • permanent:永久生效。

  • periods:时间段生效。

  • weekly:周期生效。

WeeklyPeriods

List

每周生效时间段。

更多信息,请参考WeeklyPeriods属性

Zone

Integer

时区。

如果不指定,默认值为UTC+00:00。

Periods语法

"Periods": [{
    "Start": String,
    "End": String
  }]

Periods属性

属性名称

类型

必须

允许更新

描述

约束

End

String

结束时间。

RFC3339格式的UTC时间。

Start

String

开始时间,

RFC3339格式的UTC时间。

WeeklyPeriods语法

"WeeklyPeriods": [{
    "Days": String,
    "DailyPeriods": List
  }]

WeeklyPeriods属性

属性名称

类型

必须

允许更新

描述

约束

DailyPeriods

List

周期内的生效时间。

更多信息,请参考DailyPeriods属性

Days

String

周期。

多个值用逗号分隔,1-7分别表示周一到周日。

DailyPeriods语法

"DailyPeriods": [{
    "Start": String,
    "End": String
  }]

DailyPeriods属性

属性名称

类型

必须

允许更新

描述

约束

End

String

结束时间。

格式为HH:mm:ss。

Start

String

开始时间。

格式为HH:mm:ss。

SecurityLevel语法

"SecurityLevel": {
    "Value": String
  }

SecurityLevel属性

属性名称

类型

必须

允许更新

描述

约束

Value

String

安全级别值。

Shared语法

"Shared": {
    "Target": String,
    "Action": String,
    "Actions": Map,
    "Expression": String,
    "Mode": String,
    "CrossSiteId": Integer,
    "Match": Map,
    "Name": String
  }

Shared属性

属性名称

类型

必须

允许更新

描述

约束

Action

String

动作。

Actions

Map

动作扩展。

更多信息,请参考Actions属性

CrossSiteId

Integer

指定跨域站点ID。

Expression

String

表达式。

Match

Map

匹配引擎。

更多信息,请参考Match属性

Mode

String

Web SDK集成模式。

取值:

  • automatic:自动

  • manual:手动

Name

String

规则集名称。

Target

String

防护目标类型。

取值:

  • web

  • app

Match语法

"Match": {
    "MatchType": String,
    "Criteria": List,
    "Logic": String
  }

Match属性

属性名称

类型

必须

允许更新

描述

约束

Criteria

List

逻辑列表。

Logic

String

逻辑关系。

MatchType

String

匹配域。

返回值

Fn::GetAtt

  • RulesetId:WAF规则集ID。

  • Phase:网站版本。

  • WafRuleId:Waf规则ID。

  • Config:规则配置。

  • UpdateTime:规则最后修改时间。

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  SiteVersion:
    Type: Number
    Description:
      en: The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.
    Default: Null
    Required: false
  RulesetId:
    Type: Number
    Description:
      en: The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation.
    Default: Null
    Required: false
  SiteId:
    Type: Number
    Description:
      en: The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.
    Required: true
  Phase:
    Type: String
    Description:
      en: The version of the website.
    Required: true
  Shared:
    Description:
      en: The configurations shared by multiple rules.
    Required: false
    Default: Null
    Type: Json
    AssociationPropertyMetadata:
      Parameters:
        Target:
          Type: String
          Description:
            en: 'Protection target type: web/app.'
          AllowedValues:
            - web
            - app
          Default: Null
          Required: false
        Actions:
          Description:
            en: Action Extension.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              Response:
                Description:
                  en: Custom Response.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    Code:
                      Type: Number
                      Description:
                        en: Custom Response Codes.
                      Default: Null
                      Required: false
                    Id:
                      Type: Number
                      Description:
                        en: Custom response page id.
                      Default: Null
                      Required: false
        CrossSiteId:
          Type: Number
          Description:
            en: Specify the cross-domain site id.
          Default: Null
          Required: false
        Mode:
          Type: String
          Description:
            en: |-
              Web sdk integration mode:
              - `automatic`
              - `manual`.
          AllowedValues:
            - automatic
            - manual
          Default: Null
          Required: false
        Action:
          Type: String
          Description:
            en: Action.
          Default: Null
          Required: false
        Expression:
          Type: String
          Description:
            en: Expression.
          Default: Null
          Required: false
        Match:
          Description:
            en: Matching Engine.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              MatchType:
                Type: String
                Description:
                  en: Match Domain.
                Default: Null
                Required: false
              Logic:
                Type: String
                Description:
                  en: Logical relationship.
                Default: Null
                Required: false
              Criteria:
                Description:
                  en: Logical List.
                Required: false
                Default: Null
                Type: Json
                AssociationProperty: List[Parameter]
                AssociationPropertyMetadata:
                  Parameter:
                    Description:
                      en: Logical List.
                    Required: false
                    Default: Null
                    Type: Json
                    AssociationPropertyMetadata:
                      Parameters:
                        MatchType:
                          Type: String
                          Description:
                            en: Match Domain.
                          Default: Null
                          Required: false
                        Logic:
                          Type: String
                          Description:
                            en: Logical relationship.
                          Default: Null
                          Required: false
                        Criteria:
                          Description:
                            en: Logical List.
                          Required: false
                          Default: Null
                          Type: Json
                          AssociationProperty: List[Parameter]
                          AssociationPropertyMetadata:
                            Parameter:
                              Description:
                                en: Logical List.
                              Required: false
                              Default: Null
                              Type: Json
                              AssociationPropertyMetadata:
                                Parameters:
                                  MatchType:
                                    Type: String
                                    Description:
                                      en: Match Domain.
                                    Default: Null
                                    Required: false
                                  Logic:
                                    Type: String
                                    Description:
                                      en: Logical relationship.
                                    Default: Null
                                    Required: false
                                  Criteria:
                                    Description:
                                      en: Logical List.
                                    Required: false
                                    Default: Null
                                    Type: Json
                                    AssociationProperty: List[Parameters]
                                    AssociationPropertyMetadata:
                                      Parameters:
                                        MatchType:
                                          Type: String
                                          Description:
                                            en: Match Domain.
                                          Default: Null
                                          Required: false
        Name:
          Type: String
          Description:
            en: Rule Set Name.
          Default: Null
          Required: false
  Config:
    Description:
      en: The configuration of the rule.
    Required: false
    Default: Null
    Type: Json
    AssociationPropertyMetadata:
      Parameters:
        Status:
          Type: String
          Description:
            en: Rule Status.
          Default: Null
          Required: false
        ManagedGroupId:
          Type: Number
          Description:
            en: Managed rule Group id.
          Default: Null
          Required: false
        Type:
          Type: String
          Description:
            en: Rule Type.
          Default: Null
          Required: false
        Sigchl:
          Description:
            en: Token check.
          Required: false
          Default: Null
          Type: Json
          AssociationProperty: List[Parameter]
          AssociationPropertyMetadata:
            Parameter:
              Type: String
              Description:
                en: Token check.
              Default: Null
              Required: false
        Name:
          Type: String
          Description:
            en: Rule Name.
          Default: Null
          Required: false
        SecurityLevel:
          Description:
            en: Security Level.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              Value:
                Type: String
                Description:
                  en: Value of security level.
                Default: Null
                Required: false
        ManagedRulesets:
          Description:
            en: Managed Rule Set List.
          Required: false
          Default: Null
          Type: Json
          AssociationProperty: List[Parameter]
          AssociationPropertyMetadata:
            Parameter:
              Description:
                en: Managed Rule Set List.
              Required: false
              Default: Null
              Type: Json
              AssociationPropertyMetadata:
                Parameters:
                  NumberTotal:
                    Type: Number
                    Description:
                      en: Total number of rules.
                    Default: Null
                    Required: false
                  ProtectionLevel:
                    Type: Number
                    Description:
                      en: Protection level.
                    Default: Null
                    Required: false
                  ManagedRules:
                    Description:
                      en: Managed Rule List.
                    Required: false
                    Default: Null
                    Type: Json
                    AssociationProperty: List[Parameters]
                    AssociationPropertyMetadata:
                      Parameters:
                        Status:
                          Type: String
                          Description:
                            en: Managed Rule Status.
                          Default: Null
                          Required: false
                        Action:
                          Type: String
                          Description:
                            en: Managed Rule Action.
                          Default: Null
                          Required: false
                        Id:
                          Type: Number
                          Description:
                            en: Managed rule ID.
                          Default: Null
                          Required: false
                  NumberEnabled:
                    Type: Number
                    Description:
                      en: Number of rules opened.
                    Default: Null
                    Required: false
                  AttackType:
                    Type: Number
                    Description:
                      en: Attack Type.
                    Default: Null
                    Required: false
                  Action:
                    Type: String
                    Description:
                      en: Execute Action.
                    Default: Null
                    Required: false
        Notes:
          Type: String
          Description:
            en: Remarks.
          Default: Null
          Required: false
        Value:
          Type: String
          Description:
            en: IP access control value.
          Default: Null
          Required: false
        Actions:
          Description:
            en: Extended Action.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              Response:
                Description:
                  en: Customize Response Page.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    Code:
                      Type: Number
                      Description:
                        en: Custom Response Codes.
                      Default: Null
                      Required: false
                    Id:
                      Type: Number
                      Description:
                        en: Custom response page ID.
                      Default: Null
                      Required: false
              Bypass:
                Description:
                  en: Skip Module.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    Skip:
                      Type: String
                      Description:
                        en: Skip module type.
                      Default: Null
                      Required: false
                    Tags:
                      Description:
                        en: Skip Module List.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationProperty: List[Parameter]
                      AssociationPropertyMetadata:
                        Parameter:
                          Type: String
                          Description:
                            en: Skip Module List.
                          Default: Null
                          Required: false
                        ListMetadata:
                          Order:
                            - Key
                            - Value
                    RegularTypes:
                      Description:
                        en: Managed rule type list.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationProperty: List[Parameter]
                      AssociationPropertyMetadata:
                        Parameter:
                          Type: String
                          Description:
                            en: Managed rule type list.
                          Default: Null
                          Required: false
                    RegularRules:
                      Description:
                        en: Managed rule id list.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationProperty: List[Parameter]
                      AssociationPropertyMetadata:
                        Parameter:
                          Type: Number
                          Description:
                            en: Managed rule id list.
                          Default: Null
                          Required: false
                    CustomRules:
                      Description:
                        en: Custom rule id list.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationProperty: List[Parameter]
                      AssociationPropertyMetadata:
                        Parameter:
                          Type: Number
                          Description:
                            en: Custom rule id list.
                          Default: Null
                          Required: false
        RateLimit:
          Description:
            en: Frequency Control.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              Threshold:
                Description:
                  en: Threshold.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    DistinctManagedRules:
                      Type: Number
                      Description:
                        en: Different Managed Rules Threshold.
                      Default: Null
                      Required: false
                    Request:
                      Type: Number
                      Description:
                        en: Request Threshold.
                      Default: Null
                      Required: false
                    Traffic:
                      Type: String
                      Description:
                        en: Flow Threshold.
                      Default: Null
                      Required: false
                    ResponseStatus:
                      Description:
                        en: Response Code Threshold.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationPropertyMetadata:
                        Parameters:
                          Count:
                            Type: Number
                            Description:
                              en: Response code times threshold.
                            Default: Null
                            Required: false
                          Code:
                            Type: Number
                            Description:
                              en: HTTP response code.
                            Default: Null
                            Required: false
                          Ratio:
                            Type: Number
                            Description:
                              en: Percentage of response code.
                            Default: Null
                            Required: false
                    ManagedRulesBlocked:
                      Type: Number
                      Description:
                        en: Managed Rule Hit Threshold.
                      Default: Null
                      Required: false
              Characteristics:
                Description:
                  en: Statistical object.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    Logic:
                      Type: String
                      Description:
                        en: Logical relationship.
                      Default: Null
                      Required: false
                    Criteria:
                      Description:
                        en: Logical List.
                      Required: false
                      Default: Null
                      Type: Json
                      AssociationProperty: List[Parameter]
                      AssociationPropertyMetadata:
                        Parameter:
                          Description:
                            en: Logical List.
                          Required: false
                          Default: Null
                          Type: Json
                          AssociationPropertyMetadata:
                            Parameters:
                              MatchType:
                                Type: String
                                Description:
                                  en: Match Domain.
                                Default: Null
                                Required: false
                              Logic:
                                Type: String
                                Description:
                                  en: Logical relationship.
                                Default: Null
                                Required: false
                              Criteria:
                                Description:
                                  en: Logical List.
                                Required: false
                                Default: Null
                                Type: Json
                                AssociationProperty: List[Parameter]
                                AssociationPropertyMetadata:
                                  Parameter:
                                    Description:
                                      en: Logical List.
                                    Required: false
                                    Default: Null
                                    Type: Json
                                    AssociationPropertyMetadata:
                                      Parameters:
                                        MatchType:
                                          Type: String
                                          Description:
                                            en: Match Domain.
                                          Default: Null
                                          Required: false
                                        Logic:
                                          Type: String
                                          Description:
                                            en: Logical relationship.
                                          Default: Null
                                          Required: false
                                        Criteria:
                                          Description:
                                            en: Logical List.
                                          Required: false
                                          Default: Null
                                          Type: Json
                                          AssociationProperty: List[Parameters]
                                          AssociationPropertyMetadata:
                                            Parameters:
                                              MatchType:
                                                Type: String
                                                Description:
                                                  en: Match Domain.
                                                Default: Null
                                                Required: false
              Interval:
                Type: Number
                Description:
                  en: Statistical Duration.
                Default: Null
                Required: false
              Ttl:
                Type: Number
                Description:
                  en: Timeout.
                Default: Null
                Required: false
              OnHit:
                Type: Boolean
                Description:
                  en: Apply on requests that hit the cache.
                Default: Null
                Required: false
        Expression:
          Type: String
          Description:
            en: Expression.
          Default: Null
          Required: false
        Timer:
          Description:
            en: Timer.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              Scopes:
                Type: String
                Description:
                  en: |-
                    Timing type: 
                    - `permanent`
                    - `periods`
                    - `weekly`.
                AllowedValues:
                  - permanent
                  - periods
                  - weekly
                Default: Null
                Required: false
              WeeklyPeriods:
                Description:
                  en: Weekly effective time period.
                Required: false
                Default: Null
                Type: Json
                AssociationProperty: List[Parameter]
                AssociationPropertyMetadata:
                  Parameter:
                    Description:
                      en: Weekly effective time period.
                    Required: false
                    Default: Null
                    Type: Json
                    AssociationPropertyMetadata:
                      Parameters:
                        Days:
                          Type: String
                          Description:
                            en: 'Cycle, multiple use comma separated, 1-7 respectively represent Monday-Sunday. <br> Example: Monday, Wednesday value is "1,3".'
                          Default: Null
                          Required: false
                        DailyPeriods:
                          Description:
                            en: Effective time in the cycle.
                          Required: false
                          Default: Null
                          Type: Json
                          AssociationProperty: List[Parameters]
                          AssociationPropertyMetadata:
                            Parameters:
                              Start:
                                Type: String
                                Description:
                                  en: Start time in HH:mm:ss format.
                                Default: Null
                                Required: false
                              End:
                                Type: String
                                Description:
                                  en: End time in HH:mm:ss format.
                                Default: Null
                                Required: false
              Periods:
                Description:
                  en: Effective time period.
                Required: false
                Default: Null
                Type: Json
                AssociationProperty: List[Parameters]
                AssociationPropertyMetadata:
                  Parameters:
                    Start:
                      Type: String
                      Description:
                        en: Start time, value is UTC time in RFC3339 format.
                      Default: Null
                      Required: false
                    End:
                      Type: String
                      Description:
                        en: The end time, which is a UTC time in RFC3339 format.
                      Default: Null
                      Required: false
              Zone:
                Type: Number
                Description:
                  en: 'The time zone. If it is not specified, the default value is UTC +00:00. <br> Example: 8 means East Zone 8,-8 means West Zone 8 <br> Range:-12 -+14.'
                Default: Null
                Required: false
        AppPackage:
          Description:
            en: Secondary packaging inspection.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              PackageSigns:
                Description:
                  en: Secondary packaging inspection.
                Required: false
                Default: Null
                Type: Json
                AssociationProperty: List[Parameters]
                AssociationPropertyMetadata:
                  Parameters:
                    Name:
                      Type: String
                      Description:
                        en: Specify a legal package name.
                      Default: Null
                      Required: false
                    Sign:
                      Type: String
                      Description:
                        en: Package Signing.
                      Default: Null
                      Required: false
        Action:
          Type: String
          Description:
            en: Execute Action.
          Default: Null
          Required: false
        AppSdk:
          Description:
            en: App sdk.
          Required: false
          Default: Null
          Type: Json
          AssociationPropertyMetadata:
            Parameters:
              CustomSign:
                Description:
                  en: Custom Tab Fields.
                Required: false
                Default: Null
                Type: Json
                AssociationPropertyMetadata:
                  Parameters:
                    Key:
                      Type: String
                      Description:
                        en: Field Name.
                      Default: Null
                      Required: false
                    Value:
                      Type: String
                      Description:
                        en: Field Value.
                      Default: Null
                      Required: false
              CustomSignStatus:
                Type: String
                Description:
                  en: Custom Tab Field Switch.
                Default: Null
                Required: false
              FeatureAbnormal:
                Description:
                  en: Characteristic anomaly.
                Required: false
                Default: Null
                Type: Json
                AssociationProperty: List[Parameter]
                AssociationPropertyMetadata:
                  Parameter:
                    Type: String
                    Description:
                      en: Characteristic anomaly.
                    Default: Null
                    Required: false
        ManagedList:
          Type: String
          Description:
            en: List of names.
          Default: Null
          Required: false
        Id:
          Type: Number
          Description:
            en: Rule id.
          Default: Null
          Required: false
Resources:
  ExtensionResource:
    Type: ALIYUN::ESA::WafRule
    Properties:
      SiteVersion:
        Ref: SiteVersion
      RulesetId:
        Ref: RulesetId
      SiteId:
        Ref: SiteId
      Phase:
        Ref: Phase
      Shared:
        Ref: Shared
      Config:
        Ref: Config
Outputs:
  Phase:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Phase
    Description: The version of the website.
  RulesetId:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - RulesetId
    Description: The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation.
  UpdateTime:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - UpdateTime
    Description: The time when the rule was last modified.
  Config:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Config
    Description: The configuration of the rule.
  WafRuleId:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - WafRuleId
    Description: WafRule Id.

                        
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "SiteVersion": {
      "Type": "Number",
      "Description": {
        "en": "The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation."
      },
      "Default": null,
      "Required": false
    },
    "RulesetId": {
      "Type": "Number",
      "Description": {
        "en": "The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation."
      },
      "Default": null,
      "Required": false
    },
    "SiteId": {
      "Type": "Number",
      "Description": {
        "en": "The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation."
      },
      "Required": true
    },
    "Phase": {
      "Type": "String",
      "Description": {
        "en": "The version of the website."
      },
      "Required": true
    },
    "Shared": {
      "Description": {
        "en": "The configurations shared by multiple rules."
      },
      "Required": false,
      "Default": null,
      "Type": "Json",
      "AssociationPropertyMetadata": {
        "Parameters": {
          "Target": {
            "Type": "String",
            "Description": {
              "en": "Protection target type: web/app."
            },
            "AllowedValues": [
              "web",
              "app"
            ],
            "Default": null,
            "Required": false
          },
          "Actions": {
            "Description": {
              "en": "Action Extension."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "Response": {
                  "Description": {
                    "en": "Custom Response."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Code": {
                        "Type": "Number",
                        "Description": {
                          "en": "Custom Response Codes."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Id": {
                        "Type": "Number",
                        "Description": {
                          "en": "Custom response page id."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                }
              }
            }
          },
          "CrossSiteId": {
            "Type": "Number",
            "Description": {
              "en": "Specify the cross-domain site id."
            },
            "Default": null,
            "Required": false
          },
          "Mode": {
            "Type": "String",
            "Description": {
              "en": "Web sdk integration mode:\n- `automatic`\n- `manual`."
            },
            "AllowedValues": [
              "automatic",
              "manual"
            ],
            "Default": null,
            "Required": false
          },
          "Action": {
            "Type": "String",
            "Description": {
              "en": "Action."
            },
            "Default": null,
            "Required": false
          },
          "Expression": {
            "Type": "String",
            "Description": {
              "en": "Expression."
            },
            "Default": null,
            "Required": false
          },
          "Match": {
            "Description": {
              "en": "Matching Engine."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "MatchType": {
                  "Type": "String",
                  "Description": {
                    "en": "Match Domain."
                  },
                  "Default": null,
                  "Required": false
                },
                "Logic": {
                  "Type": "String",
                  "Description": {
                    "en": "Logical relationship."
                  },
                  "Default": null,
                  "Required": false
                },
                "Criteria": {
                  "Description": {
                    "en": "Logical List."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationProperty": "List[Parameter]",
                  "AssociationPropertyMetadata": {
                    "Parameter": {
                      "Description": {
                        "en": "Logical List."
                      },
                      "Required": false,
                      "Default": null,
                      "Type": "Json",
                      "AssociationPropertyMetadata": {
                        "Parameters": {
                          "MatchType": {
                            "Type": "String",
                            "Description": {
                              "en": "Match Domain."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "Logic": {
                            "Type": "String",
                            "Description": {
                              "en": "Logical relationship."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "Criteria": {
                            "Description": {
                              "en": "Logical List."
                            },
                            "Required": false,
                            "Default": null,
                            "Type": "Json",
                            "AssociationProperty": "List[Parameter]",
                            "AssociationPropertyMetadata": {
                              "Parameter": {
                                "Description": {
                                  "en": "Logical List."
                                },
                                "Required": false,
                                "Default": null,
                                "Type": "Json",
                                "AssociationPropertyMetadata": {
                                  "Parameters": {
                                    "MatchType": {
                                      "Type": "String",
                                      "Description": {
                                        "en": "Match Domain."
                                      },
                                      "Default": null,
                                      "Required": false
                                    },
                                    "Logic": {
                                      "Type": "String",
                                      "Description": {
                                        "en": "Logical relationship."
                                      },
                                      "Default": null,
                                      "Required": false
                                    },
                                    "Criteria": {
                                      "Description": {
                                        "en": "Logical List."
                                      },
                                      "Required": false,
                                      "Default": null,
                                      "Type": "Json",
                                      "AssociationProperty": "List[Parameters]",
                                      "AssociationPropertyMetadata": {
                                        "Parameters": {
                                          "MatchType": {
                                            "Type": "String",
                                            "Description": {
                                              "en": "Match Domain."
                                            },
                                            "Default": null,
                                            "Required": false
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "Name": {
            "Type": "String",
            "Description": {
              "en": "Rule Set Name."
            },
            "Default": null,
            "Required": false
          }
        }
      }
    },
    "Config": {
      "Description": {
        "en": "The configuration of the rule."
      },
      "Required": false,
      "Default": null,
      "Type": "Json",
      "AssociationPropertyMetadata": {
        "Parameters": {
          "Status": {
            "Type": "String",
            "Description": {
              "en": "Rule Status."
            },
            "Default": null,
            "Required": false
          },
          "ManagedGroupId": {
            "Type": "Number",
            "Description": {
              "en": "Managed rule Group id."
            },
            "Default": null,
            "Required": false
          },
          "Type": {
            "Type": "String",
            "Description": {
              "en": "Rule Type."
            },
            "Default": null,
            "Required": false
          },
          "Sigchl": {
            "Description": {
              "en": "Token check."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationProperty": "List[Parameter]",
            "AssociationPropertyMetadata": {
              "Parameter": {
                "Type": "String",
                "Description": {
                  "en": "Token check."
                },
                "Default": null,
                "Required": false
              }
            }
          },
          "Name": {
            "Type": "String",
            "Description": {
              "en": "Rule Name."
            },
            "Default": null,
            "Required": false
          },
          "SecurityLevel": {
            "Description": {
              "en": "Security Level."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "Value": {
                  "Type": "String",
                  "Description": {
                    "en": "Value of security level."
                  },
                  "Default": null,
                  "Required": false
                }
              }
            }
          },
          "ManagedRulesets": {
            "Description": {
              "en": "Managed Rule Set List."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationProperty": "List[Parameter]",
            "AssociationPropertyMetadata": {
              "Parameter": {
                "Description": {
                  "en": "Managed Rule Set List."
                },
                "Required": false,
                "Default": null,
                "Type": "Json",
                "AssociationPropertyMetadata": {
                  "Parameters": {
                    "NumberTotal": {
                      "Type": "Number",
                      "Description": {
                        "en": "Total number of rules."
                      },
                      "Default": null,
                      "Required": false
                    },
                    "ProtectionLevel": {
                      "Type": "Number",
                      "Description": {
                        "en": "Protection level."
                      },
                      "Default": null,
                      "Required": false
                    },
                    "ManagedRules": {
                      "Description": {
                        "en": "Managed Rule List."
                      },
                      "Required": false,
                      "Default": null,
                      "Type": "Json",
                      "AssociationProperty": "List[Parameters]",
                      "AssociationPropertyMetadata": {
                        "Parameters": {
                          "Status": {
                            "Type": "String",
                            "Description": {
                              "en": "Managed Rule Status."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "Action": {
                            "Type": "String",
                            "Description": {
                              "en": "Managed Rule Action."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "Id": {
                            "Type": "Number",
                            "Description": {
                              "en": "Managed rule ID."
                            },
                            "Default": null,
                            "Required": false
                          }
                        }
                      }
                    },
                    "NumberEnabled": {
                      "Type": "Number",
                      "Description": {
                        "en": "Number of rules opened."
                      },
                      "Default": null,
                      "Required": false
                    },
                    "AttackType": {
                      "Type": "Number",
                      "Description": {
                        "en": "Attack Type."
                      },
                      "Default": null,
                      "Required": false
                    },
                    "Action": {
                      "Type": "String",
                      "Description": {
                        "en": "Execute Action."
                      },
                      "Default": null,
                      "Required": false
                    }
                  }
                }
              }
            }
          },
          "Notes": {
            "Type": "String",
            "Description": {
              "en": "Remarks."
            },
            "Default": null,
            "Required": false
          },
          "Value": {
            "Type": "String",
            "Description": {
              "en": "IP access control value."
            },
            "Default": null,
            "Required": false
          },
          "Actions": {
            "Description": {
              "en": "Extended Action."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "Response": {
                  "Description": {
                    "en": "Customize Response Page."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Code": {
                        "Type": "Number",
                        "Description": {
                          "en": "Custom Response Codes."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Id": {
                        "Type": "Number",
                        "Description": {
                          "en": "Custom response page ID."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                },
                "Bypass": {
                  "Description": {
                    "en": "Skip Module."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Skip": {
                        "Type": "String",
                        "Description": {
                          "en": "Skip module type."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Tags": {
                        "Description": {
                          "en": "Skip Module List."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationProperty": "List[Parameter]",
                        "AssociationPropertyMetadata": {
                          "Parameter": {
                            "Type": "String",
                            "Description": {
                              "en": "Skip Module List."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "ListMetadata": {
                            "Order": [
                              "Key",
                              "Value"
                            ]
                          }
                        }
                      },
                      "RegularTypes": {
                        "Description": {
                          "en": "Managed rule type list."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationProperty": "List[Parameter]",
                        "AssociationPropertyMetadata": {
                          "Parameter": {
                            "Type": "String",
                            "Description": {
                              "en": "Managed rule type list."
                            },
                            "Default": null,
                            "Required": false
                          }
                        }
                      },
                      "RegularRules": {
                        "Description": {
                          "en": "Managed rule id list."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationProperty": "List[Parameter]",
                        "AssociationPropertyMetadata": {
                          "Parameter": {
                            "Type": "Number",
                            "Description": {
                              "en": "Managed rule id list."
                            },
                            "Default": null,
                            "Required": false
                          }
                        }
                      },
                      "CustomRules": {
                        "Description": {
                          "en": "Custom rule id list."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationProperty": "List[Parameter]",
                        "AssociationPropertyMetadata": {
                          "Parameter": {
                            "Type": "Number",
                            "Description": {
                              "en": "Custom rule id list."
                            },
                            "Default": null,
                            "Required": false
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "RateLimit": {
            "Description": {
              "en": "Frequency Control."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "Threshold": {
                  "Description": {
                    "en": "Threshold."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "DistinctManagedRules": {
                        "Type": "Number",
                        "Description": {
                          "en": "Different Managed Rules Threshold."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Request": {
                        "Type": "Number",
                        "Description": {
                          "en": "Request Threshold."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Traffic": {
                        "Type": "String",
                        "Description": {
                          "en": "Flow Threshold."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "ResponseStatus": {
                        "Description": {
                          "en": "Response Code Threshold."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationPropertyMetadata": {
                          "Parameters": {
                            "Count": {
                              "Type": "Number",
                              "Description": {
                                "en": "Response code times threshold."
                              },
                              "Default": null,
                              "Required": false
                            },
                            "Code": {
                              "Type": "Number",
                              "Description": {
                                "en": "HTTP response code."
                              },
                              "Default": null,
                              "Required": false
                            },
                            "Ratio": {
                              "Type": "Number",
                              "Description": {
                                "en": "Percentage of response code."
                              },
                              "Default": null,
                              "Required": false
                            }
                          }
                        }
                      },
                      "ManagedRulesBlocked": {
                        "Type": "Number",
                        "Description": {
                          "en": "Managed Rule Hit Threshold."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                },
                "Characteristics": {
                  "Description": {
                    "en": "Statistical object."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Logic": {
                        "Type": "String",
                        "Description": {
                          "en": "Logical relationship."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Criteria": {
                        "Description": {
                          "en": "Logical List."
                        },
                        "Required": false,
                        "Default": null,
                        "Type": "Json",
                        "AssociationProperty": "List[Parameter]",
                        "AssociationPropertyMetadata": {
                          "Parameter": {
                            "Description": {
                              "en": "Logical List."
                            },
                            "Required": false,
                            "Default": null,
                            "Type": "Json",
                            "AssociationPropertyMetadata": {
                              "Parameters": {
                                "MatchType": {
                                  "Type": "String",
                                  "Description": {
                                    "en": "Match Domain."
                                  },
                                  "Default": null,
                                  "Required": false
                                },
                                "Logic": {
                                  "Type": "String",
                                  "Description": {
                                    "en": "Logical relationship."
                                  },
                                  "Default": null,
                                  "Required": false
                                },
                                "Criteria": {
                                  "Description": {
                                    "en": "Logical List."
                                  },
                                  "Required": false,
                                  "Default": null,
                                  "Type": "Json",
                                  "AssociationProperty": "List[Parameter]",
                                  "AssociationPropertyMetadata": {
                                    "Parameter": {
                                      "Description": {
                                        "en": "Logical List."
                                      },
                                      "Required": false,
                                      "Default": null,
                                      "Type": "Json",
                                      "AssociationPropertyMetadata": {
                                        "Parameters": {
                                          "MatchType": {
                                            "Type": "String",
                                            "Description": {
                                              "en": "Match Domain."
                                            },
                                            "Default": null,
                                            "Required": false
                                          },
                                          "Logic": {
                                            "Type": "String",
                                            "Description": {
                                              "en": "Logical relationship."
                                            },
                                            "Default": null,
                                            "Required": false
                                          },
                                          "Criteria": {
                                            "Description": {
                                              "en": "Logical List."
                                            },
                                            "Required": false,
                                            "Default": null,
                                            "Type": "Json",
                                            "AssociationProperty": "List[Parameters]",
                                            "AssociationPropertyMetadata": {
                                              "Parameters": {
                                                "MatchType": {
                                                  "Type": "String",
                                                  "Description": {
                                                    "en": "Match Domain."
                                                  },
                                                  "Default": null,
                                                  "Required": false
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "Interval": {
                  "Type": "Number",
                  "Description": {
                    "en": "Statistical Duration."
                  },
                  "Default": null,
                  "Required": false
                },
                "Ttl": {
                  "Type": "Number",
                  "Description": {
                    "en": "Timeout."
                  },
                  "Default": null,
                  "Required": false
                },
                "OnHit": {
                  "Type": "Boolean",
                  "Description": {
                    "en": "Apply on requests that hit the cache."
                  },
                  "Default": null,
                  "Required": false
                }
              }
            }
          },
          "Expression": {
            "Type": "String",
            "Description": {
              "en": "Expression."
            },
            "Default": null,
            "Required": false
          },
          "Timer": {
            "Description": {
              "en": "Timer."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "Scopes": {
                  "Type": "String",
                  "Description": {
                    "en": "Timing type: \n- `permanent`\n- `periods`\n- `weekly`."
                  },
                  "AllowedValues": [
                    "permanent",
                    "periods",
                    "weekly"
                  ],
                  "Default": null,
                  "Required": false
                },
                "WeeklyPeriods": {
                  "Description": {
                    "en": "Weekly effective time period."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationProperty": "List[Parameter]",
                  "AssociationPropertyMetadata": {
                    "Parameter": {
                      "Description": {
                        "en": "Weekly effective time period."
                      },
                      "Required": false,
                      "Default": null,
                      "Type": "Json",
                      "AssociationPropertyMetadata": {
                        "Parameters": {
                          "Days": {
                            "Type": "String",
                            "Description": {
                              "en": "Cycle, multiple use comma separated, 1-7 respectively represent Monday-Sunday. <br> Example: Monday, Wednesday value is \"1,3\"."
                            },
                            "Default": null,
                            "Required": false
                          },
                          "DailyPeriods": {
                            "Description": {
                              "en": "Effective time in the cycle."
                            },
                            "Required": false,
                            "Default": null,
                            "Type": "Json",
                            "AssociationProperty": "List[Parameters]",
                            "AssociationPropertyMetadata": {
                              "Parameters": {
                                "Start": {
                                  "Type": "String",
                                  "Description": {
                                    "en": "Start time in HH:mm:ss format."
                                  },
                                  "Default": null,
                                  "Required": false
                                },
                                "End": {
                                  "Type": "String",
                                  "Description": {
                                    "en": "End time in HH:mm:ss format."
                                  },
                                  "Default": null,
                                  "Required": false
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "Periods": {
                  "Description": {
                    "en": "Effective time period."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationProperty": "List[Parameters]",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Start": {
                        "Type": "String",
                        "Description": {
                          "en": "Start time, value is UTC time in RFC3339 format."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "End": {
                        "Type": "String",
                        "Description": {
                          "en": "The end time, which is a UTC time in RFC3339 format."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                },
                "Zone": {
                  "Type": "Number",
                  "Description": {
                    "en": "The time zone. If it is not specified, the default value is UTC +00:00. <br> Example: 8 means East Zone 8,-8 means West Zone 8 <br> Range:-12 -+14."
                  },
                  "Default": null,
                  "Required": false
                }
              }
            }
          },
          "AppPackage": {
            "Description": {
              "en": "Secondary packaging inspection."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "PackageSigns": {
                  "Description": {
                    "en": "Secondary packaging inspection."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationProperty": "List[Parameters]",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Name": {
                        "Type": "String",
                        "Description": {
                          "en": "Specify a legal package name."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Sign": {
                        "Type": "String",
                        "Description": {
                          "en": "Package Signing."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                }
              }
            }
          },
          "Action": {
            "Type": "String",
            "Description": {
              "en": "Execute Action."
            },
            "Default": null,
            "Required": false
          },
          "AppSdk": {
            "Description": {
              "en": "App sdk."
            },
            "Required": false,
            "Default": null,
            "Type": "Json",
            "AssociationPropertyMetadata": {
              "Parameters": {
                "CustomSign": {
                  "Description": {
                    "en": "Custom Tab Fields."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationPropertyMetadata": {
                    "Parameters": {
                      "Key": {
                        "Type": "String",
                        "Description": {
                          "en": "Field Name."
                        },
                        "Default": null,
                        "Required": false
                      },
                      "Value": {
                        "Type": "String",
                        "Description": {
                          "en": "Field Value."
                        },
                        "Default": null,
                        "Required": false
                      }
                    }
                  }
                },
                "CustomSignStatus": {
                  "Type": "String",
                  "Description": {
                    "en": "Custom Tab Field Switch."
                  },
                  "Default": null,
                  "Required": false
                },
                "FeatureAbnormal": {
                  "Description": {
                    "en": "Characteristic anomaly."
                  },
                  "Required": false,
                  "Default": null,
                  "Type": "Json",
                  "AssociationProperty": "List[Parameter]",
                  "AssociationPropertyMetadata": {
                    "Parameter": {
                      "Type": "String",
                      "Description": {
                        "en": "Characteristic anomaly."
                      },
                      "Default": null,
                      "Required": false
                    }
                  }
                }
              }
            }
          },
          "ManagedList": {
            "Type": "String",
            "Description": {
              "en": "List of names."
            },
            "Default": null,
            "Required": false
          },
          "Id": {
            "Type": "Number",
            "Description": {
              "en": "Rule id."
            },
            "Default": null,
            "Required": false
          }
        }
      }
    }
  },
  "Resources": {
    "ExtensionResource": {
      "Type": "ALIYUN::ESA::WafRule",
      "Properties": {
        "SiteVersion": {
          "Ref": "SiteVersion"
        },
        "RulesetId": {
          "Ref": "RulesetId"
        },
        "SiteId": {
          "Ref": "SiteId"
        },
        "Phase": {
          "Ref": "Phase"
        },
        "Shared": {
          "Ref": "Shared"
        },
        "Config": {
          "Ref": "Config"
        }
      }
    }
  },
  "Outputs": {
    "Phase": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Phase"
        ]
      },
      "Description": "The version of the website."
    },
    "RulesetId": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "RulesetId"
        ]
      },
      "Description": "The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation."
    },
    "UpdateTime": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "UpdateTime"
        ]
      },
      "Description": "The time when the rule was last modified."
    },
    "Config": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Config"
        ]
      },
      "Description": "The configuration of the rule."
    },
    "WafRuleId": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "WafRuleId"
        ]
      },
      "Description": "WafRule Id."
    }
  }
}