tencentcloud-sdk-waf 3.0.1169 → 3.0.1172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1255,6 +1255,65 @@ module TencentCloud
1255
1255
  end
1256
1256
  end
1257
1257
 
1258
+ # 带有请求方式的apiname结构体
1259
+ class ApiNameMethod < TencentCloud::Common::AbstractModel
1260
+ # @param ApiName: api名称
1261
+ # @type ApiName: String
1262
+ # @param Method: api请求方式
1263
+ # @type Method: String
1264
+ # @param Count: api近30天请求数量
1265
+ # @type Count: Integer
1266
+ # @param Label: api标签
1267
+ # @type Label: Array
1268
+
1269
+ attr_accessor :ApiName, :Method, :Count, :Label
1270
+
1271
+ def initialize(apiname=nil, method=nil, count=nil, label=nil)
1272
+ @ApiName = apiname
1273
+ @Method = method
1274
+ @Count = count
1275
+ @Label = label
1276
+ end
1277
+
1278
+ def deserialize(params)
1279
+ @ApiName = params['ApiName']
1280
+ @Method = params['Method']
1281
+ @Count = params['Count']
1282
+ @Label = params['Label']
1283
+ end
1284
+ end
1285
+
1286
+ # 带有匹配方式的apiname列表
1287
+ class ApiNameOp < TencentCloud::Common::AbstractModel
1288
+ # @param Value: 匹配值列表
1289
+ # @type Value: Array
1290
+ # @param Op: 匹配方式,如属于和正则等
1291
+ # @type Op: String
1292
+ # @param ApiNameMethod: 手动筛选的时候,要传该结构体
1293
+ # @type ApiNameMethod: Array
1294
+
1295
+ attr_accessor :Value, :Op, :ApiNameMethod
1296
+
1297
+ def initialize(value=nil, op=nil, apinamemethod=nil)
1298
+ @Value = value
1299
+ @Op = op
1300
+ @ApiNameMethod = apinamemethod
1301
+ end
1302
+
1303
+ def deserialize(params)
1304
+ @Value = params['Value']
1305
+ @Op = params['Op']
1306
+ unless params['ApiNameMethod'].nil?
1307
+ @ApiNameMethod = []
1308
+ params['ApiNameMethod'].each do |i|
1309
+ apinamemethod_tmp = ApiNameMethod.new
1310
+ apinamemethod_tmp.deserialize(i)
1311
+ @ApiNameMethod << apinamemethod_tmp
1312
+ end
1313
+ end
1314
+ end
1315
+ end
1316
+
1258
1317
  # api请求参数类型
1259
1318
  class ApiParameterType < TencentCloud::Common::AbstractModel
1260
1319
  # @param ParameterName: 参数名称
@@ -1355,6 +1414,151 @@ module TencentCloud
1355
1414
  end
1356
1415
  end
1357
1416
 
1417
+ # api安全自定义事件规则结构体
1418
+ class ApiSecCustomEventRule < TencentCloud::Common::AbstractModel
1419
+ # @param RuleName: 规则名称
1420
+ # @type RuleName: String
1421
+ # @param Status: 开关,1:开,0:关
1422
+ # @type Status: Integer
1423
+ # @param ApiNameOp: api匹配列表
1424
+ # @type ApiNameOp: Array
1425
+ # @param Description: 事件详情
1426
+ # @type Description: String
1427
+ # @param UpdateTime: 时间戳,出参有该值,入参不需要传没有
1428
+ # @type UpdateTime: Integer
1429
+ # @param MatchRuleList: 匹配规则列表
1430
+ # @type MatchRuleList: Array
1431
+ # @param StatRuleList: 统计规则列表
1432
+ # @type StatRuleList: Array
1433
+ # @param ReqFrequency: 访问频次,第一个字段表示次数,第二个字段表示分钟
1434
+ # @type ReqFrequency: Array
1435
+ # @param RiskLevel: 风险等级,取值为100,200,300,分别表示低位、中危、高危
1436
+ # @type RiskLevel: String
1437
+ # @param Source: 规则来源
1438
+ # @type Source: String
1439
+
1440
+ attr_accessor :RuleName, :Status, :ApiNameOp, :Description, :UpdateTime, :MatchRuleList, :StatRuleList, :ReqFrequency, :RiskLevel, :Source
1441
+
1442
+ def initialize(rulename=nil, status=nil, apinameop=nil, description=nil, updatetime=nil, matchrulelist=nil, statrulelist=nil, reqfrequency=nil, risklevel=nil, source=nil)
1443
+ @RuleName = rulename
1444
+ @Status = status
1445
+ @ApiNameOp = apinameop
1446
+ @Description = description
1447
+ @UpdateTime = updatetime
1448
+ @MatchRuleList = matchrulelist
1449
+ @StatRuleList = statrulelist
1450
+ @ReqFrequency = reqfrequency
1451
+ @RiskLevel = risklevel
1452
+ @Source = source
1453
+ end
1454
+
1455
+ def deserialize(params)
1456
+ @RuleName = params['RuleName']
1457
+ @Status = params['Status']
1458
+ unless params['ApiNameOp'].nil?
1459
+ @ApiNameOp = []
1460
+ params['ApiNameOp'].each do |i|
1461
+ apinameop_tmp = ApiNameOp.new
1462
+ apinameop_tmp.deserialize(i)
1463
+ @ApiNameOp << apinameop_tmp
1464
+ end
1465
+ end
1466
+ @Description = params['Description']
1467
+ @UpdateTime = params['UpdateTime']
1468
+ unless params['MatchRuleList'].nil?
1469
+ @MatchRuleList = []
1470
+ params['MatchRuleList'].each do |i|
1471
+ apisecsceneruleentry_tmp = ApiSecSceneRuleEntry.new
1472
+ apisecsceneruleentry_tmp.deserialize(i)
1473
+ @MatchRuleList << apisecsceneruleentry_tmp
1474
+ end
1475
+ end
1476
+ unless params['StatRuleList'].nil?
1477
+ @StatRuleList = []
1478
+ params['StatRuleList'].each do |i|
1479
+ apisecsceneruleentry_tmp = ApiSecSceneRuleEntry.new
1480
+ apisecsceneruleentry_tmp.deserialize(i)
1481
+ @StatRuleList << apisecsceneruleentry_tmp
1482
+ end
1483
+ end
1484
+ @ReqFrequency = params['ReqFrequency']
1485
+ @RiskLevel = params['RiskLevel']
1486
+ @Source = params['Source']
1487
+ end
1488
+ end
1489
+
1490
+ # api安全客户自定义敏感检测规则
1491
+ class ApiSecCustomSensitiveRule < TencentCloud::Common::AbstractModel
1492
+ # @param Position: 参数位置
1493
+ # @type Position: Array
1494
+ # @param MatchKey: 匹配条件
1495
+ # @type MatchKey: String
1496
+ # @param MatchValue: 匹配值
1497
+ # @type MatchValue: Array
1498
+ # @param Level: 风险等级
1499
+ # @type Level: String
1500
+ # @param MatchCond: 匹配符号,当匹配条件为关键字匹配和字符匹配的时候传该值,可传多个
1501
+ # @type MatchCond: Array
1502
+ # @param IsPan: 规则是否泛化,默认0表示不泛化
1503
+ # @type IsPan: Integer
1504
+
1505
+ attr_accessor :Position, :MatchKey, :MatchValue, :Level, :MatchCond, :IsPan
1506
+
1507
+ def initialize(position=nil, matchkey=nil, matchvalue=nil, level=nil, matchcond=nil, ispan=nil)
1508
+ @Position = position
1509
+ @MatchKey = matchkey
1510
+ @MatchValue = matchvalue
1511
+ @Level = level
1512
+ @MatchCond = matchcond
1513
+ @IsPan = ispan
1514
+ end
1515
+
1516
+ def deserialize(params)
1517
+ @Position = params['Position']
1518
+ @MatchKey = params['MatchKey']
1519
+ @MatchValue = params['MatchValue']
1520
+ @Level = params['Level']
1521
+ @MatchCond = params['MatchCond']
1522
+ @IsPan = params['IsPan']
1523
+ end
1524
+ end
1525
+
1526
+ # api提取规则内容
1527
+ class ApiSecExtractRule < TencentCloud::Common::AbstractModel
1528
+ # @param RuleName: 规则名称
1529
+ # @type RuleName: String
1530
+ # @param ApiName: api名称
1531
+ # @type ApiName: String
1532
+ # @param Methods: 请求方法列表
1533
+ # @type Methods: Array
1534
+ # @param Status: 开关状态,0是关,1是开
1535
+ # @type Status: Integer
1536
+ # @param Regex: 正则匹配内容
1537
+ # @type Regex: String
1538
+ # @param UpdateTime: 10更新时间戳
1539
+ # @type UpdateTime: Integer
1540
+
1541
+ attr_accessor :RuleName, :ApiName, :Methods, :Status, :Regex, :UpdateTime
1542
+
1543
+ def initialize(rulename=nil, apiname=nil, methods=nil, status=nil, regex=nil, updatetime=nil)
1544
+ @RuleName = rulename
1545
+ @ApiName = apiname
1546
+ @Methods = methods
1547
+ @Status = status
1548
+ @Regex = regex
1549
+ @UpdateTime = updatetime
1550
+ end
1551
+
1552
+ def deserialize(params)
1553
+ @RuleName = params['RuleName']
1554
+ @ApiName = params['ApiName']
1555
+ @Methods = params['Methods']
1556
+ @Status = params['Status']
1557
+ @Regex = params['Regex']
1558
+ @UpdateTime = params['UpdateTime']
1559
+ end
1560
+ end
1561
+
1358
1562
  # api列表
1359
1563
  class ApiSecKey < TencentCloud::Common::AbstractModel
1360
1564
  # @param ApiName: api名称
