ic-code 1.2.1__tar.gz → 1.2.2__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.
- {ic_code-1.2.1/src/ic_code.egg-info → ic_code-1.2.2}/PKG-INFO +1 -1
- {ic_code-1.2.1 → ic_code-1.2.2}/pyproject.toml +1 -1
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/__init__.py +1 -1
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ec2/list_tags.py +2 -2
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/lb/list_tags.py +2 -2
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/nat/list_tags.py +39 -7
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/rds/list_tags.py +41 -8
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/s3/list_tags.py +41 -6
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpc/list_tags.py +2 -2
- {ic_code-1.2.1 → ic_code-1.2.2/src/ic_code.egg-info}/PKG-INFO +1 -1
- {ic_code-1.2.1 → ic_code-1.2.2}/LICENSE +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/MANIFEST.in +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/SECURITY.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/_templates/configuration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/_templates/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/_templates/troubleshooting.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/_templates/usage.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/aws/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/aws/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/azure/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ci-workflow-guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/config_migration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/deployment.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/development/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/development/cleanup_summary.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/development/development_guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/development/import_patterns.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/development/migration_guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/gcp/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/general/configuration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/mcp_integration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/migration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/migration_guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncp/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncp/configuration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncp/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncp/troubleshooting.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncp/usage.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncpgov/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ncpgov/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/oci/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/oci/installation.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/release-guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/security.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/ssh/configuration.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/troubleshooting.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/docs/user_guide.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/requirements.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/analysis_summary.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/bump-version.sh +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/ci-detect-platforms.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/ci-generate-matrix.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/cli_usage_analysis.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/dependency_mapper.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/deploy.sh +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/fix_consolidated_imports.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/ncp_security_scanner.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/performance_optimization.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/setup_venv.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/test-ci-detection.sh +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/unset_env.sh +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/validate_config.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/validate_dependencies.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/scripts/validate_ncp_security.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/setup.cfg +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/setup.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/azure_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/gather_env.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/gcp_monitoring.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/gcp_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/log.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/ncp_security_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/ncp_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/ncpgov_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/progress_decorator.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/slack.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/common/utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/cli.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/cli_backup.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/commands/config.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/commands/migration.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/commands/security.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/compat/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/compat/cli.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/compat/common.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/external.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/installer.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/manager.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/migration.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/schema.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/secrets.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/config/security.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/dependency_validator.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/logging.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/mcp_manager.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/platform_discovery.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/session.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/migration/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/migration/manager.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/migration/post_validation.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/migration/rollback.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/migration/validation.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/cloudfront/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/codepipeline/build.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ec2/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ecs/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ecs/service.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/ecs/task.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/addons.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/fargate.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/nodes.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/pods.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/eks/update_config.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/fargate/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/lb/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/lb/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/msk/broker.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/msk/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/nat/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/rds/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/rds/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/s3/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/s3/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/sg/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpc/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/aws/vpn/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/aci/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/aci/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/aks/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/aks/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/lb/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/lb/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/nsg/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/nsg/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/storage/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/storage/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vm/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vm/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vm/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vnet/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vnet/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/azure/vnet/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/cloudflare/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/billing/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/compute/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/firewall/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/functions/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/gke/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/lb/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/run/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/sql/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/storage/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/vpc/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/client.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/ec2/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/ec2/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/rds/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/rds/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/s3/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/s3/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/sg/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/sg/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/vpc/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncp/vpc/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/client.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/ec2/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/ec2/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/rds/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/rds/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/s3/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/s3/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/sg/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/sg/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/vpc/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ncpgov/vpc/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/cost/credit.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/cost/usage.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/info/oci_info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/lb/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/nsg/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/obj/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/policy/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/policy/search.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/vcn/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/vm/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/oci/volume/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/auto/scan.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/auto_ssh.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/server/info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/platforms/ssh/server_info.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/README.md +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/config.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/detector.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/guidance.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/hooks.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/patterns.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic/security/scanner.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic_code.egg-info/SOURCES.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic_code.egg-info/entry_points.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic_code.egg-info/requires.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/ic_code.egg-info/top_level.txt +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/mcp/__init__.py +0 -0
- {ic_code-1.2.1 → ic_code-1.2.2}/src/mcp/gcp_connector.py +0 -0
|
@@ -4,7 +4,7 @@ IC (Infra Resource Management CLI) - A comprehensive tool for managing cloud inf
|
|
|
4
4
|
This package provides CLI tools and libraries for managing AWS, Azure, GCP, OCI, and CloudFlare resources.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "1.2.
|
|
7
|
+
__version__ = "1.2.2"
|
|
8
8
|
__author__ = "SangYun"
|
|
9
9
|
__email__ = "cruiser594@gmail.com"
|
|
10
10
|
|
|
@@ -42,8 +42,8 @@ def get_tag_keys():
|
|
|
42
42
|
"""설정에서 태그 키를 가져옵니다."""
|
|
43
43
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
44
44
|
aws_tags = config['aws']['tags']
|
|
45
|
-
required_tags = aws_tags.get('required', [
|
|
46
|
-
optional_tags = aws_tags.get('optional', [
|
|
45
|
+
required_tags = aws_tags.get('required', [])
|
|
46
|
+
optional_tags = aws_tags.get('optional', [])
|
|
47
47
|
else:
|
|
48
48
|
# Fallback to environment variables
|
|
49
49
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
@@ -45,8 +45,8 @@ def get_tag_keys():
|
|
|
45
45
|
"""설정에서 태그 키를 가져옵니다."""
|
|
46
46
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
47
|
aws_tags = config['aws']['tags']
|
|
48
|
-
required_tags = aws_tags.get('required', [
|
|
49
|
-
optional_tags = aws_tags.get('optional', [
|
|
48
|
+
required_tags = aws_tags.get('required', [])
|
|
49
|
+
optional_tags = aws_tags.get('optional', [])
|
|
50
50
|
else:
|
|
51
51
|
# Fallback to environment variables
|
|
52
52
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
@@ -18,17 +18,49 @@ except ImportError:
|
|
|
18
18
|
from rich.console import Console
|
|
19
19
|
from rich.table import Table
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
# 새로운 설정 시스템 import
|
|
22
|
+
try:
|
|
23
|
+
from src.ic.config.manager import ConfigManager
|
|
24
|
+
config_manager = ConfigManager()
|
|
25
|
+
config = config_manager.get_config()
|
|
26
|
+
except ImportError:
|
|
27
|
+
try:
|
|
28
|
+
from ic.config.manager import ConfigManager
|
|
29
|
+
config_manager = ConfigManager()
|
|
30
|
+
config = config_manager.get_config()
|
|
31
|
+
except ImportError:
|
|
32
|
+
# Legacy fallback for development
|
|
33
|
+
import sys
|
|
34
|
+
import os
|
|
35
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
36
|
+
from ic.config.manager import ConfigManager
|
|
37
|
+
config_manager = ConfigManager()
|
|
38
|
+
config = config_manager.get_config()
|
|
39
|
+
except ImportError:
|
|
40
|
+
# 호환성을 위한 fallback
|
|
41
|
+
from dotenv import load_dotenv
|
|
42
|
+
load_dotenv()
|
|
43
|
+
config = {}
|
|
22
44
|
|
|
23
45
|
console = Console()
|
|
24
46
|
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
|
|
47
|
+
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
48
|
+
def get_tag_keys():
|
|
49
|
+
"""설정에서 태그 키를 가져옵니다."""
|
|
50
|
+
if config and 'aws' in config and 'tags' in config['aws']:
|
|
51
|
+
aws_tags = config['aws']['tags']
|
|
52
|
+
required_tags = aws_tags.get('required', [])
|
|
53
|
+
optional_tags = aws_tags.get('optional', [])
|
|
54
|
+
else:
|
|
55
|
+
# Fallback to environment variables
|
|
56
|
+
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
57
|
+
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
58
|
+
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
59
|
+
optional_tags = [t.strip() for t in env_optional.split(",") if t.strip()]
|
|
60
|
+
|
|
61
|
+
return required_tags + optional_tags
|
|
28
62
|
|
|
29
|
-
|
|
30
|
-
optional_tags = [t.strip() for t in env_optional.split(",") if t.strip()]
|
|
31
|
-
TAG_KEYS = required_tags + optional_tags
|
|
63
|
+
TAG_KEYS = get_tag_keys()
|
|
32
64
|
|
|
33
65
|
@log_decorator
|
|
34
66
|
def fetch_nat_tags(account_id, profile_name, region):
|
|
@@ -14,16 +14,49 @@ except ImportError:
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.table import Table
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
# 새로운 설정 시스템 import
|
|
18
|
+
try:
|
|
19
|
+
from src.ic.config.manager import ConfigManager
|
|
20
|
+
config_manager = ConfigManager()
|
|
21
|
+
config = config_manager.get_config()
|
|
22
|
+
except ImportError:
|
|
23
|
+
try:
|
|
24
|
+
from ic.config.manager import ConfigManager
|
|
25
|
+
config_manager = ConfigManager()
|
|
26
|
+
config = config_manager.get_config()
|
|
27
|
+
except ImportError:
|
|
28
|
+
# Legacy fallback for development
|
|
29
|
+
import sys
|
|
30
|
+
import os
|
|
31
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
32
|
+
from ic.config.manager import ConfigManager
|
|
33
|
+
config_manager = ConfigManager()
|
|
34
|
+
config = config_manager.get_config()
|
|
35
|
+
except ImportError:
|
|
36
|
+
# 호환성을 위한 fallback
|
|
37
|
+
from dotenv import load_dotenv
|
|
38
|
+
load_dotenv()
|
|
39
|
+
config = {}
|
|
19
40
|
|
|
20
|
-
|
|
21
|
-
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
22
|
-
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
41
|
+
console = Console()
|
|
23
42
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
43
|
+
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
44
|
+
def get_tag_keys():
|
|
45
|
+
"""설정에서 태그 키를 가져옵니다."""
|
|
46
|
+
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
|
+
aws_tags = config['aws']['tags']
|
|
48
|
+
required_tags = aws_tags.get('required', [])
|
|
49
|
+
optional_tags = aws_tags.get('optional', [])
|
|
50
|
+
else:
|
|
51
|
+
# Fallback to environment variables
|
|
52
|
+
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
53
|
+
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
54
|
+
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
55
|
+
optional_tags = [t.strip() for t in env_optional.split(",") if t.strip()]
|
|
56
|
+
|
|
57
|
+
return required_tags + optional_tags
|
|
58
|
+
|
|
59
|
+
TAG_KEYS = get_tag_keys()
|
|
27
60
|
|
|
28
61
|
@log_decorator
|
|
29
62
|
def fetch_rds_tags(account_id, profile_name, region):
|
|
@@ -15,14 +15,49 @@ except ImportError:
|
|
|
15
15
|
from rich.console import Console
|
|
16
16
|
from rich.table import Table
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# 새로운 설정 시스템 import
|
|
19
|
+
try:
|
|
20
|
+
from src.ic.config.manager import ConfigManager
|
|
21
|
+
config_manager = ConfigManager()
|
|
22
|
+
config = config_manager.get_config()
|
|
23
|
+
except ImportError:
|
|
24
|
+
try:
|
|
25
|
+
from ic.config.manager import ConfigManager
|
|
26
|
+
config_manager = ConfigManager()
|
|
27
|
+
config = config_manager.get_config()
|
|
28
|
+
except ImportError:
|
|
29
|
+
# Legacy fallback for development
|
|
30
|
+
import sys
|
|
31
|
+
import os
|
|
32
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
33
|
+
from ic.config.manager import ConfigManager
|
|
34
|
+
config_manager = ConfigManager()
|
|
35
|
+
config = config_manager.get_config()
|
|
36
|
+
except ImportError:
|
|
37
|
+
# 호환성을 위한 fallback
|
|
38
|
+
from dotenv import load_dotenv
|
|
39
|
+
load_dotenv()
|
|
40
|
+
config = {}
|
|
41
|
+
|
|
19
42
|
console = Console()
|
|
20
43
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
44
|
+
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
45
|
+
def get_tag_keys():
|
|
46
|
+
"""설정에서 태그 키를 가져옵니다."""
|
|
47
|
+
if config and 'aws' in config and 'tags' in config['aws']:
|
|
48
|
+
aws_tags = config['aws']['tags']
|
|
49
|
+
required_tags = aws_tags.get('required', [])
|
|
50
|
+
optional_tags = aws_tags.get('optional', [])
|
|
51
|
+
else:
|
|
52
|
+
# Fallback to environment variables
|
|
53
|
+
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
54
|
+
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
55
|
+
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
56
|
+
optional_tags = [t.strip() for t in env_optional.split(",") if t.strip()]
|
|
57
|
+
|
|
58
|
+
return required_tags + optional_tags
|
|
59
|
+
|
|
60
|
+
TAG_KEYS = get_tag_keys()
|
|
26
61
|
|
|
27
62
|
@log_decorator
|
|
28
63
|
def fetch_s3_tags(account_id, profile_name, region):
|
|
@@ -45,8 +45,8 @@ def get_tag_keys():
|
|
|
45
45
|
"""설정에서 태그 키를 가져옵니다."""
|
|
46
46
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
47
|
aws_tags = config['aws']['tags']
|
|
48
|
-
required_tags = aws_tags.get('required', [
|
|
49
|
-
optional_tags = aws_tags.get('optional', [
|
|
48
|
+
required_tags = aws_tags.get('required', [])
|
|
49
|
+
optional_tags = aws_tags.get('optional', [])
|
|
50
50
|
else:
|
|
51
51
|
# Fallback to environment variables
|
|
52
52
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|