tccli 3.0.1159.1__py2.py3-none-any.whl → 3.0.1161.1__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. tccli/__init__.py +1 -1
  2. tccli/services/aiart/v20221229/api.json +12 -15
  3. tccli/services/apm/v20210622/api.json +9 -0
  4. tccli/services/cdb/v20170320/api.json +3 -1
  5. tccli/services/cdwdoris/cdwdoris_client.py +1056 -49
  6. tccli/services/cdwdoris/v20211228/api.json +3192 -1014
  7. tccli/services/cdwdoris/v20211228/examples.json +152 -0
  8. tccli/services/cfg/cfg_client.py +224 -12
  9. tccli/services/cfg/v20210820/api.json +897 -32
  10. tccli/services/cfg/v20210820/examples.json +32 -0
  11. tccli/services/cfw/v20190904/api.json +12 -2
  12. tccli/services/cls/v20201016/api.json +11 -1
  13. tccli/services/cme/v20191029/api.json +9 -9
  14. tccli/services/cme/v20191029/examples.json +1 -1
  15. tccli/services/csip/csip_client.py +53 -0
  16. tccli/services/csip/v20221121/api.json +136 -2
  17. tccli/services/csip/v20221121/examples.json +8 -0
  18. tccli/services/cwp/v20180228/api.json +66 -46
  19. tccli/services/cwp/v20180228/examples.json +1 -1
  20. tccli/services/dlc/v20210125/api.json +31 -2
  21. tccli/services/dnspod/v20210323/api.json +1 -1
  22. tccli/services/domain/v20180808/api.json +1 -1
  23. tccli/services/ess/v20201111/api.json +4 -4
  24. tccli/services/ess/v20201111/examples.json +6 -6
  25. tccli/services/essbasic/v20210526/api.json +21 -12
  26. tccli/services/essbasic/v20210526/examples.json +7 -1
  27. tccli/services/faceid/v20180301/api.json +1 -1
  28. tccli/services/iotexplorer/v20190423/api.json +25 -25
  29. tccli/services/iotexplorer/v20190423/examples.json +10 -4
  30. tccli/services/lcic/lcic_client.py +57 -4
  31. tccli/services/lcic/v20220817/api.json +52 -0
  32. tccli/services/lcic/v20220817/examples.json +8 -0
  33. tccli/services/live/v20180801/api.json +1 -1
  34. tccli/services/lke/v20231130/api.json +563 -9
  35. tccli/services/ocr/v20181119/api.json +10 -0
  36. tccli/services/trro/v20220325/api.json +181 -6
  37. tccli/services/trro/v20220325/examples.json +3 -3
  38. tccli/services/trtc/trtc_client.py +53 -0
  39. tccli/services/trtc/v20190722/api.json +83 -10
  40. tccli/services/trtc/v20190722/examples.json +27 -13
  41. tccli/services/tsf/v20180326/api.json +8 -7
  42. tccli/services/tsf/v20180326/examples.json +1 -1
  43. tccli/services/vclm/v20240523/api.json +137 -1
  44. tccli/services/vclm/v20240523/examples.json +46 -0
  45. tccli/services/vclm/vclm_client.py +106 -0
  46. tccli/services/vpc/v20170312/api.json +1 -1
  47. tccli/services/vtc/v20240223/api.json +1 -1
  48. {tccli-3.0.1159.1.dist-info → tccli-3.0.1161.1.dist-info}/METADATA +2 -2
  49. {tccli-3.0.1159.1.dist-info → tccli-3.0.1161.1.dist-info}/RECORD +52 -52
  50. {tccli-3.0.1159.1.dist-info → tccli-3.0.1161.1.dist-info}/WHEEL +0 -0
  51. {tccli-3.0.1159.1.dist-info → tccli-3.0.1161.1.dist-info}/entry_points.txt +0 -0
  52. {tccli-3.0.1159.1.dist-info → tccli-3.0.1161.1.dist-info}/license_files/LICENSE +0 -0
@@ -21084,6 +21084,16 @@
21084
21084
  "type": "object",
21085
21085
  "value_allowed_null": false
21086
21086
  },
21087
+ {
21088
+ "disabled": false,
21089
+ "document": "发票标题",
21090
+ "example": "无",
21091
+ "member": "string",
21092
+ "name": "InvoiceTitle",
21093
+ "output_required": false,
21094
+ "type": "string",
21095
+ "value_allowed_null": false
21096
+ },
21087
21097
  {
21088
21098
  "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
21089
21099
  "member": "string",
@@ -593,6 +593,15 @@
593
593
  "name": "PageNumber",
594
594
  "required": false,
595
595
  "type": "int"
596
+ },
597
+ {
598
+ "disabled": false,
599
+ "document": "设备状态筛选,不填默认为不过滤。取值:[\"ready\",\"connected\",\"online\"],online代表ready或connected",
600
+ "example": "ready",
601
+ "member": "string",
602
+ "name": "DeviceStatus",
603
+ "required": false,
604
+ "type": "string"
596
605
  }
597
606
  ],
598
607
  "type": "object"
@@ -606,7 +615,7 @@
606
615
  "example": "无",
607
616
  "member": "DeviceInfo",
608
617
  "name": "Devices",
609
- "required": true,
618
+ "output_required": true,
610
619
  "type": "list",
