runbooks 0.6.1__py3-none-any.whl → 0.7.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. jupyter-agent/.env +2 -0
  2. jupyter-agent/.gradio/certificate.pem +31 -0
  3. jupyter-agent/__main__.log +8 -0
  4. jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb +68 -0
  5. jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb +91 -0
  6. jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb +91 -0
  7. jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb +57 -0
  8. jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb +53 -0
  9. jupyter-agent/tmp/jupyter-agent.ipynb +27 -0
  10. runbooks/__init__.py +87 -37
  11. runbooks/cfat/README.md +300 -49
  12. runbooks/cfat/__init__.py +2 -2
  13. runbooks/finops/README.md +337 -0
  14. runbooks/finops/__init__.py +2 -4
  15. runbooks/finops/cli.py +1 -1
  16. runbooks/inventory/aws_organization.png +0 -0
  17. runbooks/inventory/collectors/__init__.py +8 -0
  18. runbooks/inventory/collectors/aws_management.py +791 -0
  19. runbooks/inventory/collectors/aws_networking.py +3 -3
  20. runbooks/main.py +3416 -590
  21. runbooks/operate/__init__.py +207 -0
  22. runbooks/operate/base.py +311 -0
  23. runbooks/operate/cloudformation_operations.py +619 -0
  24. runbooks/operate/cloudwatch_operations.py +496 -0
  25. runbooks/operate/dynamodb_operations.py +812 -0
  26. runbooks/operate/ec2_operations.py +926 -0
  27. runbooks/operate/iam_operations.py +569 -0
  28. runbooks/operate/s3_operations.py +1211 -0
  29. runbooks/operate/tagging_operations.py +655 -0
  30. runbooks/remediation/CLAUDE.md +100 -0
  31. runbooks/remediation/DOME9.md +218 -0
  32. runbooks/remediation/README.md +26 -0
  33. runbooks/remediation/Tests/update_policy.py +74 -0
  34. runbooks/remediation/__init__.py +95 -0
  35. runbooks/remediation/acm_cert_expired_unused.py +98 -0
  36. runbooks/remediation/acm_remediation.py +875 -0
  37. runbooks/remediation/api_gateway_list.py +167 -0
  38. runbooks/remediation/base.py +643 -0
  39. runbooks/remediation/cloudtrail_remediation.py +908 -0
  40. runbooks/remediation/cloudtrail_s3_modifications.py +296 -0
  41. runbooks/remediation/cognito_active_users.py +78 -0
  42. runbooks/remediation/cognito_remediation.py +856 -0
  43. runbooks/remediation/cognito_user_password_reset.py +163 -0
  44. runbooks/remediation/commons.py +455 -0
  45. runbooks/remediation/dynamodb_optimize.py +155 -0
  46. runbooks/remediation/dynamodb_remediation.py +744 -0
  47. runbooks/remediation/dynamodb_server_side_encryption.py +108 -0
  48. runbooks/remediation/ec2_public_ips.py +134 -0
  49. runbooks/remediation/ec2_remediation.py +892 -0
  50. runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +72 -0
  51. runbooks/remediation/ec2_unattached_ebs_volumes.py +448 -0
  52. runbooks/remediation/ec2_unused_security_groups.py +202 -0
  53. runbooks/remediation/kms_enable_key_rotation.py +651 -0
  54. runbooks/remediation/kms_remediation.py +717 -0
  55. runbooks/remediation/lambda_list.py +243 -0
  56. runbooks/remediation/lambda_remediation.py +971 -0
  57. runbooks/remediation/multi_account.py +569 -0
  58. runbooks/remediation/rds_instance_list.py +199 -0
  59. runbooks/remediation/rds_remediation.py +873 -0
  60. runbooks/remediation/rds_snapshot_list.py +192 -0
  61. runbooks/remediation/requirements.txt +118 -0
  62. runbooks/remediation/s3_block_public_access.py +159 -0
  63. runbooks/remediation/s3_bucket_public_access.py +143 -0
  64. runbooks/remediation/s3_disable_static_website_hosting.py +74 -0
  65. runbooks/remediation/s3_downloader.py +215 -0
  66. runbooks/remediation/s3_enable_access_logging.py +562 -0
  67. runbooks/remediation/s3_encryption.py +526 -0
  68. runbooks/remediation/s3_force_ssl_secure_policy.py +143 -0
  69. runbooks/remediation/s3_list.py +141 -0
  70. runbooks/remediation/s3_object_search.py +201 -0
  71. runbooks/remediation/s3_remediation.py +816 -0
  72. runbooks/remediation/scan_for_phrase.py +425 -0
  73. runbooks/remediation/workspaces_list.py +220 -0
  74. runbooks/{security_baseline → security}/README.md +191 -68
  75. runbooks/security/__init__.py +70 -0
  76. runbooks/{security_baseline → security}/security_baseline_tester.py +5 -3
  77. runbooks-0.7.5.dist-info/METADATA +606 -0
  78. {runbooks-0.6.1.dist-info → runbooks-0.7.5.dist-info}/RECORD +115 -75
  79. {runbooks-0.6.1.dist-info → runbooks-0.7.5.dist-info}/entry_points.txt +0 -1
  80. runbooks/aws/__init__.py +0 -58
  81. runbooks/aws/dynamodb_operations.py +0 -231
  82. runbooks/aws/ec2_copy_image_cross-region.py +0 -195
  83. runbooks/aws/ec2_describe_instances.py +0 -202
  84. runbooks/aws/ec2_ebs_snapshots_delete.py +0 -186
  85. runbooks/aws/ec2_run_instances.py +0 -213
  86. runbooks/aws/ec2_start_stop_instances.py +0 -212
  87. runbooks/aws/ec2_terminate_instances.py +0 -143
  88. runbooks/aws/ec2_unused_eips.py +0 -196
  89. runbooks/aws/ec2_unused_volumes.py +0 -188
  90. runbooks/aws/s3_create_bucket.py +0 -142
  91. runbooks/aws/s3_list_buckets.py +0 -152
  92. runbooks/aws/s3_list_objects.py +0 -156
  93. runbooks/aws/s3_object_operations.py +0 -183
  94. runbooks/aws/tagging_lambda_handler.py +0 -183
  95. runbooks/inventory/cfn_move_stack_instances.py +0 -1526
  96. runbooks/inventory/delete_s3_buckets_objects.py +0 -169
  97. runbooks/inventory/lockdown_cfn_stackset_role.py +0 -224
  98. runbooks/inventory/update_aws_actions.py +0 -173
  99. runbooks/inventory/update_cfn_stacksets.py +0 -1215
  100. runbooks/inventory/update_cloudwatch_logs_retention_policy.py +0 -294
  101. runbooks/inventory/update_iam_roles_cross_accounts.py +0 -478
  102. runbooks/inventory/update_s3_public_access_block.py +0 -539
  103. runbooks/organizations/__init__.py +0 -12
  104. runbooks/organizations/manager.py +0 -374
  105. runbooks/security_baseline/requirements.txt +0 -7
  106. runbooks-0.6.1.dist-info/METADATA +0 -373
  107. /runbooks/{aws → operate}/tags.json +0 -0
  108. /runbooks/{security_baseline → remediation/Tests}/__init__.py +0 -0
  109. /runbooks/{security_baseline → security}/checklist/__init__.py +0 -0
  110. /runbooks/{security_baseline → security}/checklist/account_level_bucket_public_access.py +0 -0
  111. /runbooks/{security_baseline → security}/checklist/alternate_contacts.py +0 -0
  112. /runbooks/{security_baseline → security}/checklist/bucket_public_access.py +0 -0
  113. /runbooks/{security_baseline → security}/checklist/cloudwatch_alarm_configuration.py +0 -0
  114. /runbooks/{security_baseline → security}/checklist/direct_attached_policy.py +0 -0
  115. /runbooks/{security_baseline → security}/checklist/guardduty_enabled.py +0 -0
  116. /runbooks/{security_baseline → security}/checklist/iam_password_policy.py +0 -0
  117. /runbooks/{security_baseline → security}/checklist/iam_user_mfa.py +0 -0
  118. /runbooks/{security_baseline → security}/checklist/multi_region_instance_usage.py +0 -0
  119. /runbooks/{security_baseline → security}/checklist/multi_region_trail.py +0 -0
  120. /runbooks/{security_baseline → security}/checklist/root_access_key.py +0 -0
  121. /runbooks/{security_baseline → security}/checklist/root_mfa.py +0 -0
  122. /runbooks/{security_baseline → security}/checklist/root_usage.py +0 -0
  123. /runbooks/{security_baseline → security}/checklist/trail_enabled.py +0 -0
  124. /runbooks/{security_baseline → security}/checklist/trusted_advisor.py +0 -0
  125. /runbooks/{security_baseline → security}/config-origin.json +0 -0
  126. /runbooks/{security_baseline → security}/config.json +0 -0
  127. /runbooks/{security_baseline → security}/permission.json +0 -0
  128. /runbooks/{security_baseline → security}/report_generator.py +0 -0
  129. /runbooks/{security_baseline → security}/report_template_en.html +0 -0
  130. /runbooks/{security_baseline → security}/report_template_jp.html +0 -0
  131. /runbooks/{security_baseline → security}/report_template_kr.html +0 -0
  132. /runbooks/{security_baseline → security}/report_template_vn.html +0 -0
  133. /runbooks/{security_baseline → security}/run_script.py +0 -0
  134. /runbooks/{security_baseline → security}/utils/__init__.py +0 -0
  135. /runbooks/{security_baseline → security}/utils/common.py +0 -0
  136. /runbooks/{security_baseline → security}/utils/enums.py +0 -0
  137. /runbooks/{security_baseline → security}/utils/language.py +0 -0
  138. /runbooks/{security_baseline → security}/utils/level_const.py +0 -0
  139. /runbooks/{security_baseline → security}/utils/permission_list.py +0 -0
  140. {runbooks-0.6.1.dist-info → runbooks-0.7.5.dist-info}/WHEEL +0 -0
  141. {runbooks-0.6.1.dist-info → runbooks-0.7.5.dist-info}/licenses/LICENSE +0 -0
  142. {runbooks-0.6.1.dist-info → runbooks-0.7.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,337 @@
1
+ # AWS FinOps Dashboard (CLI)
2
+
3
+ The AWS FinOps Dashboard is an open-source, Python-based command-line tool (built with the Rich library) for AWS cost monitoring. It provides multi-account cost summaries by time period, service, and cost allocation tags; budget limits vs. actuals; EC2 instance status; six‑month cost trend charts; and “FinOps audit” reports (e.g. untagged or idle resources). It can export data to CSV/JSON/PDF.
4
+
5
+ ## Why AWS FinOps Dashboard?
6
+
7
+ Managing and understanding your AWS expenditure, especially across multiple accounts and services, can be complex. The AWS FinOps Dashboard CLI aims to simplify this by providing a clear, concise, and actionable view of your AWS costs and operational hygiene directly in your terminal.
8
+
9
+ Key features include:
10
+ * **Unified View:** Consolidate cost and resource data from multiple AWS accounts.
11
+ ![alt text](runbooks finops-v2.2.3.png)
12
+ * **Cost Trend Analysis:** View how your AWS costs have been for the past six months.
13
+ ![alt text](runbooks finops-dashboard_trend.png)
14
+ * **Audit Your AWS Accounts:** Quickly identify spending patterns, untagged resources, underutilised resources and potential savings.
15
+ ![alt text](audit_report.png)
16
+ * **Generate Cost & Audit Reports:** You can generate Cost, Trend and Audit Reports in PDF, CSV & JSON formats for further analysis and reporting purposes.
17
+ ![alt text](audit_report_pdf.png)
18
+ ![alt text](cost_report_pdf.png)
19
+
20
+ ## Table of Contents
21
+
22
+ - [Features](#features)
23
+ - [Prerequisites](#prerequisites)
24
+ - [Installation](#installation)
25
+ - [AWS CLI Profile Setup](#aws-cli-profile-setup)
26
+ - [Command Line Usage](#command-line-usage)
27
+ - [Options](#command-line-options)
28
+ - [Examples](#examples)
29
+ - [Using a Configuration File](#using-a-configuration-file)
30
+ - [TOML Configuration Example (`config.toml`)](#toml-configuration-example-configtoml)
31
+ - [YAML Configuration Example (`config.yaml` or `config.yml`)](#yaml-configuration-example-configyaml-or-configyml)
32
+ - [JSON Configuration Example (`config.json`)](#json-configuration-example-configjson)
33
+ - [Export Formats](#export-formats)
34
+ - [Cost For Every Run](#cost-for-every-run)
35
+ - [Contributing](#contributing)
36
+ - [License](#license)
37
+
38
+ ---
39
+
40
+ ## Features
41
+
42
+ - **Cost Analysis by Time Period**:
43
+ - View current & previous month's spend by default
44
+ - Set custom time ranges (e.g., 7, 30, 90 days) with `--time-range` option
45
+ - **Cost by AWS Service**: Sorted by highest cost for better insights
46
+ - **Cost by Tag**: Get the cost data by one or more tags with `--tag`(cost allocation tags must be enabled)
47
+ - **AWS Budgets Information**: Displays budget limits and actual spend
48
+ - **EC2 Instance Status**: Detailed state information across specified/accessible regions
49
+ - **Cost Trend Analysis**: View detailed cost trends in bar charts for the last 6 months across AWS profiles
50
+ - **FinOps Audit**: View untagged resources, unused or stopped resources, and Budget breaches across AWS profiles.
51
+ - **Profile Management**:
52
+ - Automatic profile detection
53
+ - Specific profile selection with `--profiles`
54
+ - Use all available profiles with `--all`
55
+ - Combine profiles from the same AWS account with `--combine`
56
+ - **Region Control**: Specify regions for EC2 discovery using `--regions`
57
+ - **Export Options**:
58
+ - CSV export with `--report-name` and `--report-type csv`
59
+ - JSON export with `--report-name` and `--report-type json`
60
+ - PDF export with `--report-name` and `--report-type pdf`
61
+ - Export to both CSV and JSON formats with `--report-name` and `--report-type csv json`
62
+ - Specify output directory using `--dir`
63
+ - **Note**: Trend reports (generated via `--trend`) currently only support JSON export. Other formats specified in `--report-type` will be ignored for these reports.
64
+ - **Improved Error Handling**: Resilient and user-friendly error messages
65
+ - **Beautiful Terminal UI**: Styled with the Rich library for a visually appealing experience
66
+
67
+ ---
68
+
69
+ ## Prerequisites
70
+
71
+ - **Python 3.8 or later**: Ensure you have the required Python version installed
72
+ - **AWS CLI configured with named profiles**: Set up your AWS CLI profiles for seamless integration
73
+ - **AWS credentials with permissions**:
74
+ - `ce:GetCostAndUsage`
75
+ - `budgets:ViewBudget`
76
+ - `ec2:DescribeInstances`
77
+ - `ec2:DescribeRegions`
78
+ - `sts:GetCallerIdentity`
79
+ - `ec2:DescribeInstances`
80
+ - `ec2:DescribeVolumes`
81
+ - `ec2:DescribeAddresses`
82
+ - `rds:DescribeDBInstances`
83
+ - `rds:ListTagsForResource`
84
+ - `lambda:ListFunctions`
85
+ - `lambda:ListTags`
86
+ - `elbv2:DescribeLoadBalancers`
87
+ - `elbv2:DescribeTags`
88
+
89
+ ---
90
+
91
+ ## AWS CLI Profile Setup
92
+
93
+ If you haven't already, configure your named profiles using the AWS CLI:
94
+
95
+ ```bash
96
+ aws configure --profile profile1-name
97
+ aws configure --profile profile2-name
98
+ # ... etc ...
99
+ ```
100
+
101
+ Repeat this for all the profiles you want the dashboard to potentially access.
102
+
103
+ ---
104
+
105
+ ## Command Line Usage
106
+
107
+ Run the script using `runbooks finops` followed by options:
108
+
109
+ ```bash
110
+ runbooks finops [options]
111
+ ```
112
+
113
+ ### Command Line Options
114
+
115
+ | Flag | Description |
116
+ |---|---|
117
+ | `--config-file`, `-C` | Path to a TOML, YAML, or JSON configuration file. Command-line arguments will override settings from the config file. |
118
+ | `--profiles`, `-p` | Specific AWS profiles to use (space-separated). If omitted, uses 'default' profile if available, otherwise all profiles. |
119
+ | `--regions`, `-r` | Specific AWS regions to check for EC2 instances (space-separated). If omitted, attempts to check all accessible regions. |
120
+ | `--all`, `-a` | Use all available AWS profiles found in your config. |
121
+ | `--combine`, `-c` | Combine profiles from the same AWS account into single rows. |
122
+ | `--tag`, `-g` | Filter cost data by one or more cost allocation tags in `Key=Value` format. Example: `--tag Team=DevOps Env=Prod` |
123
+ | `--report-name`, `-n` | Specify the base name for the report file (without extension). |
124
+ | `--report-type`, `-y` | Specify report types (space-separated): 'csv', 'json', 'pdf'. For reports generated with `--audit`, only 'pdf' is applicable and other types will be ignored. |
125
+ | `--dir`, `-d` | Directory to save the report file(s) (default: current directory). |
126
+ | `--time-range`, `-t` | Time range for cost data in days (default: current month). Examples: 7, 30, 90. |
127
+ | `--trend` | View cost trend analysis for the last 6 months. |
128
+ | `--audit` | View list of untagged, unused resoruces and budget breaches. |
129
+
130
+ ### Examples
131
+
132
+ ```bash
133
+ # Use default profile, show output in terminal only
134
+ runbooks finops
135
+
136
+ # Use specific profiles 'dev' and 'prod'
137
+ runbooks finops --profiles dev prod
138
+
139
+ # Use all available profiles
140
+ runbooks finops --all
141
+
142
+ # Combine profiles from the same AWS account
143
+ runbooks finops --all --combine
144
+
145
+ # Specify custom regions to check for EC2 instances
146
+ runbooks finops --regions us-east-1 eu-west-1 ap-southeast-2
147
+
148
+ # View cost data for the last 30 days instead of current month
149
+ runbooks finops --time-range 30
150
+
151
+ # View cost data only for a specific tag (e.g., Team=DevOps)
152
+ runbooks finops --tag Team=DevOps
153
+
154
+ # View cost data for multiple tags (e.g., Team=DevOps and Env=Prod)
155
+ runbooks finops --tag Team=Devops Env=Prod
156
+
157
+ # Export data to CSV only
158
+ runbooks finops --all --report-name aws_dashboard_data --report-type csv
159
+
160
+ # Export data to JSON only
161
+ runbooks finops --all --report-name aws_dashboard_data --report-type json
162
+
163
+ # Export data to both CSV and JSON formats simultaneously
164
+ runbooks finops --all --report-name aws_dashboard_data --report-type csv json
165
+
166
+ # Export combined data for 'dev' and 'prod' profiles to a specific directory
167
+ runbooks finops --profiles dev prod --combine --report-name report --report-type csv --dir output_reports
168
+
169
+ # View cost trend analysis as bar charts for profile 'dev' and 'prod'
170
+ runbooks finops --profiles dev prod -r us-east-1 --trend
171
+
172
+ # View cost trend analysis for all cli profiles for a specific cost tag 'Team=DevOps'
173
+ runbooks finops --all --trend --tag Team=DevOps
174
+
175
+ # View audit report for profile 'dev' in region 'us-east-1'
176
+ runbooks finops -p dev -r us-east-1 --audit
177
+
178
+ # View audit report for profile 'dev' in region 'us-east-1' and export it as a pdf file to current working dir with file name 'Dev_Audit_Report'
179
+ runbooks finops -p dev -r us-east-1 --audit -n Dev_Audit_Report -y pdf
180
+
181
+ # Use a configuration file for settings
182
+ runbooks finops --config-file path/to/your_config.toml
183
+ # or
184
+ runbooks finops -C path/to/your_config.yaml
185
+ ```
186
+
187
+ You'll see a live-updating table of your AWS account cost and usage details in the terminal. If export options are specified, a report file will also be generated upon completion.
188
+
189
+ ---
190
+
191
+ ## Using a Configuration File
192
+
193
+ Instead of passing all options via the command line, you can use a configuration file in TOML, YAML, or JSON format. Use the `--config-file` or `-C` option to specify the path to your configuration file.
194
+
195
+ Command-line arguments will always take precedence over settings defined in the configuration file.
196
+
197
+ Below are examples of how to structure your configuration file.
198
+
199
+ ### TOML Configuration Example (`config.toml`)
200
+
201
+ ```toml
202
+ # config.toml
203
+ profiles = ["dev-profile", "prod-profile"]
204
+ regions = ["us-east-1", "eu-west-2"]
205
+ combine = true
206
+ report_name = "monthly_finops_summary"
207
+ report_type = ["csv", "pdf"] # For cost dashboard. For audit, only PDF is used.
208
+ dir = "./reports/runbooks finops" # Defaults to present working directory
209
+ time_range = 30 # Defaults to 30 days
210
+ tag = ["CostCenter=Alpha", "Project=Phoenix"] # Optional
211
+ audit = false # Set to true to run audit report by default
212
+ trend = false # Set to true to run trend report by default
213
+ ```
214
+
215
+ ### YAML Configuration Example (`config.yaml` or `config.yml`)
216
+
217
+ ```yaml
218
+ # config.yaml
219
+ profiles:
220
+ - dev-profile
221
+ - prod-profile
222
+ regions:
223
+ - us-east-1
224
+ - eu-west-2
225
+ combine: true
226
+ report_name: "monthly_finops_summary"
227
+ report_type:
228
+ - csv
229
+ - pdf # For cost dashboard. For audit, only PDF is used.
230
+ dir: "./reports/runbooks finops"
231
+ time_range: 30
232
+ tag:
233
+ - "CostCenter=Alpha"
234
+ - "Project=Phoenix"
235
+ audit: false # Set to true to run audit report by default
236
+ trend: false # Set to true to run trend report by default
237
+ ```
238
+
239
+ ### JSON Configuration Example (`config.json`)
240
+
241
+ ```json
242
+ {
243
+ "profiles": ["dev-profile", "prod-profile"],
244
+ "regions": ["us-east-1", "eu-west-2"],
245
+ "combine": true,
246
+ "report_name": "monthly_finops_summary",
247
+ "report_type": ["csv", "pdf"], /* For cost dashboard. For audit, only PDF is used. */
248
+ "dir": "./reports/runbooks finops",
249
+ "time_range": 30,
250
+ "tag": ["CostCenter=Alpha", "Project=Phoenix"],
251
+ "audit": false, /* Set to true to run audit report by default */
252
+ "trend": false /* Set to true to run trend report by default */
253
+ }
254
+ ```
255
+ ---
256
+
257
+ ## Export Formats
258
+
259
+ ### CSV Output Format
260
+
261
+ When exporting to CSV, a file is generated with the following columns:
262
+
263
+ - `CLI Profile`
264
+ - `AWS Account ID`
265
+ - `Last Month Cost` (or previous period based on time range)
266
+ - `Current Month Cost` (or current period based on time range)
267
+ - `Cost By Service` (Each service and its cost appears on a new line within the cell)
268
+ - `Budget Status` (Each budget's limit and actual spend appears on a new line within the cell)
269
+ - `EC2 Instances` (Each instance state and its count appears on a new line within the cell)
270
+
271
+ **Note:** Due to the multi-line formatting in some cells, it's best viewed in spreadsheet software (like Excel, Google Sheets, LibreOffice Calc) rather than plain text editors.
272
+
273
+ ### JSON Output Format
274
+
275
+ When exporting to JSON, a structured file is generated that includes all dashboard data in a format that's easy to parse programmatically.
276
+
277
+ ### PDF Output Format (for Audit Report)
278
+
279
+ When exporting to PDF, a file is generated with the following columns:
280
+
281
+ - `Profile`
282
+ - `Account ID`
283
+ - `Untagged Resources`
284
+ - `Stopped EC2 Instances`
285
+ - `Unused Volumes`
286
+ - `Unused EIPs`
287
+ - `Budget Alerts`
288
+
289
+ ---
290
+
291
+ ## Cost For Every Run
292
+
293
+ This script makes API calls to AWS, primarily to Cost Explorer, Budgets, EC2, and STS. AWS may charge for Cost Explorer API calls (typically `$0.01` for each API call, check current pricing).
294
+
295
+ The number of API calls depends heavily on the options used:
296
+
297
+ - **Default dashboard when `--audit` or `--trend` flags not used**:
298
+ - It costs you $0.06 for one AWS Profile and $0.03 extra for each AWS profile queried.
299
+ - **Cost Trend dashboard when `--trend` flag is used**:
300
+ - It costs you $0.03 for each AWS profile queried.
301
+ - **Audit Dashboard when `--audit` flag is used**:
302
+ - Free
303
+
304
+ **To minimize API calls and potential costs:**
305
+
306
+ - Use the `--profiles` argument to specify only the profiles you need.
307
+ - Consider using the `--combine` option when working with multiple profiles from the same AWS account.
308
+
309
+ The exact cost per run is usually negligible but depends on the scale of your usage and AWS pricing.
310
+
311
+ ---
312
+
313
+ ## Contributing
314
+
315
+ Contributions are welcome! Feel free to fork and improve the project.
316
+
317
+ ### Development Setup with pip
318
+
319
+ ```bash
320
+ # cd src/runbooks/finops
321
+
322
+ ## Run the tool
323
+ runbooks finops --help
324
+ ```
325
+
326
+ ### Development Setup with uv
327
+
328
+ `uv` provides a much faster development environment setup:
329
+
330
+ ```bash
331
+ # cd src/runbooks/finops
332
+
333
+ # Run the tool
334
+ runbooks finops
335
+ ```
336
+
337
+ ---
@@ -12,7 +12,7 @@ This module provides terminal-based AWS cost monitoring with features including:
12
12
  Integrated as a submodule of CloudOps Runbooks for enterprise FinOps automation.
13
13
  """
14
14
 
15
- __version__ = "0.7.0"
15
+ __version__ = "0.7.5"
16
16
 
17
17
  # Core components
18
18
  # AWS client utilities
@@ -29,15 +29,13 @@ from runbooks.finops.aws_client import (
29
29
  )
30
30
 
31
31
  # Data processors
32
- from runbooks.finops.cost_processor import get_cost_data, get_trend
32
+ from runbooks.finops.cost_processor import export_to_csv, export_to_json, get_cost_data, get_trend
33
33
  from runbooks.finops.dashboard_runner import run_dashboard
34
34
  from runbooks.finops.helpers import (
35
35
  export_audit_report_to_csv,
36
36
  export_audit_report_to_json,
37
37
  export_audit_report_to_pdf,
38
38
  export_cost_dashboard_to_pdf,
39
- export_to_csv,
40
- export_to_json,
41
39
  export_trend_data_to_json,
42
40
  load_config_file,
43
41
  )
runbooks/finops/cli.py CHANGED
@@ -10,7 +10,7 @@ from runbooks.finops.helpers import load_config_file
10
10
 
11
11
  console = Console()
12
12
 
13
- __version__ = "0.7.0"
13
+ __version__ = "0.7.5"
14
14
 
15
15
 
16
16
  def welcome_banner() -> None:
Binary file
@@ -13,8 +13,16 @@ Categories:
13
13
  - aws_management: CloudFormation, Organizations, Control Tower, SSM
14
14
  """
15
15
 
16
+ from runbooks.inventory.collectors.aws_compute import ComputeResourceCollector
17
+ from runbooks.inventory.collectors.aws_management import ManagementResourceCollector, OrganizationsManager
18
+ from runbooks.inventory.collectors.aws_networking import SubnetCollector, VPCCollector
16
19
  from runbooks.inventory.collectors.base import BaseResourceCollector
17
20
 
18
21
  __all__ = [
19
22
  "BaseResourceCollector",
23
+ "ComputeResourceCollector",
24
+ "VPCCollector",
25
+ "SubnetCollector",
26
+ "ManagementResourceCollector",
27
+ "OrganizationsManager",
20
28
  ]