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.
- runbooks/__init__.py +1 -1
- runbooks/_platform/__init__.py +19 -0
- runbooks/_platform/core/runbooks_wrapper.py +478 -0
- runbooks/cloudops/cost_optimizer.py +330 -0
- runbooks/cloudops/interfaces.py +3 -3
- runbooks/finops/README.md +1 -1
- runbooks/finops/automation_core.py +643 -0
- runbooks/finops/business_cases.py +414 -16
- runbooks/finops/cli.py +23 -0
- runbooks/finops/compute_cost_optimizer.py +865 -0
- runbooks/finops/ebs_cost_optimizer.py +718 -0
- runbooks/finops/ebs_optimizer.py +909 -0
- runbooks/finops/elastic_ip_optimizer.py +675 -0
- runbooks/finops/embedded_mcp_validator.py +330 -14
- runbooks/finops/enterprise_wrappers.py +827 -0
- runbooks/finops/legacy_migration.py +730 -0
- runbooks/finops/nat_gateway_optimizer.py +1160 -0
- runbooks/finops/network_cost_optimizer.py +1387 -0
- runbooks/finops/notebook_utils.py +596 -0
- runbooks/finops/reservation_optimizer.py +956 -0
- runbooks/finops/validation_framework.py +753 -0
- runbooks/finops/workspaces_analyzer.py +1 -1
- runbooks/inventory/__init__.py +7 -0
- runbooks/inventory/collectors/aws_networking.py +357 -6
- runbooks/inventory/mcp_vpc_validator.py +1091 -0
- runbooks/inventory/vpc_analyzer.py +1107 -0
- runbooks/inventory/vpc_architecture_validator.py +939 -0
- runbooks/inventory/vpc_dependency_analyzer.py +845 -0
- runbooks/main.py +425 -39
- runbooks/operate/vpc_operations.py +1479 -16
- runbooks/remediation/commvault_ec2_analysis.py +1 -1
- runbooks/remediation/dynamodb_optimize.py +2 -2
- runbooks/remediation/rds_instance_list.py +1 -1
- runbooks/remediation/rds_snapshot_list.py +1 -1
- runbooks/remediation/workspaces_list.py +2 -2
- runbooks/security/compliance_automation.py +2 -2
- runbooks/vpc/tests/test_config.py +2 -2
- {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/METADATA +1 -1
- {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/RECORD +43 -25
- {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/WHEEL +0 -0
- {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/entry_points.txt +0 -0
- {runbooks-0.9.6.dist-info → runbooks-0.9.7.dist-info}/licenses/LICENSE +0 -0
- {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="
|
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="
|
118
|
-
def dynamodb_analyze(apply=False, output="
|
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="
|
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="
|
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="
|
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 = "
|
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"
|
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"
|
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": "
|
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) == "
|
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,9 +1,11 @@
|
|
1
1
|
conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
|
2
|
-
runbooks/__init__.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
110
|
-
runbooks/finops/cli.py,sha256=
|
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/
|
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=
|
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=
|
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=
|
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=
|
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=
|
276
|
-
runbooks/remediation/dynamodb_optimize.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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.
|
381
|
-
runbooks-0.9.
|
382
|
-
runbooks-0.9.
|
383
|
-
runbooks-0.9.
|
384
|
-
runbooks-0.9.
|
385
|
-
runbooks-0.9.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|