611
620
  "value_allowed_null": false
612
621
  },
@@ -616,7 +625,7 @@
616
625
  "example": "16",
617
626
  "member": "int64",
618
627
  "name": "Total",
619
- "required": true,
628
+ "output_required": true,
620
629
  "type": "int",
621
630
  "value_allowed_null": false
622
631
  },
@@ -626,7 +635,7 @@
626
635
  "example": "10",
627
636
  "member": "int64",
628
637
  "name": "Num",
629
- "required": true,
638
+ "output_required": true,
630
639
  "type": "int",
631
640
  "value_allowed_null": false
632
641
  },
@@ -663,7 +672,7 @@
663
672
  "example": "无",
664
673
  "member": "SessionDeviceDetail",
665
674
  "name": "Details",
666
- "required": true,
675
+ "output_required": true,
667
676
  "type": "list",
668
677
  "value_allowed_null": false
669
678
  },
@@ -2000,6 +2009,72 @@
2000
2009
  ],
2001
2010
  "type": "object"
2002
2011
  },
2012
+ "MultiNet": {
2013
+ "document": "多网的网卡状态信息",
2014
+ "members": [
2015
+ {
2016
+ "disabled": false,
2017
+ "document": "网卡序号\n注意:此字段可能返回 null,表示取不到有效值。",
2018
+ "example": "0",
2019
+ "member": "int64",
2020
+ "name": "NetId",
2021
+ "output_required": false,
2022
+ "type": "int",
2023
+ "value_allowed_null": true
2024
+ },
2025
+ {
2026
+ "disabled": false,
2027
+ "document": "网卡IP\n注意:此字段可能返回 null,表示取不到有效值。",
2028
+ "example": "\"10.211.65.6\"",
2029
+ "member": "string",
2030
+ "name": "NetIp",
2031
+ "output_required": false,
2032
+ "type": "string",
2033
+ "value_allowed_null": true
2034
+ },
2035
+ {
2036
+ "disabled": false,
2037
+ "document": "时延,单位ms\n注意:此字段可能返回 null,表示取不到有效值。",
2038
+ "example": "[10,20,30,20,10]",
2039
+ "member": "int64",
2040
+ "name": "Rtt",
2041
+ "output_required": false,
2042
+ "type": "list",
2043
+ "value_allowed_null": true
2044
+ },
2045
+ {
2046
+ "disabled": false,
2047
+ "document": "丢包率,单位%\n注意:此字段可能返回 null,表示取不到有效值。",
2048
+ "example": "[10,20,30,20,10]",
2049
+ "member": "int64",
2050
+ "name": "Lost",
2051
+ "output_required": false,
2052
+ "type": "list",
2053
+ "value_allowed_null": true
2054
+ },
2055
+ {
2056
+ "disabled": false,
2057
+ "document": "发送bps,单位kbps\n注意:此字段可能返回 null,表示取不到有效值。",
2058
+ "example": "[10,20,30,20,10]",
2059
+ "member": "int64",
2060
+ "name": "SendBps",
2061
+ "output_required": false,
2062
+ "type": "list",
2063
+ "value_allowed_null": true
2064
+ },
2065
+ {
2066
+ "disabled": false,
2067
+ "document": "接收bps,单位kbps\n注意:此字段可能返回 null,表示取不到有效值。",
2068
+ "example": "[10,20,30,20,10]",
2069
+ "member": "int64",
2070
+ "name": "RecvBps",
2071
+ "output_required": false,
2072
+ "type": "list",
2073
+ "value_allowed_null": true
2074
+ }
2075
+ ],
2076
+ "usage": "out"
2077
+ },
2003
2078
  "PolicyInfo": {
2004
2079
  "document": "权限信息",
2005
2080
  "members": [
@@ -2332,8 +2407,8 @@
2332
2407
  "value_allowed_null": true
2333
2408
  },
2334
2409
  {
2335
- "disabled": false,
2336
- "document": "渲染耗时,单位:ms\n注意:此字段可能返回 null,表示取不到有效值。",
2410
+ "disabled": true,
2411
+ "document": "【已废弃,使用RenderCost】\n注意:此字段可能返回 null,表示取不到有效值。",
2337
2412
  "example": "[20,20,30]",
2338
2413
  "member": "int64",
2339
2414
  "name": "RenderConst",
@@ -2420,6 +2495,106 @@
2420
2495
  "output_required": false,
2421
2496
  "type": "list",
2422
2497
  "value_allowed_null": true
2498
+ },
2499
+ {
2500
+ "disabled": false,
2501
+ "document": "渲染耗时,单位:ms\n注意:此字段可能返回 null,表示取不到有效值。",
2502
+ "example": "[20,20,30]",
2503
+ "member": "int64",
2504
+ "name": "RenderCost",
2505
+ "output_required": false,
2506
+ "type": "list",
2507
+ "value_allowed_null": true
2508
+ },
2509
+ {
2510
+ "disabled": false,
2511
+ "document": "配置宽度\n注意:此字段可能返回 null,表示取不到有效值。",
2512
+ "example": "1280",
2513
+ "member": "int64",
2514
+ "name": "ConfigWidth",
2515
+ "output_required": false,
2516
+ "type": "int",
2517
+ "value_allowed_null": true
2518
+ },
2519
+ {
2520
+ "disabled": false,
2521
+ "document": "配置高度\n注意:此字段可能返回 null,表示取不到有效值。",
2522
+ "example": "720",
2523
+ "member": "int64",
2524
+ "name": "ConfigHeight",
2525
+ "output_required": false,
2526
+ "type": "int",
2527
+ "value_allowed_null": true
2528
+ },
2529
+ {
2530
+ "disabled": false,
2531
+ "document": "平均帧间隔\n注意:此字段可能返回 null,表示取不到有效值。",
2532
+ "example": "[20.12,20.25,30.16]",
2533
+ "member": "int64",
2534
+ "name": "FrameDelta",
2535
+ "output_required": false,
2536
+ "type": "list",
2537
+ "value_allowed_null": true
2538
+ },
2539
+ {
2540
+ "disabled": false,
2541
+ "document": "最大帧间隔\n注意:此字段可能返回 null,表示取不到有效值。",
2542
+ "example": "[20.12,20.25,30.16]",
2543
+ "member": "int64",
2544
+ "name": "MaxFrameDelta",
2545
+ "output_required": false,
2546
+ "type": "list",
2547
+ "value_allowed_null": true
2548
+ },
2549
+ {
2550
+ "disabled": false,
2551
+ "document": "总码率评估,单位:kbps\n注意:此字段可能返回 null,表示取不到有效值。",
2552
+ "example": "[20.12,20.25,30.16]",
2553
+ "member": "int64",
2554
+ "name": "TotalBitrateEstimate",
2555
+ "output_required": false,
2556
+ "type": "list",
2557
+ "value_allowed_null": true
2558
+ },
2559
+ {
2560
+ "disabled": false,
2561
+ "document": "帧间隔大于100ms的卡顿时长\n注意:此字段可能返回 null,表示取不到有效值。",
2562
+ "example": "[20.12,20.25,30.16]",
2563
+ "member": "int64",
2564
+ "name": "Lag100Duration",
2565
+ "output_required": false,
2566
+ "type": "list",
2567
+ "value_allowed_null": true
2568
+ },
2569
+ {
2570
+ "disabled": false,
2571
+ "document": "帧间隔大于150ms的卡顿时长\n注意:此字段可能返回 null,表示取不到有效值。",
2572
+ "example": "[20.12,20.25,30.16]",
2573
+ "member": "int64",
2574
+ "name": "Lag150Duration",
2575
+ "output_required": false,
2576
+ "type": "list",
2577
+ "value_allowed_null": true
2578
+ },
2579
+ {
2580
+ "disabled": false,
2581
+ "document": "是否开启多网:0 单网,1 多网\n注意:此字段可能返回 null,表示取不到有效值。",
2582
+ "example": "0",
2583
+ "member": "int64",
2584
+ "name": "MultiMode",
2585
+ "output_required": false,
2586
+ "type": "int",
2587
+ "value_allowed_null": true
2588
+ },
2589
+ {
2590
+ "disabled": false,
2591
+ "document": "多网卡信息\n注意:此字段可能返回 null,表示取不到有效值。",
2592
+ "example": "无",
2593
+ "member": "MultiNet",
2594
+ "name": "MultiNet",
2595
+ "output_required": false,
2596
+ "type": "list",
2597
+ "value_allowed_null": true
2423
2598
  }
2424
2599
  ],
