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.
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
@@ -96,6 +96,22 @@
96
96
  "title": "Sample 1"
97
97
  }
98
98
  ],
99
+ "DescribeOrganizationInfo": [
100
+ {
101
+ "document": " Check group account details",
102
+ "input": "POST / HTTP/1.1\nHost: csip.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeOrganizationInfo\n<Common request parameters>\n\n{\n \"MemberId\": [\n \"mem-cn1***o24ca\"\n ]\n}",
103
+ "output": "{\n \"Response\": {\n \"Data\": [\n {\n \"NickName\": \"Unnamed\",\n \"NodeName\": \"Root\",\n \"CFWProtect\": \"Ultimate\",\n \"WAFProtect\": \"\",\n \"CWPProtect\": \"Ultimate\",\n \"Role\": \"admin\",\n \"MemberId\": \"mem-625****c09**3c901\",\n \"JoinType\": \"create\",\n \"GroupName\": \"Unnamed\",\n \"AdminName\": \"2027925252\",\n \"AdminUin\": \"100014592178\",\n \"CreateTime\": \"2023-04-11 10:47:07\",\n \"MemberCreateTime\": \"2023-04-11 10:47:08\",\n \"NodeCount\": 3,\n \"MemberCount\": 19,\n \"SubAccountCount\": 151,\n \"AbnormalSubUserCount\": 14,\n \"GroupPayMode\": 0,\n \"MemberPayMode\": 0,\n \"GroupPermission\": [\n \"\"\n ],\n \"MemberPermission\": [\n \"View Account\",\n \"Check balance\",\n \"Funds transfer\",\n \"Combined payment\",\n \"Invoicing\"\n ],\n \"Departments\": [\n \"Root\",\n \"Development Team\",\n \"Test Group\"\n ],\n \"CloudCountDesc\": [\n {\n \"CloudType\": 0,\n \"CloudCount\": 14,\n \"CloudDesc\": \"Cloud\"\n },\n {\n \"CloudType\": 1,\n \"CloudCount\": 5,\n \"CloudDesc\": \"AWS\"\n },\n {\n \"CloudType\": 2,\n \"CloudCount\": 2,\n \"CloudDesc\": \"Azure\"\n }\n ],\n \"EnableAdminCount\": 2,\n \"AdminCount\": 2\n }\n ],\n \"RequestId\": \"9c3abcf0-0860-4bd7-ae02-5825a8ee4638\",\n \"TotalCount\": 1\n }\n}",
104
+ "title": "Check group account details"
105
+ }
106
+ ],
107
+ "DescribeOrganizationUserInfo": [
108
+ {
109
+ "document": " Query group account user list",
110
+ "input": "POST / HTTP/1.1\nHost: csip.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeOrganizationUserInfo\n<Common request parameters>\n\n{\n \"MemberId\": [\n \"mem-5b28e2010c18f07a\"\n ],\n \"Filter\": {\n \"Limit\": 10,\n \"Offset\": 0,\n \"Order\": \"SubUserCount\",\n \"By\": \"desc\",\n \"Filters\": [\n {\n \"Name\": \"NickName\",\n \"Values\": [\n \"Andy\"\n ],\n \"OperatorType\": 7\n }\n ]\n },\n \"NotSupportCloud\": true\n}",
111
+ "output": "{\n \"Response\": {\n \"TotalCount\": 1,\n \"Data\": [\n {\n \"Uin\": \"100014592178\",\n \"AppId\": \"1302396000\",\n \"NickName\": \"Andy\",\n \"NodeName\": \"Root\",\n \"CFWProtect\": \"Ultimate\",\n \"WAFProtect\": \"Advanced\",\n \"CWPProtect\": \"Ultimate\",\n \"CSIPProtect\": \"Ultimate\",\n \"Role\": \"admin\",\n \"MemberId\": \"mem-68b8087a65268000\",\n \"JoinType\": \"create\",\n \"AssetCount\": 1235,\n \"RiskCount\": 1599,\n \"AttackCount\": 1839,\n \"SubUserCount\": 11,\n \"Enable\": 1,\n \"QuotaConsumer\": 1,\n \"CloudType\": 0,\n \"PermissionList\": [\n \"readhost\"\n ],\n \"AuthType\": 0,\n \"SyncFrequency\": 0,\n \"IsExpired\": false,\n \"TcMemberType\": 0,\n \"JoinTypeInfo\": \"sub account\"\n }\n ],\n \"JoinTypeLst\": [\n {\n \"Text\": \"Group Account\",\n \"Value\": \"0\"\n }\n ],\n \"RequestId\": \"f9184c15-9721-456d-8ca0-4263967b5ead\"\n }\n}",
112
+ "title": "Query group account user list"
113
+ }
114
+ ],
99
115
  "DescribePublicIpAssets": [
100
116
  {
101
117
  "document": "",
@@ -192,6 +208,14 @@
192
208
  "title": "Example"
193
209
  }
194
210
  ],