@@ -1379,6 +1583,129 @@ module TencentCloud
1379
1583
  end
1380
1584
  end
1381
1585
 
1586
+ # 自定义api鉴权规则
1587
+ class ApiSecPrivilegeRule < TencentCloud::Common::AbstractModel
1588
+ # @param RuleName: 规则名称,不可重复
1589
+ # @type RuleName: String
1590
+ # @param Status: 1:开,0:关
1591
+ # @type Status: Integer
1592
+ # @param ApiName: 最多输入20个api
1593
+ # @type ApiName: Array
1594
+ # @param Position: 鉴权位置
1595
+ # @type Position: String
1596
+ # @param ParameterList: 鉴权参数列表
1597
+ # @type ParameterList: Array
1598
+ # @param UpdateTime: 更新时间戳
1599
+ # @type UpdateTime: Integer
1600
+ # @param Source: 规则来源
1601
+ # @type Source: String
1602
+ # @param ApiNameOp: 带有匹配方式的api列表
1603
+ # @type ApiNameOp: Array
1604
+ # @param Option: 应用对象取值,1表示手动填写,2表示从api资产中获取
1605
+ # @type Option: Integer
1606
+
1607
+ attr_accessor :RuleName, :Status, :ApiName, :Position, :ParameterList, :UpdateTime, :Source, :ApiNameOp, :Option
1608
+
1609
+ def initialize(rulename=nil, status=nil, apiname=nil, position=nil, parameterlist=nil, updatetime=nil, source=nil, apinameop=nil, option=nil)
1610
+ @RuleName = rulename
1611
+ @Status = status
1612
+ @ApiName = apiname
1613
+ @Position = position
1614
+ @ParameterList = parameterlist
1615
+ @UpdateTime = updatetime
1616
+ @Source = source
1617
+ @ApiNameOp = apinameop
1618
+ @Option = option
1619
+ end
1620
+
1621
+ def deserialize(params)
1622
+ @RuleName = params['RuleName']
1623
+ @Status = params['Status']
1624
+ @ApiName = params['ApiName']
1625
+ @Position = params['Position']
1626
+ @ParameterList = params['ParameterList']
1627
+ @UpdateTime = params['UpdateTime']
1628
+ @Source = params['Source']
1629
+ unless params['ApiNameOp'].nil?
1630
+ @ApiNameOp = []
1631
+ params['ApiNameOp'].each do |i|
1632
+ apinameop_tmp = ApiNameOp.new
1633
+ apinameop_tmp.deserialize(i)
1634
+ @ApiNameOp << apinameop_tmp
1635
+ end
1636
+ end
1637
+ @Option = params['Option']
1638
+ end
1639
+ end
1640
+
1641
+ # api安全自定义场景规则
1642
+ class ApiSecSceneRule < TencentCloud::Common::AbstractModel
1643
+ # @param RuleName: 场景名称
1644
+ # @type RuleName: String
1645
+ # @param Status: 开关状态,1表示开,0表示关
1646
+ # @type Status: Integer
1647
+ # @param UpdateTime: 更新时间,10位时间戳
1648
+ # @type UpdateTime: Integer
1649
+ # @param RuleList: 规则列表
1650
+ # @type RuleList: Array
1651
+ # @param Source: 规则来源,系统内置:OS
1652
+ # 客户自定义:custom
1653
+ # @type Source: String
1654
+
1655
+ attr_accessor :RuleName, :Status, :UpdateTime, :RuleList, :Source
1656
+
1657
+ def initialize(rulename=nil, status=nil, updatetime=nil, rulelist=nil, source=nil)
1658
+ @RuleName = rulename
1659
+ @Status = status
1660
+ @UpdateTime = updatetime
1661
+ @RuleList = rulelist
1662
+ @Source = source
1663
+ end
1664
+
1665
+ def deserialize(params)
1666
+ @RuleName = params['RuleName']
1667
+ @Status = params['Status']
1668
+ @UpdateTime = params['UpdateTime']
1669
+ unless params['RuleList'].nil?
1670
+ @RuleList = []
1671
+ params['RuleList'].each do |i|
1672
+ apisecsceneruleentry_tmp = ApiSecSceneRuleEntry.new
1673
+ apisecsceneruleentry_tmp.deserialize(i)
1674
+ @RuleList << apisecsceneruleentry_tmp
1675
+ end
1676
+ end
1677
+ @Source = params['Source']
1678
+ end
1679
+ end
1680
+
1681
+ # api安全用户自定义场景规则结构体
1682
+ class ApiSecSceneRuleEntry < TencentCloud::Common::AbstractModel
1683
+ # @param Key: 匹配字段
1684
+ # @type Key: String
1685
+ # @param Value: 匹配值
1686
+ # @type Value: Array
1687
+ # @param Operate: 操作符
1688
+ # @type Operate: String
1689
+ # @param Name: 当匹配字段是get参数值,post参数值,cookie参数值,header参数值,rsp参数值的时候,可填充此字段
1690
+ # @type Name: String
1691
+
1692
+ attr_accessor :Key, :Value, :Operate, :Name
1693
+
1694
+ def initialize(key=nil, value=nil, operate=nil, name=nil)
1695
+ @Key = key
1696
+ @Value = value
1697
+ @Operate = operate
1698
+ @Name = name
1699
+ end
1700
+
1701
+ def deserialize(params)
1702
+ @Key = params['Key']
1703
+ @Value = params['Value']
1704
+ @Operate = params['Operate']
1705
+ @Name = params['Name']
1706
+ end
1707
+ end
1708
+
1382
1709
  # 地域信息
1383
1710
  class Area < TencentCloud::Common::AbstractModel
1384
1711
  # @param Country: 国家,除了标准的国家外还支持国内、国外这两个特殊的标识
@@ -1746,6 +2073,38 @@ module TencentCloud
1746
2073
  end
1747
2074
  end
1748
2075
 
2076
+ # BOT-ID规则信息
2077
+ class BotIdConfig < TencentCloud::Common::AbstractModel
2078
+ # @param RuleId: 规则ID
2079
+ # @type RuleId: String
2080
+ # @param Status: 规则开关
2081
+ # @type Status: Boolean
2082
+ # @param Action: 动作配置
2083
+ # @type Action: String
2084
+ # @param BotId: 规则名称
2085
+ # @type BotId: String
2086
+ # @param Redirect: 重定向路径
2087
+ # @type Redirect: String
2088
+
2089
+ attr_accessor :RuleId, :Status, :Action, :BotId, :Redirect
2090
+
2091
+ def initialize(ruleid=nil, status=nil, action=nil, botid=nil, redirect=nil)
2092
+ @RuleId = ruleid
2093
+ @Status = status
2094
+ @Action = action
2095
+ @BotId = botid
2096
+ @Redirect = redirect
2097
+ end
2098
+
2099
+ def deserialize(params)
2100
+ @RuleId = params['RuleId']
2101
+ @Status = params['Status']
2102
+ @Action = params['Action']
2103
+ @BotId = params['BotId']
2104
+ @Redirect = params['Redirect']
2105
+ end
2106
+ end
2107
+
1749
2108
  # Bot资源信息
1750
2109
  class BotPkg < TencentCloud::Common::AbstractModel
1751
2110
  # @param ResourceIds: 资源id
@@ -3660,6 +4019,173 @@ module TencentCloud
3660
4019
  end
3661
4020
  end
3662
4021
 
