tccli 3.0.1276.1__py2.py3-none-any.whl → 3.0.1277.1__py2.py3-none-any.whl

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.
tccli/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '3.0.1276.1'
1
+ __version__ = '3.0.1277.1'
@@ -205,6 +205,26 @@
205
205
  "output_required": true,
206
206
  "type": "list",
207
207
  "value_allowed_null": false
208
+ },
209
+ {
210
+ "disabled": false,
211
+ "document": "三级标签",
212
+ "example": "无",
213
+ "member": "string",
214
+ "name": "SubTag",
215
+ "output_required": false,
216
+ "type": "string",
217
+ "value_allowed_null": false
218
+ },
219
+ {
220
+ "disabled": false,
221
+ "document": "三级标签码",
222
+ "example": "无",
223
+ "member": "string",
224
+ "name": "SubTagCode",
225
+ "output_required": false,
226
+ "type": "string",
227
+ "value_allowed_null": false
208
228
  }
209
229
  ],
210
230
  "usage": "out"
@@ -392,63 +412,63 @@
392
412
  "members": [
393
413
  {
394
414
  "disabled": false,
395
- "document": "该字段用于返回检测结果所对应的恶意标签。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告,**Custom**:自定义违规;以及其他令人反感、不安全或不适宜的内容类型。\n注意:此字段可能返回 null,表示取不到有效值。",
415
+ "document": "该字段用于返回检测结果所对应的恶意标签。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告,**Custom**:自定义违规;以及其他令人反感、不安全或不适宜的内容类型。",
396
416
  "example": "无",
397
417
  "member": "string",
398
418
  "name": "Label",
399
- "required": true,
419
+ "output_required": true,
400
420
  "type": "string",
401
- "value_allowed_null": true
421
+ "value_allowed_null": false
402
422
  },
403
423
  {
404
424
  "disabled": false,
405
- "document": "该字段用于返回ASR识别出的文本内容命中的关键词信息,用于标注内容违规的具体原因(如:加我微信)。该参数可能会有多个返回值,代表命中的多个关键词;若返回值为空,Score不为空,则代表识别结果所对应的恶意标签(Label)来自于语义模型判断的返回值。\n注意:此字段可能返回 null,表示取不到有效值。",
425
+ "document": "该字段用于返回ASR识别出的文本内容命中的关键词信息,用于标注内容违规的具体原因(如:加我微信)。该参数可能会有多个返回值,代表命中的多个关键词;若返回值为空,Score不为空,则代表识别结果所对应的恶意标签(Label)来自于语义模型判断的返回值。",
406
426
  "example": "无",
407
427
  "member": "string",
408
428
  "name": "Keywords",
409
- "required": true,
429
+ "output_required": true,
410
430
  "type": "list",
411
- "value_allowed_null": true
431
+ "value_allowed_null": false
412
432
  },
413
433
  {
414
434
  "disabled": false,
415
- "document": "该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的ID,以方便自定义库管理和配置。\n注意:此字段可能返回 null,表示取不到有效值。",
435
+ "document": "该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的ID,以方便自定义库管理和配置。",
416
436
  "example": "无",
417
437
  "member": "string",
418
438
  "name": "LibId",
419
- "required": true,
439
+ "output_required": true,
420
440
  "type": "string",
421
- "value_allowed_null": true
441
+ "value_allowed_null": false
422
442
  },
423
443
  {
424
444
  "disabled": false,
425
- "document": "该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的名称,以方便自定义库管理和配置。\n注意:此字段可能返回 null,表示取不到有效值。",
445
+ "document": "该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的名称,以方便自定义库管理和配置。",
426
446
  "example": "无",
427
447
  "member": "string",
428
448
  "name": "LibName",
429
- "required": true,
449
+ "output_required": true,
430
450
  "type": "string",
431
- "value_allowed_null": true
451
+ "value_allowed_null": false
432
452
  },
433
453
  {
434
454
  "disabled": false,
435
- "document": "该字段用于返回当前标签下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高**),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容。\n注意:此字段可能返回 null,表示取不到有效值。",
455
+ "document": "该字段用于返回当前标签下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高**),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容。",
436
456
  "example": "无",
437
457
  "member": "int64",
438
458
  "name": "Score",
439
- "required": true,
459
+ "output_required": true,
440
460
  "type": "int",
441
- "value_allowed_null": true
461
+ "value_allowed_null": false
442
462
  },
443
463
  {
444
464
  "disabled": false,
445
- "document": "该字段用于返回后续操作建议。当您获取到判定结果后,返回值表示具体的后续建议操作。<br>\n返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过\n注意:此字段可能返回 null,表示取不到有效值。",
465
+ "document": "该字段用于返回后续操作建议。当您获取到判定结果后,返回值表示具体的后续建议操作。<br>\n返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过",
446
466
  "example": "无",
447
467
  "member": "string",
448
468
  "name": "Suggestion",
449
- "required": true,
469
+ "output_required": true,
450
470
  "type": "string",
451
- "value_allowed_null": true
471
+ "value_allowed_null": false
452
472
  },
453
473
  {
454
474
  "disabled": false,
@@ -456,19 +476,29 @@
456
476
  "example": "无",
457
477
  "member": "int64",
458
478
  "name": "LibType",
459
- "required": true,
479
+ "output_required": true,
460
480
  "type": "int",
461
481
  "value_allowed_null": false
462
482
  },
463
483
  {
464
484
  "disabled": false,
465
- "document": "该字段用于返回当前标签(Lable)下的二级标签。\n注意:此字段可能返回 null,表示取不到有效值。",
485
+ "document": "该字段用于返回当前标签(Lable)下的二级标签。",
466
486
  "example": "无",
467
487
  "member": "string",
468
488
  "name": "SubLabel",
469
- "required": true,
489
+ "output_required": true,
470
490
  "type": "string",
471
- "value_allowed_null": true
491
+ "value_allowed_null": false
492
+ },
493
+ {
494
+ "disabled": false,
495
+ "document": "该字段用于命中的关键词信息",
496
+ "example": "无",
497
+ "member": "HitInfo",
498
+ "name": "HitInfos",
499
+ "output_required": false,
500
+ "type": "list",
501
+ "value_allowed_null": false
472
502
  }
473
503
  ],
