ic-code 1.5.2__tar.gz → 1.6.0__tar.gz

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 (273) hide show
  1. {ic_code-1.5.2/src/ic_code.egg-info → ic_code-1.6.0}/PKG-INFO +183 -37
  2. ic_code-1.6.0/README.md +469 -0
  3. ic_code-1.6.0/docs/aws/README.md +114 -0
  4. {ic_code-1.5.2 → ic_code-1.6.0}/docs/gcp/README.md +2 -2
  5. ic_code-1.6.0/docs/tencent/README.md +102 -0
  6. ic_code-1.6.0/docs/user_guide.md +132 -0
  7. {ic_code-1.5.2 → ic_code-1.6.0}/pyproject.toml +1 -1
  8. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/__init__.py +1 -1
  9. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/installer.py +8 -8
  10. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/migration.py +28 -23
  11. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/secrets.py +5 -5
  12. ic_code-1.6.0/src/ic/platforms/aws/disk/__init__.py +1 -0
  13. ic_code-1.6.0/src/ic/platforms/aws/disk/info.py +32 -0
  14. ic_code-1.6.0/src/ic/platforms/aws/ebs/__init__.py +1 -0
  15. ic_code-1.6.0/src/ic/platforms/aws/ebs/info.py +528 -0
  16. ic_code-1.6.0/src/ic/platforms/aws/ebs/mock_data.json +90 -0
  17. ic_code-1.6.0/src/ic/platforms/aws/iam/__init__.py +1 -0
  18. ic_code-1.6.0/src/ic/platforms/aws/iam/user.py +559 -0
  19. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/profile/info.py +55 -10
  20. ic_code-1.6.0/src/ic/platforms/aws/profile/switch.py +365 -0
  21. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/billing/info.py +3 -3
  22. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/compute/info.py +50 -15
  23. ic_code-1.6.0/src/ic/platforms/gcp/disk/__init__.py +1 -0
  24. ic_code-1.6.0/src/ic/platforms/gcp/disk/info.py +566 -0
  25. ic_code-1.6.0/src/ic/platforms/gcp/disk/mock_data.json +96 -0
  26. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/__init__.py +2 -1
  27. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/auto_ssh.py +7 -24
  28. ic_code-1.6.0/src/ic/platforms/ssh/policy.py +61 -0
  29. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/server_info.py +6 -14
  30. ic_code-1.6.0/src/ic/platforms/tencent/cam/__init__.py +1 -0
  31. ic_code-1.6.0/src/ic/platforms/tencent/cam/user.py +582 -0
  32. ic_code-1.6.0/src/ic/platforms/tencent/cbs/__init__.py +1 -0
  33. ic_code-1.6.0/src/ic/platforms/tencent/cbs/info.py +556 -0
  34. ic_code-1.6.0/src/ic/platforms/tencent/cbs/mock_data.json +74 -0
  35. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/client.py +370 -10
  36. ic_code-1.6.0/src/ic/platforms/tencent/disk/__init__.py +1 -0
  37. ic_code-1.6.0/src/ic/platforms/tencent/disk/info.py +32 -0
  38. ic_code-1.6.0/src/ic/platforms/tencent/lighthouse/firewall.py +477 -0
  39. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/lighthouse/info.py +32 -5
  40. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/profile/info.py +82 -5
  41. ic_code-1.6.0/src/ic/platforms/tencent/profile/switch.py +162 -0
  42. {ic_code-1.5.2 → ic_code-1.6.0/src/ic_code.egg-info}/PKG-INFO +183 -37
  43. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic_code.egg-info/SOURCES.txt +21 -0
  44. ic_code-1.5.2/README.md +0 -323
  45. ic_code-1.5.2/docs/aws/README.md +0 -62
  46. ic_code-1.5.2/docs/tencent/README.md +0 -54
  47. ic_code-1.5.2/docs/user_guide.md +0 -98
  48. {ic_code-1.5.2 → ic_code-1.6.0}/LICENSE +0 -0
  49. {ic_code-1.5.2 → ic_code-1.6.0}/MANIFEST.in +0 -0
  50. {ic_code-1.5.2 → ic_code-1.6.0}/SECURITY.md +0 -0
  51. {ic_code-1.5.2 → ic_code-1.6.0}/config/default.yaml +0 -0
  52. {ic_code-1.5.2 → ic_code-1.6.0}/docs/README.md +0 -0
  53. {ic_code-1.5.2 → ic_code-1.6.0}/docs/cloudflare/README.md +0 -0
  54. {ic_code-1.5.2 → ic_code-1.6.0}/docs/installation.md +0 -0
  55. {ic_code-1.5.2 → ic_code-1.6.0}/docs/oci/README.md +0 -0
  56. {ic_code-1.5.2 → ic_code-1.6.0}/docs/release-guide.md +0 -0
  57. {ic_code-1.5.2 → ic_code-1.6.0}/docs/security.md +0 -0
  58. {ic_code-1.5.2 → ic_code-1.6.0}/docs/ssh/README.md +0 -0
  59. {ic_code-1.5.2 → ic_code-1.6.0}/docs/troubleshooting.md +0 -0
  60. {ic_code-1.5.2 → ic_code-1.6.0}/requirements.txt +0 -0
  61. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/bump-version.sh +0 -0
  62. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
  63. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/ci-detect-platforms.py +0 -0
  64. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/ci-generate-matrix.py +0 -0
  65. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/ci-smoke-test.sh +0 -0
  66. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/deploy.sh +0 -0
  67. {ic_code-1.5.2 → ic_code-1.6.0}/scripts/oracle-policy/user_policy.py +0 -0
  68. {ic_code-1.5.2 → ic_code-1.6.0}/setup.cfg +0 -0
  69. {ic_code-1.5.2 → ic_code-1.6.0}/setup.py +0 -0
  70. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/__init__.py +0 -0
  71. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/gather_env.py +0 -0
  72. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/gcp_config_validator.py +0 -0
  73. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/gcp_monitoring.py +0 -0
  74. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/gcp_utils.py +0 -0
  75. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/log.py +0 -0
  76. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/progress_decorator.py +0 -0
  77. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/slack.py +0 -0
  78. {ic_code-1.5.2 → ic_code-1.6.0}/src/common/utils.py +0 -0
  79. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/cli.py +0 -0
  80. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/commands/__init__.py +0 -0
  81. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/commands/config.py +0 -0
  82. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/commands/security.py +0 -0
  83. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/compat/__init__.py +0 -0
  84. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/compat/cli.py +0 -0
  85. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/compat/common.py +0 -0
  86. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/__init__.py +0 -0
  87. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/cleanup.py +0 -0
  88. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/docs_organizer.py +0 -0
  89. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/external.py +0 -0
  90. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/manager.py +0 -0
  91. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/migration_utils.py +0 -0
  92. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/path_manager.py +0 -0
  93. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/schema.py +0 -0
  94. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/config/security.py +0 -0
  95. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/__init__.py +0 -0
  96. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/dependency_validator.py +0 -0
  97. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/desc_helper.py +0 -0
  98. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/interfaces/__init__.py +0 -0
  99. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/interfaces/command.py +0 -0
  100. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/interfaces/formatter.py +0 -0
  101. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/interfaces/result.py +0 -0
  102. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/logging.py +0 -0
  103. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/platform_discovery.py +0 -0
  104. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/session.py +0 -0
  105. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/core/silence_logging.py +0 -0
  106. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/__init__.py +0 -0
  107. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/__init__.py +0 -0
  108. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
  109. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/cloudfront/info.py +0 -0
  110. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
  111. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/codepipeline/build.py +0 -0
  112. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
  113. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ec2/__init__.py +0 -0
  114. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ec2/desc.py +0 -0
  115. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ec2/info.py +0 -0
  116. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ec2/list_tags.py +0 -0
  117. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
  118. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ecs/__init__.py +0 -0
  119. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ecs/info.py +0 -0
  120. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ecs/service.py +0 -0
  121. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/ecs/task.py +0 -0
  122. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/__init__.py +0 -0
  123. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/addons.py +0 -0
  124. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/fargate.py +0 -0
  125. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/info.py +0 -0
  126. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/nodes.py +0 -0
  127. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/pods.py +0 -0
  128. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/eks/update_config.py +0 -0
  129. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/fargate/__init__.py +0 -0
  130. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/fargate/info.py +0 -0
  131. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/healthdashboard/__init__.py +0 -0
  132. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/healthdashboard/reboot.py +0 -0
  133. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/lb/__init__.py +0 -0
  134. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/lb/desc.py +0 -0
  135. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/lb/info.py +0 -0
  136. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/lb/list_tags.py +0 -0
  137. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/lb/tag_check.py +0 -0
  138. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/msk/__init__.py +0 -0
  139. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/msk/broker.py +0 -0
  140. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/msk/info.py +0 -0
  141. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/nat/__init__.py +0 -0
  142. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/nat/list_tags.py +0 -0
  143. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/nat/tag_check.py +0 -0
  144. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/profile/__init__.py +0 -0
  145. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/rds/__init__.py +0 -0
  146. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/rds/info.py +0 -0
  147. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/rds/list_tags.py +0 -0
  148. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/rds/tag_check.py +0 -0
  149. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/s3/__init__.py +0 -0
  150. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/s3/info.py +0 -0
  151. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/s3/list_tags.py +0 -0
  152. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/s3/tag_check.py +0 -0
  153. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/sg/__init__.py +0 -0
  154. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/sg/info.py +0 -0
  155. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpc/__init__.py +0 -0
  156. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpc/info.py +0 -0
  157. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpc/list_tags.py +0 -0
  158. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
  159. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpn/__init__.py +0 -0
  160. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/aws/vpn/info.py +0 -0
  161. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/__init__.py +0 -0
  162. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
  163. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/account/info.py +0 -0
  164. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/client.py +0 -0
  165. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
  166. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/dns/info.py +0 -0
  167. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
  168. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
  169. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/rules/info.py +0 -0
  170. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
  171. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/traffic/info.py +0 -0
  172. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
  173. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/waf/info.py +0 -0
  174. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
  175. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/cloudflare/zone/info.py +0 -0
  176. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/__init__.py +0 -0
  177. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/billing/__init__.py +0 -0
  178. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
  179. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/compute/__init__.py +0 -0
  180. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/compute/desc.py +0 -0
  181. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
  182. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/dns/__init__.py +0 -0
  183. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/dns/info.py +0 -0
  184. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/dns/mock_data.json +0 -0
  185. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
  186. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/firewall/info.py +0 -0
  187. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/firewall/mock_data.json +0 -0
  188. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/functions/__init__.py +0 -0
  189. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/functions/info.py +0 -0
  190. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/functions/mock_data.json +0 -0
  191. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/gke/__init__.py +0 -0
  192. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/gke/info.py +0 -0
  193. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
  194. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/lb/__init__.py +0 -0
  195. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/lb/desc.py +0 -0
  196. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/lb/info.py +0 -0
  197. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/lb/mock_data.json +0 -0
  198. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/profile/__init__.py +0 -0
  199. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/profile/info.py +0 -0
  200. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/profile/mock_data.json +0 -0
  201. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/project/__init__.py +0 -0
  202. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/project/info.py +0 -0
  203. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/project/mock_data.json +0 -0
  204. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/run/__init__.py +0 -0
  205. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/run/info.py +0 -0
  206. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/run/mock_data.json +0 -0
  207. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/sql/__init__.py +0 -0
  208. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/sql/info.py +0 -0
  209. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/sql/mock_data.json +0 -0
  210. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/storage/__init__.py +0 -0
  211. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/storage/info.py +0 -0
  212. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/storage/mock_data.json +0 -0
  213. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
  214. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/vpc/info.py +0 -0
  215. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
  216. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/__init__.py +0 -0
  217. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/common/__init__.py +0 -0
  218. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/common/utils.py +0 -0
  219. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/compartment/__init__.py +0 -0
  220. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/compartment/info.py +0 -0
  221. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/cost/__init__.py +0 -0
  222. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/cost/credit.py +0 -0
  223. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/cost/usage.py +0 -0
  224. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/info/__init__.py +0 -0
  225. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/info/oci_info.py +0 -0
  226. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/lb/__init__.py +0 -0
  227. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/lb/info.py +0 -0
  228. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/nsg/__init__.py +0 -0
  229. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/nsg/info.py +0 -0
  230. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/obj/__init__.py +0 -0
  231. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/obj/info.py +0 -0
  232. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/policy/__init__.py +0 -0
  233. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/policy/info.py +0 -0
  234. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/policy/search.py +0 -0
  235. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/vcn/__init__.py +0 -0
  236. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/vcn/info.py +0 -0
  237. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/vm/__init__.py +0 -0
  238. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/vm/info.py +0 -0
  239. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/volume/__init__.py +0 -0
  240. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/oci/volume/info.py +0 -0
  241. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/auto/__init__.py +0 -0
  242. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/auto/scan.py +0 -0
  243. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/server/__init__.py +0 -0
  244. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/ssh/server/info.py +0 -0
  245. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/__init__.py +0 -0
  246. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/clb/__init__.py +0 -0
  247. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/clb/desc.py +0 -0
  248. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/clb/info.py +0 -0
  249. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/clb/traffic.py +0 -0
  250. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/cvm/__init__.py +0 -0
  251. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/cvm/desc.py +0 -0
  252. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/cvm/info.py +0 -0
  253. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/lighthouse/__init__.py +0 -0
  254. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/nat/__init__.py +0 -0
  255. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/nat/info.py +0 -0
  256. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/profile/__init__.py +0 -0
  257. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/sg/__init__.py +0 -0
  258. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/sg/info.py +0 -0
  259. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/tke/__init__.py +0 -0
  260. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/tke/info.py +0 -0
  261. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/vpc/__init__.py +0 -0
  262. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/platforms/tencent/vpc/info.py +0 -0
  263. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/__init__.py +0 -0
  264. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/config.py +0 -0
  265. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/detector.py +0 -0
  266. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/guidance.py +0 -0
  267. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/hooks.py +0 -0
  268. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/patterns.py +0 -0
  269. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic/security/scanner.py +0 -0
  270. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic_code.egg-info/dependency_links.txt +0 -0
  271. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic_code.egg-info/entry_points.txt +0 -0
  272. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic_code.egg-info/requires.txt +0 -0
  273. {ic_code-1.5.2 → ic_code-1.6.0}/src/ic_code.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ic-code