4022
+ # CreateRateLimitV2请求参数结构体
4023
+ class CreateRateLimitV2Request < TencentCloud::Common::AbstractModel
4024
+ # @param Domain: 域名
4025
+ # @type Domain: String
4026
+ # @param Name: 规则名
4027
+ # @type Name: String
4028
+ # @param Priority: 规则优先级
4029
+ # @type Priority: Integer
4030
+ # @param Status: 规则开关,0关闭,1开启
4031
+ # @type Status: Integer
4032
+ # @param LimitWindow: 限流窗口
4033
+ # @type LimitWindow: :class:`Tencentcloud::Waf.v20180125.models.LimitWindow`
4034
+ # @param LimitObject: 支持API或Domain,如果是基于API,则LimitPaths不能为空,否则LimitPaths为空
4035
+ # @type LimitObject: String
4036
+ # @param LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
4037
+ # @type LimitStrategy: Integer
4038
+ # @param LimitMethod: 限流方法
4039
+ # @type LimitMethod: :class:`Tencentcloud::Waf.v20180125.models.LimitMethod`
4040
+ # @param LimitPaths: 限流路径列表
4041
+ # @type LimitPaths: :class:`Tencentcloud::Waf.v20180125.models.LimitPath`
4042
+ # @param LimitHeaders: 限流Headers
4043
+ # @type LimitHeaders: Array
4044
+ # @param LimitHeaderName: 基于Header参数名限流
4045
+ # @type LimitHeaderName: :class:`Tencentcloud::Waf.v20180125.models.LimitHeaderName`
4046
+ # @param GetParamsName: 基于Get参数名限流
4047
+ # @type GetParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
4048
+ # @param GetParamsValue: 基于Get参数值限流
4049
+ # @type GetParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
4050
+ # @param PostParamsName: 基于Post参数名限流
4051
+ # @type PostParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
4052
+ # @param PostParamsValue: 基于Post参数值限流
4053
+ # @type PostParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
4054
+ # @param IpLocation: 基于IP归属地限流
4055
+ # @type IpLocation: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
4056
+ # @param RedirectInfo: 重定向信息,当LimitStrategy为重定向时,此字段必填
4057
+ # @type RedirectInfo: :class:`Tencentcloud::Waf.v20180125.models.RedirectInfo`
4058
+ # @param BlockPage: 拦截页面,0表示429,否则填写blockPageID
4059
+ # @type BlockPage: Integer
4060
+ # @param ObjectSrc: 限流对象来源,0:手动填写,1:API资产
4061
+ # @type ObjectSrc: Integer
4062
+ # @param QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
4063
+ # @type QuotaShare: Boolean
4064
+ # @param PathsOption: 路径选项,可配置每个路径的请求方法
4065
+ # @type PathsOption: Array
4066
+ # @param Order: 限流执行顺序,0:默认情况,限流优先,1:安全防护优先
4067
+ # @type Order: Integer
4068
+
4069
+ attr_accessor :Domain, :Name, :Priority, :Status, :LimitWindow, :LimitObject, :LimitStrategy, :LimitMethod, :LimitPaths, :LimitHeaders, :LimitHeaderName, :GetParamsName, :GetParamsValue, :PostParamsName, :PostParamsValue, :IpLocation, :RedirectInfo, :BlockPage, :ObjectSrc, :QuotaShare, :PathsOption, :Order
4070
+
4071
+ def initialize(domain=nil, name=nil, priority=nil, status=nil, limitwindow=nil, limitobject=nil, limitstrategy=nil, limitmethod=nil, limitpaths=nil, limitheaders=nil, limitheadername=nil, getparamsname=nil, getparamsvalue=nil, postparamsname=nil, postparamsvalue=nil, iplocation=nil, redirectinfo=nil, blockpage=nil, objectsrc=nil, quotashare=nil, pathsoption=nil, order=nil)
4072
+ @Domain = domain
4073
+ @Name = name
4074
+ @Priority = priority
4075
+ @Status = status
4076
+ @LimitWindow = limitwindow
4077
+ @LimitObject = limitobject
4078
+ @LimitStrategy = limitstrategy
4079
+ @LimitMethod = limitmethod
4080
+ @LimitPaths = limitpaths
4081
+ @LimitHeaders = limitheaders
4082
+ @LimitHeaderName = limitheadername
4083
+ @GetParamsName = getparamsname
4084
+ @GetParamsValue = getparamsvalue
4085
+ @PostParamsName = postparamsname
4086
+ @PostParamsValue = postparamsvalue
4087
+ @IpLocation = iplocation
4088
+ @RedirectInfo = redirectinfo
4089
+ @BlockPage = blockpage
4090
+ @ObjectSrc = objectsrc
4091
+ @QuotaShare = quotashare
4092
+ @PathsOption = pathsoption
4093
+ @Order = order
4094
+ end
4095
+
4096
+ def deserialize(params)
4097
+ @Domain = params['Domain']
4098
+ @Name = params['Name']
4099
+ @Priority = params['Priority']
4100
+ @Status = params['Status']
4101
+ unless params['LimitWindow'].nil?
4102
+ @LimitWindow = LimitWindow.new
4103
+ @LimitWindow.deserialize(params['LimitWindow'])
4104
+ end
4105
+ @LimitObject = params['LimitObject']
4106
+ @LimitStrategy = params['LimitStrategy']
4107
+ unless params['LimitMethod'].nil?
4108
+ @LimitMethod = LimitMethod.new
4109
+ @LimitMethod.deserialize(params['LimitMethod'])
4110
+ end
4111
+ unless params['LimitPaths'].nil?
4112
+ @LimitPaths = LimitPath.new
4113
+ @LimitPaths.deserialize(params['LimitPaths'])
4114
+ end
4115
+ unless params['LimitHeaders'].nil?
4116
+ @LimitHeaders = []
4117
+ params['LimitHeaders'].each do |i|
4118
+ limitheader_tmp = LimitHeader.new
4119
+ limitheader_tmp.deserialize(i)
4120
+ @LimitHeaders << limitheader_tmp
4121
+ end
4122
+ end
4123
+ unless params['LimitHeaderName'].nil?
4124
+ @LimitHeaderName = LimitHeaderName.new
4125
+ @LimitHeaderName.deserialize(params['LimitHeaderName'])
4126
+ end
4127
+ unless params['GetParamsName'].nil?
4128
+ @GetParamsName = MatchOption.new
4129
+ @GetParamsName.deserialize(params['GetParamsName'])
4130
+ end
4131
+ unless params['GetParamsValue'].nil?
4132
+ @GetParamsValue = MatchOption.new
4133
+ @GetParamsValue.deserialize(params['GetParamsValue'])
4134
+ end
4135
+ unless params['PostParamsName'].nil?
4136
+ @PostParamsName = MatchOption.new
4137
+ @PostParamsName.deserialize(params['PostParamsName'])
4138
+ end
4139
+ unless params['PostParamsValue'].nil?
4140
+ @PostParamsValue = MatchOption.new
4141
+ @PostParamsValue.deserialize(params['PostParamsValue'])
4142
+ end
4143
+ unless params['IpLocation'].nil?
4144
+ @IpLocation = MatchOption.new
4145
+ @IpLocation.deserialize(params['IpLocation'])
4146
+ end
4147
+ unless params['RedirectInfo'].nil?
4148
+ @RedirectInfo = RedirectInfo.new
4149
+ @RedirectInfo.deserialize(params['RedirectInfo'])
4150
+ end
4151
+ @BlockPage = params['BlockPage']
4152
+ @ObjectSrc = params['ObjectSrc']
4153
+ @QuotaShare = params['QuotaShare']
4154
+ unless params['PathsOption'].nil?
4155
+ @PathsOption = []
4156
+ params['PathsOption'].each do |i|
4157
+ pathitem_tmp = PathItem.new
4158
+ pathitem_tmp.deserialize(i)
4159
+ @PathsOption << pathitem_tmp
4160
+ end
4161
+ end
4162
+ @Order = params['Order']
4163
+ end
4164
+ end
4165
+
4166
+ # CreateRateLimitV2返回参数结构体
4167
+ class CreateRateLimitV2Response < TencentCloud::Common::AbstractModel
4168
+ # @param BaseInfo: 操作结果
4169
+ # @type BaseInfo: :class:`Tencentcloud::Waf.v20180125.models.RateLimitCommonRsp`
4170
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
4171
+ # @type RequestId: String
4172
+
4173
+ attr_accessor :BaseInfo, :RequestId
4174
+
4175
+ def initialize(baseinfo=nil, requestid=nil)
4176
+ @BaseInfo = baseinfo
4177
+ @RequestId = requestid
4178
+ end
4179
+
4180
+ def deserialize(params)
4181
+ unless params['BaseInfo'].nil?
4182
+ @BaseInfo = RateLimitCommonRsp.new
4183
+ @BaseInfo.deserialize(params['BaseInfo'])
4184
+ end
4185
+ @RequestId = params['RequestId']
4186
+ end
4187
+ end
4188
+
3663
4189
  # 规则周期执行的数据结构
3664
4190
  class CronJob < TencentCloud::Common::AbstractModel
3665
4191
  # @param Days: 每个月的几号执行
@@ -4419,6 +4945,49 @@ module TencentCloud
4419
4945
  end
4420
4946
  end
4421
4947
 
4948
+ # DeleteRateLimitsV2请求参数结构体
4949
+ class DeleteRateLimitsV2Request < TencentCloud::Common::AbstractModel
4950
+ # @param Domain: 域名
4951
+ # @type Domain: String
4952
+ # @param LimitRuleIds: 要删除的限流ID列表
4953
+ # @type LimitRuleIds: Array
4954
+
4955
+ attr_accessor :Domain, :LimitRuleIds
4956
+
4957
+ def initialize(domain=nil, limitruleids=nil)
4958
+ @Domain = domain
4959
+ @LimitRuleIds = limitruleids
4960
+ end
4961
+
4962
+ def deserialize(params)
4963
+ @Domain = params['Domain']
4964
+ @LimitRuleIds = params['LimitRuleIds']
4965
+ end
4966
+ end
4967
+
4968
+ # DeleteRateLimitsV2返回参数结构体
4969
+ class DeleteRateLimitsV2Response < TencentCloud::Common::AbstractModel
4970
+ # @param BaseInfo: 操作结果
4971
+ # @type BaseInfo: :class:`Tencentcloud::Waf.v20180125.models.RateLimitCommonRsp`
4972
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
4973
+ # @type RequestId: String
4974
+
4975
+ attr_accessor :BaseInfo, :RequestId
4976
+
4977
+ def initialize(baseinfo=nil, requestid=nil)
4978
+ @BaseInfo = baseinfo
4979
+ @RequestId = requestid
4980
+ end
4981
+
4982
+ def deserialize(params)
4983
+ unless params['BaseInfo'].nil?
4984
+ @BaseInfo = RateLimitCommonRsp.new
4985
+ @BaseInfo.deserialize(params['BaseInfo'])
4986
+ end
4987
+ @RequestId = params['RequestId']
4988
+ end
4989
+ end
4990
+
4422
4991
  # DeleteSession请求参数结构体
4423
4992
  class DeleteSessionRequest < TencentCloud::Common::AbstractModel
4424
4993
  # @param Domain: 域名
@@ -8289,6 +8858,108 @@ module TencentCloud
8289
8858
  end
8290
8859
  end
8291
8860
 
