runbooks 1.1.7__py3-none-any.whl → 1.1.10__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 (113) hide show
  1. runbooks/__init__.py +1 -1
  2. runbooks/__init___optimized.py +2 -1
  3. runbooks/_platform/__init__.py +1 -1
  4. runbooks/cfat/cli.py +4 -3
  5. runbooks/cfat/cloud_foundations_assessment.py +1 -2
  6. runbooks/cfat/tests/test_cli.py +4 -1
  7. runbooks/cli/commands/finops.py +68 -19
  8. runbooks/cli/commands/inventory.py +838 -14
  9. runbooks/cli/commands/operate.py +65 -4
  10. runbooks/cli/commands/vpc.py +1 -1
  11. runbooks/cloudops/cost_optimizer.py +1 -3
  12. runbooks/common/cli_decorators.py +6 -4
  13. runbooks/common/config_loader.py +787 -0
  14. runbooks/common/config_schema.py +280 -0
  15. runbooks/common/dry_run_framework.py +14 -2
  16. runbooks/common/mcp_integration.py +238 -0
  17. runbooks/finops/ebs_cost_optimizer.py +7 -4
  18. runbooks/finops/elastic_ip_optimizer.py +7 -4
  19. runbooks/finops/infrastructure/__init__.py +3 -2
  20. runbooks/finops/infrastructure/commands.py +7 -4
  21. runbooks/finops/infrastructure/load_balancer_optimizer.py +7 -4
  22. runbooks/finops/infrastructure/vpc_endpoint_optimizer.py +7 -4
  23. runbooks/finops/nat_gateway_optimizer.py +7 -4
  24. runbooks/finops/tests/run_tests.py +1 -1
  25. runbooks/inventory/ArgumentsClass.py +2 -1
  26. runbooks/inventory/CLAUDE.md +41 -0
  27. runbooks/inventory/README.md +210 -2
  28. runbooks/inventory/Tests/test_Inventory_Modules.py +27 -10
  29. runbooks/inventory/Tests/test_cfn_describe_stacks.py +18 -7
  30. runbooks/inventory/Tests/test_ec2_describe_instances.py +30 -15
  31. runbooks/inventory/Tests/test_lambda_list_functions.py +17 -3
  32. runbooks/inventory/Tests/test_org_list_accounts.py +17 -4
  33. runbooks/inventory/account_class.py +0 -1
  34. runbooks/inventory/all_my_instances_wrapper.py +4 -8
  35. runbooks/inventory/aws_organization.png +0 -0
  36. runbooks/inventory/check_cloudtrail_compliance.py +4 -4
  37. runbooks/inventory/check_controltower_readiness.py +50 -47
  38. runbooks/inventory/check_landingzone_readiness.py +35 -31
  39. runbooks/inventory/cloud_foundations_integration.py +8 -3
  40. runbooks/inventory/collectors/aws_compute.py +59 -11
  41. runbooks/inventory/collectors/aws_management.py +39 -5
  42. runbooks/inventory/core/collector.py +1655 -159
  43. runbooks/inventory/core/concurrent_paginator.py +511 -0
  44. runbooks/inventory/discovery.md +15 -6
  45. runbooks/inventory/{draw_org_structure.py → draw_org.py} +55 -9
  46. runbooks/inventory/drift_detection_cli.py +8 -68
  47. runbooks/inventory/find_cfn_drift_detection.py +14 -4
  48. runbooks/inventory/find_cfn_orphaned_stacks.py +7 -5
  49. runbooks/inventory/find_cfn_stackset_drift.py +5 -5
  50. runbooks/inventory/find_ec2_security_groups.py +6 -3
  51. runbooks/inventory/find_landingzone_versions.py +5 -5
  52. runbooks/inventory/find_vpc_flow_logs.py +5 -5
  53. runbooks/inventory/inventory.sh +20 -7
  54. runbooks/inventory/inventory_mcp_cli.py +4 -0
  55. runbooks/inventory/inventory_modules.py +9 -7
  56. runbooks/inventory/list_cfn_stacks.py +18 -8
  57. runbooks/inventory/list_cfn_stackset_operation_results.py +2 -2
  58. runbooks/inventory/list_cfn_stackset_operations.py +32 -20
  59. runbooks/inventory/list_cfn_stacksets.py +7 -4
  60. runbooks/inventory/list_config_recorders_delivery_channels.py +4 -4
  61. runbooks/inventory/list_ds_directories.py +3 -3
  62. runbooks/inventory/list_ec2_availability_zones.py +7 -3
  63. runbooks/inventory/list_ec2_ebs_volumes.py +3 -3
  64. runbooks/inventory/list_ec2_instances.py +1 -1
  65. runbooks/inventory/list_ecs_clusters_and_tasks.py +8 -4
  66. runbooks/inventory/list_elbs_load_balancers.py +7 -3
  67. runbooks/inventory/list_enis_network_interfaces.py +3 -3
  68. runbooks/inventory/list_guardduty_detectors.py +9 -5
  69. runbooks/inventory/list_iam_policies.py +7 -3
  70. runbooks/inventory/list_iam_roles.py +3 -3
  71. runbooks/inventory/list_iam_saml_providers.py +8 -4
  72. runbooks/inventory/list_lambda_functions.py +8 -4
  73. runbooks/inventory/list_org_accounts.py +306 -276
  74. runbooks/inventory/list_org_accounts_users.py +45 -9
  75. runbooks/inventory/list_rds_db_instances.py +4 -4
  76. runbooks/inventory/list_route53_hosted_zones.py +3 -3
  77. runbooks/inventory/list_servicecatalog_provisioned_products.py +5 -5
  78. runbooks/inventory/list_sns_topics.py +4 -4
  79. runbooks/inventory/list_ssm_parameters.py +6 -3
  80. runbooks/inventory/list_vpc_subnets.py +8 -4
  81. runbooks/inventory/list_vpcs.py +15 -4
  82. runbooks/inventory/mcp_inventory_validator.py +771 -134
  83. runbooks/inventory/mcp_vpc_validator.py +6 -0
  84. runbooks/inventory/organizations_discovery.py +17 -3
  85. runbooks/inventory/organizations_utils.py +553 -0
  86. runbooks/inventory/output_formatters.py +422 -0
  87. runbooks/inventory/recover_cfn_stack_ids.py +5 -5
  88. runbooks/inventory/run_on_multi_accounts.py +3 -3
  89. runbooks/inventory/tag_coverage.py +481 -0
  90. runbooks/inventory/validation_utils.py +358 -0
  91. runbooks/inventory/verify_ec2_security_groups.py +18 -5
  92. runbooks/inventory/vpc_architecture_validator.py +7 -1
  93. runbooks/inventory/vpc_dependency_analyzer.py +6 -0
  94. runbooks/main_final.py +2 -2
  95. runbooks/main_ultra_minimal.py +2 -2
  96. runbooks/mcp/integration.py +6 -4
  97. runbooks/remediation/acm_remediation.py +2 -2
  98. runbooks/remediation/cloudtrail_remediation.py +2 -2
  99. runbooks/remediation/cognito_remediation.py +2 -2
  100. runbooks/remediation/dynamodb_remediation.py +2 -2
  101. runbooks/remediation/ec2_remediation.py +2 -2
  102. runbooks/remediation/kms_remediation.py +2 -2
  103. runbooks/remediation/lambda_remediation.py +2 -2
  104. runbooks/remediation/rds_remediation.py +2 -2
  105. runbooks/remediation/s3_remediation.py +1 -1
  106. runbooks/vpc/cloudtrail_audit_integration.py +1 -1
  107. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/METADATA +74 -4
  108. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/RECORD +112 -105
  109. runbooks/__init__.py.backup +0 -134
  110. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/WHEEL +0 -0
  111. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/entry_points.txt +0 -0
  112. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/licenses/LICENSE +0 -0
  113. {runbooks-1.1.7.dist-info → runbooks-1.1.10.dist-info}/top_level.txt +0 -0
