tccli-intl-en 3.0.1168.1__py2.py3-none-any.whl → 3.1.16.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.

Potentially problematic release.


This version of tccli-intl-en might be problematic. Click here for more details.

Files changed (294) hide show
  1. tccli/__init__.py +1 -1
  2. tccli/argument.py +1 -1
  3. tccli/plugins/sso/__init__.py +14 -0
  4. tccli/plugins/sso/login.py +23 -6
  5. tccli/plugins/sso/texts.py +4 -0
  6. tccli/services/__init__.py +49 -2
  7. tccli/services/advisor/advisor_client.py +10 -4
  8. tccli/services/ai3d/__init__.py +4 -0
  9. tccli/services/ai3d/ai3d_client.py +266 -0
  10. tccli/services/ai3d/v20250513/api.json +264 -0
  11. tccli/services/ai3d/v20250513/examples.json +20 -0
  12. tccli/services/aiart/aiart_client.py +5 -2
  13. tccli/services/ams/ams_client.py +20 -8
  14. tccli/services/antiddos/antiddos_client.py +350 -140
  15. tccli/services/apigateway/apigateway_client.py +465 -186
  16. tccli/services/apm/apm_client.py +835 -68
  17. tccli/services/apm/v20210622/api.json +3936 -1145
  18. tccli/services/apm/v20210622/examples.json +133 -23
  19. tccli/services/asr/asr_client.py +10 -4
  20. tccli/services/autoscaling/autoscaling_client.py +341 -114
  21. tccli/services/autoscaling/v20180419/api.json +514 -333
  22. tccli/services/autoscaling/v20180419/examples.json +46 -38
  23. tccli/services/batch/batch_client.py +140 -56
  24. tccli/services/bi/__init__.py +4 -0
  25. tccli/services/bi/bi_client.py +1498 -0
  26. tccli/services/bi/v20220105/api.json +5769 -0
  27. tccli/services/bi/v20220105/examples.json +215 -0
  28. tccli/services/billing/billing_client.py +1055 -134
  29. tccli/services/billing/v20180709/api.json +1654 -243
  30. tccli/services/billing/v20180709/examples.json +169 -25
  31. tccli/services/cam/cam_client.py +405 -162
  32. tccli/services/captcha/captcha_client.py +5 -2
  33. tccli/services/captcha/v20190722/api.json +16 -6
  34. tccli/services/captcha/v20190722/examples.json +3 -3
  35. tccli/services/car/car_client.py +165 -66
  36. tccli/services/cbs/cbs_client.py +190 -76
  37. tccli/services/ccc/ccc_client.py +1167 -268
  38. tccli/services/ccc/v20200210/api.json +2263 -202
  39. tccli/services/ccc/v20200210/examples.json +116 -12
  40. tccli/services/cdb/cdb_client.py +665 -266
  41. tccli/services/cdb/v20170320/api.json +426 -173
  42. tccli/services/cdb/v20170320/examples.json +6 -6
  43. tccli/services/cdc/cdc_client.py +100 -40
  44. tccli/services/cdc/v20201214/api.json +2 -2
  45. tccli/services/cdc/v20201214/examples.json +4 -4
  46. tccli/services/cdn/cdn_client.py +220 -88
  47. tccli/services/cdwdoris/cdwdoris_client.py +385 -154
  48. tccli/services/cdwpg/cdwpg_client.py +120 -48
  49. tccli/services/cdz/__init__.py +4 -0
  50. tccli/services/cdz/cdz_client.py +210 -0
  51. tccli/services/cdz/v20221123/api.json +233 -0
  52. tccli/services/cdz/v20221123/examples.json +12 -0
  53. tccli/services/cfg/cfg_client.py +80 -32
  54. tccli/services/cfg/v20210820/api.json +30 -10
  55. tccli/services/cfg/v20210820/examples.json +1 -1
  56. tccli/services/cfs/cfs_client.py +195 -78
  57. tccli/services/cfw/cfw_client.py +330 -132
  58. tccli/services/chdfs/chdfs_client.py +145 -58
  59. tccli/services/ciam/ciam_client.py +80 -32
  60. tccli/services/ckafka/ckafka_client.py +1033 -255
  61. tccli/services/ckafka/v20190819/api.json +3378 -1681
  62. tccli/services/ckafka/v20190819/examples.json +254 -160
  63. tccli/services/clb/clb_client.py +1054 -469
  64. tccli/services/clb/v20180317/api.json +2307 -1024
  65. tccli/services/clb/v20180317/examples.json +186 -126
  66. tccli/services/cloudaudit/cloudaudit_client.py +90 -36
  67. tccli/services/cls/cls_client.py +434 -173
  68. tccli/services/cmq/cmq_client.py +14 -803
  69. tccli/services/cmq/v20190304/api.json +173 -1367
  70. tccli/services/cmq/v20190304/examples.json +0 -120
  71. tccli/services/config/config_client.py +30 -12
  72. tccli/services/controlcenter/controlcenter_client.py +229 -2
  73. tccli/services/controlcenter/v20230110/api.json +528 -5
  74. tccli/services/controlcenter/v20230110/examples.json +32 -0
  75. tccli/services/csip/csip_client.py +339 -78
  76. tccli/services/csip/v20221121/api.json +1011 -38
  77. tccli/services/csip/v20221121/examples.json +24 -0
  78. tccli/services/ctsdb/__init__.py +4 -0
  79. tccli/services/ctsdb/ctsdb_client.py +266 -0
  80. tccli/services/ctsdb/v20230202/api.json +677 -0
  81. tccli/services/ctsdb/v20230202/examples.json +20 -0
  82. tccli/services/cvm/cvm_client.py +706 -189
  83. tccli/services/cvm/v20170312/api.json +1141 -510
  84. tccli/services/cvm/v20170312/examples.json +174 -128
  85. tccli/services/cwp/cwp_client.py +2325 -930
  86. tccli/services/cynosdb/cynosdb_client.py +3051 -575
  87. tccli/services/cynosdb/v20190107/api.json +14074 -7139
  88. tccli/services/cynosdb/v20190107/examples.json +597 -287
  89. tccli/services/dataintegration/dataintegration_client.py +5 -2
  90. tccli/services/dayu/dayu_client.py +515 -206
  91. tccli/services/dbbrain/dbbrain_client.py +210 -84
  92. tccli/services/dc/dc_client.py +90 -36
  93. tccli/services/dcdb/dcdb_client.py +310 -124
  94. tccli/services/dlc/dlc_client.py +859 -214
  95. tccli/services/dlc/v20210125/api.json +637 -13
  96. tccli/services/dlc/v20210125/examples.json +48 -0
  97. tccli/services/dms/dms_client.py +10 -4
  98. tccli/services/dnspod/dnspod_client.py +390 -111
  99. tccli/services/dnspod/v20210323/api.json +196 -0
  100. tccli/services/dnspod/v20210323/examples.json +24 -0
  101. tccli/services/domain/domain_client.py +120 -48
  102. tccli/services/dts/dts_client.py +415 -166
  103. tccli/services/eb/eb_client.py +130 -52
  104. tccli/services/ecdn/ecdn_client.py +75 -30
  105. tccli/services/ecm/ecm_client.py +620 -248
  106. tccli/services/eiam/eiam_client.py +200 -80
  107. tccli/services/emr/emr_client.py +3104 -117
  108. tccli/services/emr/v20190103/api.json +15311 -4361
  109. tccli/services/emr/v20190103/examples.json +452 -42
  110. tccli/services/es/es_client.py +105 -42
  111. tccli/services/facefusion/facefusion_client.py +15 -6
  112. tccli/services/faceid/faceid_client.py +95 -38
  113. tccli/services/faceid/v20180301/api.json +172 -45
  114. tccli/services/faceid/v20180301/examples.json +3 -3
  115. tccli/services/gaap/gaap_client.py +440 -176
  116. tccli/services/gme/gme_client.py +50 -20
  117. tccli/services/gpm/gpm_client.py +90 -36
  118. tccli/services/gse/gse_client.py +110 -44
  119. tccli/services/gwlb/gwlb_client.py +90 -36
  120. tccli/services/hunyuan/__init__.py +4 -0
  121. tccli/services/hunyuan/hunyuan_client.py +266 -0
  122. tccli/services/hunyuan/v20230901/api.json +270 -0
  123. tccli/services/hunyuan/v20230901/examples.json +20 -0
  124. tccli/services/iai/iai_client.py +145 -58
  125. tccli/services/iai/v20200303/api.json +187 -51
  126. tccli/services/iai/v20200303/examples.json +30 -12
  127. tccli/services/iap/iap_client.py +30 -12
  128. tccli/services/ims/ims_client.py +5 -2
  129. tccli/services/ims/v20201229/api.json +133 -141
  130. tccli/services/ims/v20201229/examples.json +3 -3
  131. tccli/services/intlpartnersmgt/intlpartnersmgt_client.py +516 -72
  132. tccli/services/intlpartnersmgt/v20220928/api.json +976 -60
  133. tccli/services/intlpartnersmgt/v20220928/examples.json +50 -2
  134. tccli/services/iotcloud/iotcloud_client.py +100 -40
  135. tccli/services/iotcloud/v20210408/api.json +216 -107
  136. tccli/services/iotcloud/v20210408/examples.json +9 -9
  137. tccli/services/ip/ip_client.py +30 -12
  138. tccli/services/kms/kms_client.py +1226 -227
  139. tccli/services/kms/v20190118/api.json +1562 -144
  140. tccli/services/kms/v20190118/examples.json +204 -78
  141. tccli/services/lcic/lcic_client.py +265 -106
  142. tccli/services/lighthouse/lighthouse_client.py +370 -148
  143. tccli/services/lighthouse/v20200324/api.json +14 -14
  144. tccli/services/lighthouse/v20200324/examples.json +5 -5
  145. tccli/services/live/live_client.py +804 -232
  146. tccli/services/live/v20180801/api.json +272 -0
  147. tccli/services/live/v20180801/examples.json +32 -0
  148. tccli/services/lke/__init__.py +4 -0
  149. tccli/services/lke/lke_client.py +5194 -0
  150. tccli/services/lke/v20231130/api.json +14803 -0
  151. tccli/services/lke/v20231130/examples.json +736 -0
  152. tccli/services/lkeap/__init__.py +4 -0
  153. tccli/services/lkeap/lkeap_client.py +602 -0
  154. tccli/services/lkeap/v20240522/api.json +953 -0
  155. tccli/services/lkeap/v20240522/examples.json +92 -0
  156. tccli/services/mariadb/mariadb_client.py +250 -100
  157. tccli/services/mdc/mdc_client.py +90 -36
  158. tccli/services/mdl/mdl_client.py +402 -82
  159. tccli/services/mdl/v20200326/api.json +1144 -58
  160. tccli/services/mdl/v20200326/examples.json +48 -16
  161. tccli/services/mdp/mdp_client.py +785 -122
  162. tccli/services/mdp/v20200527/api.json +1168 -44
  163. tccli/services/mdp/v20200527/examples.json +151 -79
  164. tccli/services/message/__init__.py +4 -0
  165. tccli/services/message/message_client.py +210 -0
  166. tccli/services/message/v20181225/api.json +72 -0
  167. tccli/services/message/v20181225/examples.json +13 -0
  168. tccli/services/mongodb/mongodb_client.py +1452 -136
  169. tccli/services/mongodb/v20190725/api.json +4393 -1462
  170. tccli/services/mongodb/v20190725/examples.json +265 -71
  171. tccli/services/monitor/monitor_client.py +1008 -296
  172. tccli/services/monitor/v20180724/api.json +660 -11
  173. tccli/services/monitor/v20180724/examples.json +152 -4
  174. tccli/services/mps/mps_client.py +1573 -354
  175. tccli/services/mps/v20190612/api.json +12394 -7243
  176. tccli/services/mps/v20190612/examples.json +244 -84
  177. tccli/services/msp/msp_client.py +35 -14
  178. tccli/services/ocr/ocr_client.py +596 -102
  179. tccli/services/ocr/v20181119/api.json +2271 -181
  180. tccli/services/ocr/v20181119/examples.json +70 -8
  181. tccli/services/omics/omics_client.py +100 -40
  182. tccli/services/organization/organization_client.py +580 -232
  183. tccli/services/postgres/postgres_client.py +455 -182
  184. tccli/services/postgres/v20170312/api.json +134 -109
  185. tccli/services/postgres/v20170312/examples.json +14 -14
  186. tccli/services/privatedns/privatedns_client.py +206 -60
  187. tccli/services/privatedns/v20201028/api.json +179 -0
  188. tccli/services/privatedns/v20201028/examples.json +8 -0
  189. tccli/services/pts/pts_client.py +240 -96
  190. tccli/services/quota/__init__.py +4 -0
  191. tccli/services/quota/quota_client.py +434 -0
  192. tccli/services/quota/v20241204/api.json +548 -0
  193. tccli/services/quota/v20241204/examples.json +51 -0
  194. tccli/services/rce/rce_client.py +5 -2
  195. tccli/services/redis/redis_client.py +698 -212
  196. tccli/services/redis/v20180412/api.json +968 -563
  197. tccli/services/redis/v20180412/examples.json +98 -56
  198. tccli/services/region/__init__.py +4 -0
  199. tccli/services/region/region_client.py +322 -0
  200. tccli/services/region/v20220627/api.json +399 -0
  201. tccli/services/region/v20220627/examples.json +29 -0
  202. tccli/services/rum/rum_client.py +300 -120
  203. tccli/services/scf/scf_client.py +210 -84
  204. tccli/services/ses/ses_client.py +368 -69
  205. tccli/services/ses/v20201002/api.json +240 -0
  206. tccli/services/ses/v20201002/examples.json +32 -0
  207. tccli/services/smh/__init__.py +4 -0
  208. tccli/services/smh/smh_client.py +714 -0
  209. tccli/services/smh/v20210712/api.json +1287 -0
  210. tccli/services/smh/v20210712/examples.json +85 -0
  211. tccli/services/sms/sms_client.py +90 -36
  212. tccli/services/sqlserver/sqlserver_client.py +3855 -470
  213. tccli/services/sqlserver/v20180328/api.json +9757 -3347
  214. tccli/services/sqlserver/v20180328/examples.json +480 -20
  215. tccli/services/ssl/ssl_client.py +504 -72
  216. tccli/services/ssl/v20191205/api.json +789 -21
  217. tccli/services/ssl/v20191205/examples.json +54 -0
  218. tccli/services/ssm/ssm_client.py +120 -48
  219. tccli/services/sts/sts_client.py +25 -10
  220. tccli/services/tag/tag_client.py +150 -60
  221. tccli/services/tat/tat_client.py +95 -38
  222. tccli/services/tbaas/__init__.py +4 -0
  223. tccli/services/tbaas/tbaas_client.py +378 -0
  224. tccli/services/tbaas/v20180416/api.json +551 -0
  225. tccli/services/tbaas/v20180416/examples.json +37 -0
  226. tccli/services/tcaplusdb/tcaplusdb_client.py +260 -104
  227. tccli/services/tcaplusdb/v20190823/api.json +836 -760
  228. tccli/services/tcaplusdb/v20190823/examples.json +3 -3
  229. tccli/services/tchd/tchd_client.py +5 -2
  230. tccli/services/tcmpp/tcmpp_client.py +520 -208
  231. tccli/services/tcr/tcr_client.py +380 -152
  232. tccli/services/tcsas/tcsas_client.py +295 -118
  233. tccli/services/tcsas/v20250106/api.json +155 -79
  234. tccli/services/tcsas/v20250106/examples.json +3 -3
  235. tccli/services/tcss/tcss_client.py +1650 -660
  236. tccli/services/tdid/tdid_client.py +240 -96
  237. tccli/services/tdmq/tdmq_client.py +2876 -466
  238. tccli/services/tdmq/v20200217/api.json +11607 -3958
  239. tccli/services/tdmq/v20200217/examples.json +562 -264
  240. tccli/services/tem/tem_client.py +280 -112
  241. tccli/services/teo/teo_client.py +4507 -966
  242. tccli/services/teo/v20220901/api.json +7341 -1405
  243. tccli/services/teo/v20220901/examples.json +679 -99
  244. tccli/services/tione/__init__.py +4 -0
  245. tccli/services/tione/tione_client.py +210 -0
  246. tccli/services/tione/v20211111/api.json +3074 -0
  247. tccli/services/tione/v20211111/examples.json +12 -0
  248. tccli/services/tiw/tiw_client.py +255 -102
  249. tccli/services/tke/tke_client.py +741 -274
  250. tccli/services/tke/v20180525/api.json +132 -7
  251. tccli/services/tke/v20180525/examples.json +42 -16
  252. tccli/services/tms/tms_client.py +5 -2
  253. tccli/services/tms/v20201229/api.json +91 -100
  254. tccli/services/tmt/tmt_client.py +5 -2
  255. tccli/services/trabbit/__init__.py +4 -0
  256. tccli/services/trabbit/trabbit_client.py +1778 -0
  257. tccli/services/trabbit/v20230418/api.json +4772 -0
  258. tccli/services/trabbit/v20230418/examples.json +237 -0
  259. tccli/services/trocket/__init__.py +4 -0
  260. tccli/services/trocket/trocket_client.py +2450 -0
  261. tccli/services/trocket/v20230308/api.json +6062 -0
  262. tccli/services/trocket/v20230308/examples.json +339 -0
  263. tccli/services/trro/trro_client.py +95 -38
  264. tccli/services/trtc/trtc_client.py +928 -192
  265. tccli/services/trtc/v20190722/api.json +1810 -256
  266. tccli/services/trtc/v20190722/examples.json +100 -6
  267. tccli/services/tts/tts_client.py +5 -2
  268. tccli/services/vclm/vclm_client.py +10 -4
  269. tccli/services/vm/v20210922/api.json +61 -30
  270. tccli/services/vm/v20210922/examples.json +0 -12
  271. tccli/services/vm/vm_client.py +20 -8
  272. tccli/services/vod/v20180717/api.json +332 -52
  273. tccli/services/vod/v20180717/examples.json +9 -1
  274. tccli/services/vod/v20240718/api.json +1105 -0
  275. tccli/services/vod/v20240718/examples.json +97 -0
  276. tccli/services/vod/vod_client.py +1316 -350
  277. tccli/services/vpc/v20170312/api.json +1166 -106
  278. tccli/services/vpc/v20170312/examples.json +197 -23
  279. tccli/services/vpc/vpc_client.py +2413 -739
  280. tccli/services/waf/v20180125/api.json +1372 -194
  281. tccli/services/waf/v20180125/examples.json +89 -1
  282. tccli/services/waf/waf_client.py +1149 -245
  283. tccli/services/wedata/v20210820/api.json +1577 -231
  284. tccli/services/wedata/v20210820/examples.json +74 -12
  285. tccli/services/wedata/v20250806/api.json +13644 -0
  286. tccli/services/wedata/v20250806/examples.json +621 -0
  287. tccli/services/wedata/wedata_client.py +6366 -1191
  288. tccli/services/yunjing/yunjing_client.py +355 -142
  289. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/METADATA +4 -7
  290. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/RECORD +294 -230
  291. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/WHEEL +1 -1
  292. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/entry_points.txt +0 -1
  293. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/LICENSE +0 -0
  294. {tccli_intl_en-3.0.1168.1.dist-info → tccli_intl_en-3.1.16.1.dist-info}/top_level.txt +0 -0
