runbooks 1.1.3__py3-none-any.whl → 1.1.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. runbooks/__init__.py +31 -2
  2. runbooks/__init___optimized.py +18 -4
  3. runbooks/_platform/__init__.py +1 -5
  4. runbooks/_platform/core/runbooks_wrapper.py +141 -138
  5. runbooks/aws2/accuracy_validator.py +812 -0
  6. runbooks/base.py +7 -0
  7. runbooks/cfat/WEIGHT_CONFIG_README.md +1 -1
  8. runbooks/cfat/assessment/compliance.py +8 -8
  9. runbooks/cfat/assessment/runner.py +1 -0
  10. runbooks/cfat/cloud_foundations_assessment.py +227 -239
  11. runbooks/cfat/models.py +6 -2
  12. runbooks/cfat/tests/__init__.py +6 -1
  13. runbooks/cli/__init__.py +13 -0
  14. runbooks/cli/commands/cfat.py +274 -0
  15. runbooks/cli/commands/finops.py +1164 -0
  16. runbooks/cli/commands/inventory.py +379 -0
  17. runbooks/cli/commands/operate.py +239 -0
  18. runbooks/cli/commands/security.py +248 -0
  19. runbooks/cli/commands/validation.py +825 -0
  20. runbooks/cli/commands/vpc.py +310 -0
  21. runbooks/cli/registry.py +107 -0
  22. runbooks/cloudops/__init__.py +23 -30
  23. runbooks/cloudops/base.py +96 -107
  24. runbooks/cloudops/cost_optimizer.py +549 -547
  25. runbooks/cloudops/infrastructure_optimizer.py +5 -4
  26. runbooks/cloudops/interfaces.py +226 -227
  27. runbooks/cloudops/lifecycle_manager.py +5 -4
  28. runbooks/cloudops/mcp_cost_validation.py +252 -235
  29. runbooks/cloudops/models.py +78 -53
  30. runbooks/cloudops/monitoring_automation.py +5 -4
  31. runbooks/cloudops/notebook_framework.py +179 -215
  32. runbooks/cloudops/security_enforcer.py +125 -159
  33. runbooks/common/accuracy_validator.py +11 -0
  34. runbooks/common/aws_pricing.py +349 -326
  35. runbooks/common/aws_pricing_api.py +211 -212
  36. runbooks/common/aws_profile_manager.py +341 -0
  37. runbooks/common/aws_utils.py +75 -80
  38. runbooks/common/business_logic.py +127 -105
  39. runbooks/common/cli_decorators.py +36 -60
  40. runbooks/common/comprehensive_cost_explorer_integration.py +456 -464
  41. runbooks/common/cross_account_manager.py +198 -205
  42. runbooks/common/date_utils.py +27 -39
  43. runbooks/common/decorators.py +235 -0
  44. runbooks/common/dry_run_examples.py +173 -208
  45. runbooks/common/dry_run_framework.py +157 -155
  46. runbooks/common/enhanced_exception_handler.py +15 -4
  47. runbooks/common/enhanced_logging_example.py +50 -64
  48. runbooks/common/enhanced_logging_integration_example.py +65 -37
  49. runbooks/common/env_utils.py +16 -16
  50. runbooks/common/error_handling.py +40 -38
  51. runbooks/common/lazy_loader.py +41 -23
  52. runbooks/common/logging_integration_helper.py +79 -86
  53. runbooks/common/mcp_cost_explorer_integration.py +478 -495
  54. runbooks/common/mcp_integration.py +63 -74
  55. runbooks/common/memory_optimization.py +140 -118
  56. runbooks/common/module_cli_base.py +37 -58
  57. runbooks/common/organizations_client.py +176 -194
  58. runbooks/common/patterns.py +204 -0
  59. runbooks/common/performance_monitoring.py +67 -71
  60. runbooks/common/performance_optimization_engine.py +283 -274
  61. runbooks/common/profile_utils.py +248 -39
  62. runbooks/common/rich_utils.py +643 -92
  63. runbooks/common/sre_performance_suite.py +177 -186
  64. runbooks/enterprise/__init__.py +1 -1
  65. runbooks/enterprise/logging.py +144 -106
  66. runbooks/enterprise/security.py +187 -204
  67. runbooks/enterprise/validation.py +43 -56
  68. runbooks/finops/__init__.py +29 -33
  69. runbooks/finops/account_resolver.py +1 -1
  70. runbooks/finops/advanced_optimization_engine.py +980 -0
  71. runbooks/finops/automation_core.py +268 -231
  72. runbooks/finops/business_case_config.py +184 -179
  73. runbooks/finops/cli.py +660 -139
  74. runbooks/finops/commvault_ec2_analysis.py +157 -164
  75. runbooks/finops/compute_cost_optimizer.py +336 -320
  76. runbooks/finops/config.py +20 -20
  77. runbooks/finops/cost_optimizer.py +488 -622
  78. runbooks/finops/cost_processor.py +332 -214
  79. runbooks/finops/dashboard_runner.py +1006 -172
  80. runbooks/finops/ebs_cost_optimizer.py +991 -657
  81. runbooks/finops/elastic_ip_optimizer.py +317 -257
  82. runbooks/finops/enhanced_mcp_integration.py +340 -0
  83. runbooks/finops/enhanced_progress.py +40 -37
  84. runbooks/finops/enhanced_trend_visualization.py +3 -2
  85. runbooks/finops/enterprise_wrappers.py +230 -292
  86. runbooks/finops/executive_export.py +203 -160
  87. runbooks/finops/helpers.py +130 -288
  88. runbooks/finops/iam_guidance.py +1 -1
  89. runbooks/finops/infrastructure/__init__.py +80 -0
  90. runbooks/finops/infrastructure/commands.py +506 -0
  91. runbooks/finops/infrastructure/load_balancer_optimizer.py +866 -0
  92. runbooks/finops/infrastructure/vpc_endpoint_optimizer.py +832 -0
  93. runbooks/finops/markdown_exporter.py +338 -175
  94. runbooks/finops/mcp_validator.py +1952 -0
  95. runbooks/finops/nat_gateway_optimizer.py +1513 -482
  96. runbooks/finops/network_cost_optimizer.py +657 -587
  97. runbooks/finops/notebook_utils.py +226 -188
  98. runbooks/finops/optimization_engine.py +1136 -0
  99. runbooks/finops/optimizer.py +25 -29
  100. runbooks/finops/rds_snapshot_optimizer.py +367 -411
  101. runbooks/finops/reservation_optimizer.py +427 -363
  102. runbooks/finops/scenario_cli_integration.py +77 -78
  103. runbooks/finops/scenarios.py +1278 -439
  104. runbooks/finops/schemas.py +218 -182
  105. runbooks/finops/snapshot_manager.py +2289 -0
  106. runbooks/finops/tests/test_finops_dashboard.py +3 -3
  107. runbooks/finops/tests/test_reference_images_validation.py +2 -2
  108. runbooks/finops/tests/test_single_account_features.py +17 -17
  109. runbooks/finops/tests/validate_test_suite.py +1 -1
  110. runbooks/finops/types.py +3 -3
  111. runbooks/finops/validation_framework.py +263 -269
  112. runbooks/finops/vpc_cleanup_exporter.py +191 -146
  113. runbooks/finops/vpc_cleanup_optimizer.py +593 -575
  114. runbooks/finops/workspaces_analyzer.py +171 -182
  115. runbooks/hitl/enhanced_workflow_engine.py +1 -1
  116. runbooks/integration/__init__.py +89 -0
  117. runbooks/integration/mcp_integration.py +1920 -0
  118. runbooks/inventory/CLAUDE.md +816 -0
  119. runbooks/inventory/README.md +3 -3
  120. runbooks/inventory/Tests/common_test_data.py +30 -30
  121. runbooks/inventory/__init__.py +2 -2
  122. runbooks/inventory/cloud_foundations_integration.py +144 -149
  123. runbooks/inventory/collectors/aws_comprehensive.py +28 -11
  124. runbooks/inventory/collectors/aws_networking.py +111 -101
  125. runbooks/inventory/collectors/base.py +4 -0
  126. runbooks/inventory/core/collector.py +495 -313
  127. runbooks/inventory/discovery.md +2 -2
  128. runbooks/inventory/drift_detection_cli.py +69 -96
  129. runbooks/inventory/find_ec2_security_groups.py +1 -1
  130. runbooks/inventory/inventory_mcp_cli.py +48 -46
  131. runbooks/inventory/list_rds_snapshots_aggregator.py +192 -208
  132. runbooks/inventory/mcp_inventory_validator.py +549 -465
  133. runbooks/inventory/mcp_vpc_validator.py +359 -442
  134. runbooks/inventory/organizations_discovery.py +56 -52
  135. runbooks/inventory/rich_inventory_display.py +33 -32
  136. runbooks/inventory/unified_validation_engine.py +278 -251
  137. runbooks/inventory/vpc_analyzer.py +733 -696
  138. runbooks/inventory/vpc_architecture_validator.py +293 -348
  139. runbooks/inventory/vpc_dependency_analyzer.py +382 -378
  140. runbooks/inventory/vpc_flow_analyzer.py +3 -3
  141. runbooks/main.py +152 -9147
  142. runbooks/main_final.py +91 -60
  143. runbooks/main_minimal.py +22 -10
  144. runbooks/main_optimized.py +131 -100
  145. runbooks/main_ultra_minimal.py +7 -2
  146. runbooks/mcp/__init__.py +36 -0
  147. runbooks/mcp/integration.py +679 -0
  148. runbooks/metrics/dora_metrics_engine.py +2 -2
  149. runbooks/monitoring/performance_monitor.py +9 -4
  150. runbooks/operate/dynamodb_operations.py +3 -1
  151. runbooks/operate/ec2_operations.py +145 -137
  152. runbooks/operate/iam_operations.py +146 -152
  153. runbooks/operate/mcp_integration.py +1 -1
  154. runbooks/operate/networking_cost_heatmap.py +33 -10
  155. runbooks/operate/privatelink_operations.py +1 -1
  156. runbooks/operate/rds_operations.py +223 -254
  157. runbooks/operate/s3_operations.py +107 -118
  158. runbooks/operate/vpc_endpoints.py +1 -1
  159. runbooks/operate/vpc_operations.py +648 -618
  160. runbooks/remediation/base.py +1 -1
  161. runbooks/remediation/commons.py +10 -7
  162. runbooks/remediation/commvault_ec2_analysis.py +71 -67
  163. runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -0
  164. runbooks/remediation/multi_account.py +24 -21
  165. runbooks/remediation/rds_snapshot_list.py +91 -65
  166. runbooks/remediation/remediation_cli.py +92 -146
  167. runbooks/remediation/universal_account_discovery.py +83 -79
  168. runbooks/remediation/workspaces_list.py +49 -44
  169. runbooks/security/__init__.py +19 -0
  170. runbooks/security/assessment_runner.py +1150 -0
  171. runbooks/security/baseline_checker.py +812 -0
  172. runbooks/security/cloudops_automation_security_validator.py +509 -535
  173. runbooks/security/compliance_automation_engine.py +17 -17
  174. runbooks/security/config/__init__.py +2 -2
  175. runbooks/security/config/compliance_config.py +50 -50
  176. runbooks/security/config_template_generator.py +63 -76
  177. runbooks/security/enterprise_security_framework.py +1 -1
  178. runbooks/security/executive_security_dashboard.py +519 -508
  179. runbooks/security/integration_test_enterprise_security.py +5 -3
  180. runbooks/security/multi_account_security_controls.py +959 -1210
  181. runbooks/security/real_time_security_monitor.py +422 -444
  182. runbooks/security/run_script.py +1 -1
  183. runbooks/security/security_baseline_tester.py +1 -1
  184. runbooks/security/security_cli.py +143 -112
  185. runbooks/security/test_2way_validation.py +439 -0
  186. runbooks/security/two_way_validation_framework.py +852 -0
  187. runbooks/sre/mcp_reliability_engine.py +6 -6
  188. runbooks/sre/production_monitoring_framework.py +167 -177
  189. runbooks/tdd/__init__.py +15 -0
  190. runbooks/tdd/cli.py +1071 -0
  191. runbooks/utils/__init__.py +14 -17
  192. runbooks/utils/logger.py +7 -2
  193. runbooks/utils/version_validator.py +51 -48
  194. runbooks/validation/__init__.py +6 -6
  195. runbooks/validation/cli.py +9 -3
  196. runbooks/validation/comprehensive_2way_validator.py +754 -708
  197. runbooks/validation/mcp_validator.py +906 -228
  198. runbooks/validation/terraform_citations_validator.py +104 -115
  199. runbooks/validation/terraform_drift_detector.py +447 -451
  200. runbooks/vpc/README.md +617 -0
  201. runbooks/vpc/__init__.py +8 -1
  202. runbooks/vpc/analyzer.py +577 -0
  203. runbooks/vpc/cleanup_wrapper.py +476 -413
  204. runbooks/vpc/cli_cloudtrail_commands.py +339 -0
  205. runbooks/vpc/cli_mcp_validation_commands.py +480 -0
  206. runbooks/vpc/cloudtrail_audit_integration.py +717 -0
  207. runbooks/vpc/config.py +92 -97
  208. runbooks/vpc/cost_engine.py +411 -148
  209. runbooks/vpc/cost_explorer_integration.py +553 -0
  210. runbooks/vpc/cross_account_session.py +101 -106
  211. runbooks/vpc/enhanced_mcp_validation.py +917 -0
  212. runbooks/vpc/eni_gate_validator.py +961 -0
  213. runbooks/vpc/heatmap_engine.py +190 -162
  214. runbooks/vpc/mcp_no_eni_validator.py +681 -640
  215. runbooks/vpc/nat_gateway_optimizer.py +358 -0
  216. runbooks/vpc/networking_wrapper.py +15 -8
  217. runbooks/vpc/pdca_remediation_planner.py +528 -0
  218. runbooks/vpc/performance_optimized_analyzer.py +219 -231
  219. runbooks/vpc/runbooks_adapter.py +1167 -241
  220. runbooks/vpc/tdd_red_phase_stubs.py +601 -0
  221. runbooks/vpc/test_data_loader.py +358 -0
  222. runbooks/vpc/tests/conftest.py +314 -4
  223. runbooks/vpc/tests/test_cleanup_framework.py +1022 -0
  224. runbooks/vpc/tests/test_cost_engine.py +0 -2
  225. runbooks/vpc/topology_generator.py +326 -0
  226. runbooks/vpc/unified_scenarios.py +1302 -1129
  227. runbooks/vpc/vpc_cleanup_integration.py +1943 -1115
  228. runbooks-1.1.5.dist-info/METADATA +328 -0
  229. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/RECORD +233 -200
  230. runbooks/finops/README.md +0 -414
  231. runbooks/finops/accuracy_cross_validator.py +0 -647
  232. runbooks/finops/business_cases.py +0 -950
  233. runbooks/finops/dashboard_router.py +0 -922
  234. runbooks/finops/ebs_optimizer.py +0 -956
  235. runbooks/finops/embedded_mcp_validator.py +0 -1629
  236. runbooks/finops/enhanced_dashboard_runner.py +0 -527
  237. runbooks/finops/finops_dashboard.py +0 -584
  238. runbooks/finops/finops_scenarios.py +0 -1218
  239. runbooks/finops/legacy_migration.py +0 -730
  240. runbooks/finops/multi_dashboard.py +0 -1519
  241. runbooks/finops/single_dashboard.py +0 -1113
  242. runbooks/finops/unlimited_scenarios.py +0 -393
  243. runbooks-1.1.3.dist-info/METADATA +0 -799
  244. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/WHEEL +0 -0
  245. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/entry_points.txt +0 -0
  246. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/licenses/LICENSE +0 -0
  247. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/top_level.txt +0 -0