@@ -5,13 +5,13 @@ from queue import Queue
5
5
  from threading import Thread
6
6
  from time import time
7
7
 
8
- from ArgumentsClass import CommonArguments
8
+ from runbooks.inventory.ArgumentsClass import CommonArguments
9
9
  from botocore.exceptions import ClientError
10
10
  from runbooks.common.rich_utils import console
11
- from Inventory_Modules import display_results, find_account_volumes2, get_all_credentials
11
+ from runbooks.inventory.inventory_modules import display_results, find_account_volumes2, get_all_credentials
12
12
  from runbooks.common.rich_utils import create_progress_bar
13
+ from runbooks import __version__
13
14
 
14
- __version__ = "2024.05.31"
15
15
 
16
16
  # ANSI escape code for clearing current line (progress bar cleanup)
17
17
 
@@ -64,8 +64,8 @@ from .ArgumentsClass import CommonArguments
64
64
  from botocore.exceptions import ClientError
65
65
  from .inventory_modules import display_results, get_all_credentials
66
66
  from runbooks.common.rich_utils import create_progress_bar
67
+ from runbooks import __version__
67
68
 
68
- __version__ = "2025.04.09"
69
69
  begin_time = time()
70
70
 
71
71
 
@@ -87,14 +87,18 @@ from queue import Queue
87
87
  from threading import Thread