tccli/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '3.0.1168.1'
1
+ __version__ = '3.1.16.1'
tccli/argument.py CHANGED
@@ -169,7 +169,7 @@ class CLIArgument(BaseArgument):
169
169
  'Float': float,
170
170
  'Integer': int,
171
171
  'Timestamp': str,
172
- 'Boolean': str
172
+ 'Boolean': bool
173
173
  }
174
174
 
175
175
  def __init__(self, name, argument_model, action_model,
@@ -45,6 +45,20 @@ _spec = {
45
45
  "required": False,
46
46
  "document": "duration for credential",
47
47
  },
48
+ {
49
+ "name": "uin",
50
+ "member": "string",
51
+ "type": "string",
52
+ "required": False,
53
+ "document": "Account uin to use",
54
+ },
55
+ {
56
+ "name": "rolename",
57
+ "member": "string",
58
+ "type": "string",
59
+ "required": False,
60
+ "document": "Role to use",
61
+ },
48
62
  ],
49
63
  },
50
64
  "loginResponse": {"members": []},
@@ -65,9 +65,17 @@ def login(args, profile, language):
65
65
  print_message(_("no_account"))
66
66
  return
67
67
 
68
- idx = terminal.select_from_items(
69
- _("account_select_prompt"), ["%s:%s" % (x["Name"], x["Uin"]) for x in accounts], 10)
70
- account = accounts[idx]
68
+ specified_uin = args.get("uin", "")
69
+ if specified_uin:
70
+ account = next((x for x in accounts if str(x["Uin"]) == specified_uin), None)
71
+ if not account:
72
+ print_message(_("specified_uin_not_found") % (specified_uin, ",".join(str(x["Uin"]) for x in accounts)))
73
+ return
74
+ else:
75
+ idx = terminal.select_from_items(
76
+ _("account_select_prompt"), ["%s:%s" % (x["Name"], x["Uin"]) for x in accounts], 10)
77
+ account = accounts[idx]
78
+
71
79
  print_message("uin: %s" % account["Uin"])