8861
+ # DescribeRateLimitsV2请求参数结构体
8862
+ class DescribeRateLimitsV2Request < TencentCloud::Common::AbstractModel
8863
+ # @param Domain: 域名
8864
+ # @type Domain: String
8865
+ # @param Id: 限流规则ID
8866
+ # @type Id: Integer
8867
+ # @param Name: 规则名
8868
+ # @type Name: String
8869
+ # @param Method: 限流接口名
8870
+ # @type Method: String
8871
+ # @param LimitObject: 限流对象,可选API、Domain
8872
+ # @type LimitObject: String
8873
+ # @param Status: 规则开关,0表示关闭,1表示开启
8874
+ # @type Status: Integer
8875
+ # @param Order: 排序方式,可选desc、asc
8876
+ # @type Order: String
8877
+ # @param By: 排序字段,可选Priority、Timestamp、ID
8878
+ # @type By: String
8879
+ # @param Offset: 分页的起始位置
8880
+ # @type Offset: Integer
8881
+ # @param Limit: 每页行数
8882
+ # @type Limit: Integer
8883
+ # @param Filters: 过滤器
8884
+ # @type Filters: Array
8885
+
8886
+ attr_accessor :Domain, :Id, :Name, :Method, :LimitObject, :Status, :Order, :By, :Offset, :Limit, :Filters
8887
+
8888
+ def initialize(domain=nil, id=nil, name=nil, method=nil, limitobject=nil, status=nil, order=nil, by=nil, offset=nil, limit=nil, filters=nil)
8889
+ @Domain = domain
8890
+ @Id = id
8891
+ @Name = name
8892
+ @Method = method
8893
+ @LimitObject = limitobject
8894
+ @Status = status
8895
+ @Order = order
8896
+ @By = by
8897
+ @Offset = offset
8898
+ @Limit = limit
8899
+ @Filters = filters
8900
+ end
8901
+
8902
+ def deserialize(params)
8903
+ @Domain = params['Domain']
8904
+ @Id = params['Id']
8905
+ @Name = params['Name']
8906
+ @Method = params['Method']
8907
+ @LimitObject = params['LimitObject']
8908
+ @Status = params['Status']
8909
+ @Order = params['Order']
8910
+ @By = params['By']
8911
+ @Offset = params['Offset']
8912
+ @Limit = params['Limit']
8913
+ unless params['Filters'].nil?
8914
+ @Filters = []
8915
+ params['Filters'].each do |i|
8916
+ filtersitemnew_tmp = FiltersItemNew.new
8917
+ filtersitemnew_tmp.deserialize(i)
8918
+ @Filters << filtersitemnew_tmp
8919
+ end
8920
+ end
8921
+ end
8922
+ end
8923
+
8924
+ # DescribeRateLimitsV2返回参数结构体
8925
+ class DescribeRateLimitsV2Response < TencentCloud::Common::AbstractModel
8926
+ # @param Total: 查询结果中规则数量
8927
+ # @type Total: Integer
8928
+ # @param BaseInfo: 操作结果
8929
+ # @type BaseInfo: :class:`Tencentcloud::Waf.v20180125.models.RateLimitCommonRsp`
8930
+ # @param RateLimits: 规则列表
8931
+ # 注意:此字段可能返回 null,表示取不到有效值。
8932
+ # @type RateLimits: Array
8933
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
8934
+ # @type RequestId: String
8935
+
8936
+ attr_accessor :Total, :BaseInfo, :RateLimits, :RequestId
8937
+
8938
+ def initialize(total=nil, baseinfo=nil, ratelimits=nil, requestid=nil)
8939
+ @Total = total
8940
+ @BaseInfo = baseinfo
8941
+ @RateLimits = ratelimits
8942
+ @RequestId = requestid
8943
+ end
8944
+
8945
+ def deserialize(params)
8946
+ @Total = params['Total']
8947
+ unless params['BaseInfo'].nil?
8948
+ @BaseInfo = RateLimitCommonRsp.new
8949
+ @BaseInfo.deserialize(params['BaseInfo'])
8950
+ end
8951
+ unless params['RateLimits'].nil?
8952
+ @RateLimits = []
8953
+ params['RateLimits'].each do |i|
8954
+ limitrulev2_tmp = LimitRuleV2.new
8955
+ limitrulev2_tmp.deserialize(i)
8956
+ @RateLimits << limitrulev2_tmp
8957
+ end
8958
+ end
8959
+ @RequestId = params['RequestId']
8960
+ end
8961
+ end
8962
+
8292
8963
  # DescribeRuleLimit请求参数结构体
8293
8964
  class DescribeRuleLimitRequest < TencentCloud::Common::AbstractModel
8294
8965
  # @param Domain: 域名
@@ -10147,6 +10818,76 @@ module TencentCloud
10147
10818
  end
10148
10819
  end
10149
10820
 
10821
+ # EnableLimitRuleItem
10822
+ class EnableLimitRuleItem < TencentCloud::Common::AbstractModel
10823
+ # @param LimitRuleId: 规则ID
10824
+ # @type LimitRuleId: Integer
10825
+ # @param Status: 规则开关,0开启,1关闭
10826
+ # @type Status: Integer
10827
+
10828
+ attr_accessor :LimitRuleId, :Status
10829
+
10830
+ def initialize(limitruleid=nil, status=nil)
10831
+ @LimitRuleId = limitruleid
10832
+ @Status = status
10833
+ end
10834
+
10835
+ def deserialize(params)
10836
+ @LimitRuleId = params['LimitRuleId']
10837
+ @Status = params['Status']
10838
+ end
10839
+ end
10840
+
10841
+ # EnableRateLimitsV2请求参数结构体
10842
+ class EnableRateLimitsV2Request < TencentCloud::Common::AbstractModel
10843
+ # @param Domain: 域名
10844
+ # @type Domain: String
10845
+ # @param EnableItems: 具体规则列表
10846
+ # @type EnableItems: Array
10847
+
10848
+ attr_accessor :Domain, :EnableItems
10849
+
10850
+ def initialize(domain=nil, enableitems=nil)
10851
+ @Domain = domain
10852
+ @EnableItems = enableitems
10853
+ end
10854
+
10855
+ def deserialize(params)
10856
+ @Domain = params['Domain']
10857
+ unless params['EnableItems'].nil?
10858
+ @EnableItems = []
10859
+ params['EnableItems'].each do |i|
10860
+ enablelimitruleitem_tmp = EnableLimitRuleItem.new
10861
+ enablelimitruleitem_tmp.deserialize(i)
10862
+ @EnableItems << enablelimitruleitem_tmp
10863
+ end
10864
+ end
10865
+ end
10866
+ end
10867
+
10868
+ # EnableRateLimitsV2返回参数结构体
10869
+ class EnableRateLimitsV2Response < TencentCloud::Common::AbstractModel
10870
+ # @param BaseInfo: 操作结果
10871
+ # @type BaseInfo: :class:`Tencentcloud::Waf.v20180125.models.RateLimitCommonRsp`
10872
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
10873
+ # @type RequestId: String
10874
+
10875
+ attr_accessor :BaseInfo, :RequestId
10876
+
10877
+ def initialize(baseinfo=nil, requestid=nil)
10878
+ @BaseInfo = baseinfo
10879
+ @RequestId = requestid
10880
+ end
10881
+
10882
+ def deserialize(params)
10883
+ unless params['BaseInfo'].nil?
10884
+ @BaseInfo = RateLimitCommonRsp.new
10885
+ @BaseInfo.deserialize(params['BaseInfo'])
10886
+ end
10887
+ @RequestId = params['RequestId']
10888
+ end
10889
+ end
10890
+
10150
10891
  # DescribeAccessExports接口
10151
10892
  class ExportAccessInfo < TencentCloud::Common::AbstractModel
10152
10893
  # @param ExportId: 日志导出任务ID
@@ -12110,51 +12851,335 @@ module TencentCloud
12110
12851
  end
12111
12852
 
12112
12853
  def deserialize(params)
