tencentcloud-sdk-python-waf 3.1.99__tar.gz → 3.1.102__tar.gz
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.
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/PKG-INFO +2 -2
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/setup.py +1 -1
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/__init__.py +1 -1
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/v20180125/errorcodes.py +39 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/v20180125/models.py +877 -104
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/v20180125/waf_client.py +46 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/v20180125/waf_client_async.py +36 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud_sdk_python_waf.egg-info/PKG-INFO +2 -2
- tencentcloud_sdk_python_waf-3.1.102/tencentcloud_sdk_python_waf.egg-info/requires.txt +1 -0
- tencentcloud_sdk_python_waf-3.1.99/tencentcloud_sdk_python_waf.egg-info/requires.txt +0 -1
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/README.rst +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/setup.cfg +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/__init__.py +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud/waf/v20180125/__init__.py +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud_sdk_python_waf.egg-info/SOURCES.txt +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud_sdk_python_waf.egg-info/dependency_links.txt +0 -0
- {tencentcloud_sdk_python_waf-3.1.99 → tencentcloud_sdk_python_waf-3.1.102}/tencentcloud_sdk_python_waf.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-waf
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.102
|
|
4
4
|
Summary: Tencent Cloud Waf SDK for Python
|
|
5
5
|
Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
|
|
6
6
|
Author: Tencent Cloud
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.6
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.
|
|
18
|
+
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.102
|
|
19
19
|
|
|
20
20
|
============================
|
|
21
21
|
Tencent Cloud SDK for Python
|
|
@@ -8,7 +8,7 @@ ROOT = os.path.dirname(__file__)
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name='tencentcloud-sdk-python-waf',
|
|
11
|
-
install_requires=["tencentcloud-sdk-python-common>=3.1.
|
|
11
|
+
install_requires=["tencentcloud-sdk-python-common>=3.1.102,<4.0.0"],
|
|
12
12
|
|
|
13
13
|
version=tencentcloud.__version__,
|
|
14
14
|
description='Tencent Cloud Waf SDK for Python',
|
|
@@ -197,6 +197,45 @@ INVALIDPARAMETER_QUERYSTRINGSYNTAXERR = 'InvalidParameter.QueryStringSyntaxErr'
|
|
|
197
197
|
# 语法错误:SQL检索语句必须遵循特定的语法规则,如果语法错误,就会导致SQL语句无法执行。例如,缺少关键字、拼写错误、缺少分号等。
|
|
198
198
|
INVALIDPARAMETER_SQLSYNTAXERR = 'InvalidParameter.SQLSyntaxErr'
|
|
199
199
|
|
|
200
|
+
# API Key 已被禁用
|
|
201
|
+
INVALIDPARAMETER_SKILLSCANAPIKEYDISABLED = 'InvalidParameter.SkillScanApiKeyDisabled'
|
|
202
|
+
|
|
203
|
+
# 创建扫描任务失败(服务内部错误)
|
|
204
|
+
INVALIDPARAMETER_SKILLSCANCREATESCANFAILED = 'InvalidParameter.SkillScanCreateScanFailed'
|
|
205
|
+
|
|
206
|
+
# FileData 不是有效的 Base64 编码
|
|
207
|
+
INVALIDPARAMETER_SKILLSCANINVALIDBASE64 = 'InvalidParameter.SkillScanInvalidBase64'
|
|
208
|
+
|
|
209
|
+
# 文件不是有效的 ZIP 格式
|
|
210
|
+
INVALIDPARAMETER_SKILLSCANINVALIDFILEFORMAT = 'InvalidParameter.SkillScanInvalidFileFormat'
|
|
211
|
+
|
|
212
|
+
# 参数校验失败(如 content_hash 格式不合法、缺少必填字段)
|
|
213
|
+
INVALIDPARAMETER_SKILLSCANINVALIDPARAM = 'InvalidParameter.SkillScanInvalidParam'
|
|
214
|
+
|
|
215
|
+
# 请求格式错误(如 Content-Type 不正确、JSON 解析失败)
|
|
216
|
+
INVALIDPARAMETER_SKILLSCANINVALIDREQUEST = 'InvalidParameter.SkillScanInvalidRequest'
|
|
217
|
+
|
|
218
|
+
# 未检测到上传文件
|
|
219
|
+
INVALIDPARAMETER_SKILLSCANNOFILES = 'InvalidParameter.SkillScanNoFiles'
|
|
220
|
+
|
|
221
|
+
# 查询失败(服务内部错误)
|
|
222
|
+
INVALIDPARAMETER_SKILLSCANQUERYFAILED = 'InvalidParameter.SkillScanQueryFailed'
|
|
223
|
+
|
|
224
|
+
# 请求频率超出限制
|
|
225
|
+
INVALIDPARAMETER_SKILLSCANRATELIMITEXCEEDED = 'InvalidParameter.SkillScanRateLimitExceeded'
|
|
226
|
+
|
|
227
|
+
# ServiceId 为空
|
|
228
|
+
INVALIDPARAMETER_SKILLSCANSERVICEIDEMPTY = 'InvalidParameter.SkillScanServiceIdEmpty'
|
|
229
|
+
|
|
230
|
+
# 防护开关未开启
|
|
231
|
+
INVALIDPARAMETER_SKILLSCANSWITCHOFF = 'InvalidParameter.SkillScanSwitchOff'
|
|
232
|
+
|
|
233
|
+
# 触发检测任务失败(服务内部错误)
|
|
234
|
+
INVALIDPARAMETER_SKILLSCANTRIGGERFAILED = 'InvalidParameter.SkillScanTriggerFailed'
|
|
235
|
+
|
|
236
|
+
# API Key 缺失或无效
|
|
237
|
+
INVALIDPARAMETER_SKILLSCANUNAUTHORIZED = 'InvalidParameter.SkillScanUnauthorized'
|
|
238
|
+
|
|
200
239
|
# 当前实例版本不支持开启TLS自定义,请升级到高级版及以上
|
|
201
240
|
INVALIDPARAMETER_SUPPORTTLSCONFFAILED = 'InvalidParameter.SupportTLSConfFailed'
|
|
202
241
|
|
|
@@ -29060,6 +29060,117 @@ class DescribeSessionResponse(AbstractModel):
|
|
|
29060
29060
|
self._RequestId = params.get("RequestId")
|
|
29061
29061
|
|
|
29062
29062
|
|
|
29063
|
+
class DescribeSkillSecScanResultRequest(AbstractModel):
|
|
29064
|
+
r"""DescribeSkillSecScanResult请求参数结构体
|
|
29065
|
+
|
|
29066
|
+
"""
|
|
29067
|
+
|
|
29068
|
+
def __init__(self):
|
|
29069
|
+
r"""
|
|
29070
|
+
:param _ServiceId: <p>服务ID</p>
|
|
29071
|
+
:type ServiceId: str
|
|
29072
|
+
:param _ContentHash: <p>ZIP 文件的 SHA256 哈希值,格式为 sha256:hex_digest,请严格遵循文档中的zip打包规范</p>
|
|
29073
|
+
:type ContentHash: str
|
|
29074
|
+
:param _Lang: <p>返回语言。支持 zh / en,默认 zh</p>
|
|
29075
|
+
:type Lang: str
|
|
29076
|
+
"""
|
|
29077
|
+
self._ServiceId = None
|
|
29078
|
+
self._ContentHash = None
|
|
29079
|
+
self._Lang = None
|
|
29080
|
+
|
|
29081
|
+
@property
|
|
29082
|
+
def ServiceId(self):
|
|
29083
|
+
r"""<p>服务ID</p>
|
|
29084
|
+
:rtype: str
|
|
29085
|
+
"""
|
|
29086
|
+
return self._ServiceId
|
|
29087
|
+
|
|
29088
|
+
@ServiceId.setter
|
|
29089
|
+
def ServiceId(self, ServiceId):
|
|
29090
|
+
self._ServiceId = ServiceId
|
|
29091
|
+
|
|
29092
|
+
@property
|
|
29093
|
+
def ContentHash(self):
|
|
29094
|
+
r"""<p>ZIP 文件的 SHA256 哈希值,格式为 sha256:hex_digest,请严格遵循文档中的zip打包规范</p>
|
|
29095
|
+
:rtype: str
|
|
29096
|
+
"""
|
|
29097
|
+
return self._ContentHash
|
|
29098
|
+
|
|
29099
|
+
@ContentHash.setter
|
|
29100
|
+
def ContentHash(self, ContentHash):
|
|
29101
|
+
self._ContentHash = ContentHash
|
|
29102
|
+
|
|
29103
|
+
@property
|
|
29104
|
+
def Lang(self):
|
|
29105
|
+
r"""<p>返回语言。支持 zh / en,默认 zh</p>
|
|
29106
|
+
:rtype: str
|
|
29107
|
+
"""
|
|
29108
|
+
return self._Lang
|
|
29109
|
+
|
|
29110
|
+
@Lang.setter
|
|
29111
|
+
def Lang(self, Lang):
|
|
29112
|
+
self._Lang = Lang
|
|
29113
|
+
|
|
29114
|
+
|
|
29115
|
+
def _deserialize(self, params):
|
|
29116
|
+
self._ServiceId = params.get("ServiceId")
|
|
29117
|
+
self._ContentHash = params.get("ContentHash")
|
|
29118
|
+
self._Lang = params.get("Lang")
|
|
29119
|
+
memeber_set = set(params.keys())
|
|
29120
|
+
for name, value in vars(self).items():
|
|
29121
|
+
property_name = name[1:]
|
|
29122
|
+
if property_name in memeber_set:
|
|
29123
|
+
memeber_set.remove(property_name)
|
|
29124
|
+
if len(memeber_set) > 0:
|
|
29125
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
29126
|
+
|
|
29127
|
+
|
|
29128
|
+
|
|
29129
|
+
class DescribeSkillSecScanResultResponse(AbstractModel):
|
|
29130
|
+
r"""DescribeSkillSecScanResult返回参数结构体
|
|
29131
|
+
|
|
29132
|
+
"""
|
|
29133
|
+
|
|
29134
|
+
def __init__(self):
|
|
29135
|
+
r"""
|
|
29136
|
+
:param _Data: <p>检测结果</p>
|
|
29137
|
+
:type Data: :class:`tencentcloud.waf.v20180125.models.SkillScanQueryData`
|
|
29138
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
29139
|
+
:type RequestId: str
|
|
29140
|
+
"""
|
|
29141
|
+
self._Data = None
|
|
29142
|
+
self._RequestId = None
|
|
29143
|
+
|
|
29144
|
+
@property
|
|
29145
|
+
def Data(self):
|
|
29146
|
+
r"""<p>检测结果</p>
|
|
29147
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.SkillScanQueryData`
|
|
29148
|
+
"""
|
|
29149
|
+
return self._Data
|
|
29150
|
+
|
|
29151
|
+
@Data.setter
|
|
29152
|
+
def Data(self, Data):
|
|
29153
|
+
self._Data = Data
|
|
29154
|
+
|
|
29155
|
+
@property
|
|
29156
|
+
def RequestId(self):
|
|
29157
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
29158
|
+
:rtype: str
|
|
29159
|
+
"""
|
|
29160
|
+
return self._RequestId
|
|
29161
|
+
|
|
29162
|
+
@RequestId.setter
|
|
29163
|
+
def RequestId(self, RequestId):
|
|
29164
|
+
self._RequestId = RequestId
|
|
29165
|
+
|
|
29166
|
+
|
|
29167
|
+
def _deserialize(self, params):
|
|
29168
|
+
if params.get("Data") is not None:
|
|
29169
|
+
self._Data = SkillScanQueryData()
|
|
29170
|
+
self._Data._deserialize(params.get("Data"))
|
|
29171
|
+
self._RequestId = params.get("RequestId")
|
|
29172
|
+
|
|
29173
|
+
|
|
29063
29174
|
class DescribeSpartaProtectionInfoRequest(AbstractModel):
|
|
29064
29175
|
r"""DescribeSpartaProtectionInfo请求参数结构体
|
|
29065
29176
|
|
|
@@ -56212,92 +56323,98 @@ class SessionItem(AbstractModel):
|
|
|
56212
56323
|
|
|
56213
56324
|
|
|
56214
56325
|
|
|
56215
|
-
class
|
|
56216
|
-
r"""
|
|
56326
|
+
class SkillRuleCatalogItem(AbstractModel):
|
|
56327
|
+
r"""skills检测命中规则名录
|
|
56217
56328
|
|
|
56218
56329
|
"""
|
|
56219
56330
|
|
|
56220
56331
|
def __init__(self):
|
|
56221
56332
|
r"""
|
|
56222
|
-
:param
|
|
56223
|
-
:type
|
|
56224
|
-
:param
|
|
56225
|
-
:type
|
|
56226
|
-
:param _Protocol: 协议
|
|
56227
|
-
:type Protocol: str
|
|
56228
|
-
:param _UpstreamPort: 后端端口
|
|
56229
|
-
:type UpstreamPort: str
|
|
56230
|
-
:param _UpstreamProtocol: 后端协议
|
|
56231
|
-
:type UpstreamProtocol: str
|
|
56333
|
+
:param _Key: <p>规则分类标识(如 static_analysis、ai_analysis)</p>
|
|
56334
|
+
:type Key: str
|
|
56335
|
+
:param _Value: <p>规则分类中文名称</p>
|
|
56336
|
+
:type Value: str
|
|
56232
56337
|
"""
|
|
56233
|
-
self.
|
|
56234
|
-
self.
|
|
56235
|
-
self._Protocol = None
|
|
56236
|
-
self._UpstreamPort = None
|
|
56237
|
-
self._UpstreamProtocol = None
|
|
56338
|
+
self._Key = None
|
|
56339
|
+
self._Value = None
|
|
56238
56340
|
|
|
56239
56341
|
@property
|
|
56240
|
-
def
|
|
56241
|
-
r"""
|
|
56242
|
-
:rtype:
|
|
56342
|
+
def Key(self):
|
|
56343
|
+
r"""<p>规则分类标识(如 static_analysis、ai_analysis)</p>
|
|
56344
|
+
:rtype: str
|
|
56243
56345
|
"""
|
|
56244
|
-
return self.
|
|
56346
|
+
return self._Key
|
|
56245
56347
|
|
|
56246
|
-
@
|
|
56247
|
-
def
|
|
56248
|
-
self.
|
|
56348
|
+
@Key.setter
|
|
56349
|
+
def Key(self, Key):
|
|
56350
|
+
self._Key = Key
|
|
56249
56351
|
|
|
56250
56352
|
@property
|
|
56251
|
-
def
|
|
56252
|
-
r"""
|
|
56353
|
+
def Value(self):
|
|
56354
|
+
r"""<p>规则分类中文名称</p>
|
|
56253
56355
|
:rtype: str
|
|
56254
56356
|
"""
|
|
56255
|
-
return self.
|
|
56357
|
+
return self._Value
|
|
56256
56358
|
|
|
56257
|
-
@
|
|
56258
|
-
def
|
|
56259
|
-
self.
|
|
56359
|
+
@Value.setter
|
|
56360
|
+
def Value(self, Value):
|
|
56361
|
+
self._Value = Value
|
|
56260
56362
|
|
|
56261
|
-
@property
|
|
56262
|
-
def Protocol(self):
|
|
56263
|
-
r"""协议
|
|
56264
|
-
:rtype: str
|
|
56265
|
-
"""
|
|
56266
|
-
return self._Protocol
|
|
56267
56363
|
|
|
56268
|
-
|
|
56269
|
-
|
|
56270
|
-
self.
|
|
56364
|
+
def _deserialize(self, params):
|
|
56365
|
+
self._Key = params.get("Key")
|
|
56366
|
+
self._Value = params.get("Value")
|
|
56367
|
+
memeber_set = set(params.keys())
|
|
56368
|
+
for name, value in vars(self).items():
|
|
56369
|
+
property_name = name[1:]
|
|
56370
|
+
if property_name in memeber_set:
|
|
56371
|
+
memeber_set.remove(property_name)
|
|
56372
|
+
if len(memeber_set) > 0:
|
|
56373
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56374
|
+
|
|
56375
|
+
|
|
56376
|
+
|
|
56377
|
+
class SkillScanCapabilityTag(AbstractModel):
|
|
56378
|
+
r"""skills检测能力标签
|
|
56379
|
+
|
|
56380
|
+
"""
|
|
56381
|
+
|
|
56382
|
+
def __init__(self):
|
|
56383
|
+
r"""
|
|
56384
|
+
:param _Id: <p>标签唯一ID</p>
|
|
56385
|
+
:type Id: str
|
|
56386
|
+
:param _Name: <p>标签名称(如 network_access、file_system 等)</p>
|
|
56387
|
+
:type Name: str
|
|
56388
|
+
"""
|
|
56389
|
+
self._Id = None
|
|
56390
|
+
self._Name = None
|
|
56271
56391
|
|
|
56272
56392
|
@property
|
|
56273
|
-
def
|
|
56274
|
-
r"""
|
|
56393
|
+
def Id(self):
|
|
56394
|
+
r"""<p>标签唯一ID</p>
|
|
56275
56395
|
:rtype: str
|
|
56276
56396
|
"""
|
|
56277
|
-
return self.
|
|
56397
|
+
return self._Id
|
|
56278
56398
|
|
|
56279
|
-
@
|
|
56280
|
-
def
|
|
56281
|
-
self.
|
|
56399
|
+
@Id.setter
|
|
56400
|
+
def Id(self, Id):
|
|
56401
|
+
self._Id = Id
|
|
56282
56402
|
|
|
56283
56403
|
@property
|
|
56284
|
-
def
|
|
56285
|
-
r"""
|
|
56404
|
+
def Name(self):
|
|
56405
|
+
r"""<p>标签名称(如 network_access、file_system 等)</p>
|
|
56286
56406
|
:rtype: str
|
|
56287
56407
|
"""
|
|
56288
|
-
return self.
|
|
56408
|
+
return self._Name
|
|
56289
56409
|
|
|
56290
|
-
@
|
|
56291
|
-
def
|
|
56292
|
-
self.
|
|
56410
|
+
@Name.setter
|
|
56411
|
+
def Name(self, Name):
|
|
56412
|
+
self._Name = Name
|
|
56293
56413
|
|
|
56294
56414
|
|
|
56295
56415
|
def _deserialize(self, params):
|
|
56296
|
-
self.
|
|
56297
|
-
self.
|
|
56298
|
-
self._Protocol = params.get("Protocol")
|
|
56299
|
-
self._UpstreamPort = params.get("UpstreamPort")
|
|
56300
|
-
self._UpstreamProtocol = params.get("UpstreamProtocol")
|
|
56416
|
+
self._Id = params.get("Id")
|
|
56417
|
+
self._Name = params.get("Name")
|
|
56301
56418
|
memeber_set = set(params.keys())
|
|
56302
56419
|
for name, value in vars(self).items():
|
|
56303
56420
|
property_name = name[1:]
|
|
@@ -56308,65 +56425,610 @@ class SpartaProtectionPort(AbstractModel):
|
|
|
56308
56425
|
|
|
56309
56426
|
|
|
56310
56427
|
|
|
56311
|
-
class
|
|
56312
|
-
r"""
|
|
56428
|
+
class SkillScanItem(AbstractModel):
|
|
56429
|
+
r"""扫描结果详情(按子引擎分组)
|
|
56313
56430
|
|
|
56314
56431
|
"""
|
|
56315
56432
|
|
|
56316
56433
|
def __init__(self):
|
|
56317
56434
|
r"""
|
|
56318
|
-
:param
|
|
56435
|
+
:param _ScanType: <p>子引擎类型:AI(AI 分析)/ STATIC(静态分析)</p>
|
|
56436
|
+
:type ScanType: str
|
|
56437
|
+
:param _RuleList: <p>该引擎命中的规则列表</p>
|
|
56438
|
+
:type RuleList: list of SkillScanRuleHit
|
|
56439
|
+
"""
|
|
56440
|
+
self._ScanType = None
|
|
56441
|
+
self._RuleList = None
|
|
56319
56442
|
|
|
56320
|
-
|
|
56321
|
-
|
|
56322
|
-
|
|
56323
|
-
:
|
|
56324
|
-
|
|
56443
|
+
@property
|
|
56444
|
+
def ScanType(self):
|
|
56445
|
+
r"""<p>子引擎类型:AI(AI 分析)/ STATIC(静态分析)</p>
|
|
56446
|
+
:rtype: str
|
|
56447
|
+
"""
|
|
56448
|
+
return self._ScanType
|
|
56325
56449
|
|
|
56326
|
-
|
|
56327
|
-
|
|
56328
|
-
|
|
56329
|
-
eq ( 等于)
|
|
56330
|
-
neq ( 不等于)
|
|
56331
|
-
contains ( 包含)
|
|
56332
|
-
ncontains ( 不包含)
|
|
56333
|
-
strprefix ( 前缀匹配)
|
|
56334
|
-
strsuffix ( 后缀匹配)
|
|
56335
|
-
len_eq ( 长度等于)
|
|
56336
|
-
len_gt ( 长度大于)
|
|
56337
|
-
len_lt ( 长度小于)
|
|
56338
|
-
ipmatch ( 属于)
|
|
56339
|
-
ipnmatch ( 不属于)
|
|
56340
|
-
numgt ( 数值大于)
|
|
56341
|
-
numlt ( 数值小于)
|
|
56342
|
-
numeq ( 数值等于)
|
|
56343
|
-
numneq ( 数值不等于)
|
|
56344
|
-
numle ( 数值小于等于)
|
|
56345
|
-
numge ( 数值大于等于)
|
|
56346
|
-
geo_in ( IP地理属于)
|
|
56347
|
-
geo_not_in ( IP地理不属于)
|
|
56348
|
-
各匹配字段对应的逻辑符号不同,详见上述匹配字段表格
|
|
56349
|
-
:type CompareFunc: str
|
|
56350
|
-
:param _Content: 匹配内容
|
|
56450
|
+
@ScanType.setter
|
|
56451
|
+
def ScanType(self, ScanType):
|
|
56452
|
+
self._ScanType = ScanType
|
|
56351
56453
|
|
|
56352
|
-
|
|
56454
|
+
@property
|
|
56455
|
+
def RuleList(self):
|
|
56456
|
+
r"""<p>该引擎命中的规则列表</p>
|
|
56457
|
+
:rtype: list of SkillScanRuleHit
|
|
56458
|
+
"""
|
|
56459
|
+
return self._RuleList
|
|
56353
56460
|
|
|
56354
|
-
|
|
56355
|
-
|
|
56461
|
+
@RuleList.setter
|
|
56462
|
+
def RuleList(self, RuleList):
|
|
56463
|
+
self._RuleList = RuleList
|
|
56356
56464
|
|
|
56357
|
-
配置参数一共分2种类型 不支持参数与支持参数
|
|
56358
|
-
当匹配字段为以下4个时,匹配参数才能录入,否则不支持该参数
|
|
56359
|
-
GET(GET参数值)
|
|
56360
|
-
POST(POST参数值)
|
|
56361
|
-
ARGS_COOKIE(Cookie参数值)
|
|
56362
|
-
ARGS_HEADER(Header参数值)
|
|
56363
56465
|
|
|
56364
|
-
|
|
56365
|
-
|
|
56366
|
-
|
|
56367
|
-
|
|
56368
|
-
|
|
56369
|
-
|
|
56466
|
+
def _deserialize(self, params):
|
|
56467
|
+
self._ScanType = params.get("ScanType")
|
|
56468
|
+
if params.get("RuleList") is not None:
|
|
56469
|
+
self._RuleList = []
|
|
56470
|
+
for item in params.get("RuleList"):
|
|
56471
|
+
obj = SkillScanRuleHit()
|
|
56472
|
+
obj._deserialize(item)
|
|
56473
|
+
self._RuleList.append(obj)
|
|
56474
|
+
memeber_set = set(params.keys())
|
|
56475
|
+
for name, value in vars(self).items():
|
|
56476
|
+
property_name = name[1:]
|
|
56477
|
+
if property_name in memeber_set:
|
|
56478
|
+
memeber_set.remove(property_name)
|
|
56479
|
+
if len(memeber_set) > 0:
|
|
56480
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56481
|
+
|
|
56482
|
+
|
|
56483
|
+
|
|
56484
|
+
class SkillScanQueryData(AbstractModel):
|
|
56485
|
+
r"""skills检测结果列表
|
|
56486
|
+
|
|
56487
|
+
"""
|
|
56488
|
+
|
|
56489
|
+
def __init__(self):
|
|
56490
|
+
r"""
|
|
56491
|
+
:param _Status: <p>检测状态:success(检测完成,有结果)、scanning(检测进行中)、not_found(无记录)、failed(检测失败)</p><p>枚举值:</p><ul><li>success: 检测完成,有结果</li><li>scanning: 检测进行中</li><li>not_found: 无记录</li><li>failed: 检测失败</li></ul>
|
|
56492
|
+
:type Status: str
|
|
56493
|
+
:param _SkillName: <p>Skill 名称,用于页面展示、结果列表呈现和人工研判</p>
|
|
56494
|
+
:type SkillName: str
|
|
56495
|
+
:param _SkillDescription: <p>Skill 描述,通常来自 Skill 元数据或说明信息,用于帮助调用方理解 Skill 的用途</p>
|
|
56496
|
+
:type SkillDescription: str
|
|
56497
|
+
:param _ContentHash: <p>ZIP 文件的 SHA256 哈希值,格式为 sha256:hex_digest</p>
|
|
56498
|
+
:type ContentHash: str
|
|
56499
|
+
:param _RiskLevel: <p>风险等级:malicious(恶意)、suspicious(可疑)、benign(可信)</p>
|
|
56500
|
+
:type RiskLevel: str
|
|
56501
|
+
:param _Mitigation: <p>综合处置建议字段,位于 data 顶层,用于给出本次检测结果的总体修复、缓解或人工处置建议</p>
|
|
56502
|
+
:type Mitigation: str
|
|
56503
|
+
:param _SecurityScore: <p>安全评分(0-100,分数越高越安全)</p><p>取值范围:[0, 100]</p>
|
|
56504
|
+
:type SecurityScore: int
|
|
56505
|
+
:param _EngineVersion: <p>本次扫描使用的引擎版本号</p>
|
|
56506
|
+
:type EngineVersion: int
|
|
56507
|
+
:param _CapabilityTags: <p>Skill 的能力标签列表,对外固定返回格式为 [{id,name}]。该字段用于描述 Skill 具备的能力特征或适用场景,便于调用方做检索、展示或分类;不等同于风险标签,也不表示风险高低或命中规则结果。当 lang=en 时,仅 name 会切换为英文,id 保持不变</p>
|
|
56508
|
+
:type CapabilityTags: list of SkillScanCapabilityTag
|
|
56509
|
+
:param _RuleCatalog: <p>融合规则目录全集,key 为融合 rule_id(9xxxx),value 为风险类别名称;包含所有融合规则类别,调用方可据此展示分类标签,无需本地维护映射表。传 lang=en 时返回英文名称。该对象是名称映射表,不表达主标签优先级</p>
|
|
56510
|
+
:type RuleCatalog: list of SkillRuleCatalogItem
|
|
56511
|
+
:param _ScanItems: <p>扫描结果详情,按子引擎分组,每个元素包含 scan_type(引擎类型)和 rule_list(命中的规则列表);规则中的 rule_id 使用融合编码(9xxxx),可与 rule_catalog 交叉引用。传 lang=en 时,description 返回英文文本</p>
|
|
56512
|
+
:type ScanItems: list of SkillScanItem
|
|
56513
|
+
:param _ReportUrl: <p>综合安全审计报告地址。调用方可通过 report_url_expire_hours 指定有效期,不传时默认返回 1 年有效期地址</p>
|
|
56514
|
+
:type ReportUrl: str
|
|
56515
|
+
:param _ScannedAt: <p>扫描完成时间</p>
|
|
56516
|
+
:type ScannedAt: str
|
|
56517
|
+
:param _CreatedAt: <p>任务创建时间</p>
|
|
56518
|
+
:type CreatedAt: str
|
|
56519
|
+
:param _FailedAt: <p>失败时间</p>
|
|
56520
|
+
:type FailedAt: str
|
|
56521
|
+
:param _Message: <p>失败原因描述</p>
|
|
56522
|
+
:type Message: str
|
|
56523
|
+
"""
|
|
56524
|
+
self._Status = None
|
|
56525
|
+
self._SkillName = None
|
|
56526
|
+
self._SkillDescription = None
|
|
56527
|
+
self._ContentHash = None
|
|
56528
|
+
self._RiskLevel = None
|
|
56529
|
+
self._Mitigation = None
|
|
56530
|
+
self._SecurityScore = None
|
|
56531
|
+
self._EngineVersion = None
|
|
56532
|
+
self._CapabilityTags = None
|
|
56533
|
+
self._RuleCatalog = None
|
|
56534
|
+
self._ScanItems = None
|
|
56535
|
+
self._ReportUrl = None
|
|
56536
|
+
self._ScannedAt = None
|
|
56537
|
+
self._CreatedAt = None
|
|
56538
|
+
self._FailedAt = None
|
|
56539
|
+
self._Message = None
|
|
56540
|
+
|
|
56541
|
+
@property
|
|
56542
|
+
def Status(self):
|
|
56543
|
+
r"""<p>检测状态:success(检测完成,有结果)、scanning(检测进行中)、not_found(无记录)、failed(检测失败)</p><p>枚举值:</p><ul><li>success: 检测完成,有结果</li><li>scanning: 检测进行中</li><li>not_found: 无记录</li><li>failed: 检测失败</li></ul>
|
|
56544
|
+
:rtype: str
|
|
56545
|
+
"""
|
|
56546
|
+
return self._Status
|
|
56547
|
+
|
|
56548
|
+
@Status.setter
|
|
56549
|
+
def Status(self, Status):
|
|
56550
|
+
self._Status = Status
|
|
56551
|
+
|
|
56552
|
+
@property
|
|
56553
|
+
def SkillName(self):
|
|
56554
|
+
r"""<p>Skill 名称,用于页面展示、结果列表呈现和人工研判</p>
|
|
56555
|
+
:rtype: str
|
|
56556
|
+
"""
|
|
56557
|
+
return self._SkillName
|
|
56558
|
+
|
|
56559
|
+
@SkillName.setter
|
|
56560
|
+
def SkillName(self, SkillName):
|
|
56561
|
+
self._SkillName = SkillName
|
|
56562
|
+
|
|
56563
|
+
@property
|
|
56564
|
+
def SkillDescription(self):
|
|
56565
|
+
r"""<p>Skill 描述,通常来自 Skill 元数据或说明信息,用于帮助调用方理解 Skill 的用途</p>
|
|
56566
|
+
:rtype: str
|
|
56567
|
+
"""
|
|
56568
|
+
return self._SkillDescription
|
|
56569
|
+
|
|
56570
|
+
@SkillDescription.setter
|
|
56571
|
+
def SkillDescription(self, SkillDescription):
|
|
56572
|
+
self._SkillDescription = SkillDescription
|
|
56573
|
+
|
|
56574
|
+
@property
|
|
56575
|
+
def ContentHash(self):
|
|
56576
|
+
r"""<p>ZIP 文件的 SHA256 哈希值,格式为 sha256:hex_digest</p>
|
|
56577
|
+
:rtype: str
|
|
56578
|
+
"""
|
|
56579
|
+
return self._ContentHash
|
|
56580
|
+
|
|
56581
|
+
@ContentHash.setter
|
|
56582
|
+
def ContentHash(self, ContentHash):
|
|
56583
|
+
self._ContentHash = ContentHash
|
|
56584
|
+
|
|
56585
|
+
@property
|
|
56586
|
+
def RiskLevel(self):
|
|
56587
|
+
r"""<p>风险等级:malicious(恶意)、suspicious(可疑)、benign(可信)</p>
|
|
56588
|
+
:rtype: str
|
|
56589
|
+
"""
|
|
56590
|
+
return self._RiskLevel
|
|
56591
|
+
|
|
56592
|
+
@RiskLevel.setter
|
|
56593
|
+
def RiskLevel(self, RiskLevel):
|
|
56594
|
+
self._RiskLevel = RiskLevel
|
|
56595
|
+
|
|
56596
|
+
@property
|
|
56597
|
+
def Mitigation(self):
|
|
56598
|
+
r"""<p>综合处置建议字段,位于 data 顶层,用于给出本次检测结果的总体修复、缓解或人工处置建议</p>
|
|
56599
|
+
:rtype: str
|
|
56600
|
+
"""
|
|
56601
|
+
return self._Mitigation
|
|
56602
|
+
|
|
56603
|
+
@Mitigation.setter
|
|
56604
|
+
def Mitigation(self, Mitigation):
|
|
56605
|
+
self._Mitigation = Mitigation
|
|
56606
|
+
|
|
56607
|
+
@property
|
|
56608
|
+
def SecurityScore(self):
|
|
56609
|
+
r"""<p>安全评分(0-100,分数越高越安全)</p><p>取值范围:[0, 100]</p>
|
|
56610
|
+
:rtype: int
|
|
56611
|
+
"""
|
|
56612
|
+
return self._SecurityScore
|
|
56613
|
+
|
|
56614
|
+
@SecurityScore.setter
|
|
56615
|
+
def SecurityScore(self, SecurityScore):
|
|
56616
|
+
self._SecurityScore = SecurityScore
|
|
56617
|
+
|
|
56618
|
+
@property
|
|
56619
|
+
def EngineVersion(self):
|
|
56620
|
+
r"""<p>本次扫描使用的引擎版本号</p>
|
|
56621
|
+
:rtype: int
|
|
56622
|
+
"""
|
|
56623
|
+
return self._EngineVersion
|
|
56624
|
+
|
|
56625
|
+
@EngineVersion.setter
|
|
56626
|
+
def EngineVersion(self, EngineVersion):
|
|
56627
|
+
self._EngineVersion = EngineVersion
|
|
56628
|
+
|
|
56629
|
+
@property
|
|
56630
|
+
def CapabilityTags(self):
|
|
56631
|
+
r"""<p>Skill 的能力标签列表,对外固定返回格式为 [{id,name}]。该字段用于描述 Skill 具备的能力特征或适用场景,便于调用方做检索、展示或分类;不等同于风险标签,也不表示风险高低或命中规则结果。当 lang=en 时,仅 name 会切换为英文,id 保持不变</p>
|
|
56632
|
+
:rtype: list of SkillScanCapabilityTag
|
|
56633
|
+
"""
|
|
56634
|
+
return self._CapabilityTags
|
|
56635
|
+
|
|
56636
|
+
@CapabilityTags.setter
|
|
56637
|
+
def CapabilityTags(self, CapabilityTags):
|
|
56638
|
+
self._CapabilityTags = CapabilityTags
|
|
56639
|
+
|
|
56640
|
+
@property
|
|
56641
|
+
def RuleCatalog(self):
|
|
56642
|
+
r"""<p>融合规则目录全集,key 为融合 rule_id(9xxxx),value 为风险类别名称;包含所有融合规则类别,调用方可据此展示分类标签,无需本地维护映射表。传 lang=en 时返回英文名称。该对象是名称映射表,不表达主标签优先级</p>
|
|
56643
|
+
:rtype: list of SkillRuleCatalogItem
|
|
56644
|
+
"""
|
|
56645
|
+
return self._RuleCatalog
|
|
56646
|
+
|
|
56647
|
+
@RuleCatalog.setter
|
|
56648
|
+
def RuleCatalog(self, RuleCatalog):
|
|
56649
|
+
self._RuleCatalog = RuleCatalog
|
|
56650
|
+
|
|
56651
|
+
@property
|
|
56652
|
+
def ScanItems(self):
|
|
56653
|
+
r"""<p>扫描结果详情,按子引擎分组,每个元素包含 scan_type(引擎类型)和 rule_list(命中的规则列表);规则中的 rule_id 使用融合编码(9xxxx),可与 rule_catalog 交叉引用。传 lang=en 时,description 返回英文文本</p>
|
|
56654
|
+
:rtype: list of SkillScanItem
|
|
56655
|
+
"""
|
|
56656
|
+
return self._ScanItems
|
|
56657
|
+
|
|
56658
|
+
@ScanItems.setter
|
|
56659
|
+
def ScanItems(self, ScanItems):
|
|
56660
|
+
self._ScanItems = ScanItems
|
|
56661
|
+
|
|
56662
|
+
@property
|
|
56663
|
+
def ReportUrl(self):
|
|
56664
|
+
r"""<p>综合安全审计报告地址。调用方可通过 report_url_expire_hours 指定有效期,不传时默认返回 1 年有效期地址</p>
|
|
56665
|
+
:rtype: str
|
|
56666
|
+
"""
|
|
56667
|
+
return self._ReportUrl
|
|
56668
|
+
|
|
56669
|
+
@ReportUrl.setter
|
|
56670
|
+
def ReportUrl(self, ReportUrl):
|
|
56671
|
+
self._ReportUrl = ReportUrl
|
|
56672
|
+
|
|
56673
|
+
@property
|
|
56674
|
+
def ScannedAt(self):
|
|
56675
|
+
r"""<p>扫描完成时间</p>
|
|
56676
|
+
:rtype: str
|
|
56677
|
+
"""
|
|
56678
|
+
return self._ScannedAt
|
|
56679
|
+
|
|
56680
|
+
@ScannedAt.setter
|
|
56681
|
+
def ScannedAt(self, ScannedAt):
|
|
56682
|
+
self._ScannedAt = ScannedAt
|
|
56683
|
+
|
|
56684
|
+
@property
|
|
56685
|
+
def CreatedAt(self):
|
|
56686
|
+
r"""<p>任务创建时间</p>
|
|
56687
|
+
:rtype: str
|
|
56688
|
+
"""
|
|
56689
|
+
return self._CreatedAt
|
|
56690
|
+
|
|
56691
|
+
@CreatedAt.setter
|
|
56692
|
+
def CreatedAt(self, CreatedAt):
|
|
56693
|
+
self._CreatedAt = CreatedAt
|
|
56694
|
+
|
|
56695
|
+
@property
|
|
56696
|
+
def FailedAt(self):
|
|
56697
|
+
r"""<p>失败时间</p>
|
|
56698
|
+
:rtype: str
|
|
56699
|
+
"""
|
|
56700
|
+
return self._FailedAt
|
|
56701
|
+
|
|
56702
|
+
@FailedAt.setter
|
|
56703
|
+
def FailedAt(self, FailedAt):
|
|
56704
|
+
self._FailedAt = FailedAt
|
|
56705
|
+
|
|
56706
|
+
@property
|
|
56707
|
+
def Message(self):
|
|
56708
|
+
r"""<p>失败原因描述</p>
|
|
56709
|
+
:rtype: str
|
|
56710
|
+
"""
|
|
56711
|
+
return self._Message
|
|
56712
|
+
|
|
56713
|
+
@Message.setter
|
|
56714
|
+
def Message(self, Message):
|
|
56715
|
+
self._Message = Message
|
|
56716
|
+
|
|
56717
|
+
|
|
56718
|
+
def _deserialize(self, params):
|
|
56719
|
+
self._Status = params.get("Status")
|
|
56720
|
+
self._SkillName = params.get("SkillName")
|
|
56721
|
+
self._SkillDescription = params.get("SkillDescription")
|
|
56722
|
+
self._ContentHash = params.get("ContentHash")
|
|
56723
|
+
self._RiskLevel = params.get("RiskLevel")
|
|
56724
|
+
self._Mitigation = params.get("Mitigation")
|
|
56725
|
+
self._SecurityScore = params.get("SecurityScore")
|
|
56726
|
+
self._EngineVersion = params.get("EngineVersion")
|
|
56727
|
+
if params.get("CapabilityTags") is not None:
|
|
56728
|
+
self._CapabilityTags = []
|
|
56729
|
+
for item in params.get("CapabilityTags"):
|
|
56730
|
+
obj = SkillScanCapabilityTag()
|
|
56731
|
+
obj._deserialize(item)
|
|
56732
|
+
self._CapabilityTags.append(obj)
|
|
56733
|
+
if params.get("RuleCatalog") is not None:
|
|
56734
|
+
self._RuleCatalog = []
|
|
56735
|
+
for item in params.get("RuleCatalog"):
|
|
56736
|
+
obj = SkillRuleCatalogItem()
|
|
56737
|
+
obj._deserialize(item)
|
|
56738
|
+
self._RuleCatalog.append(obj)
|
|
56739
|
+
if params.get("ScanItems") is not None:
|
|
56740
|
+
self._ScanItems = []
|
|
56741
|
+
for item in params.get("ScanItems"):
|
|
56742
|
+
obj = SkillScanItem()
|
|
56743
|
+
obj._deserialize(item)
|
|
56744
|
+
self._ScanItems.append(obj)
|
|
56745
|
+
self._ReportUrl = params.get("ReportUrl")
|
|
56746
|
+
self._ScannedAt = params.get("ScannedAt")
|
|
56747
|
+
self._CreatedAt = params.get("CreatedAt")
|
|
56748
|
+
self._FailedAt = params.get("FailedAt")
|
|
56749
|
+
self._Message = params.get("Message")
|
|
56750
|
+
memeber_set = set(params.keys())
|
|
56751
|
+
for name, value in vars(self).items():
|
|
56752
|
+
property_name = name[1:]
|
|
56753
|
+
if property_name in memeber_set:
|
|
56754
|
+
memeber_set.remove(property_name)
|
|
56755
|
+
if len(memeber_set) > 0:
|
|
56756
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56757
|
+
|
|
56758
|
+
|
|
56759
|
+
|
|
56760
|
+
class SkillScanRuleHit(AbstractModel):
|
|
56761
|
+
r"""SkillScanRuleHit 命中的规则
|
|
56762
|
+
|
|
56763
|
+
"""
|
|
56764
|
+
|
|
56765
|
+
def __init__(self):
|
|
56766
|
+
r"""
|
|
56767
|
+
:param _RuleId: <p>规则唯一ID</p>
|
|
56768
|
+
:type RuleId: str
|
|
56769
|
+
:param _Description: <p>规则描述(命中原因说明)</p>
|
|
56770
|
+
:type Description: str
|
|
56771
|
+
"""
|
|
56772
|
+
self._RuleId = None
|
|
56773
|
+
self._Description = None
|
|
56774
|
+
|
|
56775
|
+
@property
|
|
56776
|
+
def RuleId(self):
|
|
56777
|
+
r"""<p>规则唯一ID</p>
|
|
56778
|
+
:rtype: str
|
|
56779
|
+
"""
|
|
56780
|
+
return self._RuleId
|
|
56781
|
+
|
|
56782
|
+
@RuleId.setter
|
|
56783
|
+
def RuleId(self, RuleId):
|
|
56784
|
+
self._RuleId = RuleId
|
|
56785
|
+
|
|
56786
|
+
@property
|
|
56787
|
+
def Description(self):
|
|
56788
|
+
r"""<p>规则描述(命中原因说明)</p>
|
|
56789
|
+
:rtype: str
|
|
56790
|
+
"""
|
|
56791
|
+
return self._Description
|
|
56792
|
+
|
|
56793
|
+
@Description.setter
|
|
56794
|
+
def Description(self, Description):
|
|
56795
|
+
self._Description = Description
|
|
56796
|
+
|
|
56797
|
+
|
|
56798
|
+
def _deserialize(self, params):
|
|
56799
|
+
self._RuleId = params.get("RuleId")
|
|
56800
|
+
self._Description = params.get("Description")
|
|
56801
|
+
memeber_set = set(params.keys())
|
|
56802
|
+
for name, value in vars(self).items():
|
|
56803
|
+
property_name = name[1:]
|
|
56804
|
+
if property_name in memeber_set:
|
|
56805
|
+
memeber_set.remove(property_name)
|
|
56806
|
+
if len(memeber_set) > 0:
|
|
56807
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56808
|
+
|
|
56809
|
+
|
|
56810
|
+
|
|
56811
|
+
class SkillScanUploadData(AbstractModel):
|
|
56812
|
+
r"""skills 上检测接口返回信息
|
|
56813
|
+
|
|
56814
|
+
"""
|
|
56815
|
+
|
|
56816
|
+
def __init__(self):
|
|
56817
|
+
r"""
|
|
56818
|
+
:param _ContentHash: <p>文件的 SHA256 Hash,用于轮询查询接口</p>
|
|
56819
|
+
:type ContentHash: str
|
|
56820
|
+
:param _Status: <p>固定为 scanning,表示任务已接收</p>
|
|
56821
|
+
:type Status: str
|
|
56822
|
+
:param _Message: <p>可读的操作结果描述</p>
|
|
56823
|
+
:type Message: str
|
|
56824
|
+
"""
|
|
56825
|
+
self._ContentHash = None
|
|
56826
|
+
self._Status = None
|
|
56827
|
+
self._Message = None
|
|
56828
|
+
|
|
56829
|
+
@property
|
|
56830
|
+
def ContentHash(self):
|
|
56831
|
+
r"""<p>文件的 SHA256 Hash,用于轮询查询接口</p>
|
|
56832
|
+
:rtype: str
|
|
56833
|
+
"""
|
|
56834
|
+
return self._ContentHash
|
|
56835
|
+
|
|
56836
|
+
@ContentHash.setter
|
|
56837
|
+
def ContentHash(self, ContentHash):
|
|
56838
|
+
self._ContentHash = ContentHash
|
|
56839
|
+
|
|
56840
|
+
@property
|
|
56841
|
+
def Status(self):
|
|
56842
|
+
r"""<p>固定为 scanning,表示任务已接收</p>
|
|
56843
|
+
:rtype: str
|
|
56844
|
+
"""
|
|
56845
|
+
return self._Status
|
|
56846
|
+
|
|
56847
|
+
@Status.setter
|
|
56848
|
+
def Status(self, Status):
|
|
56849
|
+
self._Status = Status
|
|
56850
|
+
|
|
56851
|
+
@property
|
|
56852
|
+
def Message(self):
|
|
56853
|
+
r"""<p>可读的操作结果描述</p>
|
|
56854
|
+
:rtype: str
|
|
56855
|
+
"""
|
|
56856
|
+
return self._Message
|
|
56857
|
+
|
|
56858
|
+
@Message.setter
|
|
56859
|
+
def Message(self, Message):
|
|
56860
|
+
self._Message = Message
|
|
56861
|
+
|
|
56862
|
+
|
|
56863
|
+
def _deserialize(self, params):
|
|
56864
|
+
self._ContentHash = params.get("ContentHash")
|
|
56865
|
+
self._Status = params.get("Status")
|
|
56866
|
+
self._Message = params.get("Message")
|
|
56867
|
+
memeber_set = set(params.keys())
|
|
56868
|
+
for name, value in vars(self).items():
|
|
56869
|
+
property_name = name[1:]
|
|
56870
|
+
if property_name in memeber_set:
|
|
56871
|
+
memeber_set.remove(property_name)
|
|
56872
|
+
if len(memeber_set) > 0:
|
|
56873
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56874
|
+
|
|
56875
|
+
|
|
56876
|
+
|
|
56877
|
+
class SpartaProtectionPort(AbstractModel):
|
|
56878
|
+
r"""waf斯巴达-编辑防护域名中的端口结构
|
|
56879
|
+
|
|
56880
|
+
"""
|
|
56881
|
+
|
|
56882
|
+
def __init__(self):
|
|
56883
|
+
r"""
|
|
56884
|
+
:param _NginxServerId: 分配的服务器id。首次接入的域名和端口该参数填0,已接入的域名和端口分配的id可以通过DescribeDomainDetailsSaas或DescribeDomains接口获取。
|
|
56885
|
+
:type NginxServerId: int
|
|
56886
|
+
:param _Port: 端口
|
|
56887
|
+
:type Port: str
|
|
56888
|
+
:param _Protocol: 协议
|
|
56889
|
+
:type Protocol: str
|
|
56890
|
+
:param _UpstreamPort: 后端端口
|
|
56891
|
+
:type UpstreamPort: str
|
|
56892
|
+
:param _UpstreamProtocol: 后端协议
|
|
56893
|
+
:type UpstreamProtocol: str
|
|
56894
|
+
"""
|
|
56895
|
+
self._NginxServerId = None
|
|
56896
|
+
self._Port = None
|
|
56897
|
+
self._Protocol = None
|
|
56898
|
+
self._UpstreamPort = None
|
|
56899
|
+
self._UpstreamProtocol = None
|
|
56900
|
+
|
|
56901
|
+
@property
|
|
56902
|
+
def NginxServerId(self):
|
|
56903
|
+
r"""分配的服务器id。首次接入的域名和端口该参数填0,已接入的域名和端口分配的id可以通过DescribeDomainDetailsSaas或DescribeDomains接口获取。
|
|
56904
|
+
:rtype: int
|
|
56905
|
+
"""
|
|
56906
|
+
return self._NginxServerId
|
|
56907
|
+
|
|
56908
|
+
@NginxServerId.setter
|
|
56909
|
+
def NginxServerId(self, NginxServerId):
|
|
56910
|
+
self._NginxServerId = NginxServerId
|
|
56911
|
+
|
|
56912
|
+
@property
|
|
56913
|
+
def Port(self):
|
|
56914
|
+
r"""端口
|
|
56915
|
+
:rtype: str
|
|
56916
|
+
"""
|
|
56917
|
+
return self._Port
|
|
56918
|
+
|
|
56919
|
+
@Port.setter
|
|
56920
|
+
def Port(self, Port):
|
|
56921
|
+
self._Port = Port
|
|
56922
|
+
|
|
56923
|
+
@property
|
|
56924
|
+
def Protocol(self):
|
|
56925
|
+
r"""协议
|
|
56926
|
+
:rtype: str
|
|
56927
|
+
"""
|
|
56928
|
+
return self._Protocol
|
|
56929
|
+
|
|
56930
|
+
@Protocol.setter
|
|
56931
|
+
def Protocol(self, Protocol):
|
|
56932
|
+
self._Protocol = Protocol
|
|
56933
|
+
|
|
56934
|
+
@property
|
|
56935
|
+
def UpstreamPort(self):
|
|
56936
|
+
r"""后端端口
|
|
56937
|
+
:rtype: str
|
|
56938
|
+
"""
|
|
56939
|
+
return self._UpstreamPort
|
|
56940
|
+
|
|
56941
|
+
@UpstreamPort.setter
|
|
56942
|
+
def UpstreamPort(self, UpstreamPort):
|
|
56943
|
+
self._UpstreamPort = UpstreamPort
|
|
56944
|
+
|
|
56945
|
+
@property
|
|
56946
|
+
def UpstreamProtocol(self):
|
|
56947
|
+
r"""后端协议
|
|
56948
|
+
:rtype: str
|
|
56949
|
+
"""
|
|
56950
|
+
return self._UpstreamProtocol
|
|
56951
|
+
|
|
56952
|
+
@UpstreamProtocol.setter
|
|
56953
|
+
def UpstreamProtocol(self, UpstreamProtocol):
|
|
56954
|
+
self._UpstreamProtocol = UpstreamProtocol
|
|
56955
|
+
|
|
56956
|
+
|
|
56957
|
+
def _deserialize(self, params):
|
|
56958
|
+
self._NginxServerId = params.get("NginxServerId")
|
|
56959
|
+
self._Port = params.get("Port")
|
|
56960
|
+
self._Protocol = params.get("Protocol")
|
|
56961
|
+
self._UpstreamPort = params.get("UpstreamPort")
|
|
56962
|
+
self._UpstreamProtocol = params.get("UpstreamProtocol")
|
|
56963
|
+
memeber_set = set(params.keys())
|
|
56964
|
+
for name, value in vars(self).items():
|
|
56965
|
+
property_name = name[1:]
|
|
56966
|
+
if property_name in memeber_set:
|
|
56967
|
+
memeber_set.remove(property_name)
|
|
56968
|
+
if len(memeber_set) > 0:
|
|
56969
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
56970
|
+
|
|
56971
|
+
|
|
56972
|
+
|
|
56973
|
+
class Strategy(AbstractModel):
|
|
56974
|
+
r"""规则的匹配条件结构体
|
|
56975
|
+
|
|
56976
|
+
"""
|
|
56977
|
+
|
|
56978
|
+
def __init__(self):
|
|
56979
|
+
r"""
|
|
56980
|
+
:param _Field: 匹配字段
|
|
56981
|
+
|
|
56982
|
+
匹配字段不同,相应的匹配参数、逻辑符号、匹配内容有所不同具体如下所示:
|
|
56983
|
+
<table><thead><tr><th>匹配字段</th><th>匹配参数</th><th>逻辑符号</th><th>匹配内容</th></tr></thead><tbody><tr><td>IP(来源IP)</td><td>不支持参数</td><td>ipmatch(匹配)<br/>ipnmatch(不匹配)</td><td>多个IP以英文逗号隔开,最多20个</td></tr><tr><td>IPV6(来源IPv6)</td><td>不支持参数</td><td>ipmatch(匹配)<br/>ipnmatch(不匹配)</td><td>支持单个IPV6地址</td></tr><tr><td>Referer(Referer)</td><td>不支持参数</td><td>empty(内容为空)<br/>null(不存在)<br/>eq(等于)<br/>neq(不等于)<br/>contains(包含)<br/>ncontains(不包含)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)<br/>rematch(正则匹配)</td><td>请输入内容,512个字符以内</td></tr><tr><td>URL(请求路径)</td><td>不支持参数</td><td>eq(等于)<br/>neq(不等于)<br/>contains(包含)<br/>ncontains(不包含)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)<br/>rematch(正则匹配)<br/></td><td>请以/开头,512个字符以内</td></tr><tr><td>UserAgent(UserAgent)</td><td>不支持参数</td><td>同匹配字段<font color="Red">Referer</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>HTTP_METHOD(HTTP请求方法)</td><td>不支持参数</td><td>eq(等于)<br/>neq(不等于)</td><td>请输入方法名称,建议大写</td></tr><tr><td>QUERY_STRING(请求字符串)</td><td>不支持参数</td><td>同匹配字段<font color="Red">请求路径</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>GET(GET参数值)</td><td>支持参数录入</td><td>contains(包含)<br/>ncontains(不包含)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)</td><td>请输入内容,512个字符以内</td></tr><tr><td>GET_PARAMS_NAMES(GET参数名)</td><td>不支持参数</td><td>exsit(存在参数)<br/>nexsit(不存在参数)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)</td><td>请输入内容,512个字符以内</td></tr><tr><td>POST(POST参数值)</td><td>支持参数录入</td><td>同匹配字段<font color="Red">GET参数值</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>GET_POST_NAMES(POST参数名)</td><td>不支持参数</td><td>同匹配字段<font color="Red">GET参数名</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>POST_BODY(完整BODY)</td><td>不支持参数</td><td>同匹配字段<font color="Red">请求路径</font>逻辑符号</td><td>请输入BODY内容,512个字符以内</td></tr><tr><td>COOKIE(Cookie)</td><td>不支持参数</td><td>empty(内容为空)<br/>null(不存在)<br/>rematch(正则匹配)</td><td><font color="Red">暂不支持</font></td></tr><tr><td>GET_COOKIES_NAMES(Cookie参数名)</td><td>不支持参数</td><td>同匹配字段<font color="Red">GET参数名</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>ARGS_COOKIE(Cookie参数值)</td><td>支持参数录入</td><td>同匹配字段<font color="Red">GET参数值</font>逻辑符号</td><td>请输入内容,512个字符以内</td></tr><tr><td>GET_HEADERS_NAMES(Header参数名)</td><td>不支持参数</td><td>exsit(存在参数)<br/>nexsit(不存在参数)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)<br/>rematch(正则匹配)</td><td>请输入内容,建议小写,512个字符以内</td></tr><tr><td>ARGS_HEADER(Header参数值)</td><td>支持参数录入</td><td>contains(包含)<br/>ncontains(不包含)<br/>len_eq(长度等于)<br/>len_gt(长度大于)<br/>len_lt(长度小于)<br/>strprefix(前缀匹配)<br/>strsuffix(后缀匹配)<br/>rematch(正则匹配)</td><td>请输入内容,512个字符以内</td></tr><tr><td>CONTENT_LENGTH(Content-length)</td><td>支持参数录入</td><td>numgt(数值大于)<br/>numlt(数值小于)<br/>numeq(数值等于)<br/></td><td>请输入0-9999999999999之间的整数</td></tr><tr><td>IP_GEO(来源IP归属地)</td><td>支持参数录入</td><td>geo_in(属于)<br/>geo_not_in(不属于)<br/></td><td>请输入内容,10240字符以内,格式为序列化的JSON,格式为:[{"Country":"中国","Region":"广东","City":"深圳"}]</td></tr><tr><td>CAPTCHA_RISK(验证码风险)</td><td>不支持参数</td><td>eq(等于)<br/>neq(不等于)<br/>belong(属于)<br/>not_belong(不属于)<br/>null(不存在)<br/>exist(存在)</td><td>请输入风险等级值,支持数值范围0-255</td></tr><tr><td>CAPTCHA_DEVICE_RISK(验证码设备风险)</td><td>不支持参数</td><td>eq(等于)<br/>neq(不等于)<br/>belong(属于)<br/>not_belong(不属于)<br/>null(不存在)<br/>exist(存在)</td><td>请输入设备风险代码,支持取值:101、201、301、401、501、601、701</td></tr><tr><td>CAPTCHAR_SCORE(验证码风险评估分)</td><td>不支持参数</td><td>numeq(数值等于)<br/>numgt(数值大于)<br/>numlt(数值小于)<br/>numle(数值小于等于)<br/>numge(数值大于等于)<br/>null(不存在)<br/>exist(存在)</td><td>请输入评估分数,支持数值范围0-100</td></tr>
|
|
56984
|
+
</tbody></table>
|
|
56985
|
+
:type Field: str
|
|
56986
|
+
:param _CompareFunc: 逻辑符号
|
|
56987
|
+
|
|
56988
|
+
逻辑符号一共分为以下几种类型:
|
|
56989
|
+
empty ( 内容为空)
|
|
56990
|
+
null (不存在)
|
|
56991
|
+
eq ( 等于)
|
|
56992
|
+
neq ( 不等于)
|
|
56993
|
+
contains ( 包含)
|
|
56994
|
+
ncontains ( 不包含)
|
|
56995
|
+
strprefix ( 前缀匹配)
|
|
56996
|
+
strsuffix ( 后缀匹配)
|
|
56997
|
+
len_eq ( 长度等于)
|
|
56998
|
+
len_gt ( 长度大于)
|
|
56999
|
+
len_lt ( 长度小于)
|
|
57000
|
+
ipmatch ( 属于)
|
|
57001
|
+
ipnmatch ( 不属于)
|
|
57002
|
+
numgt ( 数值大于)
|
|
57003
|
+
numlt ( 数值小于)
|
|
57004
|
+
numeq ( 数值等于)
|
|
57005
|
+
numneq ( 数值不等于)
|
|
57006
|
+
numle ( 数值小于等于)
|
|
57007
|
+
numge ( 数值大于等于)
|
|
57008
|
+
geo_in ( IP地理属于)
|
|
57009
|
+
geo_not_in ( IP地理不属于)
|
|
57010
|
+
各匹配字段对应的逻辑符号不同,详见上述匹配字段表格
|
|
57011
|
+
:type CompareFunc: str
|
|
57012
|
+
:param _Content: 匹配内容
|
|
57013
|
+
|
|
57014
|
+
目前 当匹配字段为COOKIE(Cookie)时,不需要输入 匹配内容其他都需要
|
|
57015
|
+
|
|
57016
|
+
:type Content: str
|
|
57017
|
+
:param _Arg: 匹配参数
|
|
57018
|
+
|
|
57019
|
+
配置参数一共分2种类型 不支持参数与支持参数
|
|
57020
|
+
当匹配字段为以下4个时,匹配参数才能录入,否则不支持该参数
|
|
57021
|
+
GET(GET参数值)
|
|
57022
|
+
POST(POST参数值)
|
|
57023
|
+
ARGS_COOKIE(Cookie参数值)
|
|
57024
|
+
ARGS_HEADER(Header参数值)
|
|
57025
|
+
|
|
57026
|
+
:type Arg: str
|
|
57027
|
+
:param _CaseNotSensitive: 0:大小写敏感
|
|
57028
|
+
1:大小写不敏感
|
|
57029
|
+
:type CaseNotSensitive: int
|
|
57030
|
+
"""
|
|
57031
|
+
self._Field = None
|
|
56370
57032
|
self._CompareFunc = None
|
|
56371
57033
|
self._Content = None
|
|
56372
57034
|
self._Arg = None
|
|
@@ -58573,6 +59235,117 @@ class UpdateRateLimitV2Response(AbstractModel):
|
|
|
58573
59235
|
self._RequestId = params.get("RequestId")
|
|
58574
59236
|
|
|
58575
59237
|
|
|
59238
|
+
class UploadSkillSecScanRequest(AbstractModel):
|
|
59239
|
+
r"""UploadSkillSecScan请求参数结构体
|
|
59240
|
+
|
|
59241
|
+
"""
|
|
59242
|
+
|
|
59243
|
+
def __init__(self):
|
|
59244
|
+
r"""
|
|
59245
|
+
:param _ServiceId: <p>服务ID</p>
|
|
59246
|
+
:type ServiceId: str
|
|
59247
|
+
:param _FileData: <p>zip压缩包base64编码后的数据</p>
|
|
59248
|
+
:type FileData: str
|
|
59249
|
+
:param _FileName: <p>skills文件压缩之后的文件名,.zip结尾</p>
|
|
59250
|
+
:type FileName: str
|
|
59251
|
+
"""
|
|
59252
|
+
self._ServiceId = None
|
|
59253
|
+
self._FileData = None
|
|
59254
|
+
self._FileName = None
|
|
59255
|
+
|
|
59256
|
+
@property
|
|
59257
|
+
def ServiceId(self):
|
|
59258
|
+
r"""<p>服务ID</p>
|
|
59259
|
+
:rtype: str
|
|
59260
|
+
"""
|
|
59261
|
+
return self._ServiceId
|
|
59262
|
+
|
|
59263
|
+
@ServiceId.setter
|
|
59264
|
+
def ServiceId(self, ServiceId):
|
|
59265
|
+
self._ServiceId = ServiceId
|
|
59266
|
+
|
|
59267
|
+
@property
|
|
59268
|
+
def FileData(self):
|
|
59269
|
+
r"""<p>zip压缩包base64编码后的数据</p>
|
|
59270
|
+
:rtype: str
|
|
59271
|
+
"""
|
|
59272
|
+
return self._FileData
|
|
59273
|
+
|
|
59274
|
+
@FileData.setter
|
|
59275
|
+
def FileData(self, FileData):
|
|
59276
|
+
self._FileData = FileData
|
|
59277
|
+
|
|
59278
|
+
@property
|
|
59279
|
+
def FileName(self):
|
|
59280
|
+
r"""<p>skills文件压缩之后的文件名,.zip结尾</p>
|
|
59281
|
+
:rtype: str
|
|
59282
|
+
"""
|
|
59283
|
+
return self._FileName
|
|
59284
|
+
|
|
59285
|
+
@FileName.setter
|
|
59286
|
+
def FileName(self, FileName):
|
|
59287
|
+
self._FileName = FileName
|
|
59288
|
+
|
|
59289
|
+
|
|
59290
|
+
def _deserialize(self, params):
|
|
59291
|
+
self._ServiceId = params.get("ServiceId")
|
|
59292
|
+
self._FileData = params.get("FileData")
|
|
59293
|
+
self._FileName = params.get("FileName")
|
|
59294
|
+
memeber_set = set(params.keys())
|
|
59295
|
+
for name, value in vars(self).items():
|
|
59296
|
+
property_name = name[1:]
|
|
59297
|
+
if property_name in memeber_set:
|
|
59298
|
+
memeber_set.remove(property_name)
|
|
59299
|
+
if len(memeber_set) > 0:
|
|
59300
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
59301
|
+
|
|
59302
|
+
|
|
59303
|
+
|
|
59304
|
+
class UploadSkillSecScanResponse(AbstractModel):
|
|
59305
|
+
r"""UploadSkillSecScan返回参数结构体
|
|
59306
|
+
|
|
59307
|
+
"""
|
|
59308
|
+
|
|
59309
|
+
def __init__(self):
|
|
59310
|
+
r"""
|
|
59311
|
+
:param _Data: <p>上传结果</p>
|
|
59312
|
+
:type Data: :class:`tencentcloud.waf.v20180125.models.SkillScanUploadData`
|
|
59313
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
59314
|
+
:type RequestId: str
|
|
59315
|
+
"""
|
|
59316
|
+
self._Data = None
|
|
59317
|
+
self._RequestId = None
|
|
59318
|
+
|
|
59319
|
+
@property
|
|
59320
|
+
def Data(self):
|
|
59321
|
+
r"""<p>上传结果</p>
|
|
59322
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.SkillScanUploadData`
|
|
59323
|
+
"""
|
|
59324
|
+
return self._Data
|
|
59325
|
+
|
|
59326
|
+
@Data.setter
|
|
59327
|
+
def Data(self, Data):
|
|
59328
|
+
self._Data = Data
|
|
59329
|
+
|
|
59330
|
+
@property
|
|
59331
|
+
def RequestId(self):
|
|
59332
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
59333
|
+
:rtype: str
|
|
59334
|
+
"""
|
|
59335
|
+
return self._RequestId
|
|
59336
|
+
|
|
59337
|
+
@RequestId.setter
|
|
59338
|
+
def RequestId(self, RequestId):
|
|
59339
|
+
self._RequestId = RequestId
|
|
59340
|
+
|
|
59341
|
+
|
|
59342
|
+
def _deserialize(self, params):
|
|
59343
|
+
if params.get("Data") is not None:
|
|
59344
|
+
self._Data = SkillScanUploadData()
|
|
59345
|
+
self._Data._deserialize(params.get("Data"))
|
|
59346
|
+
self._RequestId = params.get("RequestId")
|
|
59347
|
+
|
|
59348
|
+
|
|
58576
59349
|
class UpsertCCAutoStatusRequest(AbstractModel):
|
|
58577
59350
|
r"""UpsertCCAutoStatus请求参数结构体
|
|
58578
59351
|
|
|
@@ -2694,6 +2694,29 @@ class WafClient(AbstractClient):
|
|
|
2694
2694
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
2695
2695
|
|
|
2696
2696
|
|
|
2697
|
+
def DescribeSkillSecScanResult(self, request):
|
|
2698
|
+
r"""根据文件Hash查询Skill安全检测结果
|
|
2699
|
+
|
|
2700
|
+
:param request: Request instance for DescribeSkillSecScanResult.
|
|
2701
|
+
:type request: :class:`tencentcloud.waf.v20180125.models.DescribeSkillSecScanResultRequest`
|
|
2702
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.DescribeSkillSecScanResultResponse`
|
|
2703
|
+
|
|
2704
|
+
"""
|
|
2705
|
+
try:
|
|
2706
|
+
params = request._serialize()
|
|
2707
|
+
headers = request.headers
|
|
2708
|
+
body = self.call("DescribeSkillSecScanResult", params, headers=headers)
|
|
2709
|
+
response = json.loads(body)
|
|
2710
|
+
model = models.DescribeSkillSecScanResultResponse()
|
|
2711
|
+
model._deserialize(response["Response"])
|
|
2712
|
+
return model
|
|
2713
|
+
except Exception as e:
|
|
2714
|
+
if isinstance(e, TencentCloudSDKException):
|
|
2715
|
+
raise
|
|
2716
|
+
else:
|
|
2717
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
2718
|
+
|
|
2719
|
+
|
|
2697
2720
|
def DescribeSpartaProtectionInfo(self, request):
|
|
2698
2721
|
r"""waf斯巴达-获取防护域名信息
|
|
2699
2722
|
|
|
@@ -4972,6 +4995,29 @@ class WafClient(AbstractClient):
|
|
|
4972
4995
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
4973
4996
|
|
|
4974
4997
|
|
|
4998
|
+
def UploadSkillSecScan(self, request):
|
|
4999
|
+
r"""上传Skill ZIP文件,触发异步安全检测
|
|
5000
|
+
|
|
5001
|
+
:param request: Request instance for UploadSkillSecScan.
|
|
5002
|
+
:type request: :class:`tencentcloud.waf.v20180125.models.UploadSkillSecScanRequest`
|
|
5003
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.UploadSkillSecScanResponse`
|
|
5004
|
+
|
|
5005
|
+
"""
|
|
5006
|
+
try:
|
|
5007
|
+
params = request._serialize()
|
|
5008
|
+
headers = request.headers
|
|
5009
|
+
body = self.call("UploadSkillSecScan", params, headers=headers)
|
|
5010
|
+
response = json.loads(body)
|
|
5011
|
+
model = models.UploadSkillSecScanResponse()
|
|
5012
|
+
model._deserialize(response["Response"])
|
|
5013
|
+
return model
|
|
5014
|
+
except Exception as e:
|
|
5015
|
+
if isinstance(e, TencentCloudSDKException):
|
|
5016
|
+
raise
|
|
5017
|
+
else:
|
|
5018
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
5019
|
+
|
|
5020
|
+
|
|
4975
5021
|
def UpsertCCAutoStatus(self, request):
|
|
4976
5022
|
r"""编辑SAAS型接入的紧急CC防护状态
|
|
4977
5023
|
|
|
@@ -2113,6 +2113,24 @@ class WafClient(AbstractClient):
|
|
|
2113
2113
|
|
|
2114
2114
|
return await self.call_and_deserialize(**kwargs)
|
|
2115
2115
|
|
|
2116
|
+
async def DescribeSkillSecScanResult(
|
|
2117
|
+
self,
|
|
2118
|
+
request: models.DescribeSkillSecScanResultRequest,
|
|
2119
|
+
opts: Dict = None,
|
|
2120
|
+
) -> models.DescribeSkillSecScanResultResponse:
|
|
2121
|
+
"""
|
|
2122
|
+
根据文件Hash查询Skill安全检测结果
|
|
2123
|
+
"""
|
|
2124
|
+
|
|
2125
|
+
kwargs = {}
|
|
2126
|
+
kwargs["action"] = "DescribeSkillSecScanResult"
|
|
2127
|
+
kwargs["params"] = request._serialize()
|
|
2128
|
+
kwargs["resp_cls"] = models.DescribeSkillSecScanResultResponse
|
|
2129
|
+
kwargs["headers"] = request.headers
|
|
2130
|
+
kwargs["opts"] = opts or {}
|
|
2131
|
+
|
|
2132
|
+
return await self.call_and_deserialize(**kwargs)
|
|
2133
|
+
|
|
2116
2134
|
async def DescribeSpartaProtectionInfo(
|
|
2117
2135
|
self,
|
|
2118
2136
|
request: models.DescribeSpartaProtectionInfoRequest,
|
|
@@ -3901,6 +3919,24 @@ class WafClient(AbstractClient):
|
|
|
3901
3919
|
|
|
3902
3920
|
return await self.call_and_deserialize(**kwargs)
|
|
3903
3921
|
|
|
3922
|
+
async def UploadSkillSecScan(
|
|
3923
|
+
self,
|
|
3924
|
+
request: models.UploadSkillSecScanRequest,
|
|
3925
|
+
opts: Dict = None,
|
|
3926
|
+
) -> models.UploadSkillSecScanResponse:
|
|
3927
|
+
"""
|
|
3928
|
+
上传Skill ZIP文件,触发异步安全检测
|
|
3929
|
+
"""
|
|
3930
|
+
|
|
3931
|
+
kwargs = {}
|
|
3932
|
+
kwargs["action"] = "UploadSkillSecScan"
|
|
3933
|
+
kwargs["params"] = request._serialize()
|
|
3934
|
+
kwargs["resp_cls"] = models.UploadSkillSecScanResponse
|
|
3935
|
+
kwargs["headers"] = request.headers
|
|
3936
|
+
kwargs["opts"] = opts or {}
|
|
3937
|
+
|
|
3938
|
+
return await self.call_and_deserialize(**kwargs)
|
|
3939
|
+
|
|
3904
3940
|
async def UpsertCCAutoStatus(
|
|
3905
3941
|
self,
|
|
3906
3942
|
request: models.UpsertCCAutoStatusRequest,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-waf
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.102
|
|
4
4
|
Summary: Tencent Cloud Waf SDK for Python
|
|
5
5
|
Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
|
|
6
6
|
Author: Tencent Cloud
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.6
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.
|
|
18
|
+
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.102
|
|
19
19
|
|
|
20
20
|
============================
|
|
21
21
|
Tencent Cloud SDK for Python
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tencentcloud-sdk-python-common<4.0.0,>=3.1.102
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tencentcloud-sdk-python-common<4.0.0,>=3.1.99
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|