runbooks 1.0.3__tar.gz → 1.1.1__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.
- {runbooks-1.0.3/src/runbooks.egg-info → runbooks-1.1.1}/PKG-INFO +1 -1
- {runbooks-1.0.3 → runbooks-1.1.1}/pyproject.toml +4 -2
- runbooks-1.1.1/src/runbooks/__init__.py +139 -0
- runbooks-1.0.3/src/runbooks/__init__.py → runbooks-1.1.1/src/runbooks/__init__.py.backup +1 -1
- runbooks-1.1.1/src/runbooks/__init___optimized.py +110 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/base.py +56 -3
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/cost_optimizer.py +496 -42
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/aws_pricing.py +236 -80
- runbooks-1.1.1/src/runbooks/common/business_logic.py +485 -0
- runbooks-1.1.1/src/runbooks/common/cli_decorators.py +219 -0
- runbooks-1.1.1/src/runbooks/common/error_handling.py +424 -0
- runbooks-1.1.1/src/runbooks/common/lazy_loader.py +186 -0
- runbooks-1.1.1/src/runbooks/common/module_cli_base.py +378 -0
- runbooks-1.1.1/src/runbooks/common/performance_monitoring.py +512 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/profile_utils.py +133 -6
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/enterprise/logging.py +30 -2
- runbooks-1.1.1/src/runbooks/enterprise/validation.py +177 -0
- runbooks-1.1.1/src/runbooks/finops/README.md +414 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/aws_client.py +1 -1
- runbooks-1.1.1/src/runbooks/finops/business_case_config.py +1018 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/cli.py +136 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/commvault_ec2_analysis.py +25 -9
- runbooks-1.1.1/src/runbooks/finops/config.py +272 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/dashboard_runner.py +136 -23
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/ebs_cost_optimizer.py +39 -40
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/enhanced_trend_visualization.py +7 -2
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/enterprise_wrappers.py +45 -18
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/finops_dashboard.py +50 -25
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/finops_scenarios.py +22 -7
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/helpers.py +115 -2
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/multi_dashboard.py +7 -5
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/optimizer.py +97 -6
- runbooks-1.1.1/src/runbooks/finops/scenario_cli_integration.py +247 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/scenarios.py +12 -1
- runbooks-1.1.1/src/runbooks/finops/unlimited_scenarios.py +393 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/validation_framework.py +19 -7
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/workspaces_analyzer.py +1 -5
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/mcp_inventory_validator.py +2 -1
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/main.py +132 -94
- runbooks-1.1.1/src/runbooks/main_final.py +358 -0
- runbooks-1.1.1/src/runbooks/main_minimal.py +84 -0
- runbooks-1.1.1/src/runbooks/main_optimized.py +493 -0
- runbooks-1.1.1/src/runbooks/main_ultra_minimal.py +47 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/utils/version_validator.py +1 -1
- {runbooks-1.0.3 → runbooks-1.1.1/src/runbooks.egg-info}/PKG-INFO +1 -1
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks.egg-info/SOURCES.txt +16 -0
- runbooks-1.0.3/src/runbooks/finops/README.md +0 -339
- runbooks-1.0.3/src/runbooks/finops/business_case_config.py +0 -314
- {runbooks-1.0.3 → runbooks-1.1.1}/LICENSE +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/MANIFEST.in +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/setup.cfg +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/conftest.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/__main__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/_platform/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/_platform/core/runbooks_wrapper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/base.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/WEIGHT_CONFIG_README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/app.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/asana-import.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/cfat-checks.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/cfat.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/collectors.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/compliance.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/jira-import.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/runner.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/assessment/validators.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/cloud_foundations_assessment.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/asana-import.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/cfat-checks.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/cfat.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/checks-output.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/cloudshell-console-run.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/cloudshell-download.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/cloudshell-output.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/downloadfile.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/jira-import.csv +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/open-cloudshell.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/docs/report-header.png +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/models.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/package-lock.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/package.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/report.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/reporting/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/reporting/exporters.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/reporting/formatters.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/reporting/templates.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/run-assessment.sh +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/runner.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-cloudtrail-existence.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-config-existence.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-control-tower.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-ec2-existence.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-iam-users.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-legacy-cur.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-org-cloudformation.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/check-vpc-existence.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/create-asanaimport.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/create-backlog.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/create-jiraimport.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/create-report.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/define-account-type.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-enabled-org-policy-types.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-enabled-org-services.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-idc-info.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-org-da-accounts.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-org-details.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-org-member-accounts.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-org-ous.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/get-regions.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/actions/zip-assessment.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/src/types/index.d.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/test_cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/test_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/test_models.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/test_reporting.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tests/test_weight_configuration.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/tsconfig.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/webpack.config.cjs +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cfat/weight_config.ts +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/infrastructure_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/interfaces.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/lifecycle_manager.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/mcp_cost_validation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/models.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/monitoring_automation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/notebook_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/cloudops/security_enforcer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/accuracy_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/aws_pricing_api.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/aws_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/comprehensive_cost_explorer_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/context_logger.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/cross_account_manager.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/cross_module_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/date_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/dry_run_examples.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/dry_run_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/enhanced_exception_handler.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/enhanced_logging_example.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/enhanced_logging_integration_example.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/enterprise_audit_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/env_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/logger.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/logging_integration_helper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/mcp_cost_explorer_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/mcp_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/memory_optimization.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/organizations_client.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/performance_monitor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/performance_optimization_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/rich_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/common/sre_performance_suite.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/config.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/enterprise/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/enterprise/error_handling.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/enterprise/multi_tenant.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/enterprise/security.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/feedback/user_feedback_collector.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/account_resolver.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/accuracy_cross_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/automation_core.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/budget_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/business_cases.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/compute_cost_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/cost_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/cost_processor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/dashboard_router.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/ebs_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/elastic_ip_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/embedded_mcp_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/enhanced_dashboard_runner.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/enhanced_progress.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/executive_export.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/iam_guidance.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/legacy_migration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/main.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/markdown_exporter.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/nat_gateway_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/network_cost_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/notebook_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/profile_processor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/reservation_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/schemas.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/service_mapping.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/single_dashboard.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/run_comprehensive_tests.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/run_tests.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_finops_dashboard.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_performance.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_performance_benchmarks.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_reference_images_validation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/test_single_account_features.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/tests/validate_test_suite.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/types.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/visualisations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/vpc_cleanup_exporter.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/finops/vpc_cleanup_optimizer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/hitl/enhanced_workflow_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/.gitignore +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/ArgumentsClass.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/LandingZone/delete_lz.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/common_test_data.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/common_test_functions.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/script_test_data.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/setup.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/src.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_Inventory_Modules.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_cfn_describe_stacks.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_ec2_describe_instances.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_lambda_list_functions.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_moto_integration_example.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/Tests/test_org_list_accounts.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/account_class.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/all_my_instances_wrapper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/aws_decorators.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/check_cloudtrail_compliance.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/check_controltower_readiness.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/check_landingzone_readiness.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/cloud_foundations_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/aws_comprehensive.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/aws_compute.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/aws_management.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/aws_networking.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/base.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/collectors/enterprise_scale.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/core/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/core/collector.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/core/formatter.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/discovery.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/draw_org_structure.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/drift_detection_cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/ec2_vpc_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_cfn_drift_detection.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_cfn_orphaned_stacks.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_cfn_stackset_drift.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_ec2_security_groups.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_landingzone_versions.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/find_vpc_flow_logs.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/inventory.sh +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/inventory_mcp_cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/inventory_modules.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_cfn_stacks.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_cfn_stackset_operation_results.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_cfn_stackset_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_cfn_stacksets.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_config_recorders_delivery_channels.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ds_directories.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ec2_availability_zones.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ec2_ebs_volumes.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ec2_instances.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ecs_clusters_and_tasks.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_elbs_load_balancers.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_enis_network_interfaces.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_guardduty_detectors.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_iam_policies.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_iam_roles.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_iam_saml_providers.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_lambda_functions.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_org_accounts.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_org_accounts_users.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_rds_db_instances.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_route53_hosted_zones.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_servicecatalog_provisioned_products.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_sns_topics.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_ssm_parameters.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_vpc_subnets.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/list_vpcs.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/mcp_vpc_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/models/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/models/account.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/models/inventory.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/models/resource.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/organizations_discovery.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/recover_cfn_stack_ids.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/requirements.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/rich_inventory_display.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/run_on_multi_accounts.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/unified_validation_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/utils/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/utils/aws_helpers.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/utils/threading_utils.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/utils/validation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/verify_ec2_security_groups.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/vpc_analyzer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/vpc_architecture_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/vpc_dependency_analyzer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/inventory/vpc_flow_analyzer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/metrics/dora_metrics_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/monitoring/performance_monitor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/base.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/cloudformation_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/cloudwatch_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/deployment_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/deployment_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/dynamodb_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/ec2_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/executive_dashboard.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/iam_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/mcp_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/nat_gateway_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/networking_cost_heatmap.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/privatelink_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/rds_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/s3_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/tagging_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/tags.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/vpc_endpoints.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/operate/vpc_operations.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/Tests/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/Tests/update_policy.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/acm_cert_expired_unused.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/acm_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/api_gateway_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/base.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/cloudtrail_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/cloudtrail_s3_modifications.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/cognito_active_users.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/cognito_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/cognito_user_password_reset.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/commons.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/commvault_ec2_analysis.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/config/accounts_example.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/dynamodb_optimize.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/dynamodb_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/dynamodb_server_side_encryption.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/ec2_public_ips.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/ec2_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/ec2_unattached_ebs_volumes.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/ec2_unused_security_groups.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/kms_enable_key_rotation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/kms_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/lambda_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/lambda_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/multi_account.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/rds_instance_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/rds_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/rds_snapshot_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/remediation_cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/requirements.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_block_public_access.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_bucket_public_access.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_disable_static_website_hosting.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_downloader.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_enable_access_logging.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_encryption.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_force_ssl_secure_policy.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_object_search.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/s3_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/scan_for_phrase.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/universal_account_discovery.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/vpc_remediation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/remediation/workspaces_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/account_level_bucket_public_access.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/alternate_contacts.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/bucket_public_access.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/cloudwatch_alarm_configuration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/direct_attached_policy.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/guardduty_enabled.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/iam_password_policy.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/iam_user_mfa.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/multi_region_instance_usage.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/multi_region_trail.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/root_access_key.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/root_mfa.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/root_usage.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/trail_enabled.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/checklist/trusted_advisor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/cloudops_automation_security_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/compliance_automation.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/compliance_automation_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config/compliance_config.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config/compliance_weights_example.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config-origin.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/config_template_generator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/enterprise_security_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/enterprise_security_policies.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/executive_security_dashboard.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/integration_test_enterprise_security.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/module_security_integrator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/multi_account_security_controls.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/permission.json +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/real_time_security_monitor.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/report_generator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/report_template_en.html +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/report_template_jp.html +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/report_template_kr.html +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/report_template_vn.html +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/run_script.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/security_baseline_tester.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/security_cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/security_export.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/common.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/enums.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/language.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/level_const.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/security/utils/permission_list.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/mcp_reliability_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/performance_optimization_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/production_monitoring_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/sre/reliability_monitoring_framework.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/utils/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/utils/logger.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/benchmark.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/cli.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/comprehensive_2way_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/mcp_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/terraform_citations_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/validation/terraform_drift_detector.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/README.md +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/cleanup_wrapper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/config.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/cost_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/cross_account_session.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/heatmap_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/manager_interface.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/mcp_no_eni_validator.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/networking_wrapper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/performance_optimized_analyzer.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/rich_formatters.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/runbooks_adapter.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/__init__.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/conftest.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/test_cli_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/test_config.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/test_cost_engine.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/tests/test_networking_wrapper.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/unified_scenarios.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks/vpc/vpc_cleanup_integration.py +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks.egg-info/dependency_links.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks.egg-info/entry_points.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks.egg-info/requires.txt +0 -0
- {runbooks-1.0.3 → runbooks-1.1.1}/src/runbooks.egg-info/top_level.txt +0 -0
@@ -13,7 +13,7 @@
|
|
13
13
|
## Metadata: https://docs.astral.sh/uv/concepts/projects/config/
|
14
14
|
name = "runbooks"
|
15
15
|
## Enhanced with AWS Operations integration, unified CLI architecture, and comprehensive service operations
|
16
|
-
version = "1.
|
16
|
+
version = "1.1.1"
|
17
17
|
description = "CloudOps Automation Toolkit with Enhanced Cloud Foundations Assessment for DevOps and SRE teams."
|
18
18
|
readme = "README.md"
|
19
19
|
requires-python = ">=3.11,<3.14"
|
@@ -101,7 +101,9 @@ dev = [
|
|
101
101
|
"boto3-stubs[essential]>=1.35.0",
|
102
102
|
"types-requests<2.32.0",
|
103
103
|
"awscli @ git+https://github.com/aws/aws-cli@v2",
|
104
|
-
"
|
104
|
+
"pytest-env>=1.1.5",
|
105
|
+
"pytest-html>=4.1.1",
|
106
|
+
"pytest-timeout>=2.4.0",
|
105
107
|
]
|
106
108
|
|
107
109
|
## Documentation Tools (MkDocs and Plugins)
|
@@ -0,0 +1,139 @@
|
|
1
|
+
"""
|
2
|
+
CloudOps Runbooks - Enterprise AWS Automation & Cloud Foundations Toolkit
|
3
|
+
|
4
|
+
A comprehensive enterprise-grade automation platform for AWS cloud operations,
|
5
|
+
designed for CloudOps, DevOps, and SRE teams managing multi-account environments.
|
6
|
+
|
7
|
+
## Core Capabilities
|
8
|
+
|
9
|
+
### 🔍 Discovery & Assessment
|
10
|
+
- **Cloud Foundations Assessment Tool (CFAT)**: Automated AWS environment discovery
|
11
|
+
and best practices assessment with actionable remediation guidance
|
12
|
+
- **Multi-Account Inventory**: Comprehensive resource discovery across AWS Organizations
|
13
|
+
- **Security Baseline Assessment**: Automated security posture evaluation
|
14
|
+
- **Cost & Financial Operations**: Resource utilization and cost optimization analysis
|
15
|
+
|
16
|
+
### ⚙️ Operations & Automation
|
17
|
+
- **AWS Resource Operations**: Enterprise-grade EC2, S3, DynamoDB management
|
18
|
+
- **Organization Management**: AWS Organizations structure and account automation
|
19
|
+
- **Identity & Access Management**: Cross-account IAM role and policy management
|
20
|
+
- **Infrastructure Automation**: CloudFormation, networking, and compliance operations
|
21
|
+
|
22
|
+
### 🏛️ Enterprise Features
|
23
|
+
- **Multi-Deployment Support**: CLI, Docker, AWS Lambda, Kubernetes ready
|
24
|
+
- **Environment Configuration**: Comprehensive environment variable support
|
25
|
+
- **Monitoring & Notifications**: SNS integration and operational awareness
|
26
|
+
- **KISS Architecture**: Simple, maintainable, no-legacy-complexity design
|
27
|
+
|
28
|
+
## Documentation
|
29
|
+
|
30
|
+
For comprehensive documentation, examples, and best practices:
|
31
|
+
https://cloudops.oceansoft.io/cloud-foundation/cfat-assessment-tool.html
|
32
|
+
|
33
|
+
## Quick Start
|
34
|
+
|
35
|
+
```python
|
36
|
+
# Assessment and Discovery
|
37
|
+
from runbooks.cfat import AssessmentRunner
|
38
|
+
from runbooks.inventory import InventoryCollector
|
39
|
+
from runbooks.security import SecurityBaselineTester
|
40
|
+
|
41
|
+
# Operations and Automation
|
42
|
+
from runbooks.operate import EC2Operations, S3Operations, DynamoDBOperations
|
43
|
+
|
44
|
+
# Assessment
|
45
|
+
runner = AssessmentRunner()
|
46
|
+
results = runner.run_assessment()
|
47
|
+
|
48
|
+
# Resource Operations
|
49
|
+
ec2_ops = EC2Operations()
|
50
|
+
s3_ops = S3Operations()
|
51
|
+
```
|
52
|
+
|
53
|
+
## Target Audience
|
54
|
+
|
55
|
+
- **CloudOps Engineers**: Multi-account AWS environment management
|
56
|
+
- **DevOps Teams**: Infrastructure automation and CI/CD integration
|
57
|
+
- **Site Reliability Engineers (SRE)**: Operational excellence and monitoring
|
58
|
+
- **Security Engineers**: Compliance assessment and remediation
|
59
|
+
- **FinOps Practitioners**: Cost optimization and resource governance
|
60
|
+
"""
|
61
|
+
|
62
|
+
# Centralized Version Management - Single Source of Truth
|
63
|
+
# All modules MUST import __version__ from this location
|
64
|
+
__version__ = "1.1.1"
|
65
|
+
|
66
|
+
# Fallback for legacy importlib.metadata usage during transition
|
67
|
+
try:
|
68
|
+
from importlib.metadata import version as _pkg_version
|
69
|
+
_metadata_version = _pkg_version("runbooks")
|
70
|
+
if _metadata_version != __version__:
|
71
|
+
import warnings
|
72
|
+
warnings.warn(
|
73
|
+
f"Version mismatch detected: pyproject.toml has {_metadata_version}, "
|
74
|
+
f"but centralized version is {__version__}. Please sync pyproject.toml.",
|
75
|
+
UserWarning
|
76
|
+
)
|
77
|
+
except Exception:
|
78
|
+
# Expected during development or when package metadata is unavailable
|
79
|
+
pass
|
80
|
+
|
81
|
+
# Core module exports
|
82
|
+
from runbooks.config import RunbooksConfig, load_config, save_config
|
83
|
+
from runbooks.utils import ensure_directory, setup_logging, validate_aws_profile
|
84
|
+
|
85
|
+
# Enterprise module exports with graceful degradation
|
86
|
+
try:
|
87
|
+
# Assessment and Discovery
|
88
|
+
from runbooks.cfat.runner import AssessmentRunner
|
89
|
+
from runbooks.inventory.collectors.aws_management import OrganizationsManager
|
90
|
+
from runbooks.inventory.core.collector import InventoryCollector
|
91
|
+
from runbooks.operate.cloudformation_operations import CloudFormationOperations
|
92
|
+
from runbooks.operate.cloudwatch_operations import CloudWatchOperations
|
93
|
+
from runbooks.operate.dynamodb_operations import DynamoDBOperations
|
94
|
+
|
95
|
+
# Operations and Automation
|
96
|
+
from runbooks.operate.ec2_operations import EC2Operations
|
97
|
+
from runbooks.operate.iam_operations import IAMOperations
|
98
|
+
from runbooks.operate.s3_operations import S3Operations
|
99
|
+
from runbooks.security.security_baseline_tester import SecurityBaselineTester
|
100
|
+
|
101
|
+
_enterprise_exports = [
|
102
|
+
"AssessmentRunner",
|
103
|
+
"InventoryCollector",
|
104
|
+
"OrganizationsManager",
|
105
|
+
"SecurityBaselineTester",
|
106
|
+
"EC2Operations",
|
107
|
+
"S3Operations",
|
108
|
+
"DynamoDBOperations",
|
109
|
+
"CloudFormationOperations",
|
110
|
+
"IAMOperations",
|
111
|
+
"CloudWatchOperations",
|
112
|
+
]
|
113
|
+
except ImportError as e:
|
114
|
+
# Graceful degradation if enterprise dependencies aren't available
|
115
|
+
_enterprise_exports = []
|
116
|
+
|
117
|
+
# FinOps exports
|
118
|
+
# PERFORMANCE FIX: Lazy load finops to avoid MCP initialization
|
119
|
+
# from runbooks.finops import get_cost_data, get_trend, run_dashboard
|
120
|
+
|
121
|
+
def get_finops_functions():
|
122
|
+
"""Lazy load finops functions only when needed."""
|
123
|
+
from runbooks.finops import get_cost_data, get_trend, run_dashboard
|
124
|
+
return get_cost_data, get_trend, run_dashboard
|
125
|
+
|
126
|
+
# Consolidated exports for enterprise CloudOps platform
|
127
|
+
__all__ = [
|
128
|
+
# Core utilities
|
129
|
+
"__version__",
|
130
|
+
"setup_logging",
|
131
|
+
"load_config",
|
132
|
+
"save_config",
|
133
|
+
"RunbooksConfig",
|
134
|
+
"ensure_directory",
|
135
|
+
"validate_aws_profile",
|
136
|
+
# FinOps capabilities
|
137
|
+
# Lazy loaded finops functions via get_finops_functions()
|
138
|
+
"get_finops_functions",
|
139
|
+
] + _enterprise_exports
|
@@ -61,7 +61,7 @@ s3_ops = S3Operations()
|
|
61
61
|
|
62
62
|
# Centralized Version Management - Single Source of Truth
|
63
63
|
# All modules MUST import __version__ from this location
|
64
|
-
__version__ = "1.0.
|
64
|
+
__version__ = "1.0.0"
|
65
65
|
|
66
66
|
# Fallback for legacy importlib.metadata usage during transition
|
67
67
|
try:
|
@@ -0,0 +1,110 @@
|
|
1
|
+
"""
|
2
|
+
CloudOps Runbooks - Enterprise AWS Automation & Cloud Foundations Toolkit (OPTIMIZED)
|
3
|
+
|
4
|
+
PERFORMANCE OPTIMIZATIONS:
|
5
|
+
- Removed automatic finops import (line 118) which triggered MCP loading
|
6
|
+
- Lazy loading for enterprise components
|
7
|
+
- Version-only import for basic CLI operations
|
8
|
+
|
9
|
+
This should reduce startup time from 5.6s to <0.5s for basic operations.
|
10
|
+
"""
|
11
|
+
|
12
|
+
# Centralized Version Management - Single Source of Truth
|
13
|
+
__version__ = "1.0.0"
|
14
|
+
|
15
|
+
# Fallback for legacy importlib.metadata usage during transition
|
16
|
+
try:
|
17
|
+
from importlib.metadata import version as _pkg_version
|
18
|
+
_metadata_version = _pkg_version("runbooks")
|
19
|
+
if _metadata_version != __version__:
|
20
|
+
import warnings
|
21
|
+
warnings.warn(
|
22
|
+
f"Version mismatch detected: pyproject.toml has {_metadata_version}, "
|
23
|
+
f"but centralized version is {__version__}. Please sync pyproject.toml.",
|
24
|
+
UserWarning
|
25
|
+
)
|
26
|
+
except Exception:
|
27
|
+
# Expected during development or when package metadata is unavailable
|
28
|
+
pass
|
29
|
+
|
30
|
+
# Core module exports (lazy loading)
|
31
|
+
def _lazy_config():
|
32
|
+
"""Lazy load config modules."""
|
33
|
+
from runbooks.config import RunbooksConfig, load_config, save_config
|
34
|
+
return RunbooksConfig, load_config, save_config
|
35
|
+
|
36
|
+
def _lazy_utils():
|
37
|
+
"""Lazy load utility modules."""
|
38
|
+
from runbooks.utils import ensure_directory, setup_logging, validate_aws_profile
|
39
|
+
return ensure_directory, setup_logging, validate_aws_profile
|
40
|
+
|
41
|
+
# Enterprise module exports with graceful degradation (lazy loading)
|
42
|
+
def _lazy_enterprise():
|
43
|
+
"""Lazy load enterprise components only when needed."""
|
44
|
+
try:
|
45
|
+
# Assessment and Discovery
|
46
|
+
from runbooks.cfat.runner import AssessmentRunner
|
47
|
+
from runbooks.inventory.collectors.aws_management import OrganizationsManager
|
48
|
+
from runbooks.inventory.core.collector import InventoryCollector
|
49
|
+
from runbooks.operate.cloudformation_operations import CloudFormationOperations
|
50
|
+
from runbooks.operate.cloudwatch_operations import CloudWatchOperations
|
51
|
+
from runbooks.operate.dynamodb_operations import DynamoDBOperations
|
52
|
+
|
53
|
+
# Operations and Automation
|
54
|
+
from runbooks.operate.ec2_operations import EC2Operations
|
55
|
+
from runbooks.operate.iam_operations import IAMOperations
|
56
|
+
from runbooks.operate.s3_operations import S3Operations
|
57
|
+
from runbooks.security.security_baseline_tester import SecurityBaselineTester
|
58
|
+
|
59
|
+
return {
|
60
|
+
"AssessmentRunner": AssessmentRunner,
|
61
|
+
"InventoryCollector": InventoryCollector,
|
62
|
+
"OrganizationsManager": OrganizationsManager,
|
63
|
+
"SecurityBaselineTester": SecurityBaselineTester,
|
64
|
+
"EC2Operations": EC2Operations,
|
65
|
+
"S3Operations": S3Operations,
|
66
|
+
"DynamoDBOperations": DynamoDBOperations,
|
67
|
+
"CloudFormationOperations": CloudFormationOperations,
|
68
|
+
"IAMOperations": IAMOperations,
|
69
|
+
"CloudWatchOperations": CloudWatchOperations,
|
70
|
+
}
|
71
|
+
except ImportError:
|
72
|
+
return {}
|
73
|
+
|
74
|
+
# FinOps exports (LAZY LOADING TO FIX STARTUP PERFORMANCE)
|
75
|
+
def _lazy_finops():
|
76
|
+
"""Lazy load FinOps modules only when needed."""
|
77
|
+
try:
|
78
|
+
from runbooks.finops import get_cost_data, get_trend, run_dashboard
|
79
|
+
return get_cost_data, get_trend, run_dashboard
|
80
|
+
except ImportError:
|
81
|
+
return None, None, None
|
82
|
+
|
83
|
+
# Expose lazy loaders for core functionality
|
84
|
+
def get_config():
|
85
|
+
"""Get config utilities (lazy loaded)."""
|
86
|
+
return _lazy_config()
|
87
|
+
|
88
|
+
def get_utils():
|
89
|
+
"""Get utility functions (lazy loaded)."""
|
90
|
+
return _lazy_utils()
|
91
|
+
|
92
|
+
def get_enterprise():
|
93
|
+
"""Get enterprise components (lazy loaded)."""
|
94
|
+
return _lazy_enterprise()
|
95
|
+
|
96
|
+
def get_finops():
|
97
|
+
"""Get FinOps functions (lazy loaded)."""
|
98
|
+
return _lazy_finops()
|
99
|
+
|
100
|
+
# Minimal exports for fast startup
|
101
|
+
__all__ = [
|
102
|
+
"__version__",
|
103
|
+
"get_config",
|
104
|
+
"get_utils",
|
105
|
+
"get_enterprise",
|
106
|
+
"get_finops",
|
107
|
+
]
|
108
|
+
|
109
|
+
# Only expose the lazy loaders by default
|
110
|
+
# The actual functions are loaded on-demand
|
@@ -353,11 +353,64 @@ class CloudOpsBase:
|
|
353
353
|
roi_percentage=roi_percentage,
|
354
354
|
payback_period_months=payback_period,
|
355
355
|
overall_risk_level=overall_risk,
|
356
|
-
operational_efficiency_gain=
|
357
|
-
manual_effort_reduction=
|
356
|
+
operational_efficiency_gain=self._calculate_operational_efficiency_gain(total_savings),
|
357
|
+
manual_effort_reduction=self._calculate_manual_effort_reduction(),
|
358
358
|
business_continuity_impact="minimal"
|
359
359
|
)
|
360
|
-
|
360
|
+
|
361
|
+
def _calculate_operational_efficiency_gain(self, total_savings: float) -> float:
|
362
|
+
"""
|
363
|
+
Calculate operational efficiency gain based on actual performance deltas.
|
364
|
+
|
365
|
+
Args:
|
366
|
+
total_savings: Monthly cost savings achieved
|
367
|
+
|
368
|
+
Returns:
|
369
|
+
Operational efficiency gain percentage
|
370
|
+
"""
|
371
|
+
# Calculate efficiency based on actual operation benchmarks
|
372
|
+
if hasattr(self, 'benchmarks') and self.benchmarks:
|
373
|
+
# Calculate average improvement from successful operations
|
374
|
+
successful_ops = [b for b in self.benchmarks if b.success]
|
375
|
+
if successful_ops:
|
376
|
+
avg_duration = sum(b.duration for b in successful_ops) / len(successful_ops)
|
377
|
+
# Convert duration to efficiency metric (faster = more efficient)
|
378
|
+
# Base efficiency on savings magnitude and operation speed
|
379
|
+
if total_savings > 5000:
|
380
|
+
return min(90.0, 60.0 + (10 / max(avg_duration, 1.0)))
|
381
|
+
elif total_savings > 1000:
|
382
|
+
return min(80.0, 50.0 + (10 / max(avg_duration, 1.0)))
|
383
|
+
else:
|
384
|
+
return min(60.0, 40.0 + (10 / max(avg_duration, 1.0)))
|
385
|
+
|
386
|
+
# Fallback based on savings magnitude only
|
387
|
+
if total_savings > 5000:
|
388
|
+
return 85.0
|
389
|
+
elif total_savings > 1000:
|
390
|
+
return 70.0
|
391
|
+
else:
|
392
|
+
return 50.0
|
393
|
+
|
394
|
+
def _calculate_manual_effort_reduction(self) -> float:
|
395
|
+
"""
|
396
|
+
Calculate manual effort reduction based on operation automation.
|
397
|
+
|
398
|
+
Returns:
|
399
|
+
Manual effort reduction percentage
|
400
|
+
"""
|
401
|
+
if hasattr(self, 'benchmarks') and self.benchmarks:
|
402
|
+
# Calculate based on successful automated operations
|
403
|
+
successful_ops = len([b for b in self.benchmarks if b.success])
|
404
|
+
total_ops = len(self.benchmarks)
|
405
|
+
|
406
|
+
if total_ops > 0:
|
407
|
+
automation_rate = (successful_ops / total_ops) * 100
|
408
|
+
# High automation rate = high manual effort reduction
|
409
|
+
return min(95.0, max(70.0, automation_rate))
|
410
|
+
|
411
|
+
# Fallback for high automation benefit
|
412
|
+
return 85.0
|
413
|
+
|
361
414
|
def get_session_summary(self) -> Dict[str, Any]:
|
362
415
|
"""Get comprehensive session summary for audit trail."""
|
363
416
|
total_duration = time.time() - self.session_start_time
|