12113
- @ResourceIds = params['ResourceIds']
12854
+ @ResourceIds = params['ResourceIds']
12855
+ @Status = params['Status']
12856
+ @Region = params['Region']
12857
+ @BeginTime = params['BeginTime']
12858
+ @EndTime = params['EndTime']
12859
+ @InquireKey = params['InquireKey']
12860
+ @RenewFlag = params['RenewFlag']
12861
+ @UseToken = params['UseToken']
12862
+ @InstanceId = params['InstanceId']
12863
+ end
12864
+ end
12865
+
12866
+ # 有效大模型安全包信息
12867
+ class LLMPkg < TencentCloud::Common::AbstractModel
12868
+ # @param ResourceIds: 资源id
12869
+ # @type ResourceIds: String
12870
+ # @param Status: 状态
12871
+ # @type Status: Integer
12872
+ # @param Region: 地域
12873
+ # @type Region: Integer
12874
+ # @param BeginTime: 开始时间
12875
+ # @type BeginTime: String
12876
+ # @param EndTime: 结束时间
12877
+ # @type EndTime: String
12878
+ # @param InquireKey: 计费项
12879
+ # @type InquireKey: String
12880
+
12881
+ attr_accessor :ResourceIds, :Status, :Region, :BeginTime, :EndTime, :InquireKey
12882
+
12883
+ def initialize(resourceids=nil, status=nil, region=nil, begintime=nil, endtime=nil, inquirekey=nil)
12884
+ @ResourceIds = resourceids
12885
+ @Status = status
12886
+ @Region = region
12887
+ @BeginTime = begintime
12888
+ @EndTime = endtime
12889
+ @InquireKey = inquirekey
12890
+ end
12891
+
12892
+ def deserialize(params)
12893
+ @ResourceIds = params['ResourceIds']
12894
+ @Status = params['Status']
12895
+ @Region = params['Region']
12896
+ @BeginTime = params['BeginTime']
12897
+ @EndTime = params['EndTime']
12898
+ @InquireKey = params['InquireKey']
12899
+ end
12900
+ end
12901
+
12902
+ # 限流Header数据结构
12903
+ class LimitHeader < TencentCloud::Common::AbstractModel
12904
+ # @param Key: key
12905
+ # 注意:此字段可能返回 null,表示取不到有效值。
12906
+ # @type Key: String
12907
+ # @param Value: value
12908
+ # 注意:此字段可能返回 null,表示取不到有效值。
12909
+ # @type Value: String
12910
+ # @param Type: 匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
12911
+ # 注意:此字段可能返回 null,表示取不到有效值。
12912
+ # @type Type: String
12913
+
12914
+ attr_accessor :Key, :Value, :Type
12915
+
12916
+ def initialize(key=nil, value=nil, type=nil)
12917
+ @Key = key
12918
+ @Value = value
12919
+ @Type = type
12920
+ end
12921
+
12922
+ def deserialize(params)
12923
+ @Key = params['Key']
12924
+ @Value = params['Value']
12925
+ @Type = params['Type']
12926
+ end
12927
+ end
12928
+
12929
+ # 限流Header参数名
12930
+ class LimitHeaderName < TencentCloud::Common::AbstractModel
12931
+ # @param ParamsName: 参数名
12932
+ # 注意:此字段可能返回 null,表示取不到有效值。
12933
+ # @type ParamsName: String
12934
+ # @param Type: 操作符号,支持REGEX(正则),IN(属于),NOT_IN(不属于), EACH(每个参数值)
12935
+ # 注意:此字段可能返回 null,表示取不到有效值。
12936
+ # @type Type: String
12937
+
12938
+ attr_accessor :ParamsName, :Type
12939
+
12940
+ def initialize(paramsname=nil, type=nil)
12941
+ @ParamsName = paramsname
12942
+ @Type = type
12943
+ end
12944
+
12945
+ def deserialize(params)
12946
+ @ParamsName = params['ParamsName']
12947
+ @Type = params['Type']
12948
+ end
12949
+ end
12950
+
12951
+ # 限流方法数据结构
12952
+ class LimitMethod < TencentCloud::Common::AbstractModel
12953
+ # @param Method: 需要限流的请求方式
12954
+ # 注意:此字段可能返回 null,表示取不到有效值。
12955
+ # @type Method: String
12956
+ # @param Type: 匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
12957
+ # 注意:此字段可能返回 null,表示取不到有效值。
12958
+ # @type Type: String
12959
+
12960
+ attr_accessor :Method, :Type
12961
+
12962
+ def initialize(method=nil, type=nil)
12963
+ @Method = method
12964
+ @Type = type
12965
+ end
12966
+
12967
+ def deserialize(params)
12968
+ @Method = params['Method']
12969
+ @Type = params['Type']
12970
+ end
12971
+ end
12972
+
12973
+ # 限流Path
12974
+ class LimitPath < TencentCloud::Common::AbstractModel
12975
+ # @param Path: 限流路径
12976
+ # 注意:此字段可能返回 null,表示取不到有效值。
12977
+ # @type Path: String
12978
+ # @param Type: 匹配方式
12979
+ # 注意:此字段可能返回 null,表示取不到有效值。
12980
+ # @type Type: String
12981
+
12982
+ attr_accessor :Path, :Type
12983
+
12984
+ def initialize(path=nil, type=nil)
12985
+ @Path = path
12986
+ @Type = type
12987
+ end
12988
+
12989
+ def deserialize(params)
12990
+ @Path = params['Path']
12991
+ @Type = params['Type']
12992
+ end
12993
+ end
12994
+
12995
+ # 自研版限流规则数据结构
12996
+ class LimitRuleV2 < TencentCloud::Common::AbstractModel
12997
+ # @param LimitRuleID: 规则ID
12998
+ # @type LimitRuleID: Integer
12999
+ # @param Name: 规则名
13000
+ # @type Name: String
13001
+ # @param Priority: 优先级
13002
+ # @type Priority: Integer
13003
+ # @param Status: 规则开关,0表示关闭,1表示开启
13004
+ # @type Status: Integer
13005
+ # @param TsVersion: 时间戳
13006
+ # @type TsVersion: Integer
13007
+ # @param LimitObject: 限流对象,API或Domain
13008
+ # @type LimitObject: String
13009
+ # @param LimitMethod: 限流方法名
13010
+ # 注意:此字段可能返回 null,表示取不到有效值。
13011
+ # @type LimitMethod: :class:`Tencentcloud::Waf.v20180125.models.LimitMethod`
13012
+ # @param LimitPaths: 路径
13013
+ # 注意:此字段可能返回 null,表示取不到有效值。
13014
+ # @type LimitPaths: :class:`Tencentcloud::Waf.v20180125.models.LimitPath`
13015
+ # @param LimitHeaders: Header参数
13016
+ # 注意:此字段可能返回 null,表示取不到有效值。
13017
+ # @type LimitHeaders: Array
13018
+ # @param LimitWindow: 限流窗口
13019
+ # @type LimitWindow: :class:`Tencentcloud::Waf.v20180125.models.LimitWindow`
13020
+ # @param LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
13021
+ # @type LimitStrategy: Integer
13022
+ # @param LimitHeaderName: Header参数名
13023
+ # 注意:此字段可能返回 null,表示取不到有效值。
13024
+ # @type LimitHeaderName: :class:`Tencentcloud::Waf.v20180125.models.LimitHeaderName`
13025
+ # @param GetParamsName: Get参数名
13026
+ # 注意:此字段可能返回 null,表示取不到有效值。
13027
+ # @type GetParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
13028
+ # @param GetParamsValue: Get参数值
13029
+ # 注意:此字段可能返回 null,表示取不到有效值。
13030
+ # @type GetParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
13031
+ # @param PostParamsName: Post参数名
13032
+ # 注意:此字段可能返回 null,表示取不到有效值。
13033
+ # @type PostParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
13034
+ # @param PostParamsValue: Post参数值
13035
+ # 注意:此字段可能返回 null,表示取不到有效值。
13036
+ # @type PostParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
13037
+ # @param IpLocation: Ip属地
13038
+ # 注意:此字段可能返回 null,表示取不到有效值。
13039
+ # @type IpLocation: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
13040
+ # @param RedirectInfo: 重定向信息,当LimitStrategy为2时,此字段不为空
13041
+ # 注意:此字段可能返回 null,表示取不到有效值。
13042
+ # @type RedirectInfo: :class:`Tencentcloud::Waf.v20180125.models.RedirectInfo`
13043
+ # @param BlockPage: 拦截页面,0表示429,否则为BlockPageID
13044
+ # @type BlockPage: Integer
13045
+ # @param ObjectSrc: 限流对象来源,0:手动填写,1:API资产
13046
+ # @type ObjectSrc: Integer
13047
+ # @param QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
13048
+ # @type QuotaShare: Boolean
13049
+ # @param PathsOption: 路径选项,可配置每个路径的请求方法
13050
+ # 注意:此字段可能返回 null,表示取不到有效值。
13051
+ # @type PathsOption: Array
13052
+ # @param Order: 574新增需求,限流执行顺序,0:默认情况,限流优先,1:安全防护优先
13053
+ # @type Order: Integer
13054
+
13055
+ attr_accessor :LimitRuleID, :Name, :Priority, :Status, :TsVersion, :LimitObject, :LimitMethod, :LimitPaths, :LimitHeaders, :LimitWindow, :LimitStrategy, :LimitHeaderName, :GetParamsName, :GetParamsValue, :PostParamsName, :PostParamsValue, :IpLocation, :RedirectInfo, :BlockPage, :ObjectSrc, :QuotaShare, :PathsOption, :Order
13056
+
13057
+ def initialize(limitruleid=nil, name=nil, priority=nil, status=nil, tsversion=nil, limitobject=nil, limitmethod=nil, limitpaths=nil, limitheaders=nil, limitwindow=nil, limitstrategy=nil, limitheadername=nil, getparamsname=nil, getparamsvalue=nil, postparamsname=nil, postparamsvalue=nil, iplocation=nil, redirectinfo=nil, blockpage=nil, objectsrc=nil, quotashare=nil, pathsoption=nil, order=nil)
13058
+ @LimitRuleID = limitruleid
13059
+ @Name = name
13060
+ @Priority = priority
13061
+ @Status = status
13062
+ @TsVersion = tsversion
13063
+ @LimitObject = limitobject
13064
+ @LimitMethod = limitmethod
13065
+ @LimitPaths = limitpaths
13066
+ @LimitHeaders = limitheaders
13067
+ @LimitWindow = limitwindow
13068
+ @LimitStrategy = limitstrategy
13069
+ @LimitHeaderName = limitheadername
13070
+ @GetParamsName = getparamsname
13071
+ @GetParamsValue = getparamsvalue
13072
+ @PostParamsName = postparamsname
13073
+ @PostParamsValue = postparamsvalue
13074
+ @IpLocation = iplocation
13075
+ @RedirectInfo = redirectinfo
13076
+ @BlockPage = blockpage
13077
+ @ObjectSrc = objectsrc
13078
+ @QuotaShare = quotashare
13079
+ @PathsOption = pathsoption
13080
+ @Order = order
13081
+ end
13082
+
13083
+ def deserialize(params)
13084
+ @LimitRuleID = params['LimitRuleID']
13085
+ @Name = params['Name']
13086
+ @Priority = params['Priority']
12114
13087
  @Status = params['Status']