@@ -19,54 +19,47 @@ from rich.logging import RichHandler
19
19
  # Rich console for enterprise logging
20
20
  console = Console()
21
21
 
22
+
22
23
  class EnhancedLogging:
23
24
  """Enhanced logging capabilities for enterprise operations."""
24
-
25
+
25
26
  def __init__(self, module_name: str = "runbooks"):
26
27
  self.module_name = module_name
27
28
  self.logger = self._setup_enhanced_logger()
28
-
29
+
29
30
  def _setup_enhanced_logger(self) -> logging.Logger:
30
31
  """Setup enhanced logger with Rich integration."""
31
32
  logger = logging.getLogger(f"runbooks.{self.module_name}")
32
-
33
+
33
34
  # Skip if already configured
34
35
  if logger.handlers:
35
36
  return logger
36
-
37
+
37
38
  logger.setLevel(logging.INFO)
38
-
39
+
39
40
  # Rich handler for beautiful console output
40
- rich_handler = RichHandler(
41
- console=console,
42
- show_time=True,
43
- show_path=True,
44
- rich_tracebacks=True
45
- )
46
-
47
- formatter = logging.Formatter(
48
- fmt="[%(name)s] %(message)s",
49
- datefmt="[%X]"
50
- )
41
+ rich_handler = RichHandler(console=console, show_time=True, show_path=True, rich_tracebacks=True)
42
+
43
+ formatter = logging.Formatter(fmt="[%(name)s] %(message)s", datefmt="[%X]")
51
44
  rich_handler.setFormatter(formatter)