2425
2600
  "usage": "out"
@@ -59,8 +59,8 @@
59
59
  "DescribeDeviceList": [
60
60
  {
61
61
  "document": "",
62
- "input": "POST / HTTP/1.1\nHost: trro.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeDeviceList\n<公共请求参数>\n\n{\n \"ProjectId\": \"f3glr49rc96pralw\",\n \"SearchWords\": \"xx\",\n \"DeviceType\": \"field\"\n}",
63
- "output": "{\n \"Response\": {\n \"Total\": 1,\n \"Num\": 1,\n \"RequestId\": \"8979fc1e-9564-4fc9-bf7d-2958ce679b72\",\n \"Devices\": [\n {\n \"DeviceName\": \"test1\",\n \"ProjectId\": \"xx\",\n \"LastReportTime\": \"2022-03-22T08:00:00+08:00\",\n \"DeviceStatus\": \"offline\",\n \"DeviceType\": \"field\",\n \"DeviceId\": \"dev1\",\n \"ModifyTime\": \"2022-03-21T08:00:00+08:00\"\n }\n ]\n }\n}",
62
+ "input": "POST / HTTP/1.1\nHost: trro.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeDeviceList\n<公共请求参数>\n\n{\n \"ProjectId\": \"abc\",\n \"DeviceType\": \"field\",\n \"SearchWords\": \"abc\",\n \"PageSize\": 10,\n \"PageNumber\": 1,\n \"DeviceStatus\": \"\"\n}",
63
+ "output": "{\n \"Response\": {\n \"Total\": 1,\n \"Num\": 1,\n \"RequestId\": \"8979fc1e-9564-4fc9-bf7d-2958ce679b72\",\n \"Devices\": [\n {\n \"DeviceName\": \"test1\",\n \"ProjectId\": \"abc\",\n \"LastReportTime\": \"2022-03-22T08:00:00+08:00\",\n \"DeviceStatus\": \"offline\",\n \"DeviceType\": \"field\",\n \"DeviceId\": \"dev1\",\n \"ModifyTime\": \"2022-03-21T08:00:00+08:00\"\n }\n ]\n }\n}",
64
64
  "title": "设备列表获取示例"
65
65
  }
66
66
  ],