12115
- @Region = params['Region']
12116
- @BeginTime = params['BeginTime']
12117
- @EndTime = params['EndTime']
12118
- @InquireKey = params['InquireKey']
12119
- @RenewFlag = params['RenewFlag']
12120
- @UseToken = params['UseToken']
12121
- @InstanceId = params['InstanceId']
13088
+ @TsVersion = params['TsVersion']
13089
+ @LimitObject = params['LimitObject']
13090
+ unless params['LimitMethod'].nil?
13091
+ @LimitMethod = LimitMethod.new
13092
+ @LimitMethod.deserialize(params['LimitMethod'])
13093
+ end
13094
+ unless params['LimitPaths'].nil?
13095
+ @LimitPaths = LimitPath.new
13096
+ @LimitPaths.deserialize(params['LimitPaths'])
13097
+ end
13098
+ unless params['LimitHeaders'].nil?
13099
+ @LimitHeaders = []
13100
+ params['LimitHeaders'].each do |i|
13101
+ limitheader_tmp = LimitHeader.new
13102
+ limitheader_tmp.deserialize(i)
13103
+ @LimitHeaders << limitheader_tmp
13104
+ end
13105
+ end
13106
+ unless params['LimitWindow'].nil?
13107
+ @LimitWindow = LimitWindow.new
13108
+ @LimitWindow.deserialize(params['LimitWindow'])
13109
+ end
13110
+ @LimitStrategy = params['LimitStrategy']
13111
+ unless params['LimitHeaderName'].nil?
13112
+ @LimitHeaderName = LimitHeaderName.new
13113
+ @LimitHeaderName.deserialize(params['LimitHeaderName'])
13114
+ end
13115
+ unless params['GetParamsName'].nil?
13116
+ @GetParamsName = MatchOption.new
13117
+ @GetParamsName.deserialize(params['GetParamsName'])
13118
+ end
13119
+ unless params['GetParamsValue'].nil?
13120
+ @GetParamsValue = MatchOption.new
13121
+ @GetParamsValue.deserialize(params['GetParamsValue'])
13122
+ end
13123
+ unless params['PostParamsName'].nil?
13124
+ @PostParamsName = MatchOption.new
13125
+ @PostParamsName.deserialize(params['PostParamsName'])
13126
+ end
13127
+ unless params['PostParamsValue'].nil?
13128
+ @PostParamsValue = MatchOption.new
13129
+ @PostParamsValue.deserialize(params['PostParamsValue'])
13130
+ end
13131
+ unless params['IpLocation'].nil?
13132
+ @IpLocation = MatchOption.new
13133
+ @IpLocation.deserialize(params['IpLocation'])
13134
+ end
13135
+ unless params['RedirectInfo'].nil?
13136
+ @RedirectInfo = RedirectInfo.new
13137
+ @RedirectInfo.deserialize(params['RedirectInfo'])
13138
+ end
13139
+ @BlockPage = params['BlockPage']
13140
+ @ObjectSrc = params['ObjectSrc']
13141
+ @QuotaShare = params['QuotaShare']
13142
+ unless params['PathsOption'].nil?
13143
+ @PathsOption = []
13144
+ params['PathsOption'].each do |i|
13145
+ pathitem_tmp = PathItem.new
13146
+ pathitem_tmp.deserialize(i)
13147
+ @PathsOption << pathitem_tmp
13148
+ end
13149
+ end
13150
+ @Order = params['Order']
12122
13151
  end
12123
13152
  end
12124
13153
 
12125
- # 有效大模型安全包信息
12126
- class LLMPkg < TencentCloud::Common::AbstractModel
12127
- # @param ResourceIds: 资源id
12128
- # @type ResourceIds: String
12129
- # @param Status: 状态
12130
- # @type Status: Integer
12131
- # @param Region: 地域
12132
- # @type Region: Integer
12133
- # @param BeginTime: 开始时间
12134
- # @type BeginTime: String
12135
- # @param EndTime: 结束时间
12136
- # @type EndTime: String
12137
- # @param InquireKey: 计费项
12138
- # @type InquireKey: String
13154
+ # 限流窗口大小
13155
+ class LimitWindow < TencentCloud::Common::AbstractModel
13156
+ # @param Second: 每秒允许通过的最大请求数
13157
+ # 注意:此字段可能返回 null,表示取不到有效值。
13158
+ # @type Second: Integer
13159
+ # @param Minute: 每分钟允许通过的最大请求数
13160
+ # 注意:此字段可能返回 null,表示取不到有效值。
13161
+ # @type Minute: Integer
13162
+ # @param Hour: 每小时允许通过的最大请求数
13163
+ # 注意:此字段可能返回 null,表示取不到有效值。
13164
+ # @type Hour: Integer
13165
+ # @param QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
13166
+ # 注意:此字段可能返回 null,表示取不到有效值。
13167
+ # @type QuotaShare: Boolean
12139
13168
 
12140
- attr_accessor :ResourceIds, :Status, :Region, :BeginTime, :EndTime, :InquireKey
13169
+ attr_accessor :Second, :Minute, :Hour, :QuotaShare
12141
13170
 
12142
- def initialize(resourceids=nil, status=nil, region=nil, begintime=nil, endtime=nil, inquirekey=nil)
12143
- @ResourceIds = resourceids
12144
- @Status = status
12145
- @Region = region
12146
- @BeginTime = begintime
12147
- @EndTime = endtime
12148
- @InquireKey = inquirekey
13171
+ def initialize(second=nil, minute=nil, hour=nil, quotashare=nil)
13172
+ @Second = second
13173
+ @Minute = minute
13174
+ @Hour = hour
13175
+ @QuotaShare = quotashare
12149
13176
  end
12150
13177
 
12151
13178
  def deserialize(params)
12152
- @ResourceIds = params['ResourceIds']
12153
- @Status = params['Status']
12154
- @Region = params['Region']
12155
- @BeginTime = params['BeginTime']
12156
- @EndTime = params['EndTime']
12157
- @InquireKey = params['InquireKey']
13179
+ @Second = params['Second']
13180
+ @Minute = params['Minute']
13181
+ @Hour = params['Hour']
13182
+ @QuotaShare = params['QuotaShare']
12158
13183
  end
12159
13184
  end
12160
13185
 
@@ -12530,6 +13555,33 @@ module TencentCloud
12530
13555
  end
12531
13556
  end
12532
13557
 
13558
+ # 限流规则中匹配条件
13559
+ class MatchOption < TencentCloud::Common::AbstractModel
13560
+ # @param Params: 匹配参数
13561
+ # 注意:此字段可能返回 null,表示取不到有效值。
13562
+ # @type Params: String
13563
+ # @param Func: 逻辑符号
13564
+ # 注意:此字段可能返回 null,表示取不到有效值。
13565
+ # @type Func: String
13566
+ # @param Content: 匹配内容
13567
+ # 注意:此字段可能返回 null,表示取不到有效值。
13568
+ # @type Content: String
13569
+
13570
+ attr_accessor :Params, :Func, :Content
13571
+
13572
+ def initialize(params=nil, func=nil, content=nil)
13573
+ @Params = params
13574
+ @Func = func
13575
+ @Content = content
13576
+ end
13577
+
13578
+ def deserialize(params)
13579
+ @Params = params['Params']
13580
+ @Func = params['Func']
13581
+ @Content = params['Content']
13582
+ end
13583
+ end
13584
+
12533
13585
  # 小程序安全接入ID扩展资源信息
12534
13586
  class MiniExtendPkg < TencentCloud::Common::AbstractModel
12535
13587
  # @param ResourceIds: 资源id
@@ -12927,6 +13979,101 @@ module TencentCloud
12927
13979
  end
12928
13980
  end
12929
13981
 
