runbooks 0.9.4__py3-none-any.whl → 0.9.6__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.
@@ -1,9 +1,10 @@
1
1
  """
2
- RDS Snapshot Analysis - Analyze RDS snapshots for lifecycle management and cost optimization.
2
+ RDS Snapshot Lifecycle Analysis - Storage cost optimization and lifecycle management.
3
3
 
4
- JIRA AWSO-23: Enhanced RDS snapshots analysis with cost calculation for $5K-24K annual savings
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
@@ -36,7 +37,7 @@ def estimate_snapshot_cost(allocated_storage, storage_type="gp2", days_old=1):
36
37
  """
37
38
  Estimate monthly snapshot storage cost with enhanced accuracy.
38
39
 
39
- JIRA AWSO-23: Enhanced cost estimation for $5K-24K annual savings target
40
+ JIRA FinOps-23: Enhanced cost estimation for $5K-24K annual savings target
40
41
  Based on AWS RDS snapshot pricing: https://aws.amazon.com/rds/pricing/
41
42
  """
42
43
  # RDS Snapshot storage cost per GB per month (USD)
@@ -57,7 +58,7 @@ def calculate_manual_snapshot_savings(snapshots_data: List[Dict]) -> Dict[str, f
57
58
  """
58
59
  Calculate potential savings from manual snapshot cleanup.
59
60
 
60
- JIRA AWSO-23: Focuses on 89 manual snapshots for cost optimization
61
+ JIRA FinOps-23: Focuses on 89 manual snapshots for cost optimization
61
62
  """
62
63
  manual_snapshots = [s for s in snapshots_data if s.get("SnapshotType", "").lower() == "manual"]
63
64
 
@@ -89,7 +90,7 @@ def calculate_manual_snapshot_savings(snapshots_data: List[Dict]) -> Dict[str, f
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)")
92
- @click.option("--manual-only", is_flag=True, help="Focus on manual snapshots only (JIRA AWSO-23)")
93
+ @click.option("--manual-only", is_flag=True, help="Focus on manual snapshots only (JIRA FinOps-23)")
93
94
  @click.option("--older-than", default=90, help="Focus on snapshots older than X days")
94
95
  @click.option("--calculate-savings", is_flag=True, help="Calculate detailed cost savings analysis")
95
96
  @click.option("--analyze", is_flag=True, help="Perform comprehensive cost analysis")
@@ -97,7 +98,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
97
98
  """
98
99
  Analyze RDS snapshots for lifecycle management and cost optimization.
99
100
 
100
- JIRA AWSO-23: Enhanced RDS snapshots analysis for $5K-24K annual savings
101
+ JIRA FinOps-23: Enhanced RDS snapshots analysis for $5K-24K annual savings
101
102
  Focus on 89 manual snapshots causing storage costs and operational clutter