3
- Version: 1.5.2
3
+ Version: 1.6.0
4
4
  Summary: Infrastructure CLI tool for managing AWS, GCP, OCI, CloudFlare, SSH, and more
5
5
  Home-page: https://github.com/dgr009/ic
6
6
  Author: SangYun Kim
@@ -117,10 +117,12 @@ A comprehensive, production-grade Infrastructure Command Line Interface tool for
117
117
  ## ✨ Key Features
118
118
 
119
119
  - **🚀 Multi-Cloud Support**: AWS, Tencent Cloud, GCP, OCI, CloudFlare, and SSH server management
120
+ - **🔄 Smart Auth & Profile Switcher**: One-touch atomic switching between personal SSO/STS sessions (`aws login`, `tccli auth login`) and service accounts with real-time session expiry tracking & automatic background refresh
121
+ - **🛡️ IAM & CAM Security Auditing**: One-touch audit of console login types (User/Service/Collaborator), password age (color-coded warnings for 90+ days), last login, access key usage, and attached policies
120
122
  - **📊 Rich Progress Bars**: Real-time progress indicators for all long-running operations across accounts and regions
121
- - **🔒 Secure Configuration**: Modern YAML-based configuration (`~/.ic/config/`) and native credential files (`~/.aws/config`, `~/.tencent/credentials`)
123
+ - **🔒 Secure Configuration**: Modern YAML-based configuration (`~/.ic/config/`) and native credential files (`~/.aws/config`, `~/.tencent/credentials`) with private role mapping
122
124
  - **🌍 Multi-Account / Multi-Region**: Concurrent querying across multiple cloud accounts and regions with STS / CAM AssumeRole support
