runbooks 1.1.4__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 (228) 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/assessment/compliance.py +1 -1
  8. runbooks/cfat/assessment/runner.py +1 -0
  9. runbooks/cfat/cloud_foundations_assessment.py +227 -239
  10. runbooks/cli/__init__.py +1 -1
  11. runbooks/cli/commands/cfat.py +64 -23
  12. runbooks/cli/commands/finops.py +1005 -54
  13. runbooks/cli/commands/inventory.py +138 -35
  14. runbooks/cli/commands/operate.py +9 -36
  15. runbooks/cli/commands/security.py +42 -18
  16. runbooks/cli/commands/validation.py +432 -18
  17. runbooks/cli/commands/vpc.py +81 -17
  18. runbooks/cli/registry.py +22 -10
  19. runbooks/cloudops/__init__.py +20 -27
  20. runbooks/cloudops/base.py +96 -107
  21. runbooks/cloudops/cost_optimizer.py +544 -542
  22. runbooks/cloudops/infrastructure_optimizer.py +5 -4
  23. runbooks/cloudops/interfaces.py +224 -225
  24. runbooks/cloudops/lifecycle_manager.py +5 -4
  25. runbooks/cloudops/mcp_cost_validation.py +252 -235
  26. runbooks/cloudops/models.py +78 -53
  27. runbooks/cloudops/monitoring_automation.py +5 -4
  28. runbooks/cloudops/notebook_framework.py +177 -213
  29. runbooks/cloudops/security_enforcer.py +125 -159
  30. runbooks/common/accuracy_validator.py +11 -0
  31. runbooks/common/aws_pricing.py +349 -326
  32. runbooks/common/aws_pricing_api.py +211 -212
  33. runbooks/common/aws_profile_manager.py +40 -36
  34. runbooks/common/aws_utils.py +74 -79
  35. runbooks/common/business_logic.py +126 -104
  36. runbooks/common/cli_decorators.py +36 -60
  37. runbooks/common/comprehensive_cost_explorer_integration.py +455 -463
  38. runbooks/common/cross_account_manager.py +197 -204
  39. runbooks/common/date_utils.py +27 -39
  40. runbooks/common/decorators.py +29 -19
  41. runbooks/common/dry_run_examples.py +173 -208
  42. runbooks/common/dry_run_framework.py +157 -155
  43. runbooks/common/enhanced_exception_handler.py +15 -4
  44. runbooks/common/enhanced_logging_example.py +50 -64
  45. runbooks/common/enhanced_logging_integration_example.py +65 -37
  46. runbooks/common/env_utils.py +16 -16
  47. runbooks/common/error_handling.py +40 -38
  48. runbooks/common/lazy_loader.py +41 -23
  49. runbooks/common/logging_integration_helper.py +79 -86
  50. runbooks/common/mcp_cost_explorer_integration.py +476 -493
  51. runbooks/common/mcp_integration.py +63 -74
  52. runbooks/common/memory_optimization.py +140 -118
  53. runbooks/common/module_cli_base.py +37 -58
  54. runbooks/common/organizations_client.py +175 -193
  55. runbooks/common/patterns.py +23 -25
  56. runbooks/common/performance_monitoring.py +67 -71
  57. runbooks/common/performance_optimization_engine.py +283 -274
  58. runbooks/common/profile_utils.py +111 -37
  59. runbooks/common/rich_utils.py +201 -141
  60. runbooks/common/sre_performance_suite.py +177 -186
  61. runbooks/enterprise/__init__.py +1 -1
  62. runbooks/enterprise/logging.py +144 -106
  63. runbooks/enterprise/security.py +187 -204
  64. runbooks/enterprise/validation.py +43 -56
  65. runbooks/finops/__init__.py +26 -30
  66. runbooks/finops/account_resolver.py +1 -1
  67. runbooks/finops/advanced_optimization_engine.py +980 -0
  68. runbooks/finops/automation_core.py +268 -231
  69. runbooks/finops/business_case_config.py +184 -179
  70. runbooks/finops/cli.py +660 -139
  71. runbooks/finops/commvault_ec2_analysis.py +157 -164
  72. runbooks/finops/compute_cost_optimizer.py +336 -320
  73. runbooks/finops/config.py +20 -20
  74. runbooks/finops/cost_optimizer.py +484 -618
  75. runbooks/finops/cost_processor.py +332 -214
  76. runbooks/finops/dashboard_runner.py +1006 -172
  77. runbooks/finops/ebs_cost_optimizer.py +991 -657
  78. runbooks/finops/elastic_ip_optimizer.py +317 -257
  79. runbooks/finops/enhanced_mcp_integration.py +340 -0
  80. runbooks/finops/enhanced_progress.py +32 -29
  81. runbooks/finops/enhanced_trend_visualization.py +3 -2
  82. runbooks/finops/enterprise_wrappers.py +223 -285
  83. runbooks/finops/executive_export.py +203 -160
  84. runbooks/finops/helpers.py +130 -288
  85. runbooks/finops/iam_guidance.py +1 -1
  86. runbooks/finops/infrastructure/__init__.py +80 -0
  87. runbooks/finops/infrastructure/commands.py +506 -0
  88. runbooks/finops/infrastructure/load_balancer_optimizer.py +866 -0
  89. runbooks/finops/infrastructure/vpc_endpoint_optimizer.py +832 -0
  90. runbooks/finops/markdown_exporter.py +337 -174
  91. runbooks/finops/mcp_validator.py +1952 -0
  92. runbooks/finops/nat_gateway_optimizer.py +1512 -481
  93. runbooks/finops/network_cost_optimizer.py +657 -587
  94. runbooks/finops/notebook_utils.py +226 -188
  95. runbooks/finops/optimization_engine.py +1136 -0
  96. runbooks/finops/optimizer.py +19 -23
  97. runbooks/finops/rds_snapshot_optimizer.py +367 -411
  98. runbooks/finops/reservation_optimizer.py +427 -363
  99. runbooks/finops/scenario_cli_integration.py +64 -65
  100. runbooks/finops/scenarios.py +1277 -438
  101. runbooks/finops/schemas.py +218 -182
  102. runbooks/finops/snapshot_manager.py +2289 -0
  103. runbooks/finops/types.py +3 -3
  104. runbooks/finops/validation_framework.py +259 -265
  105. runbooks/finops/vpc_cleanup_exporter.py +189 -144
  106. runbooks/finops/vpc_cleanup_optimizer.py +591 -573
  107. runbooks/finops/workspaces_analyzer.py +171 -182
  108. runbooks/integration/__init__.py +89 -0
  109. runbooks/integration/mcp_integration.py +1920 -0
  110. runbooks/inventory/CLAUDE.md +816 -0
  111. runbooks/inventory/__init__.py +2 -2
  112. runbooks/inventory/cloud_foundations_integration.py +144 -149
  113. runbooks/inventory/collectors/aws_comprehensive.py +1 -1
  114. runbooks/inventory/collectors/aws_networking.py +109 -99
  115. runbooks/inventory/collectors/base.py +4 -0
  116. runbooks/inventory/core/collector.py +495 -313
  117. runbooks/inventory/drift_detection_cli.py +69 -96
  118. runbooks/inventory/inventory_mcp_cli.py +48 -46
  119. runbooks/inventory/list_rds_snapshots_aggregator.py +192 -208
  120. runbooks/inventory/mcp_inventory_validator.py +549 -465
  121. runbooks/inventory/mcp_vpc_validator.py +359 -442
  122. runbooks/inventory/organizations_discovery.py +55 -51
  123. runbooks/inventory/rich_inventory_display.py +33 -32
  124. runbooks/inventory/unified_validation_engine.py +278 -251
  125. runbooks/inventory/vpc_analyzer.py +732 -695
  126. runbooks/inventory/vpc_architecture_validator.py +293 -348
  127. runbooks/inventory/vpc_dependency_analyzer.py +382 -378
  128. runbooks/inventory/vpc_flow_analyzer.py +1 -1
  129. runbooks/main.py +49 -34
  130. runbooks/main_final.py +91 -60
  131. runbooks/main_minimal.py +22 -10
  132. runbooks/main_optimized.py +131 -100
  133. runbooks/main_ultra_minimal.py +7 -2
  134. runbooks/mcp/__init__.py +36 -0
  135. runbooks/mcp/integration.py +679 -0
  136. runbooks/monitoring/performance_monitor.py +9 -4
  137. runbooks/operate/dynamodb_operations.py +3 -1
  138. runbooks/operate/ec2_operations.py +145 -137
  139. runbooks/operate/iam_operations.py +146 -152
  140. runbooks/operate/networking_cost_heatmap.py +29 -8
  141. runbooks/operate/rds_operations.py +223 -254
  142. runbooks/operate/s3_operations.py +107 -118
  143. runbooks/operate/vpc_operations.py +646 -616
  144. runbooks/remediation/base.py +1 -1
  145. runbooks/remediation/commons.py +10 -7
  146. runbooks/remediation/commvault_ec2_analysis.py +70 -66
  147. runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -0
  148. runbooks/remediation/multi_account.py +24 -21
  149. runbooks/remediation/rds_snapshot_list.py +86 -60
  150. runbooks/remediation/remediation_cli.py +92 -146
  151. runbooks/remediation/universal_account_discovery.py +83 -79
  152. runbooks/remediation/workspaces_list.py +46 -41
  153. runbooks/security/__init__.py +19 -0
  154. runbooks/security/assessment_runner.py +1150 -0
  155. runbooks/security/baseline_checker.py +812 -0
  156. runbooks/security/cloudops_automation_security_validator.py +509 -535
  157. runbooks/security/compliance_automation_engine.py +17 -17
  158. runbooks/security/config/__init__.py +2 -2
  159. runbooks/security/config/compliance_config.py +50 -50
  160. runbooks/security/config_template_generator.py +63 -76
  161. runbooks/security/enterprise_security_framework.py +1 -1
  162. runbooks/security/executive_security_dashboard.py +519 -508
  163. runbooks/security/multi_account_security_controls.py +959 -1210
  164. runbooks/security/real_time_security_monitor.py +422 -444
  165. runbooks/security/security_baseline_tester.py +1 -1
  166. runbooks/security/security_cli.py +143 -112
  167. runbooks/security/test_2way_validation.py +439 -0
  168. runbooks/security/two_way_validation_framework.py +852 -0
  169. runbooks/sre/production_monitoring_framework.py +167 -177
  170. runbooks/tdd/__init__.py +15 -0
  171. runbooks/tdd/cli.py +1071 -0
  172. runbooks/utils/__init__.py +14 -17
  173. runbooks/utils/logger.py +7 -2
  174. runbooks/utils/version_validator.py +50 -47
  175. runbooks/validation/__init__.py +6 -6
  176. runbooks/validation/cli.py +9 -3
  177. runbooks/validation/comprehensive_2way_validator.py +745 -704
  178. runbooks/validation/mcp_validator.py +906 -228
  179. runbooks/validation/terraform_citations_validator.py +104 -115
  180. runbooks/validation/terraform_drift_detector.py +447 -451
  181. runbooks/vpc/README.md +617 -0
  182. runbooks/vpc/__init__.py +8 -1
  183. runbooks/vpc/analyzer.py +577 -0
  184. runbooks/vpc/cleanup_wrapper.py +476 -413
  185. runbooks/vpc/cli_cloudtrail_commands.py +339 -0
  186. runbooks/vpc/cli_mcp_validation_commands.py +480 -0
  187. runbooks/vpc/cloudtrail_audit_integration.py +717 -0
  188. runbooks/vpc/config.py +92 -97
  189. runbooks/vpc/cost_engine.py +411 -148
  190. runbooks/vpc/cost_explorer_integration.py +553 -0
  191. runbooks/vpc/cross_account_session.py +101 -106
  192. runbooks/vpc/enhanced_mcp_validation.py +917 -0
  193. runbooks/vpc/eni_gate_validator.py +961 -0
  194. runbooks/vpc/heatmap_engine.py +185 -160
  195. runbooks/vpc/mcp_no_eni_validator.py +680 -639
  196. runbooks/vpc/nat_gateway_optimizer.py +358 -0
  197. runbooks/vpc/networking_wrapper.py +15 -8
  198. runbooks/vpc/pdca_remediation_planner.py +528 -0
  199. runbooks/vpc/performance_optimized_analyzer.py +219 -231
  200. runbooks/vpc/runbooks_adapter.py +1167 -241
  201. runbooks/vpc/tdd_red_phase_stubs.py +601 -0
  202. runbooks/vpc/test_data_loader.py +358 -0
  203. runbooks/vpc/tests/conftest.py +314 -4
  204. runbooks/vpc/tests/test_cleanup_framework.py +1022 -0
  205. runbooks/vpc/tests/test_cost_engine.py +0 -2
  206. runbooks/vpc/topology_generator.py +326 -0
  207. runbooks/vpc/unified_scenarios.py +1297 -1124
  208. runbooks/vpc/vpc_cleanup_integration.py +1943 -1115
  209. runbooks-1.1.5.dist-info/METADATA +328 -0
  210. {runbooks-1.1.4.dist-info → runbooks-1.1.5.dist-info}/RECORD +214 -193
  211. runbooks/finops/README.md +0 -414
  212. runbooks/finops/accuracy_cross_validator.py +0 -647
  213. runbooks/finops/business_cases.py +0 -950
  214. runbooks/finops/dashboard_router.py +0 -922
  215. runbooks/finops/ebs_optimizer.py +0 -973
  216. runbooks/finops/embedded_mcp_validator.py +0 -1629
  217. runbooks/finops/enhanced_dashboard_runner.py +0 -527
  218. runbooks/finops/finops_dashboard.py +0 -584
  219. runbooks/finops/finops_scenarios.py +0 -1218
  220. runbooks/finops/legacy_migration.py +0 -730
  221. runbooks/finops/multi_dashboard.py +0 -1519
  222. runbooks/finops/single_dashboard.py +0 -1113
  223. runbooks/finops/unlimited_scenarios.py +0 -393
  224. runbooks-1.1.4.dist-info/METADATA +0 -800
  225. {runbooks-1.1.4.dist-info → runbooks-1.1.5.dist-info}/WHEEL +0 -0
  226. {runbooks-1.1.4.dist-info → runbooks-1.1.5.dist-info}/entry_points.txt +0 -0
  227. {runbooks-1.1.4.dist-info → runbooks-1.1.5.dist-info}/licenses/LICENSE +0 -0
  228. {runbooks-1.1.4.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
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,11 +95,10 @@ __all__ = [
99
95
  "_run_executive_dashboard",
100
96
  # Enterprise Dashboard Classes - backward compatibility
101
97
  "FinOpsConfig",
102
- # Business scenarios with notebook integration (latest version)
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",
100
+ "format_for_audience", # Consolidated function
101
+ "UnifiedScenarioManager", # Consolidated class
107
102
  # NEW latest version: Clean API wrapper functions (cleaned naming)
108
103
  "finops_workspaces",
109
104
  "finops_snapshots",
@@ -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",
@@ -142,7 +138,7 @@ __all__ = [
142
138
  "load_config_file",
143
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.