102
103
  """
103
104
  print_header("RDS Snapshot Cost Optimization Analysis", "v0.9.1")
@@ -123,7 +124,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
123
124
  if manual_only:
124
125
  original_count = len(snapshots)
125
126
  snapshots = [s for s in snapshots if s.get("SnapshotType", "").lower() == "manual"]
126
- console.print(f"[dim]JIRA AWSO-23 Filter: {len(snapshots)} manual snapshots (from {original_count} total)[/dim]")
127
+ console.print(f"[dim]JIRA FinOps-23 Filter: {len(snapshots)} manual snapshots (from {original_count} total)[/dim]")
127
128
 
128
129
  if snapshot_type:
129
130
  original_count = len(snapshots)
@@ -174,7 +175,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
174
175
  "AvailabilityZone": snapshot.get("AvailabilityZone", "Unknown"),
175
176
  }
176
177
 
177
- # Enhanced cost analysis (JIRA AWSO-23)
178
+ # Enhanced cost analysis (JIRA FinOps-23)
178
179
  estimated_cost = 0.0
179
180
  if include_cost or calculate_savings or analyze:
180
181
  if allocated_storage > 0:
@@ -198,7 +199,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
198
199
 
199
200
  total_storage += allocated_storage
200
201
 
201
- # Enhanced cleanup recommendations (JIRA AWSO-23)
202
+ # Enhanced cleanup recommendations (JIRA FinOps-23)
202
203
  recommendations = []
203
204
  if age_days >= older_than and snap_type.lower() == "manual":
204
205
  recommendations.append(f"HIGH PRIORITY: Manual snapshot >{older_than} days old")
@@ -217,7 +218,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
217
218
  write_to_csv(data, output_file)
218
219
  print_success(f"RDS snapshot analysis exported to: {output_file}")
219
220
 
220
- # Enhanced cost analysis for JIRA AWSO-23
221
+ # Enhanced cost analysis for JIRA FinOps-23
221
222
  if calculate_savings or analyze:
222
223
  savings_analysis = calculate_manual_snapshot_savings(data)
223
224
 
@@ -225,7 +226,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
225
226
  print_header("RDS Snapshot Analysis Summary")
226
227
 
227
228
  summary_table = create_table(
228
- title="RDS Snapshot Cost Analysis - JIRA AWSO-23",
229
+ title="RDS Snapshot Cost Analysis - JIRA FinOps-23",
229
230
  columns=[
230
231
  {"header": "Metric", "style": "cyan"},
231
232
  {"header": "Count", "style": "green bold"},
@@ -268,7 +269,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
268
269
  "Mixed Types"
269
270
  )
270
271
 
271
- # JIRA AWSO-23 specific analysis
272
+ # JIRA FinOps-23 specific analysis
272
273
  if calculate_savings or analyze:
273
274
  summary_table.add_row(
274
275
  f"🎯 Manual >{older_than}d (Cleanup Target)",
@@ -285,7 +286,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
285
286
  high_priority_candidates = [s for s in data if s["AgeDays"] >= older_than and s["SnapshotType"].lower() == "manual"]
286
287
 
287
288
  if high_priority_candidates:
288
- print_warning(f"🎯 JIRA AWSO-23: {len(high_priority_candidates)} high-priority manual snapshots (>{older_than} days):")
289
+ print_warning(f"🎯 JIRA FinOps-23: {len(high_priority_candidates)} high-priority manual snapshots (>{older_than} days):")
289
290
 
290
291
  # Create detailed cleanup candidates table
291
292
  cleanup_table = create_table(
@@ -320,7 +321,7 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
320
321
  else:
321
322
  print_success("✓ No old manual snapshots found")
322
323
 
323
- # Target validation (JIRA AWSO-23: $5K-24K annual savings)
324
+ # Target validation (JIRA FinOps-23: $5K-24K annual savings)
324
325
  if calculate_savings or analyze:
325
326
  target_min_annual = 5000.0
326
327
  target_max_annual = 24000.0
@@ -328,12 +329,12 @@ def get_rds_snapshot_details(output_file, old_days, include_cost, snapshot_type,
328
329
 
329
330
  if actual_savings >= target_min_annual:
330
331
  if actual_savings <= target_max_annual:
331
- print_success(f"🎯 Target Achievement: ${actual_savings:,.0f} within JIRA AWSO-23 range (${target_min_annual:,.0f}-${target_max_annual:,.0f})")
332
+ print_success(f"🎯 Target Achievement: ${actual_savings:,.0f} within JIRA FinOps-23 range (${target_min_annual:,.0f}-${target_max_annual:,.0f})")
332
333
  else:
333
- print_success(f"🎯 Target Exceeded: ${actual_savings:,.0f} exceeds JIRA AWSO-23 maximum target (${target_max_annual:,.0f})")
334
+ print_success(f"🎯 Target Exceeded: ${actual_savings:,.0f} exceeds JIRA FinOps-23 maximum target (${target_max_annual:,.0f})")
334
335
  else:
335
336
  percentage = (actual_savings / target_min_annual) * 100
336
- print_warning(f"📊 Analysis: ${actual_savings:,.0f} is {percentage:.1f}% of JIRA AWSO-23 minimum target (${target_min_annual:,.0f})")
337
+ print_warning(f"📊 Analysis: ${actual_savings:,.0f} is {percentage:.1f}% of JIRA FinOps-23 minimum target (${target_min_annual:,.0f})")
337
338
 
338
339
  # Encryption status
339
340
  encrypted_count = sum(1 for s in data if s["Encrypted"])
@@ -1,7 +1,7 @@
1
1
  """
