runbooks 0.9.5__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 +593 -0
- 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 +5 -4
- runbooks/remediation/dynamodb_optimize.py +2 -2
- runbooks/remediation/rds_instance_list.py +1 -1
- runbooks/remediation/rds_snapshot_list.py +5 -4
- 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.5.dist-info → runbooks-0.9.7.dist-info}/METADATA +1 -1
- {runbooks-0.9.5.dist-info → runbooks-0.9.7.dist-info}/RECORD +43 -24
- {runbooks-0.9.5.dist-info → runbooks-0.9.7.dist-info}/WHEEL +0 -0
- {runbooks-0.9.5.dist-info → runbooks-0.9.7.dist-info}/entry_points.txt +0 -0
- {runbooks-0.9.5.dist-info → runbooks-0.9.7.dist-info}/licenses/LICENSE +0 -0
- {runbooks-0.9.5.dist-info → runbooks-0.9.7.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,10 @@
|
|
1
1
|
"""
|
2
|
-
|
2
|
+
EC2 Utilization Analysis - Investigate EC2 utilization patterns for cost optimization.
|
3
3
|
|
4
|
-
|
5
|
-
Account: 637423383469 (
|
4
|
+
Business Case: Enhanced EC2 investigation framework for backup infrastructure analysis
|
5
|
+
Target Account: 637423383469 (Backup infrastructure account)
|
6
6
|
Challenge: Determine if EC2 instances are actively used for backups or idle
|
7
|
+
Strategic Value: Infrastructure right-sizing and cost optimization through utilization analysis
|
7
8
|
"""
|
8
9
|
|
9
10
|
import logging
|
@@ -59,7 +60,7 @@ def calculate_ec2_cost_impact(instances_data: List[Dict]) -> Dict[str, float]:
|
|
59
60
|
|
60
61
|
|
61
62
|
@click.command()
|
62
|
-
@click.option("--output-file", default="
|
63
|
+
@click.option("--output-file", default="./tmp/commvault_ec2_investigation.csv", help="Output CSV file path")
|
63
64
|
@click.option("--account", default="637423383469", help="Commvault backup account ID (JIRA FinOps-25)")
|
64
65
|
@click.option("--investigate-utilization", is_flag=True, help="Investigate EC2 utilization patterns")
|
65
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):
|
@@ -1,9 +1,10 @@
|
|
1
1
|
"""
|
2
|
-
RDS Snapshot Analysis -
|
2
|
+
RDS Snapshot Lifecycle Analysis - Storage cost optimization and lifecycle management.
|
3
3
|
|
4
|
-
|
5
|
-
Accounts: 91893567291, 142964829704, 363435891329, 507583929055
|
4
|
+
Business Case: Enhanced snapshot analysis with cost calculation for $5K-24K annual savings
|
5
|
+
Target Accounts: 91893567291, 142964829704, 363435891329, 507583929055
|
6
6
|
Focus: 89 manual snapshots causing storage costs and operational clutter
|
7
|
+
Strategic Value: Operational cleanup and cost reduction through automated lifecycle management
|
7
8
|
"""
|
8
9
|
|
9
10
|
import logging
|
@@ -85,7 +86,7 @@ def calculate_manual_snapshot_savings(snapshots_data: List[Dict]) -> Dict[str, f
|
|
85
86
|
|
86
87
|
|
87
88
|
@click.command()
|
88
|
-
@click.option("--output-file", default="
|
89
|
+
@click.option("--output-file", default="./tmp/rds_snapshots.csv", help="Output CSV file path")
|
89
90
|
@click.option("--old-days", default=30, help="Days threshold for considering snapshots old")
|
90
91
|
@click.option("--include-cost", is_flag=True, help="Include estimated cost analysis")
|
91
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,7 +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
|
153
|
+
runbooks/finops/workspaces_analyzer.py,sha256=9hxwlNkIiabhGjJumAulvN20KKPXajMQRF_yWkFS6sk,22695
|
139
154
|
runbooks/finops/tests/__init__.py,sha256=MFqn-e57ft0Dsmdi89vO7jrCV4wkmMNYDtyTrSbx0Jo,583
|
140
155
|
runbooks/finops/tests/results_test_finops_dashboard.xml,sha256=JBoeWtVweUH5EZ15qnLQ_KfQVTR9fhNkZrfY3PCjZQI,4504
|
141
156
|
runbooks/finops/tests/run_comprehensive_tests.py,sha256=EbgU4Z30pTnPLUX-I4Yyrl4xXZFyeTV3DzYawN6OP2M,15866
|
@@ -151,7 +166,7 @@ runbooks/hitl/enhanced_workflow_engine.py,sha256=V2QRWyd6mpe9-2fIg-cb12hTjaKYeSd
|
|
151
166
|
runbooks/inventory/.gitignore,sha256=qqVQodfb6iNuPRM7fsl7lvqxrJaatKNQqQmX7s1_PPg,5563
|
152
167
|
runbooks/inventory/ArgumentsClass.py,sha256=BwquO-iYZNS_fVxgASrksanzoAN_NPCzRpTAyohRLX0,8621
|
153
168
|
runbooks/inventory/README.md,sha256=fDJvMzc6ITLMyoOvn2-KA7NVxl8-s4aK7L8-PMWOVi8,43927
|
154
|
-
runbooks/inventory/__init__.py,sha256=
|
169
|
+
runbooks/inventory/__init__.py,sha256=ryN9tsERXqE0a1OpzR65NY_oG5jxO5BAVixWT7h-IC8,2337
|
155
170
|
runbooks/inventory/account_class.py,sha256=wvYNeiXHq6tk8Pqa95Aa91zAtuBXcnE51NonzDueuaM,26361
|
156
171
|
runbooks/inventory/all_my_instances_wrapper.py,sha256=B_nHnXOFle6_LU1YnZd38uMZNV6pIONh4EvCyO-lwzw,5723
|
157
172
|
runbooks/inventory/aws_decorators.py,sha256=_3QWqih_J6tgs7_dnJwp7Al7OI0qImZpFMyO4E-bMZE,8605
|
@@ -194,6 +209,7 @@ runbooks/inventory/list_sns_topics.py,sha256=qn1YlsZtpZSdC7lbFudBZCgW8w8DwUlVpzA
|
|
194
209
|
runbooks/inventory/list_ssm_parameters.py,sha256=bsKjS-3vm3t9dJuiJprrH8URRXGW5qeKByB-KD9jMRE,20984
|
195
210
|
runbooks/inventory/list_vpc_subnets.py,sha256=HcKjbmU9mydJhC7QQ4f4C4MzRF6pY9xf-gCdE_42DnI,19001
|
196
211
|
runbooks/inventory/list_vpcs.py,sha256=b_54AqH_IgpJ_Qe4VcU-XKmvhfmc5rEJBLWldZw2lF4,18120
|
212
|
+
runbooks/inventory/mcp_vpc_validator.py,sha256=Ef_HM8pQIxhshbqINVtPilJiSIi05GsUSOFHSmiQICw,44005
|
197
213
|
runbooks/inventory/organizations_discovery.py,sha256=R0bIxDkXQfuOwtYtINwr2XgYfkbz_X-B6OJhSgP9h3Q,57430
|
198
214
|
runbooks/inventory/recover_cfn_stack_ids.py,sha256=_KgQgDgZRxeyzUb5im6RM-gORZL9WmD03jKpruwp3os,8638
|
199
215
|
runbooks/inventory/requirements.txt,sha256=W8mvfeKf86CfTIeRJyqa978xJ77Cjfh4mlQ3Gb4YrCc,213
|
@@ -204,6 +220,9 @@ runbooks/inventory/runbooks.security.report_generator.log,sha256=47DEQpj8HBSa-_T
|
|
204
220
|
runbooks/inventory/runbooks.security.run_script.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
205
221
|
runbooks/inventory/runbooks.security.security_export.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
206
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
|
207
226
|
runbooks/inventory/vpc_flow_analyzer.py,sha256=FaBV1YPumuwQs1GrOq6Wu1pYWtLguvMl2OGUZhYw7rM,41447
|
208
227
|
runbooks/inventory/LandingZone/delete_lz.py,sha256=hMwv-T8RTjQQdx9oLelABibFHGD9TFR0xkI_Hgfabw0,48920
|
209
228
|
runbooks/inventory/Tests/common_test_data.py,sha256=M4qRXxYu-WphsJnnumG0P7ENK3OX1Gh2AoCxFN71U4s,180677
|
@@ -222,7 +241,7 @@ runbooks/inventory/collectors/__init__.py,sha256=gmRyAeXqZt-0KgBD4eh77zQs-dcxpKV
|
|
222
241
|
runbooks/inventory/collectors/aws_comprehensive.py,sha256=KKfERje9F1_taw_q_m1jiXHxjXiVZ43SxXk3DUXFzsw,16953
|
223
242
|
runbooks/inventory/collectors/aws_compute.py,sha256=MzxNqE1YWRdTVtLyJNNXgWabyvLU1kKoiKpe9Cn0RdU,21018
|
224
243
|
runbooks/inventory/collectors/aws_management.py,sha256=kRB3mxCGXq3TfXlINzdhxIb0sB6CzGoO698JeuyKLWc,32932
|
225
|
-
runbooks/inventory/collectors/aws_networking.py,sha256=
|
244
|
+
runbooks/inventory/collectors/aws_networking.py,sha256=usLr9CKS2yOuKDuIDoKpIx0Fj_w0jwjccjrtsyekjKI,27439
|
226
245
|
runbooks/inventory/collectors/base.py,sha256=cOFE-zUOOWYQJPxK0p9lwqPfBopS_bfX_LBrc9qq5TY,7371
|
227
246
|
runbooks/inventory/collectors/enterprise_scale.py,sha256=hsuN3DIbVbBwzLdHeYYPm_uH5AwN_HZRGVIl0RHwrmA,10968
|
228
247
|
runbooks/inventory/core/__init__.py,sha256=kCH8dKMGp3bAYNPQI7OegiQdglV0G1k36gUtAKT6avE,562
|
@@ -258,7 +277,7 @@ runbooks/operate/s3_operations.py,sha256=LtLipM3BdJNIG-3purXGqkBPNumhRgnKEt417IN
|
|
258
277
|
runbooks/operate/tagging_operations.py,sha256=UMyiXTly6hy7ZrehalHQmWaAG1lKVW2yviOUFDY7zv8,26228
|
259
278
|
runbooks/operate/tags.json,sha256=-Y77SDvrvn0sCdsxgdRwu0sl0mih2Ib_N6nGi-UtE5U,513
|
260
279
|
runbooks/operate/vpc_endpoints.py,sha256=kNmjRZhOT_JjCHfcc4YEyBdQco4amLluDcf5ePA5KN0,27134
|
261
|
-
runbooks/operate/vpc_operations.py,sha256=
|
280
|
+
runbooks/operate/vpc_operations.py,sha256=xQ7dNbHNQXco23YX09GIc4oXYKqpUAaPVkhwWCke4OQ,109096
|
262
281
|
runbooks/remediation/README.md,sha256=8RuAqAvrhw8VLKw1HTUI1H6ZZfk6PMnrQmhEVH9qeJg,14536
|
263
282
|
runbooks/remediation/__init__.py,sha256=JSPav84-avCg7mZPD-dI0_lh12MjE5wKllpzHqxhQws,3490
|
264
283
|
runbooks/remediation/acm_cert_expired_unused.py,sha256=_SfttBHKMBfXNtI1006Ci1dCYDgqhCEGGI5Ua3RvQGk,3541
|
@@ -271,8 +290,8 @@ runbooks/remediation/cognito_active_users.py,sha256=ZKtludgCL0ufWiWpiodfD8DNRKSi
|
|
271
290
|
runbooks/remediation/cognito_remediation.py,sha256=VOTTxHu935kwNLFt3zTcEj-5cY2hikifGcydgSF4KXw,36966
|
272
291
|
runbooks/remediation/cognito_user_password_reset.py,sha256=1pBLS9Ccdu8ohflGcbsBI-HLKLbNYsU39sijielAcQk,6902
|
273
292
|
runbooks/remediation/commons.py,sha256=aqhaH1UtZl8zcWCjh8p5jgZNe_3wkWQmAJo5gov9My4,17273
|
274
|
-
runbooks/remediation/commvault_ec2_analysis.py,sha256=
|
275
|
-
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
|
276
295
|
runbooks/remediation/dynamodb_remediation.py,sha256=Kcn3jBYmDoWkg5AsKX7fAxbDz-jl1s0kp2iPc96n3Fc,30872
|
277
296
|
runbooks/remediation/dynamodb_server_side_encryption.py,sha256=wnXwRcXzR3dFpcsA-5CjyCvPBixOiflN2H8Rfdp8Wao,3802
|
278
297
|
runbooks/remediation/ec2_public_ips.py,sha256=BcTi7QGihyy5brPa2zJSiqk0fcFYok5YO96B6GrEf68,5331
|
@@ -285,9 +304,9 @@ runbooks/remediation/kms_remediation.py,sha256=DdxR2WiBey8-M94dV9MPSoGsb27ScuA-U
|
|
285
304
|
runbooks/remediation/lambda_list.py,sha256=B5dQzg_nWXbuC-h0TuCE1hH26Rsm5jeNkmRZrbYGekM,10925
|
286
305
|
runbooks/remediation/lambda_remediation.py,sha256=WRaQUq0Y40l5_L4lkcyuUN5hZXRVIcVfqbfshAJAnWo,42553
|
287
306
|
runbooks/remediation/multi_account.py,sha256=88mvZwVsPtyiXrlbECBWI5uMe6pL2CLWUS3sdZmegic,22062
|
288
|
-
runbooks/remediation/rds_instance_list.py,sha256=
|
307
|
+
runbooks/remediation/rds_instance_list.py,sha256=HoDK0UwCT4uAv5RiJ4RxStXspetTPLyDaeXOa_icCwk,8477
|
289
308
|
runbooks/remediation/rds_remediation.py,sha256=bWs7K41GMplArgC_NvUMyboSXljosrIDUtZL0QGWuh0,37069
|
290
|
-
runbooks/remediation/rds_snapshot_list.py,sha256=
|
309
|
+
runbooks/remediation/rds_snapshot_list.py,sha256=u19qM3Nmxm5bhTI2AR4yhjM34KrNR1418cnSlXQPFDs,16664
|
291
310
|
runbooks/remediation/requirements.txt,sha256=xwrVRq4cK8GbX9cwt_8TLLj8kCJHQ06tqBrH_wukMzE,2091
|
292
311
|
runbooks/remediation/s3_block_public_access.py,sha256=nnDnRAdbM7elgl0LfX87avIzogaysawKUv5vDU_rFBs,6331
|
293
312
|
runbooks/remediation/s3_bucket_public_access.py,sha256=eejdaWik_QpWHIMAZSdHWVckJBHL3VkXRBCIDFcVVVI,5533
|
@@ -301,13 +320,13 @@ runbooks/remediation/s3_object_search.py,sha256=8MnbwVwz2qZ0IK_C_uzMwNCfMnkB24d8
|
|
301
320
|
runbooks/remediation/s3_remediation.py,sha256=KIy0BOMXUicqbeBcyGP9HBtF_Vu43oFavHWugp05r0I,33014
|
302
321
|
runbooks/remediation/scan_for_phrase.py,sha256=FgTpDXnLg1tdnU6aYTmvOZu9CMjZMsfrZCNOSLqL4P4,18958
|
303
322
|
runbooks/remediation/vpc_remediation.py,sha256=FDLR1oY27WN227kXJnpn1vqf2FtJ_f1ra4RocWxJ6-8,20716
|
304
|
-
runbooks/remediation/workspaces_list.py,sha256=
|
323
|
+
runbooks/remediation/workspaces_list.py,sha256=nP2XKnTp5hjltU2-noU7hj-aoq2jOxNkRbl1p7wTPD0,16277
|
305
324
|
runbooks/remediation/Tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
306
325
|
runbooks/remediation/Tests/update_policy.py,sha256=7jb5hMR6jVbCUwzl5MHVqxrIGFN9_2-trIMUV-R7Kls,2999
|
307
326
|
runbooks/security/README.md,sha256=vnpEqKYs9Q9dCLX9tmB-1fZZWk3kOMmEoC29f-WArP8,18572
|
308
327
|
runbooks/security/__init__.py,sha256=AnNXivlCvDjwGuk9gbqBsCgarURFxJDQE3HxJ_PDHjA,10237
|
309
328
|
runbooks/security/cloudops_automation_security_validator.py,sha256=35gc2xGqe0VWxMy06_fwI9oPl9GKAhutOKsMYmrhbIs,48402
|
310
|
-
runbooks/security/compliance_automation.py,sha256=
|
329
|
+
runbooks/security/compliance_automation.py,sha256=rQE0zPYWbhh4NxEwqU_U12YFpwt_HyXplv6DtHitKQI,25671
|
311
330
|
runbooks/security/compliance_automation_engine.py,sha256=M-Hfc_WvNEe5ZT7TAYgyc_XO3nygY5DP9PtoskVCf60,39446
|
312
331
|
runbooks/security/config-origin.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
|
313
332
|
runbooks/security/config.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
|
@@ -373,12 +392,12 @@ runbooks/vpc/rich_formatters.py,sha256=cVENwGPh3VmH7A0t0hkI7ZGOAtonpjm_Qez8lVUDZ
|
|
373
392
|
runbooks/vpc/tests/__init__.py,sha256=WfLaQO9kiyKfULTIyMJ4nYJ0VV7eWhmBT3LUv9d9C10,96
|
374
393
|
runbooks/vpc/tests/conftest.py,sha256=x5dBjMZ7BbxBI7d4pdhNLWkRod1wlBA4Sm1stv4poJA,11999
|
375
394
|
runbooks/vpc/tests/test_cli_integration.py,sha256=OvsSNd9gFlkzdyDf8tUZGES93TTZR60KECnCpkyGawk,22759
|
376
|
-
runbooks/vpc/tests/test_config.py,sha256=
|
395
|
+
runbooks/vpc/tests/test_config.py,sha256=GIX7cFnj7xUxxrYX49mV9hYmx60Dcd_Bu-cpb90oXdE,17484
|
377
396
|
runbooks/vpc/tests/test_cost_engine.py,sha256=UVUj3yg1ir9XVsD4MRdZALPlRFwmhzcuak8x3w-m6-c,20914
|
378
397
|
runbooks/vpc/tests/test_networking_wrapper.py,sha256=gmxnVzQJ-7rTsghzNLmIM-QZo9GUGyIhHqE1g8gkEkw,20623
|
379
|
-
runbooks-0.9.
|
380
|
-
runbooks-0.9.
|
381
|
-
runbooks-0.9.
|
382
|
-
runbooks-0.9.
|
383
|
-
runbooks-0.9.
|
384
|
-
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
|