474
504
  "usage": "out"
@@ -1752,6 +1752,15 @@
1752
1752
  "name": "ClientToken",
1753
1753
  "required": false,
1754
1754
  "type": "string"
1755
+ },
1756
+ {
1757
+ "disabled": false,
1758
+ "document": "置放群组的亲和度,在置放群组的实例会按该亲和度分布,亲和度的取值范围是:1-10,默认为1",
1759
+ "example": "3",
1760
+ "member": "int64",
1761
+ "name": "Affinity",
1762
+ "required": false,
1763
+ "type": "int"
1755
1764
  }
1756
1765
  ],
1757
1766
  "type": "object"
@@ -4646,30 +4646,30 @@
4646
4646
  {
4647
4647
  "disabled": false,
4648
4648
  "document": "后付费配额列表\n注意:此字段可能返回 null,表示取不到有效值。",
4649
- "example": "[]",
4649
+ "example": "",
4650
4650
  "member": "QuotaEntity",
4651
4651
  "name": "PostPaidQuotaSet",
4652
- "required": true,
4652
+ "output_required": true,
4653
4653
  "type": "list",
4654
4654
  "value_allowed_null": true
4655
4655
  },
4656
4656
  {
4657
4657
  "disabled": false,
4658
4658
  "document": "竞价实例配额列表\n注意:此字段可能返回 null,表示取不到有效值。",
4659
- "example": "[]",
4659
+ "example": "",
4660
4660
  "member": "QuotaEntity",
4661
4661
  "name": "SpotPaidQuotaSet",
4662
- "required": true,
4662
+ "output_required": true,
4663
4663
  "type": "list",
4664
4664
  "value_allowed_null": true
4665
4665
  },
4666
4666
  {
4667
4667
  "disabled": false,
4668
4668
  "document": "eks配额\n注意:此字段可能返回 null,表示取不到有效值。",
4669
- "example": "[]",
4669
+ "example": "",
4670
4670
  "member": "PodSaleSpec",
4671
4671
  "name": "EksQuotaSet",
4672
- "required": true,
4672
+ "output_required": true,
4673
4673
  "type": "list",
4674
4674
  "value_allowed_null": true
4675
4675
  },