123
- - **🎨 Beautiful Terminal UI**: Rich terminal output with tables, colors, JSON formatting, and tree diagrams
125
+ - **🎨 Beautiful Terminal UI**: Rich terminal output with tables, colors, JSON formatting, and hierarchical tree diagrams
124
126
  - **⚡ High Performance**: Optimized async and concurrent execution for fast resource discovery
125
127
  - **🛡️ Security First**: Built-in credential masking, secret scanning, and pre-commit hook support
126
128
 
@@ -135,19 +137,49 @@ A comprehensive, production-grade Infrastructure Command Line Interface tool for
135
137
  ## 📦 Supported Platforms & Services
136
138
 
137
139
  ### 1. 🟧 AWS Services (Production Ready)
138
- - **Compute**: EC2 instances, ECS services/tasks, EKS clusters/nodes/pods, Fargate profiles
139
- - **Storage & DB**: S3 buckets (with tagging compliance checks), RDS instances & clusters
140
- - **Networking**: VPC, Subnets, Gateways, Load Balancers (ALB/NLB with listener rules, health check path & target health analysis), Security Groups (with Ingress & Egress rule analysis & tree view), VPN connections
141
- - **Health & Maintenance**: AWS Health Dashboard EC2 scheduled reboot maintenance check (`ic aws healthdashboard reboot`)
142
- - **Integrations**: CloudFront distributions, MSK Kafka brokers, CodePipeline build/deploy status, Profile management
140
+ - **Authentication & Profile**:
141
+ - Seamless authentication switching between personal `aws login` STS session and service account static credentials (`ic aws profile switch [login|service]`)
142
+ - Real-time STS session lifetime tracking and profile overview (`ic aws profile info`)
143
+ - **Security & IAM**:
144
+ - IAM user security auditing: console login status, password age with color-coded risk alerts (90+ days red, 60-89 yellow), last login date, last Access Key usage date, and attached managed/inline/group policies (`ic aws iam user`)
145
+ - **Compute & Containers**:
146
+ - EC2 instances with state, type, IPs, VPC, and deep attribute inspection (`ic aws ec2 info`, `ic aws ec2 desc`)
147
+ - ECS clusters, services, and task inspection (`ic aws ecs info`, `ic aws ecs service`, `ic aws ecs task`)
148
+ - EKS Kubernetes clusters, node groups, pods, addons, and Fargate profiles (`ic aws eks info`, `ic aws eks nodes`, `ic aws eks pods`, `ic aws eks addons`, `ic aws eks fargate`)
149
+ - **Storage & Databases**:
150
+ - EBS volumes inspection: size, state, volume type, IOPS, throughput, and attached instances (`ic aws ebs info`)
151
+ - S3 buckets inspection and tagging compliance checks (`ic aws s3 info`, `ic aws s3 tag_check`)
152
+ - RDS database instances and Aurora clusters (`ic aws rds info`)
153
+ - **Networking & Content Delivery**:
154
+ - VPC, Subnets, NAT Gateways, and VPN connections (`ic aws vpc info`, `ic aws vpn info`)
155
+ - Load Balancers (ALB/NLB) with listener rules, health check paths, and target instance health analysis (`ic aws lb info`, `ic aws lb desc`)
156
+ - Security Groups with Ingress/Egress rule inspection and visual relation tree (`ic aws sg info`, `ic aws sg info -o tree`)
157
+ - CloudFront CDN distributions and origin configs (`ic aws cloudfront info`)
158
+ - **Health & Maintenance**:
159
+ - AWS Health Dashboard EC2 scheduled reboot maintenance check across all accounts (`ic aws healthdashboard reboot`)
160
+ - **Integrations**:
161
+ - MSK (Managed Streaming for Kafka) clusters and brokers (`ic aws msk info`, `ic aws msk broker`)
162
+ - CodePipeline build and deployment pipeline status (`ic aws codepipeline build`, `ic aws codepipeline deploy`)
143
163
 