@@ -68,7 +68,7 @@
68
68
  {
69
69
  "document": "",
70
70
  "input": "POST / HTTP/1.1\nHost: trro.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeDeviceSessionDetails\n<公共请求参数>\n\n{\n \"SessionId\": \"abcde-50f7-4c60-9c89-e7076c8529a9-0\"\n}",
71
- "output": "{\n \"Response\": {\n \"Details\": [\n {\n \"MemUsed\": [\n 0.0\n ],\n \"Fps\": [\n 0\n ],\n \"Lost\": [\n 0.0\n ],\n \"NetworkLatency\": [\n 0\n ],\n \"Rate\": [\n 0\n ],\n \"SessionId\": \"xx\",\n \"DeviceType\": \"xx\",\n \"StartTime\": 1,\n \"TimeOffset\": [\n 1\n ],\n \"SdkMode\": \"xx\",\n \"EndTime\": 1,\n \"CpuUsed\": [\n 0.0\n ],\n \"VideoLatency\": [\n 0\n ]\n }\n ],\n \"RequestId\": \"xx\"\n }\n}",
71
+ "output": "{\n \"Response\": {\n \"Details\": [\n {\n \"DeviceType\": \"abc\",\n \"StartTime\": 1,\n \"EndTime\": 1,\n \"SessionId\": \"abc\",\n \"Rate\": [\n 0\n ],\n \"Fps\": [\n 0\n ],\n \"Lost\": [\n 0\n ],\n \"NetworkLatency\": [\n 0\n ],\n \"VideoLatency\": [\n 0\n ],\n \"CpuUsed\": [\n 0\n ],\n \"MemUsed\": [\n 0\n ],\n \"TimeOffset\": [\n 1\n ],\n \"ProjectId\": \"abc\",\n \"DeviceId\": \"abc\",\n \"Ver\": \"abc\",\n \"SdkMode\": \"abc\",\n \"DecodeCost\": [\n 0\n ],\n \"RenderConst\": [\n 0\n ],\n \"K100\": [\n 0\n ],\n \"K150\": [\n 0\n ],\n \"NACK\": [\n 0\n ],\n \"BitRateEstimate\": [\n 0\n ],\n \"Width\": 0,\n \"Height\": 0,\n \"EncodeCost\": [\n 0\n ],\n \"CaptureCost\": [\n 0\n ],\n \"RenderCost\": [\n 0\n ],\n \"ConfigWidth\": 0,\n \"ConfigHeight\": 0,\n \"FrameDelta\": [\n 0\n ],\n \"MaxFrameDelta\": [\n 0\n ],\n \"TotalBitrateEstimate\": [\n 0\n ],\n \"Lag100Duration\": [\n 0\n ],\n \"Lag150Duration\": [\n 0\n ],\n \"MultiMode\": 0,\n \"MultiNet\": [\n {\n \"NetId\": 0,\n \"NetIp\": \"abc\",\n \"Rtt\": [\n 0\n ],\n \"Lost\": [\n 0\n ],\n \"SendBps\": [\n 0\n ],\n \"RecvBps\": [\n 0\n ]\n }\n ]\n }\n ],\n \"RequestId\": \"abc\"\n }\n}",
72
72
  "title": "示例1"
73
73
  }
74
74
  ],
@@ -1421,6 +1421,58 @@ def doStopWebRecord(args, parsed_globals):
1421
1421
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1422
1422
 
1423
1423
 
1424
+ def doControlAIConversation(args, parsed_globals):
1425
+ g_param = parse_global_arg(parsed_globals)
1426
+
1427
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
1428
+ cred = credential.CVMRoleCredential()
1429
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
1430
+ cred = credential.STSAssumeRoleCredential(
1431
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
1432
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
1433
+ )
1434
+ 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):
1435
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
1436
+ else:
1437
+ cred = credential.Credential(
1438
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
1439
+ )
1440
+ http_profile = HttpProfile(
1441
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
1442
+ reqMethod="POST",
1443
+ endpoint=g_param[OptionsDefine.Endpoint],
1444
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
1445
+ )
1446
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
1447
+ if g_param[OptionsDefine.Language]:
1448
+ profile.language = g_param[OptionsDefine.Language]
1449
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
1450
+ client = mod.TrtcClient(cred, g_param[OptionsDefine.Region], profile)
1451
+ client._sdkVersion += ("_CLI_" + __version__)
1452
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
1453
+ model = models.ControlAIConversationRequest()
1454
+ model.from_json_string(json.dumps(args))
1455
+ start_time = time.time()
1456
+ while True:
1457
+ rsp = client.ControlAIConversation(model)
1458
+ result = rsp.to_json_string()
1459
+ try:
1460
+ json_obj = json.loads(result)
1461
+ except TypeError as e:
1462
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
1463
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
1464
+ break
1465
+ cur_time = time.time()
1466
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
1467
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
1468
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
1469
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
1470
+ else:
1471
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
1472
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
1473
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1474
+
1475
+
1424
1476
  def doCreateCloudRecording(args, parsed_globals):