211
+ "DescribeSubUserInfo": [
212
+ {
213
+ "document": "Query the group's sub-account list",
214
+ "input": "POST / HTTP/1.1\nHost: csip.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeSubUserInfo\n<Common request parameters>\n\n{\n \"Filter\": {\n \"Filters\": [\n {\n \"Name\": \"OwnerAppID\",\n \"Values\": [\n \"1300448058\"\n ],\n \"OperatorType\": 7\n }\n ],\n \"Limit\": 10,\n \"Offset\": 0\n }\n}",
215
+ "output": "{\n \"Response\": {\n \"CloudTypeLst\": [\n {\n \"Text\": \"Cloud\",\n \"Value\": \"0\"\n },\n {\n \"Text\": \"AWS\",\n \"Value\": \"1\"\n }\n ],\n \"Data\": [\n {\n \"ID\": 54673597,\n \"AppID\": \"1330959198\",\n \"Uin\": \"100040148813\",\n \"NickName\": \"TC_20241224_Wez4\",\n \"OwnerAppID\": \"1330***9198\",\n \"OwnerUin\": \"1000***8855\",\n \"OwnerNickName\": \"1000***78855\",\n \"OwnerMemberID\": \"mem-tencent-59de5***9af64\",\n \"CloudType\": 0,\n \"ServiceCount\": 379,\n \"InterfaceCount\": 38408,\n \"AssetCount\": 1,\n \"LogCount\": 0,\n \"ConfigRiskCount\": 0,\n \"ActionRiskCount\": 0,\n \"IsAccessCloudAudit\": false,\n \"IsAccessCheck\": true,\n \"IsAccessUeba\": false\n }\n ],\n \"OwnerAppIDLst\": [\n {\n \"Text\": \"aws-test-api-Cjhk\",\n \"Value\": \"358***6334\"\n },\n {\n \"Text\": \"TencentCSCSubAccount_20230904_7jpE4\",\n \"Value\": \"6454***52***51\"\n },\n {\n \"Text\": \"TC_20240510_J0Iz\",\n \"Value\": \"6864***15099\"\n },\n {\n \"Text\": \"TC_20240510_nZFQ\",\n \"Value\": \"792***4186\"\n },\n {\n \"Text\": \"TC_20241220_ekw3\",\n \"Value\": \"9054***53255\"\n }\n ],\n \"RequestId\": \"f711b4b6-ed7e-4cc3-8bde-9bba5732e551\",\n \"TotalCount\": 151\n }\n}",
216
+ "title": "Query the group's sub-account list"
217
+ }
218
+ ],
195
219
  "DescribeSubnetAssets": [
196
220
  {
197
221
  "document": "Example",
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from tccli.services.ctsdb.ctsdb_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.ctsdb.v20230202 import ctsdb_client as ctsdb_client_v20230202
15
+ from tencentcloud.ctsdb.v20230202 import models as models_v20230202
16
+
17
+ from jmespath import search
18
+ import time
19
+
20
+ def doDescribeClusters(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.CtsdbClient(cred, g_param[OptionsDefine.Region], profile)
50
+ client._sdkVersion += ("_CLI_" + __version__)
51
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
52
+ model = models.DescribeClustersRequest()
53
+ model.from_json_string(json.dumps(args))
54
+ start_time = time.time()
55
+ while True:
56
+ rsp = client.DescribeClusters(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 doDescribeDatabases(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.CtsdbClient(cred, g_param[OptionsDefine.Region], profile)
105
+ client._sdkVersion += ("_CLI_" + __version__)
106
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
107
+ model = models.DescribeDatabasesRequest()
108
+ model.from_json_string(json.dumps(args))
109
+ start_time = time.time()
110
+ while True:
111
+ rsp = client.DescribeDatabases(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
+ "v20230202": ctsdb_client_v20230202,
132
+
133
+ }
134
+
135
+ MODELS_MAP = {
136
+ "v20230202": models_v20230202,
137
+
138
+ }
139
+
140
+ ACTION_MAP = {
141
+ "DescribeClusters": doDescribeClusters,
142
+ "DescribeDatabases": doDescribeDatabases,
143
+
144
+ }
145
+
146
+ AVAILABLE_VERSION_LIST = [
147
+ "v20230202",
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["ctsdb"][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["ctsdb"][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
+