52
-
45
+
53
46
  logger.addHandler(rich_handler)
54
47
  logger.propagate = False
55
-
48
+
56
49
  return logger
57
-
50
+
58
51
  def info(self, message: str, **kwargs) -> None:
59
52
  """Log info message with Rich formatting."""
60
53
  self.logger.info(message, **kwargs)
61
-
54
+
62
55
  def warning(self, message: str, **kwargs) -> None:
63
56
  """Log warning message with Rich formatting."""
64
57
  self.logger.warning(message, **kwargs)
65
-
58
+
66
59
  def error(self, message: str, **kwargs) -> None:
67
60
  """Log error message with Rich formatting."""
68
61
  self.logger.error(message, **kwargs)
69
-
62
+
70
63
  def debug(self, message: str, **kwargs) -> None:
71
64
  """Log debug message with Rich formatting."""
72
65
  self.logger.debug(message, **kwargs)
@@ -74,60 +67,60 @@ class EnhancedLogging:
74
67
 
75
68
  class ConfigValidator:
76
69
  """Configuration validation utilities."""
77
-
70
+
78
71
  @staticmethod
79
72
  def validate_aws_profile(profile: str) -> bool:
80
73
  """Validate AWS profile configuration."""
81
74
  if not profile or not isinstance(profile, str):
