runbooks 0.9.6__py3-none-any.whl → 0.9.7__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 (43) hide show
  1. runbooks/__init__.py +1 -1
  2. runbooks/_platform/__init__.py +19 -0
  3. runbooks/_platform/core/runbooks_wrapper.py +478 -0
  4. runbooks/cloudops/cost_optimizer.py +330 -0
  5. runbooks/cloudops/interfaces.py +3 -3
  6. runbooks/finops/README.md +1 -1
  7. runbooks/finops/automation_core.py +643 -0
  8. runbooks/finops/business_cases.py +414 -16
  9. runbooks/finops/cli.py +23 -0
  10. runbooks/finops/compute_cost_optimizer.py +865 -0
  11. runbooks/finops/ebs_cost_optimizer.py +718 -0
  12. runbooks/finops/ebs_optimizer.py +909 -0
  13. runbooks/finops/elastic_ip_optimizer.py +675 -0
  14. runbooks/finops/embedded_mcp_validator.py +330 -14
  15. runbooks/finops/enterprise_wrappers.py +827 -0
  16. runbooks/finops/legacy_migration.py +730 -0
  17. runbooks/finops/nat_gateway_optimizer.py +1160 -0
  18. runbooks/finops/network_cost_optimizer.py +1387 -0
  19. runbooks/finops/notebook_utils.py +596 -0
  20. runbooks/finops/reservation_optimizer.py +956 -0
  21. runbooks/finops/validation_framework.py +753 -0
  22. runbooks/finops/workspaces_analyzer.py +1 -1
  23. runbooks/inventory/__init__.py +7 -0
  24. runbooks/inventory/collectors/aws_networking.py +357 -6
  25. runbooks/inventory/mcp_vpc_validator.py +1091 -0
  26. runbooks/inventory/vpc_analyzer.py +1107 -0
  27. runbooks/inventory/vpc_architecture_validator.py +939 -0
  28. runbooks/inventory/vpc_dependency_analyzer.py +845 -0
  29. runbooks/main.py +425 -39
  30. runbooks/operate/vpc_operations.py +1479 -16
  31. runbooks/remediation/commvault_ec2_analysis.py +1 -1
  32. runbooks/remediation/dynamodb_optimize.py +2 -2
  33. runbooks/remediation/rds_instance_list.py +1 -1
  34. runbooks/remediation/rds_snapshot_list.py +1 -1
  35. runbooks/remediation/workspaces_list.py +2 -2
  36. runbooks/security/compliance_automation.py +2 -2
  37. runbooks/vpc/tests/test_config.py +2 -2
  38. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/METADATA +1 -1
  39. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/RECORD +43 -25
  40. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/WHEEL +0 -0
  41. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/entry_points.txt +0 -0
  42. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/licenses/LICENSE +0 -0
  43. {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/top_level.txt +0 -0
@@ -60,7 +60,7 @@ def calculate_ec2_cost_impact(instances_data: List[Dict]) -> Dict[str, float]:
60
60
 
61
61
 
62
62
  @click.command()
63
- @click.option("--output-file", default="/tmp/commvault_ec2_investigation.csv", help="Output CSV file path")
63
+ @click.option("--output-file", default="./tmp/commvault_ec2_investigation.csv", help="Output CSV file path")
64
64
  @click.option("--account", default="637423383469", help="Commvault backup account ID (JIRA FinOps-25)")
65
65
  @click.option("--investigate-utilization", is_flag=True, help="Investigate EC2 utilization patterns")
66
66
  @click.option("--days", default=7, help="Number of days to analyze for utilization metrics")
@@ -114,8 +114,8 @@ def analyze_table(table_name):
114
114
 
115
115
  @click.command()
116
116
  @click.option("--apply", "-a", is_flag=True, help="Apply suggested optimizations")
117
- @click.option("--output", "-o", default="/tmp/dynamodb_analysis.csv", help="Output CSV file path")
118
- def dynamodb_analyze(apply=False, output="/tmp/dynamodb_analysis.csv"):
117
+ @click.option("--output", "-o", default="./tmp/dynamodb_analysis.csv", help="Output CSV file path")
118
+ def dynamodb_analyze(apply=False, output="./tmp/dynamodb_analysis.csv"):
119
119
  """Analyze DynamoDB tables and suggest cost optimizations."""
120
120
  logger.info(f"Analyzing DynamoDB tables in {display_aws_account_info()}")
121
121
 
@@ -58,7 +58,7 @@ def get_cloudwatch_metrics(cloudwatch, instance_id, metric_name, days=7):
58
58
 
59
59
 
60
60
  @click.command()
61
- @click.option("--output-file", default="/tmp/rds_cost_optimization.csv", help="Output CSV file path")
61
+ @click.option("--output-file", default="./tmp/rds_cost_optimization.csv", help="Output CSV file path")
62
62
  @click.option("--days", default=7, help="Number of days for CloudWatch metrics analysis")
63
63
  @click.option("--include-storage", is_flag=True, help="Include detailed storage analysis")
64
64
  def get_rds_list(output_file, days, include_storage):
@@ -86,7 +86,7 @@ def calculate_manual_snapshot_savings(snapshots_data: List[Dict]) -> Dict[str, f
86
86
 
87
87
 
88
88
  @click.command()
89
- @click.option("--output-file", default="/tmp/rds_snapshots.csv", help="Output CSV file path")
89
+ @click.option("--output-file", default="./tmp/rds_snapshots.csv", help="Output CSV file path")
90
90
  @click.option("--old-days", default=30, help="Days threshold for considering snapshots old")
91
91
  @click.option("--include-cost", is_flag=True, help="Include estimated cost analysis")
92
92
  @click.option("--snapshot-type", help="Filter by snapshot type (automated, manual)")
@@ -93,7 +93,7 @@ def get_workspace_usage_by_hours(workspace_id, start_time, end_time):
93
93
 
94
94
 
95
95
  @click.command()
96
- @click.option("--output-file", default="/tmp/workspaces.csv", help="Output CSV file path")
96
+ @click.option("--output-file", default="./tmp/workspaces.csv", help="Output CSV file path")
97
97
  @click.option("--days", default=30, help="Number of days to analyze for usage metrics")
98
98
  @click.option("--delete-unused", is_flag=True, help="🚨 HIGH-RISK: Delete unused WorkSpaces")
99
99
  @click.option("--unused-days", default=90, help="Days threshold for considering WorkSpace unused")
@@ -102,7 +102,7 @@ def get_workspace_usage_by_hours(workspace_id, start_time, end_time):
102
102
  @click.option("--analyze", is_flag=True, help="Perform detailed cost analysis")
103
103
  @click.option("--dry-run", is_flag=True, default=True, help="Preview actions without execution")
104
104
  def get_workspaces(
105
- output_file: str = "/tmp/workspaces.csv",
105
+ output_file: str = "./tmp/workspaces.csv",
106
106
  days: int = 30,
107
107
  delete_unused: bool = False,
108
108
  unused_days: int = 90,
@@ -144,7 +144,7 @@ class ComplianceAutomation:
144
144
  tester = SecurityBaselineTester(
145
145
  profile=self.profile,
146
146
  lang_code=language,
147
- output_dir=f"/tmp/compliance_{datetime.now().strftime('%Y%m%d_%H%M%S')}",
147
+ output_dir=f"./tmp/compliance_{datetime.now().strftime('%Y%m%d_%H%M%S')}",
148
148
  )
149
149
 
150
150
  # Execute assessment
@@ -492,7 +492,7 @@ class ComplianceAutomation:
492
492
  else:
493
493
  raise ValueError(f"Unsupported format: {format}")
494
494
 
495
- dashboard_path = f"/tmp/{filename}"
495
+ dashboard_path = f"./tmp/{filename}"
496
496
  with open(dashboard_path, "w") as f:
497
497
  f.write(dashboard_content)
498
498
 
@@ -231,7 +231,7 @@ class TestVPCNetworkingConfig:
231
231
  "DEFAULT_ANALYSIS_DAYS": "45",
232
232
  "FORECAST_DAYS": "120",
233
233
  "OUTPUT_FORMAT": "json",
234
- "OUTPUT_DIR": "/tmp/vpc-exports",
234
+ "OUTPUT_DIR": "./tmp/vpc-exports",
235
235
  "ENABLE_COST_APPROVAL_WORKFLOW": "false",
236
236
  "ENABLE_MCP_VALIDATION": "true",
237
237
  }
@@ -247,7 +247,7 @@ class TestVPCNetworkingConfig:
247
247
  assert config.default_analysis_days == 45
248
248
  assert config.forecast_days == 120
249
249
  assert config.default_output_format == "json"
250
- assert str(config.default_output_dir) == "/tmp/vpc-exports"
250
+ assert str(config.default_output_dir) == "./tmp/vpc-exports"
251
251
  assert config.enable_cost_approval_workflow is False
252
252
  assert config.enable_mcp_validation is True
253
253
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runbooks
3
- Version: 0.9.6
3
+ Version: 0.9.7
4
4
  Summary: CloudOps Automation Toolkit with Enhanced Cloud Foundations Assessment for DevOps and SRE teams.
5
5
  Author-email: Maintainers <nnthanh101@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -1,9 +1,11 @@
1
1
  conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
2
- runbooks/__init__.py,sha256=aqPOk1xo4uEUhg8nucZ8wN0A9CsQ4vvSuamcDi7xEKo,4983
2
+ runbooks/__init__.py,sha256=rPUBLGrStIhoYg6DWJHFKXsoafu6_ZEAAOOxhbCoVxY,4983
3
3
  runbooks/__main__.py,sha256=0hTPUA9KkLm_H_COqaIpNzXvC4Lv5b_XYYBV6fUFDrM,241
4
4
  runbooks/base.py,sha256=a4jdiMeMWfJtOnYBlZ99Imzc1sdHCgyOXYhxUges7O8,11742
5
5
  runbooks/config.py,sha256=63Bct1jASQG3mjPTNnzfJwTMgXzG8aQqVsaku6ugZR0,7839
6
- runbooks/main.py,sha256=Dm9u-DQGymFHGUTR-lfJy79EA98BRgC2XaUGfKJ_6Kk,311800
6
+ runbooks/main.py,sha256=VAq1iC5xEOcmtUHHkETKjt23SKG0-qZPvwF0EyK77q0,333386
7
+ runbooks/_platform/__init__.py,sha256=86Y-f3Klzj8hpdvxxQyVXsm6ARevKsxnGoc6YjSqbUE,519
8
+ runbooks/_platform/core/runbooks_wrapper.py,sha256=bmOqZY3scxgVpIpca2ZdpVAAIGv2XpugRsHiGcXL-Og,18937
7
9
  runbooks/cfat/README.md,sha256=vDOJykrHDk8tBCw_PbWn27XvZXSmkv2sCknmlNaM9OY,11853
8
10
  runbooks/cfat/__init__.py,sha256=lxoBHV8KS5vXz6LBUh3tW6Bs4PQ7GpEcllb2v835rlI,2142
9
11
  runbooks/cfat/app.ts,sha256=EwpA9bQzkoH1qqTJ_Tco47PwVG2zTv4g8ZmEGYpWYlU,27785
@@ -70,9 +72,9 @@ runbooks/cfat/tests/test_models.py,sha256=16Dcdty82_yotJ2ngBbgydCy9BDamxtMZrs4a1
70
72
  runbooks/cfat/tests/test_reporting.py,sha256=ysPZSAFgCQ7oIkOdBxUrlCiyZBhWDpcnp0I2cv3k9_Q,12631
71
73
  runbooks/cloudops/__init__.py,sha256=YFC0DjjlW1D0W5KBqyKuPPz8gBQsCmrB-zy_8sTKBkE,5348
72
74
  runbooks/cloudops/base.py,sha256=DuiWkISty3-cUY_gvIW_TvTnYZwB9t16QrcQaWctPnQ,14736
73
- runbooks/cloudops/cost_optimizer.py,sha256=25G-E-nt11FeVDoPgE_ar38R8KKrcN9fstGfy9MEWok,32992
75
+ runbooks/cloudops/cost_optimizer.py,sha256=znnvruTwksZz2eMvKG4yLxRLF83kh9M6n9lLxj5ZlEU,48252
74
76
  runbooks/cloudops/infrastructure_optimizer.py,sha256=fUi6tAsiYyrp1dGx8gG7g8g49aoEmotKW1DW9Gvtnw0,1077
75
- runbooks/cloudops/interfaces.py,sha256=pUOJ6mwOjnYEyDYrp8V4PvgwR7xMF_AOdqOtc5RwcuM,32653
77
+ runbooks/cloudops/interfaces.py,sha256=gTlpf0uc6IHecrNPFO6GM7ViXQ6yTRWoMynbU_2y_1o,32656
76
78
  runbooks/cloudops/lifecycle_manager.py,sha256=ppaoR9BugGzH88a91cUhhIPopwFPBbLWoFWaQDG4pdA,1084
77
79
  runbooks/cloudops/mcp_cost_validation.py,sha256=RK_4pN1y_nkGeEGkF-lgYnNyDbbRSsPV272wB-Riy1Y,30172
78
80
  runbooks/cloudops/models.py,sha256=jZ2PnNJGJfOnZyfAVfaYspQaoYQ6TOk-pELJqFbrVac,12196
@@ -100,32 +102,43 @@ runbooks/enterprise/error_handling.py,sha256=0rorz2L3nWl3xMDMiEMgNj8CvM7efABnEIz
100
102
  runbooks/enterprise/logging.py,sha256=-Qau52mLjryFo8r9PzsHbfkbfBsFom1ndEIvy7ItFEY,31728
101
103
  runbooks/enterprise/multi_tenant.py,sha256=NDcPL0H5V2ELpHoswbJosyDxalARPngevn74wPnRZtA,23560
102
104
  runbooks/feedback/user_feedback_collector.py,sha256=P0lcJN82wta73kNStBVGwNrc3R_Sng_MPNcpaHwojKI,16461
103
- runbooks/finops/README.md,sha256=AJrpoQqtYo8JbmfYJmNFpxTGFCtdvLyP5t-RJSeGAlg,13127
105
+ runbooks/finops/README.md,sha256=0e08guT3r6TLY-nF9qnGllFDQpA_frqdURSwl7f8W8M,13128
104
106
  runbooks/finops/__init__.py,sha256=QChg1sByI0iwuzE5q6N2WrC4eFzXIkWjzTsMFbKEppo,4469
105
107
  runbooks/finops/account_resolver.py,sha256=AiDQiqyU0bWrgQHuVjBBwE_qjqCaLUo20oD28FkvnN0,9475
106
108
  runbooks/finops/accuracy_cross_validator.py,sha256=1IBtJ5Q_Re9_c90nC62ApkZ11LtKWrn4ouni3Vg1PEE,25758
109
+ runbooks/finops/automation_core.py,sha256=S3ZvvhwBDJzKot3EaC8asZN_-aApL_ChrZnjY0OB4JU,30788
107
110
  runbooks/finops/aws_client.py,sha256=TSWNQWn-22R0gleyslMwKhU1Jc_cg3Q-FPBZWa0n3RI,41647
108
111
  runbooks/finops/budget_integration.py,sha256=Sg_FFq5vU8RBaF3yAJUnnFyLbfGSacRZfGYyW2sx4kE,12915
109
- runbooks/finops/business_cases.py,sha256=1BBdTNRqdhmuE4nAxhQxnbUVGnXoY8ZK65TWY1kdu2U,21187
110
- runbooks/finops/cli.py,sha256=qlrXQTiXVT9LJkXsoBueg3lClBzsb3HWw0De1hUZbf0,10135
112
+ runbooks/finops/business_cases.py,sha256=v-sGH8I7yyYcIwd8cTWsuYFouFxd8I7PspEcx9bNRcg,39327
113
+ runbooks/finops/cli.py,sha256=pAcXUQXQ3SdatmqfQRJjge1MSzNWM6PqtXXMvNa4OGw,10913
111
114
  runbooks/finops/commvault_ec2_analysis.py,sha256=aX5uScOAm-sGRvA5Z3E4IC1Lf0p6dHilAd_bbUCUUSs,17893
115
+ runbooks/finops/compute_cost_optimizer.py,sha256=GzC9TAZs2I-7JDK13ebnOV_y58GzUFnKo6HGTwcYdNs,40511
112
116
  runbooks/finops/cost_optimizer.py,sha256=MNuTQj4FFz1nsl8LolXIfzyaXpabHoClDpXpa7UCYgA,52416
113
117
  runbooks/finops/cost_processor.py,sha256=YPXlIGonraynHpB-NpkF-YLkK_n_fy13J5OlgdjK4LU,53907
114
118
  runbooks/finops/dashboard_router.py,sha256=zxSMWZupIBR4hMrk4jASdv8rEThmb6qfpIAM6ddZ6Q4,43495
115
119
  runbooks/finops/dashboard_runner.py,sha256=2nw55L0ZpDnBpeg0-n28Qfs7CNfi14HQkY4E8uVK77A,94754
116
- runbooks/finops/embedded_mcp_validator.py,sha256=TjH8Sz3wlXC7YKwo9w03xZ2nZwyGaHNm25iES_Ebrmo,27639
120
+ runbooks/finops/ebs_cost_optimizer.py,sha256=SoE3ySa7xpOee4Zs4_vmf5N7uZJ3HX2_kiAPF4fxDgQ,31957
121
+ runbooks/finops/ebs_optimizer.py,sha256=vInSHPzAbl3s2iLqs1gq452Dz6OtkwicXD8-8hAMY0Q,43336
122
+ runbooks/finops/elastic_ip_optimizer.py,sha256=68c6Yupa0U0HZrhdr6kv-POPsDX_9vHRd2gvfTuYCww,32315
123
+ runbooks/finops/embedded_mcp_validator.py,sha256=0G6bRNvbCpiD-7rNMWXmIgbr1Vx4cDyx52P59boNHS4,45160
117
124
  runbooks/finops/enhanced_dashboard_runner.py,sha256=uR8PF7ebvmVGUHUJ71WDvcmojmIs7STAb7tnbhBqPIk,21148
118
125
  runbooks/finops/enhanced_progress.py,sha256=LisYm-akB1W7zDW2ulMrxJxjNPqSjMG9kObCpHYwO-A,11389
119
126
  runbooks/finops/enhanced_trend_visualization.py,sha256=tF7hGZbN8ieh1cW2W86-6yBMMgT0JNDcaUvgRTHslpA,16127
127
+ runbooks/finops/enterprise_wrappers.py,sha256=M_lCd5zdABvBVnRlZF6YrAvfC9MsIpgiUhL0bcexG2k,33813
120
128
  runbooks/finops/finops_dashboard.py,sha256=uO96CFDMflGAOGc_KrmtOnXk2iyEExDJxS65qH6D0qc,9647
121
129
  runbooks/finops/finops_scenarios.py,sha256=lnPqaRyQMQ6l1k0nwQookTlXoneL409G5jADMKXNbk4,50732
122
130
  runbooks/finops/helpers.py,sha256=-8QtOwkQVRkbYS6kg65DMKJpdhx9EQjpcoIOlt5ANmI,51599
123
131
  runbooks/finops/iam_guidance.py,sha256=YnaWywIHDsSYJwj34Jk0WKFNpNnDruPx5B4NmNzoRNA,19925
132
+ runbooks/finops/legacy_migration.py,sha256=QkuVsGwkH4IkXoGbmQ7jUspAXLi4FYkZedC1vOHB-o8,31430
124
133
  runbooks/finops/main.py,sha256=W0Lnr3GJN7Tp4QL0x09GROOc7fnttpdRmd3N3T5eULo,288
125
134
  runbooks/finops/markdown_exporter.py,sha256=2SE2kSINFFTKelHZLz_ukuV6tl9XRt-BzIXGdfCxTko,18177
126
135
  runbooks/finops/multi_dashboard.py,sha256=J0E0WTG_xC9Ch8vUFXRXE3aBwf7H5t9xrFfmkyLms9U,73474
136
+ runbooks/finops/nat_gateway_optimizer.py,sha256=WBfYhyXQ5R5F0LpiNghlEuY1-JgJoMDD6BQzgCUPrl0,55587
137
+ runbooks/finops/network_cost_optimizer.py,sha256=1XFrcuyuZXu1OBYufJhSHD5KC0AjKT97bbsskAenAA8,66743
138
+ runbooks/finops/notebook_utils.py,sha256=dhH7boTXO9EH10kPMdmSXDBOCUXupi1WU-wp83atzY8,29725
127
139
  runbooks/finops/optimizer.py,sha256=UcxZi5jj_wEvYdrC9FLcj10rRgKxHlnuGxRdFyv8rWg,36221
128
140
  runbooks/finops/profile_processor.py,sha256=2GmwDbzy0b5tpQaF-DzxrcRVJsrpVIBt2KdiH1ZRQ68,6241
141
+ runbooks/finops/reservation_optimizer.py,sha256=jaJrXlkN1HR7XHKqmzqCQbh0VLu7DgjJ6Z4RLJKB9go,45875
129
142
  runbooks/finops/runbooks.inventory.organizations_discovery.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
143
  runbooks/finops/runbooks.security.report_generator.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
144
  runbooks/finops/runbooks.security.run_script.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -135,8 +148,9 @@ runbooks/finops/schemas.py,sha256=YvW758e0b3RdWFNg8jgRXqaC2h7ScIHcgwq9nTpFNHo,23
135
148
  runbooks/finops/service_mapping.py,sha256=uThjqTEGwkPGWitWxHLjcYPj5KsvjYuReSDlf31tKOI,6543
136
149
  runbooks/finops/single_dashboard.py,sha256=OP8KA3fOIOzis79r3yFiJwfHiErJ2afjSeynLjTFXqI,50118
137
150
  runbooks/finops/types.py,sha256=17CVLQysbwDiWKi2iXjtz7n8SLZUxRtG1JMthfARJ8I,3317
151
+ runbooks/finops/validation_framework.py,sha256=PnP5U-BYSXPnZI26AOgWo3PnFXGTwRa5-GK1fCdJV3g,31751
138
152
  runbooks/finops/visualisations.py,sha256=BI6cBsKSNUcjqnEukMzHxZzqyv12w3TRj2zvN53-Rbk,2737
139
- runbooks/finops/workspaces_analyzer.py,sha256=c0w3bjIV2VTAQYAtQVG7sN8NeC2Mr74M3CjYY5DGy-I,22694
153
+ runbooks/finops/workspaces_analyzer.py,sha256=9hxwlNkIiabhGjJumAulvN20KKPXajMQRF_yWkFS6sk,22695
140
154
  runbooks/finops/tests/__init__.py,sha256=MFqn-e57ft0Dsmdi89vO7jrCV4wkmMNYDtyTrSbx0Jo,583
141
155
  runbooks/finops/tests/results_test_finops_dashboard.xml,sha256=JBoeWtVweUH5EZ15qnLQ_KfQVTR9fhNkZrfY3PCjZQI,4504
142
156
  runbooks/finops/tests/run_comprehensive_tests.py,sha256=EbgU4Z30pTnPLUX-I4Yyrl4xXZFyeTV3DzYawN6OP2M,15866
@@ -152,7 +166,7 @@ runbooks/hitl/enhanced_workflow_engine.py,sha256=V2QRWyd6mpe9-2fIg-cb12hTjaKYeSd
152
166
  runbooks/inventory/.gitignore,sha256=qqVQodfb6iNuPRM7fsl7lvqxrJaatKNQqQmX7s1_PPg,5563
153
167
  runbooks/inventory/ArgumentsClass.py,sha256=BwquO-iYZNS_fVxgASrksanzoAN_NPCzRpTAyohRLX0,8621
154
168
  runbooks/inventory/README.md,sha256=fDJvMzc6ITLMyoOvn2-KA7NVxl8-s4aK7L8-PMWOVi8,43927
155
- runbooks/inventory/__init__.py,sha256=ANgBvPKb-shH14uC-y9-LleHUMn9vv7JjHZwKRZ-9Ks,2106
169
+ runbooks/inventory/__init__.py,sha256=ryN9tsERXqE0a1OpzR65NY_oG5jxO5BAVixWT7h-IC8,2337
156
170
  runbooks/inventory/account_class.py,sha256=wvYNeiXHq6tk8Pqa95Aa91zAtuBXcnE51NonzDueuaM,26361
157
171
  runbooks/inventory/all_my_instances_wrapper.py,sha256=B_nHnXOFle6_LU1YnZd38uMZNV6pIONh4EvCyO-lwzw,5723
158
172
  runbooks/inventory/aws_decorators.py,sha256=_3QWqih_J6tgs7_dnJwp7Al7OI0qImZpFMyO4E-bMZE,8605
@@ -195,6 +209,7 @@ runbooks/inventory/list_sns_topics.py,sha256=qn1YlsZtpZSdC7lbFudBZCgW8w8DwUlVpzA
195
209
  runbooks/inventory/list_ssm_parameters.py,sha256=bsKjS-3vm3t9dJuiJprrH8URRXGW5qeKByB-KD9jMRE,20984
196
210
  runbooks/inventory/list_vpc_subnets.py,sha256=HcKjbmU9mydJhC7QQ4f4C4MzRF6pY9xf-gCdE_42DnI,19001
197
211
  runbooks/inventory/list_vpcs.py,sha256=b_54AqH_IgpJ_Qe4VcU-XKmvhfmc5rEJBLWldZw2lF4,18120
212
+ runbooks/inventory/mcp_vpc_validator.py,sha256=Ef_HM8pQIxhshbqINVtPilJiSIi05GsUSOFHSmiQICw,44005
198
213
  runbooks/inventory/organizations_discovery.py,sha256=R0bIxDkXQfuOwtYtINwr2XgYfkbz_X-B6OJhSgP9h3Q,57430
199
214
  runbooks/inventory/recover_cfn_stack_ids.py,sha256=_KgQgDgZRxeyzUb5im6RM-gORZL9WmD03jKpruwp3os,8638
200
215
  runbooks/inventory/requirements.txt,sha256=W8mvfeKf86CfTIeRJyqa978xJ77Cjfh4mlQ3Gb4YrCc,213
@@ -205,6 +220,9 @@ runbooks/inventory/runbooks.security.report_generator.log,sha256=47DEQpj8HBSa-_T
205
220
  runbooks/inventory/runbooks.security.run_script.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
221
  runbooks/inventory/runbooks.security.security_export.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
222
  runbooks/inventory/verify_ec2_security_groups.py,sha256=iFX5AlRJWaU0DP-gwdOrsXc3zNwsRZbjZeyjcn0YMUA,68221
223
+ runbooks/inventory/vpc_analyzer.py,sha256=JbRcrxnXoOuJwaPhXQjlIM-X07kKN62NUx6IqrghsnA,49863
224
+ runbooks/inventory/vpc_architecture_validator.py,sha256=0ukyPQ6K3N1FWp67RdqwhqtsiS0w8tBAaV80HGTXshk,38826
225
+ runbooks/inventory/vpc_dependency_analyzer.py,sha256=FX6gbIJZmL_pR1lBdoj9goBcEhTbzUxOrsmSW4q-Xwo,37133
208
226
  runbooks/inventory/vpc_flow_analyzer.py,sha256=FaBV1YPumuwQs1GrOq6Wu1pYWtLguvMl2OGUZhYw7rM,41447
209
227
  runbooks/inventory/LandingZone/delete_lz.py,sha256=hMwv-T8RTjQQdx9oLelABibFHGD9TFR0xkI_Hgfabw0,48920
210
228
  runbooks/inventory/Tests/common_test_data.py,sha256=M4qRXxYu-WphsJnnumG0P7ENK3OX1Gh2AoCxFN71U4s,180677
@@ -223,7 +241,7 @@ runbooks/inventory/collectors/__init__.py,sha256=gmRyAeXqZt-0KgBD4eh77zQs-dcxpKV
223
241
  runbooks/inventory/collectors/aws_comprehensive.py,sha256=KKfERje9F1_taw_q_m1jiXHxjXiVZ43SxXk3DUXFzsw,16953
224
242
  runbooks/inventory/collectors/aws_compute.py,sha256=MzxNqE1YWRdTVtLyJNNXgWabyvLU1kKoiKpe9Cn0RdU,21018
225
243
  runbooks/inventory/collectors/aws_management.py,sha256=kRB3mxCGXq3TfXlINzdhxIb0sB6CzGoO698JeuyKLWc,32932
226
- runbooks/inventory/collectors/aws_networking.py,sha256=8PbLVWrg_wls5a7NJm59e09WSglPwVGpL5wL48TeDDs,11425
244
+ runbooks/inventory/collectors/aws_networking.py,sha256=usLr9CKS2yOuKDuIDoKpIx0Fj_w0jwjccjrtsyekjKI,27439
227
245
  runbooks/inventory/collectors/base.py,sha256=cOFE-zUOOWYQJPxK0p9lwqPfBopS_bfX_LBrc9qq5TY,7371
228
246
  runbooks/inventory/collectors/enterprise_scale.py,sha256=hsuN3DIbVbBwzLdHeYYPm_uH5AwN_HZRGVIl0RHwrmA,10968
229
247
  runbooks/inventory/core/__init__.py,sha256=kCH8dKMGp3bAYNPQI7OegiQdglV0G1k36gUtAKT6avE,562
@@ -259,7 +277,7 @@ runbooks/operate/s3_operations.py,sha256=LtLipM3BdJNIG-3purXGqkBPNumhRgnKEt417IN
259
277
  runbooks/operate/tagging_operations.py,sha256=UMyiXTly6hy7ZrehalHQmWaAG1lKVW2yviOUFDY7zv8,26228
260
278
  runbooks/operate/tags.json,sha256=-Y77SDvrvn0sCdsxgdRwu0sl0mih2Ib_N6nGi-UtE5U,513
261
279
  runbooks/operate/vpc_endpoints.py,sha256=kNmjRZhOT_JjCHfcc4YEyBdQco4amLluDcf5ePA5KN0,27134
262
- runbooks/operate/vpc_operations.py,sha256=s9lB-G0iL4cuvStKyGAvNP1_FcAzbOc8z_Qu_nusklc,43077
280
+ runbooks/operate/vpc_operations.py,sha256=xQ7dNbHNQXco23YX09GIc4oXYKqpUAaPVkhwWCke4OQ,109096
263
281
  runbooks/remediation/README.md,sha256=8RuAqAvrhw8VLKw1HTUI1H6ZZfk6PMnrQmhEVH9qeJg,14536
264
282
  runbooks/remediation/__init__.py,sha256=JSPav84-avCg7mZPD-dI0_lh12MjE5wKllpzHqxhQws,3490
265
283
  runbooks/remediation/acm_cert_expired_unused.py,sha256=_SfttBHKMBfXNtI1006Ci1dCYDgqhCEGGI5Ua3RvQGk,3541
@@ -272,8 +290,8 @@ runbooks/remediation/cognito_active_users.py,sha256=ZKtludgCL0ufWiWpiodfD8DNRKSi
272
290
  runbooks/remediation/cognito_remediation.py,sha256=VOTTxHu935kwNLFt3zTcEj-5cY2hikifGcydgSF4KXw,36966
273
291
  runbooks/remediation/cognito_user_password_reset.py,sha256=1pBLS9Ccdu8ohflGcbsBI-HLKLbNYsU39sijielAcQk,6902
274
292
  runbooks/remediation/commons.py,sha256=aqhaH1UtZl8zcWCjh8p5jgZNe_3wkWQmAJo5gov9My4,17273
275
- runbooks/remediation/commvault_ec2_analysis.py,sha256=dARr45WG_niz9VI1h2Kfq1xLkrscffuxXgNHFJ268_I,11503
276
- runbooks/remediation/dynamodb_optimize.py,sha256=CKezH6osJlW44kpu47STN0K6Q9EbL69FYr2SmwjcHmw,5987
293
+ runbooks/remediation/commvault_ec2_analysis.py,sha256=34myR7nFwqyJPao-pVG4SgGu2VojTvs9Q-TLryVZCKM,11504
294
+ runbooks/remediation/dynamodb_optimize.py,sha256=8MAeIX9fUejIYH1cKFHD9-me5lB9DoiyPKg4M0SeR4Q,5989
277
295
  runbooks/remediation/dynamodb_remediation.py,sha256=Kcn3jBYmDoWkg5AsKX7fAxbDz-jl1s0kp2iPc96n3Fc,30872
278
296
  runbooks/remediation/dynamodb_server_side_encryption.py,sha256=wnXwRcXzR3dFpcsA-5CjyCvPBixOiflN2H8Rfdp8Wao,3802
279
297
  runbooks/remediation/ec2_public_ips.py,sha256=BcTi7QGihyy5brPa2zJSiqk0fcFYok5YO96B6GrEf68,5331
@@ -286,9 +304,9 @@ runbooks/remediation/kms_remediation.py,sha256=DdxR2WiBey8-M94dV9MPSoGsb27ScuA-U
286
304
  runbooks/remediation/lambda_list.py,sha256=B5dQzg_nWXbuC-h0TuCE1hH26Rsm5jeNkmRZrbYGekM,10925
287
305
  runbooks/remediation/lambda_remediation.py,sha256=WRaQUq0Y40l5_L4lkcyuUN5hZXRVIcVfqbfshAJAnWo,42553
288
306
  runbooks/remediation/multi_account.py,sha256=88mvZwVsPtyiXrlbECBWI5uMe6pL2CLWUS3sdZmegic,22062
289
- runbooks/remediation/rds_instance_list.py,sha256=Nl1Pe1DDBZBl3SDjnY2i51IrcErELgCh2W1EXQyu_Dc,8476
307
+ runbooks/remediation/rds_instance_list.py,sha256=HoDK0UwCT4uAv5RiJ4RxStXspetTPLyDaeXOa_icCwk,8477
290
308
  runbooks/remediation/rds_remediation.py,sha256=bWs7K41GMplArgC_NvUMyboSXljosrIDUtZL0QGWuh0,37069
291
- runbooks/remediation/rds_snapshot_list.py,sha256=4d4VBFeh6zgEjAjwjLpVOUA4F4QM5Z8hOFKnFlAeGJ8,16663
309
+ runbooks/remediation/rds_snapshot_list.py,sha256=u19qM3Nmxm5bhTI2AR4yhjM34KrNR1418cnSlXQPFDs,16664
292
310
  runbooks/remediation/requirements.txt,sha256=xwrVRq4cK8GbX9cwt_8TLLj8kCJHQ06tqBrH_wukMzE,2091
293
311
  runbooks/remediation/s3_block_public_access.py,sha256=nnDnRAdbM7elgl0LfX87avIzogaysawKUv5vDU_rFBs,6331
294
312
  runbooks/remediation/s3_bucket_public_access.py,sha256=eejdaWik_QpWHIMAZSdHWVckJBHL3VkXRBCIDFcVVVI,5533
@@ -302,13 +320,13 @@ runbooks/remediation/s3_object_search.py,sha256=8MnbwVwz2qZ0IK_C_uzMwNCfMnkB24d8
302
320
  runbooks/remediation/s3_remediation.py,sha256=KIy0BOMXUicqbeBcyGP9HBtF_Vu43oFavHWugp05r0I,33014
303
321
  runbooks/remediation/scan_for_phrase.py,sha256=FgTpDXnLg1tdnU6aYTmvOZu9CMjZMsfrZCNOSLqL4P4,18958
304
322
  runbooks/remediation/vpc_remediation.py,sha256=FDLR1oY27WN227kXJnpn1vqf2FtJ_f1ra4RocWxJ6-8,20716
305
- runbooks/remediation/workspaces_list.py,sha256=btHB2QJDXhon1szWRgur3bPo49tPoZsNwShGn6vFIno,16275
323
+ runbooks/remediation/workspaces_list.py,sha256=nP2XKnTp5hjltU2-noU7hj-aoq2jOxNkRbl1p7wTPD0,16277
306
324
  runbooks/remediation/Tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
307
325
  runbooks/remediation/Tests/update_policy.py,sha256=7jb5hMR6jVbCUwzl5MHVqxrIGFN9_2-trIMUV-R7Kls,2999
308
326
  runbooks/security/README.md,sha256=vnpEqKYs9Q9dCLX9tmB-1fZZWk3kOMmEoC29f-WArP8,18572
309
327
  runbooks/security/__init__.py,sha256=AnNXivlCvDjwGuk9gbqBsCgarURFxJDQE3HxJ_PDHjA,10237
310
328
  runbooks/security/cloudops_automation_security_validator.py,sha256=35gc2xGqe0VWxMy06_fwI9oPl9GKAhutOKsMYmrhbIs,48402
311
- runbooks/security/compliance_automation.py,sha256=G4ki4PgUg2_ZBEtB9RI0PfcvmGa7sUrX9HDEyOM1qKU,25669
329
+ runbooks/security/compliance_automation.py,sha256=rQE0zPYWbhh4NxEwqU_U12YFpwt_HyXplv6DtHitKQI,25671
312
330
  runbooks/security/compliance_automation_engine.py,sha256=M-Hfc_WvNEe5ZT7TAYgyc_XO3nygY5DP9PtoskVCf60,39446
313
331
  runbooks/security/config-origin.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
314
332
  runbooks/security/config.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
@@ -374,12 +392,12 @@ runbooks/vpc/rich_formatters.py,sha256=cVENwGPh3VmH7A0t0hkI7ZGOAtonpjm_Qez8lVUDZ
374
392
  runbooks/vpc/tests/__init__.py,sha256=WfLaQO9kiyKfULTIyMJ4nYJ0VV7eWhmBT3LUv9d9C10,96
375
393
  runbooks/vpc/tests/conftest.py,sha256=x5dBjMZ7BbxBI7d4pdhNLWkRod1wlBA4Sm1stv4poJA,11999
376
394
  runbooks/vpc/tests/test_cli_integration.py,sha256=OvsSNd9gFlkzdyDf8tUZGES93TTZR60KECnCpkyGawk,22759
377
- runbooks/vpc/tests/test_config.py,sha256=0JQ4cyxDGC4sVpDS4o2Jo1u93CtivmE4l4igigGOhJA,17482
395
+ runbooks/vpc/tests/test_config.py,sha256=GIX7cFnj7xUxxrYX49mV9hYmx60Dcd_Bu-cpb90oXdE,17484
378
396
  runbooks/vpc/tests/test_cost_engine.py,sha256=UVUj3yg1ir9XVsD4MRdZALPlRFwmhzcuak8x3w-m6-c,20914
379
397
  runbooks/vpc/tests/test_networking_wrapper.py,sha256=gmxnVzQJ-7rTsghzNLmIM-QZo9GUGyIhHqE1g8gkEkw,20623
380
- runbooks-0.9.6.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
381
- runbooks-0.9.6.dist-info/METADATA,sha256=cNeTdOLO4m3NgKAP8BdFdO7_boeBV8SZGMFbJa_qeio,26012
382
- runbooks-0.9.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
383
- runbooks-0.9.6.dist-info/entry_points.txt,sha256=WahHUYcgE2syXEc0MkoUdctLMxs0zjBWi_vWb5dRK8M,295
384
- runbooks-0.9.6.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
385
- runbooks-0.9.6.dist-info/RECORD,,
398
+ runbooks-0.9.7.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
399
+ runbooks-0.9.7.dist-info/METADATA,sha256=htrEw0H7UJLjg4v69kDj4QhMTLWN35Gi_6OTAezqhtg,26012
400
+ runbooks-0.9.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
401
+ runbooks-0.9.7.dist-info/entry_points.txt,sha256=WahHUYcgE2syXEc0MkoUdctLMxs0zjBWi_vWb5dRK8M,295
402
+ runbooks-0.9.7.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
403
+ runbooks-0.9.7.dist-info/RECORD,,