pangea 0.0.45 → 0.0.46

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 (2051) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -83
  3. data/Dockerfile +4 -20
  4. data/Gemfile +0 -7
  5. data/Gemfile.lock +71 -211
  6. data/LICENSE +1 -1
  7. data/README.md +40 -208
  8. data/Rakefile +23 -146
  9. data/bin/pangea +2 -2
  10. data/example/config/README.md +3 -0
  11. data/example/config/sample.rb +20 -0
  12. data/flake.lock +6 -6
  13. data/flake.nix +0 -25
  14. data/gemset.nix +114 -575
  15. data/lib/pangea/cli/config.rb +99 -0
  16. data/lib/pangea/cli/constants.rb +33 -0
  17. data/lib/pangea/cli/subcommands/config.rb +212 -0
  18. data/lib/pangea/cli/subcommands/infra.rb +311 -0
  19. data/lib/pangea/cli/subcommands/main.rb +58 -0
  20. data/lib/pangea/cli/subcommands/pangea.rb +18 -0
  21. data/lib/pangea/cli/subcommands/state.rb +30 -0
  22. data/lib/pangea/cli.rb +63 -0
  23. data/lib/pangea/config.rb +35 -0
  24. data/lib/pangea/docker.rb +104 -0
  25. data/lib/pangea/errors/incorrect_subcommand_error.rb +2 -0
  26. data/lib/pangea/errors/namespace_not_found_error.rb +2 -0
  27. data/lib/pangea/errors/no_infra_target_error.rb +2 -0
  28. data/lib/pangea/errors/project_not_found_error.rb +2 -0
  29. data/lib/pangea/errors/site_not_found_error.rb +2 -0
  30. data/lib/pangea/executor.rb +10 -0
  31. data/lib/pangea/log/init.rb +2 -0
  32. data/lib/pangea/modcache.rb +79 -0
  33. data/lib/pangea/module.rb +17 -0
  34. data/lib/pangea/modules.rb +134 -0
  35. data/lib/pangea/processor.rb +101 -0
  36. data/lib/pangea/renderer.rb +241 -0
  37. data/lib/pangea/sandbox.rb +90 -0
  38. data/lib/pangea/say/init.rb +27 -0
  39. data/lib/pangea/shell/README.md +1 -0
  40. data/lib/pangea/shell/terraform.rb +21 -0
  41. data/lib/pangea/shell.rb +27 -0
  42. data/lib/pangea/stack.rb +11 -0
  43. data/lib/pangea/state.rb +96 -0
  44. data/lib/pangea/structures/README.md +3 -0
  45. data/lib/pangea/structures/abstract.rb +2 -0
  46. data/lib/pangea/structures/namespace.rb +4 -0
  47. data/lib/pangea/structures/project.rb +4 -0
  48. data/lib/pangea/structures/site.rb +4 -0
  49. data/lib/pangea/synthesizer/config.rb +38 -0
  50. data/lib/pangea/utils.rb +32 -0
  51. data/lib/pangea/version.rb +1 -15
  52. data/lib/pangea.rb +17 -37
  53. data/pangea.gemspec +33 -37
  54. data/pangea.rb +0 -14
  55. metadata +136 -2263
  56. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
  57. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -67
  58. data/.github/ISSUE_TEMPLATE/question.yml +0 -44
  59. data/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  60. data/.github/workflows/ci.yml +0 -79
  61. data/.github/workflows/release.yml +0 -43
  62. data/AGENT_GUIDE.md +0 -333
  63. data/CHANGELOG.md +0 -67
  64. data/CLAUDE.md +0 -626
  65. data/CONTRIBUTING.md +0 -143
  66. data/EXAMPLES.md +0 -376
  67. data/OPEN_SOURCE_READINESS.md +0 -170
  68. data/README_backend_configuration.md +0 -174
  69. data/SECURITY.md +0 -90
  70. data/Steepfile +0 -33
  71. data/audit_results/vpc_resources_audit.json +0 -219
  72. data/docker-compose.test.yml +0 -31
  73. data/docs/RESOURCES.md +0 -456
  74. data/examples/advanced_global_infrastructure.rb +0 -544
  75. data/examples/advanced_ml_healthcare_infrastructure.rb +0 -546
  76. data/examples/api_gateway_complete.rb +0 -275
  77. data/examples/basic-web-app/README.md +0 -176
  78. data/examples/basic-web-app/infrastructure.rb +0 -686
  79. data/examples/basic-web-app/pangea.yaml +0 -36
  80. data/examples/cicd-pipeline/README.md +0 -348
  81. data/examples/cicd-pipeline/infrastructure.rb +0 -1186
  82. data/examples/cicd-pipeline/pangea.yaml +0 -35
  83. data/examples/cloudwatch_monitoring_example.rb +0 -192
  84. data/examples/comprehensive_database_platform.rb +0 -575
  85. data/examples/data-processing/README.md +0 -320
  86. data/examples/data-processing/infrastructure.rb +0 -1616
  87. data/examples/data-processing/pangea.yaml +0 -57
  88. data/examples/disaster-recovery/README.md +0 -446
  89. data/examples/disaster-recovery/infrastructure.rb +0 -1518
  90. data/examples/disaster-recovery/pangea.yaml +0 -62
  91. data/examples/gaming_infrastructure.rb +0 -505
  92. data/examples/global-multi-region/README.md +0 -427
  93. data/examples/global-multi-region/infrastructure.rb +0 -1454
  94. data/examples/global-multi-region/pangea.yaml +0 -61
  95. data/examples/messaging_example.rb +0 -189
  96. data/examples/microservices-platform/README.md +0 -275
  97. data/examples/microservices-platform/infrastructure.rb +0 -1024
  98. data/examples/microservices-platform/pangea.yaml +0 -35
  99. data/examples/ml-platform/README.md +0 -456
  100. data/examples/ml-platform/infrastructure.rb +0 -1882
  101. data/examples/ml-platform/pangea.yaml +0 -58
  102. data/examples/multi-environment/README.md +0 -280
  103. data/examples/multi-environment/infrastructure.rb +0 -1266
  104. data/examples/multi-environment/pangea.yaml +0 -71
  105. data/examples/multi-tier-architecture/README.md +0 -271
  106. data/examples/multi-tier-architecture/infrastructure.rb +0 -1077
  107. data/examples/multi-tier-architecture/pangea.yaml +0 -49
  108. data/examples/resource_composition_patterns.rb +0 -303
  109. data/examples/robotics_and_specialized_services.rb +0 -310
  110. data/examples/scalable_infrastructure.rb +0 -422
  111. data/examples/security-focused/README.md +0 -368
  112. data/examples/security-focused/infrastructure.rb +0 -1684
  113. data/examples/security-focused/pangea.yaml +0 -60
  114. data/examples/simple.rb +0 -39
  115. data/examples/type_safe_infrastructure.rb +0 -214
  116. data/exe/pangea +0 -37
  117. data/guides/README.md +0 -157
  118. data/guides/advanced-patterns.md +0 -1196
  119. data/guides/cicd-integration.md +0 -1047
  120. data/guides/getting-started.md +0 -399
  121. data/guides/migration-from-terraform.md +0 -924
  122. data/guides/multi-environment-management.md +0 -769
  123. data/guides/template-isolation.md +0 -673
  124. data/guides/type-safe-infrastructure.md +0 -695
  125. data/lib/pangea/agent.rb +0 -366
  126. data/lib/pangea/architecture_registry.rb +0 -94
  127. data/lib/pangea/architectures/ARCHITECTURE_CATALOG.md +0 -736
  128. data/lib/pangea/architectures/CLAUDE.md +0 -425
  129. data/lib/pangea/architectures/COMPLETE_ARCHITECTURE_SUMMARY.md +0 -385
  130. data/lib/pangea/architectures/base.rb +0 -545
  131. data/lib/pangea/architectures/examples/web_application_examples.rb +0 -589
  132. data/lib/pangea/architectures/examples.rb +0 -508
  133. data/lib/pangea/architectures/patterns/data_processing.rb +0 -669
  134. data/lib/pangea/architectures/patterns/microservices.rb +0 -626
  135. data/lib/pangea/architectures/patterns/simple_web_application.rb +0 -120
  136. data/lib/pangea/architectures/patterns/web_application.rb +0 -556
  137. data/lib/pangea/architectures/simple_web_app/architecture.rb +0 -70
  138. data/lib/pangea/architectures/simple_web_app/types.rb +0 -36
  139. data/lib/pangea/architectures/types.rb +0 -281
  140. data/lib/pangea/architectures/web_application_architecture/README.md +0 -375
  141. data/lib/pangea/architectures/web_application_architecture/architecture.rb +0 -511
  142. data/lib/pangea/architectures/web_application_architecture/types.rb +0 -295
  143. data/lib/pangea/architectures.rb +0 -24
  144. data/lib/pangea/backends/base.rb +0 -77
  145. data/lib/pangea/backends/local.rb +0 -159
  146. data/lib/pangea/backends/s3.rb +0 -213
  147. data/lib/pangea/backends.rb +0 -51
  148. data/lib/pangea/cli/application.rb +0 -211
  149. data/lib/pangea/cli/commands/agent.rb +0 -609
  150. data/lib/pangea/cli/commands/apply.rb +0 -240
  151. data/lib/pangea/cli/commands/base_command.rb +0 -131
  152. data/lib/pangea/cli/commands/destroy.rb +0 -131
  153. data/lib/pangea/cli/commands/inspect.rb +0 -437
  154. data/lib/pangea/cli/commands/plan.rb +0 -194
  155. data/lib/pangea/cli/formatters/json_formatter.rb +0 -195
  156. data/lib/pangea/cli/ui/diff.rb +0 -250
  157. data/lib/pangea/cli/ui/logger.rb +0 -174
  158. data/lib/pangea/cli/ui/progress.rb +0 -232
  159. data/lib/pangea/cli/ui/spinner.rb +0 -68
  160. data/lib/pangea/cli/ui/table.rb +0 -51
  161. data/lib/pangea/cli/ui/visualizer.rb +0 -409
  162. data/lib/pangea/compilation/template_compiler.rb +0 -384
  163. data/lib/pangea/compilation/validator.rb +0 -133
  164. data/lib/pangea/component_registry.rb +0 -79
  165. data/lib/pangea/components/ADVANCED_COMPONENT_CATALOG.md +0 -556
  166. data/lib/pangea/components/CLAUDE.md +0 -350
  167. data/lib/pangea/components/COMPLETE_COMPONENT_SUMMARY.md +0 -266
  168. data/lib/pangea/components/COMPONENT_CATALOG.md +0 -470
  169. data/lib/pangea/components/EXTENDED_COMPONENT_CATALOG.md +0 -558
  170. data/lib/pangea/components/IMPLEMENTATION_PROGRESS.md +0 -246
  171. data/lib/pangea/components/api_gateway_microservices/README.md +0 -384
  172. data/lib/pangea/components/api_gateway_microservices/component.rb +0 -630
  173. data/lib/pangea/components/api_gateway_microservices/types.rb +0 -248
  174. data/lib/pangea/components/application_load_balancer/CLAUDE.md +0 -224
  175. data/lib/pangea/components/application_load_balancer/README.md +0 -225
  176. data/lib/pangea/components/application_load_balancer/component.rb +0 -316
  177. data/lib/pangea/components/application_load_balancer/types.rb +0 -117
  178. data/lib/pangea/components/auto_scaling_web_servers/README.md +0 -326
  179. data/lib/pangea/components/auto_scaling_web_servers/component.rb +0 -396
  180. data/lib/pangea/components/auto_scaling_web_servers/types.rb +0 -176
  181. data/lib/pangea/components/base.rb +0 -104
  182. data/lib/pangea/components/capabilities.rb +0 -93
  183. data/lib/pangea/components/carbon_aware_compute/CLAUDE.md +0 -295
  184. data/lib/pangea/components/carbon_aware_compute/README.md +0 -194
  185. data/lib/pangea/components/carbon_aware_compute/component.rb +0 -1136
  186. data/lib/pangea/components/carbon_aware_compute/types.rb +0 -167
  187. data/lib/pangea/components/disaster_recovery_pilot_light/README.md +0 -366
  188. data/lib/pangea/components/disaster_recovery_pilot_light/component.rb +0 -1549
  189. data/lib/pangea/components/disaster_recovery_pilot_light/types.rb +0 -255
  190. data/lib/pangea/components/event_driven_microservice/README.md +0 -341
  191. data/lib/pangea/components/event_driven_microservice/component.rb +0 -665
  192. data/lib/pangea/components/event_driven_microservice/types.rb +0 -217
  193. data/lib/pangea/components/examples.rb +0 -515
  194. data/lib/pangea/components/global_service_mesh/README.md +0 -438
  195. data/lib/pangea/components/global_service_mesh/component.rb +0 -1307
  196. data/lib/pangea/components/global_service_mesh/types.rb +0 -289
  197. data/lib/pangea/components/global_traffic_manager/README.md +0 -351
  198. data/lib/pangea/components/global_traffic_manager/component.rb +0 -1144
  199. data/lib/pangea/components/global_traffic_manager/types.rb +0 -282
  200. data/lib/pangea/components/green_data_lifecycle/CLAUDE.md +0 -353
  201. data/lib/pangea/components/green_data_lifecycle/README.md +0 -270
  202. data/lib/pangea/components/green_data_lifecycle/component.rb +0 -1403
  203. data/lib/pangea/components/green_data_lifecycle/types.rb +0 -184
  204. data/lib/pangea/components/microservice_deployment/README.md +0 -321
  205. data/lib/pangea/components/microservice_deployment/component.rb +0 -440
  206. data/lib/pangea/components/microservice_deployment/types.rb +0 -236
  207. data/lib/pangea/components/microservices_examples.rb +0 -444
  208. data/lib/pangea/components/multi_region_active_active/README.md +0 -267
  209. data/lib/pangea/components/multi_region_active_active/component.rb +0 -1200
  210. data/lib/pangea/components/multi_region_active_active/types.rb +0 -248
  211. data/lib/pangea/components/mysql_database/README.md +0 -342
  212. data/lib/pangea/components/mysql_database/component.rb +0 -343
  213. data/lib/pangea/components/mysql_database/types.rb +0 -201
  214. data/lib/pangea/components/public_private_subnets/CLAUDE.md +0 -547
  215. data/lib/pangea/components/public_private_subnets/README.md +0 -293
  216. data/lib/pangea/components/public_private_subnets/component.rb +0 -386
  217. data/lib/pangea/components/public_private_subnets/types.rb +0 -152
  218. data/lib/pangea/components/reference.rb +0 -155
  219. data/lib/pangea/components/secure_s3_bucket/README.md +0 -459
  220. data/lib/pangea/components/secure_s3_bucket/component.rb +0 -442
  221. data/lib/pangea/components/secure_s3_bucket/types.rb +0 -292
  222. data/lib/pangea/components/secure_vpc/CLAUDE.md +0 -366
  223. data/lib/pangea/components/secure_vpc/README.md +0 -187
  224. data/lib/pangea/components/secure_vpc/component.rb +0 -88
  225. data/lib/pangea/components/secure_vpc/types.rb +0 -141
  226. data/lib/pangea/components/service_mesh_observability/README.md +0 -423
  227. data/lib/pangea/components/service_mesh_observability/component.rb +0 -610
  228. data/lib/pangea/components/service_mesh_observability/types.rb +0 -231
  229. data/lib/pangea/components/siem_security_platform/component.rb +0 -2877
  230. data/lib/pangea/components/siem_security_platform/types.rb +0 -220
  231. data/lib/pangea/components/spot_instance_carbon_optimizer/CLAUDE.md +0 -469
  232. data/lib/pangea/components/spot_instance_carbon_optimizer/README.md +0 -338
  233. data/lib/pangea/components/spot_instance_carbon_optimizer/component.rb +0 -1638
  234. data/lib/pangea/components/spot_instance_carbon_optimizer/types.rb +0 -213
  235. data/lib/pangea/components/sustainable_ml_training/CLAUDE.md +0 -653
  236. data/lib/pangea/components/sustainable_ml_training/README.md +0 -363
  237. data/lib/pangea/components/sustainable_ml_training/component.rb +0 -1754
  238. data/lib/pangea/components/sustainable_ml_training/types.rb +0 -234
  239. data/lib/pangea/components/threat_intelligence_platform/types.rb +0 -203
  240. data/lib/pangea/components/types.rb +0 -198
  241. data/lib/pangea/components/vpc_with_subnets/component.rb +0 -177
  242. data/lib/pangea/components/vpc_with_subnets/types.rb +0 -61
  243. data/lib/pangea/components/web_security_group/CLAUDE.md +0 -690
  244. data/lib/pangea/components/web_security_group/README.md +0 -450
  245. data/lib/pangea/components/web_security_group/component.rb +0 -217
  246. data/lib/pangea/components/web_security_group/types.rb +0 -257
  247. data/lib/pangea/components/web_tier_subnets/CLAUDE.md +0 -572
  248. data/lib/pangea/components/web_tier_subnets/README.md +0 -368
  249. data/lib/pangea/components/web_tier_subnets/component.rb +0 -205
  250. data/lib/pangea/components/web_tier_subnets/types.rb +0 -185
  251. data/lib/pangea/components/zero_trust_network/component.rb +0 -674
  252. data/lib/pangea/components/zero_trust_network/types.rb +0 -150
  253. data/lib/pangea/components.rb +0 -80
  254. data/lib/pangea/configuration/types.rb +0 -294
  255. data/lib/pangea/configuration.rb +0 -249
  256. data/lib/pangea/documentation/generator.rb +0 -139
  257. data/lib/pangea/documentation/writer.rb +0 -86
  258. data/lib/pangea/entities/module_definition.rb +0 -140
  259. data/lib/pangea/entities/namespace.rb +0 -154
  260. data/lib/pangea/entities/project.rb +0 -99
  261. data/lib/pangea/entities/template.rb +0 -121
  262. data/lib/pangea/entities.rb +0 -29
  263. data/lib/pangea/errors.rb +0 -67
  264. data/lib/pangea/execution/terraform_executor.rb +0 -271
  265. data/lib/pangea/execution/workspace_manager.rb +0 -164
  266. data/lib/pangea/generators/resource_generator.rb +0 -82
  267. data/lib/pangea/generators/test_generator.rb +0 -68
  268. data/lib/pangea/quality/resource_auditor.rb +0 -74
  269. data/lib/pangea/resource_registry.rb +0 -68
  270. data/lib/pangea/resources/AWS_RESOURCE_COMPLETION_SUMMARY.md +0 -200
  271. data/lib/pangea/resources/CLAUDE.md +0 -607
  272. data/lib/pangea/resources/DATABASE_SERVICES_CLAUDE.md +0 -577
  273. data/lib/pangea/resources/EXTENDED_SERVICES_IMPLEMENTATION.md +0 -197
  274. data/lib/pangea/resources/FINAL_BATCH_IMPLEMENTATION.md +0 -328
  275. data/lib/pangea/resources/IMPLEMENTATION_SUMMARY.md +0 -185
  276. data/lib/pangea/resources/NEW_RESOURCES_SUMMARY.md +0 -259
  277. data/lib/pangea/resources/aws/MEDIA_SERVICES_IMPLEMENTATION_SUMMARY.md +0 -219
  278. data/lib/pangea/resources/aws/appconfig/configuration_version.rb +0 -55
  279. data/lib/pangea/resources/aws/appconfig/deployment_strategy.rb +0 -104
  280. data/lib/pangea/resources/aws/appconfig/extension.rb +0 -55
  281. data/lib/pangea/resources/aws/appconfig/extension_association.rb +0 -55
  282. data/lib/pangea/resources/aws/appconfig/hosted_configuration_version.rb +0 -55
  283. data/lib/pangea/resources/aws/appconfig/monitor.rb +0 -55
  284. data/lib/pangea/resources/aws/appconfig/validator.rb +0 -55
  285. data/lib/pangea/resources/aws/appconfig.rb +0 -42
  286. data/lib/pangea/resources/aws/applicationdiscoveryservice/application.rb +0 -82
  287. data/lib/pangea/resources/aws/applicationdiscoveryservice/application_resource.rb +0 -55
  288. data/lib/pangea/resources/aws/applicationdiscoveryservice/application_resource.rbs +0 -15
  289. data/lib/pangea/resources/aws/applicationdiscoveryservice.rb +0 -30
  290. data/lib/pangea/resources/aws/audit_manager/CLAUDE.md +0 -778
  291. data/lib/pangea/resources/aws/audit_manager/account_registration.rb +0 -55
  292. data/lib/pangea/resources/aws/audit_manager/assessment.rb +0 -55
  293. data/lib/pangea/resources/aws/audit_manager/assessment_control_set.rb +0 -55
  294. data/lib/pangea/resources/aws/audit_manager/assessment_delegation.rb +0 -55
  295. data/lib/pangea/resources/aws/audit_manager/assessment_report.rb +0 -55
  296. data/lib/pangea/resources/aws/audit_manager/control.rb +0 -55
  297. data/lib/pangea/resources/aws/audit_manager/evidence_folder.rb +0 -55
  298. data/lib/pangea/resources/aws/audit_manager/framework.rb +0 -55
  299. data/lib/pangea/resources/aws/audit_manager/framework_share.rb +0 -55
  300. data/lib/pangea/resources/aws/audit_manager/organization_admin_account.rb +0 -55
  301. data/lib/pangea/resources/aws/audit_manager.rb +0 -186
  302. data/lib/pangea/resources/aws/autoscaling/autoscaling_group_tag.rb +0 -55
  303. data/lib/pangea/resources/aws/autoscaling/autoscaling_lifecycle_hook.rb +0 -55
  304. data/lib/pangea/resources/aws/autoscaling/autoscaling_notification.rb +0 -55
  305. data/lib/pangea/resources/aws/autoscaling/autoscaling_policy_step_adjustment.rb +0 -55
  306. data/lib/pangea/resources/aws/autoscaling/autoscaling_policy_target_tracking_scaling_policy.rb +0 -55
  307. data/lib/pangea/resources/aws/autoscaling/autoscaling_schedule.rb +0 -55
  308. data/lib/pangea/resources/aws/autoscaling/autoscaling_traffic_source_attachment.rb +0 -55
  309. data/lib/pangea/resources/aws/autoscaling/autoscaling_warm_pool.rb +0 -55
  310. data/lib/pangea/resources/aws/autoscaling/launch_configuration.rb +0 -55
  311. data/lib/pangea/resources/aws/autoscaling/placement_group.rb +0 -55
  312. data/lib/pangea/resources/aws/autoscaling.rb +0 -186
  313. data/lib/pangea/resources/aws/base_resource.rb +0 -92
  314. data/lib/pangea/resources/aws/batch/CLAUDE.md +0 -965
  315. data/lib/pangea/resources/aws/batch/compute_environment.rb +0 -55
  316. data/lib/pangea/resources/aws/batch/job.rb +0 -55
  317. data/lib/pangea/resources/aws/batch/job_definition.rb +0 -55
  318. data/lib/pangea/resources/aws/batch/job_queue.rb +0 -55
  319. data/lib/pangea/resources/aws/batch/scheduling_policy.rb +0 -55
  320. data/lib/pangea/resources/aws/batch.rb +0 -106
  321. data/lib/pangea/resources/aws/cdk/bootstrap_version.rb +0 -47
  322. data/lib/pangea/resources/aws/cdk/bundling_docker_image.rb +0 -46
  323. data/lib/pangea/resources/aws/cdk/custom_resource_provider.rb +0 -46
  324. data/lib/pangea/resources/aws/cdk/docker_image_asset.rb +0 -46
  325. data/lib/pangea/resources/aws/cdk/file_asset.rb +0 -46
  326. data/lib/pangea/resources/aws/cdk/metadata.rb +0 -46
  327. data/lib/pangea/resources/aws/cdk/toolkit_stack_tags.rb +0 -48
  328. data/lib/pangea/resources/aws/cdk/tree_metadata.rb +0 -46
  329. data/lib/pangea/resources/aws/cdk.rb +0 -44
  330. data/lib/pangea/resources/aws/cleanrooms.rb +0 -145
  331. data/lib/pangea/resources/aws/cloudformation/CLAUDE.md +0 -98
  332. data/lib/pangea/resources/aws/cloudformation/hook_default_version.rb +0 -48
  333. data/lib/pangea/resources/aws/cloudformation/public_type_version.rb +0 -51
  334. data/lib/pangea/resources/aws/cloudformation/publisher.rb +0 -63
  335. data/lib/pangea/resources/aws/cloudformation/resource_default_version.rb +0 -48
  336. data/lib/pangea/resources/aws/cloudformation/resource_version.rb +0 -56
  337. data/lib/pangea/resources/aws/cloudformation/stack_instances.rb +0 -161
  338. data/lib/pangea/resources/aws/cloudformation/stack_set.rb +0 -195
  339. data/lib/pangea/resources/aws/cloudformation/stack_set_instance.rb +0 -151
  340. data/lib/pangea/resources/aws/cloudformation/type.rb +0 -167
  341. data/lib/pangea/resources/aws/cloudformation/type_activation.rb +0 -91
  342. data/lib/pangea/resources/aws/cloudformation/types.rb +0 -301
  343. data/lib/pangea/resources/aws/cloudformation/types.rbs +0 -125
  344. data/lib/pangea/resources/aws/cloudformation.rb +0 -48
  345. data/lib/pangea/resources/aws/code/codebuild_project_cache.rb +0 -55
  346. data/lib/pangea/resources/aws/code/codebuild_project_file_system_location.rb +0 -55
  347. data/lib/pangea/resources/aws/code/codebuild_source_credential.rb +0 -55
  348. data/lib/pangea/resources/aws/code/codebuild_webhook_filter.rb +0 -55
  349. data/lib/pangea/resources/aws/code/codecommit_approval_rule_template.rb +0 -55
  350. data/lib/pangea/resources/aws/code/codecommit_approval_rule_template_association.rb +0 -55
  351. data/lib/pangea/resources/aws/code/codedeploy_deployment_config.rb +0 -55
  352. data/lib/pangea/resources/aws/code/codedeploy_deployment_group_auto_rollback.rb +0 -55
  353. data/lib/pangea/resources/aws/code/codepipeline_custom_action_type.rb +0 -55
  354. data/lib/pangea/resources/aws/code/codepipeline_webhook.rb +0 -55
  355. data/lib/pangea/resources/aws/code/codestar_connection.rb +0 -85
  356. data/lib/pangea/resources/aws/code/codestar_notification_rule.rb +0 -55
  357. data/lib/pangea/resources/aws/code.rb +0 -52
  358. data/lib/pangea/resources/aws/comprehendmedical/jobs.rb +0 -320
  359. data/lib/pangea/resources/aws/comprehendmedical.rb +0 -28
  360. data/lib/pangea/resources/aws/config/aggregate_authorization.rb +0 -55
  361. data/lib/pangea/resources/aws/config/configuration_aggregator_organization.rb +0 -55
  362. data/lib/pangea/resources/aws/config/organization_conformance_pack.rb +0 -103
  363. data/lib/pangea/resources/aws/config/organization_custom_rule.rb +0 -55
  364. data/lib/pangea/resources/aws/config/organization_managed_rule.rb +0 -55
  365. data/lib/pangea/resources/aws/config/remediation_configuration.rb +0 -55
  366. data/lib/pangea/resources/aws/config/retention_configuration.rb +0 -55
  367. data/lib/pangea/resources/aws/config/stored_query.rb +0 -55
  368. data/lib/pangea/resources/aws/config.rb +0 -44
  369. data/lib/pangea/resources/aws/controltower/control.rb +0 -82
  370. data/lib/pangea/resources/aws/controltower/control_resource.rb +0 -55
  371. data/lib/pangea/resources/aws/controltower/control_resource.rbs +0 -15
  372. data/lib/pangea/resources/aws/controltower/enabled_control.rb +0 -74
  373. data/lib/pangea/resources/aws/controltower/enabled_control_resource.rb +0 -55
  374. data/lib/pangea/resources/aws/controltower/enabled_control_resource.rbs +0 -15
  375. data/lib/pangea/resources/aws/controltower/landing_zone.rb +0 -126
  376. data/lib/pangea/resources/aws/controltower/landing_zone_resource.rb +0 -55
  377. data/lib/pangea/resources/aws/controltower/landing_zone_resource.rbs +0 -18
  378. data/lib/pangea/resources/aws/controltower.rb +0 -34
  379. data/lib/pangea/resources/aws/data_pipeline/pipeline.rb +0 -55
  380. data/lib/pangea/resources/aws/data_pipeline/pipeline_definition.rb +0 -55
  381. data/lib/pangea/resources/aws/detective/CLAUDE.md +0 -668
  382. data/lib/pangea/resources/aws/detective/datasource_package.rb +0 -55
  383. data/lib/pangea/resources/aws/detective/finding.rb +0 -56
  384. data/lib/pangea/resources/aws/detective/graph.rb +0 -58
  385. data/lib/pangea/resources/aws/detective/indicator.rb +0 -56
  386. data/lib/pangea/resources/aws/detective/invitation_accepter.rb +0 -54
  387. data/lib/pangea/resources/aws/detective/member.rb +0 -59
  388. data/lib/pangea/resources/aws/detective/organization_admin_account.rb +0 -54
  389. data/lib/pangea/resources/aws/detective/organization_configuration.rb +0 -54
  390. data/lib/pangea/resources/aws/detective.rb +0 -154
  391. data/lib/pangea/resources/aws/ec2/ec2_ami_launch_permission.rb +0 -55
  392. data/lib/pangea/resources/aws/ec2/ec2_availability_zone_group.rb +0 -55
  393. data/lib/pangea/resources/aws/ec2/ec2_capacity_block_reservation.rb +0 -55
  394. data/lib/pangea/resources/aws/ec2/ec2_capacity_reservation.rb +0 -55
  395. data/lib/pangea/resources/aws/ec2/ec2_dedicated_host.rb +0 -55
  396. data/lib/pangea/resources/aws/ec2/ec2_fleet.rb +0 -55
  397. data/lib/pangea/resources/aws/ec2/ec2_host_resource_group_association.rb +0 -55
  398. data/lib/pangea/resources/aws/ec2/ec2_image_block_public_access.rb +0 -55
  399. data/lib/pangea/resources/aws/ec2/ec2_instance_metadata_defaults.rb +0 -55
  400. data/lib/pangea/resources/aws/ec2/ec2_serial_console_access.rb +0 -55
  401. data/lib/pangea/resources/aws/ec2/ec2_snapshot_block_public_access.rb +0 -55
  402. data/lib/pangea/resources/aws/ec2/ec2_spot_datafeed_subscription.rb +0 -55
  403. data/lib/pangea/resources/aws/ec2/ec2_spot_fleet_request.rb +0 -55
  404. data/lib/pangea/resources/aws/ec2/ec2_spot_instance_request.rb +0 -55
  405. data/lib/pangea/resources/aws/ec2/ec2_tag.rb +0 -55
  406. data/lib/pangea/resources/aws/ec2/ec2_transit_gateway_multicast_domain.rb +0 -55
  407. data/lib/pangea/resources/aws/ec2/ec2_transit_gateway_multicast_domain_association.rb +0 -55
  408. data/lib/pangea/resources/aws/ec2/ec2_transit_gateway_multicast_group_member.rb +0 -55
  409. data/lib/pangea/resources/aws/ec2.rb +0 -314
  410. data/lib/pangea/resources/aws/elasticache_extended.disabled/auth_token.rb +0 -50
  411. data/lib/pangea/resources/aws/elasticache_extended.disabled/cache_policy.rb +0 -57
  412. data/lib/pangea/resources/aws/elasticache_extended.disabled/global_replication_group.rb +0 -121
  413. data/lib/pangea/resources/aws/elasticache_extended.disabled/notification_topic.rb +0 -50
  414. data/lib/pangea/resources/aws/elasticache_extended.disabled/parameter_group_parameter.rb +0 -52
  415. data/lib/pangea/resources/aws/elasticache_extended.disabled/reserved_cache_node.rb +0 -55
  416. data/lib/pangea/resources/aws/elasticache_extended.disabled/serverless_cache.rb +0 -178
  417. data/lib/pangea/resources/aws/elasticache_extended.disabled/user_group.rb +0 -90
  418. data/lib/pangea/resources/aws/elasticache_extended.disabled/user_group_association.rb +0 -50
  419. data/lib/pangea/resources/aws/elasticache_extended.rb +0 -46
  420. data/lib/pangea/resources/aws/emrcontainers/job_run.rb +0 -134
  421. data/lib/pangea/resources/aws/emrcontainers/job_template.rb +0 -165
  422. data/lib/pangea/resources/aws/emrcontainers/managed_endpoint.rb +0 -126
  423. data/lib/pangea/resources/aws/emrcontainers/virtual_cluster.rb +0 -99
  424. data/lib/pangea/resources/aws/emrcontainers.rb +0 -34
  425. data/lib/pangea/resources/aws/extended_resources_CLAUDE.md +0 -470
  426. data/lib/pangea/resources/aws/frauddetector/detector.rb +0 -262
  427. data/lib/pangea/resources/aws/frauddetector.rb +0 -28
  428. data/lib/pangea/resources/aws/gamedev.rb +0 -178
  429. data/lib/pangea/resources/aws/gamelift.rb +0 -244
  430. data/lib/pangea/resources/aws/gamesparks.rb +0 -246
  431. data/lib/pangea/resources/aws/healthlake/fhir_datastore.rb +0 -220
  432. data/lib/pangea/resources/aws/healthlake.rb +0 -28
  433. data/lib/pangea/resources/aws/kinesisvideo/signaling_channel.rb +0 -55
  434. data/lib/pangea/resources/aws/kinesisvideo/stream.rb +0 -55
  435. data/lib/pangea/resources/aws/kinesisvideo.rb +0 -58
  436. data/lib/pangea/resources/aws/load_balancing/alb_target_group_attachment.rb +0 -55
  437. data/lib/pangea/resources/aws/load_balancing/elb_attachment.rb +0 -55
  438. data/lib/pangea/resources/aws/load_balancing/elb_service_account.rb +0 -55
  439. data/lib/pangea/resources/aws/load_balancing/lb_cookie_stickiness_policy.rb +0 -55
  440. data/lib/pangea/resources/aws/load_balancing/lb_ssl_negotiation_policy.rb +0 -55
  441. data/lib/pangea/resources/aws/load_balancing/lb_target_group_attachment.rb +0 -55
  442. data/lib/pangea/resources/aws/load_balancing/lb_trust_store.rb +0 -55
  443. data/lib/pangea/resources/aws/load_balancing/lb_trust_store_revocation.rb +0 -55
  444. data/lib/pangea/resources/aws/load_balancing/load_balancer_backend_server_policy.rb +0 -55
  445. data/lib/pangea/resources/aws/load_balancing/load_balancer_listener_policy.rb +0 -55
  446. data/lib/pangea/resources/aws/load_balancing/load_balancer_policy.rb +0 -55
  447. data/lib/pangea/resources/aws/load_balancing/proxy_protocol_policy.rb +0 -55
  448. data/lib/pangea/resources/aws/load_balancing.rb +0 -218
  449. data/lib/pangea/resources/aws/lookout/equipment.rb +0 -227
  450. data/lib/pangea/resources/aws/lookout/metrics.rb +0 -129
  451. data/lib/pangea/resources/aws/lookout.rb +0 -30
  452. data/lib/pangea/resources/aws/media_services_CLAUDE.md +0 -494
  453. data/lib/pangea/resources/aws/mediaconvert/job.rb +0 -55
  454. data/lib/pangea/resources/aws/mediaconvert/job_template.rb +0 -55
  455. data/lib/pangea/resources/aws/mediaconvert/preset.rb +0 -55
  456. data/lib/pangea/resources/aws/mediaconvert/queue.rb +0 -55
  457. data/lib/pangea/resources/aws/mediaconvert.rb +0 -90
  458. data/lib/pangea/resources/aws/medialive/channel.rb +0 -55
  459. data/lib/pangea/resources/aws/medialive/input.rb +0 -55
  460. data/lib/pangea/resources/aws/medialive/input_security_group.rb +0 -55
  461. data/lib/pangea/resources/aws/medialive/multiplex.rb +0 -55
  462. data/lib/pangea/resources/aws/medialive/multiplex_program.rb +0 -55
  463. data/lib/pangea/resources/aws/medialive.rb +0 -106
  464. data/lib/pangea/resources/aws/mediapackage/channel.rb +0 -55
  465. data/lib/pangea/resources/aws/mediapackage/origin_endpoint.rb +0 -55
  466. data/lib/pangea/resources/aws/mediapackage/packaging_configuration.rb +0 -55
  467. data/lib/pangea/resources/aws/mediapackage/packaging_group.rb +0 -55
  468. data/lib/pangea/resources/aws/mediapackage.rb +0 -90
  469. data/lib/pangea/resources/aws/migrationhub/progress_update_stream.rb +0 -69
  470. data/lib/pangea/resources/aws/migrationhub/progress_update_stream_resource.rb +0 -55
  471. data/lib/pangea/resources/aws/migrationhub/progress_update_stream_resource.rbs +0 -14
  472. data/lib/pangea/resources/aws/migrationhub.rb +0 -30
  473. data/lib/pangea/resources/aws/opensearch.disabled/CLAUDE.md +0 -480
  474. data/lib/pangea/resources/aws/opensearch.disabled/domain.rb +0 -59
  475. data/lib/pangea/resources/aws/opensearch.disabled/domain_endpoint.rb +0 -88
  476. data/lib/pangea/resources/aws/opensearch.disabled/domain_policy.rb +0 -89
  477. data/lib/pangea/resources/aws/opensearch.disabled/domain_saml_options.rb +0 -105
  478. data/lib/pangea/resources/aws/opensearch.disabled/inbound_connection.rb +0 -75
  479. data/lib/pangea/resources/aws/opensearch.disabled/outbound_connection.rb +0 -137
  480. data/lib/pangea/resources/aws/opensearch.disabled/package.rb +0 -102
  481. data/lib/pangea/resources/aws/opensearch.disabled/package_association.rb +0 -80
  482. data/lib/pangea/resources/aws/opensearch.disabled/serverless_access_policy.rb +0 -143
  483. data/lib/pangea/resources/aws/opensearch.disabled/serverless_collection.rb +0 -109
  484. data/lib/pangea/resources/aws/opensearch.disabled/serverless_security_policy.rb +0 -118
  485. data/lib/pangea/resources/aws/opensearch.disabled/vpc_endpoint.rb +0 -86
  486. data/lib/pangea/resources/aws/opensearch.rb.disabled +0 -36
  487. data/lib/pangea/resources/aws/private5g.rb +0 -132
  488. data/lib/pangea/resources/aws/robomaker.rb +0 -175
  489. data/lib/pangea/resources/aws/sagemaker/feature_group.rb +0 -146
  490. data/lib/pangea/resources/aws/sagemaker/model_package_group.rb +0 -79
  491. data/lib/pangea/resources/aws/sagemaker/pipeline.rb +0 -152
  492. data/lib/pangea/resources/aws/sagemaker.rb +0 -32
  493. data/lib/pangea/resources/aws/security_lake/CLAUDE.md +0 -932
  494. data/lib/pangea/resources/aws/security_lake/aws_log_source.rb +0 -55
  495. data/lib/pangea/resources/aws/security_lake/custom_log_source.rb +0 -55
  496. data/lib/pangea/resources/aws/security_lake/data_lake.rb +0 -55
  497. data/lib/pangea/resources/aws/security_lake/data_lake_exception_subscription.rb +0 -55
  498. data/lib/pangea/resources/aws/security_lake/organization_configuration.rb +0 -55
  499. data/lib/pangea/resources/aws/security_lake/subscriber.rb +0 -55
  500. data/lib/pangea/resources/aws/security_lake/subscriber_notification.rb +0 -55
  501. data/lib/pangea/resources/aws/security_lake.rb +0 -138
  502. data/lib/pangea/resources/aws/servicecatalog/constraint.rb +0 -93
  503. data/lib/pangea/resources/aws/servicecatalog/constraint_resource.rb +0 -55
  504. data/lib/pangea/resources/aws/servicecatalog/constraint_resource.rbs +0 -15
  505. data/lib/pangea/resources/aws/servicecatalog/portfolio.rb +0 -69
  506. data/lib/pangea/resources/aws/servicecatalog/portfolio_resource.rb +0 -55
  507. data/lib/pangea/resources/aws/servicecatalog/portfolio_resource.rbs +0 -15
  508. data/lib/pangea/resources/aws/servicecatalog/principal_portfolio_association.rb +0 -70
  509. data/lib/pangea/resources/aws/servicecatalog/principal_portfolio_association_resource.rb +0 -55
  510. data/lib/pangea/resources/aws/servicecatalog/principal_portfolio_association_resource.rbs +0 -14
  511. data/lib/pangea/resources/aws/servicecatalog/product.rb +0 -108
  512. data/lib/pangea/resources/aws/servicecatalog/product_portfolio_association.rb +0 -70
  513. data/lib/pangea/resources/aws/servicecatalog/product_portfolio_association_resource.rb +0 -55
  514. data/lib/pangea/resources/aws/servicecatalog/product_portfolio_association_resource.rbs +0 -14
  515. data/lib/pangea/resources/aws/servicecatalog/product_resource.rb +0 -55
  516. data/lib/pangea/resources/aws/servicecatalog/product_resource.rbs +0 -16
  517. data/lib/pangea/resources/aws/servicecatalog/provisioned_product.rb +0 -96
  518. data/lib/pangea/resources/aws/servicecatalog/provisioned_product_resource.rb +0 -55
  519. data/lib/pangea/resources/aws/servicecatalog/provisioned_product_resource.rbs +0 -18
  520. data/lib/pangea/resources/aws/servicecatalog/tag_option.rb +0 -75
  521. data/lib/pangea/resources/aws/servicecatalog/tag_option_resource.rb +0 -55
  522. data/lib/pangea/resources/aws/servicecatalog/tag_option_resource.rbs +0 -15
  523. data/lib/pangea/resources/aws/servicecatalog/tag_option_resource_association.rb +0 -65
  524. data/lib/pangea/resources/aws/servicecatalog/tag_option_resource_association_resource.rb +0 -55
  525. data/lib/pangea/resources/aws/servicecatalog/tag_option_resource_association_resource.rbs +0 -14
  526. data/lib/pangea/resources/aws/servicecatalog.rb +0 -44
  527. data/lib/pangea/resources/aws/sfn_extended.disabled/activity.rb +0 -79
  528. data/lib/pangea/resources/aws/sfn_extended.disabled/activity_task.rb +0 -51
  529. data/lib/pangea/resources/aws/sfn_extended.disabled/execution.rb +0 -53
  530. data/lib/pangea/resources/aws/sfn_extended.disabled/express_logging_configuration.rb +0 -54
  531. data/lib/pangea/resources/aws/sfn_extended.disabled/map_run.rb +0 -51
  532. data/lib/pangea/resources/aws/sfn_extended.disabled/state_machine_alias.rb +0 -99
  533. data/lib/pangea/resources/aws/sfn_extended.disabled/state_machine_version.rb +0 -52
  534. data/lib/pangea/resources/aws/sfn_extended.rb +0 -40
  535. data/lib/pangea/resources/aws/ssm/automation_execution.rb +0 -55
  536. data/lib/pangea/resources/aws/ssm/command_invocation.rb +0 -55
  537. data/lib/pangea/resources/aws/ssm/compliance_item.rb +0 -55
  538. data/lib/pangea/resources/aws/ssm/inventory_result_entity.rb +0 -55
  539. data/lib/pangea/resources/aws/ssm/maintenance_window_target.rb +0 -93
  540. data/lib/pangea/resources/aws/ssm/maintenance_window_target_resource.rb +0 -55
  541. data/lib/pangea/resources/aws/ssm/maintenance_window_target_resource.rbs +0 -15
  542. data/lib/pangea/resources/aws/ssm/maintenance_window_task.rb +0 -149
  543. data/lib/pangea/resources/aws/ssm/maintenance_window_task_resource.rb +0 -55
  544. data/lib/pangea/resources/aws/ssm/maintenance_window_task_resource.rbs +0 -15
  545. data/lib/pangea/resources/aws/ssm/ops_item.rb +0 -177
  546. data/lib/pangea/resources/aws/ssm/ops_metadata.rb +0 -55
  547. data/lib/pangea/resources/aws/ssm/patch_manager_patch_baseline_approval_rule.rb +0 -55
  548. data/lib/pangea/resources/aws/ssm/resource_compliance_item.rb +0 -55
  549. data/lib/pangea/resources/aws/ssm/session_manager_preferences.rb +0 -55
  550. data/lib/pangea/resources/aws/ssm/session_preferences.rb +0 -55
  551. data/lib/pangea/resources/aws/ssm.rb +0 -52
  552. data/lib/pangea/resources/aws/sumerian.rb +0 -223
  553. data/lib/pangea/resources/aws/supplychain.rb +0 -120
  554. data/lib/pangea/resources/aws/types/vpc.rb +0 -94
  555. data/lib/pangea/resources/aws/verifiedpermissions.rb +0 -101
  556. data/lib/pangea/resources/aws/vpc/default_network_acl.rb +0 -55
  557. data/lib/pangea/resources/aws/vpc/default_route_table.rb +0 -55
  558. data/lib/pangea/resources/aws/vpc/default_security_group.rb +0 -55
  559. data/lib/pangea/resources/aws/vpc/default_vpc_dhcp_options.rb +0 -55
  560. data/lib/pangea/resources/aws/vpc/vpc_dhcp_options_association.rb +0 -55
  561. data/lib/pangea/resources/aws/vpc/vpc_endpoint_connection_accepter.rb +0 -55
  562. data/lib/pangea/resources/aws/vpc/vpc_endpoint_connection_notification.rb +0 -55
  563. data/lib/pangea/resources/aws/vpc/vpc_endpoint_route_table_association.rb +0 -55
  564. data/lib/pangea/resources/aws/vpc/vpc_endpoint_service_allowed_principal.rb +0 -55
  565. data/lib/pangea/resources/aws/vpc/vpc_endpoint_subnet_association.rb +0 -55
  566. data/lib/pangea/resources/aws/vpc/vpc_network_performance_metric_subscription.rb +0 -55
  567. data/lib/pangea/resources/aws/vpc/vpc_peering_connection_accepter.rb +0 -55
  568. data/lib/pangea/resources/aws/vpc/vpc_peering_connection_options.rb +0 -55
  569. data/lib/pangea/resources/aws/vpc/vpc_security_group_egress_rule.rb +0 -55
  570. data/lib/pangea/resources/aws/vpc/vpc_security_group_ingress_rule.rb +0 -55
  571. data/lib/pangea/resources/aws/vpc.rb +0 -266
  572. data/lib/pangea/resources/aws/wellarchitected/workload.rb +0 -103
  573. data/lib/pangea/resources/aws/wellarchitected/workload_resource.rb +0 -55
  574. data/lib/pangea/resources/aws/wellarchitected/workload_resource.rbs +0 -15
  575. data/lib/pangea/resources/aws/wellarchitected.rb +0 -30
  576. data/lib/pangea/resources/aws.rb +0 -49
  577. data/lib/pangea/resources/aws_acm_certificate/CLAUDE.md +0 -290
  578. data/lib/pangea/resources/aws_acm_certificate/resource.rb +0 -120
  579. data/lib/pangea/resources/aws_acm_certificate/types.rb +0 -153
  580. data/lib/pangea/resources/aws_acm_certificate_validation/CLAUDE.md +0 -437
  581. data/lib/pangea/resources/aws_acm_certificate_validation/resource.rb +0 -75
  582. data/lib/pangea/resources/aws_acm_certificate_validation/types.rb +0 -145
  583. data/lib/pangea/resources/aws_acmpca_certificate_authority/resource.rb +0 -129
  584. data/lib/pangea/resources/aws_acmpca_certificate_authority/types.rb +0 -343
  585. data/lib/pangea/resources/aws_alb_target_group_attachment/resource.rb +0 -67
  586. data/lib/pangea/resources/aws_alb_target_group_attachment/types.rb +0 -46
  587. data/lib/pangea/resources/aws_ami/CLAUDE.md +0 -253
  588. data/lib/pangea/resources/aws_ami/resource.rb +0 -142
  589. data/lib/pangea/resources/aws_ami/types.rb +0 -196
  590. data/lib/pangea/resources/aws_api_gateway_api_key/resource.rb +0 -86
  591. data/lib/pangea/resources/aws_api_gateway_api_key/types.rb +0 -247
  592. data/lib/pangea/resources/aws_api_gateway_deployment/CLAUDE.md +0 -270
  593. data/lib/pangea/resources/aws_api_gateway_deployment/resource.rb +0 -197
  594. data/lib/pangea/resources/aws_api_gateway_deployment/types.rb +0 -199
  595. data/lib/pangea/resources/aws_api_gateway_integration/CLAUDE.md +0 -304
  596. data/lib/pangea/resources/aws_api_gateway_integration/resource.rb +0 -172
  597. data/lib/pangea/resources/aws_api_gateway_integration/types.rb +0 -257
  598. data/lib/pangea/resources/aws_api_gateway_method/CLAUDE.md +0 -235
  599. data/lib/pangea/resources/aws_api_gateway_method/resource.rb +0 -82
  600. data/lib/pangea/resources/aws_api_gateway_method/types.rb +0 -172
  601. data/lib/pangea/resources/aws_api_gateway_resource/CLAUDE.md +0 -215
  602. data/lib/pangea/resources/aws_api_gateway_resource/resource.rb +0 -62
  603. data/lib/pangea/resources/aws_api_gateway_resource/types.rb +0 -129
  604. data/lib/pangea/resources/aws_api_gateway_rest_api/CLAUDE.md +0 -152
  605. data/lib/pangea/resources/aws_api_gateway_rest_api/resource.rb +0 -95
  606. data/lib/pangea/resources/aws_api_gateway_rest_api/types.rb +0 -161
  607. data/lib/pangea/resources/aws_api_gateway_stage/CLAUDE.md +0 -308
  608. data/lib/pangea/resources/aws_api_gateway_stage/resource.rb +0 -335
  609. data/lib/pangea/resources/aws_api_gateway_stage/types.rb +0 -226
  610. data/lib/pangea/resources/aws_api_gateway_usage_plan/resource.rb +0 -122
  611. data/lib/pangea/resources/aws_api_gateway_usage_plan/types.rb +0 -312
  612. data/lib/pangea/resources/aws_api_gateway_usage_plan.rbs +0 -60
  613. data/lib/pangea/resources/aws_application_integration_README.md +0 -453
  614. data/lib/pangea/resources/aws_appstream_fleet/CLAUDE.md +0 -468
  615. data/lib/pangea/resources/aws_appstream_fleet/resource.rb +0 -121
  616. data/lib/pangea/resources/aws_appstream_fleet/types.rb +0 -223
  617. data/lib/pangea/resources/aws_appstream_image_builder/resource.rb +0 -34
  618. data/lib/pangea/resources/aws_appstream_stack/resource.rb +0 -34
  619. data/lib/pangea/resources/aws_appsync_datasource/CLAUDE.md +0 -479
  620. data/lib/pangea/resources/aws_appsync_datasource/resource.rb +0 -152
  621. data/lib/pangea/resources/aws_appsync_datasource/types.rb +0 -176
  622. data/lib/pangea/resources/aws_appsync_datasource.rbs +0 -129
  623. data/lib/pangea/resources/aws_appsync_graphql_api/CLAUDE.md +0 -325
  624. data/lib/pangea/resources/aws_appsync_graphql_api/resource.rb +0 -166
  625. data/lib/pangea/resources/aws_appsync_graphql_api/types.rb +0 -164
  626. data/lib/pangea/resources/aws_appsync_graphql_api.rbs +0 -134
  627. data/lib/pangea/resources/aws_appsync_resolver/CLAUDE.md +0 -459
  628. data/lib/pangea/resources/aws_appsync_resolver/resource.rb +0 -118
  629. data/lib/pangea/resources/aws_appsync_resolver/types.rb +0 -134
  630. data/lib/pangea/resources/aws_appsync_resolver.rbs +0 -86
  631. data/lib/pangea/resources/aws_athena_database/CLAUDE.md +0 -276
  632. data/lib/pangea/resources/aws_athena_database/resource.rb +0 -106
  633. data/lib/pangea/resources/aws_athena_database/types.rb +0 -192
  634. data/lib/pangea/resources/aws_athena_database/types.rbs +0 -38
  635. data/lib/pangea/resources/aws_athena_database.rbs +0 -10
  636. data/lib/pangea/resources/aws_athena_named_query/CLAUDE.md +0 -385
  637. data/lib/pangea/resources/aws_athena_named_query/resource.rb +0 -77
  638. data/lib/pangea/resources/aws_athena_named_query/types.rb +0 -248
  639. data/lib/pangea/resources/aws_athena_named_query/types.rbs +0 -42
  640. data/lib/pangea/resources/aws_athena_named_query.rbs +0 -10
  641. data/lib/pangea/resources/aws_athena_workgroup/CLAUDE.md +0 -315
  642. data/lib/pangea/resources/aws_athena_workgroup/resource.rb +0 -141
  643. data/lib/pangea/resources/aws_athena_workgroup/types.rb +0 -251
  644. data/lib/pangea/resources/aws_athena_workgroup/types.rbs +0 -38
  645. data/lib/pangea/resources/aws_athena_workgroup.rbs +0 -10
  646. data/lib/pangea/resources/aws_auditmanager_assessment.rbs +0 -35
  647. data/lib/pangea/resources/aws_autoscaling_attachment/CLAUDE.md +0 -226
  648. data/lib/pangea/resources/aws_autoscaling_attachment/resource.rb +0 -81
  649. data/lib/pangea/resources/aws_autoscaling_attachment/types.rb +0 -86
  650. data/lib/pangea/resources/aws_autoscaling_group/CLAUDE.md +0 -263
  651. data/lib/pangea/resources/aws_autoscaling_group/resource.rb +0 -175
  652. data/lib/pangea/resources/aws_autoscaling_group/types.rb +0 -236
  653. data/lib/pangea/resources/aws_autoscaling_group_tag/resource.rb +0 -67
  654. data/lib/pangea/resources/aws_autoscaling_group_tag/types.rb +0 -46
  655. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/CLAUDE.md +0 -357
  656. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/resource.rb +0 -67
  657. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/types.rb +0 -46
  658. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/types.rbs +0 -42
  659. data/lib/pangea/resources/aws_autoscaling_notification/CLAUDE.md +0 -405
  660. data/lib/pangea/resources/aws_autoscaling_notification/resource.rb +0 -67
  661. data/lib/pangea/resources/aws_autoscaling_notification/types.rb +0 -46
  662. data/lib/pangea/resources/aws_autoscaling_notification/types.rbs +0 -41
  663. data/lib/pangea/resources/aws_autoscaling_policy/CLAUDE.md +0 -278
  664. data/lib/pangea/resources/aws_autoscaling_policy/resource.rb +0 -168
  665. data/lib/pangea/resources/aws_autoscaling_policy/types.rb +0 -239
  666. data/lib/pangea/resources/aws_autoscaling_policy_step_adjustment/resource.rb +0 -67
  667. data/lib/pangea/resources/aws_autoscaling_policy_step_adjustment/types.rb +0 -46
  668. data/lib/pangea/resources/aws_autoscaling_policy_target_tracking_scaling_policy/resource.rb +0 -67
  669. data/lib/pangea/resources/aws_autoscaling_policy_target_tracking_scaling_policy/types.rb +0 -46
  670. data/lib/pangea/resources/aws_autoscaling_schedule/CLAUDE.md +0 -219
  671. data/lib/pangea/resources/aws_autoscaling_schedule/resource.rb +0 -67
  672. data/lib/pangea/resources/aws_autoscaling_schedule/types.rb +0 -46
  673. data/lib/pangea/resources/aws_autoscaling_schedule/types.rbs +0 -45
  674. data/lib/pangea/resources/aws_autoscaling_tag/CLAUDE.md +0 -443
  675. data/lib/pangea/resources/aws_autoscaling_tag/resource.rb +0 -119
  676. data/lib/pangea/resources/aws_autoscaling_tag/types.rb +0 -233
  677. data/lib/pangea/resources/aws_autoscaling_tag/types.rbs +0 -60
  678. data/lib/pangea/resources/aws_autoscaling_traffic_source_attachment/resource.rb +0 -67
  679. data/lib/pangea/resources/aws_autoscaling_traffic_source_attachment/types.rb +0 -46
  680. data/lib/pangea/resources/aws_autoscaling_warm_pool/resource.rb +0 -67
  681. data/lib/pangea/resources/aws_autoscaling_warm_pool/types.rb +0 -46
  682. data/lib/pangea/resources/aws_batch_compute_environment/CLAUDE.md +0 -571
  683. data/lib/pangea/resources/aws_batch_compute_environment/resource.rb +0 -158
  684. data/lib/pangea/resources/aws_batch_compute_environment/types.rb +0 -332
  685. data/lib/pangea/resources/aws_batch_compute_environment.rbs +0 -33
  686. data/lib/pangea/resources/aws_batch_job_definition/CLAUDE.md +0 -714
  687. data/lib/pangea/resources/aws_batch_job_definition/resource.rb +0 -253
  688. data/lib/pangea/resources/aws_batch_job_definition/types.rb +0 -548
  689. data/lib/pangea/resources/aws_batch_job_queue/CLAUDE.md +0 -585
  690. data/lib/pangea/resources/aws_batch_job_queue/resource.rb +0 -72
  691. data/lib/pangea/resources/aws_batch_job_queue/types.rb +0 -371
  692. data/lib/pangea/resources/aws_billing_service_account/resource.rb +0 -56
  693. data/lib/pangea/resources/aws_billing_service_account/types.rb +0 -43
  694. data/lib/pangea/resources/aws_blockchain_query/resource.rb +0 -122
  695. data/lib/pangea/resources/aws_blockchain_query/types.rb +0 -339
  696. data/lib/pangea/resources/aws_blockchain_token_balance/resource.rb +0 -94
  697. data/lib/pangea/resources/aws_blockchain_token_balance/types.rb +0 -319
  698. data/lib/pangea/resources/aws_braket_device/CLAUDE.md +0 -331
  699. data/lib/pangea/resources/aws_braket_device/resource.rb +0 -118
  700. data/lib/pangea/resources/aws_braket_device/types.rb +0 -242
  701. data/lib/pangea/resources/aws_braket_device_capabilities/resource.rb +0 -86
  702. data/lib/pangea/resources/aws_braket_device_capabilities/types.rb +0 -251
  703. data/lib/pangea/resources/aws_braket_job/resource.rb +0 -162
  704. data/lib/pangea/resources/aws_braket_job/types.rb +0 -265
  705. data/lib/pangea/resources/aws_braket_job_queue/resource.rb +0 -111
  706. data/lib/pangea/resources/aws_braket_job_queue/types.rb +0 -246
  707. data/lib/pangea/resources/aws_braket_local_simulator/resource.rb +0 -149
  708. data/lib/pangea/resources/aws_braket_local_simulator/types.rb +0 -301
  709. data/lib/pangea/resources/aws_braket_quantum_task/CLAUDE.md +0 -188
  710. data/lib/pangea/resources/aws_braket_quantum_task/resource.rb +0 -90
  711. data/lib/pangea/resources/aws_braket_quantum_task/types.rb +0 -171
  712. data/lib/pangea/resources/aws_budgets_budget/CLAUDE.md +0 -304
  713. data/lib/pangea/resources/aws_budgets_budget/resource.rb +0 -199
  714. data/lib/pangea/resources/aws_budgets_budget/types.rb +0 -337
  715. data/lib/pangea/resources/aws_budgets_budget_action/CLAUDE.md +0 -357
  716. data/lib/pangea/resources/aws_budgets_budget_action/resource.rb +0 -201
  717. data/lib/pangea/resources/aws_budgets_budget_action/types.rb +0 -417
  718. data/lib/pangea/resources/aws_ce_anomaly_detector/resource.rb +0 -65
  719. data/lib/pangea/resources/aws_ce_anomaly_detector/types.rb +0 -72
  720. data/lib/pangea/resources/aws_ce_anomaly_subscription/resource.rb +0 -62
  721. data/lib/pangea/resources/aws_ce_anomaly_subscription/types.rb +0 -59
  722. data/lib/pangea/resources/aws_ce_cost_category/resource.rb +0 -204
  723. data/lib/pangea/resources/aws_ce_cost_category/types.rb +0 -399
  724. data/lib/pangea/resources/aws_cloudformation_stack/CLAUDE.md +0 -244
  725. data/lib/pangea/resources/aws_cloudformation_stack/resource.rb +0 -139
  726. data/lib/pangea/resources/aws_cloudformation_stack/types.rb +0 -244
  727. data/lib/pangea/resources/aws_cloudformation_stack/types.rbs +0 -46
  728. data/lib/pangea/resources/aws_cloudformation_stack_set/CLAUDE.md +0 -309
  729. data/lib/pangea/resources/aws_cloudformation_stack_set/resource.rb +0 -152
  730. data/lib/pangea/resources/aws_cloudformation_stack_set/types.rb +0 -311
  731. data/lib/pangea/resources/aws_cloudformation_stack_set/types.rbs +0 -48
  732. data/lib/pangea/resources/aws_cloudfront_cache_policy/resource.rb +0 -84
  733. data/lib/pangea/resources/aws_cloudfront_cache_policy/types.rb +0 -56
  734. data/lib/pangea/resources/aws_cloudfront_distribution/CLAUDE.md +0 -62
  735. data/lib/pangea/resources/aws_cloudfront_distribution/resource.rb +0 -251
  736. data/lib/pangea/resources/aws_cloudfront_distribution/types.rb +0 -415
  737. data/lib/pangea/resources/aws_cloudfront_key_group/resource.rb +0 -71
  738. data/lib/pangea/resources/aws_cloudfront_key_group/types.rb +0 -191
  739. data/lib/pangea/resources/aws_cloudfront_origin_access_control/resource.rb +0 -68
  740. data/lib/pangea/resources/aws_cloudfront_origin_access_control/types.rb +0 -100
  741. data/lib/pangea/resources/aws_cloudfront_origin_request_policy/resource.rb +0 -76
  742. data/lib/pangea/resources/aws_cloudfront_origin_request_policy/types.rb +0 -49
  743. data/lib/pangea/resources/aws_cloudfront_public_key/resource.rb +0 -69
  744. data/lib/pangea/resources/aws_cloudfront_public_key/types.rb +0 -177
  745. data/lib/pangea/resources/aws_cloudfront_public_key.rbs +0 -30
  746. data/lib/pangea/resources/aws_cloudfront_response_headers_policy/resource.rb +0 -175
  747. data/lib/pangea/resources/aws_cloudfront_response_headers_policy/types.rb +0 -385
  748. data/lib/pangea/resources/aws_cloudtrail/resource.rb +0 -133
  749. data/lib/pangea/resources/aws_cloudtrail/types.rb +0 -364
  750. data/lib/pangea/resources/aws_cloudtrail.rbs +0 -10
  751. data/lib/pangea/resources/aws_cloudtrail_event_data_store/resource.rb +0 -64
  752. data/lib/pangea/resources/aws_cloudtrail_event_data_store/types.rb +0 -73
  753. data/lib/pangea/resources/aws_cloudtrail_event_data_store.rbs +0 -10
  754. data/lib/pangea/resources/aws_cloudwatch_anomaly_detector/resource.rb +0 -103
  755. data/lib/pangea/resources/aws_cloudwatch_composite_alarm/CLAUDE.md +0 -288
  756. data/lib/pangea/resources/aws_cloudwatch_composite_alarm/resource.rb +0 -133
  757. data/lib/pangea/resources/aws_cloudwatch_composite_alarm/types.rb +0 -134
  758. data/lib/pangea/resources/aws_cloudwatch_dashboard/CLAUDE.md +0 -342
  759. data/lib/pangea/resources/aws_cloudwatch_dashboard/resource.rb +0 -156
  760. data/lib/pangea/resources/aws_cloudwatch_dashboard/types.rb +0 -302
  761. data/lib/pangea/resources/aws_cloudwatch_event_rule/CLAUDE.md +0 -568
  762. data/lib/pangea/resources/aws_cloudwatch_event_rule/resource.rb +0 -143
  763. data/lib/pangea/resources/aws_cloudwatch_event_rule/types.rb +0 -181
  764. data/lib/pangea/resources/aws_cloudwatch_event_target/CLAUDE.md +0 -625
  765. data/lib/pangea/resources/aws_cloudwatch_event_target/resource.rb +0 -226
  766. data/lib/pangea/resources/aws_cloudwatch_event_target/types.rb +0 -231
  767. data/lib/pangea/resources/aws_cloudwatch_insight_rule/resource.rb +0 -101
  768. data/lib/pangea/resources/aws_cloudwatch_log_data_protection_policy/resource.rb +0 -99
  769. data/lib/pangea/resources/aws_cloudwatch_log_destination/CLAUDE.md +0 -388
  770. data/lib/pangea/resources/aws_cloudwatch_log_destination/resource.rb +0 -103
  771. data/lib/pangea/resources/aws_cloudwatch_log_destination/types.rb +0 -103
  772. data/lib/pangea/resources/aws_cloudwatch_log_destination_policy/CLAUDE.md +0 -479
  773. data/lib/pangea/resources/aws_cloudwatch_log_destination_policy/resource.rb +0 -132
  774. data/lib/pangea/resources/aws_cloudwatch_log_destination_policy/types.rb +0 -130
  775. data/lib/pangea/resources/aws_cloudwatch_log_group/CLAUDE.md +0 -175
  776. data/lib/pangea/resources/aws_cloudwatch_log_group/resource.rb +0 -120
  777. data/lib/pangea/resources/aws_cloudwatch_log_group/types.rb +0 -138
  778. data/lib/pangea/resources/aws_cloudwatch_log_metric_filter/CLAUDE.md +0 -502
  779. data/lib/pangea/resources/aws_cloudwatch_log_metric_filter/resource.rb +0 -130
  780. data/lib/pangea/resources/aws_cloudwatch_log_metric_filter/types.rb +0 -139
  781. data/lib/pangea/resources/aws_cloudwatch_log_resource_policy/resource.rb +0 -82
  782. data/lib/pangea/resources/aws_cloudwatch_log_stream/CLAUDE.md +0 -260
  783. data/lib/pangea/resources/aws_cloudwatch_log_stream/resource.rb +0 -90
  784. data/lib/pangea/resources/aws_cloudwatch_log_stream/types.rb +0 -130
  785. data/lib/pangea/resources/aws_cloudwatch_log_subscription_filter/CLAUDE.md +0 -473
  786. data/lib/pangea/resources/aws_cloudwatch_log_subscription_filter/resource.rb +0 -105
  787. data/lib/pangea/resources/aws_cloudwatch_log_subscription_filter/types.rb +0 -142
  788. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/CLAUDE.md +0 -317
  789. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/resource.rb +0 -198
  790. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/types.rb +0 -242
  791. data/lib/pangea/resources/aws_cloudwatch_query_definition/resource.rb +0 -93
  792. data/lib/pangea/resources/aws_codeartifact_domain/CLAUDE.md +0 -54
  793. data/lib/pangea/resources/aws_codeartifact_domain/resource.rb +0 -126
  794. data/lib/pangea/resources/aws_codeartifact_domain/types.rb +0 -131
  795. data/lib/pangea/resources/aws_codeartifact_repository/CLAUDE.md +0 -55
  796. data/lib/pangea/resources/aws_codeartifact_repository/resource.rb +0 -176
  797. data/lib/pangea/resources/aws_codeartifact_repository/types.rb +0 -196
  798. data/lib/pangea/resources/aws_codebuild_project/CLAUDE.md +0 -304
  799. data/lib/pangea/resources/aws_codebuild_project/resource.rb +0 -254
  800. data/lib/pangea/resources/aws_codebuild_project/types.rb +0 -288
  801. data/lib/pangea/resources/aws_codebuild_project/types.rbs +0 -140
  802. data/lib/pangea/resources/aws_codebuild_project.rbs +0 -10
  803. data/lib/pangea/resources/aws_codecommit_repository/CLAUDE.md +0 -150
  804. data/lib/pangea/resources/aws_codecommit_repository/resource.rb +0 -100
  805. data/lib/pangea/resources/aws_codecommit_repository/types.rb +0 -122
  806. data/lib/pangea/resources/aws_codecommit_repository/types.rbs +0 -55
  807. data/lib/pangea/resources/aws_codecommit_repository.rbs +0 -10
  808. data/lib/pangea/resources/aws_codedeploy_application/CLAUDE.md +0 -312
  809. data/lib/pangea/resources/aws_codedeploy_application/resource.rb +0 -81
  810. data/lib/pangea/resources/aws_codedeploy_application/types.rb +0 -98
  811. data/lib/pangea/resources/aws_codedeploy_application.rbs +0 -10
  812. data/lib/pangea/resources/aws_codedeploy_deployment_config/CLAUDE.md +0 -354
  813. data/lib/pangea/resources/aws_codedeploy_deployment_config/resource.rb +0 -97
  814. data/lib/pangea/resources/aws_codedeploy_deployment_config/types.rb +0 -143
  815. data/lib/pangea/resources/aws_codedeploy_deployment_config.rbs +0 -10
  816. data/lib/pangea/resources/aws_codedeploy_deployment_group/CLAUDE.md +0 -342
  817. data/lib/pangea/resources/aws_codedeploy_deployment_group/resource.rb +0 -224
  818. data/lib/pangea/resources/aws_codedeploy_deployment_group/types.rb +0 -249
  819. data/lib/pangea/resources/aws_codedeploy_deployment_group.rbs +0 -10
  820. data/lib/pangea/resources/aws_codepipeline/CLAUDE.md +0 -592
  821. data/lib/pangea/resources/aws_codepipeline/resource.rb +0 -126
  822. data/lib/pangea/resources/aws_codepipeline/types.rb +0 -212
  823. data/lib/pangea/resources/aws_codepipeline.rbs +0 -10
  824. data/lib/pangea/resources/aws_codepipeline_webhook/CLAUDE.md +0 -449
  825. data/lib/pangea/resources/aws_codepipeline_webhook/resource.rb +0 -94
  826. data/lib/pangea/resources/aws_codepipeline_webhook/types.rb +0 -134
  827. data/lib/pangea/resources/aws_codepipeline_webhook.rbs +0 -10
  828. data/lib/pangea/resources/aws_codestar_connection/CLAUDE.md +0 -55
  829. data/lib/pangea/resources/aws_codestar_connection/resource.rb +0 -136
  830. data/lib/pangea/resources/aws_codestar_connection/types.rb +0 -191
  831. data/lib/pangea/resources/aws_cognito_identity_pool/CLAUDE.md +0 -712
  832. data/lib/pangea/resources/aws_cognito_identity_pool/resource.rb +0 -110
  833. data/lib/pangea/resources/aws_cognito_identity_pool/types.rb +0 -343
  834. data/lib/pangea/resources/aws_cognito_identity_provider/resource.rb +0 -91
  835. data/lib/pangea/resources/aws_cognito_identity_provider/types.rb +0 -480
  836. data/lib/pangea/resources/aws_cognito_user/resource.rb +0 -81
  837. data/lib/pangea/resources/aws_cognito_user/types.rb +0 -145
  838. data/lib/pangea/resources/aws_cognito_user_group/resource.rb +0 -64
  839. data/lib/pangea/resources/aws_cognito_user_group/types.rb +0 -130
  840. data/lib/pangea/resources/aws_cognito_user_pool/CLAUDE.md +0 -431
  841. data/lib/pangea/resources/aws_cognito_user_pool/resource.rb +0 -251
  842. data/lib/pangea/resources/aws_cognito_user_pool/types.rb +0 -359
  843. data/lib/pangea/resources/aws_cognito_user_pool_client/CLAUDE.md +0 -542
  844. data/lib/pangea/resources/aws_cognito_user_pool_client/resource.rb +0 -139
  845. data/lib/pangea/resources/aws_cognito_user_pool_client/types.rb +0 -394
  846. data/lib/pangea/resources/aws_cognito_user_pool_domain/CLAUDE.md +0 -524
  847. data/lib/pangea/resources/aws_cognito_user_pool_domain/resource.rb +0 -71
  848. data/lib/pangea/resources/aws_cognito_user_pool_domain/types.rb +0 -252
  849. data/lib/pangea/resources/aws_config_config_rule/CLAUDE.md +0 -381
  850. data/lib/pangea/resources/aws_config_config_rule/resource.rb +0 -190
  851. data/lib/pangea/resources/aws_config_config_rule/types.rb +0 -231
  852. data/lib/pangea/resources/aws_config_config_rule.rbs +0 -10
  853. data/lib/pangea/resources/aws_config_configuration_recorder/CLAUDE.md +0 -247
  854. data/lib/pangea/resources/aws_config_configuration_recorder/resource.rb +0 -139
  855. data/lib/pangea/resources/aws_config_configuration_recorder/types.rb +0 -156
  856. data/lib/pangea/resources/aws_config_configuration_recorder.rbs +0 -10
  857. data/lib/pangea/resources/aws_config_delivery_channel/CLAUDE.md +0 -290
  858. data/lib/pangea/resources/aws_config_delivery_channel/resource.rb +0 -141
  859. data/lib/pangea/resources/aws_config_delivery_channel/types.rb +0 -195
  860. data/lib/pangea/resources/aws_config_delivery_channel.rbs +0 -10
  861. data/lib/pangea/resources/aws_config_remediation_configuration/resource.rb +0 -77
  862. data/lib/pangea/resources/aws_config_remediation_configuration/types.rb +0 -119
  863. data/lib/pangea/resources/aws_config_remediation_configuration.rbs +0 -10
  864. data/lib/pangea/resources/aws_cur_report_definition/resource.rb +0 -63
  865. data/lib/pangea/resources/aws_cur_report_definition/types.rb +0 -80
  866. data/lib/pangea/resources/aws_customer_gateway/CLAUDE.md +0 -458
  867. data/lib/pangea/resources/aws_customer_gateway/resource.rb +0 -93
  868. data/lib/pangea/resources/aws_customer_gateway/types.rb +0 -117
  869. data/lib/pangea/resources/aws_db_cluster_snapshot/resource.rb +0 -95
  870. data/lib/pangea/resources/aws_db_cluster_snapshot/types.rb +0 -245
  871. data/lib/pangea/resources/aws_db_instance/CLAUDE.md +0 -407
  872. data/lib/pangea/resources/aws_db_instance/resource.rb +0 -126
  873. data/lib/pangea/resources/aws_db_instance/types.rb +0 -260
  874. data/lib/pangea/resources/aws_db_parameter_group/CLAUDE.md +0 -285
  875. data/lib/pangea/resources/aws_db_parameter_group/resource.rb +0 -94
  876. data/lib/pangea/resources/aws_db_parameter_group/types.rb +0 -300
  877. data/lib/pangea/resources/aws_db_snapshot/resource.rb +0 -92
  878. data/lib/pangea/resources/aws_db_snapshot/types.rb +0 -175
  879. data/lib/pangea/resources/aws_db_subnet_group/CLAUDE.md +0 -189
  880. data/lib/pangea/resources/aws_db_subnet_group/resource.rb +0 -77
  881. data/lib/pangea/resources/aws_db_subnet_group/types.rb +0 -102
  882. data/lib/pangea/resources/aws_default_network_acl/resource.rb +0 -67
  883. data/lib/pangea/resources/aws_default_network_acl/types.rb +0 -46
  884. data/lib/pangea/resources/aws_default_route_table/resource.rb +0 -67
  885. data/lib/pangea/resources/aws_default_route_table/types.rb +0 -46
  886. data/lib/pangea/resources/aws_default_security_group/resource.rb +0 -67
  887. data/lib/pangea/resources/aws_default_security_group/types.rb +0 -46
  888. data/lib/pangea/resources/aws_default_vpc_dhcp_options/resource.rb +0 -67
  889. data/lib/pangea/resources/aws_default_vpc_dhcp_options/types.rb +0 -46
  890. data/lib/pangea/resources/aws_detective_graph.rbs +0 -29
  891. data/lib/pangea/resources/aws_device_farm_project/CLAUDE.md +0 -299
  892. data/lib/pangea/resources/aws_device_farm_project/resource.rb +0 -78
  893. data/lib/pangea/resources/aws_device_farm_project/types.rb +0 -51
  894. data/lib/pangea/resources/aws_device_farm_project.rbs +0 -33
  895. data/lib/pangea/resources/aws_directory_service_directory/resource.rb +0 -34
  896. data/lib/pangea/resources/aws_docdb_certificate/CLAUDE.md +0 -96
  897. data/lib/pangea/resources/aws_docdb_certificate/resource.rb +0 -74
  898. data/lib/pangea/resources/aws_docdb_certificate/types.rb +0 -48
  899. data/lib/pangea/resources/aws_docdb_cluster/CLAUDE.md +0 -96
  900. data/lib/pangea/resources/aws_docdb_cluster/resource.rb +0 -96
  901. data/lib/pangea/resources/aws_docdb_cluster/types.rb +0 -70
  902. data/lib/pangea/resources/aws_docdb_cluster_endpoint/CLAUDE.md +0 -96
  903. data/lib/pangea/resources/aws_docdb_cluster_endpoint/resource.rb +0 -74
  904. data/lib/pangea/resources/aws_docdb_cluster_endpoint/types.rb +0 -52
  905. data/lib/pangea/resources/aws_docdb_cluster_instance/CLAUDE.md +0 -96
  906. data/lib/pangea/resources/aws_docdb_cluster_instance/resource.rb +0 -89
  907. data/lib/pangea/resources/aws_docdb_cluster_instance/types.rb +0 -61
  908. data/lib/pangea/resources/aws_docdb_cluster_parameter_group/CLAUDE.md +0 -96
  909. data/lib/pangea/resources/aws_docdb_cluster_parameter_group/resource.rb +0 -71
  910. data/lib/pangea/resources/aws_docdb_cluster_parameter_group/types.rb +0 -51
  911. data/lib/pangea/resources/aws_docdb_cluster_snapshot/CLAUDE.md +0 -96
  912. data/lib/pangea/resources/aws_docdb_cluster_snapshot/resource.rb +0 -80
  913. data/lib/pangea/resources/aws_docdb_cluster_snapshot/types.rb +0 -49
  914. data/lib/pangea/resources/aws_docdb_event_subscription/CLAUDE.md +0 -96
  915. data/lib/pangea/resources/aws_docdb_event_subscription/resource.rb +0 -74
  916. data/lib/pangea/resources/aws_docdb_event_subscription/types.rb +0 -53
  917. data/lib/pangea/resources/aws_docdb_global_cluster/CLAUDE.md +0 -96
  918. data/lib/pangea/resources/aws_docdb_global_cluster/resource.rb +0 -76
  919. data/lib/pangea/resources/aws_docdb_global_cluster/types.rb +0 -54
  920. data/lib/pangea/resources/aws_docdb_subnet_group/CLAUDE.md +0 -96
  921. data/lib/pangea/resources/aws_docdb_subnet_group/resource.rb +0 -70
  922. data/lib/pangea/resources/aws_docdb_subnet_group/types.rb +0 -50
  923. data/lib/pangea/resources/aws_drs_launch_configuration_template/resource.rb +0 -183
  924. data/lib/pangea/resources/aws_drs_replication_configuration_template/resource.rb +0 -156
  925. data/lib/pangea/resources/aws_dynamodb_global_table/CLAUDE.md +0 -184
  926. data/lib/pangea/resources/aws_dynamodb_global_table/resource.rb +0 -134
  927. data/lib/pangea/resources/aws_dynamodb_global_table/types.rb +0 -272
  928. data/lib/pangea/resources/aws_dynamodb_global_table/types.rbs +0 -39
  929. data/lib/pangea/resources/aws_dynamodb_kinesis_streaming_destination/resource.rb +0 -70
  930. data/lib/pangea/resources/aws_dynamodb_kinesis_streaming_destination/types.rb +0 -76
  931. data/lib/pangea/resources/aws_dynamodb_table/CLAUDE.md +0 -130
  932. data/lib/pangea/resources/aws_dynamodb_table/resource.rb +0 -224
  933. data/lib/pangea/resources/aws_dynamodb_table/types.rb +0 -408
  934. data/lib/pangea/resources/aws_dynamodb_table/types.rbs +0 -55
  935. data/lib/pangea/resources/aws_dynamodb_table_export/resource.rb +0 -85
  936. data/lib/pangea/resources/aws_dynamodb_table_export/types.rb +0 -98
  937. data/lib/pangea/resources/aws_ebs_volume/CLAUDE.md +0 -275
  938. data/lib/pangea/resources/aws_ebs_volume/resource.rb +0 -114
  939. data/lib/pangea/resources/aws_ebs_volume/types.rb +0 -250
  940. data/lib/pangea/resources/aws_ec2_ami_launch_permission/resource.rb +0 -67
  941. data/lib/pangea/resources/aws_ec2_ami_launch_permission/types.rb +0 -46
  942. data/lib/pangea/resources/aws_ec2_availability_zone_group/resource.rb +0 -67
  943. data/lib/pangea/resources/aws_ec2_availability_zone_group/types.rb +0 -46
  944. data/lib/pangea/resources/aws_ec2_capacity_block_reservation/resource.rb +0 -67
  945. data/lib/pangea/resources/aws_ec2_capacity_block_reservation/types.rb +0 -46
  946. data/lib/pangea/resources/aws_ec2_capacity_reservation/resource.rb +0 -67
  947. data/lib/pangea/resources/aws_ec2_capacity_reservation/types.rb +0 -46
  948. data/lib/pangea/resources/aws_ec2_dedicated_host/resource.rb +0 -67
  949. data/lib/pangea/resources/aws_ec2_dedicated_host/types.rb +0 -46
  950. data/lib/pangea/resources/aws_ec2_fleet/resource.rb +0 -67
  951. data/lib/pangea/resources/aws_ec2_fleet/types.rb +0 -46
  952. data/lib/pangea/resources/aws_ec2_host_resource_group_association/resource.rb +0 -67
  953. data/lib/pangea/resources/aws_ec2_host_resource_group_association/types.rb +0 -46
  954. data/lib/pangea/resources/aws_ec2_image_block_public_access/resource.rb +0 -67
  955. data/lib/pangea/resources/aws_ec2_image_block_public_access/types.rb +0 -46
  956. data/lib/pangea/resources/aws_ec2_instance_metadata_defaults/resource.rb +0 -67
  957. data/lib/pangea/resources/aws_ec2_instance_metadata_defaults/types.rb +0 -46
  958. data/lib/pangea/resources/aws_ec2_serial_console_access/resource.rb +0 -67
  959. data/lib/pangea/resources/aws_ec2_serial_console_access/types.rb +0 -46
  960. data/lib/pangea/resources/aws_ec2_snapshot_block_public_access/resource.rb +0 -67
  961. data/lib/pangea/resources/aws_ec2_snapshot_block_public_access/types.rb +0 -46
  962. data/lib/pangea/resources/aws_ec2_spot_datafeed_subscription/resource.rb +0 -67
  963. data/lib/pangea/resources/aws_ec2_spot_datafeed_subscription/types.rb +0 -46
  964. data/lib/pangea/resources/aws_ec2_spot_fleet_request/resource.rb +0 -67
  965. data/lib/pangea/resources/aws_ec2_spot_fleet_request/types.rb +0 -46
  966. data/lib/pangea/resources/aws_ec2_spot_instance_request/resource.rb +0 -67
  967. data/lib/pangea/resources/aws_ec2_spot_instance_request/types.rb +0 -46
  968. data/lib/pangea/resources/aws_ec2_tag/resource.rb +0 -67
  969. data/lib/pangea/resources/aws_ec2_tag/types.rb +0 -46
  970. data/lib/pangea/resources/aws_ec2_transit_gateway/CLAUDE.md +0 -220
  971. data/lib/pangea/resources/aws_ec2_transit_gateway/resource.rb +0 -114
  972. data/lib/pangea/resources/aws_ec2_transit_gateway/types.rb +0 -124
  973. data/lib/pangea/resources/aws_ec2_transit_gateway.rbs +0 -29
  974. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain/resource.rb +0 -67
  975. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain/types.rb +0 -46
  976. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain_association/resource.rb +0 -67
  977. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain_association/types.rb +0 -46
  978. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_group_member/resource.rb +0 -67
  979. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_group_member/types.rb +0 -46
  980. data/lib/pangea/resources/aws_ec2_transit_gateway_route/CLAUDE.md +0 -458
  981. data/lib/pangea/resources/aws_ec2_transit_gateway_route/resource.rb +0 -81
  982. data/lib/pangea/resources/aws_ec2_transit_gateway_route/types.rb +0 -233
  983. data/lib/pangea/resources/aws_ec2_transit_gateway_route.rbs +0 -27
  984. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table/CLAUDE.md +0 -384
  985. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table/resource.rb +0 -77
  986. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table/types.rb +0 -171
  987. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table.rbs +0 -24
  988. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_association/CLAUDE.md +0 -409
  989. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_association/resource.rb +0 -74
  990. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_association/types.rb +0 -167
  991. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_association.rbs +0 -25
  992. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/CLAUDE.md +0 -433
  993. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/resource.rb +0 -70
  994. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/types.rb +0 -213
  995. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation.rbs +0 -25
  996. data/lib/pangea/resources/aws_ec2_transit_gateway_vpc_attachment/CLAUDE.md +0 -326
  997. data/lib/pangea/resources/aws_ec2_transit_gateway_vpc_attachment/resource.rb +0 -101
  998. data/lib/pangea/resources/aws_ec2_transit_gateway_vpc_attachment/types.rb +0 -152
  999. data/lib/pangea/resources/aws_ec2_transit_gateway_vpc_attachment.rbs +0 -30
  1000. data/lib/pangea/resources/aws_ecr_lifecycle_policy/CLAUDE.md +0 -56
  1001. data/lib/pangea/resources/aws_ecr_lifecycle_policy/resource.rb +0 -164
  1002. data/lib/pangea/resources/aws_ecr_lifecycle_policy/types.rb +0 -220
  1003. data/lib/pangea/resources/aws_ecr_replication_configuration/CLAUDE.md +0 -55
  1004. data/lib/pangea/resources/aws_ecr_replication_configuration/resource.rb +0 -147
  1005. data/lib/pangea/resources/aws_ecr_replication_configuration/types.rb +0 -169
  1006. data/lib/pangea/resources/aws_ecr_repository/CLAUDE.md +0 -54
  1007. data/lib/pangea/resources/aws_ecr_repository/resource.rb +0 -143
  1008. data/lib/pangea/resources/aws_ecr_repository/types.rb +0 -128
  1009. data/lib/pangea/resources/aws_ecr_repository_policy/CLAUDE.md +0 -55
  1010. data/lib/pangea/resources/aws_ecr_repository_policy/resource.rb +0 -133
  1011. data/lib/pangea/resources/aws_ecr_repository_policy/types.rb +0 -193
  1012. data/lib/pangea/resources/aws_ecs_capacity_provider/resource.rb +0 -106
  1013. data/lib/pangea/resources/aws_ecs_capacity_provider/types.rb +0 -114
  1014. data/lib/pangea/resources/aws_ecs_cluster/CLAUDE.md +0 -218
  1015. data/lib/pangea/resources/aws_ecs_cluster/resource.rb +0 -130
  1016. data/lib/pangea/resources/aws_ecs_cluster/types.rb +0 -155
  1017. data/lib/pangea/resources/aws_ecs_cluster_capacity_providers/CLAUDE.md +0 -191
  1018. data/lib/pangea/resources/aws_ecs_cluster_capacity_providers/resource.rb +0 -79
  1019. data/lib/pangea/resources/aws_ecs_cluster_capacity_providers/types.rb +0 -171
  1020. data/lib/pangea/resources/aws_ecs_service/CLAUDE.md +0 -256
  1021. data/lib/pangea/resources/aws_ecs_service/resource.rb +0 -242
  1022. data/lib/pangea/resources/aws_ecs_service/types.rb +0 -327
  1023. data/lib/pangea/resources/aws_ecs_task_definition/CLAUDE.md +0 -281
  1024. data/lib/pangea/resources/aws_ecs_task_definition/resource.rb +0 -318
  1025. data/lib/pangea/resources/aws_ecs_task_definition/types.rb +0 -439
  1026. data/lib/pangea/resources/aws_ecs_task_definition/types_old.rb +0 -439
  1027. data/lib/pangea/resources/aws_efs_access_point/CLAUDE.md +0 -504
  1028. data/lib/pangea/resources/aws_efs_access_point/resource.rb +0 -77
  1029. data/lib/pangea/resources/aws_efs_access_point/types.rb +0 -185
  1030. data/lib/pangea/resources/aws_efs_file_system/CLAUDE.md +0 -279
  1031. data/lib/pangea/resources/aws_efs_file_system/resource.rb +0 -80
  1032. data/lib/pangea/resources/aws_efs_file_system/types.rb +0 -106
  1033. data/lib/pangea/resources/aws_efs_mount_target/CLAUDE.md +0 -361
  1034. data/lib/pangea/resources/aws_efs_mount_target/resource.rb +0 -68
  1035. data/lib/pangea/resources/aws_efs_mount_target/types.rb +0 -100
  1036. data/lib/pangea/resources/aws_eip/CLAUDE.md +0 -325
  1037. data/lib/pangea/resources/aws_eip/resource.rb +0 -105
  1038. data/lib/pangea/resources/aws_eip/types.rb +0 -102
  1039. data/lib/pangea/resources/aws_eip_association/CLAUDE.md +0 -96
  1040. data/lib/pangea/resources/aws_eip_association/resource.rb +0 -77
  1041. data/lib/pangea/resources/aws_eip_association/types.rb +0 -88
  1042. data/lib/pangea/resources/aws_eks_access_entry/resource.rb +0 -92
  1043. data/lib/pangea/resources/aws_eks_access_entry/types.rb +0 -110
  1044. data/lib/pangea/resources/aws_eks_addon/CLAUDE.md +0 -271
  1045. data/lib/pangea/resources/aws_eks_addon/resource.rb +0 -153
  1046. data/lib/pangea/resources/aws_eks_addon/types.rb +0 -199
  1047. data/lib/pangea/resources/aws_eks_cluster/CLAUDE.md +0 -198
  1048. data/lib/pangea/resources/aws_eks_cluster/resource.rb +0 -165
  1049. data/lib/pangea/resources/aws_eks_cluster/types.rb +0 -195
  1050. data/lib/pangea/resources/aws_eks_fargate_profile/CLAUDE.md +0 -266
  1051. data/lib/pangea/resources/aws_eks_fargate_profile/resource.rb +0 -152
  1052. data/lib/pangea/resources/aws_eks_fargate_profile/types.rb +0 -145
  1053. data/lib/pangea/resources/aws_eks_node_group/CLAUDE.md +0 -258
  1054. data/lib/pangea/resources/aws_eks_node_group/resource.rb +0 -224
  1055. data/lib/pangea/resources/aws_eks_node_group/types.rb +0 -260
  1056. data/lib/pangea/resources/aws_elasticache_cluster/CLAUDE.md +0 -240
  1057. data/lib/pangea/resources/aws_elasticache_cluster/resource.rb +0 -134
  1058. data/lib/pangea/resources/aws_elasticache_cluster/types.rb +0 -286
  1059. data/lib/pangea/resources/aws_elasticache_cluster/types.rbs +0 -41
  1060. data/lib/pangea/resources/aws_elasticache_parameter_group/CLAUDE.md +0 -334
  1061. data/lib/pangea/resources/aws_elasticache_parameter_group/resource.rb +0 -94
  1062. data/lib/pangea/resources/aws_elasticache_parameter_group/types.rb +0 -295
  1063. data/lib/pangea/resources/aws_elasticache_subnet_group/CLAUDE.md +0 -286
  1064. data/lib/pangea/resources/aws_elasticache_subnet_group/resource.rb +0 -79
  1065. data/lib/pangea/resources/aws_elasticache_subnet_group/types.rb +0 -159
  1066. data/lib/pangea/resources/aws_elb_attachment/resource.rb +0 -67
  1067. data/lib/pangea/resources/aws_elb_attachment/types.rb +0 -46
  1068. data/lib/pangea/resources/aws_elb_service_account/resource.rb +0 -67
  1069. data/lib/pangea/resources/aws_elb_service_account/types.rb +0 -46
  1070. data/lib/pangea/resources/aws_elemental_data_plane_channel/resource.rb +0 -74
  1071. data/lib/pangea/resources/aws_elemental_data_plane_channel/types.rb +0 -66
  1072. data/lib/pangea/resources/aws_emr_cluster/CLAUDE.md +0 -660
  1073. data/lib/pangea/resources/aws_emr_cluster/resource.rb +0 -324
  1074. data/lib/pangea/resources/aws_emr_cluster/types.rb +0 -496
  1075. data/lib/pangea/resources/aws_emr_cluster/types.rbs +0 -67
  1076. data/lib/pangea/resources/aws_emr_instance_group/CLAUDE.md +0 -586
  1077. data/lib/pangea/resources/aws_emr_instance_group/resource.rb +0 -185
  1078. data/lib/pangea/resources/aws_emr_instance_group/types.rb +0 -420
  1079. data/lib/pangea/resources/aws_emr_instance_group/types.rbs +0 -51
  1080. data/lib/pangea/resources/aws_emr_step/CLAUDE.md +0 -560
  1081. data/lib/pangea/resources/aws_emr_step/resource.rb +0 -96
  1082. data/lib/pangea/resources/aws_emr_step/types.rb +0 -389
  1083. data/lib/pangea/resources/aws_emr_step/types.rbs +0 -46
  1084. data/lib/pangea/resources/aws_eventbridge_bus/CLAUDE.md +0 -208
  1085. data/lib/pangea/resources/aws_eventbridge_bus/resource.rb +0 -78
  1086. data/lib/pangea/resources/aws_eventbridge_bus/types.rb +0 -177
  1087. data/lib/pangea/resources/aws_eventbridge_bus/types.rbs +0 -32
  1088. data/lib/pangea/resources/aws_eventbridge_rule/CLAUDE.md +0 -232
  1089. data/lib/pangea/resources/aws_eventbridge_rule/resource.rb +0 -95
  1090. data/lib/pangea/resources/aws_eventbridge_rule/types.rb +0 -332
  1091. data/lib/pangea/resources/aws_eventbridge_rule/types.rbs +0 -41
  1092. data/lib/pangea/resources/aws_eventbridge_target/CLAUDE.md +0 -260
  1093. data/lib/pangea/resources/aws_eventbridge_target/resource.rb +0 -220
  1094. data/lib/pangea/resources/aws_eventbridge_target/types.rb +0 -483
  1095. data/lib/pangea/resources/aws_eventbridge_target/types.rbs +0 -58
  1096. data/lib/pangea/resources/aws_extended_resources_CLAUDE.md +0 -395
  1097. data/lib/pangea/resources/aws_fsx_lustre_filesystem/CLAUDE.md +0 -383
  1098. data/lib/pangea/resources/aws_fsx_lustre_filesystem/resource.rb +0 -151
  1099. data/lib/pangea/resources/aws_fsx_lustre_filesystem/types.rb +0 -218
  1100. data/lib/pangea/resources/aws_gamelift_alias/CLAUDE.md +0 -261
  1101. data/lib/pangea/resources/aws_gamelift_alias/resource.rb +0 -78
  1102. data/lib/pangea/resources/aws_gamelift_alias/types.rb +0 -84
  1103. data/lib/pangea/resources/aws_gamelift_alias.rbs +0 -44
  1104. data/lib/pangea/resources/aws_gamelift_build/CLAUDE.md +0 -233
  1105. data/lib/pangea/resources/aws_gamelift_build/resource.rb +0 -89
  1106. data/lib/pangea/resources/aws_gamelift_build/types.rb +0 -71
  1107. data/lib/pangea/resources/aws_gamelift_build.rbs +0 -45
  1108. data/lib/pangea/resources/aws_gamelift_compute/resource.rb +0 -86
  1109. data/lib/pangea/resources/aws_gamelift_compute/types.rb +0 -51
  1110. data/lib/pangea/resources/aws_gamelift_fleet/CLAUDE.md +0 -191
  1111. data/lib/pangea/resources/aws_gamelift_fleet/resource.rb +0 -118
  1112. data/lib/pangea/resources/aws_gamelift_fleet/types.rb +0 -128
  1113. data/lib/pangea/resources/aws_gamelift_fleet.rbs +0 -84
  1114. data/lib/pangea/resources/aws_gamelift_game_session/resource.rb +0 -107
  1115. data/lib/pangea/resources/aws_gamelift_game_session/types.rb +0 -62
  1116. data/lib/pangea/resources/aws_gamelift_game_session_queue/CLAUDE.md +0 -282
  1117. data/lib/pangea/resources/aws_gamelift_game_session_queue/resource.rb +0 -101
  1118. data/lib/pangea/resources/aws_gamelift_game_session_queue/types.rb +0 -87
  1119. data/lib/pangea/resources/aws_gamelift_game_session_queue.rbs +0 -57
  1120. data/lib/pangea/resources/aws_gamelift_matchmaking_configuration/CLAUDE.md +0 -288
  1121. data/lib/pangea/resources/aws_gamelift_matchmaking_configuration/resource.rb +0 -83
  1122. data/lib/pangea/resources/aws_gamelift_matchmaking_configuration/types.rb +0 -89
  1123. data/lib/pangea/resources/aws_gamelift_matchmaking_configuration.rbs +0 -52
  1124. data/lib/pangea/resources/aws_gamelift_matchmaking_rule_set/resource.rb +0 -88
  1125. data/lib/pangea/resources/aws_gamelift_matchmaking_rule_set/types.rb +0 -41
  1126. data/lib/pangea/resources/aws_gamelift_player_session/resource.rb +0 -86
  1127. data/lib/pangea/resources/aws_gamelift_player_session/types.rb +0 -48
  1128. data/lib/pangea/resources/aws_gamelift_script/resource.rb +0 -99
  1129. data/lib/pangea/resources/aws_gamelift_script/types.rb +0 -52
  1130. data/lib/pangea/resources/aws_gamesparks_game/resource.rb +0 -82
  1131. data/lib/pangea/resources/aws_gamesparks_game/types.rb +0 -44
  1132. data/lib/pangea/resources/aws_glue_catalog_database/CLAUDE.md +0 -161
  1133. data/lib/pangea/resources/aws_glue_catalog_database/resource.rb +0 -108
  1134. data/lib/pangea/resources/aws_glue_catalog_database/types.rb +0 -154
  1135. data/lib/pangea/resources/aws_glue_catalog_database/types.rbs +0 -36
  1136. data/lib/pangea/resources/aws_glue_catalog_table/CLAUDE.md +0 -387
  1137. data/lib/pangea/resources/aws_glue_catalog_table/resource.rb +0 -180
  1138. data/lib/pangea/resources/aws_glue_catalog_table/types.rb +0 -284
  1139. data/lib/pangea/resources/aws_glue_catalog_table/types.rbs +0 -44
  1140. data/lib/pangea/resources/aws_glue_job/CLAUDE.md +0 -398
  1141. data/lib/pangea/resources/aws_glue_job/resource.rb +0 -147
  1142. data/lib/pangea/resources/aws_glue_job/types.rb +0 -284
  1143. data/lib/pangea/resources/aws_glue_job/types.rbs +0 -50
  1144. data/lib/pangea/resources/aws_glue_trigger/CLAUDE.md +0 -454
  1145. data/lib/pangea/resources/aws_glue_trigger/resource.rb +0 -158
  1146. data/lib/pangea/resources/aws_glue_trigger/types.rb +0 -331
  1147. data/lib/pangea/resources/aws_glue_trigger/types.rbs +0 -53
  1148. data/lib/pangea/resources/aws_ground_station.rb +0 -371
  1149. data/lib/pangea/resources/aws_guardduty_detector/resource.rb +0 -104
  1150. data/lib/pangea/resources/aws_guardduty_detector/types.rb +0 -92
  1151. data/lib/pangea/resources/aws_guardduty_detector.rbs +0 -35
  1152. data/lib/pangea/resources/aws_guardduty_member/resource.rb +0 -72
  1153. data/lib/pangea/resources/aws_guardduty_member/types.rb +0 -59
  1154. data/lib/pangea/resources/aws_guardduty_member.rbs +0 -34
  1155. data/lib/pangea/resources/aws_iam_group/CLAUDE.md +0 -351
  1156. data/lib/pangea/resources/aws_iam_group/resource.rb +0 -78
  1157. data/lib/pangea/resources/aws_iam_group/types.rb +0 -406
  1158. data/lib/pangea/resources/aws_iam_policy/CLAUDE.md +0 -278
  1159. data/lib/pangea/resources/aws_iam_policy/resource.rb +0 -86
  1160. data/lib/pangea/resources/aws_iam_policy/types.rb +0 -358
  1161. data/lib/pangea/resources/aws_iam_role/CLAUDE.md +0 -419
  1162. data/lib/pangea/resources/aws_iam_role/resource.rb +0 -98
  1163. data/lib/pangea/resources/aws_iam_role/types.rb +0 -224
  1164. data/lib/pangea/resources/aws_iam_role_policy_attachment/CLAUDE.md +0 -331
  1165. data/lib/pangea/resources/aws_iam_role_policy_attachment/resource.rb +0 -71
  1166. data/lib/pangea/resources/aws_iam_role_policy_attachment/types.rb +0 -267
  1167. data/lib/pangea/resources/aws_iam_user/CLAUDE.md +0 -312
  1168. data/lib/pangea/resources/aws_iam_user/resource.rb +0 -85
  1169. data/lib/pangea/resources/aws_iam_user/types.rb +0 -338
  1170. data/lib/pangea/resources/aws_inspector2_enabler/resource.rb +0 -66
  1171. data/lib/pangea/resources/aws_inspector2_enabler/types.rb +0 -86
  1172. data/lib/pangea/resources/aws_inspector2_enabler.rbs +0 -33
  1173. data/lib/pangea/resources/aws_instance/CLAUDE.md +0 -396
  1174. data/lib/pangea/resources/aws_instance/resource.rb +0 -123
  1175. data/lib/pangea/resources/aws_instance/types.rb +0 -150
  1176. data/lib/pangea/resources/aws_internet_gateway/CLAUDE.md +0 -157
  1177. data/lib/pangea/resources/aws_internet_gateway/resource.rb +0 -85
  1178. data/lib/pangea/resources/aws_internet_gateway/types.rb +0 -47
  1179. data/lib/pangea/resources/aws_iot_analytics_channel/CLAUDE.md +0 -3
  1180. data/lib/pangea/resources/aws_iot_analytics_channel/resource.rb +0 -90
  1181. data/lib/pangea/resources/aws_iot_analytics_channel/types.rb +0 -58
  1182. data/lib/pangea/resources/aws_iot_analytics_channel.rbs +0 -15
  1183. data/lib/pangea/resources/aws_iot_analytics_datastore/CLAUDE.md +0 -3
  1184. data/lib/pangea/resources/aws_iot_analytics_datastore/resource.rb +0 -109
  1185. data/lib/pangea/resources/aws_iot_analytics_datastore/types.rb +0 -61
  1186. data/lib/pangea/resources/aws_iot_analytics_datastore.rbs +0 -16
  1187. data/lib/pangea/resources/aws_iot_authorizer/resource.rb +0 -97
  1188. data/lib/pangea/resources/aws_iot_authorizer/types.rb +0 -80
  1189. data/lib/pangea/resources/aws_iot_billing_group/resource.rb +0 -93
  1190. data/lib/pangea/resources/aws_iot_billing_group/types.rb +0 -77
  1191. data/lib/pangea/resources/aws_iot_ca_certificate/resource.rb +0 -127
  1192. data/lib/pangea/resources/aws_iot_ca_certificate/types.rb +0 -102
  1193. data/lib/pangea/resources/aws_iot_certificate/CLAUDE.md +0 -361
  1194. data/lib/pangea/resources/aws_iot_certificate/resource.rb +0 -93
  1195. data/lib/pangea/resources/aws_iot_certificate/types.rb +0 -238
  1196. data/lib/pangea/resources/aws_iot_certificate.rbs +0 -31
  1197. data/lib/pangea/resources/aws_iot_device_defender_security_profile/CLAUDE.md +0 -3
  1198. data/lib/pangea/resources/aws_iot_device_defender_security_profile/resource.rb +0 -77
  1199. data/lib/pangea/resources/aws_iot_device_defender_security_profile/types.rb +0 -56
  1200. data/lib/pangea/resources/aws_iot_device_defender_security_profile.rbs +0 -14
  1201. data/lib/pangea/resources/aws_iot_domain_configuration/resource.rb +0 -123
  1202. data/lib/pangea/resources/aws_iot_domain_configuration/types.rb +0 -111
  1203. data/lib/pangea/resources/aws_iot_job_template/resource.rb +0 -134
  1204. data/lib/pangea/resources/aws_iot_job_template/types.rb +0 -122
  1205. data/lib/pangea/resources/aws_iot_policy/CLAUDE.md +0 -27
  1206. data/lib/pangea/resources/aws_iot_policy/resource.rb +0 -63
  1207. data/lib/pangea/resources/aws_iot_policy/types.rb +0 -136
  1208. data/lib/pangea/resources/aws_iot_policy.rbs +0 -18
  1209. data/lib/pangea/resources/aws_iot_policy_attachment/resource.rb +0 -98
  1210. data/lib/pangea/resources/aws_iot_policy_attachment/types.rb +0 -54
  1211. data/lib/pangea/resources/aws_iot_provisioning_template/resource.rb +0 -133
  1212. data/lib/pangea/resources/aws_iot_provisioning_template/types.rb +0 -89
  1213. data/lib/pangea/resources/aws_iot_role_alias/resource.rb +0 -98
  1214. data/lib/pangea/resources/aws_iot_role_alias/types.rb +0 -66
  1215. data/lib/pangea/resources/aws_iot_security_profile/CLAUDE.md +0 -3
  1216. data/lib/pangea/resources/aws_iot_security_profile/resource.rb +0 -89
  1217. data/lib/pangea/resources/aws_iot_security_profile/types.rb +0 -53
  1218. data/lib/pangea/resources/aws_iot_security_profile.rbs +0 -14
  1219. data/lib/pangea/resources/aws_iot_thing/CLAUDE.md +0 -397
  1220. data/lib/pangea/resources/aws_iot_thing/resource.rb +0 -87
  1221. data/lib/pangea/resources/aws_iot_thing/types.rb +0 -139
  1222. data/lib/pangea/resources/aws_iot_thing.rbs +0 -27
  1223. data/lib/pangea/resources/aws_iot_thing_group/resource.rb +0 -125
  1224. data/lib/pangea/resources/aws_iot_thing_group/types.rb +0 -100
  1225. data/lib/pangea/resources/aws_iot_thing_group_membership/resource.rb +0 -78
  1226. data/lib/pangea/resources/aws_iot_thing_group_membership/types.rb +0 -57
  1227. data/lib/pangea/resources/aws_iot_thing_principal_attachment/resource.rb +0 -91
  1228. data/lib/pangea/resources/aws_iot_thing_principal_attachment/types.rb +0 -54
  1229. data/lib/pangea/resources/aws_iot_thing_type/CLAUDE.md +0 -526
  1230. data/lib/pangea/resources/aws_iot_thing_type/resource.rb +0 -100
  1231. data/lib/pangea/resources/aws_iot_thing_type/types.rb +0 -242
  1232. data/lib/pangea/resources/aws_iot_thing_type.rbs +0 -31
  1233. data/lib/pangea/resources/aws_iot_topic_rule/CLAUDE.md +0 -11
  1234. data/lib/pangea/resources/aws_iot_topic_rule/resource.rb +0 -81
  1235. data/lib/pangea/resources/aws_iot_topic_rule/types.rb +0 -53
  1236. data/lib/pangea/resources/aws_iot_topic_rule.rbs +0 -13
  1237. data/lib/pangea/resources/aws_iot_topic_rule_destination/CLAUDE.md +0 -5
  1238. data/lib/pangea/resources/aws_iot_topic_rule_destination/resource.rb +0 -66
  1239. data/lib/pangea/resources/aws_iot_topic_rule_destination/types.rb +0 -46
  1240. data/lib/pangea/resources/aws_iot_topic_rule_destination.rbs +0 -13
  1241. data/lib/pangea/resources/aws_iot_wireless_destination/resource.rb +0 -82
  1242. data/lib/pangea/resources/aws_iot_wireless_destination/types.rb +0 -65
  1243. data/lib/pangea/resources/aws_iotanalytics_dataset/resource.rb +0 -213
  1244. data/lib/pangea/resources/aws_iotanalytics_dataset/types.rb +0 -220
  1245. data/lib/pangea/resources/aws_key_pair/CLAUDE.md +0 -357
  1246. data/lib/pangea/resources/aws_key_pair/resource.rb +0 -88
  1247. data/lib/pangea/resources/aws_key_pair/types.rb +0 -175
  1248. data/lib/pangea/resources/aws_kinesis_analytics_application/CLAUDE.md +0 -630
  1249. data/lib/pangea/resources/aws_kinesis_analytics_application/resource.rb +0 -309
  1250. data/lib/pangea/resources/aws_kinesis_analytics_application/types.rb +0 -319
  1251. data/lib/pangea/resources/aws_kinesis_analytics_application/types.rbs +0 -45
  1252. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/CLAUDE.md +0 -532
  1253. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/resource.rb +0 -288
  1254. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/types.rb +0 -305
  1255. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/types.rbs +0 -44
  1256. data/lib/pangea/resources/aws_kinesis_stream/CLAUDE.md +0 -255
  1257. data/lib/pangea/resources/aws_kinesis_stream/resource.rb +0 -106
  1258. data/lib/pangea/resources/aws_kinesis_stream/types.rb +0 -160
  1259. data/lib/pangea/resources/aws_kinesis_stream/types.rbs +0 -43
  1260. data/lib/pangea/resources/aws_kinesis_video_stream/CLAUDE.md +0 -595
  1261. data/lib/pangea/resources/aws_kinesis_video_stream/resource.rb +0 -76
  1262. data/lib/pangea/resources/aws_kinesis_video_stream/types.rb +0 -229
  1263. data/lib/pangea/resources/aws_kinesis_video_stream/types.rbs +0 -48
  1264. data/lib/pangea/resources/aws_kms_alias/resource.rb +0 -68
  1265. data/lib/pangea/resources/aws_kms_alias/types.rb +0 -131
  1266. data/lib/pangea/resources/aws_kms_key/resource.rb +0 -110
  1267. data/lib/pangea/resources/aws_kms_key/types.rb +0 -119
  1268. data/lib/pangea/resources/aws_lambda_event_source_mapping/CLAUDE.md +0 -316
  1269. data/lib/pangea/resources/aws_lambda_event_source_mapping/resource.rb +0 -155
  1270. data/lib/pangea/resources/aws_lambda_event_source_mapping/types.rb +0 -201
  1271. data/lib/pangea/resources/aws_lambda_function/CLAUDE.md +0 -255
  1272. data/lib/pangea/resources/aws_lambda_function/resource.rb +0 -210
  1273. data/lib/pangea/resources/aws_lambda_function/types.rb +0 -217
  1274. data/lib/pangea/resources/aws_lambda_function_url/resource.rb +0 -89
  1275. data/lib/pangea/resources/aws_lambda_function_url/types.rb +0 -103
  1276. data/lib/pangea/resources/aws_lambda_layer_version/CLAUDE.md +0 -322
  1277. data/lib/pangea/resources/aws_lambda_layer_version/resource.rb +0 -88
  1278. data/lib/pangea/resources/aws_lambda_layer_version/types.rb +0 -159
  1279. data/lib/pangea/resources/aws_lambda_permission/CLAUDE.md +0 -276
  1280. data/lib/pangea/resources/aws_lambda_permission/resource.rb +0 -76
  1281. data/lib/pangea/resources/aws_lambda_permission/types.rb +0 -117
  1282. data/lib/pangea/resources/aws_launch_configuration/resource.rb +0 -67
  1283. data/lib/pangea/resources/aws_launch_configuration/types.rb +0 -46
  1284. data/lib/pangea/resources/aws_launch_template/CLAUDE.md +0 -269
  1285. data/lib/pangea/resources/aws_launch_template/resource.rb +0 -198
  1286. data/lib/pangea/resources/aws_launch_template/types.rb +0 -211
  1287. data/lib/pangea/resources/aws_lb/CLAUDE.md +0 -411
  1288. data/lib/pangea/resources/aws_lb/resource.rb +0 -111
  1289. data/lib/pangea/resources/aws_lb/types.rb +0 -80
  1290. data/lib/pangea/resources/aws_lb_cookie_stickiness_policy/resource.rb +0 -67
  1291. data/lib/pangea/resources/aws_lb_cookie_stickiness_policy/types.rb +0 -46
  1292. data/lib/pangea/resources/aws_lb_listener/CLAUDE.md +0 -310
  1293. data/lib/pangea/resources/aws_lb_listener/resource.rb +0 -187
  1294. data/lib/pangea/resources/aws_lb_listener/types.rb +0 -125
  1295. data/lib/pangea/resources/aws_lb_listener/types.rbs +0 -23
  1296. data/lib/pangea/resources/aws_lb_listener_certificate/CLAUDE.md +0 -463
  1297. data/lib/pangea/resources/aws_lb_listener_certificate/resource.rb +0 -56
  1298. data/lib/pangea/resources/aws_lb_listener_certificate/types.rb +0 -54
  1299. data/lib/pangea/resources/aws_lb_listener_certificate/types.rbs +0 -17
  1300. data/lib/pangea/resources/aws_lb_listener_rule/CLAUDE.md +0 -502
  1301. data/lib/pangea/resources/aws_lb_listener_rule/resource.rb +0 -210
  1302. data/lib/pangea/resources/aws_lb_listener_rule/types.rb +0 -123
  1303. data/lib/pangea/resources/aws_lb_listener_rule/types.rbs +0 -20
  1304. data/lib/pangea/resources/aws_lb_ssl_negotiation_policy/resource.rb +0 -67
  1305. data/lib/pangea/resources/aws_lb_ssl_negotiation_policy/types.rb +0 -46
  1306. data/lib/pangea/resources/aws_lb_target_group/CLAUDE.md +0 -271
  1307. data/lib/pangea/resources/aws_lb_target_group/resource.rb +0 -159
  1308. data/lib/pangea/resources/aws_lb_target_group/types.rb +0 -201
  1309. data/lib/pangea/resources/aws_lb_target_group_attachment/CLAUDE.md +0 -560
  1310. data/lib/pangea/resources/aws_lb_target_group_attachment/resource.rb +0 -67
  1311. data/lib/pangea/resources/aws_lb_target_group_attachment/types.rb +0 -46
  1312. data/lib/pangea/resources/aws_lb_target_group_attachment/types.rbs +0 -21
  1313. data/lib/pangea/resources/aws_lb_trust_store/resource.rb +0 -67
  1314. data/lib/pangea/resources/aws_lb_trust_store/types.rb +0 -46
  1315. data/lib/pangea/resources/aws_lb_trust_store_revocation/resource.rb +0 -67
  1316. data/lib/pangea/resources/aws_lb_trust_store_revocation/types.rb +0 -46
  1317. data/lib/pangea/resources/aws_licensemanager_association/CLAUDE.md +0 -96
  1318. data/lib/pangea/resources/aws_licensemanager_association/resource.rb +0 -68
  1319. data/lib/pangea/resources/aws_licensemanager_association/types.rb +0 -49
  1320. data/lib/pangea/resources/aws_licensemanager_grant/CLAUDE.md +0 -96
  1321. data/lib/pangea/resources/aws_licensemanager_grant/resource.rb +0 -74
  1322. data/lib/pangea/resources/aws_licensemanager_grant/types.rb +0 -52
  1323. data/lib/pangea/resources/aws_licensemanager_grant_accepter/CLAUDE.md +0 -96
  1324. data/lib/pangea/resources/aws_licensemanager_grant_accepter/resource.rb +0 -74
  1325. data/lib/pangea/resources/aws_licensemanager_grant_accepter/types.rb +0 -48
  1326. data/lib/pangea/resources/aws_licensemanager_license_configuration/CLAUDE.md +0 -96
  1327. data/lib/pangea/resources/aws_licensemanager_license_configuration/resource.rb +0 -74
  1328. data/lib/pangea/resources/aws_licensemanager_license_configuration/types.rb +0 -53
  1329. data/lib/pangea/resources/aws_licensemanager_license_grant_accepter/CLAUDE.md +0 -96
  1330. data/lib/pangea/resources/aws_licensemanager_license_grant_accepter/resource.rb +0 -68
  1331. data/lib/pangea/resources/aws_licensemanager_license_grant_accepter/types.rb +0 -48
  1332. data/lib/pangea/resources/aws_licensemanager_report_generator/CLAUDE.md +0 -96
  1333. data/lib/pangea/resources/aws_licensemanager_report_generator/resource.rb +0 -73
  1334. data/lib/pangea/resources/aws_licensemanager_report_generator/types.rb +0 -53
  1335. data/lib/pangea/resources/aws_licensemanager_token/CLAUDE.md +0 -96
  1336. data/lib/pangea/resources/aws_licensemanager_token/resource.rb +0 -71
  1337. data/lib/pangea/resources/aws_licensemanager_token/types.rb +0 -50
  1338. data/lib/pangea/resources/aws_lightsail.rb +0 -524
  1339. data/lib/pangea/resources/aws_load_balancer_backend_server_policy/resource.rb +0 -67
  1340. data/lib/pangea/resources/aws_load_balancer_backend_server_policy/types.rb +0 -46
  1341. data/lib/pangea/resources/aws_load_balancer_listener_policy/resource.rb +0 -67
  1342. data/lib/pangea/resources/aws_load_balancer_listener_policy/types.rb +0 -46
  1343. data/lib/pangea/resources/aws_load_balancer_policy/resource.rb +0 -67
  1344. data/lib/pangea/resources/aws_load_balancer_policy/types.rb +0 -46
  1345. data/lib/pangea/resources/aws_local_zones.rb +0 -223
  1346. data/lib/pangea/resources/aws_managedblockchain_accessor/resource.rb +0 -86
  1347. data/lib/pangea/resources/aws_managedblockchain_accessor/types.rb +0 -249
  1348. data/lib/pangea/resources/aws_managedblockchain_ethereum_node/resource.rb +0 -97
  1349. data/lib/pangea/resources/aws_managedblockchain_ethereum_node/types.rb +0 -349
  1350. data/lib/pangea/resources/aws_managedblockchain_member/CLAUDE.md +0 -478
  1351. data/lib/pangea/resources/aws_managedblockchain_member/resource.rb +0 -127
  1352. data/lib/pangea/resources/aws_managedblockchain_member/types.rb +0 -225
  1353. data/lib/pangea/resources/aws_managedblockchain_network/CLAUDE.md +0 -487
  1354. data/lib/pangea/resources/aws_managedblockchain_network/resource.rb +0 -160
  1355. data/lib/pangea/resources/aws_managedblockchain_network/types.rb +0 -262
  1356. data/lib/pangea/resources/aws_managedblockchain_node/CLAUDE.md +0 -505
  1357. data/lib/pangea/resources/aws_managedblockchain_node/resource.rb +0 -129
  1358. data/lib/pangea/resources/aws_managedblockchain_node/types.rb +0 -252
  1359. data/lib/pangea/resources/aws_media_convert_queue/resource.rb +0 -74
  1360. data/lib/pangea/resources/aws_media_convert_queue/types.rb +0 -71
  1361. data/lib/pangea/resources/aws_media_live_channel/CLAUDE.md +0 -881
  1362. data/lib/pangea/resources/aws_media_live_channel/resource.rb +0 -594
  1363. data/lib/pangea/resources/aws_media_live_channel/types.rb +0 -1002
  1364. data/lib/pangea/resources/aws_media_live_input/CLAUDE.md +0 -729
  1365. data/lib/pangea/resources/aws_media_live_input/resource.rb +0 -169
  1366. data/lib/pangea/resources/aws_media_live_input/types.rb +0 -247
  1367. data/lib/pangea/resources/aws_media_package_channel/CLAUDE.md +0 -698
  1368. data/lib/pangea/resources/aws_media_package_channel/resource.rb +0 -74
  1369. data/lib/pangea/resources/aws_media_package_channel/types.rb +0 -107
  1370. data/lib/pangea/resources/aws_media_package_origin_endpoint/resource.rb +0 -190
  1371. data/lib/pangea/resources/aws_media_package_origin_endpoint/types.rb +0 -197
  1372. data/lib/pangea/resources/aws_media_store_container/resource.rb +0 -60
  1373. data/lib/pangea/resources/aws_media_store_container/types.rb +0 -55
  1374. data/lib/pangea/resources/aws_memorydb_acl/CLAUDE.md +0 -96
  1375. data/lib/pangea/resources/aws_memorydb_acl/resource.rb +0 -70
  1376. data/lib/pangea/resources/aws_memorydb_acl/types.rb +0 -49
  1377. data/lib/pangea/resources/aws_memorydb_cluster/CLAUDE.md +0 -96
  1378. data/lib/pangea/resources/aws_memorydb_cluster/resource.rb +0 -93
  1379. data/lib/pangea/resources/aws_memorydb_cluster/types.rb +0 -69
  1380. data/lib/pangea/resources/aws_memorydb_cluster_endpoint/CLAUDE.md +0 -96
  1381. data/lib/pangea/resources/aws_memorydb_cluster_endpoint/resource.rb +0 -69
  1382. data/lib/pangea/resources/aws_memorydb_cluster_endpoint/types.rb +0 -48
  1383. data/lib/pangea/resources/aws_memorydb_multi_region_cluster/CLAUDE.md +0 -96
  1384. data/lib/pangea/resources/aws_memorydb_multi_region_cluster/resource.rb +0 -75
  1385. data/lib/pangea/resources/aws_memorydb_multi_region_cluster/types.rb +0 -53
  1386. data/lib/pangea/resources/aws_memorydb_parameter_group/CLAUDE.md +0 -96
  1387. data/lib/pangea/resources/aws_memorydb_parameter_group/resource.rb +0 -71
  1388. data/lib/pangea/resources/aws_memorydb_parameter_group/types.rb +0 -51
  1389. data/lib/pangea/resources/aws_memorydb_snapshot/CLAUDE.md +0 -96
  1390. data/lib/pangea/resources/aws_memorydb_snapshot/resource.rb +0 -73
  1391. data/lib/pangea/resources/aws_memorydb_snapshot/types.rb +0 -51
  1392. data/lib/pangea/resources/aws_memorydb_subnet_group/CLAUDE.md +0 -96
  1393. data/lib/pangea/resources/aws_memorydb_subnet_group/resource.rb +0 -71
  1394. data/lib/pangea/resources/aws_memorydb_subnet_group/types.rb +0 -50
  1395. data/lib/pangea/resources/aws_memorydb_user/CLAUDE.md +0 -96
  1396. data/lib/pangea/resources/aws_memorydb_user/resource.rb +0 -71
  1397. data/lib/pangea/resources/aws_memorydb_user/types.rb +0 -50
  1398. data/lib/pangea/resources/aws_minimal.rb +0 -302
  1399. data/lib/pangea/resources/aws_mobile_analytics_app/CLAUDE.md +0 -262
  1400. data/lib/pangea/resources/aws_mobile_analytics_app/resource.rb +0 -77
  1401. data/lib/pangea/resources/aws_mobile_analytics_app/types.rb +0 -47
  1402. data/lib/pangea/resources/aws_mobile_analytics_app.rbs +0 -30
  1403. data/lib/pangea/resources/aws_mq_broker/resource.rb +0 -157
  1404. data/lib/pangea/resources/aws_mq_broker/types.rb +0 -181
  1405. data/lib/pangea/resources/aws_mq_broker.rbs +0 -130
  1406. data/lib/pangea/resources/aws_mq_configuration/resource.rb +0 -75
  1407. data/lib/pangea/resources/aws_mq_configuration/types.rb +0 -88
  1408. data/lib/pangea/resources/aws_mq_configuration.rbs +0 -36
  1409. data/lib/pangea/resources/aws_nat_gateway/CLAUDE.md +0 -209
  1410. data/lib/pangea/resources/aws_nat_gateway/resource.rb +0 -97
  1411. data/lib/pangea/resources/aws_nat_gateway/types.rb +0 -80
  1412. data/lib/pangea/resources/aws_neptune_cluster/CLAUDE.md +0 -96
  1413. data/lib/pangea/resources/aws_neptune_cluster/resource.rb +0 -98
  1414. data/lib/pangea/resources/aws_neptune_cluster/types.rb +0 -70
  1415. data/lib/pangea/resources/aws_neptune_cluster_endpoint/CLAUDE.md +0 -96
  1416. data/lib/pangea/resources/aws_neptune_cluster_endpoint/resource.rb +0 -71
  1417. data/lib/pangea/resources/aws_neptune_cluster_endpoint/types.rb +0 -50
  1418. data/lib/pangea/resources/aws_neptune_cluster_instance/CLAUDE.md +0 -96
  1419. data/lib/pangea/resources/aws_neptune_cluster_instance/resource.rb +0 -85
  1420. data/lib/pangea/resources/aws_neptune_cluster_instance/types.rb +0 -58
  1421. data/lib/pangea/resources/aws_neptune_cluster_parameter_group/CLAUDE.md +0 -96
  1422. data/lib/pangea/resources/aws_neptune_cluster_parameter_group/resource.rb +0 -71
  1423. data/lib/pangea/resources/aws_neptune_cluster_parameter_group/types.rb +0 -51
  1424. data/lib/pangea/resources/aws_neptune_cluster_snapshot/CLAUDE.md +0 -96
  1425. data/lib/pangea/resources/aws_neptune_cluster_snapshot/resource.rb +0 -78
  1426. data/lib/pangea/resources/aws_neptune_cluster_snapshot/types.rb +0 -49
  1427. data/lib/pangea/resources/aws_neptune_event_subscription/CLAUDE.md +0 -96
  1428. data/lib/pangea/resources/aws_neptune_event_subscription/resource.rb +0 -74
  1429. data/lib/pangea/resources/aws_neptune_event_subscription/types.rb +0 -53
  1430. data/lib/pangea/resources/aws_neptune_parameter_group/CLAUDE.md +0 -96
  1431. data/lib/pangea/resources/aws_neptune_parameter_group/resource.rb +0 -71
  1432. data/lib/pangea/resources/aws_neptune_parameter_group/types.rb +0 -51
  1433. data/lib/pangea/resources/aws_neptune_subnet_group/CLAUDE.md +0 -96
  1434. data/lib/pangea/resources/aws_neptune_subnet_group/resource.rb +0 -70
  1435. data/lib/pangea/resources/aws_neptune_subnet_group/types.rb +0 -50
  1436. data/lib/pangea/resources/aws_network_acl/CLAUDE.md +0 -96
  1437. data/lib/pangea/resources/aws_network_acl/resource.rb +0 -77
  1438. data/lib/pangea/resources/aws_network_acl/types.rb +0 -147
  1439. data/lib/pangea/resources/aws_network_acl_rule/CLAUDE.md +0 -297
  1440. data/lib/pangea/resources/aws_network_acl_rule/resource.rb +0 -92
  1441. data/lib/pangea/resources/aws_network_acl_rule/types.rb +0 -158
  1442. data/lib/pangea/resources/aws_network_interface/CLAUDE.md +0 -310
  1443. data/lib/pangea/resources/aws_network_interface/resource.rb +0 -121
  1444. data/lib/pangea/resources/aws_network_interface/types.rb +0 -108
  1445. data/lib/pangea/resources/aws_organizations_account/resource.rb +0 -69
  1446. data/lib/pangea/resources/aws_organizations_account/types.rb +0 -85
  1447. data/lib/pangea/resources/aws_organizations_account.rbs +0 -10
  1448. data/lib/pangea/resources/aws_organizations_delegated_administrator/resource.rb +0 -82
  1449. data/lib/pangea/resources/aws_organizations_organization/resource.rb +0 -60
  1450. data/lib/pangea/resources/aws_organizations_organization/types.rb +0 -77
  1451. data/lib/pangea/resources/aws_organizations_organization.rbs +0 -10
  1452. data/lib/pangea/resources/aws_organizations_resource_policy/resource.rb +0 -99
  1453. data/lib/pangea/resources/aws_outposts.rb +0 -351
  1454. data/lib/pangea/resources/aws_pinpoint_app/CLAUDE.md +0 -363
  1455. data/lib/pangea/resources/aws_pinpoint_app/resource.rb +0 -84
  1456. data/lib/pangea/resources/aws_pinpoint_app/types.rb +0 -91
  1457. data/lib/pangea/resources/aws_pinpoint_app.rbs +0 -55
  1458. data/lib/pangea/resources/aws_placement_group/resource.rb +0 -67
  1459. data/lib/pangea/resources/aws_placement_group/types.rb +0 -46
  1460. data/lib/pangea/resources/aws_proxy_protocol_policy/resource.rb +0 -67
  1461. data/lib/pangea/resources/aws_proxy_protocol_policy/types.rb +0 -46
  1462. data/lib/pangea/resources/aws_qldb_ledger/CLAUDE.md +0 -734
  1463. data/lib/pangea/resources/aws_qldb_ledger/resource.rb +0 -89
  1464. data/lib/pangea/resources/aws_qldb_ledger/types.rb +0 -173
  1465. data/lib/pangea/resources/aws_qldb_stream/CLAUDE.md +0 -845
  1466. data/lib/pangea/resources/aws_qldb_stream/resource.rb +0 -101
  1467. data/lib/pangea/resources/aws_qldb_stream/types.rb +0 -222
  1468. data/lib/pangea/resources/aws_ram_invitation_accepter/CLAUDE.md +0 -96
  1469. data/lib/pangea/resources/aws_ram_invitation_accepter/resource.rb +0 -72
  1470. data/lib/pangea/resources/aws_ram_invitation_accepter/types.rb +0 -48
  1471. data/lib/pangea/resources/aws_ram_managed_permission/CLAUDE.md +0 -96
  1472. data/lib/pangea/resources/aws_ram_managed_permission/resource.rb +0 -75
  1473. data/lib/pangea/resources/aws_ram_managed_permission/types.rb +0 -49
  1474. data/lib/pangea/resources/aws_ram_permission/CLAUDE.md +0 -96
  1475. data/lib/pangea/resources/aws_ram_permission/resource.rb +0 -75
  1476. data/lib/pangea/resources/aws_ram_permission/types.rb +0 -50
  1477. data/lib/pangea/resources/aws_ram_permission_association/CLAUDE.md +0 -96
  1478. data/lib/pangea/resources/aws_ram_permission_association/resource.rb +0 -69
  1479. data/lib/pangea/resources/aws_ram_permission_association/types.rb +0 -50
  1480. data/lib/pangea/resources/aws_ram_principal_association/CLAUDE.md +0 -96
  1481. data/lib/pangea/resources/aws_ram_principal_association/resource.rb +0 -68
  1482. data/lib/pangea/resources/aws_ram_principal_association/types.rb +0 -49
  1483. data/lib/pangea/resources/aws_ram_resource_association/CLAUDE.md +0 -96
  1484. data/lib/pangea/resources/aws_ram_resource_association/resource.rb +0 -68
  1485. data/lib/pangea/resources/aws_ram_resource_association/types.rb +0 -49
  1486. data/lib/pangea/resources/aws_ram_resource_share/CLAUDE.md +0 -96
  1487. data/lib/pangea/resources/aws_ram_resource_share/resource.rb +0 -71
  1488. data/lib/pangea/resources/aws_ram_resource_share/types.rb +0 -50
  1489. data/lib/pangea/resources/aws_ram_resource_share_accepter/CLAUDE.md +0 -96
  1490. data/lib/pangea/resources/aws_ram_resource_share_accepter/resource.rb +0 -71
  1491. data/lib/pangea/resources/aws_ram_resource_share_accepter/types.rb +0 -48
  1492. data/lib/pangea/resources/aws_ram_resource_share_invitation/CLAUDE.md +0 -96
  1493. data/lib/pangea/resources/aws_ram_resource_share_invitation/resource.rb +0 -73
  1494. data/lib/pangea/resources/aws_ram_resource_share_invitation/types.rb +0 -49
  1495. data/lib/pangea/resources/aws_ram_sharing_with_organization/CLAUDE.md +0 -96
  1496. data/lib/pangea/resources/aws_ram_sharing_with_organization/resource.rb +0 -67
  1497. data/lib/pangea/resources/aws_ram_sharing_with_organization/types.rb +0 -48
  1498. data/lib/pangea/resources/aws_rds_cluster/CLAUDE.md +0 -361
  1499. data/lib/pangea/resources/aws_rds_cluster/resource.rb +0 -189
  1500. data/lib/pangea/resources/aws_rds_cluster/types.rb +0 -464
  1501. data/lib/pangea/resources/aws_rds_cluster_endpoint/CLAUDE.md +0 -279
  1502. data/lib/pangea/resources/aws_rds_cluster_endpoint/resource.rb +0 -96
  1503. data/lib/pangea/resources/aws_rds_cluster_endpoint/types.rb +0 -254
  1504. data/lib/pangea/resources/aws_rds_cluster_endpoint/types.rbs +0 -59
  1505. data/lib/pangea/resources/aws_rds_cluster_instance/CLAUDE.md +0 -378
  1506. data/lib/pangea/resources/aws_rds_cluster_instance/resource.rb +0 -143
  1507. data/lib/pangea/resources/aws_rds_cluster_instance/types.rb +0 -437
  1508. data/lib/pangea/resources/aws_rds_cluster_parameter_group/CLAUDE.md +0 -344
  1509. data/lib/pangea/resources/aws_rds_cluster_parameter_group/resource.rb +0 -96
  1510. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types.rb +0 -361
  1511. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types.rbs +0 -65
  1512. data/lib/pangea/resources/aws_rds_global_cluster/CLAUDE.md +0 -362
  1513. data/lib/pangea/resources/aws_rds_global_cluster/resource.rb +0 -123
  1514. data/lib/pangea/resources/aws_rds_global_cluster/types.rb +0 -425
  1515. data/lib/pangea/resources/aws_rds_global_cluster/types.rbs +0 -84
  1516. data/lib/pangea/resources/aws_rds_proxy/resource.rb +0 -113
  1517. data/lib/pangea/resources/aws_rds_proxy/types.rb +0 -410
  1518. data/lib/pangea/resources/aws_rds_proxy_default_target_group/resource.rb +0 -72
  1519. data/lib/pangea/resources/aws_rds_proxy_default_target_group/types.rb +0 -121
  1520. data/lib/pangea/resources/aws_rds_proxy_target/resource.rb +0 -74
  1521. data/lib/pangea/resources/aws_rds_proxy_target/types.rb +0 -106
  1522. data/lib/pangea/resources/aws_redshift_cluster/CLAUDE.md +0 -358
  1523. data/lib/pangea/resources/aws_redshift_cluster/resource.rb +0 -151
  1524. data/lib/pangea/resources/aws_redshift_cluster/types.rb +0 -323
  1525. data/lib/pangea/resources/aws_redshift_cluster/types.rbs +0 -65
  1526. data/lib/pangea/resources/aws_redshift_cluster.rbs +0 -10
  1527. data/lib/pangea/resources/aws_redshift_parameter_group/CLAUDE.md +0 -352
  1528. data/lib/pangea/resources/aws_redshift_parameter_group/resource.rb +0 -87
  1529. data/lib/pangea/resources/aws_redshift_parameter_group/types.rb +0 -214
  1530. data/lib/pangea/resources/aws_redshift_parameter_group/types.rbs +0 -42
  1531. data/lib/pangea/resources/aws_redshift_parameter_group.rbs +0 -10
  1532. data/lib/pangea/resources/aws_redshift_snapshot_schedule/CLAUDE.md +0 -395
  1533. data/lib/pangea/resources/aws_redshift_snapshot_schedule/resource.rb +0 -81
  1534. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types.rb +0 -229
  1535. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types.rbs +0 -41
  1536. data/lib/pangea/resources/aws_redshift_snapshot_schedule.rbs +0 -10
  1537. data/lib/pangea/resources/aws_redshift_subnet_group/CLAUDE.md +0 -274
  1538. data/lib/pangea/resources/aws_redshift_subnet_group/resource.rb +0 -77
  1539. data/lib/pangea/resources/aws_redshift_subnet_group/types.rb +0 -142
  1540. data/lib/pangea/resources/aws_redshift_subnet_group/types.rbs +0 -33
  1541. data/lib/pangea/resources/aws_redshift_subnet_group.rbs +0 -10
  1542. data/lib/pangea/resources/aws_resource_explorer_index/resource.rb +0 -81
  1543. data/lib/pangea/resources/aws_resource_explorer_view/resource.rb +0 -126
  1544. data/lib/pangea/resources/aws_resourcegroups_group/resource.rb +0 -167
  1545. data/lib/pangea/resources/aws_resources.rb +0 -351
  1546. data/lib/pangea/resources/aws_resources_minimal.rb +0 -32
  1547. data/lib/pangea/resources/aws_route/CLAUDE.md +0 -96
  1548. data/lib/pangea/resources/aws_route/resource.rb +0 -83
  1549. data/lib/pangea/resources/aws_route/types.rb +0 -122
  1550. data/lib/pangea/resources/aws_route53_delegation_set/resource.rb +0 -73
  1551. data/lib/pangea/resources/aws_route53_delegation_set/types.rb +0 -133
  1552. data/lib/pangea/resources/aws_route53_delegation_set.rbs +0 -28
  1553. data/lib/pangea/resources/aws_route53_health_check/CLAUDE.md +0 -408
  1554. data/lib/pangea/resources/aws_route53_health_check/resource.rb +0 -132
  1555. data/lib/pangea/resources/aws_route53_health_check/types.rb +0 -387
  1556. data/lib/pangea/resources/aws_route53_query_log/resource.rb +0 -79
  1557. data/lib/pangea/resources/aws_route53_query_log/types.rb +0 -185
  1558. data/lib/pangea/resources/aws_route53_record/CLAUDE.md +0 -414
  1559. data/lib/pangea/resources/aws_route53_record/resource.rb +0 -138
  1560. data/lib/pangea/resources/aws_route53_record/types.rb +0 -408
  1561. data/lib/pangea/resources/aws_route53_zone/CLAUDE.md +0 -363
  1562. data/lib/pangea/resources/aws_route53_zone/resource.rb +0 -99
  1563. data/lib/pangea/resources/aws_route53_zone/types.rb +0 -260
  1564. data/lib/pangea/resources/aws_route_table/CLAUDE.md +0 -224
  1565. data/lib/pangea/resources/aws_route_table/resource.rb +0 -104
  1566. data/lib/pangea/resources/aws_route_table/types.rb +0 -107
  1567. data/lib/pangea/resources/aws_route_table_association/CLAUDE.md +0 -401
  1568. data/lib/pangea/resources/aws_route_table_association/resource.rb +0 -93
  1569. data/lib/pangea/resources/aws_route_table_association/types.rb +0 -94
  1570. data/lib/pangea/resources/aws_s3_access_point/CLAUDE.md +0 -211
  1571. data/lib/pangea/resources/aws_s3_access_point/resource.rb +0 -102
  1572. data/lib/pangea/resources/aws_s3_access_point/types.rb +0 -86
  1573. data/lib/pangea/resources/aws_s3_access_point_policy/resource.rb +0 -69
  1574. data/lib/pangea/resources/aws_s3_access_point_policy/types.rb +0 -65
  1575. data/lib/pangea/resources/aws_s3_bucket/CLAUDE.md +0 -140
  1576. data/lib/pangea/resources/aws_s3_bucket/resource.rb +0 -228
  1577. data/lib/pangea/resources/aws_s3_bucket/types.rb +0 -206
  1578. data/lib/pangea/resources/aws_s3_bucket_accelerate_configuration/resource.rb +0 -70
  1579. data/lib/pangea/resources/aws_s3_bucket_accelerate_configuration/types.rb +0 -65
  1580. data/lib/pangea/resources/aws_s3_bucket_analytics_configuration/resource.rb +0 -108
  1581. data/lib/pangea/resources/aws_s3_bucket_analytics_configuration/types.rb +0 -115
  1582. data/lib/pangea/resources/aws_s3_bucket_cors_configuration/CLAUDE.md +0 -262
  1583. data/lib/pangea/resources/aws_s3_bucket_cors_configuration/resource.rb +0 -97
  1584. data/lib/pangea/resources/aws_s3_bucket_cors_configuration/types.rb +0 -167
  1585. data/lib/pangea/resources/aws_s3_bucket_encryption/CLAUDE.md +0 -465
  1586. data/lib/pangea/resources/aws_s3_bucket_encryption/resource.rb +0 -78
  1587. data/lib/pangea/resources/aws_s3_bucket_encryption/types.rb +0 -114
  1588. data/lib/pangea/resources/aws_s3_bucket_inventory/CLAUDE.md +0 -430
  1589. data/lib/pangea/resources/aws_s3_bucket_inventory/resource.rb +0 -135
  1590. data/lib/pangea/resources/aws_s3_bucket_inventory/types.rb +0 -257
  1591. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/CLAUDE.md +0 -221
  1592. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/resource.rb +0 -158
  1593. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types.rb +0 -214
  1594. data/lib/pangea/resources/aws_s3_bucket_notification/CLAUDE.md +0 -358
  1595. data/lib/pangea/resources/aws_s3_bucket_notification/resource.rb +0 -122
  1596. data/lib/pangea/resources/aws_s3_bucket_notification/types.rb +0 -224
  1597. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/CLAUDE.md +0 -561
  1598. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/resource.rb +0 -100
  1599. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/types.rb +0 -241
  1600. data/lib/pangea/resources/aws_s3_bucket_policy/CLAUDE.md +0 -234
  1601. data/lib/pangea/resources/aws_s3_bucket_policy/resource.rb +0 -66
  1602. data/lib/pangea/resources/aws_s3_bucket_policy/types.rb +0 -93
  1603. data/lib/pangea/resources/aws_s3_bucket_public_access_block/CLAUDE.md +0 -528
  1604. data/lib/pangea/resources/aws_s3_bucket_public_access_block/resource.rb +0 -77
  1605. data/lib/pangea/resources/aws_s3_bucket_public_access_block/types.rb +0 -92
  1606. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/CLAUDE.md +0 -628
  1607. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/resource.rb +0 -200
  1608. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types.rb +0 -304
  1609. data/lib/pangea/resources/aws_s3_bucket_versioning/CLAUDE.md +0 -340
  1610. data/lib/pangea/resources/aws_s3_bucket_versioning/resource.rb +0 -72
  1611. data/lib/pangea/resources/aws_s3_bucket_versioning/types.rb +0 -77
  1612. data/lib/pangea/resources/aws_s3_bucket_website_configuration/CLAUDE.md +0 -355
  1613. data/lib/pangea/resources/aws_s3_bucket_website_configuration/resource.rb +0 -123
  1614. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types.rb +0 -397
  1615. data/lib/pangea/resources/aws_s3_multi_region_access_point/resource.rb +0 -105
  1616. data/lib/pangea/resources/aws_s3_multi_region_access_point/types.rb +0 -101
  1617. data/lib/pangea/resources/aws_s3_object/CLAUDE.md +0 -535
  1618. data/lib/pangea/resources/aws_s3_object/resource.rb +0 -131
  1619. data/lib/pangea/resources/aws_s3_object/types.rb +0 -215
  1620. data/lib/pangea/resources/aws_s3_object_lambda_access_point/resource.rb +0 -97
  1621. data/lib/pangea/resources/aws_s3_object_lambda_access_point/types.rb +0 -106
  1622. data/lib/pangea/resources/aws_sagemaker_domain/CLAUDE.md +0 -253
  1623. data/lib/pangea/resources/aws_sagemaker_domain/resource.rb +0 -160
  1624. data/lib/pangea/resources/aws_sagemaker_domain/types.rb +0 -306
  1625. data/lib/pangea/resources/aws_sagemaker_domain.rbs +0 -39
  1626. data/lib/pangea/resources/aws_sagemaker_endpoint/resource.rb +0 -236
  1627. data/lib/pangea/resources/aws_sagemaker_endpoint/types.rb +0 -294
  1628. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/resource.rb +0 -232
  1629. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/types.rb +0 -359
  1630. data/lib/pangea/resources/aws_sagemaker_feature_group/resource.rb +0 -64
  1631. data/lib/pangea/resources/aws_sagemaker_feature_group/types.rb +0 -150
  1632. data/lib/pangea/resources/aws_sagemaker_model/resource.rb +0 -189
  1633. data/lib/pangea/resources/aws_sagemaker_model/types.rb +0 -330
  1634. data/lib/pangea/resources/aws_sagemaker_notebook_instance/resource.rb +0 -139
  1635. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types.rb +0 -321
  1636. data/lib/pangea/resources/aws_sagemaker_notebook_instance.rbs +0 -52
  1637. data/lib/pangea/resources/aws_sagemaker_pipeline/resource.rb +0 -61
  1638. data/lib/pangea/resources/aws_sagemaker_pipeline/types.rb +0 -78
  1639. data/lib/pangea/resources/aws_sagemaker_processing_job/resource.rb +0 -61
  1640. data/lib/pangea/resources/aws_sagemaker_processing_job/types.rb +0 -140
  1641. data/lib/pangea/resources/aws_sagemaker_training_job/resource.rb +0 -69
  1642. data/lib/pangea/resources/aws_sagemaker_training_job/types.rb +0 -471
  1643. data/lib/pangea/resources/aws_sagemaker_user_profile/resource.rb +0 -198
  1644. data/lib/pangea/resources/aws_sagemaker_user_profile/types.rb +0 -330
  1645. data/lib/pangea/resources/aws_sagemaker_user_profile.rbs +0 -40
  1646. data/lib/pangea/resources/aws_secretsmanager_secret/CLAUDE.md +0 -528
  1647. data/lib/pangea/resources/aws_secretsmanager_secret/resource.rb +0 -111
  1648. data/lib/pangea/resources/aws_secretsmanager_secret/types.rb +0 -198
  1649. data/lib/pangea/resources/aws_secretsmanager_secret_version/resource.rb +0 -76
  1650. data/lib/pangea/resources/aws_secretsmanager_secret_version/types.rb +0 -99
  1651. data/lib/pangea/resources/aws_security_group/resource.rb +0 -78
  1652. data/lib/pangea/resources/aws_security_group/types.rb +0 -110
  1653. data/lib/pangea/resources/aws_securityhub_account/resource.rb +0 -74
  1654. data/lib/pangea/resources/aws_securityhub_account/types.rb +0 -61
  1655. data/lib/pangea/resources/aws_securityhub_account.rbs +0 -33
  1656. data/lib/pangea/resources/aws_securitylake_data_lake.rbs +0 -29
  1657. data/lib/pangea/resources/aws_ses_configuration_set/resource.rb +0 -70
  1658. data/lib/pangea/resources/aws_ses_configuration_set/types.rb +0 -75
  1659. data/lib/pangea/resources/aws_ses_configuration_set.rbs +0 -35
  1660. data/lib/pangea/resources/aws_ses_domain_identity/resource.rb +0 -57
  1661. data/lib/pangea/resources/aws_ses_domain_identity/types.rb +0 -61
  1662. data/lib/pangea/resources/aws_ses_domain_identity.rbs +0 -24
  1663. data/lib/pangea/resources/aws_ses_email_identity/resource.rb +0 -56
  1664. data/lib/pangea/resources/aws_ses_email_identity/types.rb +0 -73
  1665. data/lib/pangea/resources/aws_ses_email_identity.rbs +0 -24
  1666. data/lib/pangea/resources/aws_sfn_activity/CLAUDE.md +0 -571
  1667. data/lib/pangea/resources/aws_sfn_activity/resource.rb +0 -61
  1668. data/lib/pangea/resources/aws_sfn_activity/types.rb +0 -124
  1669. data/lib/pangea/resources/aws_sfn_state_machine/CLAUDE.md +0 -464
  1670. data/lib/pangea/resources/aws_sfn_state_machine/resource.rb +0 -92
  1671. data/lib/pangea/resources/aws_sfn_state_machine/types.rb +0 -347
  1672. data/lib/pangea/resources/aws_snow_family.rb +0 -401
  1673. data/lib/pangea/resources/aws_sns_subscription/CLAUDE.md +0 -289
  1674. data/lib/pangea/resources/aws_sns_subscription/resource.rb +0 -99
  1675. data/lib/pangea/resources/aws_sns_subscription/types.rb +0 -218
  1676. data/lib/pangea/resources/aws_sns_topic/CLAUDE.md +0 -249
  1677. data/lib/pangea/resources/aws_sns_topic/resource.rb +0 -126
  1678. data/lib/pangea/resources/aws_sns_topic/types.rb +0 -193
  1679. data/lib/pangea/resources/aws_sqs_queue/CLAUDE.md +0 -190
  1680. data/lib/pangea/resources/aws_sqs_queue/resource.rb +0 -114
  1681. data/lib/pangea/resources/aws_sqs_queue/types.rb +0 -169
  1682. data/lib/pangea/resources/aws_sqs_queue_policy/CLAUDE.md +0 -227
  1683. data/lib/pangea/resources/aws_sqs_queue_policy/resource.rb +0 -64
  1684. data/lib/pangea/resources/aws_sqs_queue_policy/types.rb +0 -115
  1685. data/lib/pangea/resources/aws_ssm_document/CLAUDE.md +0 -410
  1686. data/lib/pangea/resources/aws_ssm_document/resource.rb +0 -144
  1687. data/lib/pangea/resources/aws_ssm_document/types.rb +0 -417
  1688. data/lib/pangea/resources/aws_ssm_document/types.rbs +0 -49
  1689. data/lib/pangea/resources/aws_ssm_maintenance_window/CLAUDE.md +0 -412
  1690. data/lib/pangea/resources/aws_ssm_maintenance_window/resource.rb +0 -120
  1691. data/lib/pangea/resources/aws_ssm_maintenance_window/types.rb +0 -374
  1692. data/lib/pangea/resources/aws_ssm_maintenance_window/types.rbs +0 -49
  1693. data/lib/pangea/resources/aws_ssm_parameter/CLAUDE.md +0 -355
  1694. data/lib/pangea/resources/aws_ssm_parameter/resource.rb +0 -116
  1695. data/lib/pangea/resources/aws_ssm_parameter/types.rb +0 -287
  1696. data/lib/pangea/resources/aws_ssm_parameter/types.rbs +0 -47
  1697. data/lib/pangea/resources/aws_ssm_patch_baseline/CLAUDE.md +0 -509
  1698. data/lib/pangea/resources/aws_ssm_patch_baseline/resource.rb +0 -149
  1699. data/lib/pangea/resources/aws_ssm_patch_baseline/types.rb +0 -440
  1700. data/lib/pangea/resources/aws_ssm_patch_baseline/types.rbs +0 -51
  1701. data/lib/pangea/resources/aws_subnet/CLAUDE.md +0 -301
  1702. data/lib/pangea/resources/aws_subnet/resource.rb +0 -78
  1703. data/lib/pangea/resources/aws_subnet/types.rb +0 -67
  1704. data/lib/pangea/resources/aws_sumerian_project/resource.rb +0 -85
  1705. data/lib/pangea/resources/aws_sumerian_project/types.rb +0 -46
  1706. data/lib/pangea/resources/aws_support_app_slack_channel_configuration/resource.rb +0 -114
  1707. data/lib/pangea/resources/aws_support_app_slack_workspace_configuration/resource.rb +0 -73
  1708. data/lib/pangea/resources/aws_timestream_access_policy/CLAUDE.md +0 -96
  1709. data/lib/pangea/resources/aws_timestream_access_policy/resource.rb +0 -69
  1710. data/lib/pangea/resources/aws_timestream_access_policy/types.rb +0 -50
  1711. data/lib/pangea/resources/aws_timestream_batch_load_task/CLAUDE.md +0 -96
  1712. data/lib/pangea/resources/aws_timestream_batch_load_task/resource.rb +0 -77
  1713. data/lib/pangea/resources/aws_timestream_batch_load_task/types.rb +0 -54
  1714. data/lib/pangea/resources/aws_timestream_database/CLAUDE.md +0 -96
  1715. data/lib/pangea/resources/aws_timestream_database/resource.rb +0 -71
  1716. data/lib/pangea/resources/aws_timestream_database/types.rb +0 -49
  1717. data/lib/pangea/resources/aws_timestream_influx_db_instance/CLAUDE.md +0 -96
  1718. data/lib/pangea/resources/aws_timestream_influx_db_instance/resource.rb +0 -85
  1719. data/lib/pangea/resources/aws_timestream_influx_db_instance/types.rb +0 -61
  1720. data/lib/pangea/resources/aws_timestream_scheduled_query/CLAUDE.md +0 -96
  1721. data/lib/pangea/resources/aws_timestream_scheduled_query/resource.rb +0 -77
  1722. data/lib/pangea/resources/aws_timestream_scheduled_query/types.rb +0 -56
  1723. data/lib/pangea/resources/aws_timestream_table/CLAUDE.md +0 -96
  1724. data/lib/pangea/resources/aws_timestream_table/resource.rb +0 -73
  1725. data/lib/pangea/resources/aws_timestream_table/types.rb +0 -52
  1726. data/lib/pangea/resources/aws_timestream_table_retention_properties/CLAUDE.md +0 -96
  1727. data/lib/pangea/resources/aws_timestream_table_retention_properties/resource.rb +0 -70
  1728. data/lib/pangea/resources/aws_timestream_table_retention_properties/types.rb +0 -51
  1729. data/lib/pangea/resources/aws_volume_attachment/CLAUDE.md +0 -326
  1730. data/lib/pangea/resources/aws_volume_attachment/resource.rb +0 -77
  1731. data/lib/pangea/resources/aws_volume_attachment/types.rb +0 -176
  1732. data/lib/pangea/resources/aws_vpc/CLAUDE.md +0 -184
  1733. data/lib/pangea/resources/aws_vpc/resource.rb +0 -80
  1734. data/lib/pangea/resources/aws_vpc/types.rb +0 -94
  1735. data/lib/pangea/resources/aws_vpc_dhcp_options_association/resource.rb +0 -67
  1736. data/lib/pangea/resources/aws_vpc_dhcp_options_association/types.rb +0 -46
  1737. data/lib/pangea/resources/aws_vpc_endpoint/CLAUDE.md +0 -483
  1738. data/lib/pangea/resources/aws_vpc_endpoint/resource.rb +0 -126
  1739. data/lib/pangea/resources/aws_vpc_endpoint/types.rb +0 -132
  1740. data/lib/pangea/resources/aws_vpc_endpoint_connection_accepter/resource.rb +0 -67
  1741. data/lib/pangea/resources/aws_vpc_endpoint_connection_accepter/types.rb +0 -46
  1742. data/lib/pangea/resources/aws_vpc_endpoint_connection_notification/resource.rb +0 -73
  1743. data/lib/pangea/resources/aws_vpc_endpoint_connection_notification/types.rb +0 -50
  1744. data/lib/pangea/resources/aws_vpc_endpoint_route_table_association/resource.rb +0 -67
  1745. data/lib/pangea/resources/aws_vpc_endpoint_route_table_association/types.rb +0 -46
  1746. data/lib/pangea/resources/aws_vpc_endpoint_service/CLAUDE.md +0 -313
  1747. data/lib/pangea/resources/aws_vpc_endpoint_service/resource.rb +0 -127
  1748. data/lib/pangea/resources/aws_vpc_endpoint_service/types.rb +0 -144
  1749. data/lib/pangea/resources/aws_vpc_endpoint_service_allowed_principal/resource.rb +0 -67
  1750. data/lib/pangea/resources/aws_vpc_endpoint_service_allowed_principal/types.rb +0 -46
  1751. data/lib/pangea/resources/aws_vpc_endpoint_subnet_association/resource.rb +0 -67
  1752. data/lib/pangea/resources/aws_vpc_endpoint_subnet_association/types.rb +0 -46
  1753. data/lib/pangea/resources/aws_vpc_network_performance_metric_subscription/resource.rb +0 -67
  1754. data/lib/pangea/resources/aws_vpc_network_performance_metric_subscription/types.rb +0 -46
  1755. data/lib/pangea/resources/aws_vpc_peering_connection/CLAUDE.md +0 -361
  1756. data/lib/pangea/resources/aws_vpc_peering_connection/resource.rb +0 -118
  1757. data/lib/pangea/resources/aws_vpc_peering_connection/types.rb +0 -115
  1758. data/lib/pangea/resources/aws_vpc_peering_connection_accepter/CLAUDE.md +0 -248
  1759. data/lib/pangea/resources/aws_vpc_peering_connection_accepter/resource.rb +0 -67
  1760. data/lib/pangea/resources/aws_vpc_peering_connection_accepter/types.rb +0 -46
  1761. data/lib/pangea/resources/aws_vpc_peering_connection_options/resource.rb +0 -67
  1762. data/lib/pangea/resources/aws_vpc_peering_connection_options/types.rb +0 -46
  1763. data/lib/pangea/resources/aws_vpc_security_group_egress_rule/resource.rb +0 -67
  1764. data/lib/pangea/resources/aws_vpc_security_group_egress_rule/types.rb +0 -46
  1765. data/lib/pangea/resources/aws_vpc_security_group_ingress_rule/resource.rb +0 -67
  1766. data/lib/pangea/resources/aws_vpc_security_group_ingress_rule/types.rb +0 -46
  1767. data/lib/pangea/resources/aws_vpn_connection/CLAUDE.md +0 -420
  1768. data/lib/pangea/resources/aws_vpn_connection/resource.rb +0 -119
  1769. data/lib/pangea/resources/aws_vpn_connection/types.rb +0 -127
  1770. data/lib/pangea/resources/aws_vpn_gateway/CLAUDE.md +0 -411
  1771. data/lib/pangea/resources/aws_vpn_gateway/resource.rb +0 -92
  1772. data/lib/pangea/resources/aws_vpn_gateway/types.rb +0 -87
  1773. data/lib/pangea/resources/aws_wafv2_ip_set/resource.rb +0 -83
  1774. data/lib/pangea/resources/aws_wafv2_ip_set/types.rb +0 -141
  1775. data/lib/pangea/resources/aws_wafv2_ip_set.rbs +0 -36
  1776. data/lib/pangea/resources/aws_wafv2_regex_pattern_set/resource.rb +0 -89
  1777. data/lib/pangea/resources/aws_wafv2_regex_pattern_set/types.rb +0 -274
  1778. data/lib/pangea/resources/aws_wafv2_rule_group/resource.rb +0 -427
  1779. data/lib/pangea/resources/aws_wafv2_rule_group/types.rb +0 -270
  1780. data/lib/pangea/resources/aws_wafv2_rule_group.rbs +0 -44
  1781. data/lib/pangea/resources/aws_wafv2_web_acl/CLAUDE.md +0 -788
  1782. data/lib/pangea/resources/aws_wafv2_web_acl/resource.rb +0 -499
  1783. data/lib/pangea/resources/aws_wafv2_web_acl/types.rb +0 -544
  1784. data/lib/pangea/resources/aws_wafv2_web_acl.rbs +0 -309
  1785. data/lib/pangea/resources/aws_wavelength.rb +0 -323
  1786. data/lib/pangea/resources/aws_workspaces_bundle/CLAUDE.md +0 -412
  1787. data/lib/pangea/resources/aws_workspaces_bundle/resource.rb +0 -100
  1788. data/lib/pangea/resources/aws_workspaces_bundle/types.rb +0 -217
  1789. data/lib/pangea/resources/aws_workspaces_directory/CLAUDE.md +0 -365
  1790. data/lib/pangea/resources/aws_workspaces_directory/resource.rb +0 -133
  1791. data/lib/pangea/resources/aws_workspaces_directory/types.rb +0 -237
  1792. data/lib/pangea/resources/aws_workspaces_ip_group/CLAUDE.md +0 -421
  1793. data/lib/pangea/resources/aws_workspaces_ip_group/resource.rb +0 -93
  1794. data/lib/pangea/resources/aws_workspaces_ip_group/types.rb +0 -149
  1795. data/lib/pangea/resources/aws_workspaces_workspace/CLAUDE.md +0 -322
  1796. data/lib/pangea/resources/aws_workspaces_workspace/resource.rb +0 -108
  1797. data/lib/pangea/resources/aws_workspaces_workspace/types.rb +0 -184
  1798. data/lib/pangea/resources/aws_xray_encryption_config/resource.rb +0 -80
  1799. data/lib/pangea/resources/aws_xray_group/resource.rb +0 -113
  1800. data/lib/pangea/resources/aws_xray_sampling_rule/resource.rb +0 -146
  1801. data/lib/pangea/resources/base.rb +0 -81
  1802. data/lib/pangea/resources/composition.rb +0 -534
  1803. data/lib/pangea/resources/edge_computing_guide.md +0 -613
  1804. data/lib/pangea/resources/event_driven_example.rb +0 -288
  1805. data/lib/pangea/resources/helpers.rb +0 -54
  1806. data/lib/pangea/resources/reference.rb +0 -280
  1807. data/lib/pangea/resources/templates/resource_template.rb.erb +0 -56
  1808. data/lib/pangea/resources/types.rb +0 -1231
  1809. data/lib/pangea/resources.rb +0 -32
  1810. data/lib/pangea/types/aws_types.rb +0 -65
  1811. data/lib/pangea/types/base_types.rb +0 -51
  1812. data/lib/pangea/types/computed_types.rb +0 -23
  1813. data/lib/pangea/types/registry.rb +0 -68
  1814. data/lib/pangea/types.rb +0 -164
  1815. data/lib/pangea/ui.rb +0 -44
  1816. data/lib/pangea/utilities/analysis/README.md +0 -11
  1817. data/lib/pangea/utilities/cli/README.md +0 -11
  1818. data/lib/pangea/utilities/cli/command.rb +0 -98
  1819. data/lib/pangea/utilities/cli/commands/cost_command.rb +0 -117
  1820. data/lib/pangea/utilities/cli/commands/drift_command.rb +0 -127
  1821. data/lib/pangea/utilities/cli/commands/state_command.rb +0 -119
  1822. data/lib/pangea/utilities/cost/README.md +0 -12
  1823. data/lib/pangea/utilities/cost/calculator.rb +0 -174
  1824. data/lib/pangea/utilities/cost/resource_pricing.rb +0 -102
  1825. data/lib/pangea/utilities/cost.rb +0 -29
  1826. data/lib/pangea/utilities/drift/README.md +0 -12
  1827. data/lib/pangea/utilities/drift/detector.rb +0 -122
  1828. data/lib/pangea/utilities/drift/report.rb +0 -100
  1829. data/lib/pangea/utilities/drift.rb +0 -29
  1830. data/lib/pangea/utilities/migration/README.md +0 -11
  1831. data/lib/pangea/utilities/monitoring/README.md +0 -11
  1832. data/lib/pangea/utilities/remote_state/README.md +0 -12
  1833. data/lib/pangea/utilities/remote_state/dependency_manager.rb +0 -99
  1834. data/lib/pangea/utilities/remote_state/dsl_extensions.rb +0 -109
  1835. data/lib/pangea/utilities/remote_state/output_registry.rb +0 -119
  1836. data/lib/pangea/utilities/remote_state/reference.rb +0 -77
  1837. data/lib/pangea/utilities/remote_state.rb +0 -28
  1838. data/lib/pangea/utilities/validation/README.md +0 -11
  1839. data/lib/pangea/utilities/visualization/README.md +0 -12
  1840. data/lib/pangea/utilities/visualization/graph.rb +0 -112
  1841. data/lib/pangea/utilities/visualization/mermaid_exporter.rb +0 -149
  1842. data/lib/pangea/utilities/visualization.rb +0 -28
  1843. data/lib/pangea/utilities.rb +0 -39
  1844. data/lib/pangea/validation.rb +0 -100
  1845. data/pangea.yaml.example +0 -87
  1846. data/pangea.yml.example +0 -76
  1847. data/pangea_test.yml +0 -19
  1848. data/rbs_collection.yaml +0 -37
  1849. data/release.sh +0 -32
  1850. data/scripts/add_copyright_headers.rb +0 -65
  1851. data/scripts/analyze_resource_structure.rb +0 -127
  1852. data/scripts/audit_vpc_resources.rb +0 -36
  1853. data/scripts/discover_resources.rb +0 -53
  1854. data/scripts/find_untested_resources.rb +0 -115
  1855. data/scripts/generate_vpc_tests.rb +0 -21
  1856. data/scripts/prioritize_resources.rb +0 -72
  1857. data/scripts/synthesis_coverage_report.json +0 -3723
  1858. data/scripts/synthesis_coverage_report.rb +0 -284
  1859. data/scripts/synthesis_coverage_summary.rb +0 -233
  1860. data/scripts/synthesis_enhancement_tasks.json +0 -74
  1861. data/scripts/verify_implementation.rb +0 -146
  1862. data/scripts/verify_utilities.rb +0 -185
  1863. data/shell.nix +0 -13
  1864. data/sig/pangea/architectures.rbs +0 -260
  1865. data/sig/pangea/entities/namespace.rbs +0 -37
  1866. data/sig/pangea/resources/aws.rbs +0 -254
  1867. data/sig/pangea/resources/aws_acm_certificate.rbs +0 -23
  1868. data/sig/pangea/resources/aws_acm_certificate_validation.rbs +0 -20
  1869. data/sig/pangea/resources/aws_api_gateway_deployment.rbs +0 -49
  1870. data/sig/pangea/resources/aws_api_gateway_method.rbs +0 -51
  1871. data/sig/pangea/resources/aws_api_gateway_resource.rbs +0 -33
  1872. data/sig/pangea/resources/aws_api_gateway_rest_api.rbs +0 -60
  1873. data/sig/pangea/resources/aws_api_gateway_stage.rbs +0 -89
  1874. data/sig/pangea/resources/aws_appstream_fleet.rbs +0 -58
  1875. data/sig/pangea/resources/aws_batch_compute_environment.rbs +0 -54
  1876. data/sig/pangea/resources/aws_batch_job_definition.rbs +0 -69
  1877. data/sig/pangea/resources/aws_batch_job_queue.rbs +0 -65
  1878. data/sig/pangea/resources/aws_braket_device.rbs +0 -114
  1879. data/sig/pangea/resources/aws_braket_quantum_task.rbs +0 -32
  1880. data/sig/pangea/resources/aws_budgets_budget.rbs +0 -130
  1881. data/sig/pangea/resources/aws_budgets_budget_action.rbs +0 -95
  1882. data/sig/pangea/resources/aws_cloudfront_cache_policy.rbs +0 -18
  1883. data/sig/pangea/resources/aws_cloudfront_distribution.rbs +0 -124
  1884. data/sig/pangea/resources/aws_cloudfront_origin_access_control.rbs +0 -27
  1885. data/sig/pangea/resources/aws_cloudfront_origin_request_policy.rbs +0 -17
  1886. data/sig/pangea/resources/aws_cloudwatch_composite_alarm.rbs +0 -34
  1887. data/sig/pangea/resources/aws_cloudwatch_dashboard.rbs +0 -69
  1888. data/sig/pangea/resources/aws_cloudwatch_event_rule.rbs +0 -34
  1889. data/sig/pangea/resources/aws_cloudwatch_event_target.rbs +0 -80
  1890. data/sig/pangea/resources/aws_cloudwatch_log_destination.rbs +0 -26
  1891. data/sig/pangea/resources/aws_cloudwatch_log_destination_policy.rbs +0 -27
  1892. data/sig/pangea/resources/aws_cloudwatch_log_group.rbs +0 -28
  1893. data/sig/pangea/resources/aws_cloudwatch_log_metric_filter.rbs +0 -43
  1894. data/sig/pangea/resources/aws_cloudwatch_log_stream.rbs +0 -25
  1895. data/sig/pangea/resources/aws_cloudwatch_log_subscription_filter.rbs +0 -28
  1896. data/sig/pangea/resources/aws_codeartifact_domain.rbs +0 -29
  1897. data/sig/pangea/resources/aws_codeartifact_repository.rbs +0 -46
  1898. data/sig/pangea/resources/aws_codestar_connection.rbs +0 -36
  1899. data/sig/pangea/resources/aws_cognito_identity_pool.rbs +0 -56
  1900. data/sig/pangea/resources/aws_cognito_identity_provider.rbs +0 -46
  1901. data/sig/pangea/resources/aws_cognito_user.rbs +0 -36
  1902. data/sig/pangea/resources/aws_cognito_user_group.rbs +0 -34
  1903. data/sig/pangea/resources/aws_cognito_user_pool.rbs +0 -176
  1904. data/sig/pangea/resources/aws_cognito_user_pool_client.rbs +0 -75
  1905. data/sig/pangea/resources/aws_cognito_user_pool_domain.rbs +0 -46
  1906. data/sig/pangea/resources/aws_datasync_on_snow_location.rbs +0 -12
  1907. data/sig/pangea/resources/aws_datasync_on_snow_task.rbs +0 -12
  1908. data/sig/pangea/resources/aws_datasync_snow_ball_edge.rbs +0 -12
  1909. data/sig/pangea/resources/aws_db_parameter_group.rbs +0 -81
  1910. data/sig/pangea/resources/aws_db_subnet_group.rbs +0 -42
  1911. data/sig/pangea/resources/aws_ec2_carrier_gateway.rbs +0 -12
  1912. data/sig/pangea/resources/aws_ec2_local_gateway.rbs +0 -12
  1913. data/sig/pangea/resources/aws_ec2_local_gateway_route.rbs +0 -12
  1914. data/sig/pangea/resources/aws_ec2_local_gateway_route_table.rbs +0 -12
  1915. data/sig/pangea/resources/aws_ec2_local_gateway_route_table_vpc_association.rbs +0 -12
  1916. data/sig/pangea/resources/aws_ec2_local_gateway_virtual_interface_group_association.rbs +0 -12
  1917. data/sig/pangea/resources/aws_ecr_lifecycle_policy.rbs +0 -28
  1918. data/sig/pangea/resources/aws_ecr_replication_configuration.rbs +0 -42
  1919. data/sig/pangea/resources/aws_ecr_repository.rbs +0 -36
  1920. data/sig/pangea/resources/aws_ecr_repository_policy.rbs +0 -27
  1921. data/sig/pangea/resources/aws_ecs_cluster.rbs +0 -86
  1922. data/sig/pangea/resources/aws_ecs_cluster_capacity_providers.rbs +0 -59
  1923. data/sig/pangea/resources/aws_ecs_service.rbs +0 -238
  1924. data/sig/pangea/resources/aws_ecs_task_definition.rbs +0 -334
  1925. data/sig/pangea/resources/aws_efs_access_point.rbs +0 -33
  1926. data/sig/pangea/resources/aws_efs_file_system.rbs +0 -34
  1927. data/sig/pangea/resources/aws_efs_mount_target.rbs +0 -29
  1928. data/sig/pangea/resources/aws_eks_addon.rbs +0 -50
  1929. data/sig/pangea/resources/aws_eks_cluster.rbs +0 -79
  1930. data/sig/pangea/resources/aws_eks_fargate_profile.rbs +0 -43
  1931. data/sig/pangea/resources/aws_eks_node_group.rbs +0 -106
  1932. data/sig/pangea/resources/aws_elasticache_cluster.rbs +0 -39
  1933. data/sig/pangea/resources/aws_elasticache_parameter_group.rbs +0 -18
  1934. data/sig/pangea/resources/aws_elasticache_subnet_group.rbs +0 -17
  1935. data/sig/pangea/resources/aws_elemental_data_plane_channel.rbs +0 -18
  1936. data/sig/pangea/resources/aws_emrcontainers_virtual_cluster.rbs +0 -39
  1937. data/sig/pangea/resources/aws_frauddetector_detector.rbs +0 -76
  1938. data/sig/pangea/resources/aws_groundstation_antenna_downlink_config.rbs +0 -12
  1939. data/sig/pangea/resources/aws_groundstation_antenna_uplink_config.rbs +0 -12
  1940. data/sig/pangea/resources/aws_groundstation_config.rbs +0 -12
  1941. data/sig/pangea/resources/aws_groundstation_contact.rbs +0 -12
  1942. data/sig/pangea/resources/aws_groundstation_dataflow_endpoint_group.rbs +0 -12
  1943. data/sig/pangea/resources/aws_groundstation_mission_profile.rbs +0 -12
  1944. data/sig/pangea/resources/aws_groundstation_tracking_config.rbs +0 -12
  1945. data/sig/pangea/resources/aws_healthlake_fhir_datastore.rbs +0 -80
  1946. data/sig/pangea/resources/aws_iam_group.rbs +0 -71
  1947. data/sig/pangea/resources/aws_iam_policy.rbs +0 -62
  1948. data/sig/pangea/resources/aws_iam_role_policy_attachment.rbs +0 -88
  1949. data/sig/pangea/resources/aws_iam_user.rbs +0 -56
  1950. data/sig/pangea/resources/aws_kms_alias.rbs +0 -16
  1951. data/sig/pangea/resources/aws_kms_key.rbs +0 -23
  1952. data/sig/pangea/resources/aws_lambda_event_source_mapping.rbs +0 -116
  1953. data/sig/pangea/resources/aws_lambda_function.rbs +0 -137
  1954. data/sig/pangea/resources/aws_lambda_layer_version.rbs +0 -48
  1955. data/sig/pangea/resources/aws_lambda_permission.rbs +0 -44
  1956. data/sig/pangea/resources/aws_lightsail_bucket.rbs +0 -12
  1957. data/sig/pangea/resources/aws_lightsail_certificate.rbs +0 -12
  1958. data/sig/pangea/resources/aws_lightsail_database.rbs +0 -12
  1959. data/sig/pangea/resources/aws_lightsail_disk.rbs +0 -12
  1960. data/sig/pangea/resources/aws_lightsail_disk_attachment.rbs +0 -12
  1961. data/sig/pangea/resources/aws_lightsail_domain.rbs +0 -12
  1962. data/sig/pangea/resources/aws_lightsail_instance.rbs +0 -12
  1963. data/sig/pangea/resources/aws_lightsail_key_pair.rbs +0 -12
  1964. data/sig/pangea/resources/aws_lightsail_load_balancer.rbs +0 -12
  1965. data/sig/pangea/resources/aws_lightsail_load_balancer_attachment.rbs +0 -12
  1966. data/sig/pangea/resources/aws_lightsail_static_ip.rbs +0 -12
  1967. data/sig/pangea/resources/aws_lightsail_static_ip_attachment.rbs +0 -12
  1968. data/sig/pangea/resources/aws_lookoutequipment_dataset.rbs +0 -73
  1969. data/sig/pangea/resources/aws_managedblockchain_member.rbs +0 -73
  1970. data/sig/pangea/resources/aws_managedblockchain_network.rbs +0 -102
  1971. data/sig/pangea/resources/aws_managedblockchain_node.rbs +0 -71
  1972. data/sig/pangea/resources/aws_media_convert_queue.rbs +0 -20
  1973. data/sig/pangea/resources/aws_media_live_channel.rbs +0 -67
  1974. data/sig/pangea/resources/aws_media_live_input.rbs +0 -68
  1975. data/sig/pangea/resources/aws_media_package_channel.rbs +0 -35
  1976. data/sig/pangea/resources/aws_media_package_origin_endpoint.rbs +0 -29
  1977. data/sig/pangea/resources/aws_media_store_container.rbs +0 -13
  1978. data/sig/pangea/resources/aws_outposts_asset.rbs +0 -12
  1979. data/sig/pangea/resources/aws_outposts_capacity_task.rbs +0 -12
  1980. data/sig/pangea/resources/aws_outposts_connection.rbs +0 -12
  1981. data/sig/pangea/resources/aws_outposts_order.rbs +0 -12
  1982. data/sig/pangea/resources/aws_outposts_outpost.rbs +0 -12
  1983. data/sig/pangea/resources/aws_outposts_outpost_instance_type.rbs +0 -12
  1984. data/sig/pangea/resources/aws_outposts_site.rbs +0 -12
  1985. data/sig/pangea/resources/aws_outposts_supported_hardware_type.rbs +0 -12
  1986. data/sig/pangea/resources/aws_qldb_ledger.rbs +0 -37
  1987. data/sig/pangea/resources/aws_qldb_stream.rbs +0 -53
  1988. data/sig/pangea/resources/aws_rds_cluster.rbs +0 -193
  1989. data/sig/pangea/resources/aws_rds_cluster_instance.rbs +0 -128
  1990. data/sig/pangea/resources/aws_route53_health_check.rbs +0 -34
  1991. data/sig/pangea/resources/aws_route53_record.rbs +0 -63
  1992. data/sig/pangea/resources/aws_route53_zone.rbs +0 -26
  1993. data/sig/pangea/resources/aws_s3_bucket_cors_configuration.rbs +0 -42
  1994. data/sig/pangea/resources/aws_s3_bucket_inventory.rbs +0 -78
  1995. data/sig/pangea/resources/aws_s3_bucket_lifecycle_configuration.rbs +0 -94
  1996. data/sig/pangea/resources/aws_s3_bucket_notification.rbs +0 -65
  1997. data/sig/pangea/resources/aws_s3_bucket_object_lock_configuration.rbs +0 -51
  1998. data/sig/pangea/resources/aws_s3_bucket_replication_configuration.rbs +0 -107
  1999. data/sig/pangea/resources/aws_s3_bucket_website_configuration.rbs +0 -74
  2000. data/sig/pangea/resources/aws_sagemaker_feature_group.rbs +0 -58
  2001. data/sig/pangea/resources/aws_secretsmanager_secret.rbs +0 -29
  2002. data/sig/pangea/resources/aws_secretsmanager_secret_version.rbs +0 -21
  2003. data/sig/pangea/resources/aws_sfn_activity.rbs +0 -36
  2004. data/sig/pangea/resources/aws_sfn_state_machine.rbs +0 -54
  2005. data/sig/pangea/resources/aws_snowball_cluster.rbs +0 -12
  2006. data/sig/pangea/resources/aws_snowball_job.rbs +0 -12
  2007. data/sig/pangea/resources/aws_snowcone_device.rbs +0 -12
  2008. data/sig/pangea/resources/aws_snowcone_job.rbs +0 -12
  2009. data/sig/pangea/resources/aws_snowmobile_job.rbs +0 -12
  2010. data/sig/pangea/resources/aws_sns_subscription.rbs +0 -49
  2011. data/sig/pangea/resources/aws_sns_topic.rbs +0 -78
  2012. data/sig/pangea/resources/aws_sqs_queue.rbs +0 -67
  2013. data/sig/pangea/resources/aws_sqs_queue_policy.rbs +0 -29
  2014. data/sig/pangea/resources/aws_wavelength_application_deployment.rbs +0 -12
  2015. data/sig/pangea/resources/aws_wavelength_deployment.rbs +0 -12
  2016. data/sig/pangea/resources/aws_wavelength_edge_location_mapping.rbs +0 -12
  2017. data/sig/pangea/resources/aws_wavelength_network_interface.rbs +0 -12
  2018. data/sig/pangea/resources/aws_wavelength_workload.rbs +0 -12
  2019. data/sig/pangea/resources/aws_workspaces_bundle.rbs +0 -50
  2020. data/sig/pangea/resources/aws_workspaces_directory.rbs +0 -63
  2021. data/sig/pangea/resources/aws_workspaces_ip_group.rbs +0 -41
  2022. data/sig/pangea/resources/aws_workspaces_workspace.rbs +0 -40
  2023. data/sig/pangea/structures/namespace.rbs +0 -28
  2024. data/sig/pangea/structures/project.rbs +0 -20
  2025. data/sig/pangea/types.rbs +0 -76
  2026. data/sig/pangea.rbs +0 -13
  2027. data/test_infrastructure/infrastructure.rb +0 -510
  2028. data/test_infrastructure/main.tf.json +0 -15
  2029. data/test_infrastructure/multi_template_infrastructure.rb +0 -125
  2030. data/test_infrastructure/pangea.yml +0 -35
  2031. data/test_infrastructure/simple_infrastructure.rb +0 -82
  2032. data/test_infrastructure/test_multi_workspaces.rb +0 -90
  2033. data/test_infrastructure/test_template_workspaces.rb +0 -62
  2034. data/test_infrastructure/workspace_compute.tf.json +0 -46
  2035. data/test_infrastructure/workspace_local_resources.tf.json +0 -41
  2036. data/test_infrastructure/workspace_networking.tf.json +0 -32
  2037. data/test_infrastructure/workspace_storage.tf.json +0 -34
  2038. data/tools/README.md +0 -245
  2039. data/tools/analyze_terraform_docs.rb +0 -367
  2040. data/tools/batch_generate_resources.rb +0 -304
  2041. data/tools/complete_resource_data.rb +0 -492
  2042. data/tools/database_batch.yaml +0 -62
  2043. data/tools/database_resource_data.rb +0 -454
  2044. data/tools/enhance_database_batch.rb +0 -69
  2045. data/tools/enhance_remaining_batch.rb +0 -61
  2046. data/tools/generate_resource.rb +0 -530
  2047. data/tools/priority_resources.yaml +0 -95
  2048. data/tools/resource_enhancer.rb +0 -531
  2049. data/tools/simple_validation.rb +0 -231
  2050. data/tools/update_aws_loader.rb +0 -150
  2051. data/tools/validate_database_resources.rb +0 -444