82
75
  return False
83
76
  return len(profile.strip()) > 0
84
-
77
+
85
78
  @staticmethod
86
79
  def validate_region(region: str) -> bool:
87
80
  """Validate AWS region format."""
88
81
  if not region or not isinstance(region, str):
89
82
  return False
90
83
  # Basic AWS region format validation
91
- return len(region.split('-')) >= 3
84
+ return len(region.split("-")) >= 3
92
85
 
93
86
 
94
87
  class InputValidator:
95
88
  """Input validation utilities."""
96
-
89
+
97
90
  @staticmethod
98
91
  def validate_account_id(account_id: str) -> bool:
99
92
  """Validate AWS account ID format."""
100
93
  if not account_id or not isinstance(account_id, str):
101
94
  return False
102
95
  return account_id.isdigit() and len(account_id) == 12
103
-
96
+
104
97
  @staticmethod
105
98
  def validate_instance_id(instance_id: str) -> bool:
106
99
  """Validate EC2 instance ID format."""
107
100
  if not instance_id or not isinstance(instance_id, str):
108
101
  return False
109
- return instance_id.startswith('i-') and len(instance_id) >= 10
102
+ return instance_id.startswith("i-") and len(instance_id) >= 10
110
103
 
111
104
 
112
105
  class TypeValidator:
