tencentcloud-sdk-python-ess 3.1.155__tar.gz → 3.1.166__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_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/PKG-INFO +2 -2
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/setup.py +1 -1
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/__init__.py +1 -1
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/v20201111/ess_client.py +145 -2
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/v20201111/ess_client_async.py +140 -2
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/v20201111/models.py +219 -252
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud_sdk_python_ess.egg-info/PKG-INFO +2 -2
- tencentcloud_sdk_python_ess-3.1.166/tencentcloud_sdk_python_ess.egg-info/requires.txt +1 -0
- tencentcloud_sdk_python_ess-3.1.155/tencentcloud_sdk_python_ess.egg-info/requires.txt +0 -1
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/README.rst +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/setup.cfg +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/__init__.py +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/v20201111/__init__.py +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud/ess/v20201111/errorcodes.py +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud_sdk_python_ess.egg-info/SOURCES.txt +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud_sdk_python_ess.egg-info/dependency_links.txt +0 -0
- {tencentcloud_sdk_python_ess-3.1.155 → tencentcloud_sdk_python_ess-3.1.166}/tencentcloud_sdk_python_ess.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-ess
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.166
|
|
4
4
|
Summary: Tencent Cloud Ess 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.166
|
|
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-ess',
|
|
11
|
-
install_requires=["tencentcloud-sdk-python-common>=3.1.
|
|
11
|
+
install_requires=["tencentcloud-sdk-python-common>=3.1.166,<4.0.0"],
|
|
12
12
|
|
|
13
13
|
version=tencentcloud.__version__,
|
|
14
14
|
description='Tencent Cloud Ess SDK for Python',
|
|
@@ -534,8 +534,8 @@ class EssClient(AbstractClient):
|
|
|
534
534
|
1. 该接口可生成签署人的批量、合同组签署/查看链接 。
|
|
535
535
|
2. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建批量签署链接 。
|
|
536
536
|
3. 该接口返回的签署链接适用于APP集成的场景,支持APP打开或浏览器直接打开,**不支持微信小程序嵌入**。
|
|
537
|
-
跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
|
|
538
537
|
4. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
|
|
538
|
+
5. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
|
|
539
539
|
|
|
540
540
|
:param request: Request instance for CreateBatchQuickSignUrl.
|
|
541
541
|
:type request: :class:`tencentcloud.ess.v20201111.models.CreateBatchQuickSignUrlRequest`
|
|
@@ -1010,6 +1010,9 @@ class EssClient(AbstractClient):
|
|
|
1010
1010
|
1. `支持的文件类型有doc、docx、xls、xlsx、html、jpg、jpeg、png、bmp、txt`
|
|
1011
1011
|
2. `可通过发起合同时设置预览来检查转换文件是否达到预期效果`
|
|
1012
1012
|
|
|
1013
|
+
整体流程如下图
|
|
1014
|
+

|
|
1015
|
+
|
|
1013
1016
|
:param request: Request instance for CreateFileConvertTask.
|
|
1014
1017
|
:type request: :class:`tencentcloud.ess.v20201111.models.CreateFileConvertTaskRequest`
|
|
1015
1018
|
:rtype: :class:`tencentcloud.ess.v20201111.models.CreateFileConvertTaskResponse`
|
|
@@ -1624,8 +1627,8 @@ class EssClient(AbstractClient):
|
|
|
1624
1627
|
**注意**
|
|
1625
1628
|
1. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建签署链接。
|
|
1626
1629
|
2. 该接口返回的签署链接适用于APP集成的场景,支持APP、支付宝打开或浏览器直接打开,**不支持微信小程序嵌入**。配置方式请参考:<a href="https://qian.tencent.com/developers/company/openqianh5/">跳转电子签H5</a>。
|
|
1627
|
-
如需跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
|
|
1628
1630
|
3. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
|
|
1631
|
+
4. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
|
|
1629
1632
|
|
|
1630
1633
|
:param request: Request instance for CreateFlowSignUrl.
|
|
1631
1634
|
:type request: :class:`tencentcloud.ess.v20201111.models.CreateFlowSignUrlRequest`
|
|
@@ -2393,6 +2396,143 @@ class EssClient(AbstractClient):
|
|
|
2393
2396
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
2394
2397
|
|
|
2395
2398
|
|
|
2399
|
+
def CreateRequestWithEncryption(self, request):
|
|
2400
|
+
r"""该接口支持对请求内容进行加密传输。调用方需使用约定的 AES-CBC 或 SM4-CBC 算法对请求内容进行加密,并使用 HMAC-SHA256 或 HMAC-SM3 算法对 IV 和加密后的数据进行完整性校验,防止请求内容被篡改。
|
|
2401
|
+
|
|
2402
|
+

|
|
2403
|
+
|
|
2404
|
+
**请求端加密流程**
|
|
2405
|
+
1. 每次请求使用密码学安全的随机源生成 16 字节 的 IV。每次请求必须重新生成,严禁复用。
|
|
2406
|
+
2. 使用约定的 AES-CBC 或 SM4-CBC 算法对原始请求体进行加密,使用 PKCS#7 Padding。
|
|
2407
|
+
3. 将加密后的密文原始字节进行标准 Base64 编码,作为 EncryptedData 参数。
|
|
2408
|
+
4. 将 IV 原始字节进行标准 Base64 编码,作为 IV 参数。
|
|
2409
|
+
5. 对 IV 原始字节和密文原始字节直接拼接(不添加分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)
|
|
2410
|
+
6. 将 HMAC 的结果进行 标准 Base64 编码,作为 EncryptionSignature 参数。
|
|
2411
|
+
|
|
2412
|
+
**响应端解密流程**
|
|
2413
|
+
1. 先判断本接口自身是否返回外层错误,此时错误为明文(标准腾讯云错误体),有则直接失败处理。
|
|
2414
|
+
2. 分别对 IV、EncryptedData、EncryptionSignature 做标准 Base64 解码,得到原始字节。
|
|
2415
|
+
3. 将 IV 与密文原始字节直接拼接(无分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)。
|
|
2416
|
+
4. 与响应中 EncryptionSignature 解码后的字节做恒定时间比较,不一致立即失败,不得继续解密。
|
|
2417
|
+
5. 使用约定的 AES-CBC 或 SM4-CBC,以 IV 和密钥解密 EncryptedData,去除 PKCS#7 Padding 得到明文。
|
|
2418
|
+
6. 先用腾讯云标准错误体反序列化明文,判断被加密业务接口是否返回 Error。
|
|
2419
|
+
7. 无业务错误时,再用目标业务接口的响应结构体反序列化明文,取出实际业务参数。
|
|
2420
|
+
|
|
2421
|
+
**响应端错误处理**
|
|
2422
|
+
1. 外层错误(本接口本身调用失败):返回标准腾讯云错误 JSON(含 Error.Code / Error.Message),无 EncryptedData,不需要解密即可处理。
|
|
2423
|
+
2. 内层错误(业务接口执行失败):外层成功,但解密后的明文里包含 Error.Code / Error.Message,按目标业务接口的错误规范处理。
|
|
2424
|
+
|
|
2425
|
+
**处理过程示例**
|
|
2426
|
+
```
|
|
2427
|
+
# ========== 前置约定 ==========
|
|
2428
|
+
AESKey : 加密 密钥(AES 32 字节,SM4 16 字节)
|
|
2429
|
+
HMACKey : HMAC 密钥(与加密密钥需要不同)
|
|
2430
|
+
ALGO : AES-CBC 或 SM4-CBC,双方约定
|
|
2431
|
+
HMAC : ALGO == AES-CBC ? HMAC-SHA256 : HMAC-SM3
|
|
2432
|
+
|
|
2433
|
+
# ========== 请求端:加密并调用 ==========
|
|
2434
|
+
function CallWithEncryption(bizAction, bizRequestObj):
|
|
2435
|
+
# 1. 序列化业务请求
|
|
2436
|
+
plaintext = JSON.stringify(bizRequestObj)
|
|
2437
|
+
# 2. 生成 16 字节随机 IV(每次新生成,禁止复用)
|
|
2438
|
+
iv = SecureRandom(16)
|
|
2439
|
+
# 3. 对称加密(PKCS#7 Padding)
|
|
2440
|
+
ciphertext = SymmetricEncrypt(ALGO, AESKey, iv, plaintext)
|
|
2441
|
+
# 4. 计算完整性签名:HMAC(Key, IV || Ciphertext)
|
|
2442
|
+
signature = HMAC(HMACKey, concat(iv, ciphertext))
|
|
2443
|
+
# 5. 组装外层请求参数(三段均为标准 Base64)
|
|
2444
|
+
encReq = {
|
|
2445
|
+
RequestAction: bizAction,
|
|
2446
|
+
IV: Base64(iv),
|
|
2447
|
+
EncryptedData: Base64(ciphertext),
|
|
2448
|
+
EncryptionSignature: Base64(signature),
|
|
2449
|
+
}
|
|
2450
|
+
# 6. 调用 CreateRequestWithEncryption
|
|
2451
|
+
# TC3-HMAC-SHA256 鉴权由官方 SDK 自动完成
|
|
2452
|
+
encResp = CloudAPI.CreateRequestWithEncryption(encReq)
|
|
2453
|
+
# 7. 外层错误:明文,直接抛出
|
|
2454
|
+
if encResp.Error != nil:
|
|
2455
|
+
raise OuterError(encResp.Error)
|
|
2456
|
+
# 8. 解密并返回业务响应
|
|
2457
|
+
return DecryptResponse(encResp.Response)
|
|
2458
|
+
|
|
2459
|
+
# ========== 响应端:校验并解密 ==========
|
|
2460
|
+
function DecryptResponse(resp):
|
|
2461
|
+
# 1. Base64 解码
|
|
2462
|
+
ivBytes = Base64Decode(resp.IV)
|
|
2463
|
+
ctBytes = Base64Decode(resp.EncryptedData)
|
|
2464
|
+
sigBytes = Base64Decode(resp.EncryptionSignature)
|
|
2465
|
+
# 2. 重新计算 HMAC
|
|
2466
|
+
expected = HMAC(HMACKey, concat(ivBytes, ctBytes))
|
|
2467
|
+
# 3. 恒定时间比较,失败立即终止(不得继续解密)
|
|
2468
|
+
if not ConstantTimeEqual(expected, sigBytes):
|
|
2469
|
+
raise SignatureMismatch
|
|
2470
|
+
# 4. 对称解密,去除 PKCS#7 Padding
|
|
2471
|
+
plaintext = SymmetricDecrypt(ALGO, AESKey, ivBytes, ctBytes)
|
|
2472
|
+
# 5. 先按腾讯云错误体解析,判断业务是否失败
|
|
2473
|
+
bizErr = TryParseTencentCloudError(plaintext)
|
|
2474
|
+
if bizErr != nil:
|
|
2475
|
+
raise BusinessError(bizErr)
|
|
2476
|
+
# 6. 按目标业务接口的响应结构反序列化
|
|
2477
|
+
return JSON.parse(plaintext, BizResponseSchema)
|
|
2478
|
+
```
|
|
2479
|
+
|
|
2480
|
+
**AES-CBC 示例**
|
|
2481
|
+
以下示例参数及结果可用于验证 AES-CBC 加密和 HMAC-SHA256 签名算法的实现是否正确。
|
|
2482
|
+
|
|
2483
|
+
加密密钥:AES-CBC-Key-1234
|
|
2484
|
+
签名密钥:AES-HMAC-Key-123
|
|
2485
|
+
IV:1234567890abcdef
|
|
2486
|
+
请求内容:{"Request": "This is a test."}
|
|
2487
|
+
|
|
2488
|
+
最终请求参数:
|
|
2489
|
+
```
|
|
2490
|
+
{
|
|
2491
|
+
"RequestAction": "DescribeFlowComponents",
|
|
2492
|
+
"IV": "MTIzNDU2Nzg5MGFiY2RlZg==",
|
|
2493
|
+
"EncryptedData": "Iqp2W1jislwMNmE7bH9dKZZiMQsfkAPyvAAqDFRnWLw=",
|
|
2494
|
+
"EncryptionSignature": "4TT3PUCZgZT7YmEPtXDm5PDcM6xT7FoYHfMW8xunB5I="
|
|
2495
|
+
}
|
|
2496
|
+
```
|
|
2497
|
+
|
|
2498
|
+
**SM4-CBC 示例**
|
|
2499
|
+
以下示例参数及结果可用于验证 SM4-CBC 加密和 HMAC-SM4 签名算法的实现是否正确。
|
|
2500
|
+
|
|
2501
|
+
加密密钥:SM4-CBC-Key-1234
|
|
2502
|
+
签名密钥:SM4-HMAC-Key-123
|
|
2503
|
+
IV:fedcba0987654321
|
|
2504
|
+
请求内容:{"Request": "This is a test."}
|
|
2505
|
+
|
|
2506
|
+
最终请求参数:
|
|
2507
|
+
```
|
|
2508
|
+
{
|
|
2509
|
+
"RequestAction": "DescribeFlowComponents",
|
|
2510
|
+
"IV": "ZmVkY2JhMDk4NzY1NDMyMQ==",
|
|
2511
|
+
"EncryptedData": "GwUovQhNUPaUnVM/UDXMtPOYTpTSi2B1oyZDFbyyvns=",
|
|
2512
|
+
"EncryptionSignature": "nHB/v/AvOaDCQ66esFNnp12lHKcGkwaLGid0Warl/KE="
|
|
2513
|
+
}
|
|
2514
|
+
```
|
|
2515
|
+
|
|
2516
|
+
:param request: Request instance for CreateRequestWithEncryption.
|
|
2517
|
+
:type request: :class:`tencentcloud.ess.v20201111.models.CreateRequestWithEncryptionRequest`
|
|
2518
|
+
:rtype: :class:`tencentcloud.ess.v20201111.models.CreateRequestWithEncryptionResponse`
|
|
2519
|
+
|
|
2520
|
+
"""
|
|
2521
|
+
try:
|
|
2522
|
+
params = request._serialize()
|
|
2523
|
+
headers = request.headers
|
|
2524
|
+
body = self.call("CreateRequestWithEncryption", params, headers=headers)
|
|
2525
|
+
response = json.loads(body)
|
|
2526
|
+
model = models.CreateRequestWithEncryptionResponse()
|
|
2527
|
+
model._deserialize(response["Response"])
|
|
2528
|
+
return model
|
|
2529
|
+
except Exception as e:
|
|
2530
|
+
if isinstance(e, TencentCloudSDKException):
|
|
2531
|
+
raise
|
|
2532
|
+
else:
|
|
2533
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
2534
|
+
|
|
2535
|
+
|
|
2396
2536
|
def CreateRiskIdentificationTaskFeedback(self, request):
|
|
2397
2537
|
r"""此接口(CreateRiskIdentificationTaskFeedback)用于创建合同审查任务结果反馈。
|
|
2398
2538
|
|
|
@@ -3377,6 +3517,9 @@ class EssClient(AbstractClient):
|
|
|
3377
3517
|
1. `大文件转换所需的时间可能会比较长`
|
|
3378
3518
|
2. `本接口返回的文件资源ID就是PDF资源ID,可以直接用于【用PDF文件创建签署流程】接口发起合同。`
|
|
3379
3519
|
|
|
3520
|
+
整体流程如下图
|
|
3521
|
+

|
|
3522
|
+
|
|
3380
3523
|
:param request: Request instance for DescribeFileConvertTask.
|
|
3381
3524
|
:type request: :class:`tencentcloud.ess.v20201111.models.DescribeFileConvertTaskRequest`
|
|
3382
3525
|
:rtype: :class:`tencentcloud.ess.v20201111.models.DescribeFileConvertTaskResponse`
|
|
@@ -463,8 +463,8 @@ class EssClient(AbstractClient):
|
|
|
463
463
|
1. 该接口可生成签署人的批量、合同组签署/查看链接 。
|
|
464
464
|
2. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建批量签署链接 。
|
|
465
465
|
3. 该接口返回的签署链接适用于APP集成的场景,支持APP打开或浏览器直接打开,**不支持微信小程序嵌入**。
|
|
466
|
-
跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
|
|
467
466
|
4. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
|
|
467
|
+
5. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
|
|
468
468
|
"""
|
|
469
469
|
|
|
470
470
|
kwargs = {}
|
|
@@ -863,6 +863,9 @@ class EssClient(AbstractClient):
|
|
|
863
863
|
注:
|
|
864
864
|
1. `支持的文件类型有doc、docx、xls、xlsx、html、jpg、jpeg、png、bmp、txt`
|
|
865
865
|
2. `可通过发起合同时设置预览来检查转换文件是否达到预期效果`
|
|
866
|
+
|
|
867
|
+
整体流程如下图
|
|
868
|
+

|
|
866
869
|
"""
|
|
867
870
|
|
|
868
871
|
kwargs = {}
|
|
@@ -1408,8 +1411,8 @@ class EssClient(AbstractClient):
|
|
|
1408
1411
|
**注意**
|
|
1409
1412
|
1. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建签署链接。
|
|
1410
1413
|
2. 该接口返回的签署链接适用于APP集成的场景,支持APP、支付宝打开或浏览器直接打开,**不支持微信小程序嵌入**。配置方式请参考:<a href="https://qian.tencent.com/developers/company/openqianh5/">跳转电子签H5</a>。
|
|
1411
|
-
如需跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
|
|
1412
1414
|
3. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
|
|
1415
|
+
4. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
|
|
1413
1416
|
"""
|
|
1414
1417
|
|
|
1415
1418
|
kwargs = {}
|
|
@@ -2052,6 +2055,138 @@ class EssClient(AbstractClient):
|
|
|
2052
2055
|
|
|
2053
2056
|
return await self.call_and_deserialize(**kwargs)
|
|
2054
2057
|
|
|
2058
|
+
async def CreateRequestWithEncryption(
|
|
2059
|
+
self,
|
|
2060
|
+
request: models.CreateRequestWithEncryptionRequest,
|
|
2061
|
+
opts: Dict = None,
|
|
2062
|
+
) -> models.CreateRequestWithEncryptionResponse:
|
|
2063
|
+
"""
|
|
2064
|
+
该接口支持对请求内容进行加密传输。调用方需使用约定的 AES-CBC 或 SM4-CBC 算法对请求内容进行加密,并使用 HMAC-SHA256 或 HMAC-SM3 算法对 IV 和加密后的数据进行完整性校验,防止请求内容被篡改。
|
|
2065
|
+
|
|
2066
|
+

|
|
2067
|
+
|
|
2068
|
+
**请求端加密流程**
|
|
2069
|
+
1. 每次请求使用密码学安全的随机源生成 16 字节 的 IV。每次请求必须重新生成,严禁复用。
|
|
2070
|
+
2. 使用约定的 AES-CBC 或 SM4-CBC 算法对原始请求体进行加密,使用 PKCS#7 Padding。
|
|
2071
|
+
3. 将加密后的密文原始字节进行标准 Base64 编码,作为 EncryptedData 参数。
|
|
2072
|
+
4. 将 IV 原始字节进行标准 Base64 编码,作为 IV 参数。
|
|
2073
|
+
5. 对 IV 原始字节和密文原始字节直接拼接(不添加分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)
|
|
2074
|
+
6. 将 HMAC 的结果进行 标准 Base64 编码,作为 EncryptionSignature 参数。
|
|
2075
|
+
|
|
2076
|
+
**响应端解密流程**
|
|
2077
|
+
1. 先判断本接口自身是否返回外层错误,此时错误为明文(标准腾讯云错误体),有则直接失败处理。
|
|
2078
|
+
2. 分别对 IV、EncryptedData、EncryptionSignature 做标准 Base64 解码,得到原始字节。
|
|
2079
|
+
3. 将 IV 与密文原始字节直接拼接(无分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)。
|
|
2080
|
+
4. 与响应中 EncryptionSignature 解码后的字节做恒定时间比较,不一致立即失败,不得继续解密。
|
|
2081
|
+
5. 使用约定的 AES-CBC 或 SM4-CBC,以 IV 和密钥解密 EncryptedData,去除 PKCS#7 Padding 得到明文。
|
|
2082
|
+
6. 先用腾讯云标准错误体反序列化明文,判断被加密业务接口是否返回 Error。
|
|
2083
|
+
7. 无业务错误时,再用目标业务接口的响应结构体反序列化明文,取出实际业务参数。
|
|
2084
|
+
|
|
2085
|
+
**响应端错误处理**
|
|
2086
|
+
1. 外层错误(本接口本身调用失败):返回标准腾讯云错误 JSON(含 Error.Code / Error.Message),无 EncryptedData,不需要解密即可处理。
|
|
2087
|
+
2. 内层错误(业务接口执行失败):外层成功,但解密后的明文里包含 Error.Code / Error.Message,按目标业务接口的错误规范处理。
|
|
2088
|
+
|
|
2089
|
+
**处理过程示例**
|
|
2090
|
+
```
|
|
2091
|
+
# ========== 前置约定 ==========
|
|
2092
|
+
AESKey : 加密 密钥(AES 32 字节,SM4 16 字节)
|
|
2093
|
+
HMACKey : HMAC 密钥(与加密密钥需要不同)
|
|
2094
|
+
ALGO : AES-CBC 或 SM4-CBC,双方约定
|
|
2095
|
+
HMAC : ALGO == AES-CBC ? HMAC-SHA256 : HMAC-SM3
|
|
2096
|
+
|
|
2097
|
+
# ========== 请求端:加密并调用 ==========
|
|
2098
|
+
function CallWithEncryption(bizAction, bizRequestObj):
|
|
2099
|
+
# 1. 序列化业务请求
|
|
2100
|
+
plaintext = JSON.stringify(bizRequestObj)
|
|
2101
|
+
# 2. 生成 16 字节随机 IV(每次新生成,禁止复用)
|
|
2102
|
+
iv = SecureRandom(16)
|
|
2103
|
+
# 3. 对称加密(PKCS#7 Padding)
|
|
2104
|
+
ciphertext = SymmetricEncrypt(ALGO, AESKey, iv, plaintext)
|
|
2105
|
+
# 4. 计算完整性签名:HMAC(Key, IV || Ciphertext)
|
|
2106
|
+
signature = HMAC(HMACKey, concat(iv, ciphertext))
|
|
2107
|
+
# 5. 组装外层请求参数(三段均为标准 Base64)
|
|
2108
|
+
encReq = {
|
|
2109
|
+
RequestAction: bizAction,
|
|
2110
|
+
IV: Base64(iv),
|
|
2111
|
+
EncryptedData: Base64(ciphertext),
|
|
2112
|
+
EncryptionSignature: Base64(signature),
|
|
2113
|
+
}
|
|
2114
|
+
# 6. 调用 CreateRequestWithEncryption
|
|
2115
|
+
# TC3-HMAC-SHA256 鉴权由官方 SDK 自动完成
|
|
2116
|
+
encResp = CloudAPI.CreateRequestWithEncryption(encReq)
|
|
2117
|
+
# 7. 外层错误:明文,直接抛出
|
|
2118
|
+
if encResp.Error != nil:
|
|
2119
|
+
raise OuterError(encResp.Error)
|
|
2120
|
+
# 8. 解密并返回业务响应
|
|
2121
|
+
return DecryptResponse(encResp.Response)
|
|
2122
|
+
|
|
2123
|
+
# ========== 响应端:校验并解密 ==========
|
|
2124
|
+
function DecryptResponse(resp):
|
|
2125
|
+
# 1. Base64 解码
|
|
2126
|
+
ivBytes = Base64Decode(resp.IV)
|
|
2127
|
+
ctBytes = Base64Decode(resp.EncryptedData)
|
|
2128
|
+
sigBytes = Base64Decode(resp.EncryptionSignature)
|
|
2129
|
+
# 2. 重新计算 HMAC
|
|
2130
|
+
expected = HMAC(HMACKey, concat(ivBytes, ctBytes))
|
|
2131
|
+
# 3. 恒定时间比较,失败立即终止(不得继续解密)
|
|
2132
|
+
if not ConstantTimeEqual(expected, sigBytes):
|
|
2133
|
+
raise SignatureMismatch
|
|
2134
|
+
# 4. 对称解密,去除 PKCS#7 Padding
|
|
2135
|
+
plaintext = SymmetricDecrypt(ALGO, AESKey, ivBytes, ctBytes)
|
|
2136
|
+
# 5. 先按腾讯云错误体解析,判断业务是否失败
|
|
2137
|
+
bizErr = TryParseTencentCloudError(plaintext)
|
|
2138
|
+
if bizErr != nil:
|
|
2139
|
+
raise BusinessError(bizErr)
|
|
2140
|
+
# 6. 按目标业务接口的响应结构反序列化
|
|
2141
|
+
return JSON.parse(plaintext, BizResponseSchema)
|
|
2142
|
+
```
|
|
2143
|
+
|
|
2144
|
+
**AES-CBC 示例**
|
|
2145
|
+
以下示例参数及结果可用于验证 AES-CBC 加密和 HMAC-SHA256 签名算法的实现是否正确。
|
|
2146
|
+
|
|
2147
|
+
加密密钥:AES-CBC-Key-1234
|
|
2148
|
+
签名密钥:AES-HMAC-Key-123
|
|
2149
|
+
IV:1234567890abcdef
|
|
2150
|
+
请求内容:{"Request": "This is a test."}
|
|
2151
|
+
|
|
2152
|
+
最终请求参数:
|
|
2153
|
+
```
|
|
2154
|
+
{
|
|
2155
|
+
"RequestAction": "DescribeFlowComponents",
|
|
2156
|
+
"IV": "MTIzNDU2Nzg5MGFiY2RlZg==",
|
|
2157
|
+
"EncryptedData": "Iqp2W1jislwMNmE7bH9dKZZiMQsfkAPyvAAqDFRnWLw=",
|
|
2158
|
+
"EncryptionSignature": "4TT3PUCZgZT7YmEPtXDm5PDcM6xT7FoYHfMW8xunB5I="
|
|
2159
|
+
}
|
|
2160
|
+
```
|
|
2161
|
+
|
|
2162
|
+
**SM4-CBC 示例**
|
|
2163
|
+
以下示例参数及结果可用于验证 SM4-CBC 加密和 HMAC-SM4 签名算法的实现是否正确。
|
|
2164
|
+
|
|
2165
|
+
加密密钥:SM4-CBC-Key-1234
|
|
2166
|
+
签名密钥:SM4-HMAC-Key-123
|
|
2167
|
+
IV:fedcba0987654321
|
|
2168
|
+
请求内容:{"Request": "This is a test."}
|
|
2169
|
+
|
|
2170
|
+
最终请求参数:
|
|
2171
|
+
```
|
|
2172
|
+
{
|
|
2173
|
+
"RequestAction": "DescribeFlowComponents",
|
|
2174
|
+
"IV": "ZmVkY2JhMDk4NzY1NDMyMQ==",
|
|
2175
|
+
"EncryptedData": "GwUovQhNUPaUnVM/UDXMtPOYTpTSi2B1oyZDFbyyvns=",
|
|
2176
|
+
"EncryptionSignature": "nHB/v/AvOaDCQ66esFNnp12lHKcGkwaLGid0Warl/KE="
|
|
2177
|
+
}
|
|
2178
|
+
```
|
|
2179
|
+
"""
|
|
2180
|
+
|
|
2181
|
+
kwargs = {}
|
|
2182
|
+
kwargs["action"] = "CreateRequestWithEncryption"
|
|
2183
|
+
kwargs["params"] = request._serialize()
|
|
2184
|
+
kwargs["resp_cls"] = models.CreateRequestWithEncryptionResponse
|
|
2185
|
+
kwargs["headers"] = request.headers
|
|
2186
|
+
kwargs["opts"] = opts or {}
|
|
2187
|
+
|
|
2188
|
+
return await self.call_and_deserialize(**kwargs)
|
|
2189
|
+
|
|
2055
2190
|
async def CreateRiskIdentificationTaskFeedback(
|
|
2056
2191
|
self,
|
|
2057
2192
|
request: models.CreateRiskIdentificationTaskFeedbackRequest,
|
|
@@ -2855,6 +2990,9 @@ class EssClient(AbstractClient):
|
|
|
2855
2990
|
注:
|
|
2856
2991
|
1. `大文件转换所需的时间可能会比较长`
|
|
2857
2992
|
2. `本接口返回的文件资源ID就是PDF资源ID,可以直接用于【用PDF文件创建签署流程】接口发起合同。`
|
|
2993
|
+
|
|
2994
|
+
整体流程如下图
|
|
2995
|
+

|
|
2858
2996
|
"""
|
|
2859
2997
|
|
|
2860
2998
|
kwargs = {}
|
|
@@ -11861,155 +11861,56 @@ class CreateFlowOption(AbstractModel):
|
|
|
11861
11861
|
|
|
11862
11862
|
def __init__(self):
|
|
11863
11863
|
r"""
|
|
11864
|
-
:param _CanEditFlow:
|
|
11865
|
-
<br/>true:允许编辑<br/>false:不允许编辑(默认值)<br/>
|
|
11864
|
+
:param _CanEditFlow: <p>是否允许修改发起合同时确认弹窗的合同信息(合同名称、合同类型、签署截止时间),若不允许编辑,则表单字段将被禁止输入。<br><br>true:允许编辑<br>false:不允许编辑(默认值)<br></p>
|
|
11866
11865
|
:type CanEditFlow: bool
|
|
11867
|
-
:param _CanEditFormField:
|
|
11868
|
-
<br/>true:允许编辑模板控件信息
|
|
11869
|
-
<br/>false:不允许编辑模板控件信息(默认值)
|
|
11870
|
-
<br/>
|
|
11866
|
+
:param _CanEditFormField: <p>是否允许编辑模板控件<br><br>true:允许编辑模板控件信息<br><br>false:不允许编辑模板控件信息(默认值)<br><br></p>
|
|
11871
11867
|
:type CanEditFormField: bool
|
|
11872
|
-
:param _HideShowFlowName:
|
|
11873
|
-
<br/>true:发起页面隐藏合同名称展示
|
|
11874
|
-
<br/>false:发起页面不隐藏合同名称展示(默认值)
|
|
11875
|
-
<br/>
|
|
11868
|
+
:param _HideShowFlowName: <p>发起页面隐藏合同名称展示<br><br>true:发起页面隐藏合同名称展示<br><br>false:发起页面不隐藏合同名称展示(默认值)<br><br></p>
|
|
11876
11869
|
:type HideShowFlowName: bool
|
|
11877
|
-
:param _HideShowFlowType:
|
|
11878
|
-
<br/>true:发起页面隐藏合同类型展示
|
|
11879
|
-
<br/>false:发起页面不隐藏合同类型展示(默认值)
|
|
11880
|
-
<br/>
|
|
11881
|
-
|
|
11870
|
+
:param _HideShowFlowType: <p>发起页面隐藏合同类型展示<br><br>true:发起页面隐藏合同类型展示<br><br>false:发起页面不隐藏合同类型展示(默认值)<br><br></p>
|
|
11882
11871
|
:type HideShowFlowType: bool
|
|
11883
|
-
:param _HideShowDeadline:
|
|
11884
|
-
<br/>true:发起页面隐藏合同截止日期展示
|
|
11885
|
-
<br/>false:发起页面不隐藏合同截止日期展示(默认值)
|
|
11886
|
-
<br/>
|
|
11872
|
+
:param _HideShowDeadline: <p>发起页面隐藏合同截止日期展示<br><br>true:发起页面隐藏合同截止日期展示<br><br>false:发起页面不隐藏合同截止日期展示(默认值)<br><br></p>
|
|
11887
11873
|
:type HideShowDeadline: bool
|
|
11888
|
-
:param _CanSkipAddApprover:
|
|
11889
|
-
<br/>true:发起页面允许跳过添加签署人环节
|
|
11890
|
-
<br/>false:发起页面不允许跳过添加签署人环节(默认值)
|
|
11891
|
-
<br/>
|
|
11892
|
-
|
|
11874
|
+
:param _CanSkipAddApprover: <p>发起页面允许跳过添加签署人环节<br><br>true:发起页面允许跳过添加签署人环节<br><br>false:发起页面不允许跳过添加签署人环节(默认值)<br><br></p>
|
|
11893
11875
|
:type CanSkipAddApprover: bool
|
|
11894
|
-
:param _SkipUploadFile:
|
|
11895
|
-
<br/>true:文件发起页面跳过文件上传步骤
|
|
11896
|
-
<br/>false:文件发起页面不跳过文件上传步骤(默认值)
|
|
11897
|
-
<br/>
|
|
11876
|
+
:param _SkipUploadFile: <p>文件发起页面跳过文件上传步骤<br><br>true:文件发起页面跳过文件上传步骤<br><br>false:文件发起页面不跳过文件上传步骤(默认值)<br><br></p>
|
|
11898
11877
|
:type SkipUploadFile: bool
|
|
11899
|
-
:param _ForbidEditFillComponent:
|
|
11900
|
-
<br/>true:禁止编辑填写控件
|
|
11901
|
-
<br/>false:允许编辑填写控件(默认值)
|
|
11902
|
-
<br/>
|
|
11878
|
+
:param _ForbidEditFillComponent: <p>禁止编辑填写控件<br><br>true:禁止编辑填写控件<br><br>false:允许编辑填写控件(默认值)<br><br></p>
|
|
11903
11879
|
:type ForbidEditFillComponent: bool
|
|
11904
|
-
:param _CustomCreateFlowDescription:
|
|
11905
|
-
|
|
11880
|
+
:param _CustomCreateFlowDescription: <p>定制化发起合同弹窗的描述信息,描述信息最长500字符</p>
|
|
11906
11881
|
:type CustomCreateFlowDescription: str
|
|
11907
|
-
:param _ForbidAddApprover:
|
|
11908
|
-
|
|
11882
|
+
:param _ForbidAddApprover: <p>禁止添加签署方,若为true则在发起流程的可嵌入页面隐藏“添加签署人按钮”</p>
|
|
11909
11883
|
:type ForbidAddApprover: bool
|
|
11910
|
-
:param _ForbidEditApprover:
|
|
11911
|
-
<ul><li>(默认) false -可以编辑签署人</li> <li> true - 禁止编辑签署人</li></ul>
|
|
11912
|
-
|
|
11913
|
-
注意:如果设置参数为 true, 则 参数签署人 [FlowApproverList](https://qian.tencent.com/developers/partnerApis/embedPages/ChannelCreatePrepareFlow) 不能为空
|
|
11884
|
+
:param _ForbidEditApprover: <p>是否可以编辑签署人包括新增,修改,删除 </p><ul><li>(默认) false -可以编辑签署人</li> <li> true - 禁止编辑签署人</li></ul><p>注意:如果设置参数为 true, 则 参数签署人 <a href="https://qian.tencent.com/developers/partnerApis/embedPages/ChannelCreatePrepareFlow">FlowApproverList</a> 不能为空</p>
|
|
11914
11885
|
:type ForbidEditApprover: bool
|
|
11915
|
-
:param _ForbidEditFlowProperties:
|
|
11916
|
-
|
|
11886
|
+
:param _ForbidEditFlowProperties: <p>禁止设置签署流程属性 (顺序、合同签署认证方式等),若为true则在发起流程的可嵌入页面隐藏签署流程设置面板</p>
|
|
11917
11887
|
:type ForbidEditFlowProperties: bool
|
|
11918
|
-
:param _HideComponentTypes:
|
|
11919
|
-
<font color='red'>空数组代表未指定</font>),具体的控件类型如下
|
|
11920
|
-
|
|
11921
|
-
<ul><li>SIGN_SIGNATURE : 个人签名/印章</li>
|
|
11922
|
-
<li>SIGN_SEAL : 企业印章</li>
|
|
11923
|
-
<li>SIGN_PAGING_SEAL : 骑缝章</li>
|
|
11924
|
-
<li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li>
|
|
11925
|
-
<li>SIGN_APPROVE : 签批</li>
|
|
11926
|
-
<li>SIGN_OPINION : 签署意见</li>
|
|
11927
|
-
<li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li>
|
|
11928
|
-
<li>BUSI-FULL-NAME : 企业全称</li>
|
|
11929
|
-
<li>BUSI-CREDIT-CODE : 统一社会信用代码</li>
|
|
11930
|
-
<li>BUSI-LEGAL-NAME : 法人/经营者姓名</li>
|
|
11931
|
-
<li>PERSONAL-NAME : 签署人姓名</li>
|
|
11932
|
-
<li>PERSONAL-MOBILE : 签署人手机号</li>
|
|
11933
|
-
<li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li>
|
|
11934
|
-
<li>PERSONAL-IDCARD : 签署人证件号</li>
|
|
11935
|
-
<li>TEXT : 单行文本</li>
|
|
11936
|
-
<li>MULTI_LINE_TEXT : 多行文本</li>
|
|
11937
|
-
<li>CHECK_BOX : 勾选框</li>
|
|
11938
|
-
<li>SELECTOR : 选择器</li>
|
|
11939
|
-
<li>DIGIT : 数字</li>
|
|
11940
|
-
<li>DATE : 日期</li>
|
|
11941
|
-
<li>FILL_IMAGE : 图片</li>
|
|
11942
|
-
<li>ATTACHMENT : 附件</li>
|
|
11943
|
-
<li>EMAIL : 邮箱</li>
|
|
11944
|
-
<li>LOCATION : 地址</li>
|
|
11945
|
-
<li>EDUCATION : 学历</li>
|
|
11946
|
-
<li>GENDER : 性别</li>
|
|
11947
|
-
<li>DISTRICT : 省市区</li></ul>
|
|
11888
|
+
:param _HideComponentTypes: <p>在发起流程的可嵌入页面要隐藏的控件列表,和 ShowComponentTypes 参数 只能二选一使用(注:<br><font color="red">空数组代表未指定</font>),具体的控件类型如下</p><ul><li>SIGN_SIGNATURE : 个人签名/印章</li><li>SIGN_SEAL : 企业印章</li><li>SIGN_PAGING_SEAL : 骑缝章</li><li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li><li>SIGN_APPROVE : 签批</li><li>SIGN_OPINION : 签署意见</li><li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li><li>BUSI-FULL-NAME : 企业全称</li><li>BUSI-CREDIT-CODE : 统一社会信用代码</li><li>BUSI-LEGAL-NAME : 法人/经营者姓名</li><li>PERSONAL-NAME : 签署人姓名</li><li>PERSONAL-MOBILE : 签署人手机号</li><li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li><li>PERSONAL-IDCARD : 签署人证件号</li><li>TEXT : 单行文本</li><li>MULTI_LINE_TEXT : 多行文本</li><li>CHECK_BOX : 勾选框</li><li>SELECTOR : 选择器</li><li>DIGIT : 数字</li><li>DATE : 日期</li><li>FILL_IMAGE : 图片</li><li>ATTACHMENT : 附件</li><li>EMAIL : 邮箱</li><li>LOCATION : 地址</li><li>EDUCATION : 学历</li><li>GENDER : 性别</li><li>DISTRICT : 省市区</li></ul>
|
|
11948
11889
|
:type HideComponentTypes: list of str
|
|
11949
|
-
:param _ShowComponentTypes:
|
|
11950
|
-
<font color='red'>空数组代表未指定</font>),具体的控件类型如下
|
|
11951
|
-
<ul><li>SIGN_SIGNATURE : 个人签名/印章</li>
|
|
11952
|
-
<li>SIGN_SEAL : 企业印章</li>
|
|
11953
|
-
<li>SIGN_PAGING_SEAL : 骑缝章</li>
|
|
11954
|
-
<li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li>
|
|
11955
|
-
<li>SIGN_APPROVE : 签批</li>
|
|
11956
|
-
<li>SIGN_OPINION : 签署意见</li>
|
|
11957
|
-
<li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li>
|
|
11958
|
-
<li>BUSI-FULL-NAME : 企业全称</li>
|
|
11959
|
-
<li>BUSI-CREDIT-CODE : 统一社会信用代码</li>
|
|
11960
|
-
<li>BUSI-LEGAL-NAME : 法人/经营者姓名</li>
|
|
11961
|
-
<li>PERSONAL-NAME : 签署人姓名</li>
|
|
11962
|
-
<li>PERSONAL-MOBILE : 签署人手机号</li>
|
|
11963
|
-
<li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li>
|
|
11964
|
-
<li>PERSONAL-IDCARD : 签署人证件号</li>
|
|
11965
|
-
<li>TEXT : 单行文本</li>
|
|
11966
|
-
<li>MULTI_LINE_TEXT : 多行文本</li>
|
|
11967
|
-
<li>CHECK_BOX : 勾选框</li>
|
|
11968
|
-
<li>SELECTOR : 选择器</li>
|
|
11969
|
-
<li>DIGIT : 数字</li>
|
|
11970
|
-
<li>DATE : 日期</li>
|
|
11971
|
-
<li>FILL_IMAGE : 图片</li>
|
|
11972
|
-
<li>ATTACHMENT : 附件</li>
|
|
11973
|
-
<li>EMAIL : 邮箱</li>
|
|
11974
|
-
<li>LOCATION : 地址</li>
|
|
11975
|
-
<li>EDUCATION : 学历</li>
|
|
11976
|
-
<li>GENDER : 性别</li>
|
|
11977
|
-
<li>DISTRICT : 省市区</li></ul>
|
|
11890
|
+
:param _ShowComponentTypes: <p>在发起流程的可嵌入页面要显示的控件列表,和 HideComponentTypes 参数 只能二选一使用(注:<br><font color="red">空数组代表未指定</font>),具体的控件类型如下</p><ul><li>SIGN_SIGNATURE : 个人签名/印章</li><li>SIGN_SEAL : 企业印章</li><li>SIGN_PAGING_SEAL : 骑缝章</li><li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li><li>SIGN_APPROVE : 签批</li><li>SIGN_OPINION : 签署意见</li><li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li><li>BUSI-FULL-NAME : 企业全称</li><li>BUSI-CREDIT-CODE : 统一社会信用代码</li><li>BUSI-LEGAL-NAME : 法人/经营者姓名</li><li>PERSONAL-NAME : 签署人姓名</li><li>PERSONAL-MOBILE : 签署人手机号</li><li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li><li>PERSONAL-IDCARD : 签署人证件号</li><li>TEXT : 单行文本</li><li>MULTI_LINE_TEXT : 多行文本</li><li>CHECK_BOX : 勾选框</li><li>SELECTOR : 选择器</li><li>DIGIT : 数字</li><li>DATE : 日期</li><li>FILL_IMAGE : 图片</li><li>ATTACHMENT : 附件</li><li>EMAIL : 邮箱</li><li>LOCATION : 地址</li><li>EDUCATION : 学历</li><li>GENDER : 性别</li><li>DISTRICT : 省市区</li></ul>
|
|
11978
11891
|
:type ShowComponentTypes: list of str
|
|
11979
|
-
:param _ResultPageConfig:
|
|
11892
|
+
:param _ResultPageConfig: <p>发起流程的可嵌入页面结果页配置</p>
|
|
11980
11893
|
:type ResultPageConfig: list of CreateResultPageConfig
|
|
11981
|
-
:param _SignComponentConfig:
|
|
11982
|
-
- 签署控件 是否默认展示日期.
|
|
11894
|
+
:param _SignComponentConfig: <p>签署控件的配置信息,用在嵌入式发起的页面配置,包括 </p><ul><li>签署控件 是否默认展示日期.</li></ul>
|
|
11983
11895
|
:type SignComponentConfig: :class:`tencentcloud.ess.v20201111.models.SignComponentConfig`
|
|
11984
|
-
:param _ForbidEditWatermark:
|
|
11985
|
-
<ul><li>(默认) false -否</li> <li> true - 禁止编辑</li></ul>
|
|
11896
|
+
:param _ForbidEditWatermark: <p>是否禁止编辑(展示)水印控件属性</p><ul><li>(默认) false -否</li> <li> true - 禁止编辑</li></ul>
|
|
11986
11897
|
:type ForbidEditWatermark: bool
|
|
11987
|
-
:param _HideOperationInstructions:
|
|
11988
|
-
|
|
11989
|
-
<ul><li>1 : 操作指引入口</li>
|
|
11990
|
-
<li>2 : 操作文档</li>
|
|
11991
|
-
<li>3 : 操作视频</li>
|
|
11992
|
-
</ul>
|
|
11993
|
-
注:仅对新版页面生效
|
|
11898
|
+
:param _HideOperationInstructions: <p>隐藏操作指引: 具体的控件类型如下</p><ul><li>1 : 操作指引入口</li><li>2 : 操作文档</li><li>3 : 操作视频</li></ul>注:仅对新版页面生效
|
|
11994
11899
|
:type HideOperationInstructions: list of int non-negative
|
|
11995
|
-
:param _HideOperationSteps:
|
|
11996
|
-
|
|
11997
|
-
<ul><li>1 : 选择文件及签署方</li>
|
|
11998
|
-
<li>2 : 补充文件内容</li>
|
|
11999
|
-
<li>4 : 发起前合同信息与设置确认</li>
|
|
12000
|
-
</ul>
|
|
12001
|
-
注:仅对新版页面生效
|
|
11900
|
+
:param _HideOperationSteps: <p>隐藏操作步骤: 具体的控件类型如下</p><ul><li>1 : 选择文件及签署方</li><li>2 : 补充文件内容</li><li>4 : 发起前合同信息与设置确认</li></ul>注:仅对新版页面生效
|
|
12002
11901
|
:type HideOperationSteps: list of int non-negative
|
|
12003
|
-
:param _SelfName:
|
|
11902
|
+
:param _SelfName: <p>本企业简称,注:仅对新版页面生效</p>
|
|
12004
11903
|
:type SelfName: str
|
|
12005
|
-
:param _HideSignCodeAfterStart:
|
|
11904
|
+
:param _HideSignCodeAfterStart: <p>发起后签署码隐藏,默认false,注:仅对新版页面生效</p>
|
|
12006
11905
|
:type HideSignCodeAfterStart: bool
|
|
12007
|
-
:param _PreviewAfterStart:
|
|
11906
|
+
:param _PreviewAfterStart: <p>发起成功后是否预览合同 <ul><li>(默认) false -否</li> <li> true - 展示预览按钮</li></ul></p>
|
|
12008
11907
|
:type PreviewAfterStart: bool
|
|
12009
|
-
:param _SignAfterStart:
|
|
11908
|
+
:param _SignAfterStart: <p>发起成功之后是否签署合同,仅当前经办人作为签署人时生效 <ul><li>(默认) false -否</li> <li> true - 展示签署按钮</li></ul></p>
|
|
12010
11909
|
:type SignAfterStart: bool
|
|
12011
|
-
:param _NeedFlowDraft:
|
|
11910
|
+
:param _NeedFlowDraft: <p>发起过程中是否保存草稿</p>
|
|
12012
11911
|
:type NeedFlowDraft: bool
|
|
11912
|
+
:param _CcInfoVisibility: <p>若指定了合同抄送人,此参数用来控制操作人能否在嵌入式页面看见或编辑(修改、增加、删除)抄送人信息。</p><p>枚举值:</p><ul><li>0: 不可见不可编辑</li><li>1: 可见不可编辑</li><li>2: 可见可编辑</li></ul><p>默认值:0</p>
|
|
11913
|
+
:type CcInfoVisibility: int
|
|
12013
11914
|
"""
|
|
12014
11915
|
self._CanEditFlow = None
|
|
12015
11916
|
self._CanEditFormField = None
|
|
@@ -12035,11 +11936,11 @@ class CreateFlowOption(AbstractModel):
|
|
|
12035
11936
|
self._PreviewAfterStart = None
|
|
12036
11937
|
self._SignAfterStart = None
|
|
12037
11938
|
self._NeedFlowDraft = None
|
|
11939
|
+
self._CcInfoVisibility = None
|
|
12038
11940
|
|
|
12039
11941
|
@property
|
|
12040
11942
|
def CanEditFlow(self):
|
|
12041
|
-
r"""
|
|
12042
|
-
<br/>true:允许编辑<br/>false:不允许编辑(默认值)<br/>
|
|
11943
|
+
r"""<p>是否允许修改发起合同时确认弹窗的合同信息(合同名称、合同类型、签署截止时间),若不允许编辑,则表单字段将被禁止输入。<br><br>true:允许编辑<br>false:不允许编辑(默认值)<br></p>
|
|
12043
11944
|
:rtype: bool
|
|
12044
11945
|
"""
|
|
12045
11946
|
return self._CanEditFlow
|
|
@@ -12050,10 +11951,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12050
11951
|
|
|
12051
11952
|
@property
|
|
12052
11953
|
def CanEditFormField(self):
|
|
12053
|
-
r"""
|
|
12054
|
-
<br/>true:允许编辑模板控件信息
|
|
12055
|
-
<br/>false:不允许编辑模板控件信息(默认值)
|
|
12056
|
-
<br/>
|
|
11954
|
+
r"""<p>是否允许编辑模板控件<br><br>true:允许编辑模板控件信息<br><br>false:不允许编辑模板控件信息(默认值)<br><br></p>
|
|
12057
11955
|
:rtype: bool
|
|
12058
11956
|
"""
|
|
12059
11957
|
return self._CanEditFormField
|
|
@@ -12064,10 +11962,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12064
11962
|
|
|
12065
11963
|
@property
|
|
12066
11964
|
def HideShowFlowName(self):
|
|
12067
|
-
r"""
|
|
12068
|
-
<br/>true:发起页面隐藏合同名称展示
|
|
12069
|
-
<br/>false:发起页面不隐藏合同名称展示(默认值)
|
|
12070
|
-
<br/>
|
|
11965
|
+
r"""<p>发起页面隐藏合同名称展示<br><br>true:发起页面隐藏合同名称展示<br><br>false:发起页面不隐藏合同名称展示(默认值)<br><br></p>
|
|
12071
11966
|
:rtype: bool
|
|
12072
11967
|
"""
|
|
12073
11968
|
return self._HideShowFlowName
|
|
@@ -12078,11 +11973,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12078
11973
|
|
|
12079
11974
|
@property
|
|
12080
11975
|
def HideShowFlowType(self):
|
|
12081
|
-
r"""
|
|
12082
|
-
<br/>true:发起页面隐藏合同类型展示
|
|
12083
|
-
<br/>false:发起页面不隐藏合同类型展示(默认值)
|
|
12084
|
-
<br/>
|
|
12085
|
-
|
|
11976
|
+
r"""<p>发起页面隐藏合同类型展示<br><br>true:发起页面隐藏合同类型展示<br><br>false:发起页面不隐藏合同类型展示(默认值)<br><br></p>
|
|
12086
11977
|
:rtype: bool
|
|
12087
11978
|
"""
|
|
12088
11979
|
return self._HideShowFlowType
|
|
@@ -12093,10 +11984,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12093
11984
|
|
|
12094
11985
|
@property
|
|
12095
11986
|
def HideShowDeadline(self):
|
|
12096
|
-
r"""
|
|
12097
|
-
<br/>true:发起页面隐藏合同截止日期展示
|
|
12098
|
-
<br/>false:发起页面不隐藏合同截止日期展示(默认值)
|
|
12099
|
-
<br/>
|
|
11987
|
+
r"""<p>发起页面隐藏合同截止日期展示<br><br>true:发起页面隐藏合同截止日期展示<br><br>false:发起页面不隐藏合同截止日期展示(默认值)<br><br></p>
|
|
12100
11988
|
:rtype: bool
|
|
12101
11989
|
"""
|
|
12102
11990
|
return self._HideShowDeadline
|
|
@@ -12107,11 +11995,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12107
11995
|
|
|
12108
11996
|
@property
|
|
12109
11997
|
def CanSkipAddApprover(self):
|
|
12110
|
-
r"""
|
|
12111
|
-
<br/>true:发起页面允许跳过添加签署人环节
|
|
12112
|
-
<br/>false:发起页面不允许跳过添加签署人环节(默认值)
|
|
12113
|
-
<br/>
|
|
12114
|
-
|
|
11998
|
+
r"""<p>发起页面允许跳过添加签署人环节<br><br>true:发起页面允许跳过添加签署人环节<br><br>false:发起页面不允许跳过添加签署人环节(默认值)<br><br></p>
|
|
12115
11999
|
:rtype: bool
|
|
12116
12000
|
"""
|
|
12117
12001
|
return self._CanSkipAddApprover
|
|
@@ -12122,10 +12006,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12122
12006
|
|
|
12123
12007
|
@property
|
|
12124
12008
|
def SkipUploadFile(self):
|
|
12125
|
-
r"""
|
|
12126
|
-
<br/>true:文件发起页面跳过文件上传步骤
|
|
12127
|
-
<br/>false:文件发起页面不跳过文件上传步骤(默认值)
|
|
12128
|
-
<br/>
|
|
12009
|
+
r"""<p>文件发起页面跳过文件上传步骤<br><br>true:文件发起页面跳过文件上传步骤<br><br>false:文件发起页面不跳过文件上传步骤(默认值)<br><br></p>
|
|
12129
12010
|
:rtype: bool
|
|
12130
12011
|
"""
|
|
12131
12012
|
return self._SkipUploadFile
|
|
@@ -12136,10 +12017,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12136
12017
|
|
|
12137
12018
|
@property
|
|
12138
12019
|
def ForbidEditFillComponent(self):
|
|
12139
|
-
r"""
|
|
12140
|
-
<br/>true:禁止编辑填写控件
|
|
12141
|
-
<br/>false:允许编辑填写控件(默认值)
|
|
12142
|
-
<br/>
|
|
12020
|
+
r"""<p>禁止编辑填写控件<br><br>true:禁止编辑填写控件<br><br>false:允许编辑填写控件(默认值)<br><br></p>
|
|
12143
12021
|
:rtype: bool
|
|
12144
12022
|
"""
|
|
12145
12023
|
return self._ForbidEditFillComponent
|
|
@@ -12150,8 +12028,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12150
12028
|
|
|
12151
12029
|
@property
|
|
12152
12030
|
def CustomCreateFlowDescription(self):
|
|
12153
|
-
r"""
|
|
12154
|
-
|
|
12031
|
+
r"""<p>定制化发起合同弹窗的描述信息,描述信息最长500字符</p>
|
|
12155
12032
|
:rtype: str
|
|
12156
12033
|
"""
|
|
12157
12034
|
return self._CustomCreateFlowDescription
|
|
@@ -12162,8 +12039,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12162
12039
|
|
|
12163
12040
|
@property
|
|
12164
12041
|
def ForbidAddApprover(self):
|
|
12165
|
-
r"""
|
|
12166
|
-
|
|
12042
|
+
r"""<p>禁止添加签署方,若为true则在发起流程的可嵌入页面隐藏“添加签署人按钮”</p>
|
|
12167
12043
|
:rtype: bool
|
|
12168
12044
|
"""
|
|
12169
12045
|
return self._ForbidAddApprover
|
|
@@ -12174,10 +12050,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12174
12050
|
|
|
12175
12051
|
@property
|
|
12176
12052
|
def ForbidEditApprover(self):
|
|
12177
|
-
r"""
|
|
12178
|
-
<ul><li>(默认) false -可以编辑签署人</li> <li> true - 禁止编辑签署人</li></ul>
|
|
12179
|
-
|
|
12180
|
-
注意:如果设置参数为 true, 则 参数签署人 [FlowApproverList](https://qian.tencent.com/developers/partnerApis/embedPages/ChannelCreatePrepareFlow) 不能为空
|
|
12053
|
+
r"""<p>是否可以编辑签署人包括新增,修改,删除 </p><ul><li>(默认) false -可以编辑签署人</li> <li> true - 禁止编辑签署人</li></ul><p>注意:如果设置参数为 true, 则 参数签署人 <a href="https://qian.tencent.com/developers/partnerApis/embedPages/ChannelCreatePrepareFlow">FlowApproverList</a> 不能为空</p>
|
|
12181
12054
|
:rtype: bool
|
|
12182
12055
|
"""
|
|
12183
12056
|
return self._ForbidEditApprover
|
|
@@ -12188,8 +12061,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12188
12061
|
|
|
12189
12062
|
@property
|
|
12190
12063
|
def ForbidEditFlowProperties(self):
|
|
12191
|
-
r"""
|
|
12192
|
-
|
|
12064
|
+
r"""<p>禁止设置签署流程属性 (顺序、合同签署认证方式等),若为true则在发起流程的可嵌入页面隐藏签署流程设置面板</p>
|
|
12193
12065
|
:rtype: bool
|
|
12194
12066
|
"""
|
|
12195
12067
|
return self._ForbidEditFlowProperties
|
|
@@ -12200,36 +12072,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12200
12072
|
|
|
12201
12073
|
@property
|
|
12202
12074
|
def HideComponentTypes(self):
|
|
12203
|
-
r"""
|
|
12204
|
-
<font color='red'>空数组代表未指定</font>),具体的控件类型如下
|
|
12205
|
-
|
|
12206
|
-
<ul><li>SIGN_SIGNATURE : 个人签名/印章</li>
|
|
12207
|
-
<li>SIGN_SEAL : 企业印章</li>
|
|
12208
|
-
<li>SIGN_PAGING_SEAL : 骑缝章</li>
|
|
12209
|
-
<li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li>
|
|
12210
|
-
<li>SIGN_APPROVE : 签批</li>
|
|
12211
|
-
<li>SIGN_OPINION : 签署意见</li>
|
|
12212
|
-
<li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li>
|
|
12213
|
-
<li>BUSI-FULL-NAME : 企业全称</li>
|
|
12214
|
-
<li>BUSI-CREDIT-CODE : 统一社会信用代码</li>
|
|
12215
|
-
<li>BUSI-LEGAL-NAME : 法人/经营者姓名</li>
|
|
12216
|
-
<li>PERSONAL-NAME : 签署人姓名</li>
|
|
12217
|
-
<li>PERSONAL-MOBILE : 签署人手机号</li>
|
|
12218
|
-
<li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li>
|
|
12219
|
-
<li>PERSONAL-IDCARD : 签署人证件号</li>
|
|
12220
|
-
<li>TEXT : 单行文本</li>
|
|
12221
|
-
<li>MULTI_LINE_TEXT : 多行文本</li>
|
|
12222
|
-
<li>CHECK_BOX : 勾选框</li>
|
|
12223
|
-
<li>SELECTOR : 选择器</li>
|
|
12224
|
-
<li>DIGIT : 数字</li>
|
|
12225
|
-
<li>DATE : 日期</li>
|
|
12226
|
-
<li>FILL_IMAGE : 图片</li>
|
|
12227
|
-
<li>ATTACHMENT : 附件</li>
|
|
12228
|
-
<li>EMAIL : 邮箱</li>
|
|
12229
|
-
<li>LOCATION : 地址</li>
|
|
12230
|
-
<li>EDUCATION : 学历</li>
|
|
12231
|
-
<li>GENDER : 性别</li>
|
|
12232
|
-
<li>DISTRICT : 省市区</li></ul>
|
|
12075
|
+
r"""<p>在发起流程的可嵌入页面要隐藏的控件列表,和 ShowComponentTypes 参数 只能二选一使用(注:<br><font color="red">空数组代表未指定</font>),具体的控件类型如下</p><ul><li>SIGN_SIGNATURE : 个人签名/印章</li><li>SIGN_SEAL : 企业印章</li><li>SIGN_PAGING_SEAL : 骑缝章</li><li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li><li>SIGN_APPROVE : 签批</li><li>SIGN_OPINION : 签署意见</li><li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li><li>BUSI-FULL-NAME : 企业全称</li><li>BUSI-CREDIT-CODE : 统一社会信用代码</li><li>BUSI-LEGAL-NAME : 法人/经营者姓名</li><li>PERSONAL-NAME : 签署人姓名</li><li>PERSONAL-MOBILE : 签署人手机号</li><li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li><li>PERSONAL-IDCARD : 签署人证件号</li><li>TEXT : 单行文本</li><li>MULTI_LINE_TEXT : 多行文本</li><li>CHECK_BOX : 勾选框</li><li>SELECTOR : 选择器</li><li>DIGIT : 数字</li><li>DATE : 日期</li><li>FILL_IMAGE : 图片</li><li>ATTACHMENT : 附件</li><li>EMAIL : 邮箱</li><li>LOCATION : 地址</li><li>EDUCATION : 学历</li><li>GENDER : 性别</li><li>DISTRICT : 省市区</li></ul>
|
|
12233
12076
|
:rtype: list of str
|
|
12234
12077
|
"""
|
|
12235
12078
|
return self._HideComponentTypes
|
|
@@ -12240,35 +12083,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12240
12083
|
|
|
12241
12084
|
@property
|
|
12242
12085
|
def ShowComponentTypes(self):
|
|
12243
|
-
r"""
|
|
12244
|
-
<font color='red'>空数组代表未指定</font>),具体的控件类型如下
|
|
12245
|
-
<ul><li>SIGN_SIGNATURE : 个人签名/印章</li>
|
|
12246
|
-
<li>SIGN_SEAL : 企业印章</li>
|
|
12247
|
-
<li>SIGN_PAGING_SEAL : 骑缝章</li>
|
|
12248
|
-
<li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li>
|
|
12249
|
-
<li>SIGN_APPROVE : 签批</li>
|
|
12250
|
-
<li>SIGN_OPINION : 签署意见</li>
|
|
12251
|
-
<li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li>
|
|
12252
|
-
<li>BUSI-FULL-NAME : 企业全称</li>
|
|
12253
|
-
<li>BUSI-CREDIT-CODE : 统一社会信用代码</li>
|
|
12254
|
-
<li>BUSI-LEGAL-NAME : 法人/经营者姓名</li>
|
|
12255
|
-
<li>PERSONAL-NAME : 签署人姓名</li>
|
|
12256
|
-
<li>PERSONAL-MOBILE : 签署人手机号</li>
|
|
12257
|
-
<li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li>
|
|
12258
|
-
<li>PERSONAL-IDCARD : 签署人证件号</li>
|
|
12259
|
-
<li>TEXT : 单行文本</li>
|
|
12260
|
-
<li>MULTI_LINE_TEXT : 多行文本</li>
|
|
12261
|
-
<li>CHECK_BOX : 勾选框</li>
|
|
12262
|
-
<li>SELECTOR : 选择器</li>
|
|
12263
|
-
<li>DIGIT : 数字</li>
|
|
12264
|
-
<li>DATE : 日期</li>
|
|
12265
|
-
<li>FILL_IMAGE : 图片</li>
|
|
12266
|
-
<li>ATTACHMENT : 附件</li>
|
|
12267
|
-
<li>EMAIL : 邮箱</li>
|
|
12268
|
-
<li>LOCATION : 地址</li>
|
|
12269
|
-
<li>EDUCATION : 学历</li>
|
|
12270
|
-
<li>GENDER : 性别</li>
|
|
12271
|
-
<li>DISTRICT : 省市区</li></ul>
|
|
12086
|
+
r"""<p>在发起流程的可嵌入页面要显示的控件列表,和 HideComponentTypes 参数 只能二选一使用(注:<br><font color="red">空数组代表未指定</font>),具体的控件类型如下</p><ul><li>SIGN_SIGNATURE : 个人签名/印章</li><li>SIGN_SEAL : 企业印章</li><li>SIGN_PAGING_SEAL : 骑缝章</li><li>SIGN_LEGAL_PERSON_SEAL : 法定代表人章</li><li>SIGN_APPROVE : 签批</li><li>SIGN_OPINION : 签署意见</li><li>SIGN_PAGING_SIGNATURE : 手写签名骑缝控件</li><li>BUSI-FULL-NAME : 企业全称</li><li>BUSI-CREDIT-CODE : 统一社会信用代码</li><li>BUSI-LEGAL-NAME : 法人/经营者姓名</li><li>PERSONAL-NAME : 签署人姓名</li><li>PERSONAL-MOBILE : 签署人手机号</li><li>PERSONAL-IDCARD-TYPE : 签署人证件类型</li><li>PERSONAL-IDCARD : 签署人证件号</li><li>TEXT : 单行文本</li><li>MULTI_LINE_TEXT : 多行文本</li><li>CHECK_BOX : 勾选框</li><li>SELECTOR : 选择器</li><li>DIGIT : 数字</li><li>DATE : 日期</li><li>FILL_IMAGE : 图片</li><li>ATTACHMENT : 附件</li><li>EMAIL : 邮箱</li><li>LOCATION : 地址</li><li>EDUCATION : 学历</li><li>GENDER : 性别</li><li>DISTRICT : 省市区</li></ul>
|
|
12272
12087
|
:rtype: list of str
|
|
12273
12088
|
"""
|
|
12274
12089
|
return self._ShowComponentTypes
|
|
@@ -12279,7 +12094,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12279
12094
|
|
|
12280
12095
|
@property
|
|
12281
12096
|
def ResultPageConfig(self):
|
|
12282
|
-
r"""
|
|
12097
|
+
r"""<p>发起流程的可嵌入页面结果页配置</p>
|
|
12283
12098
|
:rtype: list of CreateResultPageConfig
|
|
12284
12099
|
"""
|
|
12285
12100
|
return self._ResultPageConfig
|
|
@@ -12290,8 +12105,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12290
12105
|
|
|
12291
12106
|
@property
|
|
12292
12107
|
def SignComponentConfig(self):
|
|
12293
|
-
r"""
|
|
12294
|
-
- 签署控件 是否默认展示日期.
|
|
12108
|
+
r"""<p>签署控件的配置信息,用在嵌入式发起的页面配置,包括 </p><ul><li>签署控件 是否默认展示日期.</li></ul>
|
|
12295
12109
|
:rtype: :class:`tencentcloud.ess.v20201111.models.SignComponentConfig`
|
|
12296
12110
|
"""
|
|
12297
12111
|
return self._SignComponentConfig
|
|
@@ -12302,8 +12116,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12302
12116
|
|
|
12303
12117
|
@property
|
|
12304
12118
|
def ForbidEditWatermark(self):
|
|
12305
|
-
r"""
|
|
12306
|
-
<ul><li>(默认) false -否</li> <li> true - 禁止编辑</li></ul>
|
|
12119
|
+
r"""<p>是否禁止编辑(展示)水印控件属性</p><ul><li>(默认) false -否</li> <li> true - 禁止编辑</li></ul>
|
|
12307
12120
|
:rtype: bool
|
|
12308
12121
|
"""
|
|
12309
12122
|
return self._ForbidEditWatermark
|
|
@@ -12316,13 +12129,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12316
12129
|
def HideOperationInstructions(self):
|
|
12317
12130
|
warnings.warn("parameter `HideOperationInstructions` is deprecated", DeprecationWarning)
|
|
12318
12131
|
|
|
12319
|
-
r"""
|
|
12320
|
-
|
|
12321
|
-
<ul><li>1 : 操作指引入口</li>
|
|
12322
|
-
<li>2 : 操作文档</li>
|
|
12323
|
-
<li>3 : 操作视频</li>
|
|
12324
|
-
</ul>
|
|
12325
|
-
注:仅对新版页面生效
|
|
12132
|
+
r"""<p>隐藏操作指引: 具体的控件类型如下</p><ul><li>1 : 操作指引入口</li><li>2 : 操作文档</li><li>3 : 操作视频</li></ul>注:仅对新版页面生效
|
|
12326
12133
|
:rtype: list of int non-negative
|
|
12327
12134
|
"""
|
|
12328
12135
|
return self._HideOperationInstructions
|
|
@@ -12335,13 +12142,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12335
12142
|
|
|
12336
12143
|
@property
|
|
12337
12144
|
def HideOperationSteps(self):
|
|
12338
|
-
r"""
|
|
12339
|
-
|
|
12340
|
-
<ul><li>1 : 选择文件及签署方</li>
|
|
12341
|
-
<li>2 : 补充文件内容</li>
|
|
12342
|
-
<li>4 : 发起前合同信息与设置确认</li>
|
|
12343
|
-
</ul>
|
|
12344
|
-
注:仅对新版页面生效
|
|
12145
|
+
r"""<p>隐藏操作步骤: 具体的控件类型如下</p><ul><li>1 : 选择文件及签署方</li><li>2 : 补充文件内容</li><li>4 : 发起前合同信息与设置确认</li></ul>注:仅对新版页面生效
|
|
12345
12146
|
:rtype: list of int non-negative
|
|
12346
12147
|
"""
|
|
12347
12148
|
return self._HideOperationSteps
|
|
@@ -12352,7 +12153,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12352
12153
|
|
|
12353
12154
|
@property
|
|
12354
12155
|
def SelfName(self):
|
|
12355
|
-
r"""
|
|
12156
|
+
r"""<p>本企业简称,注:仅对新版页面生效</p>
|
|
12356
12157
|
:rtype: str
|
|
12357
12158
|
"""
|
|
12358
12159
|
return self._SelfName
|
|
@@ -12363,7 +12164,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12363
12164
|
|
|
12364
12165
|
@property
|
|
12365
12166
|
def HideSignCodeAfterStart(self):
|
|
12366
|
-
r"""
|
|
12167
|
+
r"""<p>发起后签署码隐藏,默认false,注:仅对新版页面生效</p>
|
|
12367
12168
|
:rtype: bool
|
|
12368
12169
|
"""
|
|
12369
12170
|
return self._HideSignCodeAfterStart
|
|
@@ -12374,7 +12175,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12374
12175
|
|
|
12375
12176
|
@property
|
|
12376
12177
|
def PreviewAfterStart(self):
|
|
12377
|
-
r"""
|
|
12178
|
+
r"""<p>发起成功后是否预览合同 <ul><li>(默认) false -否</li> <li> true - 展示预览按钮</li></ul></p>
|
|
12378
12179
|
:rtype: bool
|
|
12379
12180
|
"""
|
|
12380
12181
|
return self._PreviewAfterStart
|
|
@@ -12385,7 +12186,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12385
12186
|
|
|
12386
12187
|
@property
|
|
12387
12188
|
def SignAfterStart(self):
|
|
12388
|
-
r"""
|
|
12189
|
+
r"""<p>发起成功之后是否签署合同,仅当前经办人作为签署人时生效 <ul><li>(默认) false -否</li> <li> true - 展示签署按钮</li></ul></p>
|
|
12389
12190
|
:rtype: bool
|
|
12390
12191
|
"""
|
|
12391
12192
|
return self._SignAfterStart
|
|
@@ -12396,7 +12197,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12396
12197
|
|
|
12397
12198
|
@property
|
|
12398
12199
|
def NeedFlowDraft(self):
|
|
12399
|
-
r"""
|
|
12200
|
+
r"""<p>发起过程中是否保存草稿</p>
|
|
12400
12201
|
:rtype: bool
|
|
12401
12202
|
"""
|
|
12402
12203
|
return self._NeedFlowDraft
|
|
@@ -12405,6 +12206,17 @@ class CreateFlowOption(AbstractModel):
|
|
|
12405
12206
|
def NeedFlowDraft(self, NeedFlowDraft):
|
|
12406
12207
|
self._NeedFlowDraft = NeedFlowDraft
|
|
12407
12208
|
|
|
12209
|
+
@property
|
|
12210
|
+
def CcInfoVisibility(self):
|
|
12211
|
+
r"""<p>若指定了合同抄送人,此参数用来控制操作人能否在嵌入式页面看见或编辑(修改、增加、删除)抄送人信息。</p><p>枚举值:</p><ul><li>0: 不可见不可编辑</li><li>1: 可见不可编辑</li><li>2: 可见可编辑</li></ul><p>默认值:0</p>
|
|
12212
|
+
:rtype: int
|
|
12213
|
+
"""
|
|
12214
|
+
return self._CcInfoVisibility
|
|
12215
|
+
|
|
12216
|
+
@CcInfoVisibility.setter
|
|
12217
|
+
def CcInfoVisibility(self, CcInfoVisibility):
|
|
12218
|
+
self._CcInfoVisibility = CcInfoVisibility
|
|
12219
|
+
|
|
12408
12220
|
|
|
12409
12221
|
def _deserialize(self, params):
|
|
12410
12222
|
self._CanEditFlow = params.get("CanEditFlow")
|
|
@@ -12438,6 +12250,7 @@ class CreateFlowOption(AbstractModel):
|
|
|
12438
12250
|
self._PreviewAfterStart = params.get("PreviewAfterStart")
|
|
12439
12251
|
self._SignAfterStart = params.get("SignAfterStart")
|
|
12440
12252
|
self._NeedFlowDraft = params.get("NeedFlowDraft")
|
|
12253
|
+
self._CcInfoVisibility = params.get("CcInfoVisibility")
|
|
12441
12254
|
memeber_set = set(params.keys())
|
|
12442
12255
|
for name, value in vars(self).items():
|
|
12443
12256
|
property_name = name[1:]
|
|
@@ -18694,6 +18507,160 @@ class CreateReleaseFlowResponse(AbstractModel):
|
|
|
18694
18507
|
self._RequestId = params.get("RequestId")
|
|
18695
18508
|
|
|
18696
18509
|
|
|
18510
|
+
class CreateRequestWithEncryptionRequest(AbstractModel):
|
|
18511
|
+
r"""CreateRequestWithEncryption请求参数结构体
|
|
18512
|
+
|
|
18513
|
+
"""
|
|
18514
|
+
|
|
18515
|
+
def __init__(self):
|
|
18516
|
+
r"""
|
|
18517
|
+
:param _RequestAction: <p>操作的接口名称。取值参考接口文档输入参数章节关于公共参数 Action 的说明。</p>
|
|
18518
|
+
:type RequestAction: str
|
|
18519
|
+
:param _IV: <p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
|
|
18520
|
+
:type IV: str
|
|
18521
|
+
:param _EncryptedData: <p>使用 AES-CBC 或 SM4-CBC 加密请求内容得到的密文。加密前请求内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
|
|
18522
|
+
:type EncryptedData: str
|
|
18523
|
+
:param _EncryptionSignature: <p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
|
|
18524
|
+
:type EncryptionSignature: str
|
|
18525
|
+
"""
|
|
18526
|
+
self._RequestAction = None
|
|
18527
|
+
self._IV = None
|
|
18528
|
+
self._EncryptedData = None
|
|
18529
|
+
self._EncryptionSignature = None
|
|
18530
|
+
|
|
18531
|
+
@property
|
|
18532
|
+
def RequestAction(self):
|
|
18533
|
+
r"""<p>操作的接口名称。取值参考接口文档输入参数章节关于公共参数 Action 的说明。</p>
|
|
18534
|
+
:rtype: str
|
|
18535
|
+
"""
|
|
18536
|
+
return self._RequestAction
|
|
18537
|
+
|
|
18538
|
+
@RequestAction.setter
|
|
18539
|
+
def RequestAction(self, RequestAction):
|
|
18540
|
+
self._RequestAction = RequestAction
|
|
18541
|
+
|
|
18542
|
+
@property
|
|
18543
|
+
def IV(self):
|
|
18544
|
+
r"""<p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
|
|
18545
|
+
:rtype: str
|
|
18546
|
+
"""
|
|
18547
|
+
return self._IV
|
|
18548
|
+
|
|
18549
|
+
@IV.setter
|
|
18550
|
+
def IV(self, IV):
|
|
18551
|
+
self._IV = IV
|
|
18552
|
+
|
|
18553
|
+
@property
|
|
18554
|
+
def EncryptedData(self):
|
|
18555
|
+
r"""<p>使用 AES-CBC 或 SM4-CBC 加密请求内容得到的密文。加密前请求内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
|
|
18556
|
+
:rtype: str
|
|
18557
|
+
"""
|
|
18558
|
+
return self._EncryptedData
|
|
18559
|
+
|
|
18560
|
+
@EncryptedData.setter
|
|
18561
|
+
def EncryptedData(self, EncryptedData):
|
|
18562
|
+
self._EncryptedData = EncryptedData
|
|
18563
|
+
|
|
18564
|
+
@property
|
|
18565
|
+
def EncryptionSignature(self):
|
|
18566
|
+
r"""<p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
|
|
18567
|
+
:rtype: str
|
|
18568
|
+
"""
|
|
18569
|
+
return self._EncryptionSignature
|
|
18570
|
+
|
|
18571
|
+
@EncryptionSignature.setter
|
|
18572
|
+
def EncryptionSignature(self, EncryptionSignature):
|
|
18573
|
+
self._EncryptionSignature = EncryptionSignature
|
|
18574
|
+
|
|
18575
|
+
|
|
18576
|
+
def _deserialize(self, params):
|
|
18577
|
+
self._RequestAction = params.get("RequestAction")
|
|
18578
|
+
self._IV = params.get("IV")
|
|
18579
|
+
self._EncryptedData = params.get("EncryptedData")
|
|
18580
|
+
self._EncryptionSignature = params.get("EncryptionSignature")
|
|
18581
|
+
memeber_set = set(params.keys())
|
|
18582
|
+
for name, value in vars(self).items():
|
|
18583
|
+
property_name = name[1:]
|
|
18584
|
+
if property_name in memeber_set:
|
|
18585
|
+
memeber_set.remove(property_name)
|
|
18586
|
+
if len(memeber_set) > 0:
|
|
18587
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
18588
|
+
|
|
18589
|
+
|
|
18590
|
+
|
|
18591
|
+
class CreateRequestWithEncryptionResponse(AbstractModel):
|
|
18592
|
+
r"""CreateRequestWithEncryption返回参数结构体
|
|
18593
|
+
|
|
18594
|
+
"""
|
|
18595
|
+
|
|
18596
|
+
def __init__(self):
|
|
18597
|
+
r"""
|
|
18598
|
+
:param _IV: <p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
|
|
18599
|
+
:type IV: str
|
|
18600
|
+
:param _EncryptedData: <p>使用 AES-CBC 或 SM4-CBC 加密返回内容得到的密文。加密前返回内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
|
|
18601
|
+
:type EncryptedData: str
|
|
18602
|
+
:param _EncryptionSignature: <p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
|
|
18603
|
+
:type EncryptionSignature: str
|
|
18604
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
18605
|
+
:type RequestId: str
|
|
18606
|
+
"""
|
|
18607
|
+
self._IV = None
|
|
18608
|
+
self._EncryptedData = None
|
|
18609
|
+
self._EncryptionSignature = None
|
|
18610
|
+
self._RequestId = None
|
|
18611
|
+
|
|
18612
|
+
@property
|
|
18613
|
+
def IV(self):
|
|
18614
|
+
r"""<p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
|
|
18615
|
+
:rtype: str
|
|
18616
|
+
"""
|
|
18617
|
+
return self._IV
|
|
18618
|
+
|
|
18619
|
+
@IV.setter
|
|
18620
|
+
def IV(self, IV):
|
|
18621
|
+
self._IV = IV
|
|
18622
|
+
|
|
18623
|
+
@property
|
|
18624
|
+
def EncryptedData(self):
|
|
18625
|
+
r"""<p>使用 AES-CBC 或 SM4-CBC 加密返回内容得到的密文。加密前返回内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
|
|
18626
|
+
:rtype: str
|
|
18627
|
+
"""
|
|
18628
|
+
return self._EncryptedData
|
|
18629
|
+
|
|
18630
|
+
@EncryptedData.setter
|
|
18631
|
+
def EncryptedData(self, EncryptedData):
|
|
18632
|
+
self._EncryptedData = EncryptedData
|
|
18633
|
+
|
|
18634
|
+
@property
|
|
18635
|
+
def EncryptionSignature(self):
|
|
18636
|
+
r"""<p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
|
|
18637
|
+
:rtype: str
|
|
18638
|
+
"""
|
|
18639
|
+
return self._EncryptionSignature
|
|
18640
|
+
|
|
18641
|
+
@EncryptionSignature.setter
|
|
18642
|
+
def EncryptionSignature(self, EncryptionSignature):
|
|
18643
|
+
self._EncryptionSignature = EncryptionSignature
|
|
18644
|
+
|
|
18645
|
+
@property
|
|
18646
|
+
def RequestId(self):
|
|
18647
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
18648
|
+
:rtype: str
|
|
18649
|
+
"""
|
|
18650
|
+
return self._RequestId
|
|
18651
|
+
|
|
18652
|
+
@RequestId.setter
|
|
18653
|
+
def RequestId(self, RequestId):
|
|
18654
|
+
self._RequestId = RequestId
|
|
18655
|
+
|
|
18656
|
+
|
|
18657
|
+
def _deserialize(self, params):
|
|
18658
|
+
self._IV = params.get("IV")
|
|
18659
|
+
self._EncryptedData = params.get("EncryptedData")
|
|
18660
|
+
self._EncryptionSignature = params.get("EncryptionSignature")
|
|
18661
|
+
self._RequestId = params.get("RequestId")
|
|
18662
|
+
|
|
18663
|
+
|
|
18697
18664
|
class CreateResultPageConfig(AbstractModel):
|
|
18698
18665
|
r"""发起流程的可嵌入页面操作结果页配置
|
|
18699
18666
|
|
|
@@ -46584,7 +46551,7 @@ class UploadFilesRequest(AbstractModel):
|
|
|
46584
46551
|
|
|
46585
46552
|
def __init__(self):
|
|
46586
46553
|
r"""
|
|
46587
|
-
:param _BusinessType: <p
|
|
46554
|
+
:param _BusinessType: <p>文件对应业务类型,可以选择的类型如下</p><p>枚举值:</p><ul><li>TEMPLATE: 此上传的文件用户生成合同模板,文件类型支持.pdf/.doc/.docx/.html格式,如果非pdf文件需要通过<a href="https://qian.tencent.com/developers/companyApis/templatesAndFiles/CreateConvertTaskApi" target="_blank">创建文件转换任务</a>转换后才能使用</li><li>DOCUMENT: 此文件用来发起合同流程,文件类型支持.pdf/.doc/.docx/.jpg/.png/.xls.xlsx/.html。如果上传的是非pdf文件,用来发起流程,还需要通过<a href="https://qian.tencent.com/developers/companyApis/templatesAndFiles/CreateConvertTaskApi" target="_blank">创建文件转换任务</a>转换后得到的pdf文件才能用于发起合同接口。如果上传的文件不是用来发起合同,直接上传后使用返回的文件资源Id即可</li><li>SEAL: 此文件用于印章的生成,文件类型支持.jpg/.jpeg/.png</li><li>ARCHIVE: 此文件用于归档文件夹,文件类型支持.pdf/.zip格式</li><li>BUSINESSLICENSE: 此文件用于上传营业执照,用于后续<a href="https://qian.tencent.com/developers/companyApis/organizations/CreateOrganizationAuthUrl" target="_blank">创建企业认证链接</a>认证企业的时候提供营业执照,文件类型支持.jpg/.jpeg/.png,限制8M以内</li></ul>
|
|
46588
46555
|
:type BusinessType: str
|
|
46589
46556
|
:param _Caller: <p>执行本接口操作的员工信息。其中OperatorId为必填字段,即用户的UserId。<br>注: <code>在调用此接口时,请确保指定的员工已获得所需的接口调用权限,并具备接口传入的相应资源的数据权限。</code></p>
|
|
46590
46557
|
:type Caller: :class:`tencentcloud.ess.v20201111.models.Caller`
|
|
@@ -46615,7 +46582,7 @@ class UploadFilesRequest(AbstractModel):
|
|
|
46615
46582
|
|
|
46616
46583
|
@property
|
|
46617
46584
|
def BusinessType(self):
|
|
46618
|
-
r"""<p
|
|
46585
|
+
r"""<p>文件对应业务类型,可以选择的类型如下</p><p>枚举值:</p><ul><li>TEMPLATE: 此上传的文件用户生成合同模板,文件类型支持.pdf/.doc/.docx/.html格式,如果非pdf文件需要通过<a href="https://qian.tencent.com/developers/companyApis/templatesAndFiles/CreateConvertTaskApi" target="_blank">创建文件转换任务</a>转换后才能使用</li><li>DOCUMENT: 此文件用来发起合同流程,文件类型支持.pdf/.doc/.docx/.jpg/.png/.xls.xlsx/.html。如果上传的是非pdf文件,用来发起流程,还需要通过<a href="https://qian.tencent.com/developers/companyApis/templatesAndFiles/CreateConvertTaskApi" target="_blank">创建文件转换任务</a>转换后得到的pdf文件才能用于发起合同接口。如果上传的文件不是用来发起合同,直接上传后使用返回的文件资源Id即可</li><li>SEAL: 此文件用于印章的生成,文件类型支持.jpg/.jpeg/.png</li><li>ARCHIVE: 此文件用于归档文件夹,文件类型支持.pdf/.zip格式</li><li>BUSINESSLICENSE: 此文件用于上传营业执照,用于后续<a href="https://qian.tencent.com/developers/companyApis/organizations/CreateOrganizationAuthUrl" target="_blank">创建企业认证链接</a>认证企业的时候提供营业执照,文件类型支持.jpg/.jpeg/.png,限制8M以内</li></ul>
|
|
46619
46586
|
:rtype: str
|
|
46620
46587
|
"""
|
|
46621
46588
|
return self._BusinessType
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-ess
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.166
|
|
4
4
|
Summary: Tencent Cloud Ess 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.166
|
|
19
19
|
|
|
20
20
|
============================
|
|
21
21
|
Tencent Cloud SDK for Python
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tencentcloud-sdk-python-common<4.0.0,>=3.1.166
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tencentcloud-sdk-python-common<4.0.0,>=3.1.155
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|