@@ -1,1754 +0,0 @@
1
- # frozen_string_literal: true
2
- # Copyright 2025 The Pangea Authors
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
-
17
- require_relative "types"
18
-
19
- module Pangea
20
- module Components
21
- module SustainableMLTraining
22
- class Component
23
- include Pangea::DSL
24
-
25
- def self.build(input)
26
- new.build(input)
27
- end
28
-
29
- def build(input)
30
- input = Types::Input.new(input) unless input.is_a?(Types::Input)
31
-
32
- # Validate input parameters
33
- Types.validate_dataset_size(input.dataset_size_gb)
34
- Types.validate_training_hours(input.estimated_training_hours)
35
- Types.validate_carbon_threshold(input.carbon_intensity_threshold)
36
- Types.validate_model_compression(input.enable_model_compression, input.target_model_size_reduction)
37
-
38
- # Create IAM roles
39
- sagemaker_role = create_sagemaker_role(input)
40
- lambda_role = create_lambda_role(input)
41
-
42
- # Create storage resources
43
- s3_bucket = create_s3_bucket(input)
44
- fsx_filesystem = input.use_fsx_lustre ? create_fsx_filesystem(input, s3_bucket) : nil
45
- model_cache_bucket = input.enable_model_caching ? create_model_cache_bucket(input) : nil
46
-
47
- # Create DynamoDB tables
48
- training_state_table = create_training_state_table(input)
49
- carbon_tracking_table = create_carbon_tracking_table(input)
50
-
51
- # Create Lambda functions
52
- carbon_scheduler = create_carbon_scheduler_function(input, lambda_role, training_state_table, carbon_tracking_table)
53
- training_optimizer = create_training_optimizer_function(input, lambda_role, training_state_table)
54
- efficiency_monitor = create_efficiency_monitor_function(input, lambda_role, carbon_tracking_table)
55
-
56
- # Create instance profile for EC2
57
- instance_profile = create_instance_profile(input, sagemaker_role)
58
-
59
- # Create spot fleet if using spot instances
60
- spot_fleet = input.use_spot_instances ? create_spot_fleet(input, instance_profile) : nil
61
-
62
- # Create SageMaker training job
63
- training_job = create_training_job(input, sagemaker_role, s3_bucket, fsx_filesystem)
64
-
65
- # Create experiment tracking
66
- experiment_tracking = input.enable_experiment_tracking ? create_experiment_tracking(input) : nil
67
-
68
- # Create monitoring resources
69
- training_metrics = create_training_metrics(input)
70
- carbon_dashboard = create_carbon_dashboard(input, training_metrics)
71
- efficiency_alarms = create_efficiency_alarms(input, training_metrics)
72
-
73
- # Optional: Create model and endpoint
74
- model = nil # Created after training completes
75
- endpoint = nil # Created after model is ready
76
-
77
- Types::Output.new(
78
- training_job: training_job,
79
- model: model,
80
- endpoint: endpoint,
81
- spot_fleet: spot_fleet,
82
- instance_profile: instance_profile,
83
- s3_bucket: s3_bucket,
84
- fsx_filesystem: fsx_filesystem,
85
- model_cache_bucket: model_cache_bucket,
86
- carbon_scheduler_function: carbon_scheduler,
87
- training_optimizer_function: training_optimizer,
88
- efficiency_monitor_function: efficiency_monitor,
89
- experiment_tracking: experiment_tracking,
90
- carbon_dashboard: carbon_dashboard,
91
- training_metrics: training_metrics,
92
- efficiency_alarms: efficiency_alarms,
93
- training_state_table: training_state_table,
94
- carbon_tracking_table: carbon_tracking_table,
95
- sagemaker_role: sagemaker_role,
96
- lambda_role: lambda_role
97
- )
98
- end
99
-
100
- private
101
-
102
- def create_sagemaker_role(input)
103
- aws_iam_role(:"#{input.name}-sagemaker-role", {
104
- assume_role_policy: JSON.pretty_generate({
105
- Version: "2012-10-17",
106
- Statement: [{
107
- Effect: "Allow",
108
- Principal: { Service: "sagemaker.amazonaws.com" },
109
- Action: "sts:AssumeRole"
110
- }]
111
- }),
112
- managed_policy_arns: [
113
- "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
114
- ],
115
- inline_policy: [{
116
- name: "sustainable-ml-training-policy",
117
- policy: JSON.pretty_generate({
118
- Version: "2012-10-17",
119
- Statement: [
120
- {
121
- Effect: "Allow",
122
- Action: [
123
- "s3:GetObject",
124
- "s3:PutObject",
125
- "s3:DeleteObject",
126
- "s3:ListBucket"
127
- ],
128
- Resource: [
129
- "arn:aws:s3:::#{input.s3_bucket_name}",
130
- "arn:aws:s3:::#{input.s3_bucket_name}/*"
131
- ]
132
- },
133
- {
134
- Effect: "Allow",
135
- Action: [
136
- "ec2:CreateNetworkInterface",
137
- "ec2:DeleteNetworkInterface",
138
- "ec2:DescribeNetworkInterfaces",
139
- "ec2:DescribeVpcs",
140
- "ec2:DescribeSubnets",
141
- "ec2:DescribeSecurityGroups"
142
- ],
143
- Resource: "*"
144
- },
145
- {
146
- Effect: "Allow",
147
- Action: [
148
- "fsx:DescribeFileSystems",
149
- "fsx:CreateFileSystem"
150
- ],
151
- Resource: "*"
152
- }
153
- ]
154
- })
155
- }],
156
- tags: input.tags.merge("Component" => "sustainable-ml-training")
157
- })
158
- end
159
-
160
- def create_lambda_role(input)
161
- aws_iam_role(:"#{input.name}-lambda-role", {
162
- assume_role_policy: JSON.pretty_generate({
163
- Version: "2012-10-17",
164
- Statement: [{
165
- Effect: "Allow",
166
- Principal: { Service: "lambda.amazonaws.com" },
167
- Action: "sts:AssumeRole"
168
- }]
169
- }),
170
- inline_policy: [{
171
- name: "ml-optimization-policy",
172
- policy: JSON.pretty_generate({
173
- Version: "2012-10-17",
174
- Statement: [
175
- {
176
- Effect: "Allow",
177
- Action: [
178
- "sagemaker:*",
179
- "ec2:*",
180
- "cloudwatch:*",
181
- "dynamodb:*",
182
- "s3:*"
183
- ],
184
- Resource: "*"
185
- },
186
- {
187
- Effect: "Allow",
188
- Action: [
189
- "logs:CreateLogGroup",
190
- "logs:CreateLogStream",
191
- "logs:PutLogEvents"
192
- ],
193
- Resource: "*"
194
- }
195
- ]
196
- })
197
- }],
198
- tags: input.tags.merge("Component" => "sustainable-ml-training")
199
- })
200
- end
201
-
202
- def create_s3_bucket(input)
203
- aws_s3_bucket(:"#{input.name}-training-data", {
204
- bucket: input.s3_bucket_name,
205
- versioning: {
206
- status: "Enabled"
207
- },
208
- lifecycle_rule: [{
209
- id: "expire-old-checkpoints",
210
- status: "Enabled",
211
- prefix: "checkpoints/",
212
- expiration: {
213
- days: 30
214
- }
215
- }],
216
- server_side_encryption_configuration: {
217
- rule: [{
218
- apply_server_side_encryption_by_default: {
219
- sse_algorithm: "AES256"
220
- }
221
- }]
222
- },
223
- tags: input.tags.merge(
224
- "Component" => "sustainable-ml-training",
225
- "Purpose" => "training-data"
226
- )
227
- })
228
- end
229
-
230
- def create_fsx_filesystem(input, s3_bucket)
231
- aws_fsx_lustre_file_system(:"#{input.name}-fsx", {
232
- storage_capacity: calculate_fsx_capacity(input.dataset_size_gb),
233
- subnet_ids: ["subnet-12345"], # Would be provided via input
234
- deployment_type: "SCRATCH_2",
235
- data_compression_type: "LZ4",
236
- import_path: "s3://#{s3_bucket.bucket}/data",
237
- export_path: "s3://#{s3_bucket.bucket}/output",
238
- auto_import_policy: "NEW_CHANGED",
239
- tags: input.tags.merge(
240
- "Component" => "sustainable-ml-training",
241
- "Purpose" => "high-performance-storage"
242
- )
243
- })
244
- end
245
-
246
- def calculate_fsx_capacity(dataset_size_gb)
247
- # FSx Lustre requires minimum 1.2TB
248
- # Add 20% overhead for working space
249
- required_gb = (dataset_size_gb * 1.2).to_i
250
- # Round up to nearest 1.2TB increment
251
- ((required_gb / 1200.0).ceil * 1200).clamp(1200, 432000)
252
- end
253
-
254
- def create_model_cache_bucket(input)
255
- aws_s3_bucket(:"#{input.name}-model-cache", {
256
- bucket: "#{input.s3_bucket_name}-model-cache",
257
- lifecycle_rule: [{
258
- id: "intelligent-tiering",
259
- status: "Enabled",
260
- transition: [{
261
- days: 0,
262
- storage_class: "INTELLIGENT_TIERING"
263
- }]
264
- }],
265
- tags: input.tags.merge(
266
- "Component" => "sustainable-ml-training",
267
- "Purpose" => "model-cache"
268
- )
269
- })
270
- end
271
-
272
- def create_training_state_table(input)
273
- aws_dynamodb_table(:"#{input.name}-training-state", {
274
- billing_mode: "PAY_PER_REQUEST",
275
- hash_key: "job_id",
276
- range_key: "timestamp",
277
- attribute: [
278
- { name: "job_id", type: "S" },
279
- { name: "timestamp", type: "N" },
280
- { name: "region", type: "S" },
281
- { name: "carbon_intensity", type: "N" }
282
- ],
283
- global_secondary_index: [{
284
- name: "region-carbon-index",
285
- hash_key: "region",
286
- range_key: "carbon_intensity",
287
- projection_type: "ALL"
288
- }],
289
- stream_specification: {
290
- stream_enabled: true,
291
- stream_view_type: "NEW_AND_OLD_IMAGES"
292
- },
293
- tags: input.tags.merge(
294
- "Component" => "sustainable-ml-training",
295
- "Purpose" => "training-state"
296
- )
297
- })
298
- end
299
-
300
- def create_carbon_tracking_table(input)
301
- aws_dynamodb_table(:"#{input.name}-carbon-tracking", {
302
- billing_mode: "PAY_PER_REQUEST",
303
- hash_key: "metric_id",
304
- range_key: "timestamp",
305
- attribute: [
306
- { name: "metric_id", type: "S" },
307
- { name: "timestamp", type: "N" }
308
- ],
309
- ttl: {
310
- enabled: true,
311
- attribute_name: "expiration"
312
- },
313
- tags: input.tags.merge(
314
- "Component" => "sustainable-ml-training",
315
- "Purpose" => "carbon-tracking"
316
- )
317
- })
318
- end
319
-
320
- def create_instance_profile(input, role)
321
- aws_iam_instance_profile(:"#{input.name}-instance-profile", {
322
- role: role.name,
323
- tags: input.tags
324
- })
325
- end
326
-
327
- def create_spot_fleet(input, instance_profile)
328
- # Simplified spot fleet for ML training
329
- aws_spot_fleet_request(:"#{input.name}-training-fleet", {
330
- iam_fleet_role: ref(:aws_iam_role, :"#{input.name}-fleet-role", :arn),
331
- target_capacity: 1, # Typically 1 for ML training
332
- valid_until: (Time.now + 7 * 24 * 60 * 60).iso8601,
333
- terminate_instances_with_expiration: true,
334
- instance_interruption_behavior: input.spot_interruption_behavior,
335
-
336
- launch_specification: input.preferred_instance_types.map { |instance_type|
337
- {
338
- instance_type: instance_type,
339
- image_id: get_ml_ami(instance_type),
340
- iam_instance_profile: {
341
- arn: instance_profile.arn
342
- },
343
- user_data: Base64.encode64(generate_training_user_data(input)),
344
- block_device_mappings: [{
345
- device_name: "/dev/xvda",
346
- ebs: {
347
- volume_size: 500,
348
- volume_type: "gp3",
349
- delete_on_termination: true
350
- }
351
- }]
352
- }
353
- },
354
-
355
- spot_price: calculate_spot_price(input),
356
- allocation_strategy: "lowestPrice"
357
- })
358
- end
359
-
360
- def get_ml_ami(instance_type)
361
- # Return appropriate Deep Learning AMI
362
- if instance_type.include?('trn1')
363
- "ami-neuron-latest"
364
- elsif instance_type.include?('p4')
365
- "ami-nvidia-cuda-12"
366
- else
367
- "ami-deep-learning-base"
368
- end
369
- end
370
-
371
- def calculate_spot_price(input)
372
- # Calculate max spot price based on percentage
373
- on_demand_price = 10.0 # Example price
374
- max_price = on_demand_price * (input.max_spot_price_percentage / 100.0)
375
- max_price.round(4).to_s
376
- end
377
-
378
- def create_carbon_scheduler_function(input, role, state_table, carbon_table)
379
- aws_lambda_function(:"#{input.name}-carbon-scheduler", {
380
- runtime: "python3.11",
381
- handler: "index.handler",
382
- role: role.arn,
383
- timeout: 300,
384
- memory_size: 512,
385
- environment: {
386
- variables: {
387
- "STATE_TABLE": state_table.table_name,
388
- "CARBON_TABLE": carbon_table.table_name,
389
- "CARBON_THRESHOLD": input.carbon_intensity_threshold.to_s,
390
- "PREFERRED_REGIONS": input.preferred_training_regions.join(","),
391
- "TRAINING_STRATEGY": input.training_strategy
392
- }
393
- },
394
- code: {
395
- zip_file: generate_carbon_scheduler_code(input)
396
- },
397
- tags: input.tags.merge(
398
- "Component" => "sustainable-ml-training",
399
- "Function" => "carbon-scheduler"
400
- )
401
- })
402
- end
403
-
404
- def create_training_optimizer_function(input, role, state_table)
405
- aws_lambda_function(:"#{input.name}-training-optimizer", {
406
- runtime: "python3.11",
407
- handler: "index.handler",
408
- role: role.arn,
409
- timeout: 900,
410
- memory_size: 1024,
411
- environment: {
412
- variables: {
413
- "STATE_TABLE": state_table.table_name,
414
- "COMPUTE_OPTIMIZATION": input.compute_optimization,
415
- "ENABLE_COMPRESSION": input.enable_model_compression.to_s,
416
- "TARGET_REDUCTION": input.target_model_size_reduction.to_s,
417
- "EARLY_STOPPING": input.enable_early_stopping.to_s,
418
- "PATIENCE": input.early_stopping_patience.to_s
419
- }
420
- },
421
- code: {
422
- zip_file: generate_training_optimizer_code(input)
423
- },
424
- tags: input.tags.merge(
425
- "Component" => "sustainable-ml-training",
426
- "Function" => "training-optimizer"
427
- )
428
- })
429
- end
430
-
431
- def create_efficiency_monitor_function(input, role, carbon_table)
432
- aws_lambda_function(:"#{input.name}-efficiency-monitor", {
433
- runtime: "python3.11",
434
- handler: "index.handler",
435
- role: role.arn,
436
- timeout: 300,
437
- memory_size: 512,
438
- environment: {
439
- variables: {
440
- "CARBON_TABLE": carbon_table.table_name,
441
- "TRACK_CARBON": input.track_carbon_emissions.to_s,
442
- "TRACK_ENERGY": input.track_energy_usage.to_s,
443
- "MODEL_TYPE": input.model_type
444
- }
445
- },
446
- code: {
447
- zip_file: generate_efficiency_monitor_code(input)
448
- },
449
- tags: input.tags.merge(
450
- "Component" => "sustainable-ml-training",
451
- "Function" => "efficiency-monitor"
452
- )
453
- })
454
- end
455
-
456
- def create_training_job(input, role, s3_bucket, fsx_filesystem)
457
- aws_sagemaker_training_job(:"#{input.name}-training", {
458
- training_job_name: "#{input.name}-#{Time.now.strftime('%Y%m%d-%H%M%S')}",
459
- role_arn: role.arn,
460
-
461
- algorithm_specification: {
462
- training_image: get_training_image(input),
463
- training_input_mode: fsx_filesystem ? "FastFile" : "File",
464
- enable_sage_maker_metrics_time_series: true
465
- },
466
-
467
- hyper_parameters: generate_hyperparameters(input),
468
-
469
- input_data_config: [{
470
- channel_name: "training",
471
- data_source: {
472
- s3_data_source: {
473
- s3_data_type: "S3Prefix",
474
- s3_uri: "s3://#{s3_bucket.bucket}/data/train",
475
- s3_data_distribution_type: "FullyReplicated"
476
- }
477
- }
478
- }],
479
-
480
- output_data_config: {
481
- s3_output_path: "s3://#{s3_bucket.bucket}/output"
482
- },
483
-
484
- resource_config: {
485
- instance_type: select_optimal_instance(input),
486
- instance_count: 1,
487
- volume_size_in_gb: 250
488
- },
489
-
490
- stopping_condition: {
491
- max_runtime_in_seconds: (input.estimated_training_hours * 3600).to_i
492
- },
493
-
494
- enable_managed_spot_training: input.use_spot_instances,
495
- checkpoint_config: {
496
- s3_uri: "s3://#{s3_bucket.bucket}/checkpoints"
497
- },
498
-
499
- tags: input.tags.merge(
500
- "Component" => "sustainable-ml-training",
501
- "CarbonOptimized" => "true"
502
- )
503
- })
504
- end
505
-
506
- def get_training_image(input)
507
- case input.model_type
508
- when 'computer_vision'
509
- "763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.13.1-gpu-py39"
510
- when 'natural_language'
511
- "763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-training:1.13.1-transformers4.26.0-gpu-py39"
512
- when 'tabular_data'
513
- "763104351884.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest"
514
- else
515
- "763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.11.0-gpu-py39"
516
- end
517
- end
518
-
519
- def select_optimal_instance(input)
520
- # Select based on priority and availability
521
- case input.instance_priority
522
- when 'gpu_efficient'
523
- 'ml.p4d.24xlarge' # A100 GPUs
524
- when 'cost_optimized'
525
- 'ml.g4dn.12xlarge' # T4 GPUs
526
- when 'carbon_optimized'
527
- 'ml.trn1.32xlarge' # AWS Trainium
528
- else
529
- 'ml.p3.8xlarge' # V100 GPUs
530
- end
531
- end
532
-
533
- def generate_hyperparameters(input)
534
- params = {
535
- 'epochs' => '100',
536
- 'batch_size' => '64',
537
- 'learning_rate' => '0.001',
538
- 'checkpoint_frequency' => input.checkpoint_frequency_minutes.to_s
539
- }
540
-
541
- # Add optimization-specific parameters
542
- case input.compute_optimization
543
- when 'mixed_precision'
544
- params['amp'] = 'true'
545
- params['loss_scale'] = 'dynamic'
546
- when 'quantization'
547
- params['quantization_aware'] = 'true'
548
- params['bits'] = '8'
549
- when 'pruning'
550
- params['pruning_schedule'] = 'polynomial'
551
- params['target_sparsity'] = '0.5'
552
- end
553
-
554
- params
555
- end
556
-
557
- def create_experiment_tracking(input)
558
- aws_sagemaker_experiment(:"#{input.name}-experiment", {
559
- experiment_name: "#{input.name}-sustainable-ml",
560
- description: "Carbon-optimized ML training experiment",
561
- tags: input.tags
562
- })
563
- end
564
-
565
- def create_training_metrics(input)
566
- metrics = []
567
-
568
- # Training efficiency metrics
569
- metrics << aws_cloudwatch_metric_alarm(:"#{input.name}-gpu-utilization", {
570
- alarm_name: "#{input.name}-gpu-utilization",
571
- comparison_operator: "LessThanThreshold",
572
- evaluation_periods: 2,
573
- metric_name: "GPUUtilization",
574
- namespace: "AWS/SageMaker",
575
- period: 300,
576
- statistic: "Average",
577
- threshold: 70.0,
578
- alarm_description: "Alert when GPU utilization is low",
579
- treat_missing_data: "notBreaching"
580
- })
581
-
582
- # Carbon metrics
583
- if input.track_carbon_emissions
584
- metrics << aws_cloudwatch_metric_alarm(:"#{input.name}-carbon-emissions", {
585
- alarm_name: "#{input.name}-training-carbon",
586
- comparison_operator: "GreaterThanThreshold",
587
- evaluation_periods: 1,
588
- metric_name: "CarbonEmissions",
589
- namespace: "SustainableML/#{input.name}",
590
- period: 3600,
591
- statistic: "Sum",
592
- threshold: 100.0,
593
- alarm_description: "Alert on high carbon emissions",
594
- treat_missing_data: "notBreaching"
595
- })
596
- end
597
-
598
- # Model efficiency metrics
599
- metrics << aws_cloudwatch_metric_alarm(:"#{input.name}-model-size", {
600
- alarm_name: "#{input.name}-model-size",
601
- comparison_operator: "GreaterThanThreshold",
602
- evaluation_periods: 1,
603
- metric_name: "ModelSize",
604
- namespace: "SustainableML/#{input.name}",
605
- period: 3600,
606
- statistic: "Maximum",
607
- threshold: 1000.0, # MB
608
- alarm_description: "Alert when model size is large",
609
- treat_missing_data: "notBreaching"
610
- })
611
-
612
- metrics
613
- end
614
-
615
- def create_carbon_dashboard(input, metrics)
616
- aws_cloudwatch_dashboard(:"#{input.name}-carbon-dashboard", {
617
- dashboard_name: "#{input.name}-sustainable-ml-dashboard",
618
- dashboard_body: JSON.pretty_generate({
619
- widgets: [
620
- {
621
- type: "metric",
622
- properties: {
623
- metrics: [
624
- ["SustainableML/#{input.name}", "CarbonIntensity", { stat: "Average" }],
625
- [".", "RenewablePercentage", { stat: "Average", yAxis: "right" }]
626
- ],
627
- period: 300,
628
- stat: "Average",
629
- region: "us-east-1",
630
- title: "Training Carbon Metrics",
631
- yAxis: {
632
- left: { label: "gCO2/kWh" },
633
- right: { label: "Renewable %" }
634
- }
635
- }
636
- },
637
- {
638
- type: "metric",
639
- properties: {
640
- metrics: [
641
- ["AWS/SageMaker", "GPUUtilization", { stat: "Average" }],
642
- [".", "GPUMemoryUtilization", { stat: "Average" }],
643
- [".", "CPUUtilization", { stat: "Average" }]
644
- ],
645
- period: 300,
646
- stat: "Average",
647
- region: "us-east-1",
648
- title: "Resource Utilization"
649
- }
650
- },
651
- {
652
- type: "metric",
653
- properties: {
654
- metrics: [
655
- ["SustainableML/#{input.name}", "TrainingProgress", { stat: "Maximum" }],
656
- [".", "ValidationAccuracy", { stat: "Maximum" }],
657
- [".", "TrainingLoss", { stat: "Minimum", yAxis: "right" }]
658
- ],
659
- period: 600,
660
- stat: "Average",
661
- region: "us-east-1",
662
- title: "Training Progress"
663
- }
664
- },
665
- {
666
- type: "metric",
667
- properties: {
668
- metrics: [
669
- ["SustainableML/#{input.name}", "EnergyConsumption", { stat: "Sum" }],
670
- [".", "CarbonEmissions", { stat: "Sum" }],
671
- [".", "CostSavings", { stat: "Sum", yAxis: "right" }]
672
- ],
673
- period: 3600,
674
- stat: "Sum",
675
- region: "us-east-1",
676
- title: "Sustainability Impact"
677
- }
678
- }
679
- ]
680
- })
681
- })
682
- end
683
-
684
- def create_efficiency_alarms(input, metrics)
685
- alarms = metrics.dup
686
-
687
- # Training efficiency alarm
688
- alarms << aws_cloudwatch_alarm(:"#{input.name}-training-efficiency", {
689
- alarm_name: "#{input.name}-low-training-efficiency",
690
- comparison_operator: "LessThanThreshold",
691
- evaluation_periods: 3,
692
- metric_name: "TrainingEfficiency",
693
- namespace: "SustainableML/#{input.name}",
694
- period: 1800,
695
- statistic: "Average",
696
- threshold: 0.7,
697
- alarm_description: "Alert when training efficiency is low",
698
- treat_missing_data: "notBreaching",
699
- tags: input.tags
700
- })
701
-
702
- # Carbon threshold alarm
703
- if input.track_carbon_emissions
704
- alarms << aws_cloudwatch_alarm(:"#{input.name}-carbon-threshold", {
705
- alarm_name: "#{input.name}-carbon-threshold-exceeded",
706
- comparison_operator: "GreaterThanThreshold",
707
- evaluation_periods: 2,
708
- metric_name: "CarbonIntensity",
709
- namespace: "SustainableML/#{input.name}",
710
- period: 900,
711
- statistic: "Average",
712
- threshold: input.carbon_intensity_threshold.to_f,
713
- alarm_description: "Alert when carbon intensity exceeds threshold",
714
- treat_missing_data: "notBreaching",
715
- tags: input.tags
716
- })
717
- end
718
-
719
- alarms
720
- end
721
-
722
- def generate_training_user_data(input)
723
- <<~BASH
724
- #!/bin/bash
725
- # Install monitoring tools
726
- pip install codecarbon tensorboard wandb
727
-
728
- # Configure carbon tracking
729
- export CODECARBON_COUNTRY=USA
730
- export CODECARBON_REGION=oregon
731
-
732
- # Enable mixed precision if configured
733
- if [ "#{input.enable_automatic_mixed_precision}" = "true" ]; then
734
- export TF_ENABLE_AUTO_MIXED_PRECISION=1
735
- export TORCH_AUTOCAST=1
736
- fi
737
-
738
- # Set up efficient data loading
739
- export NUM_WORKERS=#{input.num_data_loader_workers}
740
- export PREFETCH_FACTOR=2
741
-
742
- # Configure model caching
743
- export MODEL_CACHE_DIR=/opt/ml/model_cache
744
- export TRANSFORMERS_CACHE=$MODEL_CACHE_DIR
745
- export HF_HOME=$MODEL_CACHE_DIR
746
-
747
- # Start carbon monitoring
748
- codecarbon monitor --project "#{input.name}" --output /opt/ml/output/carbon_report.csv &
749
- BASH
750
- end
751
-
752
- def generate_carbon_scheduler_code(input)
753
- <<~PYTHON
754
- import json
755
- import boto3
756
- import os
757
- from datetime import datetime, timedelta
758
-
759
- sagemaker = boto3.client('sagemaker')
760
- dynamodb = boto3.resource('dynamodb')
761
- cloudwatch = boto3.client('cloudwatch')
762
-
763
- STATE_TABLE = os.environ['STATE_TABLE']
764
- CARBON_TABLE = os.environ['CARBON_TABLE']
765
- CARBON_THRESHOLD = int(os.environ['CARBON_THRESHOLD'])
766
- PREFERRED_REGIONS = os.environ['PREFERRED_REGIONS'].split(',')
767
- TRAINING_STRATEGY = os.environ['TRAINING_STRATEGY']
768
-
769
- def handler(event, context):
770
- state_table = dynamodb.Table(STATE_TABLE)
771
- carbon_table = dynamodb.Table(CARBON_TABLE)
772
-
773
- # Get pending training jobs
774
- pending_jobs = get_pending_training_jobs(state_table)
775
-
776
- for job in pending_jobs:
777
- # Get carbon data for regions
778
- carbon_data = get_regional_carbon_data(carbon_table)
779
-
780
- # Find optimal region and time
781
- optimal_config = find_optimal_training_config(
782
- job, carbon_data, TRAINING_STRATEGY
783
- )
784
-
785
- if optimal_config['start_now']:
786
- # Start training in optimal region
787
- start_training_job(job, optimal_config['region'])
788
-
789
- # Update state
790
- update_job_state(
791
- state_table, job['job_id'],
792
- 'training', optimal_config
793
- )
794
- else:
795
- # Schedule for later
796
- schedule_training_job(
797
- job, optimal_config['start_time'],
798
- optimal_config['region']
799
- )
800
-
801
- return {
802
- 'statusCode': 200,
803
- 'body': json.dumps(f'Processed {len(pending_jobs)} jobs')
804
- }
805
-
806
- def get_pending_training_jobs(table):
807
- response = table.query(
808
- IndexName='status-index',
809
- KeyConditionExpression='#status = :status',
810
- ExpressionAttributeNames={'#status': 'status'},
811
- ExpressionAttributeValues={':status': 'pending'}
812
- )
813
- return response.get('Items', [])
814
-
815
- def get_regional_carbon_data(table):
816
- carbon_data = {}
817
- current_time = int(datetime.now().timestamp())
818
-
819
- for region in PREFERRED_REGIONS:
820
- # Get latest carbon data
821
- response = table.query(
822
- KeyConditionExpression='region = :region AND #ts > :ts',
823
- ExpressionAttributeNames={'#ts': 'timestamp'},
824
- ExpressionAttributeValues={
825
- ':region': region,
826
- ':ts': current_time - 900 # Last 15 mins
827
- },
828
- ScanIndexForward=False,
829
- Limit=1
830
- )
831
-
832
- if response['Items']:
833
- carbon_data[region] = response['Items'][0]
834
- else:
835
- # Use default/estimated values
836
- carbon_data[region] = estimate_carbon_intensity(region)
837
-
838
- return carbon_data
839
-
840
- def estimate_carbon_intensity(region):
841
- # Regional baselines
842
- baselines = {
843
- 'us-west-2': 50,
844
- 'eu-north-1': 40,
845
- 'ca-central-1': 30,
846
- 'eu-west-1': 80,
847
- 'us-east-1': 400
848
- }
849
-
850
- base = baselines.get(region, 300)
851
- hour = datetime.now().hour
852
-
853
- # Time of day variation
854
- if 9 <= hour <= 17:
855
- multiplier = 1.3
856
- elif 0 <= hour <= 6:
857
- multiplier = 0.7
858
- else:
859
- multiplier = 1.0
860
-
861
- return {
862
- 'carbon_intensity': int(base * multiplier),
863
- 'renewable_percentage': 100 - (base / 5),
864
- 'timestamp': int(datetime.now().timestamp())
865
- }
866
-
867
- def find_optimal_training_config(job, carbon_data, strategy):
868
- if strategy == 'carbon_aware_scheduling':
869
- return carbon_aware_scheduling(job, carbon_data)
870
- elif strategy == 'efficient_architecture':
871
- return efficient_architecture_scheduling(job, carbon_data)
872
- elif strategy == 'mixed_precision':
873
- return mixed_precision_scheduling(job, carbon_data)
874
- elif strategy == 'federated_learning':
875
- return federated_learning_config(job, carbon_data)
876
- else:
877
- return default_scheduling(job, carbon_data)
878
-
879
- def carbon_aware_scheduling(job, carbon_data):
880
- # Find region with lowest carbon intensity
881
- best_region = None
882
- min_carbon = float('inf')
883
-
884
- for region, data in carbon_data.items():
885
- if data['carbon_intensity'] < min_carbon:
886
- min_carbon = data['carbon_intensity']
887
- best_region = region
888
-
889
- # Check if should start now or wait
890
- if min_carbon <= CARBON_THRESHOLD:
891
- return {
892
- 'start_now': True,
893
- 'region': best_region,
894
- 'carbon_intensity': min_carbon,
895
- 'strategy': 'immediate_low_carbon'
896
- }
897
- else:
898
- # Predict better time
899
- better_time = predict_low_carbon_window(best_region)
900
- return {
901
- 'start_now': False,
902
- 'start_time': better_time,
903
- 'region': best_region,
904
- 'carbon_intensity': min_carbon,
905
- 'strategy': 'delayed_optimization'
906
- }
907
-
908
- def efficient_architecture_scheduling(job, carbon_data):
909
- # Prefer regions with efficient hardware
910
- efficient_regions = ['us-west-2', 'eu-north-1'] # A100/H100 availability
911
-
912
- best_region = None
913
- min_carbon = float('inf')
914
-
915
- for region in efficient_regions:
916
- if region in carbon_data:
917
- if carbon_data[region]['carbon_intensity'] < min_carbon:
918
- min_carbon = carbon_data[region]['carbon_intensity']
919
- best_region = region
920
-
921
- return {
922
- 'start_now': True,
923
- 'region': best_region or PREFERRED_REGIONS[0],
924
- 'carbon_intensity': min_carbon,
925
- 'hardware_efficiency': 'optimized',
926
- 'strategy': 'efficient_hardware'
927
- }
928
-
929
- def mixed_precision_scheduling(job, carbon_data):
930
- # Mixed precision reduces compute by ~40%
931
- # Adjust carbon thresholds accordingly
932
- adjusted_threshold = CARBON_THRESHOLD * 1.4
933
-
934
- for region, data in carbon_data.items():
935
- effective_carbon = data['carbon_intensity'] * 0.6
936
- if effective_carbon <= adjusted_threshold:
937
- return {
938
- 'start_now': True,
939
- 'region': region,
940
- 'carbon_intensity': data['carbon_intensity'],
941
- 'effective_carbon': effective_carbon,
942
- 'optimization': 'mixed_precision',
943
- 'strategy': 'compute_optimized'
944
- }
945
-
946
- return {
947
- 'start_now': False,
948
- 'start_time': datetime.now() + timedelta(hours=2),
949
- 'region': PREFERRED_REGIONS[0],
950
- 'strategy': 'wait_for_cleaner_grid'
951
- }
952
-
953
- def federated_learning_config(job, carbon_data):
954
- # Distribute across multiple low-carbon regions
955
- eligible_regions = [
956
- r for r, d in carbon_data.items()
957
- if d['carbon_intensity'] < CARBON_THRESHOLD * 1.5
958
- ]
959
-
960
- if len(eligible_regions) >= 2:
961
- return {
962
- 'start_now': True,
963
- 'regions': eligible_regions[:3], # Use up to 3 regions
964
- 'strategy': 'federated_distribution',
965
- 'carbon_intensity': sum(
966
- carbon_data[r]['carbon_intensity']
967
- for r in eligible_regions[:3]
968
- ) / 3
969
- }
970
- else:
971
- return default_scheduling(job, carbon_data)
972
-
973
- def default_scheduling(job, carbon_data):
974
- # Simple lowest carbon region
975
- best_region = min(
976
- carbon_data.items(),
977
- key=lambda x: x[1]['carbon_intensity']
978
- )[0]
979
-
980
- return {
981
- 'start_now': True,
982
- 'region': best_region,
983
- 'carbon_intensity': carbon_data[best_region]['carbon_intensity'],
984
- 'strategy': 'default'
985
- }
986
-
987
- def predict_low_carbon_window(region):
988
- # Predict next low carbon window
989
- current_hour = datetime.now().hour
990
-
991
- # Night hours typically have lower carbon
992
- if current_hour >= 17:
993
- # Wait until after midnight
994
- hours_until_low = 24 - current_hour + 2
995
- else:
996
- # Wait until tonight
997
- hours_until_low = max(20 - current_hour, 1)
998
-
999
- return datetime.now() + timedelta(hours=hours_until_low)
1000
-
1001
- def start_training_job(job, region):
1002
- # Configure training job for region
1003
- job_config = job['training_config']
1004
- job_config['ResourceConfig']['InstanceType'] = select_regional_instance(region)
1005
-
1006
- # Add carbon tracking
1007
- job_config['Environment'] = {
1008
- 'CARBON_REGION': region,
1009
- 'CARBON_TRACKING': 'enabled',
1010
- 'MODEL_OPTIMIZATION': job.get('optimization', 'mixed_precision')
1011
- }
1012
-
1013
- # Start SageMaker training job
1014
- response = sagemaker.create_training_job(**job_config)
1015
-
1016
- # Emit metrics
1017
- emit_scheduling_metrics(job, region)
1018
-
1019
- return response['TrainingJobArn']
1020
-
1021
- def select_regional_instance(region):
1022
- # Select best available instance in region
1023
- instance_availability = {
1024
- 'us-west-2': ['ml.p4d.24xlarge', 'ml.p3.16xlarge'],
1025
- 'eu-north-1': ['ml.p3.16xlarge', 'ml.g5.48xlarge'],
1026
- 'ca-central-1': ['ml.g5.48xlarge', 'ml.g4dn.12xlarge'],
1027
- 'eu-west-1': ['ml.p3.16xlarge', 'ml.g5.48xlarge'],
1028
- 'us-east-1': ['ml.p4d.24xlarge', 'ml.p3.16xlarge']
1029
- }
1030
-
1031
- return instance_availability.get(region, ['ml.p3.8xlarge'])[0]
1032
-
1033
- def schedule_training_job(job, start_time, region):
1034
- # Create EventBridge rule for future execution
1035
- events = boto3.client('events')
1036
-
1037
- rule_name = f"training-{job['job_id']}-{int(start_time.timestamp())}"
1038
-
1039
- events.put_rule(
1040
- Name=rule_name,
1041
- ScheduleExpression=f"at({start_time.strftime('%Y-%m-%dT%H:%M:%S')})",
1042
- State='ENABLED'
1043
- )
1044
-
1045
- # Add Lambda target
1046
- events.put_targets(
1047
- Rule=rule_name,
1048
- Targets=[{
1049
- 'Id': '1',
1050
- 'Arn': context.function_arn,
1051
- 'Input': json.dumps({
1052
- 'job': job,
1053
- 'region': region,
1054
- 'scheduled': True
1055
- })
1056
- }]
1057
- )
1058
-
1059
- def update_job_state(table, job_id, status, config):
1060
- table.put_item(Item={
1061
- 'job_id': job_id,
1062
- 'timestamp': int(datetime.now().timestamp()),
1063
- 'status': status,
1064
- 'region': config.get('region', 'multi'),
1065
- 'carbon_intensity': config.get('carbon_intensity', 0),
1066
- 'optimization_strategy': config.get('strategy', 'default'),
1067
- 'config': json.dumps(config)
1068
- })
1069
-
1070
- def emit_scheduling_metrics(job, region):
1071
- cloudwatch.put_metric_data(
1072
- Namespace=f"SustainableML/{os.environ.get('COMPONENT_NAME', 'default')}",
1073
- MetricData=[
1074
- {
1075
- 'MetricName': 'TrainingJobsScheduled',
1076
- 'Value': 1,
1077
- 'Unit': 'Count',
1078
- 'Dimensions': [
1079
- {'Name': 'Region', 'Value': region},
1080
- {'Name': 'Strategy', 'Value': TRAINING_STRATEGY}
1081
- ]
1082
- }
1083
- ]
1084
- )
1085
- PYTHON
1086
- end
1087
-
1088
- def generate_training_optimizer_code(input)
1089
- <<~PYTHON
1090
- import json
1091
- import boto3
1092
- import os
1093
- from datetime import datetime
1094
-
1095
- sagemaker = boto3.client('sagemaker')
1096
- dynamodb = boto3.resource('dynamodb')
1097
- cloudwatch = boto3.client('cloudwatch')
1098
-
1099
- STATE_TABLE = os.environ['STATE_TABLE']
1100
- COMPUTE_OPTIMIZATION = os.environ['COMPUTE_OPTIMIZATION']
1101
- ENABLE_COMPRESSION = os.environ['ENABLE_COMPRESSION'] == 'True'
1102
- TARGET_REDUCTION = float(os.environ['TARGET_REDUCTION'])
1103
- EARLY_STOPPING = os.environ['EARLY_STOPPING'] == 'True'
1104
- PATIENCE = int(os.environ['PATIENCE'])
1105
-
1106
- def handler(event, context):
1107
- # Get training job details
1108
- job_name = event.get('TrainingJobName')
1109
- if not job_name:
1110
- return {'statusCode': 400, 'body': 'No training job specified'}
1111
-
1112
- # Get job status
1113
- job_details = sagemaker.describe_training_job(
1114
- TrainingJobName=job_name
1115
- )
1116
-
1117
- # Apply optimizations based on job phase
1118
- if job_details['TrainingJobStatus'] == 'InProgress':
1119
- optimizations = apply_runtime_optimizations(job_details)
1120
- elif job_details['TrainingJobStatus'] == 'Completed':
1121
- optimizations = apply_post_training_optimizations(job_details)
1122
- else:
1123
- optimizations = []
1124
-
1125
- # Emit optimization metrics
1126
- emit_optimization_metrics(job_name, optimizations)
1127
-
1128
- return {
1129
- 'statusCode': 200,
1130
- 'body': json.dumps({
1131
- 'job_name': job_name,
1132
- 'optimizations_applied': len(optimizations),
1133
- 'details': optimizations
1134
- })
1135
- }
1136
-
1137
- def apply_runtime_optimizations(job_details):
1138
- optimizations = []
1139
-
1140
- # Check if early stopping should trigger
1141
- if EARLY_STOPPING:
1142
- if should_stop_early(job_details):
1143
- sagemaker.stop_training_job(
1144
- TrainingJobName=job_details['TrainingJobName']
1145
- )
1146
- optimizations.append({
1147
- 'type': 'early_stopping',
1148
- 'reason': 'No improvement in validation metric',
1149
- 'savings': estimate_carbon_savings(job_details)
1150
- })
1151
-
1152
- # Dynamic batch size adjustment
1153
- if can_adjust_batch_size(job_details):
1154
- new_batch_size = calculate_optimal_batch_size(job_details)
1155
- optimizations.append({
1156
- 'type': 'batch_size_optimization',
1157
- 'new_value': new_batch_size,
1158
- 'efficiency_gain': '15%'
1159
- })
1160
-
1161
- # Learning rate scheduling
1162
- if should_adjust_learning_rate(job_details):
1163
- optimizations.append({
1164
- 'type': 'learning_rate_decay',
1165
- 'strategy': 'cosine_annealing',
1166
- 'efficiency_gain': '10%'
1167
- })
1168
-
1169
- return optimizations
1170
-
1171
- def apply_post_training_optimizations(job_details):
1172
- optimizations = []
1173
-
1174
- # Model compression
1175
- if ENABLE_COMPRESSION:
1176
- compression_result = compress_model(
1177
- job_details['ModelArtifacts']['S3ModelArtifacts']
1178
- )
1179
- optimizations.append({
1180
- 'type': 'model_compression',
1181
- 'technique': COMPUTE_OPTIMIZATION,
1182
- 'size_reduction': compression_result['reduction'],
1183
- 'accuracy_impact': compression_result['accuracy_delta']
1184
- })
1185
-
1186
- # Convert to efficient inference format
1187
- if should_optimize_for_inference(job_details):
1188
- inference_optimization = optimize_for_inference(
1189
- job_details['ModelArtifacts']['S3ModelArtifacts']
1190
- )
1191
- optimizations.append({
1192
- 'type': 'inference_optimization',
1193
- 'format': inference_optimization['format'],
1194
- 'speedup': inference_optimization['speedup']
1195
- })
1196
-
1197
- return optimizations
1198
-
1199
- def should_stop_early(job_details):
1200
- # Check validation metrics
1201
- metrics = get_training_metrics(job_details['TrainingJobName'])
1202
-
1203
- if len(metrics) < PATIENCE:
1204
- return False
1205
-
1206
- # Check if validation loss hasn't improved
1207
- recent_losses = metrics[-PATIENCE:]
1208
- best_recent = min(recent_losses)
1209
- previous_best = min(metrics[:-PATIENCE])
1210
-
1211
- return best_recent >= previous_best
1212
-
1213
- def can_adjust_batch_size(job_details):
1214
- # Check GPU memory utilization
1215
- gpu_metrics = get_gpu_metrics(job_details['TrainingJobName'])
1216
-
1217
- if not gpu_metrics:
1218
- return False
1219
-
1220
- # If GPU memory < 80%, can increase batch size
1221
- return gpu_metrics['memory_utilization'] < 0.8
1222
-
1223
- def calculate_optimal_batch_size(job_details):
1224
- gpu_metrics = get_gpu_metrics(job_details['TrainingJobName'])
1225
- current_batch_size = get_current_batch_size(job_details)
1226
-
1227
- # Scale batch size based on available memory
1228
- memory_headroom = 1.0 - gpu_metrics['memory_utilization']
1229
- scale_factor = 1.0 + (memory_headroom * 0.5)
1230
-
1231
- new_batch_size = int(current_batch_size * scale_factor)
1232
-
1233
- # Round to nearest power of 2
1234
- return 2 ** round(np.log2(new_batch_size))
1235
-
1236
- def should_adjust_learning_rate(job_details):
1237
- # Check if loss has plateaued
1238
- metrics = get_training_metrics(job_details['TrainingJobName'])
1239
-
1240
- if len(metrics) < 10:
1241
- return False
1242
-
1243
- # Calculate loss variance
1244
- recent_losses = metrics[-10:]
1245
- loss_variance = np.var(recent_losses)
1246
-
1247
- return loss_variance < 0.01 # Plateaued
1248
-
1249
- def compress_model(model_s3_uri):
1250
- compression_results = {
1251
- 'reduction': 0,
1252
- 'accuracy_delta': 0
1253
- }
1254
-
1255
- if COMPUTE_OPTIMIZATION == 'quantization':
1256
- # Quantize model to INT8
1257
- compression_results['reduction'] = 0.75 # 75% smaller
1258
- compression_results['accuracy_delta'] = -0.01 # 1% accuracy loss
1259
- apply_quantization(model_s3_uri)
1260
-
1261
- elif COMPUTE_OPTIMIZATION == 'pruning':
1262
- # Prune model weights
1263
- compression_results['reduction'] = TARGET_REDUCTION
1264
- compression_results['accuracy_delta'] = -0.02
1265
- apply_pruning(model_s3_uri, TARGET_REDUCTION)
1266
-
1267
- elif COMPUTE_OPTIMIZATION == 'distillation':
1268
- # Create smaller student model
1269
- compression_results['reduction'] = 0.9 # 90% smaller
1270
- compression_results['accuracy_delta'] = -0.03
1271
- apply_distillation(model_s3_uri)
1272
-
1273
- return compression_results
1274
-
1275
- def optimize_for_inference(model_s3_uri):
1276
- # Convert to optimized inference format
1277
- optimization_result = {
1278
- 'format': 'TensorRT',
1279
- 'speedup': '3x'
1280
- }
1281
-
1282
- # Apply TensorRT optimization for NVIDIA GPUs
1283
- if 'p3' in get_instance_family() or 'p4' in get_instance_family():
1284
- optimization_result['format'] = 'TensorRT'
1285
- optimization_result['speedup'] = '3x'
1286
- elif 'inf1' in get_instance_family():
1287
- optimization_result['format'] = 'Neuron'
1288
- optimization_result['speedup'] = '4x'
1289
- else:
1290
- optimization_result['format'] = 'ONNX'
1291
- optimization_result['speedup'] = '2x'
1292
-
1293
- return optimization_result
1294
-
1295
- def get_training_metrics(job_name):
1296
- # Get metrics from CloudWatch
1297
- response = cloudwatch.get_metric_statistics(
1298
- Namespace='aws/sagemaker/TrainingJobs',
1299
- MetricName='train:loss',
1300
- Dimensions=[{'Name': 'TrainingJobName', 'Value': job_name}],
1301
- StartTime=datetime.now() - timedelta(hours=24),
1302
- EndTime=datetime.now(),
1303
- Period=300,
1304
- Statistics=['Average']
1305
- )
1306
-
1307
- return [point['Average'] for point in response['Datapoints']]
1308
-
1309
- def get_gpu_metrics(job_name):
1310
- # Get GPU utilization metrics
1311
- response = cloudwatch.get_metric_statistics(
1312
- Namespace='aws/sagemaker/TrainingJobs',
1313
- MetricName='GPUMemoryUtilization',
1314
- Dimensions=[{'Name': 'TrainingJobName', 'Value': job_name}],
1315
- StartTime=datetime.now() - timedelta(minutes=10),
1316
- EndTime=datetime.now(),
1317
- Period=60,
1318
- Statistics=['Average']
1319
- )
1320
-
1321
- if response['Datapoints']:
1322
- return {
1323
- 'memory_utilization': response['Datapoints'][-1]['Average'] / 100
1324
- }
1325
- return None
1326
-
1327
- def get_current_batch_size(job_details):
1328
- # Extract from hyperparameters
1329
- hyperparameters = job_details.get('HyperParameters', {})
1330
- return int(hyperparameters.get('batch_size', 32))
1331
-
1332
- def estimate_carbon_savings(job_details):
1333
- # Estimate carbon saved by early stopping
1334
- elapsed_time = (datetime.now() - job_details['TrainingStartTime']).total_seconds() / 3600
1335
- estimated_total = float(job_details.get('StoppingCondition', {}).get('MaxRuntimeInSeconds', 86400)) / 3600
1336
-
1337
- time_saved = estimated_total - elapsed_time
1338
-
1339
- # Assume 400W for GPU instance
1340
- power_watts = 400
1341
- carbon_intensity = 400 # gCO2/kWh average
1342
-
1343
- carbon_saved = (power_watts * time_saved * carbon_intensity) / 1000
1344
-
1345
- return {
1346
- 'hours_saved': time_saved,
1347
- 'carbon_saved_kg': carbon_saved / 1000
1348
- }
1349
-
1350
- def apply_quantization(model_s3_uri):
1351
- # Download model
1352
- # Apply INT8 quantization
1353
- # Upload quantized model
1354
- print(f"Quantizing model at {model_s3_uri}")
1355
-
1356
- def apply_pruning(model_s3_uri, sparsity):
1357
- # Download model
1358
- # Apply magnitude-based pruning
1359
- # Upload pruned model
1360
- print(f"Pruning model at {model_s3_uri} to {sparsity} sparsity")
1361
-
1362
- def apply_distillation(model_s3_uri):
1363
- # Create smaller student architecture
1364
- # Train student on teacher outputs
1365
- # Upload distilled model
1366
- print(f"Distilling model at {model_s3_uri}")
1367
-
1368
- def get_instance_family():
1369
- # Get instance type from environment or job details
1370
- return os.environ.get('INSTANCE_TYPE', 'ml.p3.8xlarge')
1371
-
1372
- def emit_optimization_metrics(job_name, optimizations):
1373
- namespace = f"SustainableML/{os.environ.get('COMPONENT_NAME', 'default')}"
1374
-
1375
- metric_data = [
1376
- {
1377
- 'MetricName': 'OptimizationsApplied',
1378
- 'Value': len(optimizations),
1379
- 'Unit': 'Count',
1380
- 'Dimensions': [{'Name': 'JobName', 'Value': job_name}]
1381
- }
1382
- ]
1383
-
1384
- # Add specific optimization metrics
1385
- for opt in optimizations:
1386
- if opt['type'] == 'early_stopping':
1387
- metric_data.append({
1388
- 'MetricName': 'CarbonSavedByEarlyStopping',
1389
- 'Value': opt['savings']['carbon_saved_kg'],
1390
- 'Unit': 'None'
1391
- })
1392
- elif opt['type'] == 'model_compression':
1393
- metric_data.append({
1394
- 'MetricName': 'ModelSizeReduction',
1395
- 'Value': opt['size_reduction'] * 100,
1396
- 'Unit': 'Percent'
1397
- })
1398
-
1399
- cloudwatch.put_metric_data(
1400
- Namespace=namespace,
1401
- MetricData=metric_data
1402
- )
1403
- PYTHON
1404
- end
1405
-
1406
- def generate_efficiency_monitor_code(input)
1407
- <<~PYTHON
1408
- import json
1409
- import boto3
1410
- import os
1411
- from datetime import datetime
1412
- import psutil
1413
- import GPUtil
1414
-
1415
- cloudwatch = boto3.client('cloudwatch')
1416
- dynamodb = boto3.resource('dynamodb')
1417
-
1418
- CARBON_TABLE = os.environ['CARBON_TABLE']
1419
- TRACK_CARBON = os.environ['TRACK_CARBON'] == 'True'
1420
- TRACK_ENERGY = os.environ['TRACK_ENERGY'] == 'True'
1421
- MODEL_TYPE = os.environ['MODEL_TYPE']
1422
-
1423
- def handler(event, context):
1424
- carbon_table = dynamodb.Table(CARBON_TABLE)
1425
-
1426
- # Collect efficiency metrics
1427
- metrics = collect_efficiency_metrics()
1428
-
1429
- # Calculate carbon emissions if enabled
1430
- if TRACK_CARBON:
1431
- carbon_metrics = calculate_carbon_emissions(metrics)
1432
- metrics.update(carbon_metrics)
1433
- store_carbon_data(carbon_table, carbon_metrics)
1434
-
1435
- # Calculate energy usage if enabled
1436
- if TRACK_ENERGY:
1437
- energy_metrics = calculate_energy_usage(metrics)
1438
- metrics.update(energy_metrics)
1439
-
1440
- # Analyze model efficiency
1441
- efficiency_analysis = analyze_model_efficiency(metrics)
1442
- metrics.update(efficiency_analysis)
1443
-
1444
- # Emit all metrics to CloudWatch
1445
- emit_efficiency_metrics(metrics)
1446
-
1447
- return {
1448
- 'statusCode': 200,
1449
- 'body': json.dumps({
1450
- 'metrics_collected': len(metrics),
1451
- 'carbon_tracked': TRACK_CARBON,
1452
- 'energy_tracked': TRACK_ENERGY
1453
- })
1454
- }
1455
-
1456
- def collect_efficiency_metrics():
1457
- metrics = {}
1458
-
1459
- # GPU metrics
1460
- try:
1461
- gpus = GPUtil.getGPUs()
1462
- if gpus:
1463
- gpu = gpus[0] # Primary GPU
1464
- metrics['gpu_utilization'] = gpu.load * 100
1465
- metrics['gpu_memory_used'] = gpu.memoryUsed
1466
- metrics['gpu_memory_total'] = gpu.memoryTotal
1467
- metrics['gpu_temperature'] = gpu.temperature
1468
- metrics['gpu_power_draw'] = gpu.powerDraw # Watts
1469
- except:
1470
- metrics['gpu_available'] = False
1471
-
1472
- # CPU metrics
1473
- metrics['cpu_utilization'] = psutil.cpu_percent(interval=1)
1474
- metrics['memory_utilization'] = psutil.virtual_memory().percent
1475
-
1476
- # Training metrics (from SageMaker)
1477
- metrics.update(get_training_metrics())
1478
-
1479
- # Model size and complexity
1480
- metrics.update(get_model_metrics())
1481
-
1482
- return metrics
1483
-
1484
- def get_training_metrics():
1485
- # Get from SageMaker training job metrics
1486
- training_metrics = {}
1487
-
1488
- try:
1489
- # Parse from environment or CloudWatch
1490
- training_metrics['epochs_completed'] = int(os.environ.get('EPOCH', 0))
1491
- training_metrics['batch_size'] = int(os.environ.get('BATCH_SIZE', 32))
1492
- training_metrics['learning_rate'] = float(os.environ.get('LR', 0.001))
1493
- training_metrics['training_samples_per_second'] = float(os.environ.get('SAMPLES_PER_SEC', 0))
1494
- except:
1495
- pass
1496
-
1497
- return training_metrics
1498
-
1499
- def get_model_metrics():
1500
- model_metrics = {}
1501
-
1502
- # Model-specific metrics based on type
1503
- if MODEL_TYPE == 'computer_vision':
1504
- model_metrics['model_parameters'] = 25_000_000 # ResNet-50 example
1505
- model_metrics['flops_per_sample'] = 4_000_000_000
1506
- elif MODEL_TYPE == 'natural_language':
1507
- model_metrics['model_parameters'] = 110_000_000 # BERT-base
1508
- model_metrics['flops_per_sample'] = 20_000_000_000
1509
- elif MODEL_TYPE == 'generative_ai':
1510
- model_metrics['model_parameters'] = 1_500_000_000 # GPT-style
1511
- model_metrics['flops_per_sample'] = 100_000_000_000
1512
- else:
1513
- model_metrics['model_parameters'] = 10_000_000 # Default
1514
- model_metrics['flops_per_sample'] = 1_000_000_000
1515
-
1516
- return model_metrics
1517
-
1518
- def calculate_carbon_emissions(metrics):
1519
- carbon_metrics = {}
1520
-
1521
- # Get power consumption
1522
- if 'gpu_power_draw' in metrics:
1523
- power_watts = metrics['gpu_power_draw']
1524
- else:
1525
- # Estimate based on GPU type
1526
- power_watts = estimate_gpu_power()
1527
-
1528
- # Get carbon intensity for current region
1529
- region = os.environ.get('AWS_REGION', 'us-east-1')
1530
- carbon_intensity = get_carbon_intensity(region)
1531
-
1532
- # Calculate emissions
1533
- # Power (W) * Time (h) * Carbon Intensity (gCO2/kWh) / 1000
1534
- training_time_hours = metrics.get('epochs_completed', 1) * 0.1 # Estimate
1535
- carbon_emissions = (power_watts * training_time_hours * carbon_intensity) / 1000
1536
-
1537
- carbon_metrics['carbon_emissions_gco2'] = carbon_emissions
1538
- carbon_metrics['carbon_intensity'] = carbon_intensity
1539
- carbon_metrics['power_consumption_watts'] = power_watts
1540
-
1541
- # Calculate efficiency metrics
1542
- if metrics.get('model_parameters', 0) > 0:
1543
- carbon_metrics['gco2_per_million_parameters'] = (
1544
- carbon_emissions / (metrics['model_parameters'] / 1_000_000)
1545
- )
1546
-
1547
- if metrics.get('training_samples_per_second', 0) > 0:
1548
- carbon_metrics['gco2_per_million_samples'] = (
1549
- carbon_emissions / (metrics['training_samples_per_second'] *
1550
- training_time_hours * 3600 / 1_000_000)
1551
- )
1552
-
1553
- return carbon_metrics
1554
-
1555
- def estimate_gpu_power():
1556
- instance_type = os.environ.get('INSTANCE_TYPE', 'ml.p3.8xlarge')
1557
-
1558
- # Power consumption estimates
1559
- power_map = {
1560
- 'ml.p4d.24xlarge': 400, # A100
1561
- 'ml.p3.16xlarge': 300, # V100
1562
- 'ml.p3.8xlarge': 250, # V100
1563
- 'ml.g5.48xlarge': 350, # A10G
1564
- 'ml.g4dn.12xlarge': 200, # T4
1565
- 'ml.trn1.32xlarge': 300 # Trainium
1566
- }
1567
-
1568
- return power_map.get(instance_type, 250)
1569
-
1570
- def get_carbon_intensity(region):
1571
- # Regional carbon intensity (gCO2/kWh)
1572
- carbon_map = {
1573
- 'us-west-2': 50,
1574
- 'eu-north-1': 40,
1575
- 'ca-central-1': 30,
1576
- 'eu-west-1': 80,
1577
- 'us-east-1': 400,
1578
- 'us-east-2': 450,
1579
- 'eu-central-1': 350,
1580
- 'ap-southeast-1': 600
1581
- }
1582
-
1583
- return carbon_map.get(region, 400)
1584
-
1585
- def calculate_energy_usage(metrics):
1586
- energy_metrics = {}
1587
-
1588
- power_watts = metrics.get('power_consumption_watts', 250)
1589
- training_time_hours = metrics.get('epochs_completed', 1) * 0.1
1590
-
1591
- # Calculate energy consumption
1592
- energy_kwh = (power_watts * training_time_hours) / 1000
1593
- energy_metrics['energy_consumption_kwh'] = energy_kwh
1594
-
1595
- # Calculate energy efficiency
1596
- if metrics.get('model_parameters', 0) > 0:
1597
- energy_metrics['kwh_per_billion_parameters'] = (
1598
- energy_kwh / (metrics['model_parameters'] / 1_000_000_000)
1599
- )
1600
-
1601
- if metrics.get('flops_per_sample', 0) > 0 and metrics.get('training_samples_per_second', 0) > 0:
1602
- total_flops = (metrics['flops_per_sample'] *
1603
- metrics['training_samples_per_second'] *
1604
- training_time_hours * 3600)
1605
- energy_metrics['kwh_per_exaflop'] = energy_kwh / (total_flops / 1e18)
1606
-
1607
- # Compare to baseline
1608
- baseline_energy = training_time_hours * 300 / 1000 # 300W baseline
1609
- energy_metrics['energy_efficiency_vs_baseline'] = (
1610
- (baseline_energy - energy_kwh) / baseline_energy * 100
1611
- )
1612
-
1613
- return energy_metrics
1614
-
1615
- def analyze_model_efficiency(metrics):
1616
- efficiency_analysis = {}
1617
-
1618
- # GPU efficiency
1619
- if 'gpu_utilization' in metrics:
1620
- efficiency_analysis['gpu_efficiency_score'] = metrics['gpu_utilization']
1621
-
1622
- if metrics['gpu_utilization'] < 70:
1623
- efficiency_analysis['gpu_bottleneck'] = 'underutilized'
1624
- elif metrics['gpu_memory_used'] / metrics['gpu_memory_total'] > 0.9:
1625
- efficiency_analysis['gpu_bottleneck'] = 'memory_bound'
1626
- else:
1627
- efficiency_analysis['gpu_bottleneck'] = 'none'
1628
-
1629
- # Training efficiency
1630
- if 'training_samples_per_second' in metrics and metrics['training_samples_per_second'] > 0:
1631
- # Compare to theoretical maximum
1632
- theoretical_max = estimate_theoretical_throughput(metrics)
1633
- efficiency_analysis['training_efficiency'] = (
1634
- metrics['training_samples_per_second'] / theoretical_max * 100
1635
- )
1636
-
1637
- # Model efficiency based on type
1638
- efficiency_analysis['model_efficiency_rating'] = rate_model_efficiency(
1639
- MODEL_TYPE, metrics
1640
- )
1641
-
1642
- # Optimization recommendations
1643
- efficiency_analysis['recommendations'] = generate_recommendations(
1644
- metrics, efficiency_analysis
1645
- )
1646
-
1647
- return efficiency_analysis
1648
-
1649
- def estimate_theoretical_throughput(metrics):
1650
- # Estimate based on GPU and model
1651
- if 'gpu_memory_total' in metrics:
1652
- # Rough estimate: 1 sample per 100MB for vision, 10MB for NLP
1653
- if MODEL_TYPE == 'computer_vision':
1654
- return metrics['gpu_memory_total'] / 100
1655
- elif MODEL_TYPE == 'natural_language':
1656
- return metrics['gpu_memory_total'] / 10
1657
- else:
1658
- return metrics['gpu_memory_total'] / 50
1659
-
1660
- return 100 # Default
1661
-
1662
- def rate_model_efficiency(model_type, metrics):
1663
- score = 100
1664
-
1665
- # Deduct points for inefficiencies
1666
- if metrics.get('gpu_utilization', 0) < 80:
1667
- score -= 20
1668
-
1669
- if metrics.get('training_efficiency', 100) < 70:
1670
- score -= 15
1671
-
1672
- if metrics.get('energy_efficiency_vs_baseline', 0) < 0:
1673
- score -= 10
1674
-
1675
- # Model-specific adjustments
1676
- if model_type == 'generative_ai' and metrics.get('model_parameters', 0) > 1e9:
1677
- score -= 10 # Large models are inherently less efficient
1678
-
1679
- return max(0, score)
1680
-
1681
- def generate_recommendations(metrics, analysis):
1682
- recommendations = []
1683
-
1684
- if analysis.get('gpu_bottleneck') == 'underutilized':
1685
- recommendations.append({
1686
- 'issue': 'GPU underutilized',
1687
- 'suggestion': 'Increase batch size or use gradient accumulation',
1688
- 'potential_improvement': '20-30%'
1689
- })
1690
-
1691
- if analysis.get('gpu_bottleneck') == 'memory_bound':
1692
- recommendations.append({
1693
- 'issue': 'GPU memory saturated',
1694
- 'suggestion': 'Enable gradient checkpointing or use model parallelism',
1695
- 'potential_improvement': '15-25%'
1696
- })
1697
-
1698
- if metrics.get('carbon_intensity', 0) > 200:
1699
- recommendations.append({
1700
- 'issue': 'High carbon region',
1701
- 'suggestion': 'Consider migrating to cleaner region like us-west-2',
1702
- 'potential_improvement': '60-80% carbon reduction'
1703
- })
1704
-
1705
- if analysis.get('training_efficiency', 100) < 70:
1706
- recommendations.append({
1707
- 'issue': 'Low training efficiency',
1708
- 'suggestion': 'Profile code for bottlenecks, optimize data pipeline',
1709
- 'potential_improvement': '30-50%'
1710
- })
1711
-
1712
- return recommendations
1713
-
1714
- def store_carbon_data(table, carbon_metrics):
1715
- timestamp = int(datetime.now().timestamp())
1716
-
1717
- table.put_item(Item={
1718
- 'metric_id': f"training-{timestamp}",
1719
- 'timestamp': timestamp,
1720
- 'carbon_emissions': carbon_metrics['carbon_emissions_gco2'],
1721
- 'carbon_intensity': carbon_metrics['carbon_intensity'],
1722
- 'power_consumption': carbon_metrics['power_consumption_watts'],
1723
- 'efficiency_metrics': json.dumps(carbon_metrics),
1724
- 'expiration': timestamp + 86400 * 30 # 30 day retention
1725
- })
1726
-
1727
- def emit_efficiency_metrics(metrics):
1728
- namespace = f"SustainableML/{os.environ.get('COMPONENT_NAME', 'default')}"
1729
-
1730
- metric_data = []
1731
-
1732
- # Core metrics
1733
- for metric_name, value in metrics.items():
1734
- if isinstance(value, (int, float)):
1735
- metric_data.append({
1736
- 'MetricName': metric_name,
1737
- 'Value': value,
1738
- 'Unit': 'None'
1739
- })
1740
-
1741
- # Batch emit to CloudWatch
1742
- if metric_data:
1743
- # CloudWatch has a limit of 20 metrics per request
1744
- for i in range(0, len(metric_data), 20):
1745
- cloudwatch.put_metric_data(
1746
- Namespace=namespace,
1747
- MetricData=metric_data[i:i+20]
1748
- )
1749
- PYTHON
1750
- end
1751
- end
1752
- end
1753
- end
1754
- end