13982
+ # ModifyApiSecSensitiveRule请求参数结构体
13983
+ class ModifyApiSecSensitiveRuleRequest < TencentCloud::Common::AbstractModel
13984
+ # @param Domain: 域名
13985
+ # @type Domain: String
13986
+ # @param Status: 1表示开,0表示关,3表示删除
13987
+ # @type Status: Integer
13988
+ # @param RuleName: 规则名称
13989
+ # @type RuleName: String
13990
+ # @param CustomRule: 客户自定义配置
13991
+ # @type CustomRule: :class:`Tencentcloud::Waf.v20180125.models.ApiSecCustomSensitiveRule`
13992
+ # @param RuleNameList: rulename列表,批量操作的时候填改值
13993
+ # @type RuleNameList: Array
13994
+ # @param CustomApiExtractRule: api提取规则内容
13995
+ # @type CustomApiExtractRule: :class:`Tencentcloud::Waf.v20180125.models.ApiSecExtractRule`
13996
+ # @param ApiExtractRuleName: 批量操作的时候的api提取规则
13997
+ # @type ApiExtractRuleName: Array
13998
+ # @param ApiSecPrivilegeRule: 自定义api鉴权规则
13999
+ # @type ApiSecPrivilegeRule: :class:`Tencentcloud::Waf.v20180125.models.ApiSecPrivilegeRule`
14000
+ # @param ApiSecPrivilegeRuleName: 匹配操作时候的api鉴权规则
14001
+ # @type ApiSecPrivilegeRuleName: Array
14002
+ # @param ApiSecSceneRuleNameList: 批量操作的时候的自定义场景列表
14003
+ # @type ApiSecSceneRuleNameList: Array
14004
+ # @param ApiSecSceneRule: 单条自定义api场景规则
14005
+ # @type ApiSecSceneRule: :class:`Tencentcloud::Waf.v20180125.models.ApiSecSceneRule`
14006
+ # @param ApiSecCustomEventRuleNameList: 批量操作的时候的自定义事件规则列表
14007
+ # @type ApiSecCustomEventRuleNameList: Array
14008
+ # @param ApiSecCustomEventRuleRule: 自定义事件规则
14009
+ # @type ApiSecCustomEventRuleRule: :class:`Tencentcloud::Waf.v20180125.models.ApiSecCustomEventRule`
14010
+
14011
+ attr_accessor :Domain, :Status, :RuleName, :CustomRule, :RuleNameList, :CustomApiExtractRule, :ApiExtractRuleName, :ApiSecPrivilegeRule, :ApiSecPrivilegeRuleName, :ApiSecSceneRuleNameList, :ApiSecSceneRule, :ApiSecCustomEventRuleNameList, :ApiSecCustomEventRuleRule
14012
+
14013
+ def initialize(domain=nil, status=nil, rulename=nil, customrule=nil, rulenamelist=nil, customapiextractrule=nil, apiextractrulename=nil, apisecprivilegerule=nil, apisecprivilegerulename=nil, apisecscenerulenamelist=nil, apisecscenerule=nil, apiseccustomeventrulenamelist=nil, apiseccustomeventrulerule=nil)
14014
+ @Domain = domain
14015
+ @Status = status
14016
+ @RuleName = rulename
14017
+ @CustomRule = customrule
14018
+ @RuleNameList = rulenamelist
14019
+ @CustomApiExtractRule = customapiextractrule
14020
+ @ApiExtractRuleName = apiextractrulename
14021
+ @ApiSecPrivilegeRule = apisecprivilegerule
14022
+ @ApiSecPrivilegeRuleName = apisecprivilegerulename
14023
+ @ApiSecSceneRuleNameList = apisecscenerulenamelist
14024
+ @ApiSecSceneRule = apisecscenerule
14025
+ @ApiSecCustomEventRuleNameList = apiseccustomeventrulenamelist
14026
+ @ApiSecCustomEventRuleRule = apiseccustomeventrulerule
14027
+ end
14028
+
14029
+ def deserialize(params)
14030
+ @Domain = params['Domain']
14031
+ @Status = params['Status']
14032
+ @RuleName = params['RuleName']
14033
+ unless params['CustomRule'].nil?
14034
+ @CustomRule = ApiSecCustomSensitiveRule.new
14035
+ @CustomRule.deserialize(params['CustomRule'])
14036
+ end
14037
+ @RuleNameList = params['RuleNameList']
14038
+ unless params['CustomApiExtractRule'].nil?
14039
+ @CustomApiExtractRule = ApiSecExtractRule.new
14040
+ @CustomApiExtractRule.deserialize(params['CustomApiExtractRule'])
14041
+ end
14042
+ @ApiExtractRuleName = params['ApiExtractRuleName']
14043
+ unless params['ApiSecPrivilegeRule'].nil?
14044
+ @ApiSecPrivilegeRule = ApiSecPrivilegeRule.new
14045
+ @ApiSecPrivilegeRule.deserialize(params['ApiSecPrivilegeRule'])
14046
+ end
14047
+ @ApiSecPrivilegeRuleName = params['ApiSecPrivilegeRuleName']
14048
+ @ApiSecSceneRuleNameList = params['ApiSecSceneRuleNameList']
14049
+ unless params['ApiSecSceneRule'].nil?
14050
+ @ApiSecSceneRule = ApiSecSceneRule.new
14051
+ @ApiSecSceneRule.deserialize(params['ApiSecSceneRule'])
14052
+ end
14053
+ @ApiSecCustomEventRuleNameList = params['ApiSecCustomEventRuleNameList']
14054
+ unless params['ApiSecCustomEventRuleRule'].nil?
14055
+ @ApiSecCustomEventRuleRule = ApiSecCustomEventRule.new
14056
+ @ApiSecCustomEventRuleRule.deserialize(params['ApiSecCustomEventRuleRule'])
14057
+ end
14058
+ end
14059
+ end
14060
+
14061
+ # ModifyApiSecSensitiveRule返回参数结构体
14062
+ class ModifyApiSecSensitiveRuleResponse < TencentCloud::Common::AbstractModel
14063
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
14064
+ # @type RequestId: String
14065
+
14066
+ attr_accessor :RequestId
14067
+
14068
+ def initialize(requestid=nil)
14069
+ @RequestId = requestid
14070
+ end
14071
+
14072
+ def deserialize(params)
14073
+ @RequestId = params['RequestId']
14074
+ end
14075
+ end
14076
+
12930
14077
  # ModifyAreaBanAreas请求参数结构体
12931
14078
  class ModifyAreaBanAreasRequest < TencentCloud::Common::AbstractModel
12932
14079
  # @param Domain: 需要修改的域名
@@ -13217,6 +14364,73 @@ module TencentCloud
13217
14364
  end
13218
14365
  end
13219
14366
 
14367
+ # ModifyBotIdRule请求参数结构体
14368
+ class ModifyBotIdRuleRequest < TencentCloud::Common::AbstractModel
14369
+ # @param Domain: 域名
14370
+ # @type Domain: String
14371
+ # @param SceneId: 场景ID
14372
+ # @type SceneId: String
14373
+ # @param Data: 配置信息,支持批量
14374
+ # @type Data: Array
14375
+ # @param GlobalSwitch: 0-全局设置不生效 1-全局开关配置字段生效 2-全局动作配置字段生效 3-全局开关和动作字段都生效 4-只修改全局重定向路径 5-只修改全局防护等级
14376
+ # @type GlobalSwitch: Integer
14377
+ # @param Status: 全局开关
14378
+ # @type Status: Boolean
14379
+ # @param RuleAction: 全局动作
14380
+ # @type RuleAction: String
14381
+ # @param GlobalRedirect: 全局重定向路径
14382
+ # @type GlobalRedirect: String
14383
+ # @param ProtectLevel: 防护等级:normal-正常;strict-严格
14384
+ # @type ProtectLevel: String
14385
+
14386
+ attr_accessor :Domain, :SceneId, :Data, :GlobalSwitch, :Status, :RuleAction, :GlobalRedirect, :ProtectLevel
14387
+
14388
+ def initialize(domain=nil, sceneid=nil, data=nil, globalswitch=nil, status=nil, ruleaction=nil, globalredirect=nil, protectlevel=nil)
14389
+ @Domain = domain
14390
+ @SceneId = sceneid
14391
+ @Data = data
14392
+ @GlobalSwitch = globalswitch
14393
+ @Status = status
14394
+ @RuleAction = ruleaction
14395
+ @GlobalRedirect = globalredirect
14396
+ @ProtectLevel = protectlevel
14397
+ end
14398
+
14399
+ def deserialize(params)
14400
+ @Domain = params['Domain']
14401
+ @SceneId = params['SceneId']
14402
+ unless params['Data'].nil?
14403
+ @Data = []
14404
+ params['Data'].each do |i|
14405
+ botidconfig_tmp = BotIdConfig.new
14406
+ botidconfig_tmp.deserialize(i)
14407
+ @Data << botidconfig_tmp
14408
+ end
14409
+ end
14410
+ @GlobalSwitch = params['GlobalSwitch']
14411
+ @Status = params['Status']
14412
+ @RuleAction = params['RuleAction']
14413
+ @GlobalRedirect = params['GlobalRedirect']
14414
+ @ProtectLevel = params['ProtectLevel']
14415
+ end
14416
+ end
14417
+
14418
+ # ModifyBotIdRule返回参数结构体
14419
+ class ModifyBotIdRuleResponse < TencentCloud::Common::AbstractModel
14420
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
14421
+ # @type RequestId: String
14422
+
14423
+ attr_accessor :RequestId
14424
+
14425
+ def initialize(requestid=nil)
14426
+ @RequestId = requestid
14427
+ end
14428
+
14429
+ def deserialize(params)
14430
+ @RequestId = params['RequestId']
14431
+ end
14432
+ end
14433
+
13220
14434
  # ModifyBotSceneStatus请求参数结构体
13221
14435
  class ModifyBotSceneStatusRequest < TencentCloud::Common::AbstractModel
13222
14436
  # @param Domain: 域名
@@ -15712,6 +16926,26 @@ module TencentCloud
15712
16926
  end
15713
16927
  end
15714
16928
 
16929
+ # 指定限流path和对应的method
16930
+ class PathItem < TencentCloud::Common::AbstractModel
16931
+ # @param Path: 请求路径
16932
+ # @type Path: String
16933
+ # @param Method: 请求方法
16934
+ # @type Method: String
16935
+
16936
+ attr_accessor :Path, :Method
16937
+
16938
+ def initialize(path=nil, method=nil)
16939
+ @Path = path
16940
+ @Method = method
16941
+ end
16942
+
16943
+ def deserialize(params)
16944
+ @Path = params['Path']
16945
+ @Method = params['Method']
16946
+ end
16947
+ end
16948
+
15715
16949
  # PeakPoints数组项
15716
16950
  class PeakPointsItem < TencentCloud::Common::AbstractModel
15717
16951
  # @param Time: 秒级别时间戳
@@ -16211,6 +17445,53 @@ module TencentCloud
16211
17445
  end
16212
17446
  end
16213
17447
 
17448
+ # 限流相关通用返回
17449
+ class RateLimitCommonRsp < TencentCloud::Common::AbstractModel
17450
+ # @param Code: 响应码
17451
+ # @type Code: Integer
17452
+ # @param Info: 提示信息
17453
+ # @type Info: String
17454
+
17455
+ attr_accessor :Code, :Info
17456
+
17457
+ def initialize(code=nil, info=nil)
17458
+ @Code = code
17459
+ @Info = info
17460
+ end
17461
+
17462
+ def deserialize(params)
17463
+ @Code = params['Code']
17464
+ @Info = params['Info']
17465
+ end
17466
+ end
17467
+
17468
+ # 重定向信息
17469
+ class RedirectInfo < TencentCloud::Common::AbstractModel
17470
+ # @param Protocol: 协议
17471
+ # 注意:此字段可能返回 null,表示取不到有效值。
17472
+ # @type Protocol: String
17473
+ # @param Domain: 域名
17474
+ # 注意:此字段可能返回 null,表示取不到有效值。
17475
+ # @type Domain: String
17476
+ # @param Url: url路径
17477
+ # 注意:此字段可能返回 null,表示取不到有效值。
17478
+ # @type Url: String
17479
+
17480
+ attr_accessor :Protocol, :Domain, :Url
17481
+
17482
+ def initialize(protocol=nil, domain=nil, url=nil)
17483
+ @Protocol = protocol
17484
+ @Domain = domain
17485
+ @Url = url
17486
+ end
17487
+
17488
+ def deserialize(params)
17489
+ @Protocol = params['Protocol']
17490
+ @Domain = params['Domain']
17491
+ @Url = params['Url']
17492
+ end
17493
+ end
17494
+
16214
17495
  # RefreshAccessCheckResult请求参数结构体
