tccli 3.0.1328.1__py2.py3-none-any.whl → 3.0.1329.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.
Files changed (38) hide show
  1. tccli/__init__.py +1 -1
  2. tccli/services/cbs/v20170312/api.json +13 -13
  3. tccli/services/ccc/v20200210/api.json +36 -0
  4. tccli/services/cdn/v20180606/examples.json +1 -1
  5. tccli/services/cdwch/v20200915/api.json +3 -3
  6. tccli/services/cdwch/v20200915/examples.json +1 -1
  7. tccli/services/emr/v20190103/api.json +1 -1
  8. tccli/services/ess/v20201111/api.json +2 -2
  9. tccli/services/essbasic/v20210526/api.json +2 -2
  10. tccli/services/gs/gs_client.py +53 -0
  11. tccli/services/gs/v20191118/api.json +61 -8
  12. tccli/services/gs/v20191118/examples.json +8 -0
  13. tccli/services/hai/hai_client.py +53 -0
  14. tccli/services/hai/v20230812/api.json +62 -0
  15. tccli/services/hai/v20230812/examples.json +8 -0
  16. tccli/services/ioa/ioa_client.py +53 -0
  17. tccli/services/ioa/v20220601/api.json +263 -0
  18. tccli/services/ioa/v20220601/examples.json +8 -0
  19. tccli/services/iotexplorer/v20190423/api.json +52 -1
  20. tccli/services/lighthouse/v20200324/api.json +1 -1
  21. tccli/services/lke/v20231130/api.json +315 -4
  22. tccli/services/lke/v20231130/examples.json +4 -4
  23. tccli/services/ocr/v20181119/api.json +2 -2
  24. tccli/services/sqlserver/v20180328/api.json +29 -2
  25. tccli/services/ssl/v20191205/api.json +79 -0
  26. tccli/services/ssl/v20191205/examples.json +6 -6
  27. tccli/services/tke/tke_client.py +53 -0
  28. tccli/services/tke/v20220501/api.json +61 -0
  29. tccli/services/tke/v20220501/examples.json +8 -0
  30. tccli/services/trtc/trtc_client.py +216 -4
  31. tccli/services/trtc/v20190722/api.json +429 -0
  32. tccli/services/trtc/v20190722/examples.json +32 -0
  33. tccli/services/vm/v20210922/api.json +16 -20
  34. {tccli-3.0.1328.1.dist-info → tccli-3.0.1329.1.dist-info}/METADATA +2 -2
  35. {tccli-3.0.1328.1.dist-info → tccli-3.0.1329.1.dist-info}/RECORD +38 -38
  36. {tccli-3.0.1328.1.dist-info → tccli-3.0.1329.1.dist-info}/WHEEL +0 -0
  37. {tccli-3.0.1328.1.dist-info → tccli-3.0.1329.1.dist-info}/entry_points.txt +0 -0
  38. {tccli-3.0.1328.1.dist-info → tccli-3.0.1329.1.dist-info}/license_files/LICENSE +0 -0
tccli/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '3.0.1328.1'
1
+ __version__ = '3.0.1329.1'
@@ -267,7 +267,7 @@
267
267
  "status": "online"
268
268
  },
269
269
  "ModifyDisksChargeType": {
270
- "document": "本接口 (ModifyDisksChargeType) 用于切换云硬盘的计费模式。\n\n非弹性云硬盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云硬盘一起转换。\n默认接口请求频率限制:10次/秒。",
270
+ "document": "本接口 (ModifyDisksChargeType) 用于切换云硬盘的计费模式。\n\n非弹性云硬盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云硬盘一起转换。",
271
271
  "input": "ModifyDisksChargeTypeRequest",
272
272
  "name": "修改弹性云硬盘计费模式",
273
273
  "output": "ModifyDisksChargeTypeResponse",
@@ -537,7 +537,7 @@
537
537
  },