@@ -849,6 +849,58 @@ def doCreateFlowByFiles(args, parsed_globals):
849
849
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
850
850
 
851
851
 
852
+ def doCreateIntegrationSubOrganizationActiveRecord(args, parsed_globals):
853
+ g_param = parse_global_arg(parsed_globals)
854
+
855
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
856
+ cred = credential.CVMRoleCredential()
857
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
858
+ cred = credential.STSAssumeRoleCredential(
859
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
860
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
861
+ )
862
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
863
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
864
+ else:
865
+ cred = credential.Credential(
866
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
867
+ )
868
+ http_profile = HttpProfile(
869
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
870
+ reqMethod="POST",
871
+ endpoint=g_param[OptionsDefine.Endpoint],
872
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
873
+ )
874
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
875
+ if g_param[OptionsDefine.Language]:
876
+ profile.language = g_param[OptionsDefine.Language]
877
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
878
+ client = mod.EssClient(cred, g_param[OptionsDefine.Region], profile)
879
+ client._sdkVersion += ("_CLI_" + __version__)
880
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
881
+ model = models.CreateIntegrationSubOrganizationActiveRecordRequest()
882
+ model.from_json_string(json.dumps(args))
883
+ start_time = time.time()
884
+ while True:
885
+ rsp = client.CreateIntegrationSubOrganizationActiveRecord(model)
886
+ result = rsp.to_json_string()
887
+ try:
888
+ json_obj = json.loads(result)
889
+ except TypeError as e:
890
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
891
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
892
+ break
893
+ cur_time = time.time()
894
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
895
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
896
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
897
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
898
+ else:
899
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
900
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
901
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
902
+
903
+
852
904
  def doDescribeIntegrationRoles(args, parsed_globals):
853
905
  g_param = parse_global_arg(parsed_globals)
854
906
 
@@ -3553,7 +3605,7 @@ def doUploadFiles(args, parsed_globals):
3553
3605
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
3554
3606
 
3555
3607
 
3556
- def doCreateIntegrationSubOrganizationActiveRecord(args, parsed_globals):
3608
+ def doCreateFlowForwards(args, parsed_globals):
3557
3609
  g_param = parse_global_arg(parsed_globals)
3558
3610
 
3559
3611
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -3582,11 +3634,11 @@ def doCreateIntegrationSubOrganizationActiveRecord(args, parsed_globals):
3582
3634
  client = mod.EssClient(cred, g_param[OptionsDefine.Region], profile)
3583
3635
  client._sdkVersion += ("_CLI_" + __version__)
3584
3636
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
3585
- model = models.CreateIntegrationSubOrganizationActiveRecordRequest()
3637
+ model = models.CreateFlowForwardsRequest()
3586
3638
  model.from_json_string(json.dumps(args))
3587
3639
  start_time = time.time()
3588
3640
  while True:
3589
- rsp = client.CreateIntegrationSubOrganizationActiveRecord(model)
3641
+ rsp = client.CreateFlowForwards(model)
3590
3642
  result = rsp.to_json_string()
3591
3643
  try:
3592
3644
  json_obj = json.loads(result)