16215
17496
  class RefreshAccessCheckResultRequest < TencentCloud::Common::AbstractModel
16216
17497
  # @param Domain: 域名
@@ -17671,6 +18952,177 @@ module TencentCloud
17671
18952
  end
17672
18953
  end
17673
18954
 
18955
+ # UpdateRateLimitV2请求参数结构体
18956
+ class UpdateRateLimitV2Request < TencentCloud::Common::AbstractModel
18957
+ # @param Domain: 域名
18958
+ # @type Domain: String
18959
+ # @param LimitRuleId: 规则ID
18960
+ # @type LimitRuleId: Integer
18961
+ # @param Name: 规则名
18962
+ # @type Name: String
18963
+ # @param Priority: 优先级
18964
+ # @type Priority: Integer
18965
+ # @param Status: 开关,0关闭,1开启
18966
+ # @type Status: Integer
18967
+ # @param LimitObject: 支持API,Domain。如果基于API,则LimitPaths不能为空,否则LimitPaths为空
18968
+ # @type LimitObject: String
18969
+ # @param LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
18970
+ # @type LimitStrategy: Integer
18971
+ # @param LimitHeaderName: 基于Header参数名限流
18972
+ # @type LimitHeaderName: :class:`Tencentcloud::Waf.v20180125.models.LimitHeaderName`
18973
+ # @param LimitMethod: 限流方法
18974
+ # @type LimitMethod: :class:`Tencentcloud::Waf.v20180125.models.LimitMethod`
18975
+ # @param LimitPaths: 限流路径
18976
+ # @type LimitPaths: :class:`Tencentcloud::Waf.v20180125.models.LimitPath`
18977
+ # @param LimitHeaders: 限流Headers
18978
+ # @type LimitHeaders: Array
18979
+ # @param LimitWindow: 限流窗口
18980
+ # @type LimitWindow: :class:`Tencentcloud::Waf.v20180125.models.LimitWindow`
18981
+ # @param GetParamsName: 基于Get参数名限流
18982
+ # @type GetParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
18983
+ # @param GetParamsValue: 基于Get参数值限流
18984
+ # @type GetParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
18985
+ # @param PostParamsName: 基于Post参数名限流
18986
+ # @type PostParamsName: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
18987
+ # @param PostParamsValue: 基于Post参数值限流
18988
+ # @type PostParamsValue: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
18989
+ # @param IpLocation: 基于IP归属地限流
18990
+ # @type IpLocation: :class:`Tencentcloud::Waf.v20180125.models.MatchOption`
18991
+ # @param RedirectInfo: 重定向信息,当LimitStrategy为重定向时,此字段必填
18992
+ # @type RedirectInfo: :class:`Tencentcloud::Waf.v20180125.models.RedirectInfo`
18993
+ # @param BlockPage: 拦截页面,0表示429,否则填写blockPageID
18994
+ # @type BlockPage: Integer
18995
+ # @param ObjectSrc: 限流对象来源,0:手动填写,1:API资产
18996
+ # @type ObjectSrc: Integer
18997
+ # @param QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
18998
+ # @type QuotaShare: Boolean
18999
+ # @param PathsOption: 路径选项,可配置每个路径的请求方法
19000
+ # @type PathsOption: Array
19001
+ # @param Order: 限流执行顺序,0:默认情况,限流优先,1:安全防护优先
19002
+ # @type Order: Integer
19003
+
19004
+ attr_accessor :Domain, :LimitRuleId, :Name, :Priority, :Status, :LimitObject, :LimitStrategy, :LimitHeaderName, :LimitMethod, :LimitPaths, :LimitHeaders, :LimitWindow, :GetParamsName, :GetParamsValue, :PostParamsName, :PostParamsValue, :IpLocation, :RedirectInfo, :BlockPage, :ObjectSrc, :QuotaShare, :PathsOption, :Order
19005
+
19006
+ def initialize(domain=nil, limitruleid=nil, name=nil, priority=nil, status=nil, limitobject=nil, limitstrategy=nil, limitheadername=nil, limitmethod=nil, limitpaths=nil, limitheaders=nil, limitwindow=nil, getparamsname=nil, getparamsvalue=nil, postparamsname=nil, postparamsvalue=nil, iplocation=nil, redirectinfo=nil, blockpage=nil, objectsrc=nil, quotashare=nil, pathsoption=nil, order=nil)
19007
+ @Domain = domain
19008
+ @LimitRuleId = limitruleid
19009
+ @Name = name
19010
+ @Priority = priority
19011
+ @Status = status
19012
+ @LimitObject = limitobject
19013
+ @LimitStrategy = limitstrategy
19014
+ @LimitHeaderName = limitheadername
19015
+ @LimitMethod = limitmethod
19016
+ @LimitPaths = limitpaths
19017
+ @LimitHeaders = limitheaders
19018
+ @LimitWindow = limitwindow
19019
+ @GetParamsName = getparamsname
19020
+ @GetParamsValue = getparamsvalue
19021
+ @PostParamsName = postparamsname
19022
+ @PostParamsValue = postparamsvalue
19023
+ @IpLocation = iplocation
19024
+ @RedirectInfo = redirectinfo
19025
+ @BlockPage = blockpage
19026
+ @ObjectSrc = objectsrc
19027
+ @QuotaShare = quotashare
19028
+ @PathsOption = pathsoption
19029
+ @Order = order
19030
+ end
19031
+
19032
+ def deserialize(params)
19033
+ @Domain = params['Domain']
19034
+ @LimitRuleId = params['LimitRuleId']
19035
+ @Name = params['Name']
19036
+ @Priority = params['Priority']
19037
+ @Status = params['Status']
19038
+ @LimitObject = params['LimitObject']
19039
+ @LimitStrategy = params['LimitStrategy']
19040
+ unless params['LimitHeaderName'].nil?
19041
+ @LimitHeaderName = LimitHeaderName.new
19042
+ @LimitHeaderName.deserialize(params['LimitHeaderName'])
19043
+ end
19044
+ unless params['LimitMethod'].nil?
19045
+ @LimitMethod = LimitMethod.new
19046
+ @LimitMethod.deserialize(params['LimitMethod'])
19047
+ end
19048
+ unless params['LimitPaths'].nil?
19049
+ @LimitPaths = LimitPath.new
19050
+ @LimitPaths.deserialize(params['LimitPaths'])
19051
+ end
19052
+ unless params['LimitHeaders'].nil?
19053
+ @LimitHeaders = []
19054
+ params['LimitHeaders'].each do |i|
19055
+ limitheader_tmp = LimitHeader.new
19056
+ limitheader_tmp.deserialize(i)
19057
+ @LimitHeaders << limitheader_tmp
19058
+ end
19059
+ end
19060
+ unless params['LimitWindow'].nil?
19061
+ @LimitWindow = LimitWindow.new
19062
+ @LimitWindow.deserialize(params['LimitWindow'])
19063
+ end
19064
+ unless params['GetParamsName'].nil?
19065
+ @GetParamsName = MatchOption.new
19066
+ @GetParamsName.deserialize(params['GetParamsName'])
19067
+ end
19068
+ unless params['GetParamsValue'].nil?
19069
+ @GetParamsValue = MatchOption.new
19070
+ @GetParamsValue.deserialize(params['GetParamsValue'])
19071
+ end
19072
+ unless params['PostParamsName'].nil?
19073
+ @PostParamsName = MatchOption.new
19074
+ @PostParamsName.deserialize(params['PostParamsName'])
19075
+ end
19076
+ unless params['PostParamsValue'].nil?
19077
+ @PostParamsValue = MatchOption.new
19078
+ @PostParamsValue.deserialize(params['PostParamsValue'])
19079
+ end
19080
+ unless params['IpLocation'].nil?
19081
+ @IpLocation = MatchOption.new
19082
+ @IpLocation.deserialize(params['IpLocation'])
19083
+ end
19084
+ unless params['RedirectInfo'].nil?
19085
+ @RedirectInfo = RedirectInfo.new
19086
+ @RedirectInfo.deserialize(params['RedirectInfo'])
19087
+ end
19088
+ @BlockPage = params['BlockPage']
19089
+ @ObjectSrc = params['ObjectSrc']
19090
+ @QuotaShare = params['QuotaShare']
19091
+ unless params['PathsOption'].nil?
19092
+ @PathsOption = []
19093
+ params['PathsOption'].each do |i|
19094
+ pathitem_tmp = PathItem.new
19095
+ pathitem_tmp.deserialize(i)
19096
+ @PathsOption << pathitem_tmp
19097
+ end
19098
+ end
19099
+ @Order = params['Order']
19100
+ end
19101
+ end
19102
+
19103
+ # UpdateRateLimitV2返回参数结构体
19104
+ class UpdateRateLimitV2Response < TencentCloud::Common::AbstractModel
19105
+ # @param BaseInfo: 操作结果
19106
+ # @type BaseInfo: :class:`Tencentcloud::Waf.v20180125.models.RateLimitCommonRsp`
19107
+ # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
19108
+ # @type RequestId: String
19109
+
19110
+ attr_accessor :BaseInfo, :RequestId
19111
+
19112
+ def initialize(baseinfo=nil, requestid=nil)
19113
+ @BaseInfo = baseinfo
19114
+ @RequestId = requestid
19115
+ end
19116
+
19117
+ def deserialize(params)
19118
+ unless params['BaseInfo'].nil?
19119
+ @BaseInfo = RateLimitCommonRsp.new
19120
+ @BaseInfo.deserialize(params['BaseInfo'])
19121
+ end
19122
+ @RequestId = params['RequestId']
19123
+ end
19124
+ end
19125
+
17674
19126
  # UpsertCCAutoStatus请求参数结构体
17675
19127
  class UpsertCCAutoStatusRequest < TencentCloud::Common::AbstractModel
17676
19128
  # @param Domain: 域名