113
106
  """Type validation utilities."""
114
-
107
+
115
108
  @staticmethod
116
109
  def validate_list_of_strings(value: Any) -> bool:
117
110
  """Validate that value is a list of strings."""
118
111
  if not isinstance(value, list):
119
112
  return False
120
113
  return all(isinstance(item, str) for item in value)
121
-
114
+
122
115
  @staticmethod
123
116
  def validate_dict(value: Any, required_keys: Optional[List[str]] = None) -> bool:
124
117
  """Validate dictionary structure."""
125
118
  if not isinstance(value, dict):
126
119
  return False
127
-
120
+
128
121
  if required_keys:
129
122
  return all(key in value for key in required_keys)
130
-
123
+
131
124
  return True
132
125
 
133
126
 
@@ -135,43 +128,37 @@ def validate_configuration(config: Dict[str, Any]) -> Dict[str, Any]:
135
128
  """Validate configuration dictionary."""
136
129
  validator = ConfigValidator()
137
130
  errors = []
138
-
131
+
139
132
  # Validate profile if present
140
- if 'profile' in config:
141
- if not validator.validate_aws_profile(config['profile']):
133
+ if "profile" in config:
134
+ if not validator.validate_aws_profile(config["profile"]):
142
135
  errors.append("Invalid AWS profile configuration")