88
88
  from time import time
89
89
 
90
- import Inventory_Modules
91
- from ArgumentsClass import CommonArguments
90
+ from runbooks.inventory import inventory_modules as Inventory_Modules
91
+ from runbooks.inventory.ArgumentsClass import CommonArguments
92
92
  from botocore.exceptions import ClientError
93
93
  from runbooks.common.rich_utils import console
94
- from Inventory_Modules import display_results, find_account_ecs_clusters_services_and_tasks2, get_all_credentials
94
+ from runbooks.inventory.inventory_modules import display_results, find_account_ecs_clusters_services_and_tasks2, get_all_credentials
95
95
  from runbooks.common.rich_utils import create_progress_bar
96
+ from runbooks import __version__
96
97
 
97
- __version__ = "2024.09.06"
98
+
99
+
100
+ # Terminal control constants
101
+ ERASE_LINE = '\x1b[2K'
98
102
  begin_time = time()
99
103
 
100
104
  # TODO: Need a table at the bottom that summarizes the results, by instance-type, by running/ stopped, maybe by account and region
@@ -86,13 +86,17 @@ from queue import Queue
86
86
  from threading import Thread
87
87
  from time import time
88
88
 
89
- from ArgumentsClass import CommonArguments
89
+ from runbooks.inventory.ArgumentsClass import CommonArguments
90
90
  from botocore.exceptions import ClientError
91
91
  from runbooks.common.rich_utils import console
92
- from Inventory_Modules import display_results, find_load_balancers2, get_all_credentials
92
+ from runbooks.inventory.inventory_modules import display_results, find_load_balancers2, get_all_credentials
93
93
  from runbooks.common.rich_utils import create_progress_bar
94
+ from runbooks import __version__
94
95
 
95
- __version__ = "2024.05.06"
96
+
97
+
98
+ # Terminal control constants
99
+ ERASE_LINE = '\x1b[2K'
96
100
  begin_time = time()
97
101
 
98
102
 
@@ -92,16 +92,16 @@ from queue import Queue
92
92
  from threading import Thread
93
93
  from time import time
94
94
 
95
- from ArgumentsClass import CommonArguments
95
+ from runbooks.inventory.ArgumentsClass import CommonArguments
96
96
  from botocore.exceptions import ClientError
97
97
 
98
98
  # from datetime import datetime
99
99
  from runbooks.common.rich_utils import console
100
- from Inventory_Modules import display_results, find_account_enis2, get_all_credentials
100
+ from runbooks.inventory.inventory_modules import display_results, find_account_enis2, get_all_credentials
101
101
  from runbooks.common.rich_utils import create_progress_bar
102
+ from runbooks import __version__
102
103
 
103
104
 
104
- __version__ = "2024.10.24"
105
105
 
106
106
 
107
107
  ##################
@@ -91,14 +91,18 @@ import logging
91
91
  import sys
92
92
 
93
93
  import boto3