2
2
  🚨 HIGH-RISK: WorkSpaces Management - Analyze and manage WorkSpaces with deletion capabilities.
3
3
 
4
- JIRA AWSO-24: Enhanced WorkSpaces cleanup with cost calculation for $12,518 annual savings
4
+ JIRA FinOps-24: Enhanced WorkSpaces cleanup with cost calculation for $12,518 annual savings
5
5
  Accounts: 339712777494, 802669565615, 142964829704, 507583929055
6
6
  Types: STANDARD, PERFORMANCE, VALUE in AUTO_STOP mode
7
7
  """
@@ -26,7 +26,7 @@ def calculate_workspace_monthly_cost(workspace_bundle_id: str, running_mode: str
26
26
  """
27
27
  Calculate monthly cost for WorkSpace based on bundle and running mode.
28
28
 
29
- JIRA AWSO-24: Cost calculations for $12,518 annual savings target
29
+ JIRA FinOps-24: Cost calculations for $12,518 annual savings target
30
30
  Based on AWS WorkSpaces pricing: https://aws.amazon.com/workspaces/pricing/
31
31
  """
32
32
  # WorkSpaces pricing by bundle type (monthly USD)
@@ -114,7 +114,7 @@ def get_workspaces(
114
114
  """
115
115
  🚨 HIGH-RISK: Analyze WorkSpaces usage and optionally delete unused ones.
116
116
 