143
-
136
+
144
137
  # Validate region if present
145
- if 'region' in config:
146
- if not validator.validate_region(config['region']):
138
+ if "region" in config:
139
+ if not validator.validate_region(config["region"]):
147
140
  errors.append("Invalid AWS region format")
148
-
149
- return {
150
- 'valid': len(errors) == 0,
151
- 'errors': errors
152
- }
141
+
142
+ return {"valid": len(errors) == 0, "errors": errors}
153
143
 
154
144
 
155
145
  def validate_user_input(user_input: Dict[str, Any]) -> Dict[str, Any]:
156
146
  """Validate user input data."""
157
147
  validator = InputValidator()
158
148
  errors = []
159
-
149
+
160
150
  # Validate account ID if present
161
- if 'account_id' in user_input:
162
- if not validator.validate_account_id(user_input['account_id']):
151
+ if "account_id" in user_input:
152
+ if not validator.validate_account_id(user_input["account_id"]):
163
153
  errors.append("Invalid AWS account ID format")
164
-
165
- # Validate instance ID if present
166
- if 'instance_id' in user_input:
167
- if not validator.validate_instance_id(user_input['instance_id']):
154
+
155
+ # Validate instance ID if present
156
+ if "instance_id" in user_input:
157
+ if not validator.validate_instance_id(user_input["instance_id"]):
168
158
  errors.append("Invalid EC2 instance ID format")
169
-
170
- return {
171
- 'valid': len(errors) == 0,
172
- 'errors': errors
173
- }
159
+
160
+ return {"valid": len(errors) == 0, "errors": errors}
174
161
 
175
162
 
176
163
  # Create default enhanced logger