538
538
  {
539
539
  "disabled": false,
540
- "document": "回滚前是否执行自动关机,仅支持回滚快照至已挂载的云硬盘时传入。",
540
+ "document": "回滚前是否执行自动关机,仅支持回滚快照至已挂载的云硬盘时传入。\n此参数为true时,AutoStartInstance才能为true。",
541
541
  "example": "False",
542
542
  "member": "bool",
543
543
  "name": "AutoStopInstance",
@@ -696,7 +696,7 @@
696
696
  "members": [
697
697
  {
698
698
  "disabled": false,
699
- "document": "已绑定当前定期快照策略的云盘ID列表。",
699
+ "document": "已绑定当前定期快照策略的云盘ID列表。\nDescribeDiskAssociatedAutoSnapshotPolicy场景下该字段返回为空。",
700
700
  "example": "[\"disk-pe1vkgim\"]",
701
701
  "member": "string",
702
702
  "name": "DiskIdSet",
@@ -726,7 +726,7 @@
726
726
  },
727
727
  {
728
728
  "disabled": false,
729
- "document": "是否是跨账号复制快照快照, 1:是, 0: 不是",
729
+ "document": "是否是跨账号复制快照, 1:是, 0: 不是",
730
730
  "example": "0",
731
731
  "member": "uint64",
732
732
  "name": "IsCopyToRemote",
@@ -777,7 +777,7 @@
777
777
  {
778
778
  "disabled": false,
779
779
  "document": "定期快照的执行策略。",
780
- "example": "[{ \"Minute\": [10], \"Hour\": [0, 12], \"DayOfMonth\": [1, 15]}]",
780
+ "example": "[{\"Hour\": [0, 12], \"DayOfMonth\": [1, 15]}]",
781
781
  "member": "Policy",
782
782
  "name": "Policy",
783
783
  "output_required": true,
@@ -1395,7 +1395,7 @@
1395
1395
  },
1396
1396
  {
1397
1397
  "disabled": false,
1398
- "document": "创建云盘时是否开启性能突发。当前仅支持极速型云盘(CLOUD_TSSD)和增强型SSD云硬盘(CLOUD_HSSD)。",
1398
+ "document": "创建云盘时是否开启性能突发。当前仅支持极速型云盘(CLOUD_TSSD)和增强型SSD云硬盘(CLOUD_HSSD)且云盘大小不小于460GiB。",
1399
1399
  "example": "True",
1400
1400
  "member": "bool",
1401
1401
  "name": "BurstPerformance",
@@ -1879,7 +1879,7 @@
1879
1879
  },
1880
1880
  {
1881
1881
  "disabled": false,
1882
- "document": "输出云硬盘备份点列表的排列顺序。取值范围:<br><li>ASC:升序排列</li><br><li>DESC:降序排列。</li>",
1882
+ "document": "输出云硬盘备份点列表的排列顺序,默认排序:ASC。取值范围:<br><li>ASC:升序排列</li><br><li>DESC:降序排列。</li>",
1883
1883
  "example": "ASC",
1884
1884
  "member": "string",
1885
1885
  "name": "Order",
@@ -3181,7 +3181,7 @@
3181
3181
  {
3182
3182
  "disabled": false,
3183
3183
  "document": "云硬盘备份点的创建时间。",
3184
- "example": "2022-01-01 12:00:00",
3184
+ "example": "2025-03-27 14:00:13",
3185
3185
  "member": "datetime_iso",
3186
3186
  "name": "CreateTime",
3187
3187
  "output_required": true,
@@ -4231,8 +4231,8 @@
4231
4231
  },
4232
4232
  {
4233
4233
  "disabled": false,
4234
- "document": "围笼Id。作为入参时,表示对指定的CageId的资源进行操作,可为空。 作为出参时,表示资源所属围笼ID,可为空。\n注意:此字段可能返回 null,表示取不到有效值。",
4235
- "example": "cage-xxxxxxxx",
4234
+ "document": "围笼Id,可通过 [DescribeDiskStoragePool](https://cloud.tencent.com/document/api/362/62143) 获取。作为入参时,表示对指定的CageId的资源进行操作,可为空。 作为出参时,表示资源所属围笼ID,可为空。\n注意:此字段可能返回 null,表示取不到有效值。",
4235
+ "example": "cage-d0eqwu84",
4236
4236
  "member": "string",
4237
4237
  "name": "CageId",
4238
4238
  "output_required": true,
@@ -4275,8 +4275,8 @@
4275
4275
  },
4276
4276
  {
4277
4277
  "disabled": false,
4278
- "document": "实例所属的独享集群ID。作为入参时,表示对指定的CdcId独享集群的资源进行操作,可为空。 作为出参时,表示资源所属的独享集群的ID,可为空。\n注意:此字段可能返回 null,表示取不到有效值。",
4279
- "example": "cdc-xxxxxxxx",
4278
+ "document": "实例所属的独享集群ID。可通过 [DescribeDiskStoragePool](https://cloud.tencent.com/document/api/362/62143) 获取。作为入参时,表示对指定的CdcId独享集群的资源进行操作,可为空。 作为出参时,表示资源所属的独享集群的ID,可为空。\n注意:此字段可能返回 null,表示取不到有效值。",
4279
+ "example": "cdc-8pz1i7hg",
4280
4280
  "member": "string",
4281
4281
  "name": "CdcId",
4282
4282
  "output_required": true,
@@ -4287,7 +4287,7 @@
4287
4287
  {
4288
4288
  "disabled": false,
4289
4289
  "document": "独享集群id。",
4290
- "example": "cluster-xxxxxxxx",
4290
+ "example": "cluster-es1mfycs",
4291
4291
  "member": "string",
4292
4292
  "name": "DedicatedClusterId",
4293
4293
  "output_required": true,
@@ -1584,6 +1584,32 @@
1584
1584
  ],
1585
1585
  "usage": "out"
1586
1586
  },
1587
+ "Client": {
1588
+ "document": "座席登录的终端信息",
1589
+ "members": [
1590
+ {
1591
+ "disabled": false,
1592
+ "document": "登录的端类型,\"Web\"表示web工作台,\"WeChatMiniProgram\"表示微信小程序",
1593
+ "example": "Web",
1594
+ "member": "string",
1595
+ "name": "ClientType",
1596
+ "output_required": false,
1597
+ "type": "string",
1598
+ "value_allowed_null": false
1599
+ },
1600
+ {
1601
+ "disabled": false,
1602
+ "document": "当前登录的端是否在前台。若登录的端是Web,则该值为true;若登录的端是WeChatMiniProgram,true表示打开着微信小程序,false表示微信小程序退到后台",
1603
+ "example": "true",
1604
+ "member": "bool",
1605
+ "name": "IsConnected",
1606
+ "output_required": false,
1607
+ "type": "bool",
1608
+ "value_allowed_null": false
1609
+ }
1610
+ ],
1611
+ "usage": "out"
1612
+ },
1587
1613
  "CompanyApplyInfo": {
1588
1614
  "document": "企业资质申请信息",
1589
1615
  "members": [
@@ -8703,6 +8729,16 @@
8703
8729
  "output_required": true,
8704
8730
  "type": "int",
8705
8731
  "value_allowed_null": true
8732
+ },
8733
+ {
8734
+ "disabled": false,
8735
+ "document": "客服登录的端信息",
8736
+ "example": "[{\"ClientType\": \"Web\", \"IsConnected\": true}]",
8737
+ "member": "Client",
8738
+ "name": "ClientInfo",
8739
+ "output_required": false,
8740
+ "type": "list",
8741
+ "value_allowed_null": false
8706
8742
  }
8707
8743
  ],
8708
8744
  "usage": "out"
@@ -355,7 +355,7 @@
355
355
  "DescribeTrafficPackages": [
356
356
  {
357
357
  "document": "查询流量包列表",
358
- "input": "POST / HTTP/1.1\nHost: cdn.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeTrafficPackages\n<公共请求参数>\n\n{\n \"Limit\": \"1\",\n \"Offset\": \"0\"\n}",
358
+ "input": "POST / HTTP/1.1\nHost: cdn.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeTrafficPackages\n<公共请求参数>\n\n{\n \"Limit\": 1,\n \"Offset\": 0\n}",
359
359
  "output": "{\n \"Response\": {\n \"RequestId\": \"b1a70a67f5500913be355ac2f09ff191\",\n \"TrafficPackages\": [\n {\n \"Id\": 22890370,\n \"Type\": \"日常流量包\",\n \"ConfigId\": 672,\n \"Bytes\": 100000000000,\n \"BytesUsed\": 0,\n \"Status\": \"frozen\",\n \"CreateTime\": \"2022-11-11 15:52:28\",\n \"EnableTime\": \"2022-11-11 15:00:00\",\n \"ExpireTime\": \"2023-11-11 15:00:00\",\n \"ContractExtension\": false,\n \"AutoExtension\": false,\n \"ExtensionMode\": 0,\n \"Area\": \"mainland\",\n \"LifeTimeMonth\": 12,\n \"RefundAvailable\": false,\n \"Channel\": \"ACTIVE_PURCHASE\",\n \"ExtensionAvailable\": false,\n \"Region\": 0,\n \"TrueEnableTime\": \"2022-11-11 15:00:00\",\n \"TrueExpireTime\": \"2023-11-11 15:59:59\"\n }\n ],\n \"TotalCount\": 1,\n \"ExpiringCount\": 0,\n \"EnabledCount\": 0,\n \"PaidCount\": 1\n }\n}",
360
360
  "title": "查询流量包列表"
361
361
  }
@@ -233,13 +233,13 @@
233
233
  "members": [
234
234
  {
235
235
  "disabled": false,
236
- "document": "错误信息\n注意:此字段可能返回 null,表示取不到有效值。",
237
- "example": "-",
236
+ "document": "错误信息",
237
+ "example": "InvalidParameter",
238
238
  "member": "string",
239
239
  "name": "ErrMsg",
240
240
  "output_required": true,
241
241
  "type": "string",
242
- "value_allowed_null": true
242
+ "value_allowed_null": false
243
243
  },
244
244
  {
245
245
  "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "document": "",
6
6
  "input": "POST / HTTP/1.1\nHost: cdwch.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ActionAlterCkUser\n<公共请求参数>\n\n{\n \"UserInfo\": {\n \"InstanceId\": \"cdwch-1vud9x9x\",\n \"UserName\": \"admin\",\n \"PassWord\": \"base54加密\",\n \"Describe\": \"测试用户\"\n },\n \"ApiType\": \"AddSystemUser\"\n}",
7
- "output": "{\n \"Response\": {\n \"RequestId\": \"123456\",\n \"ErrMsg\": \"\"\n }\n}",
7
+ "output": "{\n \"Response\": {\n \"RequestId\": \"20a71202-27c4-4120-80c4-fb1a8e15dxxx\",\n \"ErrMsg\": \"\"\n }\n}",
8
8
  "title": "新增、修改集群用户"
9
9
  }
10
10
  ],
@@ -8117,7 +8117,7 @@
8117
8117
  },
8118
8118
  {
8119
8119
  "disabled": false,
8120
- "document": "系统盘类型 取值范围:\n<li>CLOUD_SSD:表示云SSD。</li>\n<li>CLOUD_PREMIUM:表示高效云盘。</li>\n<li>CLOUD_BASIC:表示云硬盘。</li>\n<li>LOCAL_BASIC:表示本地盘。</li>\n<li>LOCAL_SSD:表示本地SSD。</li>\n\n数据盘类型 取值范围:\n<li>CLOUD_SSD:表示云SSD。</li>\n<li>CLOUD_PREMIUM:表示高效云盘。</li>\n<li>CLOUD_BASIC:表示云硬盘。</li>\n<li>LOCAL_BASIC:表示本地盘。</li>\n<li>LOCAL_SSD:表示本地SSD。</li>\n<li>CLOUD_HSSD:表示增强型SSD云硬盘。</li>\n<li>CLOUD_THROUGHPUT:表示吞吐型云硬盘。</li>\n<li>CLOUD_TSSD:表示极速型SSD云硬盘。</li>",
8120
+ "document": "系统盘类型 取值范围:\n<li>CLOUD_SSD:表示云SSD。</li>\n<li>CLOUD_PREMIUM:表示高效云盘。</li>\n<li>CLOUD_BASIC:表示云硬盘。</li>\n<li>LOCAL_BASIC:表示本地盘。</li>\n<li>LOCAL_SSD:表示本地SSD。</li>\n\n数据盘类型 取值范围:\n<li>CLOUD_SSD:表示云SSD。</li>\n<li>CLOUD_PREMIUM:表示高效云盘。</li>\n<li>CLOUD_BASIC:表示云硬盘。</li>\n<li>LOCAL_BASIC:表示本地盘。</li>\n<li>LOCAL_SSD:表示本地SSD。</li>\n<li>CLOUD_HSSD:表示增强型SSD云硬盘。</li>\n<li>CLOUD_THROUGHPUT:表示吞吐型云硬盘。</li>\n<li>CLOUD_TSSD:表示极速型SSD云硬盘。</li>\n<li>CLOUD_BIGDATA:表示大数据型云硬盘。</li>\n<li>CLOUD_HIGHIO:表示高IO型云硬盘。</li>\n<li>CLOUD_BSSD:表示通用型SSD云硬盘。</li>\n<li>REMOTE_SSD:表示远端SSD盘。</li>\n",
8121
8121
  "example": "CLOUD_SSD",
8122
8122
  "member": "string",
8123
8123
  "name": "DiskType",
@@ -694,7 +694,7 @@
694
694
  "status": "online"
695
695
  },
696
696
  "OperateTemplate": {
697
- "document": "此接口(OperateTemplate)用于对企业自有模板进行管理操作,所有操作都会有对应的回调触发,具体参考回调文档 <a href=\"https://qian.tencent.com/developers/company/callback_types_templates\" target=\"_blank\">模板操作相关回调</a>\n\n\n# 支持的操作\n## 1. 删除模板 (OperateType=DELETE)\n此操作会将模板从企业自有模板中彻底删除,若要保留模板而不删除,可将模板停用。\n\n## 2. 启用模板 (OperateType=ENABLE)\n此操作是将已停用的模板启用,操作幂等,若模板已启用,接口不报错。\n\n## 3. 停用模板 (OperateType=DISABLE)\n此操作是将已启用的模板停用,操作幂等,若模板已停用,接口不报错,停用后,无法通过此模板发起合同,已发起的合同不受影响。",
697
+ "document": "此接口(OperateTemplate)用于对企业自有模板进行管理操作,所有操作都会有对应的回调触发,具体参考回调文档 <a href=\"https://qian.tencent.com/developers/company/callback_types_templates\" target=\"_blank\">模板操作相关回调</a>\n\n\n# 支持的操作\n## 1. 删除模板 (OperateType=DELETE)\n此操作会将模板从企业自有模板中彻底删除,若要保留模板而不删除,可将模板停用。\n\n## 2. 启用模板 (OperateType=ENABLE)\n此操作是将已停用的模板启用,操作幂等,若模板已启用,接口不报错。\n\n## 3. 停用模板 (OperateType=DISABLE)\n此操作是将已启用的模板停用,操作幂等,若模板已停用,接口不报错,停用后,无法通过此模板发起合同,已发起的合同不受影响。\n\n## 4. 复制模板 (OperateType=COPY)\n此操作将复制一个完全一样的模板,仅支持修改模板名称,若要修改其他模板内容,需到腾讯电子签控制台操作。",
698
698
  "input": "OperateTemplateRequest",
699
699
  "name": "企业模板管理",
700
700
  "output": "OperateTemplateResponse",
@@ -13914,7 +13914,7 @@
13914
13914
  },
13915
13915
  {
13916
13916
  "disabled": false,
13917
- "document": "操作类型,可取值如下:\n<ul>\n<li>DELETE: 删除</li>\n<li>ENABLE: 启用</li>\n<li>DISABLE: 停用</li>\n</ul>",
13917
+ "document": "操作类型,可取值如下:\n<ul>\n<li>DELETE: 删除</li>\n<li>ENABLE: 启用</li>\n<li>DISABLE: 停用</li>\n<li>COPY: 复制新建</li>\n</ul>",
13918
13918
  "example": "DELETE",
13919
13919
  "member": "string",
13920
13920
  "name": "OperateType",
@@ -603,7 +603,7 @@
603
603
  "status": "online"
604
604
  },
605
605
  "OperateTemplate": {
606
- "document": "此接口(OperateTemplate)用于对企业自有模板进行管理操作,所有操作都会有对应的回调触发,具体参考回调文档 <a href=\"https://qian.tencent.com/developers/partner/callback_types_templates\" target=\"_blank\">模板操作相关回调</a>\n\n# 支持的操作\n## 1. 删除模板 (OperateType=DELETE)\n此操作会将模板从企业自有模板中彻底删除,若要保留模板而不删除,可将模板停用。\n\n## 2. 启用模板 (OperateType=ENABLE)\n此操作是将已停用的模板启用,操作幂等,若模板已启用,接口不报错。\n\n## 3. 停用模板 (OperateType=DISABLE)\n此操作是将已启用的模板停用,操作幂等,若模板已停用,接口不报错,停用后,无法通过此模板发起合同,已发起的合同不受影响。",
606
+ "document": "此接口(OperateTemplate)用于对企业自有模板进行管理操作,所有操作都会有对应的回调触发,具体参考回调文档 <a href=\"https://qian.tencent.com/developers/partner/callback_types_templates\" target=\"_blank\">模板操作相关回调</a>\n\n# 支持的操作\n## 1. 删除模板 (OperateType=DELETE)\n此操作会将模板从企业自有模板中彻底删除,若要保留模板而不删除,可将模板停用。\n\n## 2. 启用模板 (OperateType=ENABLE)\n此操作是将已停用的模板启用,操作幂等,若模板已启用,接口不报错。\n\n## 3. 停用模板 (OperateType=DISABLE)\n此操作是将已启用的模板停用,操作幂等,若模板已停用,接口不报错,停用后,无法通过此模板发起合同,已发起的合同不受影响。\n\n## 4. 复制模板 (OperateType=COPY)\n此操作将复制一个完全一样的模板,仅支持修改模板名称,若要修改其他模板内容,需到腾讯电子签控制台操作。",
607
607
  "input": "OperateTemplateRequest",
608
608
  "name": "企业模板管理",
609
609
  "output": "OperateTemplateResponse",
@@ -11888,7 +11888,7 @@
11888
11888
  },
11889
11889
  {
11890
11890
  "disabled": false,
11891
- "document": "操作类型,可取值如下:\n<ul>\n<li>DELETE: 删除</li>\n<li>ENABLE: 启用</li>\n<li>DISABLE: 停用</li>\n</ul>",
11891
+ "document": "操作类型,可取值如下:\n<ul>\n<li>DELETE: 删除</li>\n<li>ENABLE: 启用</li>\n<li>DISABLE: 停用</li>\n<li>COPY: 复制新建</li>\n</ul>",
11892
11892
  "example": "DELETE",
11893
11893
  "member": "string",
11894
11894
  "name": "OperateType",
@@ -1785,6 +1785,58 @@ def doResetAndroidInstances(args, parsed_globals):
1785
1785
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1786
1786
 
1787
1787
 
1788
+ def doDistributePhotoToAndroidInstances(args, parsed_globals):
1789
+ g_param = parse_global_arg(parsed_globals)
1790
+
1791
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
1792
+ cred = credential.CVMRoleCredential()
1793
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
1794
+ cred = credential.STSAssumeRoleCredential(
1795
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
1796
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
1797
+ )
1798
+ 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):
1799
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
1800
+ else:
1801
+ cred = credential.Credential(
1802
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
1803
+ )
1804
+ http_profile = HttpProfile(
1805
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
1806
+ reqMethod="POST",
1807
+ endpoint=g_param[OptionsDefine.Endpoint],
1808
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
1809
+ )
1810
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
1811
+ if g_param[OptionsDefine.Language]:
1812
+ profile.language = g_param[OptionsDefine.Language]
1813
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
1814
+ client = mod.GsClient(cred, g_param[OptionsDefine.Region], profile)
1815
+ client._sdkVersion += ("_CLI_" + __version__)
1816
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
1817
+ model = models.DistributePhotoToAndroidInstancesRequest()
1818
+ model.from_json_string(json.dumps(args))
1819
+ start_time = time.time()
1820
+ while True:
1821
+ rsp = client.DistributePhotoToAndroidInstances(model)
1822
+ result = rsp.to_json_string()
1823
+ try:
1824
+ json_obj = json.loads(result)
1825
+ except TypeError as e:
1826
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
1827
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
1828
+ break
1829
+ cur_time = time.time()
1830
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
1831
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
1832
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
1833
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
1834
+ else:
1835
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
1836
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
1837
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1838
+
1839
+
1788
1840
  def doStartPublishStreamToCSS(args, parsed_globals):
1789
1841
  g_param = parse_global_arg(parsed_globals)
1790
1842
 
@@ -3754,6 +3806,7 @@ ACTION_MAP = {
3754
3806
  "DescribeAndroidInstances": doDescribeAndroidInstances,
3755
3807
  "UploadFilesToAndroidInstances": doUploadFilesToAndroidInstances,
3756
3808
  "ResetAndroidInstances": doResetAndroidInstances,
3809
+ "DistributePhotoToAndroidInstances": doDistributePhotoToAndroidInstances,
3757
3810
  "StartPublishStreamToCSS": doStartPublishStreamToCSS,
3758
3811
  "DescribeAndroidApps": doDescribeAndroidApps,
3759
3812
  "ModifyAndroidInstanceInformation": doModifyAndroidInstanceInformation,
@@ -57,7 +57,7 @@
57
57
  "status": "online"
58
58
  },
59
59
  "CreateAndroidInstanceLabel": {
60
- "document": "创建安卓实例",
60
+ "document": "创建安卓实例标签",
61
61
  "input": "CreateAndroidInstanceLabelRequest",
62
62
  "name": "创建安卓实例标签",
63
63
  "output": "CreateAndroidInstanceLabelResponse",
@@ -127,7 +127,7 @@
127
127
  "status": "online"
128
128
  },
129
129
  "DeleteAndroidInstanceLabel": {
130
- "document": "创建安卓实例",
130
+ "document": "删除安卓实例标签",
131
131
  "input": "DeleteAndroidInstanceLabelRequest",
132
132
  "name": "删除安卓实例标签",
133
133
  "output": "DeleteAndroidInstanceLabelResponse",
@@ -155,7 +155,7 @@
155
155
  "status": "online"
156
156
  },
157
157
  "DescribeAndroidInstanceLabels": {
158
- "document": "创建安卓实例",
158
+ "document": "查询安卓实例标签",
159
159
  "input": "DescribeAndroidInstanceLabelsRequest",
160
160
  "name": "查询安卓实例标签",
161
161
  "output": "DescribeAndroidInstanceLabelsResponse",
@@ -217,6 +217,13 @@
217
217
  "output": "DistributeFileToAndroidInstancesResponse",
218
218
  "status": "online"
219
219
  },
220
+ "DistributePhotoToAndroidInstances": {
221
+ "document": "将一张照片批量分发到多个实例的相册中,一次接口调用触发一次照片分发,一次照片分发只会从公网下载一次,然后照片会走内网分发到实例列表中的实例。",
222
+ "input": "DistributePhotoToAndroidInstancesRequest",
223
+ "name": "分发照片到安卓实例相册",
224
+ "output": "DistributePhotoToAndroidInstancesResponse",
225
+ "status": "online"
226
+ },
220
227
  "EnableAndroidInstancesApp": {
221
228
  "document": "批量启用安卓实例应用",
222
229
  "input": "EnableAndroidInstancesAppRequest",
@@ -253,7 +260,7 @@
253
260
  "status": "online"
254
261
  },
255
262
  "InstallAndroidInstancesAppWithURL": {
256
- "document": "安装安卓实例应用",
263
+ "document": "通过 URL 安装安卓实例应用",
257
264
  "input": "InstallAndroidInstancesAppWithURLRequest",
258
265
  "name": "通过 URL 安装安卓实例应用",
259
266
  "output": "InstallAndroidInstancesAppWithURLResponse",
@@ -302,7 +309,7 @@
302
309
  "status": "online"
303
310
  },
304
311
  "ModifyAndroidInstancesLabels": {
305
- "document": "修改安卓实例分辨率。需要注意的是该接口可能导致正在运行的应用出现闪退,所以建议在实例维护时期才进行调用。",
312
+ "document": "批量修改安卓实例的标签",
306
313
  "input": "ModifyAndroidInstancesLabelsRequest",
307
314
  "name": "批量修改安卓实例的标签",
308
315
  "output": "ModifyAndroidInstancesLabelsResponse",
@@ -358,7 +365,7 @@
358
365
  "status": "online"
359
366
  },
360
367
  "RestartAndroidInstancesApp": {
361
- "document": "启动安卓实例应用",
368
+ "document": "重启安卓实例应用",
362
369
  "input": "RestartAndroidInstancesAppRequest",
363
370
  "name": "重启安卓实例应用",
364
371
  "output": "RestartAndroidInstancesAppResponse",
@@ -393,7 +400,7 @@
393
400
  "status": "online"
394
401
  },
395
402
  "StartAndroidInstances": {
396
- "document": "重启安卓实例",
403
+ "document": "开机安卓实例",
397
404
  "input": "StartAndroidInstancesRequest",
398
405
  "name": "开机安卓实例",
399
406
  "output": "StartAndroidInstancesResponse",
@@ -421,7 +428,7 @@
421
428
  "status": "online"
422
429
  },
423
430
  "StopAndroidInstances": {
424
- "document": "重启安卓实例",
431
+ "document": "关机安卓实例",
425
432
  "input": "StopAndroidInstancesRequest",
426
433
  "name": "关机安卓实例",
427
434
  "output": "StopAndroidInstancesResponse",
@@ -3295,6 +3302,52 @@
3295
3302
  ],
3296
3303
  "type": "object"
3297
3304
  },
3305
+ "DistributePhotoToAndroidInstancesRequest": {
3306
+ "document": "DistributePhotoToAndroidInstances请求参数结构体",
3307
+ "members": [
3308
+ {
3309
+ "disabled": false,
3310
+ "document": "安卓实例 ID 列表",
3311
+ "example": "[\"cai_xxx\"]",
3312
+ "member": "string",
3313
+ "name": "AndroidInstanceIds",
3314
+ "required": true,
3315
+ "type": "list"
3316
+ },
3317
+ {
3318
+ "disabled": false,
3319
+ "document": "照片下载 URL",
3320
+ "example": "https://xxx",
3321
+ "member": "string",
3322
+ "name": "PhotoURL",
3323
+ "required": true,
3324
+ "type": "string"
3325
+ }
3326
+ ],
3327
+ "type": "object"
3328
+ },
3329
+ "DistributePhotoToAndroidInstancesResponse": {
3330
+ "document": "DistributePhotoToAndroidInstances返回参数结构体",
3331
+ "members": [
3332
+ {
3333
+ "disabled": false,
3334
+ "document": "实例任务集合",
3335
+ "example": "无",
3336
+ "member": "AndroidInstanceTask",
3337
+ "name": "TaskSet",
3338
+ "output_required": true,
3339
+ "type": "list",
3340
+ "value_allowed_null": false
3341
+ },
3342
+ {
3343
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
3344
+ "member": "string",
3345
+ "name": "RequestId",
3346
+ "type": "string"
3347
+ }
3348
+ ],
3349
+ "type": "object"
3350
+ },
3298
3351
  "EnableAndroidInstancesAppRequest": {
3299
3352
  "document": "EnableAndroidInstancesApp请求参数结构体",
3300
3353
  "members": [
@@ -254,6 +254,14 @@
254
254
  "title": "示例"
255
255
  }
256
256
  ],
257
+ "DistributePhotoToAndroidInstances": [
258
+ {
259
+ "document": "示例",
260
+ "input": "POST / HTTP/1.1\nHost: gs.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DistributePhotoToAndroidInstances\n<公共请求参数>\n\n{\n \"AndroidInstanceIds\": [\n \"cai-251006279-ea99wkeEIID\",\n \"cai-251006279-ea99QMMwk3A\"\n ],\n \"PhotoURL\": \"https://test.cos.ap-nanjing.myqcloud.com/tmp/wallpaper.jpg\"\n}",
261
+ "output": "{\n \"Response\": {\n \"RequestId\": \"385f8b9c-4c2a-4d9f-8fcd-c06e8a606fe8\",\n \"TaskSet\": [\n {\n \"AndroidInstanceId\": \"cai-251006279-ea99wkeEIID\",\n \"TaskId\": \"8ab16ee3-ea89-48ab-9aaf-18871420d567\"\n },\n {\n \"AndroidInstanceId\": \"cai-251006279-ea99QMMwk3A\",\n \"TaskId\": \"4f9bd67c-6f03-46d5-86c8-19393ab9a375\"\n }\n ]\n }\n}",
262
+ "title": "示例"
263
+ }
264
+ ],
257
265
  "EnableAndroidInstancesApp": [
258
266
  {
259
267
  "document": "",
@@ -485,6 +485,58 @@ def doCreateMuskPrompt(args, parsed_globals):
485
485
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
486
486
 
487
487
 
488
+ def doResetInstancesPassword(args, parsed_globals):
489
+ g_param = parse_global_arg(parsed_globals)
490
+
491
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
492
+ cred = credential.CVMRoleCredential()
493
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
494
+ cred = credential.STSAssumeRoleCredential(
495
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
496
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
497
+ )
498
+ 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):
499
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
500
+ else:
501
+ cred = credential.Credential(
502
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
503
+ )
504
+ http_profile = HttpProfile(
505
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
506
+ reqMethod="POST",
507
+ endpoint=g_param[OptionsDefine.Endpoint],
508
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
509
+ )
510
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
511
+ if g_param[OptionsDefine.Language]:
512
+ profile.language = g_param[OptionsDefine.Language]
513
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
514
+ client = mod.HaiClient(cred, g_param[OptionsDefine.Region], profile)
515
+ client._sdkVersion += ("_CLI_" + __version__)
516
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
517
+ model = models.ResetInstancesPasswordRequest()
518
+ model.from_json_string(json.dumps(args))
519
+ start_time = time.time()
520
+ while True:
521
+ rsp = client.ResetInstancesPassword(model)
522
+ result = rsp.to_json_string()
523
+ try:
524
+ json_obj = json.loads(result)
525
+ except TypeError as e:
526
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
527
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
528
+ break
529
+ cur_time = time.time()
530
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
531
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
532
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
533
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
534
+ else:
535
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
536
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
537
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
538
+
539
+
488
540
  def doDescribeInstanceNetworkStatus(args, parsed_globals):
489
541
  g_param = parse_global_arg(parsed_globals)
490
542
 
@@ -765,6 +817,7 @@ ACTION_MAP = {
765
817
  "DescribeRegions": doDescribeRegions,
766
818
  "StartInstance": doStartInstance,
767
819
  "CreateMuskPrompt": doCreateMuskPrompt,
820
+ "ResetInstancesPassword": doResetInstancesPassword,
768
821
  "DescribeInstanceNetworkStatus": doDescribeInstanceNetworkStatus,
769
822
  "DescribeServiceLoginSettings": doDescribeServiceLoginSettings,
770
823
  "InquirePriceRunInstances": doInquirePriceRunInstances,
@@ -70,6 +70,13 @@
70
70
  "output": "InquirePriceRunInstancesResponse",
71
71
  "status": "online"
72
72
  },
73
+ "ResetInstancesPassword": {
74
+ "document": "本接口 (ResetInstancesPassword) 用于重置实例的用户密码。",
75
+ "input": "ResetInstancesPasswordRequest",
76
+ "name": "重置实例的用户密码",
77
+ "output": "ResetInstancesPasswordResponse",
78
+ "status": "online"
79
+ },
73
80
  "RunInstances": {
74
81
  "document": "本接口 (RunInstances) 用于创建一个或多个指定配置的实例。",
75
82
  "input": "RunInstancesRequest",
@@ -1497,6 +1504,61 @@
1497
1504
  ],
1498
1505
  "usage": "out"
1499
1506
  },
1507
+ "ResetInstancesPasswordRequest": {
1508
+ "document": "ResetInstancesPassword请求参数结构体",
1509
+ "members": [
1510
+ {
1511
+ "disabled": false,
1512
+ "document": "实例ID列表",
1513
+ "example": "['hai-2dfajzo4q']\t",
1514
+ "member": "string",
1515
+ "name": "InstanceIds",
1516
+ "required": true,
1517
+ "type": "list"
1518
+ },
1519
+ {
1520
+ "disabled": false,
1521
+ "document": "实例密码必须8-30位,推荐使用12位以上密码,不能以“/”开头,至少包含以下字符中的三种不同字符,字符种类:<br><li>小写字母:[a-z]</li><br><li>大写字母:[A-Z]</li><br><li>数字:0-9</li><br><li>特殊字符: ()\\`\\~!@#$%^&\\*-+=\\_|{}[]:;'<>,.?/</li>",
1522
+ "example": "test@11111.",
1523
+ "member": "string",
1524
+ "name": "Password",
1525
+ "required": true,
1526
+ "type": "string"
1527
+ },
1528
+ {
1529
+ "disabled": false,
1530
+ "document": "默认为False,True代表只验证接口连通性",
1531
+ "example": "False",
1532
+ "member": "bool",
1533
+ "name": "DryRun",
1534
+ "required": false,
1535
+ "type": "bool"
1536
+ }
1537
+ ],
1538
+ "type": "object"
1539
+ },
1540
+ "ResetInstancesPasswordResponse": {
1541
+ "document": "ResetInstancesPassword返回参数结构体",
1542
+ "members": [
1543
+ {
1544
+ "disabled": false,
1545
+ "document": "task任务id",
1546
+ "example": "23898659",
1547
+ "member": "uint64",
1548
+ "name": "TaskId",
1549
+ "output_required": false,
1550
+ "type": "int",
1551
+ "value_allowed_null": false
1552
+ },
1553
+ {
1554
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
1555
+ "member": "string",
1556
+ "name": "RequestId",
1557
+ "type": "string"
1558
+ }
1559
+ ],
1560
+ "type": "object"
1561
+ },
1500
1562
  "RunInstancesRequest": {
1501
1563
  "document": "RunInstances请求参数结构体",
1502
1564
  "members": [
@@ -80,6 +80,14 @@
80
80
  "title": "发货询价"
81
81
  }
82
82
  ],
83
+ "ResetInstancesPassword": [
84
+ {
85
+ "document": "实例重置密码",
86
+ "input": "POST / HTTP/1.1\nHost: hai.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ResetInstancesPassword\n<公共请求参数>\n\n{\n \"InstanceIds\": [\n \"hai-xxxx\"\n ],\n \"DryRun\": false,\n \"Password\": \"test#123456\"\n}",
87
+ "output": "{\n \"Response\": {\n \"RequestId\": \"e188f45e-e2db-4c30-81e0-2e7a3dfa7754\",\n \"TaskId\": 232559186\n }\n}",
88
+ "title": "实例重置密码"
89
+ }
90
+ ],
83
91
  "RunInstances": [
84
92
  {
85
93
  "document": "创建hai实例",