144
164
  ### 2. 🟦 Tencent Cloud Services (Production Ready)
145
- - **Compute**: CVM instances (with CPU, Mem, Disk, IP, SGs), Lighthouse lightweight application servers
146
- - **Containers**: TKE (Tencent Kubernetes Engine) clusters & node details
147
- - **Networking**: VPC, Subnets, NAT Gateways, CLB (Load Balancers - listener rules, health check, target health analysis & network traffic bandwidth statistics), Security Groups (with Ingress/Egress rules & tree view)
148
- - **Authentication**: Multi-account STS AssumeRole support, Profile management (`ic tencent profile info` via `~/.tencent/credentials`)
149
-
150
- ### 3. 🟩 GCP Services (Production Ready - v1.5.2)
165
+ - **Authentication & Profile**:
166
+ - Seamless dual-mode authentication switching between personal account (`tccli auth login` STS) and service account (`~/.tencent/credentials`) with real-time session tracking (`ic tencent profile switch [tccli|service]`)
167
+ - Cross-account dynamic AssumeRole support with credentials inspection (`ic tencent profile info`)
168
+ - **Security & CAM**:
169
+ - CAM sub-account and collaborator (협력자/외부계정) security auditing: login type (User/Service/Collaborator), password age, last login timestamp, SecretId key usage date, and policy details (`ic tencent cam user`)
170
+ - **Compute & Containers**:
171
+ - CVM instances with CPU, Memory, Disk, Zone, IPs, attached SGs, and deep attribute inspection (`ic tencent cvm info`, `ic tencent cvm desc`)
172
+ - Lighthouse lightweight application servers (`ic tencent lighthouse info`, `ic tencent lighthouse info -p`) and dedicated instance firewall rules inspection (`ic tencent lighthouse firewall`, `ic tencent lighthouse firewall -o tree`)
173
+ - TKE (Tencent Kubernetes Engine) clusters and node details (`ic tencent tke info`)
174
+ - **Storage & Databases**:
175
+ - CBS (Cloud Block Storage) disk inspection: volume size, disk type, status, and attached CVM instances (`ic tencent cbs info`, `ic tencent disk info`)
176
+ - **Networking**:
177
+ - VPC, Subnets, and NAT Gateways (`ic tencent vpc info`, `ic tencent nat info`)
178
+ - CLB (Cloud Load Balancer): listeners, rules, health check path, and target instance health status (`ic tencent clb info`, `ic tencent clb desc`)
179
+ - CLB Traffic & Bandwidth: In/Out bandwidth (Avg/Max in Mbps) and total data transfer over 7 or 30 days (`ic tencent clb traffic`)
180
+ - Security Groups with Ingress/Egress rule analysis and visual hierarchy tree (`ic tencent sg info`, `ic tencent sg info -o tree`)
181
+
182
+ ### 3. 🟩 GCP Services (Production Ready - v1.5.3)
151
183
  - **Compute Engine**: VM instances with status, zone, machine type (custom parsing), vCPU, memory, disks, IPs, tags, and verbose 15-column output (`ic gcp compute info -v`)
