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,53 @@
1
+ {
2
+ "metadata": {
3
+ "kernel_info": {
4
+ "name": "python3"
5
+ },
6
+ "language_info": {
7
+ "name": "python",
8
+ "version": "3.12"
9
+ }
10
+ },
11
+ "nbformat": 4,
12
+ "nbformat_minor": 0,
13
+ "cells": [
14
+ {
15
+ "cell_type": "markdown",
16
+ "metadata": {},
17
+ "source": "<p align=\"center\">\n <img src=\"cloudops-agent.png\" alt=\"Jupyter Agent\" />\n</p>\n\n\n<p style=\"text-align:center;\">Let a LLM agent write and execute code inside a notebook!</p>"
18
+ },
19
+ {
20
+ "cell_type": "markdown",
21
+ "metadata": {},
22
+ "source": "<details>\n <summary style=\"display: flex; align-items: center;\">\n <div class=\"alert alert-block alert-info\" style=\"margin: 0; width: 100%;\">\n <b>System: <span class=\"arrow\">\u25b6</span></b>\n </div>\n </summary>\n <div class=\"alert alert-block alert-info\">\n # Data Science Agent Protocol<br><br>You are an intelligent data science assistant with access to an IPython interpreter. Your primary goal is to solve analytical tasks through careful, iterative exploration and execution of code. You must avoid making assumptions and instead verify everything through code execution.<br><br>## Core Principles<br>1. Always execute code to verify assumptions<br>2. Break down complex problems into smaller steps<br>3. Learn from execution results<br>4. Maintain clear communication about your process<br><br>## Available Packages<br>You have access to these pre-installed packages:<br><br>### Core Data Science<br>- numpy (1.26.4)<br>- pandas (1.5.3)<br>- scipy (1.12.0)<br>- scikit-learn (1.4.1.post1)<br><br>### Visualization<br>- matplotlib (3.9.2)<br>- seaborn (0.13.2)<br>- plotly (5.19.0)<br>- bokeh (3.3.4)<br>- e2b_charts (latest)<br><br>### Image & Signal Processing<br>- opencv-python (4.9.0.80)<br>- pillow (9.5.0)<br>- scikit-image (0.22.0)<br>- imageio (2.34.0)<br><br>### Text & NLP<br>- nltk (3.8.1)<br>- spacy (3.7.4)<br>- gensim (4.3.2)<br>- textblob (0.18.0)<br><br>### Audio Processing<br>- librosa (0.10.1)<br>- soundfile (0.12.1)<br><br>### File Handling<br>- python-docx (1.1.0)<br>- openpyxl (3.1.2)<br>- xlrd (2.0.1)<br><br>### Other Utilities<br>- requests (2.26.0)<br>- beautifulsoup4 (4.12.3)<br>- sympy (1.12)<br>- xarray (2024.2.0)<br>- joblib (1.3.2)<br><br>## Environment Constraints<br>- You cannot install new packages or libraries<br>- Work only with pre-installed packages in the environment<br>- If a solution requires a package that's not available:<br> 1. Check if the task can be solved with base libraries<br> 2. Propose alternative approaches using available packages<br> 3. Inform the user if the task cannot be completed with current limitations<br><br>## Analysis Protocol<br><br>### 1. Initial Assessment<br>- Acknowledge the user's task and explain your high-level approach<br>- List any clarifying questions needed before proceeding<br>- Identify which available files might be relevant from: - <br>- Verify which required packages are available in the environment<br><br>### 2. Data Exploration<br>Execute code to:<br>- Read and validate each relevant file<br>- Determine file formats (CSV, JSON, etc.)<br>- Check basic properties:<br> - Number of rows/records<br> - Column names and data types<br> - Missing values<br> - Basic statistical summaries<br>- Share key insights about the data structure<br><br>### 3. Execution Planning<br>- Based on the exploration results, outline specific steps to solve the task<br>- Break down complex operations into smaller, verifiable steps<br>- Identify potential challenges or edge cases<br><br>### 4. Iterative Solution Development<br>For each step in your plan:<br>- Write and execute code for that specific step<br>- Verify the results meet expectations<br>- Debug and adjust if needed<br>- Document any unexpected findings<br>- Only proceed to the next step after current step is working<br><br>### 5. Result Validation<br>- Verify the solution meets all requirements<br>- Check for edge cases<br>- Ensure results are reproducible<br>- Document any assumptions or limitations<br><br>## Error Handling Protocol<br>When encountering errors:<br>1. Show the error message<br>2. Analyze potential causes<br>3. Propose specific fixes<br>4. Execute modified code<br>5. Verify the fix worked<br>6. Document the solution for future reference<br><br>## Communication Guidelines<br>- Explain your reasoning at each step<br>- Share relevant execution results<br>- Highlight important findings or concerns<br>- Ask for clarification when needed<br>- Provide context for your decisions<br><br>## Code Execution Rules<br>- Execute code through the IPython interpreter directly<br>- Understand that the environment is stateful (like a Jupyter notebook):<br> - Variables and objects from previous executions persist<br> - Reference existing variables instead of recreating them<br> - Only rerun code if variables are no longer in memory or need updating<br>- Don't rewrite or re-execute code unnecessarily:<br> - Use previously computed results when available<br> - Only rewrite code that needs modification<br> - Indicate when you're using existing variables from previous steps<br>- Run code after each significant change<br>- Don't show code blocks without executing them<br>- Verify results before proceeding<br>- Keep code segments focused and manageable<br><br>## Memory Management Guidelines<br>- Track important variables and objects across steps<br>- Clear large objects when they're no longer needed<br>- Inform user about significant objects kept in memory<br>- Consider memory impact when working with large datasets:<br> - Avoid creating unnecessary copies of large data<br> - Use inplace operations when appropriate<br> - Clean up intermediate results that won't be needed later<br><br>## Best Practices<br>- Use descriptive variable names<br>- Include comments for complex operations<br>- Handle errors gracefully<br>- Clean up resources when done<br>- Document any dependencies<br>- Prefer base Python libraries when possible<br>- Verify package availability before using<br>- Leverage existing computations:<br> - Check if required data is already in memory<br> - Reference previous results instead of recomputing<br> - Document which existing variables you're using<br><br>Remember: Verification through execution is always better than assumption!\n </div>\n</details>\n\n<style>\ndetails > summary .arrow {\n display: inline-block;\n transition: transform 0.2s;\n}\ndetails[open] > summary .arrow {\n transform: rotate(90deg);\n}\n</style>\n"
23
+ },
24
+ {
25
+ "cell_type": "markdown",
26
+ "metadata": {},
27
+ "source": "<div class=\"alert alert-block alert-success\">\n<b>User:</b> Solve the Bayes' theorem equation and plot the results.\n</div>\n"
28
+ },
29
+ {
30
+ "cell_type": "code",
31
+ "execution_count": 1,
32
+ "metadata": {},
33
+ "source": "import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the prior probability distribution\ndef prior(theta):\n return np.ones(len(theta)) / len(theta)\n\n# Define the likelihood function\ndef likelihood(theta, x):\n return np.exp(-((theta - x) ** 2) / (2 * 0.1))\n\n# Define the posterior probability distribution using Bayes' theorem\ndef posterior(theta, x):\n prior_prob = prior(theta)\n likelihood_prob = likelihood(theta, x)\n evidence = np.sum(prior_prob * likelihood_prob)\n return likelihood_prob * prior_prob / evidence\n\n# Generate a range of theta values\ntheta = np.linspace(0, 1, 100)\n\n# Calculate the posterior probabilities for different x values\nposterior_probs = []\nfor x in [0.2, 0.5, 0.8]:\n posterior_prob = posterior(theta, x)\n posterior_probs.append(posterior_prob)\n\n# Plot the posterior probability distributions\nplt.plot(theta, posterior_probs[0], label='x=0.2')\nplt.plot(theta, posterior_probs[1], label='x=0.5')\nplt.plot(theta, posterior_probs[2], label='x=0.8')\nplt.xlabel('Theta')\nplt.ylabel('Posterior Probability')\nplt.title('Posterior Probability Distributions')\nplt.legend()\nplt.show()",
34
+ "outputs": [
35
+ {
36
+ "output_type": "display_data",
37
+ "metadata": {},
38
+ "data": {
39
+ "text/plain": [
40
+ "<Figure size 640x480 with 1 Axes>"
41
+ ],
42
+ "image/png": "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"
43
+ }
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "markdown",
49
+ "metadata": {},
50
+ "source": "This code first defines the prior probability distribution, likelihood function, and posterior probability distribution according to Bayes' theorem. It then generates a range of theta values and calculates the posterior probabilities for different x values. Finally, it plots the posterior probability distributions for these x values.\n\nThe resulting plot shows how the posterior probability distribution changes as the observed value x changes. The peak of the posterior distribution represents the most likely value of theta given the observation x. This demonstrates how Bayes' theorem updates our belief about the parameter theta based on new observations."
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "metadata": {
3
+ "kernel_info": {
4
+ "name": "python3"
5
+ },
6
+ "language_info": {
7
+ "name": "python",
8
+ "version": "3.12"
9
+ }
10
+ },
11
+ "nbformat": 4,
12
+ "nbformat_minor": 0,
13
+ "cells": [
14
+ {
15
+ "cell_type": "markdown",
16
+ "metadata": {},
17
+ "source": "<p align=\"center\">\n <img src=\"cloudops-agent.png\" alt=\"Jupyter Agent\" />\n</p>\n\n\n<p style=\"text-align:center;\">Let a LLM agent write and execute code inside a notebook!</p>"
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": null,
22
+ "metadata": {},
23
+ "source": "",
24
+ "outputs": []
25
+ }
26
+ ]
27
+ }
runbooks/__init__.py CHANGED
@@ -1,13 +1,62 @@
1
1
  """
2
- CloudOps Runbooks - Enterprise CloudOps Automation Toolkit
3
-
4
- Provides comprehensive AWS automation capabilities including:
5
- - Cloud Foundations Assessment Tool (CFAT)
6
- - Multi-account resource inventory
7
- - Organization management
8
- - Control Tower automation
9
- - Identity and access management
10
- - Centralized logging setup
2
+ CloudOps Runbooks - Enterprise AWS Automation & Cloud Foundations Toolkit
3
+
4
+ A comprehensive enterprise-grade automation platform for AWS cloud operations,
5
+ designed for CloudOps, DevOps, and SRE teams managing multi-account environments.
6
+
7
+ ## Core Capabilities
8
+
9
+ ### 🔍 Discovery & Assessment
10
+ - **Cloud Foundations Assessment Tool (CFAT)**: Automated AWS environment discovery
11
+ and best practices assessment with actionable remediation guidance
12
+ - **Multi-Account Inventory**: Comprehensive resource discovery across AWS Organizations
13
+ - **Security Baseline Assessment**: Automated security posture evaluation
14
+ - **Cost & Financial Operations**: Resource utilization and cost optimization analysis
15
+
16
+ ### ⚙️ Operations & Automation
17
+ - **AWS Resource Operations**: Enterprise-grade EC2, S3, DynamoDB management
18
+ - **Organization Management**: AWS Organizations structure and account automation
19
+ - **Identity & Access Management**: Cross-account IAM role and policy management
20
+ - **Infrastructure Automation**: CloudFormation, networking, and compliance operations
21
+
22
+ ### 🏛️ Enterprise Features
23
+ - **Multi-Deployment Support**: CLI, Docker, AWS Lambda, Kubernetes ready
24
+ - **Environment Configuration**: Comprehensive environment variable support
25
+ - **Monitoring & Notifications**: SNS integration and operational awareness
26
+ - **KISS Architecture**: Simple, maintainable, no-legacy-complexity design
27
+
28
+ ## Documentation
29
+
30
+ For comprehensive documentation, examples, and best practices:
31
+ https://cloudops.oceansoft.io/cloud-foundation/cfat-assessment-tool.html
32
+
33
+ ## Quick Start
34
+
35
+ ```python
36
+ # Assessment and Discovery
37
+ from runbooks.cfat import AssessmentRunner
38
+ from runbooks.inventory import InventoryCollector
39
+ from runbooks.security import SecurityBaselineTester
40
+
41
+ # Operations and Automation
42
+ from runbooks.operate import EC2Operations, S3Operations, DynamoDBOperations
43
+
44
+ # Assessment
45
+ runner = AssessmentRunner()
46
+ results = runner.run_assessment()
47
+
48
+ # Resource Operations
49
+ ec2_ops = EC2Operations()
50
+ s3_ops = S3Operations()
51
+ ```
52
+
53
+ ## Target Audience
54
+
55
+ - **CloudOps Engineers**: Multi-account AWS environment management
56
+ - **DevOps Teams**: Infrastructure automation and CI/CD integration
57
+ - **Site Reliability Engineers (SRE)**: Operational excellence and monitoring
58
+ - **Security Engineers**: Compliance assessment and remediation
59
+ - **FinOps Practitioners**: Cost optimization and resource governance
11
60
  """
12
61
 
13
62
  from importlib.metadata import PackageNotFoundError
@@ -18,58 +67,59 @@ try:
18
67
  __version__ = _pkg_version("runbooks")
19
68
  except Exception:
20
69
  # Fallback if metadata is unavailable during editable installs
21
- __version__ = "0.6.1"
70
+ __version__ = "0.7.5"
22
71
 
23
72
  # Core module exports
24
73
  from runbooks.config import RunbooksConfig, load_config, save_config
25
74
  from runbooks.utils import ensure_directory, setup_logging, validate_aws_profile
26
75
 
27
- # Cloud Foundations exports - using direct structure
76
+ # Enterprise module exports with graceful degradation
28
77
  try:
78
+ # Assessment and Discovery
29
79
  from runbooks.cfat.runner import AssessmentRunner
80
+ from runbooks.inventory.collectors.aws_management import OrganizationsManager
30
81
  from runbooks.inventory.core.collector import InventoryCollector
31
- from runbooks.organizations.manager import OUManager
32
-
33
- __all__ = [
34
- "__version__",
35
- "setup_logging",
36
- "load_config",
37
- "save_config",
38
- "RunbooksConfig",
82
+ from runbooks.operate.cloudformation_operations import CloudFormationOperations
83
+ from runbooks.operate.cloudwatch_operations import CloudWatchOperations
84
+ from runbooks.operate.dynamodb_operations import DynamoDBOperations
85
+
86
+ # Operations and Automation
87
+ from runbooks.operate.ec2_operations import EC2Operations
88
+ from runbooks.operate.iam_operations import IAMOperations
89
+ from runbooks.operate.s3_operations import S3Operations
90
+ from runbooks.security.security_baseline_tester import SecurityBaselineTester
91
+
92
+ _enterprise_exports = [
39
93
  "AssessmentRunner",
40
94
  "InventoryCollector",
41
- "OUManager",
42
- "ensure_directory",
43
- "validate_aws_profile",
95
+ "OrganizationsManager",
96
+ "SecurityBaselineTester",
97
+ "EC2Operations",
98
+ "S3Operations",
99
+ "DynamoDBOperations",
100
+ "CloudFormationOperations",
101
+ "IAMOperations",
102
+ "CloudWatchOperations",
44
103
  ]
45
104
  except ImportError as e:
46
- # Graceful degradation if dependencies aren't available
47
- __all__ = [
48
- "__version__",
49
- "setup_logging",
50
- "load_config",
51
- "save_config",
52
- "RunbooksConfig",
53
- "ensure_directory",
54
- "validate_aws_profile",
55
- ]
105
+ # Graceful degradation if enterprise dependencies aren't available
106
+ _enterprise_exports = []
56
107
 
57
108
  # FinOps exports
58
109
  from runbooks.finops import get_cost_data, get_trend, run_dashboard
59
110
 
111
+ # Consolidated exports for enterprise CloudOps platform
60
112
  __all__ = [
113
+ # Core utilities
61
114
  "__version__",
62
115
  "setup_logging",
63
116
  "load_config",
64
117
  "save_config",
65
118
  "RunbooksConfig",
66
- "AssessmentRunner",
67
- "InventoryCollector",
68
- "OUManager",
69
119
  "ensure_directory",
70
120
  "validate_aws_profile",
71
- # FinOps
121
+ # FinOps capabilities
72
122
  "run_dashboard",
73
123
  "get_cost_data",
74
124
  "get_trend",
75
- ]
125
+ ] + _enterprise_exports