@@ -5244,6 +5296,7 @@ ACTION_MAP = {
5244
5296
  "VerifyDigitFile": doVerifyDigitFile,
5245
5297
  "CreatePartnerAutoSignAuthUrl": doCreatePartnerAutoSignAuthUrl,
5246
5298
  "CreateFlowByFiles": doCreateFlowByFiles,
5299
+ "CreateIntegrationSubOrganizationActiveRecord": doCreateIntegrationSubOrganizationActiveRecord,
5247
5300
  "DescribeIntegrationRoles": doDescribeIntegrationRoles,
5248
5301
  "DescribeIntegrationEmployees": doDescribeIntegrationEmployees,
5249
5302
  "CreatePersonAuthCertificateImage": doCreatePersonAuthCertificateImage,
@@ -5296,7 +5349,7 @@ ACTION_MAP = {
5296
5349
  "CreateConvertTaskApi": doCreateConvertTaskApi,
5297
5350
  "CreateOrganizationAuthUrl": doCreateOrganizationAuthUrl,
5298
5351
  "UploadFiles": doUploadFiles,
5299
- "CreateIntegrationSubOrganizationActiveRecord": doCreateIntegrationSubOrganizationActiveRecord,
5352
+ "CreateFlowForwards": doCreateFlowForwards,
5300
5353
  "DescribeFlowComponents": doDescribeFlowComponents,
5301
5354
  "CreateWebThemeConfig": doCreateWebThemeConfig,
5302
5355
  "CreateDynamicFlowApprover": doCreateDynamicFlowApprover,
@@ -168,6 +168,13 @@
168
168
  "output": "CreateFlowEvidenceReportResponse",
169
169
  "status": "online"
170
170
  },
171
+ "CreateFlowForwards": {
172
+ "document": "该接口用于将合同中本企业当前经办人转为本企业其他员工进行操作。\n\n注意:\n1. 转交的目标经办人需要已经加入企业,且完成实名。\n2. 仅企业拥有`超管`、`法人`或者`合同管理员`角色的员工才有调用本接口的权限。如果使用主带子方式调用,请确保您已经加入子企业,且账号在子企业中担任任一上述角色。\n3. 仅支持当前经办人为待签署或待填写状态时进行转交操作。\n4. 若原合同有填写控件,且当前经办人已经完成填写,则不支持进行转交。\n5. 若当前经办人已签署完成,或者处于签署流程中,则不支持进行转交。",
173
+ "input": "CreateFlowForwardsRequest",
174
+ "name": "变更本企业待签合同的经办人",
175
+ "output": "CreateFlowForwardsResponse",
176
+ "status": "online"
177
+ },
171
178
  "CreateFlowGroupByFiles": {
172
179
  "document": "此接口(CreateFlowGroupByFiles)可用于通过多个文件创建合同组签署流程。使用该接口需要先依赖[多文件上传](https://qian.tencent.com/developers/companyApis/templatesAndFiles/UploadFiles)接口返回的FileIds。\n\n- 该接口允许通过PDF资源ID一次性创建多个合同,这些合同被组织在一个合同组中。\n- 每个签署方将收到一个签署链接,通过这个链接可以访问并签署合同组中的所有合同。\n- 合同组中的合同必须作为一个整体进行签署,不能将合同组拆分成单独的合同进行逐一签署。\n\n<img src=\"https://qcloudimg.tencent-cloud.cn/raw/a63074a0293c9ff5bf6c0bb74c0d3b20.png\" width=\"400\" />\n\n### 2. 适用场景\n\n该接口适用于需要一次性完成多份合同签署的情况,多份合同一般具有关联性,用户以目录的形式查看合同。\n\n\n### 3. 合同额度的扣减与返还\n- **扣减时机**:合同一旦发起,相关的合同额度就会被扣减,合同组下面的每个合同都要扣减一个合同额度。\n- **返还条件**:只有在合同被撤销且没有任何签署方签署过,或者只有自动签署的情况下,合同额度才会被返还。\n- **不返还的情况**:如果合同已过期、被拒签、签署完成或已解除,合同额度将不会被返还。\n\n### 4.合同组暂不支持抄送功能",
173
180
  "input": "CreateFlowGroupByFilesRequest",
@@ -4134,6 +4141,80 @@
4134
4141
  ],
4135
4142
  "type": "object"
4136
4143
  },