152
184
  - **Compute Detailed Inspection (`desc`)**: Full attribute discovery, dot-notation key filtering (`-k / --keys`), schema discovery (`-l / --list-keys`) for instances
153
185
  - **Load Balancing (LB)**: Forwarding rules, Target proxies, URL maps, Backend services, Health checks, and SSL certificates (`ic gcp lb info`)
@@ -244,6 +276,18 @@ aws:
244
276
  - "ap-northeast-2"
245
277
  - "us-east-1"
246
278
 
279
+ # Tencent Cloud Configuration (Dynamic AssumeRole & Profile Switching)
280
+ tencent:
281
+ root_account: "main" # Source profile for AssumeRole
282
+ root_account_id: "123456789012" # Source root account UIN
283
+ tccli_role: "OrganizationAccountAccessRole" # Role for personal tccli session AssumeRole
284
+ service_role: "ServiceAdminRole" # Role for service account static key AssumeRole
285
+ isolated_accounts: # Sub-accounts that keep dedicated direct credentials
286
+ - "china-mainland-account"
287
+ regions:
288
+ - "ap-seoul"
289
+ - "ap-guangzhou"
290
+
247
291
  # GCP Configuration
248
292
  gcp:
249
293
  project_id: "my-gcp-project-id"
@@ -288,55 +332,157 @@ ic config validate
288
332
  ### AWS Commands
