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,1638 +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 SpotInstanceCarbonOptimizer
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_capacity(input.target_capacity)
34
- Types.validate_carbon_threshold(input.carbon_intensity_threshold)
35
- Types.validate_regions(input.allowed_regions, input.preferred_regions)
36
- Types.validate_spot_block_duration(input.use_spot_blocks, input.spot_block_duration_hours)
37
-
38
- # Create IAM roles
39
- fleet_role = create_fleet_role(input)
40
- lambda_role = create_lambda_role(input)
41
-
42
- # Create DynamoDB tables
43
- fleet_state_table = create_fleet_state_table(input)
44
- carbon_data_table = create_carbon_data_table(input)
45
- migration_history_table = create_migration_history_table(input)
46
-
47
- # Create Spot fleet requests in each region
48
- spot_fleets = create_regional_spot_fleets(input, fleet_role, fleet_state_table)
49
-
50
- # Create Lambda functions
51
- carbon_monitor = create_carbon_monitor_function(input, lambda_role, carbon_data_table)
52
- fleet_optimizer = create_fleet_optimizer_function(input, lambda_role, fleet_state_table, carbon_data_table)
53
- migration_orchestrator = create_migration_orchestrator_function(input, lambda_role, fleet_state_table, migration_history_table)
54
-
55
- # Create EventBridge schedules
56
- optimization_schedule = create_optimization_schedule(input, fleet_optimizer)
57
- carbon_check_schedule = create_carbon_check_schedule(input, carbon_monitor)
58
- spot_interruption_rule = create_spot_interruption_rule(input, migration_orchestrator)
59
-
60
- # Create CloudWatch monitoring
61
- efficiency_metrics = create_efficiency_metrics(input)
62
- carbon_dashboard = create_carbon_dashboard(input, spot_fleets, efficiency_metrics)
63
- carbon_alarms = create_carbon_alarms(input, efficiency_metrics)
64
-
65
- Types::Output.new(
66
- spot_fleets: spot_fleets,
67
- carbon_monitor_function: carbon_monitor,
68
- fleet_optimizer_function: fleet_optimizer,
69
- migration_orchestrator_function: migration_orchestrator,
70
- fleet_state_table: fleet_state_table,
71
- carbon_data_table: carbon_data_table,
72
- migration_history_table: migration_history_table,
73
- optimization_schedule: optimization_schedule,
74
- carbon_check_schedule: carbon_check_schedule,
75
- spot_interruption_rule: spot_interruption_rule,
76
- carbon_dashboard: carbon_dashboard,
77
- efficiency_metrics: efficiency_metrics,
78
- carbon_alarms: carbon_alarms,
79
- fleet_role: fleet_role,
80
- lambda_role: lambda_role
81
- )
82
- end
83
-
84
- private
85
-
86
- def create_fleet_role(input)
87
- aws_iam_role(:"#{input.name}-fleet-role", {
88
- assume_role_policy: JSON.pretty_generate({
89
- Version: "2012-10-17",
90
- Statement: [{
91
- Effect: "Allow",
92
- Principal: { Service: "spotfleet.amazonaws.com" },
93
- Action: "sts:AssumeRole"
94
- }]
95
- }),
96
- managed_policy_arns: [
97
- "arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole"
98
- ],
99
- inline_policy: [{
100
- name: "spot-fleet-policy",
101
- policy: JSON.pretty_generate({
102
- Version: "2012-10-17",
103
- Statement: [
104
- {
105
- Effect: "Allow",
106
- Action: [
107
- "ec2:*",
108
- "iam:PassRole",
109
- "sns:Publish"
110
- ],
111
- Resource: "*"
112
- }
113
- ]
114
- })
115
- }],
116
- tags: input.tags.merge("Component" => "spot-carbon-optimizer")
117
- })
118
- end
119
-
120
- def create_lambda_role(input)
121
- aws_iam_role(:"#{input.name}-lambda-role", {
122
- assume_role_policy: JSON.pretty_generate({
123
- Version: "2012-10-17",
124
- Statement: [{
125
- Effect: "Allow",
126
- Principal: { Service: "lambda.amazonaws.com" },
127
- Action: "sts:AssumeRole"
128
- }]
129
- }),
130
- inline_policy: [{
131
- name: "carbon-optimizer-policy",
132
- policy: JSON.pretty_generate({
133
- Version: "2012-10-17",
134
- Statement: [
135
- {
136
- Effect: "Allow",
137
- Action: [
138
- "ec2:*SpotFleet*",
139
- "ec2:*SpotInstance*",
140
- "ec2:Describe*",
141
- "ec2:CreateTags",
142
- "ec2:ModifyInstanceAttribute"
143
- ],
144
- Resource: "*"
145
- },
146
- {
147
- Effect: "Allow",
148
- Action: [
149
- "dynamodb:*"
150
- ],
151
- Resource: "*"
152
- },
153
- {
154
- Effect: "Allow",
155
- Action: [
156
- "cloudwatch:PutMetricData",
157
- "cloudwatch:GetMetricStatistics"
158
- ],
159
- Resource: "*"
160
- },
161
- {
162
- Effect: "Allow",
163
- Action: [
164
- "logs:CreateLogGroup",
165
- "logs:CreateLogStream",
166
- "logs:PutLogEvents"
167
- ],
168
- Resource: "*"
169
- }
170
- ]
171
- })
172
- }],
173
- tags: input.tags.merge("Component" => "spot-carbon-optimizer")
174
- })
175
- end
176
-
177
- def create_fleet_state_table(input)
178
- aws_dynamodb_table(:"#{input.name}-fleet-state", {
179
- billing_mode: "PAY_PER_REQUEST",
180
- hash_key: "fleet_id",
181
- range_key: "region",
182
- attribute: [
183
- { name: "fleet_id", type: "S" },
184
- { name: "region", type: "S" },
185
- { name: "carbon_intensity", type: "N" },
186
- { name: "last_migration", type: "N" }
187
- ],
188
- global_secondary_index: [
189
- {
190
- name: "carbon-intensity-index",
191
- hash_key: "region",
192
- range_key: "carbon_intensity",
193
- projection_type: "ALL"
194
- }
195
- ],
196
- stream_specification: {
197
- stream_enabled: true,
198
- stream_view_type: "NEW_AND_OLD_IMAGES"
199
- },
200
- tags: input.tags.merge(
201
- "Component" => "spot-carbon-optimizer",
202
- "Purpose" => "fleet-state"
203
- )
204
- })
205
- end
206
-
207
- def create_carbon_data_table(input)
208
- aws_dynamodb_table(:"#{input.name}-carbon-data", {
209
- billing_mode: "PAY_PER_REQUEST",
210
- hash_key: "region",
211
- range_key: "timestamp",
212
- attribute: [
213
- { name: "region", type: "S" },
214
- { name: "timestamp", type: "N" }
215
- ],
216
- ttl: {
217
- enabled: true,
218
- attribute_name: "expiration"
219
- },
220
- tags: input.tags.merge(
221
- "Component" => "spot-carbon-optimizer",
222
- "Purpose" => "carbon-data"
223
- )
224
- })
225
- end
226
-
227
- def create_migration_history_table(input)
228
- aws_dynamodb_table(:"#{input.name}-migration-history", {
229
- billing_mode: "PAY_PER_REQUEST",
230
- hash_key: "migration_id",
231
- range_key: "timestamp",
232
- attribute: [
233
- { name: "migration_id", type: "S" },
234
- { name: "timestamp", type: "N" },
235
- { name: "source_region", type: "S" },
236
- { name: "target_region", type: "S" }
237
- ],
238
- global_secondary_index: [
239
- {
240
- name: "region-time-index",
241
- hash_key: "source_region",
242
- range_key: "timestamp",
243
- projection_type: "ALL"
244
- }
245
- ],
246
- tags: input.tags.merge(
247
- "Component" => "spot-carbon-optimizer",
248
- "Purpose" => "migration-history"
249
- )
250
- })
251
- end
252
-
253
- def create_regional_spot_fleets(input, fleet_role, state_table)
254
- spot_fleets = {}
255
-
256
- # Only create fleets in regions with VPC configuration
257
- configured_regions = input.vpc_configs.keys & input.allowed_regions
258
-
259
- configured_regions.each do |region|
260
- vpc_config = input.vpc_configs[region]
261
-
262
- spot_fleets[region] = aws_spot_fleet_request(:"#{input.name}-fleet-#{region}", {
263
- iam_fleet_role: fleet_role.arn,
264
- target_capacity: calculate_regional_capacity(input, region),
265
- valid_until: (Time.now + 365 * 24 * 60 * 60).iso8601, # 1 year
266
- terminate_instances_with_expiration: true,
267
- instance_interruption_behavior: input.interruption_behavior,
268
- fleet_type: "maintain",
269
- replace_unhealthy_instances: true,
270
-
271
- launch_specification: create_launch_specifications(input, region, vpc_config),
272
-
273
- spot_price: calculate_spot_price(input, region),
274
- allocation_strategy: "lowestPrice",
275
- instance_pools_to_use_count: 2,
276
-
277
- tag_specification: [{
278
- resource_type: "spot-fleet-request",
279
- tags: input.tags.merge(
280
- "Component" => "spot-carbon-optimizer",
281
- "Region" => region,
282
- "CarbonOptimized" => "true"
283
- )
284
- }]
285
- })
286
- end
287
-
288
- spot_fleets
289
- end
290
-
291
- def calculate_regional_capacity(input, region)
292
- # Distribute capacity based on carbon intensity
293
- if input.optimization_strategy == 'renewable_only'
294
- input.preferred_regions.include?(region) ? input.target_capacity : 0
295
- else
296
- # Weight by inverse carbon intensity
297
- carbon_intensity = Types::REGIONAL_CARBON_BASELINE[region] || 400
298
- weight = 1000.0 / carbon_intensity
299
- (input.target_capacity * weight / 10).to_i.clamp(1, input.target_capacity)
300
- end
301
- end
302
-
303
- def create_launch_specifications(input, region, vpc_config)
304
- input.instance_types.map do |instance_type|
305
- {
306
- instance_type: instance_type,
307
- image_id: get_latest_ami(region, instance_type),
308
- subnet_id: vpc_config[:subnet_ids].split(',').first,
309
- security_groups: [{ group_id: create_security_group(input, region, vpc_config[:vpc_id]) }],
310
-
311
- user_data: Base64.encode64(generate_user_data(input, region)),
312
-
313
- block_device_mappings: [{
314
- device_name: "/dev/xvda",
315
- ebs: {
316
- volume_size: 30,
317
- volume_type: "gp3",
318
- delete_on_termination: true
319
- }
320
- }],
321
-
322
- instance_market_options: {
323
- market_type: "spot",
324
- spot_options: {
325
- spot_instance_type: input.use_spot_blocks ? "persistent" : "one-time",
326
- block_duration_minutes: input.spot_block_duration_hours ? input.spot_block_duration_hours * 60 : nil
327
- }
328
- },
329
-
330
- tag_specifications: [{
331
- resource_type: "instance",
332
- tags: input.tags.merge(
333
- "Component" => "spot-carbon-optimizer",
334
- "Region" => region,
335
- "WorkloadType" => input.workload_type
336
- )
337
- }]
338
- }
339
- end
340
- end
341
-
342
- def get_latest_ami(region, instance_type)
343
- # Return appropriate AMI based on instance architecture
344
- if instance_type.include?('g.') # Graviton
345
- "ami-0123456789abcdef0" # Amazon Linux 2 ARM
346
- else
347
- "ami-0987654321fedcba9" # Amazon Linux 2 x86
348
- end
349
- end
350
-
351
- def create_security_group(input, region, vpc_id)
352
- # In practice, this would create or reference an existing security group
353
- "sg-#{region}-#{vpc_id}-carbon"
354
- end
355
-
356
- def calculate_spot_price(input, region)
357
- # Calculate max spot price with buffer
358
- # In practice, this would query current spot prices
359
- base_price = 0.10 # Example base price
360
- buffer = 1 + (input.spot_price_buffer_percentage / 100.0)
361
- (base_price * buffer).round(4).to_s
362
- end
363
-
364
- def create_carbon_monitor_function(input, role, carbon_table)
365
- aws_lambda_function(:"#{input.name}-carbon-monitor", {
366
- runtime: "python3.11",
367
- handler: "index.handler",
368
- role: role.arn,
369
- timeout: 300,
370
- memory_size: 512,
371
- environment: {
372
- variables: {
373
- "CARBON_TABLE": carbon_table.table_name,
374
- "ALLOWED_REGIONS": input.allowed_regions.join(","),
375
- "RENEWABLE_MINIMUM": input.renewable_percentage_minimum.to_s,
376
- "REPORTING_INTERVAL": input.carbon_reporting_interval_minutes.to_s
377
- }
378
- },
379
- code: {
380
- zip_file: generate_carbon_monitor_code(input)
381
- },
382
- tags: input.tags.merge(
383
- "Component" => "spot-carbon-optimizer",
384
- "Function" => "carbon-monitor"
385
- )
386
- })
387
- end
388
-
389
- def create_fleet_optimizer_function(input, role, state_table, carbon_table)
390
- aws_lambda_function(:"#{input.name}-fleet-optimizer", {
391
- runtime: "python3.11",
392
- handler: "index.handler",
393
- role: role.arn,
394
- timeout: 900,
395
- memory_size: 1024,
396
- environment: {
397
- variables: {
398
- "FLEET_STATE_TABLE": state_table.table_name,
399
- "CARBON_TABLE": carbon_table.table_name,
400
- "OPTIMIZATION_STRATEGY": input.optimization_strategy,
401
- "CARBON_THRESHOLD": input.carbon_intensity_threshold.to_s,
402
- "TARGET_CAPACITY": input.target_capacity.to_s,
403
- "ALLOWED_REGIONS": input.allowed_regions.join(","),
404
- "PREFERRED_REGIONS": input.preferred_regions.join(",")
405
- }
406
- },
407
- code: {
408
- zip_file: generate_fleet_optimizer_code(input)
409
- },
410
- tags: input.tags.merge(
411
- "Component" => "spot-carbon-optimizer",
412
- "Function" => "fleet-optimizer"
413
- )
414
- })
415
- end
416
-
417
- def create_migration_orchestrator_function(input, role, state_table, history_table)
418
- aws_lambda_function(:"#{input.name}-migration-orchestrator", {
419
- runtime: "python3.11",
420
- handler: "index.handler",
421
- role: role.arn,
422
- timeout: 900,
423
- memory_size: 512,
424
- environment: {
425
- variables: {
426
- "FLEET_STATE_TABLE": state_table.table_name,
427
- "MIGRATION_HISTORY_TABLE": history_table.table_name,
428
- "MIGRATION_STRATEGY": input.migration_strategy,
429
- "MIGRATION_THRESHOLD": input.migration_threshold_minutes.to_s,
430
- "WORKLOAD_TYPE": input.workload_type,
431
- "ENABLE_CROSS_REGION": input.enable_cross_region_migration.to_s
432
- }
433
- },
434
- code: {
435
- zip_file: generate_migration_orchestrator_code(input)
436
- },
437
- tags: input.tags.merge(
438
- "Component" => "spot-carbon-optimizer",
439
- "Function" => "migration-orchestrator"
440
- )
441
- })
442
- end
443
-
444
- def create_optimization_schedule(input, optimizer_function)
445
- aws_eventbridge_scheduler_schedule(:"#{input.name}-optimization-schedule", {
446
- flexible_time_window: {
447
- mode: "FLEXIBLE",
448
- maximum_window_in_minutes: 5
449
- },
450
- schedule_expression: "rate(#{input.carbon_reporting_interval_minutes} minutes)",
451
- target: {
452
- arn: optimizer_function.arn,
453
- role_arn: ref(:aws_iam_role, :"#{input.name}-scheduler-role", :arn)
454
- },
455
- tags: input.tags.merge("Component" => "spot-carbon-optimizer")
456
- })
457
- end
458
-
459
- def create_carbon_check_schedule(input, monitor_function)
460
- aws_eventbridge_scheduler_schedule(:"#{input.name}-carbon-check-schedule", {
461
- flexible_time_window: {
462
- mode: "OFF"
463
- },
464
- schedule_expression: "rate(5 minutes)",
465
- target: {
466
- arn: monitor_function.arn,
467
- role_arn: ref(:aws_iam_role, :"#{input.name}-scheduler-role", :arn)
468
- },
469
- tags: input.tags.merge("Component" => "spot-carbon-optimizer")
470
- })
471
- end
472
-
473
- def create_spot_interruption_rule(input, migration_function)
474
- aws_cloudwatch_event_rule(:"#{input.name}-spot-interruption-rule", {
475
- name: "#{input.name}-spot-interruption",
476
- description: "Trigger migration on spot interruption",
477
- event_pattern: JSON.pretty_generate({
478
- source: ["aws.ec2"],
479
- "detail-type": ["EC2 Spot Instance Interruption Warning"]
480
- }),
481
- targets: [{
482
- arn: migration_function.arn,
483
- id: "1"
484
- }],
485
- tags: input.tags
486
- })
487
- end
488
-
489
- def create_efficiency_metrics(input)
490
- [
491
- aws_cloudwatch_metric_alarm(:"#{input.name}-carbon-intensity-metric", {
492
- alarm_name: "#{input.name}-average-carbon-intensity",
493
- comparison_operator: "GreaterThanThreshold",
494
- evaluation_periods: 2,
495
- metric_name: "AverageCarbonIntensity",
496
- namespace: "SpotCarbonOptimizer/#{input.name}",
497
- period: 300,
498
- statistic: "Average",
499
- threshold: input.carbon_intensity_threshold.to_f,
500
- treat_missing_data: "notBreaching"
501
- }),
502
- aws_cloudwatch_metric_alarm(:"#{input.name}-renewable-percentage-metric", {
503
- alarm_name: "#{input.name}-renewable-percentage",
504
- comparison_operator: "LessThanThreshold",
505
- evaluation_periods: 2,
506
- metric_name: "RenewablePercentage",
507
- namespace: "SpotCarbonOptimizer/#{input.name}",
508
- period: 300,
509
- statistic: "Average",
510
- threshold: input.renewable_percentage_minimum.to_f,
511
- treat_missing_data: "notBreaching"
512
- }),
513
- aws_cloudwatch_metric_alarm(:"#{input.name}-migration-frequency-metric", {
514
- alarm_name: "#{input.name}-migration-frequency",
515
- comparison_operator: "GreaterThanThreshold",
516
- evaluation_periods: 1,
517
- metric_name: "MigrationCount",
518
- namespace: "SpotCarbonOptimizer/#{input.name}",
519
- period: 3600,
520
- statistic: "Sum",
521
- threshold: 10.0,
522
- treat_missing_data: "notBreaching"
523
- })
524
- ]
525
- end
526
-
527
- def create_carbon_dashboard(input, spot_fleets, metrics)
528
- aws_cloudwatch_dashboard(:"#{input.name}-carbon-dashboard", {
529
- dashboard_name: "#{input.name}-spot-carbon-dashboard",
530
- dashboard_body: JSON.pretty_generate({
531
- widgets: [
532
- {
533
- type: "metric",
534
- properties: {
535
- metrics: input.allowed_regions.map { |region|
536
- ["SpotCarbonOptimizer/#{input.name}", "RegionalCarbonIntensity",
537
- { "Region": region }]
538
- },
539
- period: 300,
540
- stat: "Average",
541
- region: "us-east-1",
542
- title: "Regional Carbon Intensity",
543
- yAxis: {
544
- left: { min: 0, label: "gCO2/kWh" }
545
- }
546
- }
547
- },
548
- {
549
- type: "metric",
550
- properties: {
551
- metrics: [
552
- ["SpotCarbonOptimizer/#{input.name}", "TotalFleetCapacity", { stat: "Average" }],
553
- [".", "ActiveInstances", { stat: "Sum" }],
554
- [".", "SpotSavings", { stat: "Sum", yAxis: "right" }]
555
- ],
556
- period: 300,
557
- stat: "Average",
558
- region: "us-east-1",
559
- title: "Fleet Capacity and Savings",
560
- yAxis: {
561
- left: { label: "Instances" },
562
- right: { label: "Savings ($)" }
563
- }
564
- }
565
- },
566
- {
567
- type: "metric",
568
- properties: {
569
- metrics: [
570
- ["SpotCarbonOptimizer/#{input.name}", "CarbonEmissionsAvoided", { stat: "Sum" }],
571
- [".", "RenewableEnergyUsage", { stat: "Average", yAxis: "right" }]
572
- ],
573
- period: 3600,
574
- stat: "Sum",
575
- region: "us-east-1",
576
- title: "Carbon Impact",
577
- yAxis: {
578
- left: { label: "gCO2 Avoided" },
579
- right: { label: "Renewable %" }
580
- }
581
- }
582
- },
583
- {
584
- type: "metric",
585
- properties: {
586
- metrics: [
587
- ["SpotCarbonOptimizer/#{input.name}", "MigrationCount", { stat: "Sum" }],
588
- [".", "MigrationDuration", { stat: "Average" }],
589
- [".", "MigrationSuccess", { stat: "Average", yAxis: "right" }]
590
- ],
591
- period: 3600,
592
- stat: "Sum",
593
- region: "us-east-1",
594
- title: "Migration Activity"
595
- }
596
- }
597
- ]
598
- })
599
- })
600
- end
601
-
602
- def create_carbon_alarms(input, metrics)
603
- alarms = metrics.dup
604
-
605
- if input.alert_on_high_carbon
606
- alarms << aws_cloudwatch_alarm(:"#{input.name}-high-carbon-alarm", {
607
- alarm_name: "#{input.name}-high-carbon-usage",
608
- comparison_operator: "GreaterThanThreshold",
609
- evaluation_periods: 3,
610
- metric_name: "HighCarbonInstancePercentage",
611
- namespace: "SpotCarbonOptimizer/#{input.name}",
612
- period: 900,
613
- statistic: "Average",
614
- threshold: 25.0,
615
- alarm_description: "Alert when >25% instances in high-carbon regions",
616
- treat_missing_data: "notBreaching",
617
- tags: input.tags
618
- })
619
- end
620
-
621
- alarms
622
- end
623
-
624
- def generate_user_data(input, region)
625
- <<~BASH
626
- #!/bin/bash
627
- # Install CloudWatch agent
628
- wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
629
- sudo rpm -U ./amazon-cloudwatch-agent.rpm
630
-
631
- # Configure for carbon monitoring
632
- cat > /opt/aws/amazon-cloudwatch-agent/etc/config.json <<EOF
633
- {
634
- "metrics": {
635
- "namespace": "SpotCarbonOptimizer/#{input.name}",
636
- "metrics_collected": {
637
- "cpu": {
638
- "measurement": [
639
- "cpu_usage_idle",
640
- "cpu_usage_iowait"
641
- ],
642
- "metrics_collection_interval": 60
643
- },
644
- "disk": {
645
- "measurement": [
646
- "used_percent"
647
- ],
648
- "metrics_collection_interval": 60,
649
- "resources": [
650
- "*"
651
- ]
652
- },
653
- "mem": {
654
- "measurement": [
655
- "mem_used_percent"
656
- ],
657
- "metrics_collection_interval": 60
658
- }
659
- }
660
- }
661
- }
662
- EOF
663
-
664
- # Start CloudWatch agent
665
- sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
666
- -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json
667
-
668
- # Tag instance with carbon data
669
- INSTANCE_ID=$(ec2-metadata --instance-id | cut -d " " -f 2)
670
- REGION=#{region}
671
- aws ec2 create-tags --region $REGION --resources $INSTANCE_ID \
672
- --tags Key=CarbonRegion,Value=$REGION Key=WorkloadType,Value=#{input.workload_type}
673
- BASH
674
- end
675
-
676
- def generate_carbon_monitor_code(input)
677
- <<~PYTHON
678
- import json
679
- import boto3
680
- import os
681
- import time
682
- from datetime import datetime
683
- import requests
684
-
685
- dynamodb = boto3.resource('dynamodb')
686
- cloudwatch = boto3.client('cloudwatch')
687
- ec2 = boto3.client('ec2')
688
-
689
- CARBON_TABLE = os.environ['CARBON_TABLE']
690
- ALLOWED_REGIONS = os.environ['ALLOWED_REGIONS'].split(',')
691
- RENEWABLE_MINIMUM = int(os.environ['RENEWABLE_MINIMUM'])
692
-
693
- # Regional carbon data (gCO2/kWh)
694
- CARBON_BASELINE = {
695
- 'us-east-1': 400,
696
- 'us-east-2': 450,
697
- 'us-west-1': 250,
698
- 'us-west-2': 50,
699
- 'eu-central-1': 350,
700
- 'eu-west-1': 80,
701
- 'eu-north-1': 40,
702
- 'ca-central-1': 30,
703
- 'ap-southeast-1': 600,
704
- 'ap-southeast-2': 700,
705
- 'sa-east-1': 100
706
- }
707
-
708
- def handler(event, context):
709
- carbon_table = dynamodb.Table(CARBON_TABLE)
710
-
711
- # Collect carbon data for all regions
712
- carbon_data = collect_regional_carbon_data()
713
-
714
- # Store in DynamoDB
715
- store_carbon_data(carbon_table, carbon_data)
716
-
717
- # Calculate fleet carbon metrics
718
- fleet_metrics = calculate_fleet_carbon_metrics(carbon_data)
719
-
720
- # Emit CloudWatch metrics
721
- emit_carbon_metrics(fleet_metrics)
722
-
723
- return {
724
- 'statusCode': 200,
725
- 'body': json.dumps({
726
- 'regions_monitored': len(carbon_data),
727
- 'average_carbon_intensity': fleet_metrics['average_intensity'],
728
- 'renewable_percentage': fleet_metrics['renewable_percentage']
729
- })
730
- }
731
-
732
- def collect_regional_carbon_data():
733
- carbon_data = {}
734
- current_time = int(time.time())
735
-
736
- for region in ALLOWED_REGIONS:
737
- # Get real-time carbon intensity
738
- intensity = get_carbon_intensity(region)
739
- renewable_pct = get_renewable_percentage(region, intensity)
740
-
741
- carbon_data[region] = {
742
- 'carbon_intensity': intensity,
743
- 'renewable_percentage': renewable_pct,
744
- 'timestamp': current_time,
745
- 'spot_price': get_spot_price(region),
746
- 'instance_count': count_instances(region)
747
- }
748
-
749
- return carbon_data
750
-
751
- def get_carbon_intensity(region):
752
- # Simulate time-of-day variations
753
- hour = datetime.now().hour
754
- base = CARBON_BASELINE.get(region, 400)
755
-
756
- # Peak hours (higher intensity)
757
- if 9 <= hour <= 17:
758
- multiplier = 1.3
759
- # Night hours (lower intensity)
760
- elif 0 <= hour <= 6:
761
- multiplier = 0.7
762
- else:
763
- multiplier = 1.0
764
-
765
- # Add seasonal variation
766
- month = datetime.now().month
767
- if month in [12, 1, 2]: # Winter
768
- seasonal = 1.2
769
- elif month in [6, 7, 8]: # Summer
770
- seasonal = 1.1
771
- else:
772
- seasonal = 1.0
773
-
774
- return int(base * multiplier * seasonal)
775
-
776
- def get_renewable_percentage(region, intensity):
777
- # Estimate renewable percentage from carbon intensity
778
- if intensity < 100:
779
- return 85 + (100 - intensity) / 10
780
- elif intensity < 200:
781
- return 60 + (200 - intensity) / 5
782
- elif intensity < 400:
783
- return 30 + (400 - intensity) / 10
784
- else:
785
- return max(5, 30 - (intensity - 400) / 20)
786
-
787
- def get_spot_price(region):
788
- try:
789
- ec2_regional = boto3.client('ec2', region_name=region)
790
- response = ec2_regional.describe_spot_price_history(
791
- InstanceTypes=['t3.large'],
792
- MaxResults=1,
793
- ProductDescriptions=['Linux/UNIX']
794
- )
795
-
796
- if response['SpotPriceHistory']:
797
- return float(response['SpotPriceHistory'][0]['SpotPrice'])
798
- except:
799
- pass
800
-
801
- return 0.05 # Default price
802
-
803
- def count_instances(region):
804
- try:
805
- ec2_regional = boto3.client('ec2', region_name=region)
806
- response = ec2_regional.describe_instances(
807
- Filters=[
808
- {'Name': 'instance-state-name', 'Values': ['running']},
809
- {'Name': 'tag:Component', 'Values': ['spot-carbon-optimizer']}
810
- ]
811
- )
812
-
813
- count = sum(len(r['Instances']) for r in response['Reservations'])
814
- return count
815
- except:
816
- return 0
817
-
818
- def store_carbon_data(table, carbon_data):
819
- current_time = int(time.time())
820
- expiration = current_time + 86400 # 24 hour TTL
821
-
822
- for region, data in carbon_data.items():
823
- table.put_item(Item={
824
- 'region': region,
825
- 'timestamp': current_time,
826
- 'carbon_intensity': data['carbon_intensity'],
827
- 'renewable_percentage': data['renewable_percentage'],
828
- 'spot_price': str(data['spot_price']),
829
- 'instance_count': data['instance_count'],
830
- 'expiration': expiration
831
- })
832
-
833
- def calculate_fleet_carbon_metrics(carbon_data):
834
- total_instances = sum(d['instance_count'] for d in carbon_data.values())
835
-
836
- if total_instances == 0:
837
- return {
838
- 'average_intensity': 0,
839
- 'renewable_percentage': 0,
840
- 'carbon_emissions': 0,
841
- 'low_carbon_instances': 0
842
- }
843
-
844
- # Weighted average by instance count
845
- weighted_intensity = sum(
846
- d['carbon_intensity'] * d['instance_count']
847
- for d in carbon_data.values()
848
- ) / total_instances
849
-
850
- weighted_renewable = sum(
851
- d['renewable_percentage'] * d['instance_count']
852
- for d in carbon_data.values()
853
- ) / total_instances
854
-
855
- # Count instances in low-carbon regions
856
- low_carbon_instances = sum(
857
- d['instance_count'] for d in carbon_data.values()
858
- if d['carbon_intensity'] < 200
859
- )
860
-
861
- # Estimate hourly emissions (simplified)
862
- # Assume t3.large = 2 vCPU = ~50W
863
- power_watts = 50
864
- hours = 1
865
- carbon_emissions = (power_watts * hours * weighted_intensity) / 1000
866
-
867
- return {
868
- 'average_intensity': weighted_intensity,
869
- 'renewable_percentage': weighted_renewable,
870
- 'carbon_emissions': carbon_emissions,
871
- 'low_carbon_instances': low_carbon_instances,
872
- 'total_instances': total_instances
873
- }
874
-
875
- def emit_carbon_metrics(metrics):
876
- namespace = f"SpotCarbonOptimizer/{os.environ.get('COMPONENT_NAME', 'default')}"
877
-
878
- metric_data = [
879
- {
880
- 'MetricName': 'AverageCarbonIntensity',
881
- 'Value': metrics['average_intensity'],
882
- 'Unit': 'None'
883
- },
884
- {
885
- 'MetricName': 'RenewablePercentage',
886
- 'Value': metrics['renewable_percentage'],
887
- 'Unit': 'Percent'
888
- },
889
- {
890
- 'MetricName': 'CarbonEmissions',
891
- 'Value': metrics['carbon_emissions'],
892
- 'Unit': 'None'
893
- },
894
- {
895
- 'MetricName': 'LowCarbonInstances',
896
- 'Value': metrics['low_carbon_instances'],
897
- 'Unit': 'Count'
898
- },
899
- {
900
- 'MetricName': 'TotalFleetCapacity',
901
- 'Value': metrics['total_instances'],
902
- 'Unit': 'Count'
903
- }
904
- ]
905
-
906
- # Regional metrics
907
- carbon_data = collect_regional_carbon_data()
908
- for region, data in carbon_data.items():
909
- metric_data.extend([
910
- {
911
- 'MetricName': 'RegionalCarbonIntensity',
912
- 'Value': data['carbon_intensity'],
913
- 'Unit': 'None',
914
- 'Dimensions': [{'Name': 'Region', 'Value': region}]
915
- },
916
- {
917
- 'MetricName': 'RegionalInstanceCount',
918
- 'Value': data['instance_count'],
919
- 'Unit': 'Count',
920
- 'Dimensions': [{'Name': 'Region', 'Value': region}]
921
- }
922
- ])
923
-
924
- cloudwatch.put_metric_data(
925
- Namespace=namespace,
926
- MetricData=metric_data
927
- )
928
- PYTHON
929
- end
930
-
931
- def generate_fleet_optimizer_code(input)
932
- <<~PYTHON
933
- import json
934
- import boto3
935
- import os
936
- from datetime import datetime, timedelta
937
-
938
- ec2 = boto3.client('ec2')
939
- dynamodb = boto3.resource('dynamodb')
940
- cloudwatch = boto3.client('cloudwatch')
941
-
942
- FLEET_STATE_TABLE = os.environ['FLEET_STATE_TABLE']
943
- CARBON_TABLE = os.environ['CARBON_TABLE']
944
- OPTIMIZATION_STRATEGY = os.environ['OPTIMIZATION_STRATEGY']
945
- CARBON_THRESHOLD = int(os.environ['CARBON_THRESHOLD'])
946
- TARGET_CAPACITY = int(os.environ['TARGET_CAPACITY'])
947
- ALLOWED_REGIONS = os.environ['ALLOWED_REGIONS'].split(',')
948
- PREFERRED_REGIONS = os.environ['PREFERRED_REGIONS'].split(',')
949
-
950
- def handler(event, context):
951
- fleet_table = dynamodb.Table(FLEET_STATE_TABLE)
952
- carbon_table = dynamodb.Table(CARBON_TABLE)
953
-
954
- # Get current fleet state
955
- fleet_state = get_fleet_state(fleet_table)
956
-
957
- # Get latest carbon data
958
- carbon_data = get_latest_carbon_data(carbon_table)
959
-
960
- # Calculate optimal distribution
961
- optimal_distribution = calculate_optimal_distribution(
962
- fleet_state, carbon_data
963
- )
964
-
965
- # Apply optimizations
966
- applied_changes = apply_fleet_optimizations(
967
- fleet_state, optimal_distribution
968
- )
969
-
970
- # Update fleet state
971
- update_fleet_state(fleet_table, applied_changes)
972
-
973
- # Emit optimization metrics
974
- emit_optimization_metrics(applied_changes)
975
-
976
- return {
977
- 'statusCode': 200,
978
- 'body': json.dumps({
979
- 'optimizations_applied': len(applied_changes),
980
- 'new_distribution': optimal_distribution
981
- })
982
- }
983
-
984
- def get_fleet_state(table):
985
- fleet_state = {}
986
-
987
- for region in ALLOWED_REGIONS:
988
- try:
989
- # Get fleet info from EC2
990
- ec2_regional = boto3.client('ec2', region_name=region)
991
- response = ec2_regional.describe_spot_fleet_requests(
992
- Filters=[
993
- {'Name': 'tag:Component', 'Values': ['spot-carbon-optimizer']}
994
- ]
995
- )
996
-
997
- for fleet in response['SpotFleetRequestConfigs']:
998
- if fleet['SpotFleetRequestState'] == 'active':
999
- fleet_state[region] = {
1000
- 'fleet_id': fleet['SpotFleetRequestId'],
1001
- 'current_capacity': fleet['SpotFleetRequestConfig']['TargetCapacity'],
1002
- 'fulfilled_capacity': fleet.get('FulfilledCapacity', 0),
1003
- 'instances': get_fleet_instances(ec2_regional, fleet['SpotFleetRequestId'])
1004
- }
1005
- except Exception as e:
1006
- print(f"Error getting fleet state for {region}: {str(e)}")
1007
-
1008
- return fleet_state
1009
-
1010
- def get_fleet_instances(ec2_client, fleet_id):
1011
- try:
1012
- response = ec2_client.describe_spot_fleet_instances(
1013
- SpotFleetRequestId=fleet_id
1014
- )
1015
- return response.get('ActiveInstances', [])
1016
- except:
1017
- return []
1018
-
1019
- def get_latest_carbon_data(table):
1020
- carbon_data = {}
1021
- current_time = int(datetime.now().timestamp())
1022
- lookback = current_time - 900 # 15 minutes
1023
-
1024
- for region in ALLOWED_REGIONS:
1025
- try:
1026
- response = table.query(
1027
- KeyConditionExpression='region = :region AND #ts > :ts',
1028
- ExpressionAttributeNames={'#ts': 'timestamp'},
1029
- ExpressionAttributeValues={
1030
- ':region': region,
1031
- ':ts': lookback
1032
- },
1033
- ScanIndexForward=False,
1034
- Limit=1
1035
- )
1036
-
1037
- if response['Items']:
1038
- item = response['Items'][0]
1039
- carbon_data[region] = {
1040
- 'carbon_intensity': item['carbon_intensity'],
1041
- 'renewable_percentage': item['renewable_percentage'],
1042
- 'spot_price': float(item.get('spot_price', 0.05))
1043
- }
1044
- except Exception as e:
1045
- print(f"Error getting carbon data for {region}: {str(e)}")
1046
- # Use defaults
1047
- carbon_data[region] = {
1048
- 'carbon_intensity': 400,
1049
- 'renewable_percentage': 30,
1050
- 'spot_price': 0.05
1051
- }
1052
-
1053
- return carbon_data
1054
-
1055
- def calculate_optimal_distribution(fleet_state, carbon_data):
1056
- if OPTIMIZATION_STRATEGY == 'carbon_first':
1057
- return optimize_for_carbon(carbon_data)
1058
- elif OPTIMIZATION_STRATEGY == 'cost_first':
1059
- return optimize_for_cost(carbon_data)
1060
- elif OPTIMIZATION_STRATEGY == 'renewable_only':
1061
- return optimize_for_renewable(carbon_data)
1062
- elif OPTIMIZATION_STRATEGY == 'follow_the_sun':
1063
- return optimize_follow_sun(carbon_data)
1064
- else: # balanced
1065
- return optimize_balanced(carbon_data)
1066
-
1067
- def optimize_for_carbon(carbon_data):
1068
- # Sort regions by carbon intensity
1069
- sorted_regions = sorted(
1070
- carbon_data.items(),
1071
- key=lambda x: x[1]['carbon_intensity']
1072
- )
1073
-
1074
- distribution = {}
1075
- remaining_capacity = TARGET_CAPACITY
1076
-
1077
- for region, data in sorted_regions:
1078
- if data['carbon_intensity'] <= CARBON_THRESHOLD:
1079
- # Allocate proportionally to inverse carbon intensity
1080
- weight = 1000 / data['carbon_intensity']
1081
- allocation = min(
1082
- int(TARGET_CAPACITY * weight / 100),
1083
- remaining_capacity
1084
- )
1085
- distribution[region] = allocation
1086
- remaining_capacity -= allocation
1087
-
1088
- # Distribute remaining to preferred regions
1089
- if remaining_capacity > 0:
1090
- for region in PREFERRED_REGIONS:
1091
- if region in distribution:
1092
- distribution[region] += remaining_capacity
1093
- break
1094
-
1095
- return distribution
1096
-
1097
- def optimize_for_cost(carbon_data):
1098
- # Sort by spot price
1099
- sorted_regions = sorted(
1100
- carbon_data.items(),
1101
- key=lambda x: x[1]['spot_price']
1102
- )
1103
-
1104
- distribution = {}
1105
- remaining_capacity = TARGET_CAPACITY
1106
-
1107
- for region, data in sorted_regions:
1108
- # Only use regions under carbon threshold
1109
- if data['carbon_intensity'] <= CARBON_THRESHOLD * 2:
1110
- allocation = min(
1111
- int(TARGET_CAPACITY / len(ALLOWED_REGIONS)),
1112
- remaining_capacity
1113
- )
1114
- distribution[region] = allocation
1115
- remaining_capacity -= allocation
1116
-
1117
- return distribution
1118
-
1119
- def optimize_for_renewable(carbon_data):
1120
- distribution = {}
1121
-
1122
- for region, data in carbon_data.items():
1123
- if data['renewable_percentage'] >= 70:
1124
- distribution[region] = int(TARGET_CAPACITY / 3)
1125
-
1126
- return distribution
1127
-
1128
- def optimize_follow_sun(carbon_data):
1129
- # Follow renewable energy availability by timezone
1130
- current_hour = datetime.now().hour
1131
-
1132
- # Map regions to timezones (simplified)
1133
- timezone_offset = {
1134
- 'us-west-2': -8,
1135
- 'us-west-1': -8,
1136
- 'us-east-1': -5,
1137
- 'us-east-2': -5,
1138
- 'eu-west-1': 0,
1139
- 'eu-central-1': 1,
1140
- 'eu-north-1': 1,
1141
- 'ap-southeast-1': 8,
1142
- 'ap-southeast-2': 10,
1143
- 'sa-east-1': -3,
1144
- 'ca-central-1': -5
1145
- }
1146
-
1147
- distribution = {}
1148
-
1149
- for region, data in carbon_data.items():
1150
- offset = timezone_offset.get(region, 0)
1151
- local_hour = (current_hour + offset) % 24
1152
-
1153
- # Prefer regions during daylight hours (more solar)
1154
- if 8 <= local_hour <= 18:
1155
- weight = 2
1156
- else:
1157
- weight = 1
1158
-
1159
- if data['renewable_percentage'] > 40:
1160
- distribution[region] = int(TARGET_CAPACITY * weight / 10)
1161
-
1162
- return distribution
1163
-
1164
- def optimize_balanced(carbon_data):
1165
- distribution = {}
1166
-
1167
- for region, data in carbon_data.items():
1168
- # Score based on carbon and cost
1169
- carbon_score = 1000 / data['carbon_intensity']
1170
- cost_score = 1 / data['spot_price']
1171
- renewable_score = data['renewable_percentage'] / 100
1172
-
1173
- # Weighted combination
1174
- total_score = (carbon_score * 0.5 +
1175
- cost_score * 0.3 +
1176
- renewable_score * 0.2)
1177
-
1178
- # Prefer regions with good combined score
1179
- if total_score > 5:
1180
- distribution[region] = int(TARGET_CAPACITY * total_score / 50)
1181
-
1182
- # Ensure we meet target capacity
1183
- total_allocated = sum(distribution.values())
1184
- if total_allocated < TARGET_CAPACITY:
1185
- # Add to preferred regions
1186
- for region in PREFERRED_REGIONS:
1187
- if region in distribution:
1188
- distribution[region] += TARGET_CAPACITY - total_allocated
1189
- break
1190
-
1191
- return distribution
1192
-
1193
- def apply_fleet_optimizations(fleet_state, optimal_distribution):
1194
- changes = []
1195
-
1196
- for region, target_capacity in optimal_distribution.items():
1197
- current_capacity = fleet_state.get(region, {}).get('current_capacity', 0)
1198
-
1199
- if target_capacity != current_capacity:
1200
- try:
1201
- ec2_regional = boto3.client('ec2', region_name=region)
1202
-
1203
- if region in fleet_state and fleet_state[region]['fleet_id']:
1204
- # Modify existing fleet
1205
- fleet_id = fleet_state[region]['fleet_id']
1206
-
1207
- response = ec2_regional.modify_spot_fleet_request(
1208
- SpotFleetRequestId=fleet_id,
1209
- TargetCapacity=target_capacity
1210
- )
1211
-
1212
- changes.append({
1213
- 'region': region,
1214
- 'action': 'modified',
1215
- 'fleet_id': fleet_id,
1216
- 'old_capacity': current_capacity,
1217
- 'new_capacity': target_capacity
1218
- })
1219
- else:
1220
- # Would create new fleet (simplified for this example)
1221
- changes.append({
1222
- 'region': region,
1223
- 'action': 'would_create',
1224
- 'new_capacity': target_capacity
1225
- })
1226
-
1227
- except Exception as e:
1228
- print(f"Error optimizing fleet in {region}: {str(e)}")
1229
-
1230
- return changes
1231
-
1232
- def update_fleet_state(table, changes):
1233
- for change in changes:
1234
- if change['action'] in ['modified', 'created']:
1235
- table.put_item(Item={
1236
- 'fleet_id': change.get('fleet_id', f"pending-{change['region']}"),
1237
- 'region': change['region'],
1238
- 'capacity': change['new_capacity'],
1239
- 'last_updated': int(datetime.now().timestamp()),
1240
- 'optimization_strategy': OPTIMIZATION_STRATEGY
1241
- })
1242
-
1243
- def emit_optimization_metrics(changes):
1244
- namespace = f"SpotCarbonOptimizer/{os.environ.get('COMPONENT_NAME', 'default')}"
1245
-
1246
- # Calculate capacity changes
1247
- capacity_added = sum(
1248
- c['new_capacity'] - c.get('old_capacity', 0)
1249
- for c in changes if c['new_capacity'] > c.get('old_capacity', 0)
1250
- )
1251
-
1252
- capacity_removed = sum(
1253
- c.get('old_capacity', 0) - c['new_capacity']
1254
- for c in changes if c.get('old_capacity', 0) > c['new_capacity']
1255
- )
1256
-
1257
- cloudwatch.put_metric_data(
1258
- Namespace=namespace,
1259
- MetricData=[
1260
- {
1261
- 'MetricName': 'OptimizationRuns',
1262
- 'Value': 1,
1263
- 'Unit': 'Count'
1264
- },
1265
- {
1266
- 'MetricName': 'FleetModifications',
1267
- 'Value': len(changes),
1268
- 'Unit': 'Count'
1269
- },
1270
- {
1271
- 'MetricName': 'CapacityAdded',
1272
- 'Value': capacity_added,
1273
- 'Unit': 'Count'
1274
- },
1275
- {
1276
- 'MetricName': 'CapacityRemoved',
1277
- 'Value': capacity_removed,
1278
- 'Unit': 'Count'
1279
- }
1280
- ]
1281
- )
1282
- PYTHON
1283
- end
1284
-
1285
- def generate_migration_orchestrator_code(input)
1286
- <<~PYTHON
1287
- import json
1288
- import boto3
1289
- import os
1290
- import time
1291
- from datetime import datetime
1292
- import uuid
1293
-
1294
- ec2 = boto3.client('ec2')
1295
- dynamodb = boto3.resource('dynamodb')
1296
- cloudwatch = boto3.client('cloudwatch')
1297
-
1298
- FLEET_STATE_TABLE = os.environ['FLEET_STATE_TABLE']
1299
- MIGRATION_HISTORY_TABLE = os.environ['MIGRATION_HISTORY_TABLE']
1300
- MIGRATION_STRATEGY = os.environ['MIGRATION_STRATEGY']
1301
- MIGRATION_THRESHOLD = int(os.environ['MIGRATION_THRESHOLD'])
1302
- WORKLOAD_TYPE = os.environ['WORKLOAD_TYPE']
1303
- ENABLE_CROSS_REGION = os.environ['ENABLE_CROSS_REGION'] == 'True'
1304
-
1305
- def handler(event, context):
1306
- # Handle spot interruption or optimization trigger
1307
- if 'detail-type' in event and event['detail-type'] == 'EC2 Spot Instance Interruption Warning':
1308
- return handle_spot_interruption(event)
1309
- else:
1310
- return handle_optimization_trigger(event)
1311
-
1312
- def handle_spot_interruption(event):
1313
- instance_id = event['detail']['instance-id']
1314
- region = event['region']
1315
-
1316
- print(f"Handling spot interruption for {instance_id} in {region}")
1317
-
1318
- # Get instance details
1319
- instance_info = get_instance_info(instance_id, region)
1320
-
1321
- if not instance_info:
1322
- return {'statusCode': 404, 'body': 'Instance not found'}
1323
-
1324
- # Find target region with lowest carbon
1325
- target_region = find_migration_target(region)
1326
-
1327
- if not target_region:
1328
- return {'statusCode': 400, 'body': 'No suitable migration target'}
1329
-
1330
- # Execute migration
1331
- migration_id = execute_migration(
1332
- instance_info, region, target_region
1333
- )
1334
-
1335
- return {
1336
- 'statusCode': 200,
1337
- 'body': json.dumps({
1338
- 'migration_id': migration_id,
1339
- 'source': region,
1340
- 'target': target_region
1341
- })
1342
- }
1343
-
1344
- def handle_optimization_trigger(event):
1345
- fleet_table = dynamodb.Table(FLEET_STATE_TABLE)
1346
- history_table = dynamodb.Table(MIGRATION_HISTORY_TABLE)
1347
-
1348
- # Check for migration opportunities
1349
- migration_candidates = find_migration_candidates(fleet_table)
1350
-
1351
- migrations_executed = []
1352
-
1353
- for candidate in migration_candidates:
1354
- if should_migrate(candidate):
1355
- migration_id = execute_fleet_migration(
1356
- candidate['source_region'],
1357
- candidate['target_region'],
1358
- candidate['instances']
1359
- )
1360
-
1361
- migrations_executed.append({
1362
- 'migration_id': migration_id,
1363
- 'source': candidate['source_region'],
1364
- 'target': candidate['target_region'],
1365
- 'instance_count': len(candidate['instances'])
1366
- })
1367
-
1368
- # Record in history
1369
- record_migration(history_table, migration_id, candidate)
1370
-
1371
- # Emit metrics
1372
- emit_migration_metrics(migrations_executed)
1373
-
1374
- return {
1375
- 'statusCode': 200,
1376
- 'body': json.dumps({
1377
- 'migrations_executed': len(migrations_executed),
1378
- 'details': migrations_executed
1379
- })
1380
- }
1381
-
1382
- def get_instance_info(instance_id, region):
1383
- try:
1384
- ec2_regional = boto3.client('ec2', region_name=region)
1385
- response = ec2_regional.describe_instances(
1386
- InstanceIds=[instance_id]
1387
- )
1388
-
1389
- if response['Reservations']:
1390
- instance = response['Reservations'][0]['Instances'][0]
1391
- return {
1392
- 'instance_id': instance_id,
1393
- 'instance_type': instance['InstanceType'],
1394
- 'launch_time': instance['LaunchTime'],
1395
- 'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
1396
- }
1397
- except Exception as e:
1398
- print(f"Error getting instance info: {str(e)}")
1399
-
1400
- return None
1401
-
1402
- def find_migration_target(source_region):
1403
- # Get latest carbon data
1404
- carbon_data = get_regional_carbon_data()
1405
-
1406
- # Sort by carbon intensity
1407
- sorted_regions = sorted(
1408
- carbon_data.items(),
1409
- key=lambda x: x[1]['carbon_intensity']
1410
- )
1411
-
1412
- # Find best target (not source)
1413
- for region, data in sorted_regions:
1414
- if region != source_region and data['carbon_intensity'] < carbon_data[source_region]['carbon_intensity']:
1415
- return region
1416
-
1417
- return None
1418
-
1419
- def get_regional_carbon_data():
1420
- # Simplified - in production would query carbon table
1421
- return {
1422
- 'us-east-1': {'carbon_intensity': 400},
1423
- 'us-west-2': {'carbon_intensity': 50},
1424
- 'eu-north-1': {'carbon_intensity': 40},
1425
- 'ca-central-1': {'carbon_intensity': 30}
1426
- }
1427
-
1428
- def find_migration_candidates(fleet_table):
1429
- candidates = []
1430
-
1431
- # Query fleet state for high carbon regions
1432
- response = fleet_table.scan()
1433
-
1434
- carbon_data = get_regional_carbon_data()
1435
-
1436
- for item in response.get('Items', []):
1437
- region = item['region']
1438
- carbon_intensity = carbon_data.get(region, {}).get('carbon_intensity', 400)
1439
-
1440
- if carbon_intensity > 200: # High carbon threshold
1441
- # Find lower carbon alternative
1442
- target = find_migration_target(region)
1443
-
1444
- if target:
1445
- candidates.append({
1446
- 'source_region': region,
1447
- 'target_region': target,
1448
- 'carbon_reduction': carbon_intensity - carbon_data[target]['carbon_intensity'],
1449
- 'instances': get_region_instances(region),
1450
- 'fleet_id': item.get('fleet_id')
1451
- })
1452
-
1453
- return candidates
1454
-
1455
- def get_region_instances(region):
1456
- try:
1457
- ec2_regional = boto3.client('ec2', region_name=region)
1458
- response = ec2_regional.describe_instances(
1459
- Filters=[
1460
- {'Name': 'instance-state-name', 'Values': ['running']},
1461
- {'Name': 'tag:Component', 'Values': ['spot-carbon-optimizer']}
1462
- ]
1463
- )
1464
-
1465
- instances = []
1466
- for reservation in response['Reservations']:
1467
- instances.extend([i['InstanceId'] for i in reservation['Instances']])
1468
-
1469
- return instances
1470
- except:
1471
- return []
1472
-
1473
- def should_migrate(candidate):
1474
- # Check migration criteria
1475
- if not ENABLE_CROSS_REGION:
1476
- return False
1477
-
1478
- # Significant carbon reduction
1479
- if candidate['carbon_reduction'] < 100:
1480
- return False
1481
-
1482
- # Not too many instances
1483
- if len(candidate['instances']) > 50:
1484
- return False
1485
-
1486
- # Workload type supports migration
1487
- if WORKLOAD_TYPE not in ['stateless', 'batch', 'distributed']:
1488
- return False
1489
-
1490
- return True
1491
-
1492
- def execute_migration(instance_info, source_region, target_region):
1493
- migration_id = str(uuid.uuid4())
1494
-
1495
- if MIGRATION_STRATEGY == 'checkpoint_restore':
1496
- execute_checkpoint_restore(instance_info, source_region, target_region, migration_id)
1497
- elif MIGRATION_STRATEGY == 'blue_green':
1498
- execute_blue_green(instance_info, source_region, target_region, migration_id)
1499
- elif MIGRATION_STRATEGY == 'drain_and_shift':
1500
- execute_drain_and_shift(instance_info, source_region, target_region, migration_id)
1501
- else: # live_migration
1502
- execute_live_migration(instance_info, source_region, target_region, migration_id)
1503
-
1504
- return migration_id
1505
-
1506
- def execute_checkpoint_restore(instance_info, source_region, target_region, migration_id):
1507
- print(f"Executing checkpoint/restore migration {migration_id}")
1508
-
1509
- # 1. Create snapshot of instance
1510
- ec2_source = boto3.client('ec2', region_name=source_region)
1511
-
1512
- # 2. Stop instance (checkpoint)
1513
- ec2_source.stop_instances(InstanceIds=[instance_info['instance_id']])
1514
-
1515
- # 3. Create AMI from instance
1516
- ami_response = ec2_source.create_image(
1517
- InstanceId=instance_info['instance_id'],
1518
- Name=f"migration-{migration_id}",
1519
- Description=f"Carbon migration from {source_region} to {target_region}"
1520
- )
1521
-
1522
- # 4. Copy AMI to target region
1523
- ec2_target = boto3.client('ec2', region_name=target_region)
1524
-
1525
- # 5. Launch instance in target region
1526
- # (Simplified - would wait for AMI and copy)
1527
-
1528
- # 6. Terminate source instance
1529
- ec2_source.terminate_instances(InstanceIds=[instance_info['instance_id']])
1530
-
1531
- def execute_blue_green(instance_info, source_region, target_region, migration_id):
1532
- print(f"Executing blue/green migration {migration_id}")
1533
-
1534
- # 1. Launch instance in target region
1535
- ec2_target = boto3.client('ec2', region_name=target_region)
1536
-
1537
- # 2. Configure and test new instance
1538
-
1539
- # 3. Switch traffic to new instance
1540
-
1541
- # 4. Terminate old instance
1542
- ec2_source = boto3.client('ec2', region_name=source_region)
1543
- ec2_source.terminate_instances(InstanceIds=[instance_info['instance_id']])
1544
-
1545
- def execute_drain_and_shift(instance_info, source_region, target_region, migration_id):
1546
- print(f"Executing drain and shift migration {migration_id}")
1547
-
1548
- # 1. Mark instance for draining
1549
- ec2_source = boto3.client('ec2', region_name=source_region)
1550
- ec2_source.create_tags(
1551
- Resources=[instance_info['instance_id']],
1552
- Tags=[{'Key': 'Migration', 'Value': 'draining'}]
1553
- )
1554
-
1555
- # 2. Wait for connections to drain
1556
- time.sleep(MIGRATION_THRESHOLD * 60)
1557
-
1558
- # 3. Launch replacement in target
1559
-
1560
- # 4. Terminate source
1561
- ec2_source.terminate_instances(InstanceIds=[instance_info['instance_id']])
1562
-
1563
- def execute_live_migration(instance_info, source_region, target_region, migration_id):
1564
- print(f"Executing live migration {migration_id}")
1565
- # Live migration is complex and would require:
1566
- # - Network tunneling between regions
1567
- # - State synchronization
1568
- # - Atomic cutover
1569
- # Simplified here
1570
- pass
1571
-
1572
- def execute_fleet_migration(source_region, target_region, instances):
1573
- migration_id = str(uuid.uuid4())
1574
-
1575
- print(f"Migrating {len(instances)} instances from {source_region} to {target_region}")
1576
-
1577
- # Execute appropriate migration strategy
1578
- if MIGRATION_STRATEGY == 'checkpoint_restore':
1579
- for instance_id in instances[:5]: # Limit to 5 at a time
1580
- instance_info = get_instance_info(instance_id, source_region)
1581
- if instance_info:
1582
- execute_checkpoint_restore(
1583
- instance_info, source_region, target_region, migration_id
1584
- )
1585
-
1586
- return migration_id
1587
-
1588
- def record_migration(table, migration_id, candidate):
1589
- table.put_item(Item={
1590
- 'migration_id': migration_id,
1591
- 'timestamp': int(time.time()),
1592
- 'source_region': candidate['source_region'],
1593
- 'target_region': candidate['target_region'],
1594
- 'instance_count': len(candidate['instances']),
1595
- 'carbon_reduction': candidate['carbon_reduction'],
1596
- 'migration_strategy': MIGRATION_STRATEGY,
1597
- 'workload_type': WORKLOAD_TYPE
1598
- })
1599
-
1600
- def emit_migration_metrics(migrations):
1601
- namespace = f"SpotCarbonOptimizer/{os.environ.get('COMPONENT_NAME', 'default')}"
1602
-
1603
- total_carbon_saved = sum(
1604
- m.get('carbon_reduction', 0) * m.get('instance_count', 0)
1605
- for m in migrations
1606
- )
1607
-
1608
- cloudwatch.put_metric_data(
1609
- Namespace=namespace,
1610
- MetricData=[
1611
- {
1612
- 'MetricName': 'MigrationCount',
1613
- 'Value': len(migrations),
1614
- 'Unit': 'Count'
1615
- },
1616
- {
1617
- 'MetricName': 'InstancesMigrated',
1618
- 'Value': sum(m.get('instance_count', 0) for m in migrations),
1619
- 'Unit': 'Count'
1620
- },
1621
- {
1622
- 'MetricName': 'CarbonSavedByMigration',
1623
- 'Value': total_carbon_saved,
1624
- 'Unit': 'None'
1625
- },
1626
- {
1627
- 'MetricName': 'MigrationSuccess',
1628
- 'Value': 100 if migrations else 0,
1629
- 'Unit': 'Percent'
1630
- }
1631
- ]
1632
- )
1633
- PYTHON
1634
- end
1635
- end
1636
- end
1637
- end
1638
- end