4144
+ "CreateFlowForwardsRequest": {
4145
+ "document": "CreateFlowForwards请求参数结构体",
4146
+ "members": [
4147
+ {
4148
+ "disabled": false,
4149
+ "document": "执行本接口操作的员工信息。注: `在调用此接口时,请确保指定的员工已获得所需的接口调用权限,并具备接口传入的相应资源的数据权限。`",
4150
+ "example": "无",
4151
+ "member": "UserInfo",
4152
+ "name": "Operator",
4153
+ "required": true,
4154
+ "type": "object"
4155
+ },
4156
+ {
4157
+ "disabled": false,
4158
+ "document": "合同对应参与方需要修改的目标经办人。其UserId可在企业控制台中组织管理里面找到。或者使用获取员工信息接口得到。\n\n注意:`需要保证目标经办人已经加入企业且已实名`",
4159
+ "example": "无",
4160
+ "member": "string",
4161
+ "name": "TargetUserId",
4162
+ "required": true,
4163
+ "type": "string"
4164
+ },
4165
+ {
4166
+ "disabled": false,
4167
+ "document": "企业签署方的合同及对应签署方",
4168
+ "example": "无",
4169
+ "member": "FlowForwardInfo",
4170
+ "name": "FlowForwardInfos",
4171
+ "required": true,
4172
+ "type": "list"
4173
+ },
4174
+ {
4175
+ "disabled": false,
4176
+ "document": "代理企业和员工的信息。在集团企业代理子企业操作的场景中,需设置此参数。在此情境下,ProxyOrganizationId(子企业的组织ID)为必填项。",
4177
+ "example": "无",
4178
+ "member": "Agent",
4179
+ "name": "Agent",
4180
+ "required": false,
4181
+ "type": "object"
4182
+ }
4183
+ ],
4184
+ "type": "object"
4185
+ },
4186
+ "CreateFlowForwardsResponse": {
4187
+ "document": "CreateFlowForwards返回参数结构体",
4188
+ "members": [
4189
+ {
4190
+ "disabled": false,
4191
+ "document": "失败的合同id以及错误详情",
4192
+ "example": "无",
4193
+ "member": "FlowForwardResult",
4194
+ "name": "FailedFlows",
4195
+ "output_required": false,
4196
+ "type": "list",
4197
+ "value_allowed_null": false
4198
+ },
4199
+ {
4200
+ "disabled": false,
4201
+ "document": "成功的合同id",
4202
+ "example": "无",
4203
+ "member": "string",
4204
+ "name": "SuccessFlows",
4205
+ "output_required": false,
4206
+ "type": "list",
4207
+ "value_allowed_null": false
4208
+ },
4209
+ {
4210
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
4211
+ "member": "string",
4212
+ "name": "RequestId",
4213
+ "type": "string"
4214
+ }
4215
+ ],
4216
+ "type": "object"
4217
+ },
4137
4218
  "CreateFlowGroupByFilesRequest": {
4138
4219
  "document": "CreateFlowGroupByFiles请求参数结构体",
4139
4220
  "members": [
@@ -10735,23 +10816,23 @@
10735
10816
  "members": [
10736
10817
  {
10737
10818
  "disabled": false,
10738
- "document": "员工在电子签的userId\n注意:此字段可能返回 null,表示取不到有效值。",
10819
+ "document": "员工在电子签的userId",
10739
10820
  "example": "yDxVwUyKQWho8CUuO4zjEyQOAgwvr4Zy",
10740
10821
  "member": "string",
10741
10822
  "name": "UserId",
10742
10823
  "output_required": true,
10743
10824
  "type": "string",
10744
- "value_allowed_null": true
10825
+ "value_allowed_null": false
10745
10826
  },
10746
10827
  {
10747
10828
  "disabled": false,
10748
- "document": "员工在第三方平台的openId\n注意:此字段可能返回 null,表示取不到有效值。",
10829
+ "document": "员工在第三方平台的openId",
10749
10830
  "example": "n9527",
10750
10831
  "member": "string",
10751
10832
  "name": "OpenId",
10752
10833
  "output_required": true,
10753
10834
  "type": "string",
10754
- "value_allowed_null": true
10835
+ "value_allowed_null": false
10755
10836
  },
10756
10837
  {
10757
10838
  "disabled": false,
@@ -11847,6 +11928,56 @@
11847
11928
  ],
11848
11929
  "usage": "out"
11849
11930
  },
11931
+ "FlowForwardInfo": {
11932
+ "document": "合同转交相关信息",
11933
+ "members": [
11934
+ {
11935
+ "disabled": false,
11936
+ "document": "合同流程ID,为32位字符串。此接口的合同流程ID需要由[创建签署流程](https://qian.tencent.com/developers/companyApis/startFlows/CreateFlow)接口创建得到。",
11937
+ "example": "yDCVNUUckpw3nnnyUVScgTvSA1IaZgM7",
11938
+ "member": "string",
11939
+ "name": "FlowId",
11940
+ "required": true,
11941
+ "type": "string"
11942
+ },
11943
+ {
11944
+ "disabled": false,
11945
+ "document": "签署方经办人在合同中的参与方ID,为32位字符串。",
11946
+ "example": "yDtwEUUckp7f8w6uUuBHsZJd9KcpXpMH",
11947
+ "member": "string",
11948
+ "name": "RecipientId",
11949
+ "required": true,
11950
+ "type": "string"
11951
+ }
11952
+ ],
11953
+ "usage": "in"
11954
+ },
11955
+ "FlowForwardResult": {
11956
+ "document": "转交合同结果",
11957
+ "members": [
11958
+ {
11959
+ "disabled": false,
11960
+ "document": "合同流程ID为32位字符串。您可以登录腾讯电子签控制台,在 \"合同\" -> \"合同中心\" 中查看某个合同的FlowId(在页面中展示为合同ID)。[点击查看FlowId在控制台中的位置](https://qcloudimg.tencent-cloud.cn/raw/0a83015166cfe1cb043d14f9ec4bd75e.png)。",
11961
+ "example": "yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm",
11962
+ "member": "string",
11963
+ "name": "FlowId",
11964
+ "output_required": false,
11965
+ "type": "string",
11966
+ "value_allowed_null": false
11967
+ },
11968
+ {
11969
+ "disabled": false,
11970
+ "document": "如果失败,返回的错误细节。",
11971
+ "example": "合同目标转出参与方非本企业员工,请检查",
11972
+ "member": "string",
11973
+ "name": "ErrorDetail",
11974
+ "output_required": false,
11975
+ "type": "string",
11976
+ "value_allowed_null": false
11977
+ }
11978
+ ],
11979
+ "usage": "out"
11980
+ },
11850
11981
  "FlowGroupApproverInfo": {
11851
11982
  "document": "合同组相关信息,指定合同组子合同和签署方的信息,用于补充动态签署人。",
11852
11983
  "members": [
@@ -12633,13 +12764,13 @@
12633
12764
  "members": [
12634
12765
  {
12635
12766
  "disabled": false,
12636
- "document": "意愿核身结果详细数据,与每段点头确认过程一一对应\n注意:此字段可能返回 null,表示取不到有效值。",
12767
+ "document": "意愿核身结果详细数据,与每段点头确认过程一一对应",
12637
12768
  "example": "无",
12638
12769
  "member": "IntentionActionResultDetail",
12639
12770
  "name": "Details",
12640
12771
  "output_required": false,
12641
12772
  "type": "list",
12642
- "value_allowed_null": true
12773
+ "value_allowed_null": false
12643
12774
  }
12644
12775
  ],
12645
12776
  "usage": "out"
@@ -275,13 +275,13 @@
275
275
  },
276
276
  {
277
277
  "document": "二要素形式补充签署人",
278
- "input": "POST / HTTP/1.1\nHost: ess.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CreateDynamicFlowApprover\n<公共请求参数>\n\n{\n \"Operator\": {\n \"UserId\": \"操作人id\"\n },\n \"FlowId\": \"合同id\",\n \"Approvers\": [{\n \"ApproverType\": 0,\n \"OrganizationName\": \"企业名称\",\n \"ApproverName\": \"签署人姓名\",\n \"ApproverMobile\": \"签署人手机号\",\n \"PreReadTime\": 3,\n \"SignComponents\": [{\n \"ComponentPosX\": 260,\n \"ComponentPosY\": 260,\n \"ComponentWidth\": 100,\n \"ComponentHeight\": 100,\n \"FileIndex\": 0,\n \"ComponentType\": \"SIGN_SEAL\",\n \"ComponentPage\": 1\n }\n ]\n }\n\n ]\n}\n",
278
+ "input": "POST / HTTP/1.1\nHost: ess.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CreateDynamicFlowApprover\n<公共请求参数>\n\n{\n \"Operator\": {\n \"UserId\": \"操作人id\"\n },\n \"FlowId\": \"合同id\",\n \"Approvers\": [\n {\n \"ApproverType\": 0,\n \"OrganizationName\": \"企业名称\",\n \"ApproverName\": \"签署人姓名\",\n \"ApproverMobile\": \"签署人手机号\",\n \"PreReadTime\": 3,\n \"SignComponents\": [\n {\n \"ComponentPosX\": 260,\n \"ComponentPosY\": 260,\n \"ComponentWidth\": 100,\n \"ComponentHeight\": 100,\n \"FileIndex\": 0,\n \"ComponentType\": \"SIGN_SEAL\",\n \"ComponentPage\": 1\n }\n ]\n }\n ]\n}",
279
279
  "output": "{\n \"Response\": {\n \"DynamicFlowApproverList\": [\n {\n \"ApproverStatus\": 1,\n \"RecipientId\": \"yDCjFUUckp48f6hcUyh7ukYyfaIqHqnR\",\n \"SignId\": \"yDCjFUUckp48f6hiUyh7ukYBjxSiGXzB\"\n }\n ],\n \"FlowId\": \"yDCjFUUckp48f680Uyh7ukYy5JFb80ux\",\n \"RequestId\": \"s1728544317709049372\"\n }\n}",
280
280
  "title": "二要素形式补充企业签署人"
281
281
  },
282
282
  {
283
283
  "document": "二要素补充个人签署人",
284
- "input": "POST / HTTP/1.1\nHost: ess.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CreateDynamicFlowApprover\n<公共请求参数>\n\n{\n \"Operator\": {\n \"UserId\": \"操作人id\"\n },\n \"FlowId\": \"合同id\",\n \"Approvers\": [{\n \"ApproverType\": 1,\n \"ApproverName\": \"签署人姓名\",\n \"ApproverMobile\": \"签署人手机号\",\n \"PreReadTime\": 3,\n \"SignComponents\": [{\n \"ComponentPosX\": 260,\n \"ComponentPosY\": 260,\n \"ComponentWidth\": 100,\n \"ComponentHeight\": 100,\n \"FileIndex\": 0,\n \"ComponentType\": \"SIGN_SEAL\",\n \"ComponentPage\": 1\n }\n ]\n }\n\n ]\n}",
284
+ "input": "POST / HTTP/1.1\nHost: ess.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CreateDynamicFlowApprover\n<公共请求参数>\n\n{\n \"Operator\": {\n \"UserId\": \"操作人id\"\n },\n \"FlowId\": \"合同id\",\n \"Approvers\": [\n {\n \"ApproverType\": 1,\n \"ApproverName\": \"签署人姓名\",\n \"ApproverMobile\": \"签署人手机号\",\n \"PreReadTime\": 3,\n \"SignComponents\": [\n {\n \"ComponentPosX\": 260,\n \"ComponentPosY\": 260,\n \"ComponentWidth\": 100,\n \"ComponentHeight\": 100,\n \"FileIndex\": 0,\n \"ComponentType\": \"SIGN_SEAL\",\n \"ComponentPage\": 1\n }\n ]\n }\n ]\n}",
285
285
  "output": "{\n \"Response\": {\n \"DynamicFlowApproverList\": [\n {\n \"ApproverStatus\": 1,\n \"RecipientId\": \"yDCjFUUckp48f6hcUyh7ukYyfaIqHqnR\",\n \"SignId\": \"yDCjFUUckp48f6hiUyh7ukYBjxSiGXzB\"\n }\n ],\n \"FlowId\": \"合同id\",\n \"RequestId\": \"s1728544317709049372\"\n }\n}",
286
286
  "title": "二要素补充个人签署人"
287
287
  },
@@ -612,6 +612,14 @@
612
612
  "title": "错误示例:流程未签署完,请求出证失败"
613
613
  }
614
614
  ],
615
+ "CreateFlowForwards": [
616
+ {
617
+ "document": "将当前合同经办人转为其他员工",
618
+ "input": "POST / HTTP/1.1\nHost: ess.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CreateFlowForwards\n<公共请求参数>\n\n{\n \"TargetUserId\": \"yDCkSUUck******************BQnKvKPVf\",\n \"FlowForwardInfos\": [\n {\n \"FlowId\": \"yDtSPUU**********************PHG7JhZM\",\n \"RecipientId\": \"yDtSPUU******************os8flxcvLpj\"\n },\n {\n \"FlowId\": \"yDtSPUU**********************PHG7s8flx\",\n \"RecipientId\": \"yDtSPUU******************oSPUxSP\"\n }\n ],\n \"Operator\": {\n \"UserId\": \"yDtSPUU******************p4z5lt9UuY\",\n \"ClientIp\": \"116.211.195.11\"\n }\n}",
619
+ "output": "{\n \"Response\": {\n \"FailedFlows\": [\n {\n \"ErrorDetail\": \"转发人状态非待签署或待填写,禁止转发\",\n \"FlowId\": \"yDtSPUU**********************PHG7JhZM\"\n }\n ],\n \"RequestId\": \"s1740641173120185806\",\n \"SuccessFlows\": [\n \"yDtSPUU**********************PHG7s8flx\"\n ]\n }\n}",
620
+ "title": "将当前合同经办人转为其他员工"
621
+ }
622
+ ],
615
623
  "CreateFlowGroupByFiles": [
616
624
  {
617
625
  "document": "1. 子合同1为B2B合同(Approvers中包含两个ApproverInfo元素);\n2. 子合同1的发起方企业自动签署(ApproverType设置为3,SIGN_SEAL对应签署控件的ComponentValue设置为自动签署使用的印章Id);\n3. 子合同2为普通B2B合同(Approvers中包含两个ApproverInfo元素,且ApproverType都是0);\n4. 子合同3为普通B2C合同(Approvers中包含两个ApproverInfo元素,C端签署人的ApproverType为1)。",
@@ -4491,6 +4491,58 @@ def doUploadFiles(args, parsed_globals):
4491
4491
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
4492
4492
 
4493
4493
 
4494
+ def doCreateFlowForwards(args, parsed_globals):
4495
+ g_param = parse_global_arg(parsed_globals)
4496
+
4497
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
4498
+ cred = credential.CVMRoleCredential()
4499
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
4500
+ cred = credential.STSAssumeRoleCredential(
4501
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
4502
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
4503
+ )
4504
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
4505
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
4506
+ else:
4507
+ cred = credential.Credential(
4508
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
4509
+ )
4510
+ http_profile = HttpProfile(
4511
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
4512
+ reqMethod="POST",
4513
+ endpoint=g_param[OptionsDefine.Endpoint],
4514
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
4515
+ )
4516
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
4517
+ if g_param[OptionsDefine.Language]:
4518
+ profile.language = g_param[OptionsDefine.Language]
4519
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
4520
+ client = mod.EssbasicClient(cred, g_param[OptionsDefine.Region], profile)
4521
+ client._sdkVersion += ("_CLI_" + __version__)
4522
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
4523
+ model = models.CreateFlowForwardsRequest()
4524
+ model.from_json_string(json.dumps(args))
4525
+ start_time = time.time()
4526
+ while True:
4527
+ rsp = client.CreateFlowForwards(model)
4528
+ result = rsp.to_json_string()
4529
+ try:
4530
+ json_obj = json.loads(result)
4531
+ except TypeError as e:
4532
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
4533
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
4534
+ break
4535
+ cur_time = time.time()
4536
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
4537
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
4538
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
4539
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
4540
+ else:
4541
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
4542
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
4543
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
4544
+
4545
+
4494
4546
  def doChannelCreateFlowSignUrl(args, parsed_globals):
4495
4547
  g_param = parse_global_arg(parsed_globals)
4496
4548
 
@@ -7346,6 +7398,7 @@ ACTION_MAP = {
7346
7398
  "DescribeTemplates": doDescribeTemplates,
7347
7399
  "ChannelCancelUserAutoSignEnableUrl": doChannelCancelUserAutoSignEnableUrl,
7348
7400
  "UploadFiles": doUploadFiles,
7401
+ "CreateFlowForwards": doCreateFlowForwards,
7349
7402
  "ChannelCreateFlowSignUrl": doChannelCreateFlowSignUrl,
7350
7403
  "VerifySubOrganization": doVerifySubOrganization,
7351
7404
  "ArchiveFlow": doArchiveFlow,