289
333
 
290
334
  ```bash
291
- # List EC2 instances across configured regions
335
+ # --- Authentication & Profile Switching ---
336
+ # View current authentication mode (login vs service) and STS session validity
337
+ ic aws profile switch
338
+
339
+ # Switch between personal SSO/STS mode (aws login) and service account (static credentials)
340
+ ic aws profile switch login
341
+ ic aws profile switch service
342
+
343
+ # Inspect all configured profiles and active credential status
344
+ ic aws profile info
345
+
346
+ # --- IAM User Security & Password Audit ---
347
+ # Audit all IAM users: console login type, password age, last login, last key used, policies
348
+ ic aws iam user
349
+
350
+ # Filter warning users with password older than 90 days
351
+ ic aws iam user -w
352
+ ic aws iam user -a prod-account -w
353
+
354
+ # Filter by login type (user or service)
355
+ ic aws iam user -t user
356
+ ic aws iam user -t service
357
+
358
+ # Verbose output (including User ID and Access Key ID list) or copyable text for spreadsheets
359
+ ic aws iam user -v
360
+ ic aws iam user -p
361
+
362
+ # --- Health & Maintenance ---
363
+ # Check EC2 scheduled reboot maintenance across all accounts
364
+ ic aws healthdashboard reboot
365
+ ic aws healthdashboard reboot -A
366
+ ic aws healthdashboard reboot -a prod-account --all-status
367
+
368
+ # --- Compute & Containers ---
369
+ # List EC2 instances across regions
292
370
  ic aws ec2 info
293
371
 
294
- # Security Group Info (Shows Ingress & Egress rules by default)
295
- ic aws sg info
372
+ # Detailed EC2 instance inspection with key filtering
373
+ ic aws ec2 desc -l # Discover available keys
374
+ ic aws ec2 desc -k InstanceId,State.Name,PrivateIpAddress
296
375
 
297
- # Filter Security Groups for Ingress or Egress rules only
376
+ # EKS cluster, node groups, and pod status
377
+ ic aws eks info
378
+ ic aws eks nodes
379
+ ic aws eks pods
380
+
381
+ # ECS clusters, services, and tasks
382
+ ic aws ecs info
383
+ ic aws ecs service
384
+ ic aws ecs task
385
+
386
+ # --- Storage & Databases ---
387
+ # Inspect EBS volumes (size, status, volume type, IOPS, attached instances)
388
+ ic aws ebs info
389
+
390
+ # S3 bucket listing and tagging compliance checks
391
+ ic aws s3 info
392
+ ic aws s3 tag_check
393
+
394
+ # RDS instances and Aurora clusters
395
+ ic aws rds info
396
+
397
+ # --- Networking & Security ---
398
+ # Security Group info (Ingress & Egress rules)
399
+ ic aws sg info
298
400
  ic aws sg info --ingress # Show Ingress rules only
299
401
  ic aws sg info --egress # Show Egress rules only
300
402
 
301
- # Render Security Groups in visual tree structure with direction arrows (← Ingress, → Egress)
403
+ # Render Security Groups in visual hierarchical tree (← Ingress, → Egress)
302
404
  ic aws sg info -o tree
303
405
 
304
- # S3 Bucket details and tag validation
305
- ic aws s3 info
306
- ic aws s3 tag_check
406
+ # Load Balancers (ALB / NLB) and deep hierarchy inspection
407
+ ic aws lb info
408
+ ic aws lb desc -l
307
409
 
308
- # EKS & ECS Cluster info
309
- ic aws eks info
310
- ic aws ecs info
410
+ # VPC & NAT Gateway
411
+ ic aws vpc info
311
412
  ```