117
- JIRA AWSO-24: Enhanced WorkSpaces cleanup with cost calculation for $12,518 annual savings
117
+ JIRA FinOps-24: Enhanced WorkSpaces cleanup with cost calculation for $12,518 annual savings
118
118
  """
119
119
 
120
120
  print_header("WorkSpaces Cost Optimization Analysis", "v0.9.1")
@@ -198,7 +198,7 @@ def get_workspaces(
198
198
  # Determine if workspace is unused
199
199
  is_unused = last_connection is None or last_connection < unused_threshold
200
200
 
201
- # Calculate cost (JIRA AWSO-24 enhancement)
201
+ # Calculate cost (JIRA FinOps-24 enhancement)
202
202
  monthly_cost = 0.0
203
203
  if calculate_savings or analyze:
204
204
  monthly_cost = calculate_workspace_monthly_cost(bundle_id, running_mode)
@@ -237,7 +237,7 @@ def get_workspaces(
237
237
  print_header("WorkSpaces Analysis Summary")
238
238
 
239
239
  summary_table = create_table(
240
- title="WorkSpaces Cost Analysis - JIRA AWSO-24",
240
+ title="WorkSpaces Cost Analysis - JIRA FinOps-24",
241
241
  columns=[
242
242
  {"header": "Metric", "style": "cyan"},
243
243
  {"header": "Value", "style": "green bold"},
@@ -305,9 +305,9 @@ def get_workspaces(
305
305
  if len(unused_workspaces) > 10:
306
306
  console.print(f"[dim]... and {len(unused_workspaces) - 10} more unused WorkSpaces[/dim]")
307
307
 
308
- # Target validation (JIRA AWSO-24: $12,518 annual savings)
308
+ # Target validation (JIRA FinOps-24: $12,518 annual savings)
309
309
  if calculate_savings or analyze:
310
- target_annual_savings = 12518.0 # JIRA AWSO-24 target
310
+ target_annual_savings = 12518.0 # JIRA FinOps-24 target
311
311
  if potential_savings_annual >= target_annual_savings * 0.8: # 80% of target
312
312
  print_success(f"🎯 Target Achievement: {potential_savings_annual/target_annual_savings*100:.1f}% of $12,518 annual savings target")
313
313
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runbooks
3
- Version: 0.9.4
3
+ Version: 0.9.6
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,5 +1,5 @@
1
1
  conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
2
- runbooks/__init__.py,sha256=HfSMMCV2Xuhjg7Lt4wi-R1-BZzjZvUOl19LuBJo68Hg,4983
2
+ runbooks/__init__.py,sha256=aqPOk1xo4uEUhg8nucZ8wN0A9CsQ4vvSuamcDi7xEKo,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
@@ -94,20 +94,21 @@ runbooks/common/mcp_cost_explorer_integration.py,sha256=pskehv95cbHhHOsKePRknm9o
94
94
  runbooks/common/mcp_integration.py,sha256=qK8iP7scfZTpe3X0OBFFVhpVR5NxTbI7Oz9QPpseN7Y,21156
95
95
  runbooks/common/performance_monitor.py,sha256=Yxc536l8pprPaRAtxs4APTm9ZEwL2XZuEPq0lmcfAr8,14114
96
96
  runbooks/common/profile_utils.py,sha256=Xp2VuDklgurJ889BbqxIvF2T4MHOaDsst0GmRxeEcl4,8229
97
- runbooks/common/rich_utils.py,sha256=kswW5H1FH5i89Ycat_oEPaPQE8moSfVXPZ-sRnUXnv8,33497
97
+ runbooks/common/rich_utils.py,sha256=XqxJSHN_VgX4P00r38SWzZfY0qxc3ETZ-SX4R3xNaIE,33513
98
98
  runbooks/enterprise/__init__.py,sha256=Lcw5CXUTgc3B1PrLH8vZfiQuKyda2GOuiRnWjTD7-tU,1568
99
99
  runbooks/enterprise/error_handling.py,sha256=0rorz2L3nWl3xMDMiEMgNj8CvM7efABnEIzkMEg4B2g,14505
100
100
  runbooks/enterprise/logging.py,sha256=-Qau52mLjryFo8r9PzsHbfkbfBsFom1ndEIvy7ItFEY,31728
101
101
  runbooks/enterprise/multi_tenant.py,sha256=NDcPL0H5V2ELpHoswbJosyDxalARPngevn74wPnRZtA,23560
102
102
  runbooks/feedback/user_feedback_collector.py,sha256=P0lcJN82wta73kNStBVGwNrc3R_Sng_MPNcpaHwojKI,16461
103
103
  runbooks/finops/README.md,sha256=AJrpoQqtYo8JbmfYJmNFpxTGFCtdvLyP5t-RJSeGAlg,13127
104
- runbooks/finops/__init__.py,sha256=__jb0ZNdt-C1ijNS79DcOry_q2a4HsGgx2Q1q6Fa-XE,3011
104
+ runbooks/finops/__init__.py,sha256=QChg1sByI0iwuzE5q6N2WrC4eFzXIkWjzTsMFbKEppo,4469
105
105
  runbooks/finops/account_resolver.py,sha256=AiDQiqyU0bWrgQHuVjBBwE_qjqCaLUo20oD28FkvnN0,9475
106
106
  runbooks/finops/accuracy_cross_validator.py,sha256=1IBtJ5Q_Re9_c90nC62ApkZ11LtKWrn4ouni3Vg1PEE,25758
107
107
  runbooks/finops/aws_client.py,sha256=TSWNQWn-22R0gleyslMwKhU1Jc_cg3Q-FPBZWa0n3RI,41647
108
108
  runbooks/finops/budget_integration.py,sha256=Sg_FFq5vU8RBaF3yAJUnnFyLbfGSacRZfGYyW2sx4kE,12915
109
+ runbooks/finops/business_cases.py,sha256=1BBdTNRqdhmuE4nAxhQxnbUVGnXoY8ZK65TWY1kdu2U,21187
109
110
  runbooks/finops/cli.py,sha256=qlrXQTiXVT9LJkXsoBueg3lClBzsb3HWw0De1hUZbf0,10135
110
- runbooks/finops/commvault_ec2_analysis.py,sha256=VlphS6XzEqKjpxsnglfnOQ5dwW17ENItvhOdWPW1T1Q,17877
111
+ runbooks/finops/commvault_ec2_analysis.py,sha256=aX5uScOAm-sGRvA5Z3E4IC1Lf0p6dHilAd_bbUCUUSs,17893
111
112
  runbooks/finops/cost_optimizer.py,sha256=MNuTQj4FFz1nsl8LolXIfzyaXpabHoClDpXpa7UCYgA,52416
112
113
  runbooks/finops/cost_processor.py,sha256=YPXlIGonraynHpB-NpkF-YLkK_n_fy13J5OlgdjK4LU,53907
113
114
  runbooks/finops/dashboard_router.py,sha256=zxSMWZupIBR4hMrk4jASdv8rEThmb6qfpIAM6ddZ6Q4,43495
@@ -117,8 +118,8 @@ runbooks/finops/enhanced_dashboard_runner.py,sha256=uR8PF7ebvmVGUHUJ71WDvcmojmIs
117
118
  runbooks/finops/enhanced_progress.py,sha256=LisYm-akB1W7zDW2ulMrxJxjNPqSjMG9kObCpHYwO-A,11389
118
119
  runbooks/finops/enhanced_trend_visualization.py,sha256=tF7hGZbN8ieh1cW2W86-6yBMMgT0JNDcaUvgRTHslpA,16127
119
120
  runbooks/finops/finops_dashboard.py,sha256=uO96CFDMflGAOGc_KrmtOnXk2iyEExDJxS65qH6D0qc,9647
120
- runbooks/finops/finops_scenarios.py,sha256=yNXhVTm6X1s-AUhk4_0_nQx4N9iQBKegIDx9MWBB9ek,35062
121
- runbooks/finops/helpers.py,sha256=NMUH3g9y3QGMZtA_Lm51immGJQ2FKz1CuMsSaDEIWk8,45234
121
+ runbooks/finops/finops_scenarios.py,sha256=lnPqaRyQMQ6l1k0nwQookTlXoneL409G5jADMKXNbk4,50732
122
+ runbooks/finops/helpers.py,sha256=-8QtOwkQVRkbYS6kg65DMKJpdhx9EQjpcoIOlt5ANmI,51599
122
123
  runbooks/finops/iam_guidance.py,sha256=YnaWywIHDsSYJwj34Jk0WKFNpNnDruPx5B4NmNzoRNA,19925
123
124
  runbooks/finops/main.py,sha256=W0Lnr3GJN7Tp4QL0x09GROOc7fnttpdRmd3N3T5eULo,288
124
125
  runbooks/finops/markdown_exporter.py,sha256=2SE2kSINFFTKelHZLz_ukuV6tl9XRt-BzIXGdfCxTko,18177
@@ -129,11 +130,13 @@ runbooks/finops/runbooks.inventory.organizations_discovery.log,sha256=47DEQpj8HB
129
130
  runbooks/finops/runbooks.security.report_generator.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
131
  runbooks/finops/runbooks.security.run_script.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
132
  runbooks/finops/runbooks.security.security_export.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
+ runbooks/finops/scenarios.py,sha256=-3YZOXfK0kJhk8vQ63zIP3LQmKrpDtZAjt2fgIkIjNI,36809
132
134
  runbooks/finops/schemas.py,sha256=YvW758e0b3RdWFNg8jgRXqaC2h7ScIHcgwq9nTpFNHo,23423
133
135
  runbooks/finops/service_mapping.py,sha256=uThjqTEGwkPGWitWxHLjcYPj5KsvjYuReSDlf31tKOI,6543
134
136
  runbooks/finops/single_dashboard.py,sha256=OP8KA3fOIOzis79r3yFiJwfHiErJ2afjSeynLjTFXqI,50118
135
137
  runbooks/finops/types.py,sha256=17CVLQysbwDiWKi2iXjtz7n8SLZUxRtG1JMthfARJ8I,3317
136
138
  runbooks/finops/visualisations.py,sha256=BI6cBsKSNUcjqnEukMzHxZzqyv12w3TRj2zvN53-Rbk,2737
139
+ runbooks/finops/workspaces_analyzer.py,sha256=c0w3bjIV2VTAQYAtQVG7sN8NeC2Mr74M3CjYY5DGy-I,22694
137
140
  runbooks/finops/tests/__init__.py,sha256=MFqn-e57ft0Dsmdi89vO7jrCV4wkmMNYDtyTrSbx0Jo,583
138
141
  runbooks/finops/tests/results_test_finops_dashboard.xml,sha256=JBoeWtVweUH5EZ15qnLQ_KfQVTR9fhNkZrfY3PCjZQI,4504
139
142
  runbooks/finops/tests/run_comprehensive_tests.py,sha256=EbgU4Z30pTnPLUX-I4Yyrl4xXZFyeTV3DzYawN6OP2M,15866
@@ -269,7 +272,7 @@ runbooks/remediation/cognito_active_users.py,sha256=ZKtludgCL0ufWiWpiodfD8DNRKSi
269
272
  runbooks/remediation/cognito_remediation.py,sha256=VOTTxHu935kwNLFt3zTcEj-5cY2hikifGcydgSF4KXw,36966
270
273
  runbooks/remediation/cognito_user_password_reset.py,sha256=1pBLS9Ccdu8ohflGcbsBI-HLKLbNYsU39sijielAcQk,6902
271
274
  runbooks/remediation/commons.py,sha256=aqhaH1UtZl8zcWCjh8p5jgZNe_3wkWQmAJo5gov9My4,17273
272
- runbooks/remediation/commvault_ec2_analysis.py,sha256=OJpaddMnkKW83Sv7PtLCyPxPxItDUz9vdweLgS-_bJU,11356
275
+ runbooks/remediation/commvault_ec2_analysis.py,sha256=dARr45WG_niz9VI1h2Kfq1xLkrscffuxXgNHFJ268_I,11503
273
276
  runbooks/remediation/dynamodb_optimize.py,sha256=CKezH6osJlW44kpu47STN0K6Q9EbL69FYr2SmwjcHmw,5987
274
277
  runbooks/remediation/dynamodb_remediation.py,sha256=Kcn3jBYmDoWkg5AsKX7fAxbDz-jl1s0kp2iPc96n3Fc,30872
275
278
  runbooks/remediation/dynamodb_server_side_encryption.py,sha256=wnXwRcXzR3dFpcsA-5CjyCvPBixOiflN2H8Rfdp8Wao,3802
@@ -285,7 +288,7 @@ runbooks/remediation/lambda_remediation.py,sha256=WRaQUq0Y40l5_L4lkcyuUN5hZXRVIc
285
288
  runbooks/remediation/multi_account.py,sha256=88mvZwVsPtyiXrlbECBWI5uMe6pL2CLWUS3sdZmegic,22062
286
289
  runbooks/remediation/rds_instance_list.py,sha256=Nl1Pe1DDBZBl3SDjnY2i51IrcErELgCh2W1EXQyu_Dc,8476
287
290
  runbooks/remediation/rds_remediation.py,sha256=bWs7K41GMplArgC_NvUMyboSXljosrIDUtZL0QGWuh0,37069
288
- runbooks/remediation/rds_snapshot_list.py,sha256=d5gUwPs5m-EyJOrqRdz4w0uVqf5h3jmHfeDC2g4Hs_E,16543
291
+ runbooks/remediation/rds_snapshot_list.py,sha256=4d4VBFeh6zgEjAjwjLpVOUA4F4QM5Z8hOFKnFlAeGJ8,16663
289
292
  runbooks/remediation/requirements.txt,sha256=xwrVRq4cK8GbX9cwt_8TLLj8kCJHQ06tqBrH_wukMzE,2091
290
293
  runbooks/remediation/s3_block_public_access.py,sha256=nnDnRAdbM7elgl0LfX87avIzogaysawKUv5vDU_rFBs,6331
291
294
  runbooks/remediation/s3_bucket_public_access.py,sha256=eejdaWik_QpWHIMAZSdHWVckJBHL3VkXRBCIDFcVVVI,5533
@@ -299,7 +302,7 @@ runbooks/remediation/s3_object_search.py,sha256=8MnbwVwz2qZ0IK_C_uzMwNCfMnkB24d8
299
302
  runbooks/remediation/s3_remediation.py,sha256=KIy0BOMXUicqbeBcyGP9HBtF_Vu43oFavHWugp05r0I,33014
300
303
  runbooks/remediation/scan_for_phrase.py,sha256=FgTpDXnLg1tdnU6aYTmvOZu9CMjZMsfrZCNOSLqL4P4,18958
301
304
  runbooks/remediation/vpc_remediation.py,sha256=FDLR1oY27WN227kXJnpn1vqf2FtJ_f1ra4RocWxJ6-8,20716
302
- runbooks/remediation/workspaces_list.py,sha256=vldD5bp-MQG1-qsC4j2r9z_JZerQ4YzwGspD6f26e7M,16261
305
+ runbooks/remediation/workspaces_list.py,sha256=btHB2QJDXhon1szWRgur3bPo49tPoZsNwShGn6vFIno,16275
303
306
  runbooks/remediation/Tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
304
307
  runbooks/remediation/Tests/update_policy.py,sha256=7jb5hMR6jVbCUwzl5MHVqxrIGFN9_2-trIMUV-R7Kls,2999
305
308
  runbooks/security/README.md,sha256=vnpEqKYs9Q9dCLX9tmB-1fZZWk3kOMmEoC29f-WArP8,18572
@@ -374,9 +377,9 @@ runbooks/vpc/tests/test_cli_integration.py,sha256=OvsSNd9gFlkzdyDf8tUZGES93TTZR6
374
377
  runbooks/vpc/tests/test_config.py,sha256=0JQ4cyxDGC4sVpDS4o2Jo1u93CtivmE4l4igigGOhJA,17482
375
378
  runbooks/vpc/tests/test_cost_engine.py,sha256=UVUj3yg1ir9XVsD4MRdZALPlRFwmhzcuak8x3w-m6-c,20914
376
379
  runbooks/vpc/tests/test_networking_wrapper.py,sha256=gmxnVzQJ-7rTsghzNLmIM-QZo9GUGyIhHqE1g8gkEkw,20623
377
- runbooks-0.9.4.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
378
- runbooks-0.9.4.dist-info/METADATA,sha256=9v42r6zXNDdRqgyMGQqtD2dbqhbnU9gLDZxI0c_lbmw,26012
379
- runbooks-0.9.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
380
- runbooks-0.9.4.dist-info/entry_points.txt,sha256=WahHUYcgE2syXEc0MkoUdctLMxs0zjBWi_vWb5dRK8M,295
381
- runbooks-0.9.4.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
382
- runbooks-0.9.4.dist-info/RECORD,,
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,,