1425
1477
  g_param = parse_global_arg(parsed_globals)
1426
1478
 
@@ -2811,6 +2863,7 @@ ACTION_MAP = {
2811
2863
  "StartAITranscription": doStartAITranscription,
2812
2864
  "DescribeTRTCMarketScaleData": doDescribeTRTCMarketScaleData,
2813
2865
  "StopWebRecord": doStopWebRecord,
2866
+ "ControlAIConversation": doControlAIConversation,
2814
2867
  "CreateCloudRecording": doCreateCloudRecording,
2815
2868
  "DescribeScaleInfo": doDescribeScaleInfo,
2816
2869
  "DescribeRelayUsage": doDescribeRelayUsage,
@@ -1,5 +1,12 @@
1
1
  {
2
2
  "actions": {
3
+ "ControlAIConversation": {
4
+ "document": "提供服务端控制机器人的功能",
5
+ "input": "ControlAIConversationRequest",
6
+ "name": "控制AI对话",
7
+ "output": "ControlAIConversationResponse",
8
+ "status": "online"
9
+ },
3
10
  "CreateCloudRecording": {
4
11
  "document": "接口说明:\n启动云端录制功能,完成房间内的音视频录制,并上传到指定的云存储。您可以通过此 API 接口把TRTC 房间中的每一路音视频流做单独的录制又或者多路视频画面合流混成一路。\n\n您可以通过此接口实现如下目标:\n* 指定订阅流参数(RecordParams)来指定需要录制的主播的黑名单或者白名单。\n* 指定录制存储参数(StorageParams)来指定上传到您希望的云存储,目前支持腾讯云(云点播VOD、对象存储COS)和第三方AWS\n* 指定合流模式下的音视频转码详细参数(MixTranscodeParams),包括视频分辨率、视频码率、视频帧率、以及声音质量等\n* 指定合流模式各路画面的位置和布局或者也可以指定自动模板的方式来配置。\n\n关键名词:\n* 单流录制:分别录制房间的订阅UserId的音频和视频,录制服务会实时将录制文件上传至您指定的云存储。\n* 合流录制:将房间内订阅UserId的音视频混录成一个视频文件,并将录制文件上传至您指定的云存储。(录制结束后可前往云点播控制台https://console.cloud.tencent.com/vod/media 或 对象存储COS控制台https://console.cloud.tencent.com/cos/bucket查看文件)。",
5
12
  "input": "CreateCloudRecordingRequest",
@@ -288,7 +295,7 @@
288
295
  "status": "online"
289
296
  },
290
297
  "StartPublishCdnStream": {
291
- "document": "TRTC房间中可能会同时存在多路音视频流,您可以通过混流转推API,通知腾讯云服务端将同个房间或者多个房间的多路视频画面混合到一起,并指定每一路画面的位置,同时将多路声音进行混音,最终形成一路音视频流,以便用于录制和直播观看,同时可以支持将这一路音视频的混流回推到TRTC房间内部。\n\n云api混流转推功能包含三个接口: \n1、StartPublishCdnStream:启动一个混流转推任务,此接口会发起一个新的混流转推任务,启动成功后会返回一个sdkappid维度唯一的任务id(TaskId)。您需要保存该TaskId,后续需要依赖此TaskId更新任务和结束任务。 \n2、UpdatePublishCdnStream:更新指定的混流转推任务,包括:更新视频画面的布局、更新混音列表、更新转推cdn的地址列表以及更新回推房间列表。 \n3、StopPublishCdnStream:停止指定的混流转推任务。\n\n您可以通过此套接口实现目标: \n1、设置最终混流的画质和音质,包括视频分辨率、视频帧率、视频码率,和音频质量。 \n2、设置每一路画面的布局位置,您只需要设置一次,后续您指定的混流用户进房上行音视频时,排版引擎会自动将该用户的画面混合到您指定的布局位置。同时您可以使用更新接口调整画面的布局位置。 \n3、设置多个cdn转推的目的地址,一个转推任务最多可以同时设置10个cdn转推地址,如果您需要转推非腾讯云的cdn地址时,需要联系腾讯云开通能力。 \n4、设置多个回推房间列表,一个转推任务最多可以同时将混流回推到10个TRTC房间。\n\n目前已经支持如下几种布局模版,其中动态布局模版(悬浮模板、九宫格模板、屏幕分享模板)只支持单个TRTC房间,自定义模版支持混合多个TRTC房间内的音视频流。具体说明如下: \n1、悬浮模板:第一个进入房间的用户的视频画面会铺满整个屏幕,其他用户的视频画面从左下角依次水平排列,显示为小画面,最多4行,每行4个,小画面悬浮于大画面之上。最多支持1个大画面和15个小画面,如果用户只发送音频默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。 \n2、九宫格模板:所有用户的视频画面大小一致,平分整个屏幕,人数越多,每个画面的尺寸越小。最多支持16个画面,如果用户只发送音频,默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。 \n3、屏幕分享模板:适合视频会议和在线教育场景的布局,屏幕分享(或者主讲的摄像头)始终占据屏幕左侧的大画面位置,需要您明确设置占据大画面的混流用户信息。其他用户依次垂直排列于右侧,最多两列,每列最多8个小画面。最多支持1个大画面和15个小画面。若上行分辨率宽高比与画面输出宽高比不一致时,左侧大画面为了保持内容的完整性采用缩放方式处理,右侧小画面采用裁剪方式处理,也支持统一设置子画面的渲染方式。 \n4、自定义布局模版:支持您主动根据业务需要设置布局位置,每个预设的布局位置支持具名设置(具名设置需要明确指定房间号和用户名)和不具名设置。当一个子画面具名设置时,该位置就为该用户预留,用户进房且上行音视频数据时会自动占据该位置,其它用户不会占据该位置。当预设的布局位置未具名时,排版引擎会根据进房间顺序自动填充,预设位置填满时,不再混合其它用户的画面和声音。每个子画面位置支持设置占位图(BackgroundImageUrl),当用户未进房或者只上行音频数据时,该位置画面可显示对应的占位图画面。\n\n您可以控制台开通旁路转推回调功能实现转推cdn状态的事件监控,具体说明请参考官网文档:[旁路转推回调说明](https://cloud.tencent.com/document/product/647/88552) \n您使用转推api时根据使用特性可能会产生如下费用: \nMCU混流转码费用请参考文档:[云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446) \n转推非腾讯云CDN费用请参考文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)\n\n参数的使用说明: \n1、AgentParams:每个转推任务会拉起一个机器人用户进入TRTC房间进行拉流,您需要通过AgentParams.UserId参数进行设置,这个机器人id不能和房间中的普通用户id冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。您可以通过设置AgentParams.MaxIdleTime控制转推任务的自动结束,当设置此参数时,所有参与混流转推的主播持续离开TRTC房间超过MaxIdleTime的时长,自动停止转推任务。注意:参与混流转推的主播仅是停止音视频上行,转推任务不会自动停止。 \n2、WithTranscoding:如果需要将多路音视频流混合到一路时,WithTranscoding必须设置为1。 \n3、AudioParams:转推任务音频参数和视频参数是分开设置的,若您想要将指定的用户音频进行混音时,需要明确设置AudioParams.SubscribeAudioList。若您不设置AudioParams.SubscribeAudioList,混音引擎会自动将TRTC房间中所有用户的音频混合。若您想要混合TRTC房间除指定用户之外的所有用户的声音,可以通过AudioParams.UnSubscribeAudioList设置音频黑名单列表。\n4、VideoParams:若您想要将用户的视频混合,可以通过VideoParams设置,若只想要混纯音频,则不用设置VideoParams参数。您可以通过VideoParams.LayoutParams.MixLayoutMode设置画面的布局模式,包括:动态布局(1:悬浮布局(默认),2:屏幕分享布局,3:九宫格布局)和自定义布局。动态布局模式由排版引擎按照固定的布局自动混合,不需要设置VideoParams.LayoutParams.MixLayoutList。当使用悬浮布局和屏幕分享布局时,您可以通过设置VideoParams.LayoutParams.MaxVideoUser参数指定大画面用户。自定义布局模式提供给您自主布局画面的能力,可以通过VideoParams.LayoutParams.MixLayoutList参数指定每个用户所在的布局位置。在每个布局参数中,您可以通过用户媒体流参数(UserMediaStream)指定这个布局位置为指定的用户预留,也可以不设置UserMediaStream,由排版引擎按照用户进入TRTC房间的顺序自动填充,另外您也可以设置每个布局位置的渲染方式(RenderMode)和裁剪方式(CustomCrop)。 \n5、VideoParams.WaterMarkList:若您想要混流画面中叠加水印,可以通过VideoParams.WaterMarkList参数设置,支持图片水印和文字水印,支持透明通道。 \n6、SingleSubscribeParams:若您想要将TRTC房间中的一路单流推到CDN,可以使用SingleSubscribeParams参数设置,此时需要将WithTranscoding参数设置为0。 \n7、PublishCdnParams.N:若您想要推流到CDN,可以使用PublishCdnParams.N参数设置,支持最多同时推流到10个CDN地址。若转推地址是腾讯云CDN时,请将IsTencentCdn明确设置为1;若您有转推非腾讯云CDN的需求时,请联系腾讯云技术支持开通,转推非腾讯云会产生转推费用,费用说明请参考官网文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)。 \n8、FeedBackRoomParams.N:若您想要将混合的音视频流回推到TRTC房间,可以使用FeedBackRoomParams.N参数设置,支持最多同时推10路流回TRTC房间。您需要指定回推的TRTC房间号和机器人ID(UserId),机器人ID不能与普通用户ID冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。 \n9、SeiParams:若您想要混合的音视频流中增加SEI信息时,可以使用SeiParams参数设置,支持音量布局SEI和叠加转推请求中的SEI,其中音量布局SEI的内容是固定的json结构,具体请看本章节后续的SEI说明。您可以通过FollowIdr参数设置SEI跟随关键帧一起发送。音量布局sei的说明如下: \n如果您的CDN观众端需要识别到参与混流的主播位置,以及需要识别到参与混流的主播的音量信息,可以通过音量布局sei实现。音量布局sei的payload内容及参数说明如下:\n\n```\n{\n \"app_data\":\"\",\n \"canvas\":{\n \"w\":1080,\n \"h\":960\n },\n \"regions\":[\n {\n \"uid\":\"65949987242835883c\",\n \"zorder\":2,\n \"volume\":45,\n \"x\":270,\n \"y\":480,\n \"w\":540,\n \"h\":480\n },\n {\n \"uid\":\"659c9d8d242b328d31\",\n \"zorder\":2,\n \"volume\":0,\n \"x\":0,\n \"y\":0,\n \"w\":540,\n \"h\":480\n },\n {\n \"uid\":\"64989a82272b308c\",\n \"zorder\":2,\n \"volume\":91,\n \"x\":540,\n \"y\":0,\n \"w\":540,\n \"h\":480\n }\n ],\n \"ver\":\"1.0\",\n \"ts\":1648544726\n}\n```\ncanvas:这个是混流信令中VideoEncode设置的宽高,即:混流输出的整个画布宽高。 \nregions:里面是真实混入的用户id和对应的子画面位置,若参与混流的用户未进入TRTC房间或者未开启视频上行,regions中不会包含该用户。 \nuid:代表参与混流的用户ID。 \nzorder:参与混流userid在混流输出的层级。 \nx/y:参与混流userid的子画面在画布的坐标。 \nw/h:参与混流userid的子画面的大小。 \nvolume:代表混流用户的音量,取值范围为0-100,值越大,代表该用户参与混流时的音量越大。 \nts:是输出sei的服务器本地秒级时戳。 \nver:可以忽略。\n\n其它使用注意事项: \n1、使用混流转推接口时,您需要先调用启动转推任务接口(StartPublishCdnStream),获取启动转推任务响应中的任务ID标识(TaskId)。后续传入任务ID标识(TaskId)来更新转推任务(UpdatePublishCdnStream)和停止转推任务(StopPublishCdnStream)。 \n2、转推API不支持发起到TRTC控制台配置的自动旁路任务,以及通过TRTC SDK进房接口中设置的自定义流ID的旁路任务。 \n3、为了确保转推链接的稳定,同一个转推任务不支持纯音频、音视频、纯视频之间的切换。 \n4、为了确保转推链接的稳定,不支持update时更新视频参数(codec)和音频参数(codec、采样率、码率、声道数)。 \n5、发起单流旁路任务时,AudioParams和VideoParams都填写表示音视频旁路,如果仅填写AudioParams表示纯音频旁路,任务进行过程中不支持纯音频到音视频的切换。音视频旁路时,VideoParams中的Width、Height、Fps、BitRate、Gop需要按照真实上行参数填写。 \n6、更新请求中必须携带SequenceNumber参数,用于防止请求乱序。客户保证对同一个任务更新时的SequenceNumber参数递增,否则会导致混流任务更新失败。 \n7、调用api时region选择说明:如果应用id是1400xxx时,region可填北京、上海、广州、香港,如果您的cdn观众主要在海外,请选择香港;如果应用id是200xxx或400xxx时,region请选择新加坡。 \n8、回推到TRTC房间的流不会参与其他回推房间任务的混流,满足下面条件之一时,可以参与其他转推cdn任务的混流: (1) 转推cdn任务在视频参数中通过具名方式指定推流机器人参与混流;(2) 转推cdn任务在音频参数中通过白名单方式指定推流机器人参与混流;(3) 转推cdn任务参与混流用户的房间号与回推机器人对应混流用户的房间号完全不同。 \n9、您可以在主播进房前,提前创建转推任务,结束转推任务时需要主动调用停止接口。如果您没有调用停止转推任务接口时,腾讯云后台会按照所有参与混流的用户没有任何数据上行的时间算起,直到超过启动转推任务时设置的超时时间(AgentParams.MaxIdleTime)为止,自动停止混流转推任务。",
298
+ "document": "接口说明: \n启动一个混流转推任务,将 TRTC 房间的多路音视频流混成一路音视频流,编码后推到直播 CDN 或者回推到 TRTC 房间。也支持不转码直接转推 TRTC 房间的单路流。启动成功后,会返回一个 SdkAppid 维度唯一的任务 Id(TaskId)。您需要保存该 TaskId,后续需要依赖此 TaskId 更新和结束任务。可以参考文档: [功能说明](https://cloud.tencent.com/document/product/647/84721#b9a855f4-e38c-4616-9b07-fc44e0e8282a)[常见问题](https://cloud.tencent.com/document/product/647/62620)\n\n注意:\n您可以在控制台开通旁路转推回调功能,对转推 CDN 状态的事件进行监控,回调请参考文档:[旁路转推回调说明](https://cloud.tencent.com/document/product/647/88552) \n您发起混流转推任务时,可能会产生如下费用: \nMCU 混流转码费用,请参考文档:[云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446) \n转推非腾讯云 CDN 费用,请参考文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)",
292
299
  "input": "StartPublishCdnStreamRequest",
293
300
  "name": "启动转推任务",
294
301
  "output": "StartPublishCdnStreamResponse",
@@ -337,7 +344,7 @@
337
344
  "status": "online"
338
345
  },
339
346
  "StopPublishCdnStream": {
340
- "document": "停止转推任务。",
347
+ "document": "接口说明:\n停止指定的混流转推任务。如果没有调用 Stop 接口停止任务,所有参与混流转推的主播离开 TRTC 房间超过 AgentParams.MaxIdleTime 设置的时间后,任务也会自动停止。",
341
348
  "input": "StopPublishCdnStreamRequest",
342
349
  "name": "停止转推任务",
343
350
  "output": "StopPublishCdnStreamResponse",
@@ -365,7 +372,7 @@
365
372
  "status": "deprecated"
366
373
  },
367
374
  "UpdatePublishCdnStream": {
368
- "document": "更新转推任务。\n注:请参见启动转推任务的接口说明和使用说明。",
375
+ "document": "接口说明:\n成功发起混流转推后,可以使用此接口来更新任务。仅在任务进行时有效,任务退出后更新将会返回错误。更新操作为增量更新模式。\n注意:为了保障推流的稳定性,更新不支持任务在纯音频、音视频、纯视频之间进行切换。",
369
376
  "input": "UpdatePublishCdnStreamRequest",
370
377
  "name": "更新转推任务",
371
378
  "output": "UpdatePublishCdnStreamResponse",
@@ -744,6 +751,51 @@
744
751
  ],
745
752
  "usage": "in"
746
753
  },
754
+ "ControlAIConversationRequest": {
755
+ "document": "ControlAIConversation请求参数结构体",
756
+ "members": [
757
+ {
758
+ "disabled": false,
759
+ "document": "任务唯一标识",
760
+ "example": "无",
761
+ "member": "string",
762
+ "name": "TaskId",
763
+ "required": true,
764
+ "type": "string"
765
+ },
766
+ {
767
+ "disabled": false,
768
+ "document": "控制命令,目前支持命令如下:\n\n- ServerPushText,服务端发送文本给AI机器人,AI机器人会播报该文本",
769
+ "example": "无",
770
+ "member": "string",
771
+ "name": "Command",
772
+ "required": true,
773
+ "type": "string"
774
+ },
775
+ {
776
+ "disabled": false,
777
+ "document": "服务端发送播报文本命令,当Command为ServerPushText时必填",
778
+ "example": "无",
779
+ "member": "ServerPushText",
780
+ "name": "ServerPushText",
781
+ "required": false,
782
+ "type": "object"
783
+ }
784
+ ],
785
+ "type": "object"
786
+ },
787
+ "ControlAIConversationResponse": {
788
+ "document": "ControlAIConversation返回参数结构体",
789
+ "members": [
790
+ {
791
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
792
+ "member": "string",
793
+ "name": "RequestId",
794
+ "type": "string"
795
+ }
796
+ ],
797
+ "type": "object"
798
+ },
747
799
  "CreateCloudRecordingRequest": {
748
800
  "document": "CreateCloudRecording请求参数结构体",
749
801
  "members": [
@@ -4002,8 +4054,7 @@
4002
4054
  "member": "uint64",
4003
4055
  "name": "WaterMarkType",
4004
4056
  "required": false,
4005
- "type": "int",
4006
- "value_allowed_null": false
4057
+ "type": "int"
4007
4058
  },
4008
4059
  {
4009
4060
  "disabled": false,
@@ -4012,8 +4063,7 @@
4012
4063
  "member": "McuWaterMarkImage",
4013
4064
  "name": "WaterMarkImage",
4014
4065
  "required": false,
4015
- "type": "object",
4016
- "value_allowed_null": false
4066
+ "type": "object"
4017
4067
  },
4018
4068
  {
4019
4069
  "disabled": false,
@@ -4022,8 +4072,7 @@
4022
4072
  "member": "McuWaterMarkText",
4023
4073
  "name": "WaterMarkText",
4024
4074
  "required": false,
4025
- "type": "object",
4026
- "value_allowed_null": true
4075
+ "type": "object"
4027
4076
  }
4028
4077
  ],
4029
4078
  "usage": "in"
@@ -5440,6 +5489,30 @@
5440
5489
  ],
5441
5490
  "usage": "out"
5442
5491
  },