312
413
 
313
414
  ### Tencent Cloud Commands
314
415
 
315
416
  ```bash
417
+ # --- Authentication & Profile Switching ---
418
+ # View current authentication mode (tccli vs service) and STS token validity
419
+ ic tencent profile switch
420
+
421
+ # Switch between personal account (tccli STS token) and service account (~/.tencent/credentials)
422
+ ic tencent profile switch tccli
423
+ ic tencent profile switch service
424
+
425
+ # Inspect registered accounts, active authentication mode, and dynamic AssumeRole mapping
426
+ ic tencent profile info
427
+
428
+ # --- CAM User Security & Password Audit ---
429
+ # Audit CAM users & collaborators: console login type, password age, last login, last key used
430
+ ic tencent cam user
431
+
432
+ # Filter users with password older than 90 days
433
+ ic tencent cam user -w
434
+
435
+ # Filter by login type (user, service, or collaborator)
436
+ ic tencent cam user -t user
437
+ ic tencent cam user -t collaborator
438
+
439
+ # --- Compute & Containers ---
316
440
  # List CVM instances across accounts and regions
317
441
  ic tencent cvm info
318
- ic tencent cvm info -a my-account
442
+ ic tencent cvm info -a prod-account
443
+
444
+ # Deep CVM instance inspection with dot-notation key filtering
445
+ ic tencent cvm desc -l # Discover available keys
446
+ ic tencent cvm desc -k InstanceId,InstanceState,PrivateIpAddresses.0
319
447
 
320
- # List Lighthouse lightweight instances
448
+ # Lightweight application servers (Lighthouse)
321
449
  ic tencent lighthouse info
450
+ ic tencent lighthouse info -n "web,db" # Multi-pattern search with comma
451
+ ic tencent lighthouse info -p # Spreadsheet copyable comma-separated format
322
452
 
323
- # Security Group Info (Tables and Tree view)
324
- ic tencent sg info
325
- ic tencent sg info -o tree
453
+ # Lighthouse Firewall Rules (Instance inbound firewall rules)
454
+ ic tencent lighthouse firewall # Table view across instances
455
+ ic tencent lighthouse firewall -o tree # Hierarchical tree view (Account > Region > Instance > Rules)
456
+ ic tencent lighthouse firewall -p # Spreadsheet copyable comma-separated format
457
+ ic tencent lighthouse firewall --port 22 --action ACCEPT # Filter by port and action
458
+
459
+ # TKE Kubernetes clusters & node details
460
+ ic tencent tke info
326
461
 
327
- # Load Balancer (CLB) with listeners, health check path & target health
462
+ # --- Storage ---
463
+ # Inspect Cloud Block Storage (CBS / Disk) volumes
464
+ ic tencent cbs info
465
+ ic tencent disk info
466
+
467
+ # --- Networking & Load Balancing ---
468
+ # Cloud Load Balancer (CLB) with listeners, rules, and target health
328
469
  ic tencent clb info
470
+ ic tencent clb desc -l
471
+
472
+ # CLB Network bandwidth statistics (Avg/Max Mbps) and data transfer (default 7 days, or 30 days)
473
+ ic tencent clb traffic
474
+ ic tencent clb traffic -d 30
329
475
 
330
- # VPC, Subnets, NAT Gateways & TKE Clusters
476
+ # Security Groups with Ingress/Egress rules and tree view
477
+ ic tencent sg info
478
+ ic tencent sg info -o tree
479
+
480
+ # VPC, Subnets, and NAT Gateways
331
481
  ic tencent vpc info
332
482
  ic tencent nat info
333
- ic tencent tke info
334
-
335
- # Check credentials and profiles (~/.tencent/credentials)
336
- ic tencent profile info
337
483
  ```
338
484
 
339
- ### GCP Commands (v1.5.2)
485
+ ### GCP Commands (v1.5.3)
340
486
 
341
487
  ```bash
342
488
  # Compute Engine VM instances (summary & verbose 15-column output)