72
80
  print_message("username: %s" % account["Name"])
73
81
 
@@ -76,9 +84,18 @@ def login(args, profile, language):
76
84
  print_message(_("no_role"))
77
85
  return
78
86
 
79
- idx = terminal.select_from_items(
80
- _("role_select_prompt"), [x["RoleConfigurationName"] for x in roles], 10)
81
- role = roles[idx]
87
+ specified_role = args.get("rolename", "")
88
+ if specified_role:
89
+ role = next((x for x in roles if x["RoleConfigurationName"] == specified_role), None)
90
+ if not role:
91
+ print_message(
92
+ _("specified_role_not_found") % (specified_role, ",".join(x["RoleConfigurationName"] for x in roles)))
93
+ return
94
+ else:
95
+ idx = terminal.select_from_items(
96
+ _("role_select_prompt"), [x["RoleConfigurationName"] for x in roles], 10)
97
+ role = roles[idx]
98
+
82
99
  print_message("role: %s" % role["RoleConfigurationName"])
83
100
 
84
101
  saml_resp = sso.gen_saml_response(
@@ -15,6 +15,8 @@ texts = {
15
15
  "logout_success": "登出成功, 密钥凭证已被删除: %s",
16
16
  "no_account": "未找到成员账号, 请确认是否同步过 CAM 角色",
17
17
  "no_role": "当前成员账号不存在授权角色",
18
+ "specified_uin_not_found": "未找到指定的 uin,uin=%s,all=[%s]",
19
+ "specified_role_not_found": "未找到指定的 role, role=%s, all=[%s]",
18
20
  },
19
21
  "en-US": {
20
22
  "invalid_auth_url": "The entered url is invalid: %s",
@@ -27,6 +29,8 @@ texts = {
27
29
  "logout_success": "Logout succeed, credential has been removed: %s",
28
30
  "no_account": "no account found, please confirm the account is synchronized",
29
31
  "no_role": "no role found in current account",
32
+ "specified_uin_not_found": "Specified uin not found, uin=%s, all=[%s]",
33
+ "specified_role_not_found": "Specified role not found, role=%s, all=[%s]",
30
34
  }
31
35
  }
32
36
 
@@ -24,6 +24,9 @@ SERVICE_VERSIONS = {
24
24
  "advisor": [
25
25
  "2020-07-21"
26
26
  ],
27
+ "ai3d": [
28
+ "2025-05-13"
29
+ ],
27
30
  "aiart": [
28
31
  "2022-12-29"
29
32
  ],
@@ -48,6 +51,9 @@ SERVICE_VERSIONS = {
48
51
  "batch": [
49
52
  "2017-03-12"
50
53
  ],
54
+ "bi": [
55
+ "2022-01-05"
56
+ ],
51
57
  "billing": [
52
58
  "2018-07-09"
53
59
  ],
@@ -81,6 +87,9 @@ SERVICE_VERSIONS = {
81
87
  "cdwpg": [
82
88
  "2020-12-30"
83
89
  ],
90
+ "cdz": [
91
+ "2022-11-23"
92
+ ],
84
93
  "cfg": [
85
94
  "2021-08-20"
86
95
  ],
@@ -121,6 +130,9 @@ SERVICE_VERSIONS = {
121
130
  "csip": [
122
131
  "2022-11-21"
123
132
  ],
133
+ "ctsdb": [
134
+ "2023-02-02"
135
+ ],
124
136
  "cvm": [
125
137
  "2017-03-12"
126
138
  ],
@@ -201,6 +213,9 @@ SERVICE_VERSIONS = {
201
213
  "gwlb": [
202
214
  "2024-09-06"
203
215
  ],
216
+ "hunyuan": [
217
+ "2023-09-01"
218
+ ],
204
219
  "iai": [
205
220
  "2020-03-03"
206
221
  ],
@@ -231,6 +246,12 @@ SERVICE_VERSIONS = {
231
246
  "live": [
232
247
  "2018-08-01"
233
248
  ],
249
+ "lke": [
250
+ "2023-11-30"
251
+ ],
252
+ "lkeap": [
253
+ "2024-05-22"
254
+ ],
234
255
  "mariadb": [
235
256
  "2017-03-12"
236
257
  ],
@@ -243,6 +264,9 @@ SERVICE_VERSIONS = {
243
264
  "mdp": [
244
265
  "2020-05-27"
245
266
  ],
267
+ "message": [
268
+ "2018-12-25"
269
+ ],
246
270
  "mongodb": [
247
271
  "2019-07-25"
248
272
  ],
@@ -274,12 +298,18 @@ SERVICE_VERSIONS = {
274
298
  "pts": [
275
299
  "2021-07-28"
276
300
  ],
301
+ "quota": [
302
+ "2024-12-04"
303
+ ],
277
304
  "rce": [
278
305
  "2020-11-03"
279
306
  ],
280
307
  "redis": [
281
308
  "2018-04-12"
282
309
  ],
310
+ "region": [
311
+ "2022-06-27"
312
+ ],
283
313
  "rum": [
284
314
  "2021-06-22"
285
315
  ],
@@ -289,6 +319,9 @@ SERVICE_VERSIONS = {
289
319
  "ses": [
290
320
  "2020-10-02"
291
321
  ],
322
+ "smh": [
323
+ "2021-07-12"
324
+ ],
292
325
  "sms": [
293
326
  "2021-01-11",
294
327
  "2019-07-11"
@@ -311,6 +344,9 @@ SERVICE_VERSIONS = {
311
344
  "tat": [
312
345
  "2020-10-28"
313
346
  ],
347
+ "tbaas": [
348
+ "2018-04-16"
349
+ ],
314
350
  "tcaplusdb": [
315
351
  "2019-08-23"
316
352
  ],
@@ -343,6 +379,9 @@ SERVICE_VERSIONS = {
343
379
  "2022-09-01",
344
380
  "2022-01-06"
345
381
  ],
382
+ "tione": [
383
+ "2021-11-11"
384
+ ],
346
385
  "tiw": [
347
386
  "2019-09-19"
348
387
  ],
@@ -356,6 +395,12 @@ SERVICE_VERSIONS = {
356
395
  "tmt": [
357
396
  "2018-03-21"
358
397
  ],
398
+ "trabbit": [
399
+ "2023-04-18"
400
+ ],
401
+ "trocket": [
402
+ "2023-03-08"
403
+ ],
359
404
  "trro": [
360
405
  "2022-03-25"
361
406
  ],
@@ -373,7 +418,8 @@ SERVICE_VERSIONS = {
373
418
  "2020-12-29"
374
419
  ],
375
420
  "vod": [
376
- "2018-07-17"
421
+ "2018-07-17",
422
+ "2024-07-18"
377
423
  ],
378
424
  "vpc": [
379
425
  "2017-03-12"
@@ -382,7 +428,8 @@ SERVICE_VERSIONS = {
382
428
  "2018-01-25"
383
429
  ],
384
430
  "wedata": [
385
- "2021-08-20"
431
+ "2021-08-20",
432
+ "2025-08-06"
386
433
  ],
387
434
  "yunjing": [
388
435
  "2018-02-28"
@@ -27,7 +27,10 @@ def doDescribeTaskStrategyRisks(args, parsed_globals):
27
27
  g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
28
28
  g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
29
29
  )
30
- 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):
30
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) \
31
+ and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) \
32
+ and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) \
33
+ and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
31
34
  cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
32
35
  else:
33
36
  cred = credential.Credential(
@@ -39,7 +42,7 @@ def doDescribeTaskStrategyRisks(args, parsed_globals):
39
42
  endpoint=g_param[OptionsDefine.Endpoint],
40
43
  proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
41
44
  )
42
- profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
45
+ profile = ClientProfile(httpProfile=http_profile, signMethod="TC3-HMAC-SHA256")
43
46
  if g_param[OptionsDefine.Language]:
44
47
  profile.language = g_param[OptionsDefine.Language]
45
48
  mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
@@ -79,7 +82,10 @@ def doDescribeStrategies(args, parsed_globals):
79
82
  g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
80
83
  g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
81
84
  )
82
- 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):
85
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) \
86
+ and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) \
87
+ and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) \
88
+ and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
83
89
  cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
84
90
  else:
85
91
  cred = credential.Credential(
@@ -91,7 +97,7 @@ def doDescribeStrategies(args, parsed_globals):
91
97
  endpoint=g_param[OptionsDefine.Endpoint],
92
98
  proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
93
99
  )
94
- profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
100
+ profile = ClientProfile(httpProfile=http_profile, signMethod="TC3-HMAC-SHA256")
95
101
  if g_param[OptionsDefine.Language]:
96
102
  profile.language = g_param[OptionsDefine.Language]
97
103
  mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from tccli.services.ai3d.ai3d_client import action_caller
4
+
@@ -0,0 +1,266 @@
1
+ # -*- coding: utf-8 -*-
2
+ import os
3
+ import sys
4
+ import six
5
+ import json
6
+ import tccli.options_define as OptionsDefine
7
+ import tccli.format_output as FormatOutput
8
+ from tccli import __version__
9
+ from tccli.utils import Utils
10
+ from tccli.exceptions import ConfigurationError, ClientError, ParamError
11
+ from tencentcloud.common import credential
12
+ from tencentcloud.common.profile.http_profile import HttpProfile
13
+ from tencentcloud.common.profile.client_profile import ClientProfile
14
+ from tencentcloud.ai3d.v20250513 import ai3d_client as ai3d_client_v20250513
15
+ from tencentcloud.ai3d.v20250513 import models as models_v20250513
16
+
17
+ from jmespath import search
18
+ import time
19
+
20
+ def doSubmitHunyuanTo3DProJob(args, parsed_globals):
21
+ g_param = parse_global_arg(parsed_globals)
22
+
23
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
24
+ cred = credential.CVMRoleCredential()
25
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
26
+ cred = credential.STSAssumeRoleCredential(
27
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
28
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
29
+ )
30
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) \
31
+ and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) \
32
+ and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) \
33
+ and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
34
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
35
+ else:
36
+ cred = credential.Credential(
37
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
38
+ )
39
+ http_profile = HttpProfile(
40
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
41
+ reqMethod="POST",
42
+ endpoint=g_param[OptionsDefine.Endpoint],
43
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
44
+ )
45
+ profile = ClientProfile(httpProfile=http_profile, signMethod="TC3-HMAC-SHA256")
46
+ if g_param[OptionsDefine.Language]:
47
+ profile.language = g_param[OptionsDefine.Language]
48
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
49
+ client = mod.Ai3dClient(cred, g_param[OptionsDefine.Region], profile)
50
+ client._sdkVersion += ("_CLI_" + __version__)
51
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
52
+ model = models.SubmitHunyuanTo3DProJobRequest()
53
+ model.from_json_string(json.dumps(args))
54
+ start_time = time.time()
55
+ while True:
56
+ rsp = client.SubmitHunyuanTo3DProJob(model)
57
+ result = rsp.to_json_string()
58
+ try:
59
+ json_obj = json.loads(result)
60
+ except TypeError as e:
61
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
62
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
63
+ break
64
+ cur_time = time.time()
65
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
66
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
67
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
68
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
69
+ else:
70
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
71
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
72
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
73
+
74
+
75
+ def doQueryHunyuanTo3DProJob(args, parsed_globals):
76
+ g_param = parse_global_arg(parsed_globals)
77
+
78
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
79
+ cred = credential.CVMRoleCredential()
80
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
81
+ cred = credential.STSAssumeRoleCredential(
82
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
83
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
84
+ )
85
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) \
86
+ and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) \
87
+ and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) \
88
+ and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
89
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
90
+ else:
91
+ cred = credential.Credential(
92
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
93
+ )
94
+ http_profile = HttpProfile(
95
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
96
+ reqMethod="POST",
97
+ endpoint=g_param[OptionsDefine.Endpoint],
98
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
99
+ )
100
+ profile = ClientProfile(httpProfile=http_profile, signMethod="TC3-HMAC-SHA256")
101
+ if g_param[OptionsDefine.Language]:
102
+ profile.language = g_param[OptionsDefine.Language]
103
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
104
+ client = mod.Ai3dClient(cred, g_param[OptionsDefine.Region], profile)
105
+ client._sdkVersion += ("_CLI_" + __version__)
106
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
107
+ model = models.QueryHunyuanTo3DProJobRequest()
108
+ model.from_json_string(json.dumps(args))
109
+ start_time = time.time()
110
+ while True:
111
+ rsp = client.QueryHunyuanTo3DProJob(model)
112
+ result = rsp.to_json_string()
113
+ try:
114
+ json_obj = json.loads(result)
115
+ except TypeError as e:
116
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
117
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
118
+ break
119
+ cur_time = time.time()
120
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
121
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
122
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
123
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
124
+ else:
125
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
126
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
127
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
128
+
129
+
130
+ CLIENT_MAP = {
131
+ "v20250513": ai3d_client_v20250513,
132
+
133
+ }
134
+
135
+ MODELS_MAP = {
136
+ "v20250513": models_v20250513,
137
+
138
+ }
139
+
140
+ ACTION_MAP = {
141
+ "SubmitHunyuanTo3DProJob": doSubmitHunyuanTo3DProJob,
142
+ "QueryHunyuanTo3DProJob": doQueryHunyuanTo3DProJob,
143
+
144
+ }
145
+
146
+ AVAILABLE_VERSION_LIST = [
147
+ "v20250513",
148
+
149
+ ]
150
+
151
+
152
+ def action_caller():
153
+ return ACTION_MAP
154
+
155
+
156
+ def parse_global_arg(parsed_globals):
157
+ g_param = parsed_globals
158
+ cvm_role_flag = True
159
+ for param in parsed_globals.keys():
160
+ if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId, OptionsDefine.RoleArn,
161
+ OptionsDefine.RoleSessionName]:
162
+ if parsed_globals[param] is not None:
163
+ cvm_role_flag = False
164
+ break
165
+ is_exist_profile = True
166
+ if not parsed_globals["profile"]:
167
+ is_exist_profile = False
168
+ g_param["profile"] = os.environ.get("TCCLI_PROFILE", "default")
169
+
170
+ configure_path = os.path.join(os.path.expanduser("~"), ".tccli")
171
+ is_conf_exist, conf_path = Utils.file_existed(configure_path, g_param["profile"] + ".configure")
172
+ is_cred_exist, cred_path = Utils.file_existed(configure_path, g_param["profile"] + ".credential")
173
+
174
+ conf = {}
175
+ cred = {}
176
+
177
+ if is_conf_exist:
178
+ conf = Utils.load_json_msg(conf_path)
179
+ if is_cred_exist:
180
+ cred = Utils.load_json_msg(cred_path)
181
+
182
+ if not (isinstance(conf, dict) and isinstance(cred, dict)):
183
+ raise ConfigurationError(
184
+ "file: %s or %s is not json format"
185
+ % (g_param["profile"] + ".configure", g_param["profile"] + ".credential"))
186
+
187
+ if OptionsDefine.Token not in cred:
188
+ cred[OptionsDefine.Token] = None
189
+
190
+ if not is_exist_profile:
191
+ if os.environ.get(OptionsDefine.ENV_SECRET_ID) and os.environ.get(OptionsDefine.ENV_SECRET_KEY):
192
+ cred[OptionsDefine.SecretId] = os.environ.get(OptionsDefine.ENV_SECRET_ID)
193
+ cred[OptionsDefine.SecretKey] = os.environ.get(OptionsDefine.ENV_SECRET_KEY)
194
+ cred[OptionsDefine.Token] = os.environ.get(OptionsDefine.ENV_TOKEN)
195
+ cvm_role_flag = False
196
+
197
+ if os.environ.get(OptionsDefine.ENV_REGION):
198
+ conf[OptionsDefine.SysParam][OptionsDefine.Region] = os.environ.get(OptionsDefine.ENV_REGION)
199
+
200
+ if os.environ.get(OptionsDefine.ENV_ROLE_ARN) and os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME):
201
+ cred[OptionsDefine.RoleArn] = os.environ.get(OptionsDefine.ENV_ROLE_ARN)
202
+ cred[OptionsDefine.RoleSessionName] = os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME)
203
+ cvm_role_flag = False
204
+
205
+ if cvm_role_flag:
206
+ if "type" in cred and cred["type"] == "cvm-role":
207
+ g_param[OptionsDefine.UseCVMRole.replace('-', '_')] = True
208
+
209
+ for param in g_param.keys():
210
+ if g_param[param] is None:
211
+ if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId, OptionsDefine.Token]:
212
+ if param in cred:
213
+ g_param[param] = cred[param]
214
+ elif not (g_param[OptionsDefine.UseCVMRole.replace('-', '_')]
215
+ or os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN)):
216
+ raise ConfigurationError("%s is invalid" % param)
217
+ elif param in [OptionsDefine.Region, OptionsDefine.Output, OptionsDefine.Language]:
218
+ if param in conf[OptionsDefine.SysParam]:
219
+ g_param[param] = conf[OptionsDefine.SysParam][param]
220
+ elif param != OptionsDefine.Language:
221
+ raise ConfigurationError("%s is invalid" % param)
222
+ elif param.replace('_', '-') in [OptionsDefine.RoleArn, OptionsDefine.RoleSessionName]:
223
+ if param.replace('_', '-') in cred:
224
+ g_param[param] = cred[param.replace('_', '-')]
225
+
226
+ try:
227
+ if g_param[OptionsDefine.ServiceVersion]:
228
+ g_param[OptionsDefine.Version] = "v" + g_param[OptionsDefine.ServiceVersion].replace('-', '')
229
+ else:
230
+ version = conf["ai3d"][OptionsDefine.Version]
231
+ g_param[OptionsDefine.Version] = "v" + version.replace('-', '')
232
+
233
+ if g_param[OptionsDefine.Endpoint] is None:
234
+ g_param[OptionsDefine.Endpoint] = conf["ai3d"][OptionsDefine.Endpoint]
235
+ g_param["sts_cred_endpoint"] = conf.get("sts", {}).get("endpoint")
236
+ except Exception as err:
237
+ raise ConfigurationError("config file:%s error, %s" % (conf_path, str(err)))
238
+
239
+ if g_param[OptionsDefine.Version] not in AVAILABLE_VERSION_LIST:
240
+ raise Exception("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST))
241
+
242
+ if g_param[OptionsDefine.Waiter]:
243
+ param = eval(g_param[OptionsDefine.Waiter])
244
+ if 'expr' not in param:
245
+ raise Exception('`expr` in `--waiter` must be defined')
246
+ if 'to' not in param:
247
+ raise Exception('`to` in `--waiter` must be defined')
248
+ if 'timeout' not in param:
249
+ if 'waiter' in conf and 'timeout' in conf['waiter']:
250
+ param['timeout'] = conf['waiter']['timeout']
251
+ else:
252
+ param['timeout'] = 180
253
+ if 'interval' not in param:
254
+ if 'waiter' in conf and 'interval' in conf['waiter']:
255
+ param['interval'] = conf['waiter']['interval']
256
+ else:
257
+ param['interval'] = 5
258
+ param['interval'] = min(param['interval'], param['timeout'])
259
+ g_param['OptionsDefine.WaiterInfo'] = param
260
+
261
+ if six.PY2:
262
+ for key, value in g_param.items():
263
+ if isinstance(value, six.text_type):
264
+ g_param[key] = value.encode('utf-8')
265
+ return g_param
266
+