5492
+ "ServerPushText": {
5493
+ "document": "服务端控制AI对话机器人播报指定文本",
5494
+ "members": [
5495
+ {
5496
+ "disabled": false,
5497
+ "document": "服务端推送播报文本",
5498
+ "example": "无",
5499
+ "member": "string",
5500
+ "name": "Text",
5501
+ "required": false,
5502
+ "type": "string"
5503
+ },
5504
+ {
5505
+ "disabled": false,
5506
+ "document": "是否允许该文本打断机器人说话",
5507
+ "example": "无",
5508
+ "member": "bool",
5509
+ "name": "Interrupt",
5510
+ "required": false,
5511
+ "type": "bool"
5512
+ }
5513
+ ],
5514
+ "usage": "in"
5515
+ },
5443
5516
  "SingleSubscribeParams": {
5444
5517
  "document": "单流旁路转推的用户上行信息。",
5445
5518
  "members": [
@@ -6892,7 +6965,7 @@
6892
6965
  },
6893
6966
  {
6894
6967
  "disabled": false,
6895
- "document": "更新相关参数,只支持更新参与混音的主播列表参数。不填表示不更新此参数。",
6968
+ "document": "更新相关参数,只支持更新参与混音的主播列表参数,不支持更新Codec、采样率、码率和声道数。不填表示不更新此参数。",
6896
6969
  "example": "AudioParams",
6897
6970
  "member": "McuAudioParams",
6898
6971
  "name": "AudioParams",