94
- import Inventory_Modules
95
- from account_class import aws_acct_access
96
- from ArgumentsClass import CommonArguments
94
+ from runbooks.inventory import inventory_modules as Inventory_Modules
95
+ from runbooks.inventory.account_class import aws_acct_access
96
+ from runbooks.inventory.ArgumentsClass import CommonArguments
97
97
  from botocore.exceptions import ClientError
98
98
  from runbooks.common.rich_utils import console
99
- from Inventory_Modules import get_all_credentials
99
+ from runbooks.inventory.inventory_modules import get_all_credentials
100
+ from runbooks import __version__
100
101
 
101
- __version__ = "2023.07.18"
102
+
103
+
104
+ # Terminal control constants
105
+ ERASE_LINE = '\x1b[2K'
102
106
 
103
107
  # Parse enterprise command-line arguments with GuardDuty-specific security management options
104
108
  parser = CommonArguments()
@@ -92,12 +92,16 @@ from queue import Queue
92
92
  from threading import Thread
93
93
  from time import time
94
94
 
95
- from ArgumentsClass import CommonArguments
95
+ from runbooks.inventory.ArgumentsClass import CommonArguments
96
96
  from botocore.exceptions import ClientError
97
97
  from runbooks.common.rich_utils import console
98
- from Inventory_Modules import display_results, find_account_policies2, find_policy_action2, get_all_credentials
98
+ from runbooks.inventory.inventory_modules import display_results, find_account_policies2, find_policy_action2, get_all_credentials
99
+ from runbooks import __version__
99
100
 
100
- __version__ = "2023.12.12"
101
+
102
+
103
+ # Terminal control constants
104
+ ERASE_LINE = '\x1b[2K'
101
105
  begin_time = time()
102
106
 
103
107
 
@@ -41,12 +41,12 @@ import sys
41
41
  from time import sleep, time
42
42
 
43
43
  import boto3
44
- from ArgumentsClass import CommonArguments
44
+ from runbooks.inventory.ArgumentsClass import CommonArguments
45
45
  from botocore.exceptions import ClientError
46
- from Inventory_Modules import display_results, find_in, get_all_credentials
46
+ from runbooks.inventory.inventory_modules import display_results, find_in, get_all_credentials
47
47
  from runbooks.common.rich_utils import console
48
+ from runbooks import __version__
48
49
 
49
- __version__ = "2023.11.06"
50
50
 
51
51
 
52
52
  ###########################
@@ -98,13 +98,17 @@ from os.path import split
98
98
  from time import time
99
99
 
100
100
  import boto3
101
- from account_class import aws_acct_access
102
- from ArgumentsClass import CommonArguments
101
+ from runbooks.inventory.account_class import aws_acct_access
102
+ from runbooks.inventory.ArgumentsClass import CommonArguments
103
103
  from botocore.exceptions import ClientError
104
104
  from runbooks.common.rich_utils import console
105
- from Inventory_Modules import display_results, find_saml_components_in_acct2, get_child_access3
105
+ from runbooks.inventory.inventory_modules import display_results, find_saml_components_in_acct2, get_child_access3
106
+ from runbooks import __version__
106
107
 
107
- __version__ = "2024.03.27"
108
+
109
+
110
+ # Terminal control constants
111
+ ERASE_LINE = '\x1b[2K'
108
112
 
109
113
  begin_time = time()
110
114
 
@@ -79,14 +79,18 @@ from threading import Thread
79
79
  from time import time
80
80
 
81
81
  import boto3
82
- import Inventory_Modules
83
- from ArgumentsClass import CommonArguments
82
+ from runbooks.inventory import inventory_modules as Inventory_Modules
83
+ from runbooks.inventory.ArgumentsClass import CommonArguments
84
84
  from botocore.exceptions import ClientError
85
85
  from runbooks.common.rich_utils import console
86
- from Inventory_Modules import display_results, get_all_credentials
86
+ from runbooks.inventory.inventory_modules import display_results, get_all_credentials
87
87
  from runbooks.common.rich_utils import create_progress_bar
88
+ from runbooks import __version__
88
89
 
89
- __version__ = "2024.06.05"
90
+
91
+
92
+ # Terminal control constants
93
+ ERASE_LINE = '\x1b[2K'
90
94
 
91
95
  begin_time = time()
92
96