177
- enhanced_logger = EnhancedLogging("enterprise")
164
+ enhanced_logger = EnhancedLogging("enterprise")
@@ -1,5 +1,5 @@
1
1
  """
2
- CloudOps Runbooks FinOps Module - Enterprise Cost and Resource Monitoring
2
+ CloudOps & FinOps Runbooks Module - Enterprise Cost and Resource Monitoring
3
3
 
4
4
  This module provides terminal-based AWS cost monitoring with features including:
5
5
  - Multi-account cost summaries
@@ -31,7 +31,11 @@ from runbooks.finops.aws_client import (
31
31
 
32
32
  # Data processors
33
33
  from runbooks.finops.cost_processor import export_to_csv, export_to_json, get_cost_data, get_trend
34
+
35
+ # Enterprise FinOps Dashboard Components - Using consolidated dashboard_runner.py
36
+ # Backward compatibility for legacy tests and components
34
37
  from runbooks.finops.dashboard_runner import (
38
+ FinOpsConfig,
35
39
  _run_audit_report,
36
40
  _run_cost_trend_analysis,
37
41
  _run_executive_dashboard,
@@ -40,47 +44,39 @@ from runbooks.finops.dashboard_runner import (
40
44
  run_dashboard,
41
45
  )
42
46
 
43
- # Enterprise FinOps Dashboard Components - Using existing dashboard_runner.py
44
- # Backward compatibility module for legacy tests and components
45
- from runbooks.finops.finops_dashboard import FinOpsConfig
46
-
47
47
  # Enhanced helpers with notebook integration functions
48
48
  from runbooks.finops.helpers import (
49
+ create_business_summary_table,
50
+ create_roi_analysis_table,
49
51
  export_audit_report_to_csv,
50
52
  export_audit_report_to_json,
51
53
  export_audit_report_to_pdf,
52
54
  export_cost_dashboard_to_pdf,
55
+ export_scenarios_to_notebook_html,
53
56
  export_trend_data_to_json,
54
- load_config_file,
55
57
  # NOTEBOOK INTEGRATION FUNCTIONS - Added for clean notebook consumption
56
58
  format_currency,
57
- create_business_summary_table,
58
- export_scenarios_to_notebook_html,
59
- create_roi_analysis_table,
59
+ load_config_file,
60
60
  )
61
+ from runbooks.finops.profile_processor import process_combined_profiles, process_single_profile
61
62
 
62
63
  # Business scenarios with notebook integration
63
- from runbooks.finops.finops_scenarios import (
64
- create_business_scenarios_validated,
65
- format_for_business_audience,
66
- format_for_technical_audience,
67
- FinOpsBusinessScenarios,
68
- )
69
-
70
- # NEW v0.9.5: Clean API wrapper for notebook consumption
64
+ # NEW latest version: Clean API wrapper for notebook consumption
71
65
  from runbooks.finops.scenarios import (
72
- finops_workspaces,
73
- finops_snapshots,
74
- finops_commvault,
75
- get_business_scenarios_summary,
76
- format_for_audience,
77
- validate_scenarios_accuracy,
66
+ UnifiedScenarioManager, # Replaces FinOpsBusinessScenarios
67
+ create_business_scenarios_validated,
68
+ display_unlimited_scenarios_help, # CLI help function
69
+ finops_23_rds_snapshots_optimization,
78
70
  # Legacy aliases for backward compatibility
79
71
  finops_24_workspaces_cleanup,
80
- finops_23_rds_snapshots_optimization,
81
72
  finops_25_commvault_investigation,
73
+ finops_commvault,
74
+ finops_snapshots,
75
+ finops_workspaces,
76
+ format_for_audience, # Consolidated function replaces format_for_business_audience and format_for_technical_audience
77
+ get_business_scenarios_summary,
78
+ validate_finops_mcp_accuracy,
82
79
  )
83
- from runbooks.finops.profile_processor import process_combined_profiles, process_single_profile
84
80
 
85
81
  # Type definitions
86
82
  from runbooks.finops.types import BudgetInfo, CostData, EC2Summary, ProfileData, RegionName
@@ -99,12 +95,11 @@ __all__ = [
99
95
  "_run_executive_dashboard",
100
96
  # Enterprise Dashboard Classes - backward compatibility
101
97
  "FinOpsConfig",
102
- # Business scenarios with notebook integration (v0.9.5)
98
+ # Business scenarios with notebook integration (consolidated version)
103
99
  "create_business_scenarios_validated",
104
- "format_for_business_audience",
105
- "format_for_technical_audience",
106
- "FinOpsBusinessScenarios",
107
- # NEW v0.9.5: Clean API wrapper functions (cleaned naming)
100
+ "format_for_audience", # Consolidated function
101
+ "UnifiedScenarioManager", # Consolidated class
102
+ # NEW latest version: Clean API wrapper functions (cleaned naming)
108
103
  "finops_workspaces",
109
104
  "finops_snapshots",
110
105
  "finops_commvault",
@@ -114,7 +109,8 @@ __all__ = [
114
109
  "finops_25_commvault_investigation",
115
110
  "get_business_scenarios_summary",
116
111
  "format_for_audience",
117
- "validate_scenarios_accuracy",
112
+ "validate_finops_mcp_accuracy", # Updated function name in consolidated version
113
+ "display_unlimited_scenarios_help", # CLI help function
118
114
  # Processors
119
115
  "get_cost_data",
120
116
  "get_trend",
@@ -140,9 +136,9 @@ __all__ = [
140
136
  "export_audit_report_to_json",
141
137
  "export_trend_data_to_json",
142
138
  "load_config_file",
143
- # NOTEBOOK INTEGRATION FUNCTIONS (v0.9.5)
139
+ # NOTEBOOK INTEGRATION FUNCTIONS (latest version)
144
140
  "format_currency",
145
- "create_business_summary_table",
141
+ "create_business_summary_table",
146
142
  "export_scenarios_to_notebook_html",
147
143
  "create_roi_analysis_table",
148
144
  # Types
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  """
3
- AWS Account Name Resolution Module for CloudOps Runbooks FinOps
3
+ AWS Account Name Resolution Module for CloudOps & FinOps Runbooks
4
4
 
5
5
  This module provides account ID to account name mapping functionality using
6
6
  the AWS Organizations API for readable account display in FinOps dashboards.