pangea 0.0.45 → 0.0.47

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 (2198) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/skills/pangea-cloud-resource-creation/SKILL.md +169 -0
  3. data/.claude/skills/pangea-cloud-resource-creation/references/hetzner-volume-example.md +133 -0
  4. data/.claude/skills/pangea-cloud-resource-creation/references/patterns-antipatterns.md +149 -0
  5. data/.claude/skills/pangea-cloud-resource-creation/references/resource-templates.md +288 -0
  6. data/.claude/skills/pangea-cloud-resource-creation/references/tracker-cli.md +77 -0
  7. data/.claude/skills/pangea-cloud-resource-creation/references/type-system.md +105 -0
  8. data/.claude/skills/pangea-infrastructure/SKILL.md +300 -0
  9. data/.claude/skills/pangea-infrastructure/references/kubernetes-integration.md +149 -0
  10. data/.claude/skills/pangea-infrastructure/references/resource-patterns.md +206 -0
  11. data/.claude/skills/pangea-infrastructure/references/troubleshooting.md +86 -0
  12. data/.claude/skills/pangea-infrastructure/references/workflow-examples.md +98 -0
  13. data/.claude/skills/pangea-refactoring/SKILL.md +478 -0
  14. data/.claude/skills/pangea-resource-testing/SKILL.md +256 -0
  15. data/.claude/skills/pangea-rspec-resource-testing/SKILL.md +258 -0
  16. data/.claude/skills/pangea-rspec-resource-testing/references/cloudflare-zone-example.md +57 -0
  17. data/.claude/skills/pangea-rspec-resource-testing/references/common-patterns.md +109 -0
  18. data/.claude/skills/pangea-rspec-resource-testing/references/debugging.md +63 -0
  19. data/.claude/skills/pangea-rspec-resource-testing/references/integration-tests.md +55 -0
  20. data/.claude/skills/pangea-rspec-resource-testing/references/synthesis-tests.md +169 -0
  21. data/.claude/skills/pangea-rspec-resource-testing/references/troubleshooting.md +129 -0
  22. data/.claude/skills/pangea-rspec-resource-testing/references/type-validation-tests.md +92 -0
  23. data/.github/workflows/ci.yml +54 -53
  24. data/.gitignore +6 -1
  25. data/.rspec_status +17894 -0
  26. data/AGENT_GUIDE.md +24 -8
  27. data/CONTRIBUTING.md +35 -35
  28. data/Gemfile.lock +103 -57
  29. data/README.md +22 -13
  30. data/README_backend_configuration.md +16 -9
  31. data/bin/generate-hetzner-resource +204 -0
  32. data/bin/hetzner-tracker +280 -0
  33. data/bin/pangea +13 -0
  34. data/bin/pangea-compiler +15 -0
  35. data/bin/pangea-compiler-server +133 -0
  36. data/docs/KUBERNETES_OPERATOR_PLAN.md +2626 -0
  37. data/examples/test_simple/pangea.yml +7 -0
  38. data/examples/test_simple/simple.rb +39 -0
  39. data/flake.lock +748 -6
  40. data/flake.nix +501 -29
  41. data/gemset.nix +115 -104
  42. data/lib/pangea/agent/analysis.rb +128 -0
  43. data/lib/pangea/agent/compilation.rb +62 -0
  44. data/lib/pangea/agent/helpers.rb +29 -0
  45. data/lib/pangea/agent/listing.rb +108 -0
  46. data/lib/pangea/agent.rb +13 -349
  47. data/lib/pangea/architectures/base/architecture_reference/cost.rb +30 -0
  48. data/lib/pangea/architectures/base/architecture_reference/high_availability.rb +57 -0
  49. data/lib/pangea/architectures/base/architecture_reference/performance.rb +58 -0
  50. data/lib/pangea/architectures/base/architecture_reference/security.rb +61 -0
  51. data/lib/pangea/architectures/base/architecture_reference/validation.rb +46 -0
  52. data/lib/pangea/architectures/base/architecture_reference.rb +109 -0
  53. data/lib/pangea/architectures/base/vpc_networking.rb +155 -0
  54. data/lib/pangea/architectures/base.rb +9 -503
  55. data/lib/pangea/architectures/examples/architectures/devops_platform.rb +129 -0
  56. data/lib/pangea/architectures/examples/architectures/ecommerce_platform.rb +104 -0
  57. data/lib/pangea/architectures/examples/architectures/helpers.rb +47 -0
  58. data/lib/pangea/architectures/examples/architectures/ml_platform.rb +113 -0
  59. data/lib/pangea/architectures/examples/architectures/multi_region_saas.rb +95 -0
  60. data/lib/pangea/architectures/examples/web_application/analytics.rb +108 -0
  61. data/lib/pangea/architectures/examples/web_application/basic.rb +40 -0
  62. data/lib/pangea/architectures/examples/web_application/custom_database.rb +86 -0
  63. data/lib/pangea/architectures/examples/web_application/ecommerce.rb +103 -0
  64. data/lib/pangea/architectures/examples/web_application/microservices.rb +120 -0
  65. data/lib/pangea/architectures/examples/web_application/multi_environment.rb +88 -0
  66. data/lib/pangea/architectures/examples/web_application_examples.rb +7 -571
  67. data/lib/pangea/architectures/examples.rb +14 -480
  68. data/lib/pangea/architectures/patterns/data_processing/analytics.rb +70 -0
  69. data/lib/pangea/architectures/patterns/data_processing/iam_roles.rb +131 -0
  70. data/lib/pangea/architectures/patterns/data_processing/ingestion.rb +73 -0
  71. data/lib/pangea/architectures/patterns/data_processing/monitoring.rb +66 -0
  72. data/lib/pangea/architectures/patterns/data_processing/processing.rb +78 -0
  73. data/lib/pangea/architectures/patterns/data_processing/security.rb +34 -0
  74. data/lib/pangea/architectures/patterns/data_processing/storage.rb +74 -0
  75. data/lib/pangea/architectures/patterns/data_processing/streaming.rb +121 -0
  76. data/lib/pangea/architectures/patterns/data_processing/types.rb +79 -0
  77. data/lib/pangea/architectures/patterns/data_processing.rb +51 -619
  78. data/lib/pangea/architectures/patterns/microservices/helpers.rb +67 -0
  79. data/lib/pangea/architectures/patterns/microservices/observability.rb +83 -0
  80. data/lib/pangea/architectures/patterns/microservices/orchestration.rb +67 -0
  81. data/lib/pangea/architectures/patterns/microservices/platform_security.rb +56 -0
  82. data/lib/pangea/architectures/patterns/microservices/service.rb +117 -0
  83. data/lib/pangea/architectures/patterns/microservices/service_mesh.rb +49 -0
  84. data/lib/pangea/architectures/patterns/microservices/shared_services.rb +90 -0
  85. data/lib/pangea/architectures/patterns/microservices/types.rb +84 -0
  86. data/lib/pangea/architectures/patterns/microservices.rb +52 -563
  87. data/lib/pangea/architectures/patterns/web_application/compute_tier.rb +98 -0
  88. data/lib/pangea/architectures/patterns/web_application/database_tier.rb +76 -0
  89. data/lib/pangea/architectures/patterns/web_application/load_balancer_tier.rb +81 -0
  90. data/lib/pangea/architectures/patterns/web_application/monitoring_tier.rb +97 -0
  91. data/lib/pangea/architectures/patterns/web_application/security_tier.rb +76 -0
  92. data/lib/pangea/architectures/patterns/web_application/storage_tier.rb +58 -0
  93. data/lib/pangea/architectures/patterns/web_application/types.rb +99 -0
  94. data/lib/pangea/architectures/patterns/web_application/user_data.rb +107 -0
  95. data/lib/pangea/architectures/patterns/web_application.rb +46 -507
  96. data/lib/pangea/architectures/types/base_types.rb +58 -0
  97. data/lib/pangea/architectures/types/config_schemas.rb +112 -0
  98. data/lib/pangea/architectures/types/defaults.rb +62 -0
  99. data/lib/pangea/architectures/types/validators.rb +110 -0
  100. data/lib/pangea/architectures/types.rb +17 -257
  101. data/lib/pangea/architectures/web_application_architecture/architecture/component_creation.rb +146 -0
  102. data/lib/pangea/architectures/web_application_architecture/architecture/cost_estimation.rb +71 -0
  103. data/lib/pangea/architectures/web_application_architecture/architecture/fallback_resources.rb +63 -0
  104. data/lib/pangea/architectures/web_application_architecture/architecture/helpers.rb +50 -0
  105. data/lib/pangea/architectures/web_application_architecture/architecture/outputs.rb +73 -0
  106. data/lib/pangea/architectures/web_application_architecture/architecture/resource_creation.rb +54 -0
  107. data/lib/pangea/architectures/web_application_architecture/architecture.rb +18 -454
  108. data/lib/pangea/architectures/web_application_architecture/types/cost_estimation.rb +88 -0
  109. data/lib/pangea/architectures/web_application_architecture/types/defaults.rb +90 -0
  110. data/lib/pangea/architectures/web_application_architecture/types/input_schema.rb +91 -0
  111. data/lib/pangea/architectures/web_application_architecture/types/output_schema.rb +49 -0
  112. data/lib/pangea/architectures/web_application_architecture/types/validation.rb +81 -0
  113. data/lib/pangea/architectures/web_application_architecture/types.rb +35 -260
  114. data/lib/pangea/backends/local.rb +2 -2
  115. data/lib/pangea/backends/s3/dynamodb_lock.rb +115 -0
  116. data/lib/pangea/backends/s3.rb +47 -131
  117. data/lib/pangea/cli/application/command_router.rb +129 -0
  118. data/lib/pangea/cli/application/options.rb +128 -0
  119. data/lib/pangea/cli/application.rb +55 -156
  120. data/lib/pangea/cli/commands/agent/analysis.rb +107 -0
  121. data/lib/pangea/cli/commands/agent/complexity.rb +67 -0
  122. data/lib/pangea/cli/commands/agent/cost.rb +59 -0
  123. data/lib/pangea/cli/commands/agent/dependencies.rb +63 -0
  124. data/lib/pangea/cli/commands/agent/explanation.rb +81 -0
  125. data/lib/pangea/cli/commands/agent/security.rb +69 -0
  126. data/lib/pangea/cli/commands/agent/suggestions.rb +55 -0
  127. data/lib/pangea/cli/commands/agent/validation.rb +77 -0
  128. data/lib/pangea/cli/commands/agent.rb +36 -560
  129. data/lib/pangea/cli/commands/apply.rb +93 -185
  130. data/lib/pangea/cli/commands/base_command.rb +5 -0
  131. data/lib/pangea/cli/commands/destroy.rb +130 -62
  132. data/lib/pangea/cli/commands/enhanced_plan/metrics.rb +53 -0
  133. data/lib/pangea/cli/commands/enhanced_plan/plan_generation.rb +93 -0
  134. data/lib/pangea/cli/commands/enhanced_plan/template_operations.rb +106 -0
  135. data/lib/pangea/cli/commands/enhanced_plan.rb +63 -0
  136. data/lib/pangea/cli/commands/import/import_command_generator.rb +71 -0
  137. data/lib/pangea/cli/commands/import/resource_analyzer.rb +72 -0
  138. data/lib/pangea/cli/commands/import.rb +180 -0
  139. data/lib/pangea/cli/commands/init.rb +100 -0
  140. data/lib/pangea/cli/commands/inspect/config_inspection.rb +130 -0
  141. data/lib/pangea/cli/commands/inspect/resource_inspection.rb +105 -0
  142. data/lib/pangea/cli/commands/inspect/template_analysis.rb +124 -0
  143. data/lib/pangea/cli/commands/inspect.rb +30 -372
  144. data/lib/pangea/cli/commands/plan/json_analysis.rb +179 -0
  145. data/lib/pangea/cli/commands/plan/json_formatting.rb +53 -0
  146. data/lib/pangea/cli/commands/plan/plan_output.rb +152 -0
  147. data/lib/pangea/cli/commands/plan/resource_display.rb +98 -0
  148. data/lib/pangea/cli/commands/plan.rb +81 -138
  149. data/lib/pangea/cli/commands/sync.rb +110 -0
  150. data/lib/pangea/cli/commands/template_processor.rb +116 -0
  151. data/lib/pangea/cli/commands/workspace_operations.rb +154 -0
  152. data/lib/pangea/cli/error_handler.rb +169 -0
  153. data/lib/pangea/cli/errors.rb +57 -0
  154. data/lib/pangea/cli/ui/README.md +255 -0
  155. data/lib/pangea/cli/ui/banner/operation_summary.rb +120 -0
  156. data/lib/pangea/cli/ui/banner.rb +179 -0
  157. data/lib/pangea/cli/ui/command_display/cost_estimation.rb +82 -0
  158. data/lib/pangea/cli/ui/command_display/state_display.rb +116 -0
  159. data/lib/pangea/cli/ui/command_display/value_formatters.rb +68 -0
  160. data/lib/pangea/cli/ui/command_display.rb +147 -0
  161. data/lib/pangea/cli/ui/diff/formatting.rb +65 -0
  162. data/lib/pangea/cli/ui/diff/plan_parser.rb +84 -0
  163. data/lib/pangea/cli/ui/diff.rb +115 -202
  164. data/lib/pangea/cli/ui/logger/display_helpers.rb +98 -0
  165. data/lib/pangea/cli/ui/logger/info_panels.rb +99 -0
  166. data/lib/pangea/cli/ui/logger/resource_display.rb +66 -0
  167. data/lib/pangea/cli/ui/logger/styles.rb +63 -0
  168. data/lib/pangea/cli/ui/logger.rb +47 -122
  169. data/lib/pangea/cli/ui/output_formatter/constants.rb +28 -0
  170. data/lib/pangea/cli/ui/output_formatter/display.rb +156 -0
  171. data/lib/pangea/cli/ui/output_formatter/formatting.rb +44 -0
  172. data/lib/pangea/cli/ui/output_formatter.rb +28 -0
  173. data/lib/pangea/cli/ui/plan_display/action_group_display.rb +101 -0
  174. data/lib/pangea/cli/ui/plan_display.rb +150 -0
  175. data/lib/pangea/cli/ui/progress/animations.rb +69 -0
  176. data/lib/pangea/cli/ui/progress/wrappers.rb +111 -0
  177. data/lib/pangea/cli/ui/progress.rb +15 -153
  178. data/lib/pangea/cli/ui/spinner.rb +102 -10
  179. data/lib/pangea/cli/ui/table/formatters.rb +141 -0
  180. data/lib/pangea/cli/ui/table.rb +88 -11
  181. data/lib/pangea/cli/ui/template_display/resource_extractor.rb +109 -0
  182. data/lib/pangea/cli/ui/template_display.rb +185 -0
  183. data/lib/pangea/cli/ui/visualizer/cost.rb +37 -0
  184. data/lib/pangea/cli/ui/visualizer/display.rb +98 -0
  185. data/lib/pangea/cli/ui/visualizer/graph.rb +94 -0
  186. data/lib/pangea/cli/ui/visualizer/statistics.rb +58 -0
  187. data/lib/pangea/cli/ui/visualizer.rb +41 -270
  188. data/lib/pangea/compilation/backend_injector.rb +78 -0
  189. data/lib/pangea/compilation/compilation_helpers.rb +136 -0
  190. data/lib/pangea/compilation/template_compiler.rb +56 -317
  191. data/lib/pangea/compilation/template_extractor.rb +81 -0
  192. data/lib/pangea/compilation/template_validator.rb +88 -0
  193. data/lib/pangea/compiler_server.rb +133 -0
  194. data/lib/pangea/components/api_gateway_microservices/component.rb +79 -584
  195. data/lib/pangea/components/api_gateway_microservices/cors.rb +94 -0
  196. data/lib/pangea/components/api_gateway_microservices/deployment.rb +102 -0
  197. data/lib/pangea/components/api_gateway_microservices/helpers.rb +104 -0
  198. data/lib/pangea/components/api_gateway_microservices/methods.rb +111 -0
  199. data/lib/pangea/components/api_gateway_microservices/monitoring.rb +77 -0
  200. data/lib/pangea/components/api_gateway_microservices/rate_limiting.rb +75 -0
  201. data/lib/pangea/components/api_gateway_microservices/resources.rb +155 -0
  202. data/lib/pangea/components/api_gateway_microservices/types/core.rb +63 -0
  203. data/lib/pangea/components/api_gateway_microservices/types/endpoint.rb +53 -0
  204. data/lib/pangea/components/api_gateway_microservices/types/policy.rb +59 -0
  205. data/lib/pangea/components/api_gateway_microservices/types.rb +83 -176
  206. data/lib/pangea/components/application_load_balancer/component.rb +81 -264
  207. data/lib/pangea/components/application_load_balancer/listeners.rb +139 -0
  208. data/lib/pangea/components/application_load_balancer/monitoring.rb +93 -0
  209. data/lib/pangea/components/application_load_balancer/target_groups.rb +101 -0
  210. data/lib/pangea/components/auto_scaling_web_servers/component/launch_template.rb +79 -0
  211. data/lib/pangea/components/auto_scaling_web_servers/component/lifecycle.rb +90 -0
  212. data/lib/pangea/components/auto_scaling_web_servers/component/scaling_policies.rb +152 -0
  213. data/lib/pangea/components/auto_scaling_web_servers/component.rb +49 -347
  214. data/lib/pangea/components/carbon_aware_compute/component.rb +52 -1062
  215. data/lib/pangea/components/carbon_aware_compute/modules/code_generators/executor_code.rb +137 -0
  216. data/lib/pangea/components/carbon_aware_compute/modules/code_generators/monitor_code.rb +129 -0
  217. data/lib/pangea/components/carbon_aware_compute/modules/code_generators/scheduler_code.rb +145 -0
  218. data/lib/pangea/components/carbon_aware_compute/modules/code_generators.rb +31 -0
  219. data/lib/pangea/components/carbon_aware_compute/modules/functions.rb +99 -0
  220. data/lib/pangea/components/carbon_aware_compute/modules/helpers.rb +60 -0
  221. data/lib/pangea/components/carbon_aware_compute/modules/monitoring.rb +178 -0
  222. data/lib/pangea/components/carbon_aware_compute/modules/roles.rb +113 -0
  223. data/lib/pangea/components/carbon_aware_compute/modules/schedules.rb +51 -0
  224. data/lib/pangea/components/carbon_aware_compute/modules/tables.rb +80 -0
  225. data/lib/pangea/components/disaster_recovery_pilot_light/component.rb +78 -1514
  226. data/lib/pangea/components/disaster_recovery_pilot_light/modules/automation.rb +177 -0
  227. data/lib/pangea/components/disaster_recovery_pilot_light/modules/backup.rb +132 -0
  228. data/lib/pangea/components/disaster_recovery_pilot_light/modules/code_generators/lambda_code.rb +152 -0
  229. data/lib/pangea/components/disaster_recovery_pilot_light/modules/code_generators/runbook.rb +86 -0
  230. data/lib/pangea/components/disaster_recovery_pilot_light/modules/code_generators/workflow.rb +137 -0
  231. data/lib/pangea/components/disaster_recovery_pilot_light/modules/code_generators.rb +31 -0
  232. data/lib/pangea/components/disaster_recovery_pilot_light/modules/compliance.rb +86 -0
  233. data/lib/pangea/components/disaster_recovery_pilot_light/modules/dr_region.rb +167 -0
  234. data/lib/pangea/components/disaster_recovery_pilot_light/modules/helpers.rb +164 -0
  235. data/lib/pangea/components/disaster_recovery_pilot_light/modules/monitoring/alarms.rb +79 -0
  236. data/lib/pangea/components/disaster_recovery_pilot_light/modules/monitoring/dashboards.rb +167 -0
  237. data/lib/pangea/components/disaster_recovery_pilot_light/modules/monitoring.rb +55 -0
  238. data/lib/pangea/components/disaster_recovery_pilot_light/modules/networking.rb +94 -0
  239. data/lib/pangea/components/disaster_recovery_pilot_light/modules/primary_region.rb +134 -0
  240. data/lib/pangea/components/disaster_recovery_pilot_light/modules/replication/database.rb +103 -0
  241. data/lib/pangea/components/disaster_recovery_pilot_light/modules/replication/efs.rb +45 -0
  242. data/lib/pangea/components/disaster_recovery_pilot_light/modules/replication/s3.rb +120 -0
  243. data/lib/pangea/components/disaster_recovery_pilot_light/modules/replication.rb +61 -0
  244. data/lib/pangea/components/disaster_recovery_pilot_light/modules/testing.rb +93 -0
  245. data/lib/pangea/components/disaster_recovery_pilot_light/types/data_configs.rb +50 -0
  246. data/lib/pangea/components/disaster_recovery_pilot_light/types/operational_configs.rb +50 -0
  247. data/lib/pangea/components/disaster_recovery_pilot_light/types/optimization_configs.rb +63 -0
  248. data/lib/pangea/components/disaster_recovery_pilot_light/types/region_configs.rb +50 -0
  249. data/lib/pangea/components/disaster_recovery_pilot_light/types.rb +38 -140
  250. data/lib/pangea/components/event_driven_microservice/api_gateway.rb +25 -0
  251. data/lib/pangea/components/event_driven_microservice/component.rb +56 -626
  252. data/lib/pangea/components/event_driven_microservice/event_sources.rb +113 -0
  253. data/lib/pangea/components/event_driven_microservice/functions.rb +91 -0
  254. data/lib/pangea/components/event_driven_microservice/helpers.rb +90 -0
  255. data/lib/pangea/components/event_driven_microservice/iam.rb +117 -0
  256. data/lib/pangea/components/event_driven_microservice/monitoring.rb +191 -0
  257. data/lib/pangea/components/event_driven_microservice/storage.rb +126 -0
  258. data/lib/pangea/components/event_driven_microservice/types/cqrs_config.rb +37 -0
  259. data/lib/pangea/components/event_driven_microservice/types/event_replay_config.rb +36 -0
  260. data/lib/pangea/components/event_driven_microservice/types/event_source.rb +42 -0
  261. data/lib/pangea/components/event_driven_microservice/types/event_store_config.rb +40 -0
  262. data/lib/pangea/components/event_driven_microservice/types/function_config.rb +40 -0
  263. data/lib/pangea/components/event_driven_microservice/types/monitoring_config.rb +37 -0
  264. data/lib/pangea/components/event_driven_microservice/types/saga_config.rb +37 -0
  265. data/lib/pangea/components/event_driven_microservice/types.rb +35 -112
  266. data/lib/pangea/components/examples/enterprise_application.rb +166 -0
  267. data/lib/pangea/components/examples/three_tier_web_application.rb +159 -0
  268. data/lib/pangea/components/examples.rb +7 -492
  269. data/lib/pangea/components/global_service_mesh/component.rb +94 -1271
  270. data/lib/pangea/components/global_service_mesh/modules/connectivity.rb +133 -0
  271. data/lib/pangea/components/global_service_mesh/modules/gateways.rb +197 -0
  272. data/lib/pangea/components/global_service_mesh/modules/helpers.rb +172 -0
  273. data/lib/pangea/components/global_service_mesh/modules/mesh_components.rb +126 -0
  274. data/lib/pangea/components/global_service_mesh/modules/observability.rb +106 -0
  275. data/lib/pangea/components/global_service_mesh/modules/regional_mesh.rb +109 -0
  276. data/lib/pangea/components/global_service_mesh/modules/resilience.rb +116 -0
  277. data/lib/pangea/components/global_service_mesh/modules/security.rb +125 -0
  278. data/lib/pangea/components/global_service_mesh/types/infrastructure_types.rb +49 -0
  279. data/lib/pangea/components/global_service_mesh/types/operational_types.rb +49 -0
  280. data/lib/pangea/components/global_service_mesh/types/policy_types.rb +63 -0
  281. data/lib/pangea/components/global_service_mesh/types/service_types.rb +52 -0
  282. data/lib/pangea/components/global_service_mesh/types.rb +59 -206
  283. data/lib/pangea/components/global_traffic_manager/component.rb +86 -1111
  284. data/lib/pangea/components/global_traffic_manager/modules/accelerator.rb +112 -0
  285. data/lib/pangea/components/global_traffic_manager/modules/advanced_routing.rb +85 -0
  286. data/lib/pangea/components/global_traffic_manager/modules/cloudfront.rb +188 -0
  287. data/lib/pangea/components/global_traffic_manager/modules/edge_functions.rb +56 -0
  288. data/lib/pangea/components/global_traffic_manager/modules/health_checks.rb +77 -0
  289. data/lib/pangea/components/global_traffic_manager/modules/helpers.rb +164 -0
  290. data/lib/pangea/components/global_traffic_manager/modules/monitoring.rb +180 -0
  291. data/lib/pangea/components/global_traffic_manager/modules/routing.rb +168 -0
  292. data/lib/pangea/components/global_traffic_manager/modules/security.rb +152 -0
  293. data/lib/pangea/components/global_traffic_manager/modules/synthetic.rb +70 -0
  294. data/lib/pangea/components/global_traffic_manager/types/advanced_routing_config.rb +36 -0
  295. data/lib/pangea/components/global_traffic_manager/types/cloudfront_config.rb +38 -0
  296. data/lib/pangea/components/global_traffic_manager/types/endpoint_config.rb +39 -0
  297. data/lib/pangea/components/global_traffic_manager/types/geo_routing_config.rb +35 -0
  298. data/lib/pangea/components/global_traffic_manager/types/observability_config.rb +38 -0
  299. data/lib/pangea/components/global_traffic_manager/types/performance_config.rb +36 -0
  300. data/lib/pangea/components/global_traffic_manager/types/security_config.rb +38 -0
  301. data/lib/pangea/components/global_traffic_manager/types/traffic_policy_config.rb +40 -0
  302. data/lib/pangea/components/global_traffic_manager/types/validators.rb +158 -0
  303. data/lib/pangea/components/global_traffic_manager/types.rb +27 -223
  304. data/lib/pangea/components/green_data_lifecycle/component.rb +80 -1343
  305. data/lib/pangea/components/green_data_lifecycle/modules/code_generators/access_analyzer_code.rb +159 -0
  306. data/lib/pangea/components/green_data_lifecycle/modules/code_generators/carbon_optimizer_code.rb +170 -0
  307. data/lib/pangea/components/green_data_lifecycle/modules/code_generators/lifecycle_manager_code.rb +169 -0
  308. data/lib/pangea/components/green_data_lifecycle/modules/code_generators.rb +31 -0
  309. data/lib/pangea/components/green_data_lifecycle/modules/functions.rb +97 -0
  310. data/lib/pangea/components/green_data_lifecycle/modules/glacier.rb +58 -0
  311. data/lib/pangea/components/green_data_lifecycle/modules/helpers.rb +40 -0
  312. data/lib/pangea/components/green_data_lifecycle/modules/inventory.rb +57 -0
  313. data/lib/pangea/components/green_data_lifecycle/modules/lifecycle.rb +158 -0
  314. data/lib/pangea/components/green_data_lifecycle/modules/monitoring.rb +180 -0
  315. data/lib/pangea/components/green_data_lifecycle/modules/roles.rb +107 -0
  316. data/lib/pangea/components/green_data_lifecycle/modules/storage.rb +47 -0
  317. data/lib/pangea/components/microservice_deployment/component/autoscaling.rb +67 -0
  318. data/lib/pangea/components/microservice_deployment/component/container_definitions.rb +73 -0
  319. data/lib/pangea/components/microservice_deployment/component/logging.rb +28 -0
  320. data/lib/pangea/components/microservice_deployment/component/monitoring.rb +66 -0
  321. data/lib/pangea/components/microservice_deployment/component/outputs.rb +66 -0
  322. data/lib/pangea/components/microservice_deployment/component/service.rb +87 -0
  323. data/lib/pangea/components/microservice_deployment/component.rb +41 -419
  324. data/lib/pangea/components/microservice_deployment/types/auto_scaling_config.rb +36 -0
  325. data/lib/pangea/components/microservice_deployment/types/circuit_breaker_config.rb +33 -0
  326. data/lib/pangea/components/microservice_deployment/types/container_definition.rb +43 -0
  327. data/lib/pangea/components/microservice_deployment/types/health_check_config.rb +35 -0
  328. data/lib/pangea/components/microservice_deployment/types/service_discovery_config.rb +41 -0
  329. data/lib/pangea/components/microservice_deployment/types/tracing_config.rb +34 -0
  330. data/lib/pangea/components/microservice_deployment/types.rb +75 -146
  331. data/lib/pangea/components/microservices_examples/platform.rb +91 -0
  332. data/lib/pangea/components/microservices_examples/saga.rb +49 -0
  333. data/lib/pangea/components/microservices_examples.rb +7 -435
  334. data/lib/pangea/components/multi_region_active_active/component.rb +110 -1164
  335. data/lib/pangea/components/multi_region_active_active/modules/applications.rb +117 -0
  336. data/lib/pangea/components/multi_region_active_active/modules/aurora.rb +121 -0
  337. data/lib/pangea/components/multi_region_active_active/modules/chaos.rb +103 -0
  338. data/lib/pangea/components/multi_region_active_active/modules/dynamodb.rb +77 -0
  339. data/lib/pangea/components/multi_region_active_active/modules/helpers.rb +193 -0
  340. data/lib/pangea/components/multi_region_active_active/modules/monitoring.rb +113 -0
  341. data/lib/pangea/components/multi_region_active_active/modules/networking.rb +134 -0
  342. data/lib/pangea/components/multi_region_active_active/modules/routing.rb +185 -0
  343. data/lib/pangea/components/multi_region_active_active/types/application_config.rb +38 -0
  344. data/lib/pangea/components/multi_region_active_active/types/consistency_config.rb +36 -0
  345. data/lib/pangea/components/multi_region_active_active/types/cost_config.rb +35 -0
  346. data/lib/pangea/components/multi_region_active_active/types/database_config.rb +37 -0
  347. data/lib/pangea/components/multi_region_active_active/types/failover_config.rb +37 -0
  348. data/lib/pangea/components/multi_region_active_active/types/monitoring_config.rb +37 -0
  349. data/lib/pangea/components/multi_region_active_active/types/region_config.rb +37 -0
  350. data/lib/pangea/components/multi_region_active_active/types/routing_config.rb +35 -0
  351. data/lib/pangea/components/multi_region_active_active/types/validators.rb +139 -0
  352. data/lib/pangea/components/multi_region_active_active/types.rb +28 -192
  353. data/lib/pangea/components/mysql_database/component/database.rb +167 -0
  354. data/lib/pangea/components/mysql_database/component/helpers.rb +105 -0
  355. data/lib/pangea/components/mysql_database/component/monitoring.rb +126 -0
  356. data/lib/pangea/components/mysql_database/component.rb +33 -295
  357. data/lib/pangea/components/public_private_subnets/component/outputs.rb +49 -0
  358. data/lib/pangea/components/public_private_subnets/component/routing/nat_gateways.rb +89 -0
  359. data/lib/pangea/components/public_private_subnets/component/routing.rb +145 -0
  360. data/lib/pangea/components/public_private_subnets/component/subnets.rb +70 -0
  361. data/lib/pangea/components/public_private_subnets/component.rb +47 -341
  362. data/lib/pangea/components/secure_s3_bucket/component/bucket_config.rb +51 -0
  363. data/lib/pangea/components/secure_s3_bucket/component/features.rb +75 -0
  364. data/lib/pangea/components/secure_s3_bucket/component/monitoring.rb +65 -0
  365. data/lib/pangea/components/secure_s3_bucket/component/outputs.rb +58 -0
  366. data/lib/pangea/components/secure_s3_bucket/component.rb +39 -421
  367. data/lib/pangea/components/secure_s3_bucket/types/bucket_configs.rb +51 -0
  368. data/lib/pangea/components/secure_s3_bucket/types/feature_configs.rb +60 -0
  369. data/lib/pangea/components/secure_s3_bucket/types/lifecycle_rule.rb +59 -0
  370. data/lib/pangea/components/secure_s3_bucket/types/monitoring_configs.rb +57 -0
  371. data/lib/pangea/components/secure_s3_bucket/types.rb +38 -168
  372. data/lib/pangea/components/service_mesh_observability/alerting.rb +165 -0
  373. data/lib/pangea/components/service_mesh_observability/anomaly.rb +51 -0
  374. data/lib/pangea/components/service_mesh_observability/component.rb +50 -567
  375. data/lib/pangea/components/service_mesh_observability/dashboard.rb +144 -0
  376. data/lib/pangea/components/service_mesh_observability/helpers.rb +92 -0
  377. data/lib/pangea/components/service_mesh_observability/logging.rb +73 -0
  378. data/lib/pangea/components/service_mesh_observability/types/dashboard_widget.rb +35 -0
  379. data/lib/pangea/components/service_mesh_observability/types/observability_configs.rb +57 -0
  380. data/lib/pangea/components/service_mesh_observability/types/operational_configs.rb +46 -0
  381. data/lib/pangea/components/service_mesh_observability/types/service_config.rb +37 -0
  382. data/lib/pangea/components/service_mesh_observability/types.rb +39 -129
  383. data/lib/pangea/components/service_mesh_observability/xray.rb +64 -0
  384. data/lib/pangea/components/siem_security_platform/component.rb +60 -2827
  385. data/lib/pangea/components/siem_security_platform/modules/helpers.rb +87 -0
  386. data/lib/pangea/components/siem_security_platform/modules/incident_response/branches.rb +78 -0
  387. data/lib/pangea/components/siem_security_platform/modules/incident_response/lambdas.rb +200 -0
  388. data/lib/pangea/components/siem_security_platform/modules/incident_response/state_machine.rb +157 -0
  389. data/lib/pangea/components/siem_security_platform/modules/incident_response.rb +84 -0
  390. data/lib/pangea/components/siem_security_platform/modules/ingestion/firehose_config.rb +84 -0
  391. data/lib/pangea/components/siem_security_platform/modules/ingestion/iam_policies.rb +109 -0
  392. data/lib/pangea/components/siem_security_platform/modules/ingestion.rb +85 -0
  393. data/lib/pangea/components/siem_security_platform/modules/integrations.rb +193 -0
  394. data/lib/pangea/components/siem_security_platform/modules/monitoring.rb +154 -0
  395. data/lib/pangea/components/siem_security_platform/modules/processing/code_generators.rb +159 -0
  396. data/lib/pangea/components/siem_security_platform/modules/processing.rb +181 -0
  397. data/lib/pangea/components/siem_security_platform/modules/security.rb +107 -0
  398. data/lib/pangea/components/siem_security_platform/modules/storage.rb +197 -0
  399. data/lib/pangea/components/siem_security_platform/modules/threat_detection.rb +135 -0
  400. data/lib/pangea/components/siem_security_platform/types/detection_configs.rb +73 -0
  401. data/lib/pangea/components/siem_security_platform/types/log_collection_configs.rb +55 -0
  402. data/lib/pangea/components/siem_security_platform/types/opensearch_config.rb +48 -0
  403. data/lib/pangea/components/siem_security_platform/types/operational_configs.rb +69 -0
  404. data/lib/pangea/components/siem_security_platform/types/response_configs.rb +68 -0
  405. data/lib/pangea/components/siem_security_platform/types/security_configs.rb +49 -0
  406. data/lib/pangea/components/siem_security_platform/types.rb +36 -174
  407. data/lib/pangea/components/spot_instance_carbon_optimizer/component.rb +54 -1560
  408. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/code_generators/carbon_monitor.rb +156 -0
  409. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/code_generators/fleet_optimizer.rb +148 -0
  410. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/code_generators/migration_orchestrator.rb +200 -0
  411. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/code_generators.rb +31 -0
  412. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/fleets.rb +112 -0
  413. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/functions.rb +103 -0
  414. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/helpers.rb +97 -0
  415. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/monitoring.rb +180 -0
  416. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/roles.rb +114 -0
  417. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/schedules.rb +68 -0
  418. data/lib/pangea/components/spot_instance_carbon_optimizer/modules/tables.rb +99 -0
  419. data/lib/pangea/components/spot_instance_carbon_optimizer/types/enums.rb +51 -0
  420. data/lib/pangea/components/spot_instance_carbon_optimizer/types/input.rb +109 -0
  421. data/lib/pangea/components/spot_instance_carbon_optimizer/types/output.rb +68 -0
  422. data/lib/pangea/components/spot_instance_carbon_optimizer/types.rb +6 -156
  423. data/lib/pangea/components/sustainable_ml_training/component.rb +52 -1676
  424. data/lib/pangea/components/sustainable_ml_training/modules/code_generators/carbon_scheduler.rb +151 -0
  425. data/lib/pangea/components/sustainable_ml_training/modules/code_generators/efficiency_monitor.rb +141 -0
  426. data/lib/pangea/components/sustainable_ml_training/modules/code_generators/training_optimizer.rb +151 -0
  427. data/lib/pangea/components/sustainable_ml_training/modules/code_generators.rb +31 -0
  428. data/lib/pangea/components/sustainable_ml_training/modules/compute.rb +98 -0
  429. data/lib/pangea/components/sustainable_ml_training/modules/functions.rb +101 -0
  430. data/lib/pangea/components/sustainable_ml_training/modules/helpers.rb +100 -0
  431. data/lib/pangea/components/sustainable_ml_training/modules/monitoring.rb +195 -0
  432. data/lib/pangea/components/sustainable_ml_training/modules/roles.rb +127 -0
  433. data/lib/pangea/components/sustainable_ml_training/modules/storage.rb +85 -0
  434. data/lib/pangea/components/sustainable_ml_training/modules/tables.rb +71 -0
  435. data/lib/pangea/components/sustainable_ml_training/modules/training.rb +83 -0
  436. data/lib/pangea/components/sustainable_ml_training/types/constants.rb +42 -0
  437. data/lib/pangea/components/sustainable_ml_training/types/enums.rb +56 -0
  438. data/lib/pangea/components/sustainable_ml_training/types/validations.rb +63 -0
  439. data/lib/pangea/components/sustainable_ml_training/types.rb +32 -94
  440. data/lib/pangea/components/threat_intelligence_platform/types/correlation_rule.rb +38 -0
  441. data/lib/pangea/components/threat_intelligence_platform/types/enrichment_source.rb +35 -0
  442. data/lib/pangea/components/threat_intelligence_platform/types/threat_feed.rb +37 -0
  443. data/lib/pangea/components/threat_intelligence_platform/types/threat_source.rb +48 -0
  444. data/lib/pangea/components/threat_intelligence_platform/types.rb +23 -69
  445. data/lib/pangea/components/web_security_group/component.rb +19 -103
  446. data/lib/pangea/components/web_security_group/rules.rb +136 -0
  447. data/lib/pangea/components/web_security_group/types/port_methods.rb +58 -0
  448. data/lib/pangea/components/web_security_group/types/rules_summary.rb +130 -0
  449. data/lib/pangea/components/web_security_group/types/security_analysis.rb +79 -0
  450. data/lib/pangea/components/web_security_group/types/validation.rb +67 -0
  451. data/lib/pangea/components/web_security_group/types.rb +12 -207
  452. data/lib/pangea/components/web_tier_subnets/component/outputs.rb +70 -0
  453. data/lib/pangea/components/web_tier_subnets/component.rb +7 -54
  454. data/lib/pangea/components/zero_trust_network/audit.rb +61 -0
  455. data/lib/pangea/components/zero_trust_network/compliance.rb +65 -0
  456. data/lib/pangea/components/zero_trust_network/component.rb +108 -608
  457. data/lib/pangea/components/zero_trust_network/endpoints.rb +46 -0
  458. data/lib/pangea/components/zero_trust_network/monitoring.rb +75 -0
  459. data/lib/pangea/components/zero_trust_network/networking.rb +43 -0
  460. data/lib/pangea/components/zero_trust_network/policies.rb +70 -0
  461. data/lib/pangea/components/zero_trust_network/security_automation.rb +130 -0
  462. data/lib/pangea/components/zero_trust_network/segments.rb +59 -0
  463. data/lib/pangea/components/zero_trust_network/threat_detection.rb +87 -0
  464. data/lib/pangea/configuration/config_loader.rb +86 -0
  465. data/lib/pangea/configuration/defaults.rb +58 -0
  466. data/lib/pangea/configuration/namespace_manager.rb +95 -0
  467. data/lib/pangea/configuration/types/backends.rb +95 -0
  468. data/lib/pangea/configuration/types/base.rb +33 -0
  469. data/lib/pangea/configuration/types/configuration_schema.rb +105 -0
  470. data/lib/pangea/configuration/types/settings.rb +56 -0
  471. data/lib/pangea/configuration/types/state.rb +91 -0
  472. data/lib/pangea/configuration/types.rb +6 -279
  473. data/lib/pangea/configuration.rb +28 -167
  474. data/lib/pangea/entities/namespace.rb +9 -1
  475. data/lib/pangea/errors.rb +76 -10
  476. data/lib/pangea/execution/terraform_command_builder.rb +87 -0
  477. data/lib/pangea/execution/terraform_command_executor.rb +152 -0
  478. data/lib/pangea/execution/terraform_executor.rb +58 -189
  479. data/lib/pangea/execution/terraform_operations.rb +91 -0
  480. data/lib/pangea/execution/terraform_output_parser.rb +129 -0
  481. data/lib/pangea/execution/terraform_retry.rb +99 -0
  482. data/lib/pangea/logging/formatters.rb +92 -0
  483. data/lib/pangea/logging/structured_logger.rb +195 -0
  484. data/lib/pangea/logging.rb +22 -0
  485. data/lib/pangea/resources/aws/cloudformation/types/stack_instances_attributes.rb +91 -0
  486. data/lib/pangea/resources/aws/cloudformation/types/stack_set_attributes.rb +150 -0
  487. data/lib/pangea/resources/aws/cloudformation/types/stack_set_instance_attributes.rb +96 -0
  488. data/lib/pangea/resources/aws/cloudformation/types/type_attributes.rb +102 -0
  489. data/lib/pangea/resources/aws/cloudformation/types.rb +15 -274
  490. data/lib/pangea/resources/aws/comprehendmedical/jobs/entities_detection_v2_job.rb +58 -0
  491. data/lib/pangea/resources/aws/comprehendmedical/jobs/icd10_cm_inference_job.rb +58 -0
  492. data/lib/pangea/resources/aws/comprehendmedical/jobs/job_builder.rb +77 -0
  493. data/lib/pangea/resources/aws/comprehendmedical/jobs/phi_detection_job.rb +58 -0
  494. data/lib/pangea/resources/aws/comprehendmedical/jobs/rx_norm_inference_job.rb +58 -0
  495. data/lib/pangea/resources/aws/comprehendmedical/jobs/snomed_ct_inference_job.rb +58 -0
  496. data/lib/pangea/resources/aws/comprehendmedical/jobs.rb +14 -290
  497. data/lib/pangea/resources/aws/ec2/access_control.rb +72 -0
  498. data/lib/pangea/resources/aws/ec2/account_settings.rb +57 -0
  499. data/lib/pangea/resources/aws/ec2/capacity.rb +87 -0
  500. data/lib/pangea/resources/aws/ec2/host.rb +57 -0
  501. data/lib/pangea/resources/aws/ec2/spot.rb +72 -0
  502. data/lib/pangea/resources/aws/ec2/transit_gateway_multicast.rb +72 -0
  503. data/lib/pangea/resources/aws/ec2.rb +25 -256
  504. data/lib/pangea/resources/aws/elasticache_extended.disabled/reserved_cache_node.rb +1 -1
  505. data/lib/pangea/resources/aws/elasticache_extended.disabled/serverless_cache.rb +3 -3
  506. data/lib/pangea/resources/aws/elasticache_extended.disabled/user_group.rb +1 -1
  507. data/lib/pangea/resources/aws/frauddetector/detector.rb +12 -190
  508. data/lib/pangea/resources/aws/frauddetector/entity_type.rb +65 -0
  509. data/lib/pangea/resources/aws/frauddetector/event_type.rb +84 -0
  510. data/lib/pangea/resources/aws/frauddetector/outcome.rb +66 -0
  511. data/lib/pangea/resources/aws/frauddetector/variable.rb +77 -0
  512. data/lib/pangea/resources/aws/gamelift/attributes.rb +104 -0
  513. data/lib/pangea/resources/aws/gamelift.rb +19 -98
  514. data/lib/pangea/resources/aws/gamesparks/types.rb +87 -0
  515. data/lib/pangea/resources/aws/gamesparks.rb +10 -103
  516. data/lib/pangea/resources/aws/healthlake/fhir_datastore.rb +4 -108
  517. data/lib/pangea/resources/aws/healthlake/fhir_export_job.rb +76 -0
  518. data/lib/pangea/resources/aws/healthlake/fhir_import_job.rb +82 -0
  519. data/lib/pangea/resources/aws/healthlake.rb +4 -0
  520. data/lib/pangea/resources/aws/load_balancing/classic_elb_dsl.rb +146 -0
  521. data/lib/pangea/resources/aws/load_balancing/modules/attachments.rb +65 -0
  522. data/lib/pangea/resources/aws/load_balancing/modules/policies.rb +85 -0
  523. data/lib/pangea/resources/aws/load_balancing/modules/trust_stores.rb +45 -0
  524. data/lib/pangea/resources/aws/load_balancing.rb +4 -122
  525. data/lib/pangea/resources/aws/lookout/equipment/dataset.rb +85 -0
  526. data/lib/pangea/resources/aws/lookout/equipment/inference_scheduler.rb +103 -0
  527. data/lib/pangea/resources/aws/lookout/equipment/model.rb +90 -0
  528. data/lib/pangea/resources/aws/lookout/equipment.rb +7 -197
  529. data/lib/pangea/resources/aws/opensearch.disabled/package.rb +1 -1
  530. data/lib/pangea/resources/aws/opensearch.disabled/serverless_collection.rb +1 -1
  531. data/lib/pangea/resources/aws/sfn_extended.disabled/activity.rb +1 -1
  532. data/lib/pangea/resources/aws/sumerian/attributes.rb +93 -0
  533. data/lib/pangea/resources/aws/sumerian.rb +14 -82
  534. data/lib/pangea/resources/aws/vpc/functions/defaults.rb +87 -0
  535. data/lib/pangea/resources/aws/vpc/functions/endpoints.rb +102 -0
  536. data/lib/pangea/resources/aws/vpc.rb +6 -136
  537. data/lib/pangea/resources/aws_acmpca_certificate_authority/types/attributes.rb +93 -0
  538. data/lib/pangea/resources/aws_acmpca_certificate_authority/types/helpers.rb +118 -0
  539. data/lib/pangea/resources/aws_acmpca_certificate_authority/types/templates.rb +140 -0
  540. data/lib/pangea/resources/aws_acmpca_certificate_authority/types/validators.rb +70 -0
  541. data/lib/pangea/resources/aws_acmpca_certificate_authority/types.rb +5 -328
  542. data/lib/pangea/resources/aws_alb_target_group_attachment/types.rb +1 -1
  543. data/lib/pangea/resources/aws_ami/types.rb +1 -1
  544. data/lib/pangea/resources/aws_api_gateway_api_key/types/configs.rb +125 -0
  545. data/lib/pangea/resources/aws_api_gateway_api_key/types.rb +96 -198
  546. data/lib/pangea/resources/aws_api_gateway_integration/types/factory_methods.rb +99 -0
  547. data/lib/pangea/resources/aws_api_gateway_integration/types/predicates.rb +57 -0
  548. data/lib/pangea/resources/aws_api_gateway_integration/types/uri_helpers.rb +58 -0
  549. data/lib/pangea/resources/aws_api_gateway_integration/types/validators.rb +98 -0
  550. data/lib/pangea/resources/aws_api_gateway_integration/types.rb +43 -202
  551. data/lib/pangea/resources/aws_api_gateway_rest_api/types.rb +1 -1
  552. data/lib/pangea/resources/aws_api_gateway_stage/resource/helpers/basic.rb +67 -0
  553. data/lib/pangea/resources/aws_api_gateway_stage/resource/helpers/configuration.rb +132 -0
  554. data/lib/pangea/resources/aws_api_gateway_stage/resource/helpers/method_settings.rb +88 -0
  555. data/lib/pangea/resources/aws_api_gateway_stage/resource/helpers.rb +47 -0
  556. data/lib/pangea/resources/aws_api_gateway_stage/resource/main.rb +127 -0
  557. data/lib/pangea/resources/aws_api_gateway_stage/resource.rb +13 -298
  558. data/lib/pangea/resources/aws_api_gateway_stage/types/helpers.rb +75 -0
  559. data/lib/pangea/resources/aws_api_gateway_stage/types/validators.rb +133 -0
  560. data/lib/pangea/resources/aws_api_gateway_stage/types.rb +36 -143
  561. data/lib/pangea/resources/aws_api_gateway_usage_plan/types/attributes.rb +64 -0
  562. data/lib/pangea/resources/aws_api_gateway_usage_plan/types/configs.rb +81 -0
  563. data/lib/pangea/resources/aws_api_gateway_usage_plan/types/helpers.rb +103 -0
  564. data/lib/pangea/resources/aws_api_gateway_usage_plan/types/settings.rb +53 -0
  565. data/lib/pangea/resources/aws_api_gateway_usage_plan/types/validation.rb +80 -0
  566. data/lib/pangea/resources/aws_api_gateway_usage_plan/types.rb +7 -295
  567. data/lib/pangea/resources/aws_appstream_fleet/types/attributes.rb +80 -0
  568. data/lib/pangea/resources/aws_appstream_fleet/types/cost_estimation.rb +54 -0
  569. data/lib/pangea/resources/aws_appstream_fleet/types/nested_types.rb +82 -0
  570. data/lib/pangea/resources/aws_appstream_fleet/types.rb +4 -218
  571. data/lib/pangea/resources/aws_athena_named_query/types/query_analysis.rb +148 -0
  572. data/lib/pangea/resources/aws_athena_named_query/types/query_templates.rb +88 -0
  573. data/lib/pangea/resources/aws_athena_named_query/types.rb +40 -208
  574. data/lib/pangea/resources/aws_athena_workgroup/types/attributes.rb +101 -0
  575. data/lib/pangea/resources/aws_athena_workgroup/types/class_methods.rb +102 -0
  576. data/lib/pangea/resources/aws_athena_workgroup/types/instance_methods.rb +104 -0
  577. data/lib/pangea/resources/aws_athena_workgroup/types/validation.rb +56 -0
  578. data/lib/pangea/resources/aws_athena_workgroup/types.rb +5 -235
  579. data/lib/pangea/resources/aws_autoscaling_group/types/auto_scaling_tag.rb +42 -0
  580. data/lib/pangea/resources/aws_autoscaling_group/types/instance_refresh_preferences.rb +39 -0
  581. data/lib/pangea/resources/aws_autoscaling_group/types/launch_template_specification.rb +57 -0
  582. data/lib/pangea/resources/aws_autoscaling_group/types.rb +90 -141
  583. data/lib/pangea/resources/aws_autoscaling_group_tag/types.rb +1 -1
  584. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/types.rb +1 -1
  585. data/lib/pangea/resources/aws_autoscaling_notification/types.rb +1 -1
  586. data/lib/pangea/resources/aws_autoscaling_policy/types/predictive_scaling_configuration.rb +42 -0
  587. data/lib/pangea/resources/aws_autoscaling_policy/types/step_adjustment.rb +38 -0
  588. data/lib/pangea/resources/aws_autoscaling_policy/types/target_tracking_configuration.rb +89 -0
  589. data/lib/pangea/resources/aws_autoscaling_policy/types.rb +88 -151
  590. data/lib/pangea/resources/aws_autoscaling_policy_step_adjustment/types.rb +1 -1
  591. data/lib/pangea/resources/aws_autoscaling_policy_target_tracking_scaling_policy/types.rb +1 -1
  592. data/lib/pangea/resources/aws_autoscaling_schedule/types.rb +1 -1
  593. data/lib/pangea/resources/aws_autoscaling_tag/types/tag_queries.rb +121 -0
  594. data/lib/pangea/resources/aws_autoscaling_tag/types/tag_specification.rb +42 -0
  595. data/lib/pangea/resources/aws_autoscaling_tag/types/tag_validator.rb +103 -0
  596. data/lib/pangea/resources/aws_autoscaling_tag/types.rb +13 -186
  597. data/lib/pangea/resources/aws_autoscaling_traffic_source_attachment/types.rb +1 -1
  598. data/lib/pangea/resources/aws_autoscaling_warm_pool/types.rb +1 -1
  599. data/lib/pangea/resources/aws_batch_compute_environment/types/attributes.rb +88 -0
  600. data/lib/pangea/resources/aws_batch_compute_environment/types/helpers.rb +54 -0
  601. data/lib/pangea/resources/aws_batch_compute_environment/types/templates.rb +153 -0
  602. data/lib/pangea/resources/aws_batch_compute_environment/types/validators.rb +144 -0
  603. data/lib/pangea/resources/aws_batch_compute_environment/types.rb +5 -314
  604. data/lib/pangea/resources/aws_batch_job_definition/resource.rb +21 -189
  605. data/lib/pangea/resources/aws_batch_job_definition/synthesis/synthesizer.rb +144 -0
  606. data/lib/pangea/resources/aws_batch_job_definition/types/computed.rb +60 -0
  607. data/lib/pangea/resources/aws_batch_job_definition/types/configurations.rb +75 -0
  608. data/lib/pangea/resources/aws_batch_job_definition/types/templates.rb +156 -0
  609. data/lib/pangea/resources/aws_batch_job_definition/types/validation.rb +154 -0
  610. data/lib/pangea/resources/aws_batch_job_definition/types.rb +31 -502
  611. data/lib/pangea/resources/aws_batch_job_queue/types/attributes.rb +75 -0
  612. data/lib/pangea/resources/aws_batch_job_queue/types/templates.rb +132 -0
  613. data/lib/pangea/resources/aws_batch_job_queue/types.rb +6 -359
  614. data/lib/pangea/resources/aws_blockchain_query/types/attributes.rb +75 -0
  615. data/lib/pangea/resources/aws_blockchain_query/types/helpers.rb +187 -0
  616. data/lib/pangea/resources/aws_blockchain_query/types/validators.rb +95 -0
  617. data/lib/pangea/resources/aws_blockchain_query/types.rb +4 -324
  618. data/lib/pangea/resources/aws_blockchain_token_balance/types/attributes.rb +71 -0
  619. data/lib/pangea/resources/aws_blockchain_token_balance/types/network_helpers.rb +83 -0
  620. data/lib/pangea/resources/aws_blockchain_token_balance/types/query_helpers.rb +94 -0
  621. data/lib/pangea/resources/aws_blockchain_token_balance/types/token_helpers.rb +89 -0
  622. data/lib/pangea/resources/aws_blockchain_token_balance/types/validation.rb +86 -0
  623. data/lib/pangea/resources/aws_blockchain_token_balance/types.rb +6 -302
  624. data/lib/pangea/resources/aws_braket_device/types/helpers.rb +113 -0
  625. data/lib/pangea/resources/aws_braket_device/types/validations.rb +80 -0
  626. data/lib/pangea/resources/aws_braket_device/types.rb +73 -203
  627. data/lib/pangea/resources/aws_braket_device_capabilities/types/capability_support.rb +60 -0
  628. data/lib/pangea/resources/aws_braket_device_capabilities/types/device_classification.rb +66 -0
  629. data/lib/pangea/resources/aws_braket_device_capabilities/types/device_specs.rb +93 -0
  630. data/lib/pangea/resources/aws_braket_device_capabilities/types/execution_params.rb +60 -0
  631. data/lib/pangea/resources/aws_braket_device_capabilities/types.rb +47 -220
  632. data/lib/pangea/resources/aws_braket_job/types/attributes.rb +81 -0
  633. data/lib/pangea/resources/aws_braket_job/types/constants.rb +43 -0
  634. data/lib/pangea/resources/aws_braket_job/types/instance_methods.rb +71 -0
  635. data/lib/pangea/resources/aws_braket_job/types/validation.rb +69 -0
  636. data/lib/pangea/resources/aws_braket_job/types.rb +5 -260
  637. data/lib/pangea/resources/aws_braket_job_queue/types/cost_estimation.rb +64 -0
  638. data/lib/pangea/resources/aws_braket_job_queue/types/helpers.rb +100 -0
  639. data/lib/pangea/resources/aws_braket_job_queue/types/validators.rb +72 -0
  640. data/lib/pangea/resources/aws_braket_job_queue/types.rb +46 -206
  641. data/lib/pangea/resources/aws_braket_local_simulator/types/helpers.rb +143 -0
  642. data/lib/pangea/resources/aws_braket_local_simulator/types/validators.rb +91 -0
  643. data/lib/pangea/resources/aws_braket_local_simulator/types.rb +64 -263
  644. data/lib/pangea/resources/aws_budgets_budget/types/attributes.rb +68 -0
  645. data/lib/pangea/resources/aws_budgets_budget/types/enums.rb +60 -0
  646. data/lib/pangea/resources/aws_budgets_budget/types/helpers.rb +122 -0
  647. data/lib/pangea/resources/aws_budgets_budget/types/schemas.rb +175 -0
  648. data/lib/pangea/resources/aws_budgets_budget/types.rb +5 -319
  649. data/lib/pangea/resources/aws_budgets_budget_action/types/attributes.rb +104 -0
  650. data/lib/pangea/resources/aws_budgets_budget_action/types/definitions.rb +53 -0
  651. data/lib/pangea/resources/aws_budgets_budget_action/types.rb +6 -404
  652. data/lib/pangea/resources/aws_ce_cost_category/expression_builder.rb +84 -0
  653. data/lib/pangea/resources/aws_ce_cost_category/resource.rb +2 -54
  654. data/lib/pangea/resources/aws_ce_cost_category/types/attributes.rb +152 -0
  655. data/lib/pangea/resources/aws_ce_cost_category/types/expressions.rb +157 -0
  656. data/lib/pangea/resources/aws_ce_cost_category/types.rb +5 -386
  657. data/lib/pangea/resources/aws_cloudformation_stack/types/configs.rb +91 -0
  658. data/lib/pangea/resources/aws_cloudformation_stack/types/instance_methods.rb +79 -0
  659. data/lib/pangea/resources/aws_cloudformation_stack/types/validation.rb +88 -0
  660. data/lib/pangea/resources/aws_cloudformation_stack/types.rb +47 -206
  661. data/lib/pangea/resources/aws_cloudformation_stack_set/types/configs.rb +120 -0
  662. data/lib/pangea/resources/aws_cloudformation_stack_set/types/helpers.rb +89 -0
  663. data/lib/pangea/resources/aws_cloudformation_stack_set/types/validators.rb +120 -0
  664. data/lib/pangea/resources/aws_cloudformation_stack_set/types.rb +73 -283
  665. data/lib/pangea/resources/aws_cloudfront_distribution/builders/cache_behavior_builder.rb +86 -0
  666. data/lib/pangea/resources/aws_cloudfront_distribution/builders/origin_builder.rb +81 -0
  667. data/lib/pangea/resources/aws_cloudfront_distribution/builders/reference_builder.rb +62 -0
  668. data/lib/pangea/resources/aws_cloudfront_distribution/builders/settings_builder.rb +81 -0
  669. data/lib/pangea/resources/aws_cloudfront_distribution/resource.rb +23 -213
  670. data/lib/pangea/resources/aws_cloudfront_distribution/types/attributes.rb +47 -0
  671. data/lib/pangea/resources/aws_cloudfront_distribution/types/instance_methods.rb +59 -0
  672. data/lib/pangea/resources/aws_cloudfront_distribution/types/validation.rb +55 -0
  673. data/lib/pangea/resources/aws_cloudfront_distribution/types.rb +6 -402
  674. data/lib/pangea/resources/aws_cloudfront_response_headers_policy/types/attributes.rb +153 -0
  675. data/lib/pangea/resources/aws_cloudfront_response_headers_policy/types/configs.rb +81 -0
  676. data/lib/pangea/resources/aws_cloudfront_response_headers_policy/types.rb +6 -373
  677. data/lib/pangea/resources/aws_cloudtrail/types/attributes.rb +92 -0
  678. data/lib/pangea/resources/aws_cloudtrail/types/configs.rb +87 -0
  679. data/lib/pangea/resources/aws_cloudtrail/types/selectors.rb +42 -0
  680. data/lib/pangea/resources/aws_cloudtrail/types.rb +9 -352
  681. data/lib/pangea/resources/aws_cloudwatch_dashboard/types/cloudwatch_dashboard_attributes.rb +158 -0
  682. data/lib/pangea/resources/aws_cloudwatch_dashboard/types/dashboard_metric.rb +57 -0
  683. data/lib/pangea/resources/aws_cloudwatch_dashboard/types/dashboard_widget.rb +83 -0
  684. data/lib/pangea/resources/aws_cloudwatch_dashboard/types/dashboard_widget_properties.rb +75 -0
  685. data/lib/pangea/resources/aws_cloudwatch_dashboard/types.rb +6 -283
  686. data/lib/pangea/resources/aws_cloudwatch_event_target/resource.rb +51 -136
  687. data/lib/pangea/resources/aws_cloudwatch_event_target/target_builders.rb +97 -0
  688. data/lib/pangea/resources/aws_cloudwatch_event_target/types/dead_letter_config.rb +36 -0
  689. data/lib/pangea/resources/aws_cloudwatch_event_target/types/input_transformer.rb +40 -0
  690. data/lib/pangea/resources/aws_cloudwatch_event_target/types/retry_policy.rb +40 -0
  691. data/lib/pangea/resources/aws_cloudwatch_event_target/types/target_service_detection.rb +80 -0
  692. data/lib/pangea/resources/aws_cloudwatch_event_target/types/validators.rb +66 -0
  693. data/lib/pangea/resources/aws_cloudwatch_event_target/types.rb +60 -144
  694. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/types/instance_methods.rb +94 -0
  695. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/types/metric_query.rb +71 -0
  696. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/types/validation.rb +83 -0
  697. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/types.rb +36 -179
  698. data/lib/pangea/resources/aws_codeartifact_repository/types.rb +1 -1
  699. data/lib/pangea/resources/aws_codebuild_project/block_builders.rb +163 -0
  700. data/lib/pangea/resources/aws_codebuild_project/resource.rb +21 -154
  701. data/lib/pangea/resources/aws_codebuild_project/types/instance_methods.rb +74 -0
  702. data/lib/pangea/resources/aws_codebuild_project/types/schemas.rb +155 -0
  703. data/lib/pangea/resources/aws_codebuild_project/types/validation.rb +88 -0
  704. data/lib/pangea/resources/aws_codebuild_project/types.rb +58 -238
  705. data/lib/pangea/resources/aws_codecommit_repository/types.rb +2 -2
  706. data/lib/pangea/resources/aws_codedeploy_application/types.rb +1 -1
  707. data/lib/pangea/resources/aws_codedeploy_deployment_config/types.rb +1 -1
  708. data/lib/pangea/resources/aws_codedeploy_deployment_group/block_builders.rb +104 -0
  709. data/lib/pangea/resources/aws_codedeploy_deployment_group/resource.rb +5 -70
  710. data/lib/pangea/resources/aws_codedeploy_deployment_group/types/deployment.rb +65 -0
  711. data/lib/pangea/resources/aws_codedeploy_deployment_group/types/helpers.rb +85 -0
  712. data/lib/pangea/resources/aws_codedeploy_deployment_group/types/infrastructure.rb +78 -0
  713. data/lib/pangea/resources/aws_codedeploy_deployment_group/types/tag_filters.rb +43 -0
  714. data/lib/pangea/resources/aws_codedeploy_deployment_group/types.rb +55 -208
  715. data/lib/pangea/resources/aws_codepipeline/types/attributes.rb +130 -0
  716. data/lib/pangea/resources/aws_codepipeline/types/instance_methods.rb +85 -0
  717. data/lib/pangea/resources/aws_codepipeline/types/validation.rb +64 -0
  718. data/lib/pangea/resources/aws_codepipeline/types.rb +5 -194
  719. data/lib/pangea/resources/aws_codepipeline_webhook/types.rb +2 -2
  720. data/lib/pangea/resources/aws_cognito_identity_pool/types/attributes.rb +105 -0
  721. data/lib/pangea/resources/aws_cognito_identity_pool/types/providers.rb +38 -0
  722. data/lib/pangea/resources/aws_cognito_identity_pool/types/templates.rb +75 -0
  723. data/lib/pangea/resources/aws_cognito_identity_pool/types.rb +5 -340
  724. data/lib/pangea/resources/aws_cognito_identity_provider/types/attributes.rb +61 -0
  725. data/lib/pangea/resources/aws_cognito_identity_provider/types/templates.rb +69 -0
  726. data/lib/pangea/resources/aws_cognito_identity_provider/types/validation.rb +66 -0
  727. data/lib/pangea/resources/aws_cognito_identity_provider/types.rb +4 -476
  728. data/lib/pangea/resources/aws_cognito_user_pool/resource/dsl_builder/authentication_config.rb +63 -0
  729. data/lib/pangea/resources/aws_cognito_user_pool/resource/dsl_builder/messaging_config.rb +73 -0
  730. data/lib/pangea/resources/aws_cognito_user_pool/resource/dsl_builder/mfa_config.rb +57 -0
  731. data/lib/pangea/resources/aws_cognito_user_pool/resource/dsl_builder/schema_and_settings.rb +146 -0
  732. data/lib/pangea/resources/aws_cognito_user_pool/resource/dsl_builder.rb +42 -0
  733. data/lib/pangea/resources/aws_cognito_user_pool/resource.rb +49 -204
  734. data/lib/pangea/resources/aws_cognito_user_pool/types/attributes.rb +87 -0
  735. data/lib/pangea/resources/aws_cognito_user_pool/types/nested_types.rb +112 -0
  736. data/lib/pangea/resources/aws_cognito_user_pool/types/templates.rb +57 -0
  737. data/lib/pangea/resources/aws_cognito_user_pool/types.rb +8 -347
  738. data/lib/pangea/resources/aws_cognito_user_pool_client/types/attributes.rb +109 -0
  739. data/lib/pangea/resources/aws_cognito_user_pool_client/types/nested_types.rb +27 -0
  740. data/lib/pangea/resources/aws_cognito_user_pool_client/types/templates.rb +85 -0
  741. data/lib/pangea/resources/aws_cognito_user_pool_client/types.rb +8 -382
  742. data/lib/pangea/resources/aws_cognito_user_pool_domain/types/attributes.rb +124 -0
  743. data/lib/pangea/resources/aws_cognito_user_pool_domain/types/templates.rb +84 -0
  744. data/lib/pangea/resources/aws_cognito_user_pool_domain/types/validation.rb +73 -0
  745. data/lib/pangea/resources/aws_cognito_user_pool_domain/types.rb +4 -237
  746. data/lib/pangea/resources/aws_config_config_rule/types/cost_estimator.rb +77 -0
  747. data/lib/pangea/resources/aws_config_config_rule/types/validators.rb +94 -0
  748. data/lib/pangea/resources/aws_config_config_rule/types.rb +22 -150
  749. data/lib/pangea/resources/aws_config_remediation_configuration/types.rb +1 -1
  750. data/lib/pangea/resources/aws_customer_gateway/types.rb +1 -1
  751. data/lib/pangea/resources/aws_db_cluster_snapshot/types/configs.rb +117 -0
  752. data/lib/pangea/resources/aws_db_cluster_snapshot/types.rb +2 -96
  753. data/lib/pangea/resources/aws_db_instance/types/backup_attributes.rb +38 -0
  754. data/lib/pangea/resources/aws_db_instance/types/core_attributes.rb +60 -0
  755. data/lib/pangea/resources/aws_db_instance/types/engine_configs.rb +68 -0
  756. data/lib/pangea/resources/aws_db_instance/types/helpers.rb +92 -0
  757. data/lib/pangea/resources/aws_db_instance/types/monitoring_attributes.rb +38 -0
  758. data/lib/pangea/resources/aws_db_instance/types/network_attributes.rb +44 -0
  759. data/lib/pangea/resources/aws_db_instance/types/options_attributes.rb +44 -0
  760. data/lib/pangea/resources/aws_db_instance/types/storage_attributes.rb +44 -0
  761. data/lib/pangea/resources/aws_db_instance/types/validations.rb +85 -0
  762. data/lib/pangea/resources/aws_db_instance/types.rb +38 -228
  763. data/lib/pangea/resources/aws_db_parameter_group/types/db_parameter.rb +57 -0
  764. data/lib/pangea/resources/aws_db_parameter_group/types/db_parameter_configs.rb +82 -0
  765. data/lib/pangea/resources/aws_db_parameter_group/types/parameter_validators.rb +73 -0
  766. data/lib/pangea/resources/aws_db_parameter_group/types.rb +121 -259
  767. data/lib/pangea/resources/aws_db_snapshot/types.rb +1 -1
  768. data/lib/pangea/resources/aws_db_subnet_group/types.rb +1 -1
  769. data/lib/pangea/resources/aws_default_network_acl/types.rb +1 -1
  770. data/lib/pangea/resources/aws_default_route_table/types.rb +1 -1
  771. data/lib/pangea/resources/aws_default_security_group/types.rb +1 -1
  772. data/lib/pangea/resources/aws_default_vpc_dhcp_options/types.rb +1 -1
  773. data/lib/pangea/resources/aws_docdb_certificate/types.rb +1 -1
  774. data/lib/pangea/resources/aws_docdb_cluster/types.rb +1 -1
  775. data/lib/pangea/resources/aws_docdb_cluster_endpoint/types.rb +1 -1
  776. data/lib/pangea/resources/aws_docdb_cluster_instance/types.rb +1 -1
  777. data/lib/pangea/resources/aws_docdb_cluster_parameter_group/types.rb +1 -1
  778. data/lib/pangea/resources/aws_docdb_cluster_snapshot/types.rb +1 -1
  779. data/lib/pangea/resources/aws_docdb_event_subscription/types.rb +1 -1
  780. data/lib/pangea/resources/aws_docdb_global_cluster/types.rb +1 -1
  781. data/lib/pangea/resources/aws_docdb_subnet_group/types.rb +1 -1
  782. data/lib/pangea/resources/aws_dynamodb_global_table/types/configs.rb +105 -0
  783. data/lib/pangea/resources/aws_dynamodb_global_table/types/instance_methods.rb +68 -0
  784. data/lib/pangea/resources/aws_dynamodb_global_table/types.rb +87 -234
  785. data/lib/pangea/resources/aws_dynamodb_table/builders/config_builder.rb +153 -0
  786. data/lib/pangea/resources/aws_dynamodb_table/builders/index_builder.rb +62 -0
  787. data/lib/pangea/resources/aws_dynamodb_table/builders/reference_builder.rb +64 -0
  788. data/lib/pangea/resources/aws_dynamodb_table/builders/table_builder.rb +62 -0
  789. data/lib/pangea/resources/aws_dynamodb_table/resource.rb +8 -186
  790. data/lib/pangea/resources/aws_dynamodb_table/types/attributes.rb +150 -0
  791. data/lib/pangea/resources/aws_dynamodb_table/types/configs.rb +109 -0
  792. data/lib/pangea/resources/aws_dynamodb_table/types/instance_methods.rb +82 -0
  793. data/lib/pangea/resources/aws_dynamodb_table/types/validations.rb +131 -0
  794. data/lib/pangea/resources/aws_dynamodb_table/types.rb +5 -381
  795. data/lib/pangea/resources/aws_ebs_volume/types/attributes.rb +76 -0
  796. data/lib/pangea/resources/aws_ebs_volume/types/instance_methods.rb +121 -0
  797. data/lib/pangea/resources/aws_ebs_volume/types/validation.rb +114 -0
  798. data/lib/pangea/resources/aws_ebs_volume/types.rb +7 -228
  799. data/lib/pangea/resources/aws_ec2_ami_launch_permission/types.rb +1 -1
  800. data/lib/pangea/resources/aws_ec2_availability_zone_group/types.rb +1 -1
  801. data/lib/pangea/resources/aws_ec2_capacity_block_reservation/types.rb +1 -1
  802. data/lib/pangea/resources/aws_ec2_capacity_reservation/types.rb +1 -1
  803. data/lib/pangea/resources/aws_ec2_dedicated_host/types.rb +1 -1
  804. data/lib/pangea/resources/aws_ec2_fleet/types.rb +1 -1
  805. data/lib/pangea/resources/aws_ec2_host_resource_group_association/types.rb +1 -1
  806. data/lib/pangea/resources/aws_ec2_image_block_public_access/types.rb +1 -1
  807. data/lib/pangea/resources/aws_ec2_instance_metadata_defaults/types.rb +1 -1
  808. data/lib/pangea/resources/aws_ec2_serial_console_access/types.rb +1 -1
  809. data/lib/pangea/resources/aws_ec2_snapshot_block_public_access/types.rb +1 -1
  810. data/lib/pangea/resources/aws_ec2_spot_datafeed_subscription/types.rb +1 -1
  811. data/lib/pangea/resources/aws_ec2_spot_fleet_request/types.rb +1 -1
  812. data/lib/pangea/resources/aws_ec2_spot_instance_request/types.rb +1 -1
  813. data/lib/pangea/resources/aws_ec2_tag/types.rb +1 -1
  814. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain/types.rb +1 -1
  815. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_domain_association/types.rb +1 -1
  816. data/lib/pangea/resources/aws_ec2_transit_gateway_multicast_group_member/types.rb +1 -1
  817. data/lib/pangea/resources/aws_ec2_transit_gateway_route/types/network_analysis.rb +91 -0
  818. data/lib/pangea/resources/aws_ec2_transit_gateway_route/types/security_analysis.rb +144 -0
  819. data/lib/pangea/resources/aws_ec2_transit_gateway_route/types.rb +41 -190
  820. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/types/propagation_insights.rb +100 -0
  821. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/types/security_concerns.rb +67 -0
  822. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/types/troubleshooting_support.rb +68 -0
  823. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/types.rb +14 -169
  824. data/lib/pangea/resources/aws_ecr_lifecycle_policy/types/computed.rb +110 -0
  825. data/lib/pangea/resources/aws_ecr_lifecycle_policy/types/validation.rb +69 -0
  826. data/lib/pangea/resources/aws_ecr_lifecycle_policy/types.rb +42 -167
  827. data/lib/pangea/resources/aws_ecr_repository/types.rb +1 -1
  828. data/lib/pangea/resources/aws_ecs_capacity_provider/types.rb +1 -1
  829. data/lib/pangea/resources/aws_ecs_cluster/types.rb +1 -1
  830. data/lib/pangea/resources/aws_ecs_service/dsl_builders.rb +193 -0
  831. data/lib/pangea/resources/aws_ecs_service/reference_builder.rb +53 -0
  832. data/lib/pangea/resources/aws_ecs_service/resource.rb +21 -201
  833. data/lib/pangea/resources/aws_ecs_service/types/attributes.rb +56 -0
  834. data/lib/pangea/resources/aws_ecs_service/types/helpers.rb +34 -0
  835. data/lib/pangea/resources/aws_ecs_service/types/nested.rb +74 -0
  836. data/lib/pangea/resources/aws_ecs_service/types.rb +4 -324
  837. data/lib/pangea/resources/aws_ecs_task_definition/container_definitions.rb +191 -0
  838. data/lib/pangea/resources/aws_ecs_task_definition/resource.rb +107 -255
  839. data/lib/pangea/resources/aws_ecs_task_definition/types/container_definition.rb +121 -0
  840. data/lib/pangea/resources/aws_ecs_task_definition/types/task_definition.rb +100 -0
  841. data/lib/pangea/resources/aws_ecs_task_definition/types.rb +6 -427
  842. data/lib/pangea/resources/aws_ecs_task_definition/volumes.rb +105 -0
  843. data/lib/pangea/resources/aws_eip/types.rb +1 -1
  844. data/lib/pangea/resources/aws_eip_association/types.rb +1 -1
  845. data/lib/pangea/resources/aws_eks_access_entry/types.rb +1 -1
  846. data/lib/pangea/resources/aws_eks_node_group/builders/dsl_builder.rb +108 -0
  847. data/lib/pangea/resources/aws_eks_node_group/builders/reference_builder.rb +76 -0
  848. data/lib/pangea/resources/aws_eks_node_group/resource.rb +7 -114
  849. data/lib/pangea/resources/aws_eks_node_group/types/eks_node_group_attributes.rb +132 -0
  850. data/lib/pangea/resources/aws_eks_node_group/types/launch_template.rb +58 -0
  851. data/lib/pangea/resources/aws_eks_node_group/types/remote_access.rb +41 -0
  852. data/lib/pangea/resources/aws_eks_node_group/types/scaling_config.rb +62 -0
  853. data/lib/pangea/resources/aws_eks_node_group/types/taint.rb +43 -0
  854. data/lib/pangea/resources/aws_eks_node_group/types/update_config.rb +54 -0
  855. data/lib/pangea/resources/aws_eks_node_group/types.rb +8 -242
  856. data/lib/pangea/resources/aws_elasticache_cluster/types/configs.rb +69 -0
  857. data/lib/pangea/resources/aws_elasticache_cluster/types/helpers.rb +97 -0
  858. data/lib/pangea/resources/aws_elasticache_cluster/types/node_types.rb +51 -0
  859. data/lib/pangea/resources/aws_elasticache_cluster/types/validators.rb +114 -0
  860. data/lib/pangea/resources/aws_elasticache_cluster/types.rb +29 -196
  861. data/lib/pangea/resources/aws_elasticache_parameter_group/types/attributes.rb +132 -0
  862. data/lib/pangea/resources/aws_elasticache_parameter_group/types/configs.rb +102 -0
  863. data/lib/pangea/resources/aws_elasticache_parameter_group/types/parameter_helpers.rb +133 -0
  864. data/lib/pangea/resources/aws_elasticache_parameter_group/types.rb +4 -279
  865. data/lib/pangea/resources/aws_elasticache_subnet_group/types.rb +1 -1
  866. data/lib/pangea/resources/aws_elb_attachment/types.rb +1 -1
  867. data/lib/pangea/resources/aws_elb_service_account/types.rb +1 -1
  868. data/lib/pangea/resources/aws_elemental_data_plane_channel/types.rb +2 -2
  869. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder/auto_scaling.rb +93 -0
  870. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder/cluster_settings.rb +106 -0
  871. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder/configurations.rb +75 -0
  872. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder/ec2_attributes.rb +56 -0
  873. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder/instance_groups.rb +101 -0
  874. data/lib/pangea/resources/aws_emr_cluster/resource/dsl_builder.rb +44 -0
  875. data/lib/pangea/resources/aws_emr_cluster/resource.rb +63 -279
  876. data/lib/pangea/resources/aws_emr_cluster/types/attributes.rb +97 -0
  877. data/lib/pangea/resources/aws_emr_cluster/types/class_methods.rb +114 -0
  878. data/lib/pangea/resources/aws_emr_cluster/types/instance_methods.rb +113 -0
  879. data/lib/pangea/resources/aws_emr_cluster/types/validation.rb +51 -0
  880. data/lib/pangea/resources/aws_emr_cluster/types.rb +5 -480
  881. data/lib/pangea/resources/aws_emr_instance_group/types/attributes.rb +90 -0
  882. data/lib/pangea/resources/aws_emr_instance_group/types/configs.rb +63 -0
  883. data/lib/pangea/resources/aws_emr_instance_group/types.rb +6 -408
  884. data/lib/pangea/resources/aws_emr_step/types/attributes.rb +92 -0
  885. data/lib/pangea/resources/aws_emr_step/types/step_builders.rb +90 -0
  886. data/lib/pangea/resources/aws_emr_step/types.rb +6 -377
  887. data/lib/pangea/resources/aws_eventbridge_bus/types.rb +1 -1
  888. data/lib/pangea/resources/aws_eventbridge_rule/types/attributes.rb +80 -0
  889. data/lib/pangea/resources/aws_eventbridge_rule/types/helpers.rb +101 -0
  890. data/lib/pangea/resources/aws_eventbridge_rule/types/templates.rb +131 -0
  891. data/lib/pangea/resources/aws_eventbridge_rule/types/validators.rb +87 -0
  892. data/lib/pangea/resources/aws_eventbridge_rule/types.rb +5 -313
  893. data/lib/pangea/resources/aws_eventbridge_target/batch_target_builder.rb +48 -0
  894. data/lib/pangea/resources/aws_eventbridge_target/ecs_target_builder.rb +101 -0
  895. data/lib/pangea/resources/aws_eventbridge_target/resource.rb +4 -76
  896. data/lib/pangea/resources/aws_eventbridge_target/types/attributes.rb +115 -0
  897. data/lib/pangea/resources/aws_eventbridge_target/types/configs.rb +75 -0
  898. data/lib/pangea/resources/aws_eventbridge_target/types/parameters.rb +58 -0
  899. data/lib/pangea/resources/aws_eventbridge_target/types.rb +4 -466
  900. data/lib/pangea/resources/aws_fsx_lustre_filesystem/types/helpers.rb +101 -0
  901. data/lib/pangea/resources/aws_fsx_lustre_filesystem/types.rb +61 -164
  902. data/lib/pangea/resources/aws_glue_catalog_table/types/format_helpers.rb +80 -0
  903. data/lib/pangea/resources/aws_glue_catalog_table/types/storage_descriptor.rb +60 -0
  904. data/lib/pangea/resources/aws_glue_catalog_table/types/table_helpers.rb +95 -0
  905. data/lib/pangea/resources/aws_glue_catalog_table/types/validators.rb +72 -0
  906. data/lib/pangea/resources/aws_glue_catalog_table/types.rb +55 -248
  907. data/lib/pangea/resources/aws_glue_job/types/attributes.rb +99 -0
  908. data/lib/pangea/resources/aws_glue_job/types/class_methods.rb +86 -0
  909. data/lib/pangea/resources/aws_glue_job/types/instance_methods.rb +97 -0
  910. data/lib/pangea/resources/aws_glue_job/types/validation.rb +68 -0
  911. data/lib/pangea/resources/aws_glue_job/types.rb +5 -268
  912. data/lib/pangea/resources/aws_glue_trigger/types/attributes.rb +91 -0
  913. data/lib/pangea/resources/aws_glue_trigger/types/helpers/class_methods.rb +109 -0
  914. data/lib/pangea/resources/aws_glue_trigger/types/helpers/instance_methods.rb +140 -0
  915. data/lib/pangea/resources/aws_glue_trigger/types/helpers.rb +35 -0
  916. data/lib/pangea/resources/aws_glue_trigger/types/validation.rb +97 -0
  917. data/lib/pangea/resources/aws_glue_trigger/types.rb +9 -306
  918. data/lib/pangea/resources/aws_ground_station/config.rb +145 -0
  919. data/lib/pangea/resources/aws_ground_station/contact.rb +48 -0
  920. data/lib/pangea/resources/aws_ground_station/dataflow_endpoint_group.rb +46 -0
  921. data/lib/pangea/resources/aws_ground_station/mission_profile.rb +50 -0
  922. data/lib/pangea/resources/aws_ground_station.rb +15 -362
  923. data/lib/pangea/resources/aws_iam_group/types/access_patterns.rb +82 -0
  924. data/lib/pangea/resources/aws_iam_group/types/attributes.rb +97 -0
  925. data/lib/pangea/resources/aws_iam_group/types/group_classification.rb +132 -0
  926. data/lib/pangea/resources/aws_iam_group/types/patterns.rb +96 -0
  927. data/lib/pangea/resources/aws_iam_group/types.rb +10 -394
  928. data/lib/pangea/resources/aws_iam_policy/types/attributes.rb +117 -0
  929. data/lib/pangea/resources/aws_iam_policy/types/templates.rb +56 -0
  930. data/lib/pangea/resources/aws_iam_policy/types.rb +7 -346
  931. data/lib/pangea/resources/aws_iam_role/types/trust_policies.rb +90 -0
  932. data/lib/pangea/resources/aws_iam_role/types.rb +103 -174
  933. data/lib/pangea/resources/aws_iam_role_policy_attachment/types/attachment_patterns.rb +75 -0
  934. data/lib/pangea/resources/aws_iam_role_policy_attachment/types/aws_managed_policies.rb +93 -0
  935. data/lib/pangea/resources/aws_iam_role_policy_attachment/types.rb +101 -222
  936. data/lib/pangea/resources/aws_iam_user/types/attributes.rb +45 -0
  937. data/lib/pangea/resources/aws_iam_user/types/helpers.rb +123 -0
  938. data/lib/pangea/resources/aws_iam_user/types/templates.rb +147 -0
  939. data/lib/pangea/resources/aws_iam_user/types/validators.rb +68 -0
  940. data/lib/pangea/resources/aws_iam_user/types.rb +5 -323
  941. data/lib/pangea/resources/aws_instance/types.rb +1 -1
  942. data/lib/pangea/resources/aws_internet_gateway/resource.rb +3 -9
  943. data/lib/pangea/resources/aws_iot_analytics_channel/types.rb +1 -1
  944. data/lib/pangea/resources/aws_iot_analytics_datastore/types.rb +1 -1
  945. data/lib/pangea/resources/aws_iot_certificate/types/helpers.rb +164 -0
  946. data/lib/pangea/resources/aws_iot_certificate/types/validators.rb +84 -0
  947. data/lib/pangea/resources/aws_iot_certificate/types.rb +46 -208
  948. data/lib/pangea/resources/aws_iot_device_defender_security_profile/types.rb +3 -3
  949. data/lib/pangea/resources/aws_iot_policy/types.rb +1 -1
  950. data/lib/pangea/resources/aws_iot_security_profile/types.rb +2 -2
  951. data/lib/pangea/resources/aws_iot_thing_type/types/analysis.rb +107 -0
  952. data/lib/pangea/resources/aws_iot_thing_type/types/properties.rb +64 -0
  953. data/lib/pangea/resources/aws_iot_thing_type/types/recommendations.rb +65 -0
  954. data/lib/pangea/resources/aws_iot_thing_type/types/templates.rb +69 -0
  955. data/lib/pangea/resources/aws_iot_thing_type/types.rb +35 -215
  956. data/lib/pangea/resources/aws_iot_topic_rule/types.rb +2 -2
  957. data/lib/pangea/resources/aws_iot_topic_rule_destination/types.rb +1 -1
  958. data/lib/pangea/resources/aws_iotanalytics_dataset/builders/action_builder.rb +76 -0
  959. data/lib/pangea/resources/aws_iotanalytics_dataset/resource.rb +2 -41
  960. data/lib/pangea/resources/aws_iotanalytics_dataset/types/action.rb +91 -0
  961. data/lib/pangea/resources/aws_iotanalytics_dataset/types/attributes.rb +81 -0
  962. data/lib/pangea/resources/aws_iotanalytics_dataset/types/content_delivery_rule.rb +67 -0
  963. data/lib/pangea/resources/aws_iotanalytics_dataset/types/trigger.rb +49 -0
  964. data/lib/pangea/resources/aws_iotanalytics_dataset/types.rb +6 -202
  965. data/lib/pangea/resources/aws_key_pair/types.rb +1 -1
  966. data/lib/pangea/resources/aws_kinesis_analytics_application/builders/application_code_builder.rb +62 -0
  967. data/lib/pangea/resources/aws_kinesis_analytics_application/builders/flink_builder.rb +76 -0
  968. data/lib/pangea/resources/aws_kinesis_analytics_application/builders/sql_builder.rb +197 -0
  969. data/lib/pangea/resources/aws_kinesis_analytics_application/resource.rb +67 -243
  970. data/lib/pangea/resources/aws_kinesis_analytics_application/types/computed.rb +131 -0
  971. data/lib/pangea/resources/aws_kinesis_analytics_application/types/configs.rb +86 -0
  972. data/lib/pangea/resources/aws_kinesis_analytics_application/types/sql_configs.rb +113 -0
  973. data/lib/pangea/resources/aws_kinesis_analytics_application/types/validation.rb +109 -0
  974. data/lib/pangea/resources/aws_kinesis_analytics_application/types.rb +25 -280
  975. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/destination_builders.rb +108 -0
  976. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/resource.rb +20 -210
  977. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/s3_builders.rb +127 -0
  978. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/types/computed_properties.rb +65 -0
  979. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/types/validation.rb +73 -0
  980. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/types.rb +121 -242
  981. data/lib/pangea/resources/aws_kinesis_stream/types.rb +1 -1
  982. data/lib/pangea/resources/aws_kinesis_video_stream/types/kms_validation.rb +52 -0
  983. data/lib/pangea/resources/aws_kinesis_video_stream/types/media_type_helpers.rb +58 -0
  984. data/lib/pangea/resources/aws_kinesis_video_stream/types/storage_estimation.rb +75 -0
  985. data/lib/pangea/resources/aws_kinesis_video_stream/types.rb +60 -161
  986. data/lib/pangea/resources/aws_lambda_function/block_builders.rb +112 -0
  987. data/lib/pangea/resources/aws_lambda_function/resource.rb +13 -78
  988. data/lib/pangea/resources/aws_lambda_function/types/helpers.rb +58 -0
  989. data/lib/pangea/resources/aws_lambda_function/types/validators.rb +99 -0
  990. data/lib/pangea/resources/aws_lambda_function/types.rb +16 -156
  991. data/lib/pangea/resources/aws_launch_configuration/types.rb +1 -1
  992. data/lib/pangea/resources/aws_launch_template/types/block_device_mapping.rb +57 -0
  993. data/lib/pangea/resources/aws_launch_template/types/iam_instance_profile.rb +48 -0
  994. data/lib/pangea/resources/aws_launch_template/types/network_interface.rb +43 -0
  995. data/lib/pangea/resources/aws_launch_template/types/tag_specification.rb +43 -0
  996. data/lib/pangea/resources/aws_launch_template/types.rb +25 -111
  997. data/lib/pangea/resources/aws_lb/types.rb +1 -1
  998. data/lib/pangea/resources/aws_lb_cookie_stickiness_policy/types.rb +1 -1
  999. data/lib/pangea/resources/aws_lb_listener/types.rb +1 -1
  1000. data/lib/pangea/resources/aws_lb_listener_rule/action_builders.rb +123 -0
  1001. data/lib/pangea/resources/aws_lb_listener_rule/resource.rb +3 -88
  1002. data/lib/pangea/resources/aws_lb_listener_rule/types.rb +1 -1
  1003. data/lib/pangea/resources/aws_lb_ssl_negotiation_policy/types.rb +1 -1
  1004. data/lib/pangea/resources/aws_lb_target_group_attachment/types.rb +1 -1
  1005. data/lib/pangea/resources/aws_lb_trust_store/types.rb +1 -1
  1006. data/lib/pangea/resources/aws_lb_trust_store_revocation/types.rb +1 -1
  1007. data/lib/pangea/resources/aws_licensemanager_association/types.rb +1 -1
  1008. data/lib/pangea/resources/aws_licensemanager_grant/types.rb +1 -1
  1009. data/lib/pangea/resources/aws_licensemanager_grant_accepter/types.rb +1 -1
  1010. data/lib/pangea/resources/aws_licensemanager_license_configuration/types.rb +1 -1
  1011. data/lib/pangea/resources/aws_licensemanager_license_grant_accepter/types.rb +1 -1
  1012. data/lib/pangea/resources/aws_licensemanager_report_generator/types.rb +2 -2
  1013. data/lib/pangea/resources/aws_licensemanager_token/types.rb +2 -2
  1014. data/lib/pangea/resources/aws_lightsail/compute.rb +83 -0
  1015. data/lib/pangea/resources/aws_lightsail/database.rb +66 -0
  1016. data/lib/pangea/resources/aws_lightsail/load_balancer.rb +68 -0
  1017. data/lib/pangea/resources/aws_lightsail/networking.rb +118 -0
  1018. data/lib/pangea/resources/aws_lightsail/storage.rb +101 -0
  1019. data/lib/pangea/resources/aws_lightsail.rb +20 -499
  1020. data/lib/pangea/resources/aws_load_balancer_backend_server_policy/types.rb +1 -1
  1021. data/lib/pangea/resources/aws_load_balancer_listener_policy/types.rb +1 -1
  1022. data/lib/pangea/resources/aws_load_balancer_policy/types.rb +1 -1
  1023. data/lib/pangea/resources/aws_local_zones/data_sources.rb +133 -0
  1024. data/lib/pangea/resources/aws_local_zones/resources.rb +90 -0
  1025. data/lib/pangea/resources/aws_local_zones.rb +9 -207
  1026. data/lib/pangea/resources/aws_managedblockchain_accessor/types/blockchain_helpers.rb +76 -0
  1027. data/lib/pangea/resources/aws_managedblockchain_accessor/types/cost_helpers.rb +68 -0
  1028. data/lib/pangea/resources/aws_managedblockchain_accessor/types/network_helpers.rb +95 -0
  1029. data/lib/pangea/resources/aws_managedblockchain_accessor/types.rb +58 -218
  1030. data/lib/pangea/resources/aws_managedblockchain_ethereum_node/types/attributes.rb +84 -0
  1031. data/lib/pangea/resources/aws_managedblockchain_ethereum_node/types/helpers.rb +97 -0
  1032. data/lib/pangea/resources/aws_managedblockchain_ethereum_node/types.rb +4 -346
  1033. data/lib/pangea/resources/aws_managedblockchain_member/types/instance_methods.rb +102 -0
  1034. data/lib/pangea/resources/aws_managedblockchain_member/types/validation.rb +80 -0
  1035. data/lib/pangea/resources/aws_managedblockchain_member/types.rb +49 -189
  1036. data/lib/pangea/resources/aws_managedblockchain_network/types/helpers.rb +107 -0
  1037. data/lib/pangea/resources/aws_managedblockchain_network/types/validation.rb +91 -0
  1038. data/lib/pangea/resources/aws_managedblockchain_network/types.rb +73 -223
  1039. data/lib/pangea/resources/aws_managedblockchain_node/types/attributes.rb +87 -0
  1040. data/lib/pangea/resources/aws_managedblockchain_node/types/cost_and_specs.rb +75 -0
  1041. data/lib/pangea/resources/aws_managedblockchain_node/types/instance_methods.rb +96 -0
  1042. data/lib/pangea/resources/aws_managedblockchain_node/types/validation.rb +56 -0
  1043. data/lib/pangea/resources/aws_managedblockchain_node/types.rb +5 -235
  1044. data/lib/pangea/resources/aws_media_convert_queue/types.rb +2 -2
  1045. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/configurations.rb +74 -0
  1046. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/destinations.rb +67 -0
  1047. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/encoder_settings/audio_descriptions.rb +101 -0
  1048. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/encoder_settings/output_groups.rb +163 -0
  1049. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/encoder_settings/video_descriptions.rb +86 -0
  1050. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/encoder_settings.rb +52 -0
  1051. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder/input_attachments.rb +131 -0
  1052. data/lib/pangea/resources/aws_media_live_channel/resource/dsl_builder.rb +42 -0
  1053. data/lib/pangea/resources/aws_media_live_channel/resource.rb +22 -527
  1054. data/lib/pangea/resources/aws_media_live_channel/types/audio_codec_settings.rb +103 -0
  1055. data/lib/pangea/resources/aws_media_live_channel/types/caption_settings.rb +112 -0
  1056. data/lib/pangea/resources/aws_media_live_channel/types/channel_config.rb +77 -0
  1057. data/lib/pangea/resources/aws_media_live_channel/types/encoder_config.rb +108 -0
  1058. data/lib/pangea/resources/aws_media_live_channel/types/helpers.rb +58 -0
  1059. data/lib/pangea/resources/aws_media_live_channel/types/hls_group_settings.rb +113 -0
  1060. data/lib/pangea/resources/aws_media_live_channel/types/input_settings.rb +106 -0
  1061. data/lib/pangea/resources/aws_media_live_channel/types/output_group_settings.rb +102 -0
  1062. data/lib/pangea/resources/aws_media_live_channel/types/output_groups.rb +43 -0
  1063. data/lib/pangea/resources/aws_media_live_channel/types/output_settings.rb +153 -0
  1064. data/lib/pangea/resources/aws_media_live_channel/types/schedule_settings.rb +191 -0
  1065. data/lib/pangea/resources/aws_media_live_channel/types/video_codec_h265_mpeg2.rb +111 -0
  1066. data/lib/pangea/resources/aws_media_live_channel/types/video_codec_settings.rb +89 -0
  1067. data/lib/pangea/resources/aws_media_live_channel/types.rb +98 -961
  1068. data/lib/pangea/resources/aws_media_live_input/types/helpers.rb +100 -0
  1069. data/lib/pangea/resources/aws_media_live_input/types/validation.rb +86 -0
  1070. data/lib/pangea/resources/aws_media_live_input/types.rb +92 -218
  1071. data/lib/pangea/resources/aws_media_package_channel/types.rb +2 -2
  1072. data/lib/pangea/resources/aws_media_package_origin_endpoint/types.rb +7 -7
  1073. data/lib/pangea/resources/aws_media_store_container/types.rb +1 -1
  1074. data/lib/pangea/resources/aws_memorydb_acl/types.rb +1 -1
  1075. data/lib/pangea/resources/aws_memorydb_cluster/types.rb +1 -1
  1076. data/lib/pangea/resources/aws_memorydb_cluster_endpoint/types.rb +1 -1
  1077. data/lib/pangea/resources/aws_memorydb_multi_region_cluster/types.rb +1 -1
  1078. data/lib/pangea/resources/aws_memorydb_parameter_group/types.rb +1 -1
  1079. data/lib/pangea/resources/aws_memorydb_snapshot/types.rb +1 -1
  1080. data/lib/pangea/resources/aws_memorydb_subnet_group/types.rb +1 -1
  1081. data/lib/pangea/resources/aws_memorydb_user/types.rb +2 -2
  1082. data/lib/pangea/resources/aws_minimal/requires/compute_network_resources.rb +77 -0
  1083. data/lib/pangea/resources/aws_minimal/requires/database_resources.rb +76 -0
  1084. data/lib/pangea/resources/aws_minimal/requires/extended_services.rb +74 -0
  1085. data/lib/pangea/resources/aws_minimal/requires/service_modules.rb +60 -0
  1086. data/lib/pangea/resources/aws_minimal.rb +13 -228
  1087. data/lib/pangea/resources/aws_neptune_cluster/types.rb +2 -2
  1088. data/lib/pangea/resources/aws_neptune_cluster_endpoint/types.rb +1 -1
  1089. data/lib/pangea/resources/aws_neptune_cluster_instance/types.rb +1 -1
  1090. data/lib/pangea/resources/aws_neptune_cluster_parameter_group/types.rb +1 -1
  1091. data/lib/pangea/resources/aws_neptune_cluster_snapshot/types.rb +1 -1
  1092. data/lib/pangea/resources/aws_neptune_event_subscription/types.rb +1 -1
  1093. data/lib/pangea/resources/aws_neptune_parameter_group/types.rb +1 -1
  1094. data/lib/pangea/resources/aws_neptune_subnet_group/types.rb +1 -1
  1095. data/lib/pangea/resources/aws_network_acl/types.rb +1 -1
  1096. data/lib/pangea/resources/aws_network_acl_rule/types.rb +1 -1
  1097. data/lib/pangea/resources/aws_network_interface/types.rb +2 -2
  1098. data/lib/pangea/resources/aws_organizations_organization/types.rb +2 -2
  1099. data/lib/pangea/resources/aws_outposts/outpost.rb +64 -0
  1100. data/lib/pangea/resources/aws_outposts/resources.rb +173 -0
  1101. data/lib/pangea/resources/aws_outposts/site.rb +75 -0
  1102. data/lib/pangea/resources/aws_outposts.rb +10 -343
  1103. data/lib/pangea/resources/aws_placement_group/types.rb +1 -1
  1104. data/lib/pangea/resources/aws_proxy_protocol_policy/types.rb +1 -1
  1105. data/lib/pangea/resources/aws_qldb_stream/types/stream_helpers.rb +134 -0
  1106. data/lib/pangea/resources/aws_qldb_stream/types.rb +66 -172
  1107. data/lib/pangea/resources/aws_ram_invitation_accepter/types.rb +1 -1
  1108. data/lib/pangea/resources/aws_ram_managed_permission/types.rb +1 -1
  1109. data/lib/pangea/resources/aws_ram_permission/types.rb +1 -1
  1110. data/lib/pangea/resources/aws_ram_permission_association/types.rb +1 -1
  1111. data/lib/pangea/resources/aws_ram_principal_association/types.rb +1 -1
  1112. data/lib/pangea/resources/aws_ram_resource_association/types.rb +1 -1
  1113. data/lib/pangea/resources/aws_ram_resource_share/types.rb +1 -1
  1114. data/lib/pangea/resources/aws_ram_resource_share_accepter/types.rb +1 -1
  1115. data/lib/pangea/resources/aws_ram_resource_share_invitation/types.rb +1 -1
  1116. data/lib/pangea/resources/aws_ram_sharing_with_organization/types.rb +1 -1
  1117. data/lib/pangea/resources/aws_rds_cluster/types/attributes.rb +84 -0
  1118. data/lib/pangea/resources/aws_rds_cluster/types/configs.rb +44 -0
  1119. data/lib/pangea/resources/aws_rds_cluster/types/nested_types.rb +45 -0
  1120. data/lib/pangea/resources/aws_rds_cluster/types/validation.rb +26 -0
  1121. data/lib/pangea/resources/aws_rds_cluster/types.rb +5 -460
  1122. data/lib/pangea/resources/aws_rds_cluster_endpoint/types/configs.rb +97 -0
  1123. data/lib/pangea/resources/aws_rds_cluster_endpoint/types/members.rb +36 -0
  1124. data/lib/pangea/resources/aws_rds_cluster_endpoint/types.rb +104 -193
  1125. data/lib/pangea/resources/aws_rds_cluster_instance/types/attributes.rb +59 -0
  1126. data/lib/pangea/resources/aws_rds_cluster_instance/types/configs.rb +58 -0
  1127. data/lib/pangea/resources/aws_rds_cluster_instance/types/instance_methods.rb +106 -0
  1128. data/lib/pangea/resources/aws_rds_cluster_instance/types.rb +6 -425
  1129. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types/attributes.rb +101 -0
  1130. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types/configs.rb +102 -0
  1131. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types/parameter.rb +36 -0
  1132. data/lib/pangea/resources/aws_rds_cluster_parameter_group/types.rb +8 -349
  1133. data/lib/pangea/resources/aws_rds_global_cluster/types/attributes.rb +90 -0
  1134. data/lib/pangea/resources/aws_rds_global_cluster/types/backup_config.rb +52 -0
  1135. data/lib/pangea/resources/aws_rds_global_cluster/types/configs.rb +47 -0
  1136. data/lib/pangea/resources/aws_rds_global_cluster/types.rb +8 -413
  1137. data/lib/pangea/resources/aws_rds_proxy/types/attributes.rb +73 -0
  1138. data/lib/pangea/resources/aws_rds_proxy/types/configs.rb +43 -0
  1139. data/lib/pangea/resources/aws_rds_proxy/types/nested_types.rb +61 -0
  1140. data/lib/pangea/resources/aws_rds_proxy/types.rb +9 -398
  1141. data/lib/pangea/resources/aws_redshift_cluster/types/capacity_calculator.rb +88 -0
  1142. data/lib/pangea/resources/aws_redshift_cluster/types/cost_estimator.rb +66 -0
  1143. data/lib/pangea/resources/aws_redshift_cluster/types/feature_checks.rb +46 -0
  1144. data/lib/pangea/resources/aws_redshift_cluster/types/validators.rb +73 -0
  1145. data/lib/pangea/resources/aws_redshift_cluster/types/workload_parameters.rb +67 -0
  1146. data/lib/pangea/resources/aws_redshift_cluster/types.rb +114 -284
  1147. data/lib/pangea/resources/aws_redshift_parameter_group/types/class_methods.rb +114 -0
  1148. data/lib/pangea/resources/aws_redshift_parameter_group/types/instance_methods.rb +88 -0
  1149. data/lib/pangea/resources/aws_redshift_parameter_group/types/validation.rb +53 -0
  1150. data/lib/pangea/resources/aws_redshift_parameter_group/types.rb +35 -188
  1151. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types/attributes.rb +46 -0
  1152. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types/instance_methods.rb +92 -0
  1153. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types/templates.rb +53 -0
  1154. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types/validation.rb +71 -0
  1155. data/lib/pangea/resources/aws_redshift_snapshot_schedule/types.rb +7 -205
  1156. data/lib/pangea/resources/aws_resources/analytics.rb +22 -0
  1157. data/lib/pangea/resources/aws_resources/compute.rb +31 -0
  1158. data/lib/pangea/resources/aws_resources/core.rb +35 -0
  1159. data/lib/pangea/resources/aws_resources/database.rb +27 -0
  1160. data/lib/pangea/resources/aws_resources/devops.rb +19 -0
  1161. data/lib/pangea/resources/aws_resources/governance.rb +20 -0
  1162. data/lib/pangea/resources/aws_resources/integration.rb +24 -0
  1163. data/lib/pangea/resources/aws_resources/management.rb +33 -0
  1164. data/lib/pangea/resources/aws_resources/ml.rb +15 -0
  1165. data/lib/pangea/resources/aws_resources/security.rb +30 -0
  1166. data/lib/pangea/resources/aws_resources/specialty.rb +67 -0
  1167. data/lib/pangea/resources/aws_resources/storage.rb +23 -0
  1168. data/lib/pangea/resources/aws_resources.rb +15 -338
  1169. data/lib/pangea/resources/aws_route/types.rb +1 -1
  1170. data/lib/pangea/resources/aws_route53_delegation_set/types.rb +1 -1
  1171. data/lib/pangea/resources/aws_route53_health_check/types/attributes.rb +193 -0
  1172. data/lib/pangea/resources/aws_route53_health_check/types/configs.rb +84 -0
  1173. data/lib/pangea/resources/aws_route53_health_check/types.rb +6 -375
  1174. data/lib/pangea/resources/aws_route53_query_log/types.rb +1 -1
  1175. data/lib/pangea/resources/aws_route53_record/types/attributes.rb +149 -0
  1176. data/lib/pangea/resources/aws_route53_record/types/configs.rb +124 -0
  1177. data/lib/pangea/resources/aws_route53_record/types/instance_methods.rb +80 -0
  1178. data/lib/pangea/resources/aws_route53_record/types/validation.rb +82 -0
  1179. data/lib/pangea/resources/aws_route53_record/types.rb +6 -383
  1180. data/lib/pangea/resources/aws_route53_zone/types/attributes.rb +85 -0
  1181. data/lib/pangea/resources/aws_route53_zone/types/configs.rb +73 -0
  1182. data/lib/pangea/resources/aws_route53_zone/types/instance_methods.rb +90 -0
  1183. data/lib/pangea/resources/aws_route53_zone/types/validation.rb +42 -0
  1184. data/lib/pangea/resources/aws_route53_zone/types.rb +5 -234
  1185. data/lib/pangea/resources/aws_s3_access_point/types.rb +1 -1
  1186. data/lib/pangea/resources/aws_s3_bucket/builders/configuration_builder.rb +105 -0
  1187. data/lib/pangea/resources/aws_s3_bucket/builders/lifecycle_builder.rb +101 -0
  1188. data/lib/pangea/resources/aws_s3_bucket/resource.rb +56 -175
  1189. data/lib/pangea/resources/aws_s3_bucket/types/cors_rule.rb +37 -0
  1190. data/lib/pangea/resources/aws_s3_bucket/types/lifecycle_rule.rb +57 -0
  1191. data/lib/pangea/resources/aws_s3_bucket/types/server_side_encryption.rb +51 -0
  1192. data/lib/pangea/resources/aws_s3_bucket/types.rb +130 -162
  1193. data/lib/pangea/resources/aws_s3_bucket_inventory/types/helpers.rb +113 -0
  1194. data/lib/pangea/resources/aws_s3_bucket_inventory/types.rb +3 -99
  1195. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types/attributes.rb +55 -0
  1196. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types/expiration.rb +39 -0
  1197. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types/filter.rb +54 -0
  1198. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types/rule.rb +49 -0
  1199. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types/transition.rb +51 -0
  1200. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/types.rb +14 -202
  1201. data/lib/pangea/resources/aws_s3_bucket_notification/types/helpers.rb +76 -0
  1202. data/lib/pangea/resources/aws_s3_bucket_notification/types/notification_config.rb +74 -0
  1203. data/lib/pangea/resources/aws_s3_bucket_notification/types/s3_events.rb +54 -0
  1204. data/lib/pangea/resources/aws_s3_bucket_notification/types/validators.rb +64 -0
  1205. data/lib/pangea/resources/aws_s3_bucket_notification/types.rb +26 -188
  1206. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/types/instance_methods.rb +130 -0
  1207. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/types/validation.rb +75 -0
  1208. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/types.rb +39 -202
  1209. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types/destination.rb +84 -0
  1210. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types/filter.rb +47 -0
  1211. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types/helpers.rb +108 -0
  1212. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types/rule.rb +78 -0
  1213. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types/validators.rb +117 -0
  1214. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/types.rb +22 -272
  1215. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types/attributes.rb +57 -0
  1216. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types/documents.rb +61 -0
  1217. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types/redirect.rb +41 -0
  1218. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types/routing_rules.rb +99 -0
  1219. data/lib/pangea/resources/aws_s3_bucket_website_configuration/types.rb +7 -385
  1220. data/lib/pangea/resources/aws_s3_multi_region_access_point/types.rb +1 -1
  1221. data/lib/pangea/resources/aws_s3_object/types/attributes.rb +112 -0
  1222. data/lib/pangea/resources/aws_s3_object/types/instance_methods.rb +112 -0
  1223. data/lib/pangea/resources/aws_s3_object/types/validation.rb +57 -0
  1224. data/lib/pangea/resources/aws_s3_object/types.rb +4 -198
  1225. data/lib/pangea/resources/aws_sagemaker_domain/types/app_settings_types.rb +91 -0
  1226. data/lib/pangea/resources/aws_sagemaker_domain/types/base_types.rb +70 -0
  1227. data/lib/pangea/resources/aws_sagemaker_domain/types/user_settings_types.rb +45 -0
  1228. data/lib/pangea/resources/aws_sagemaker_domain/types.rb +80 -207
  1229. data/lib/pangea/resources/aws_sagemaker_endpoint/reference_attributes.rb +119 -0
  1230. data/lib/pangea/resources/aws_sagemaker_endpoint/resource.rb +2 -80
  1231. data/lib/pangea/resources/aws_sagemaker_endpoint/types/computed_properties.rb +100 -0
  1232. data/lib/pangea/resources/aws_sagemaker_endpoint/types/deployment_analysis.rb +108 -0
  1233. data/lib/pangea/resources/aws_sagemaker_endpoint/types/deployment_config.rb +54 -0
  1234. data/lib/pangea/resources/aws_sagemaker_endpoint/types.rb +62 -235
  1235. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/reference_attributes.rb +130 -0
  1236. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/resource.rb +5 -45
  1237. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/types/attributes.rb +155 -0
  1238. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/types/variant_types.rb +73 -0
  1239. data/lib/pangea/resources/aws_sagemaker_endpoint_configuration/types.rb +8 -347
  1240. data/lib/pangea/resources/aws_sagemaker_model/types/attributes.rb +62 -0
  1241. data/lib/pangea/resources/aws_sagemaker_model/types/helpers.rb +73 -0
  1242. data/lib/pangea/resources/aws_sagemaker_model/types/validators.rb +70 -0
  1243. data/lib/pangea/resources/aws_sagemaker_model/types.rb +4 -327
  1244. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types/helpers.rb +73 -0
  1245. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types/pricing.rb +118 -0
  1246. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types/security.rb +81 -0
  1247. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types/validators.rb +97 -0
  1248. data/lib/pangea/resources/aws_sagemaker_notebook_instance/types.rb +29 -240
  1249. data/lib/pangea/resources/aws_sagemaker_training_job/types/attributes.rb +86 -0
  1250. data/lib/pangea/resources/aws_sagemaker_training_job/types/configs.rb +38 -0
  1251. data/lib/pangea/resources/aws_sagemaker_training_job/types/enums.rb +27 -0
  1252. data/lib/pangea/resources/aws_sagemaker_training_job/types/validation.rb +70 -0
  1253. data/lib/pangea/resources/aws_sagemaker_training_job/types.rb +5 -466
  1254. data/lib/pangea/resources/aws_sagemaker_user_profile/types/attributes.rb +68 -0
  1255. data/lib/pangea/resources/aws_sagemaker_user_profile/types/helpers.rb +67 -0
  1256. data/lib/pangea/resources/aws_sagemaker_user_profile/types/validators.rb +60 -0
  1257. data/lib/pangea/resources/aws_sagemaker_user_profile/types.rb +4 -327
  1258. data/lib/pangea/resources/aws_security_group/types.rb +3 -3
  1259. data/lib/pangea/resources/aws_sfn_state_machine/types/attributes.rb +51 -0
  1260. data/lib/pangea/resources/aws_sfn_state_machine/types/builders.rb +88 -0
  1261. data/lib/pangea/resources/aws_sfn_state_machine/types/validators.rb +86 -0
  1262. data/lib/pangea/resources/aws_sfn_state_machine/types.rb +5 -344
  1263. data/lib/pangea/resources/aws_snow_family/datasync.rb +124 -0
  1264. data/lib/pangea/resources/aws_snow_family/snowball.rb +95 -0
  1265. data/lib/pangea/resources/aws_snow_family/snowcone.rb +82 -0
  1266. data/lib/pangea/resources/aws_snow_family/snowmobile.rb +51 -0
  1267. data/lib/pangea/resources/aws_snow_family.rb +10 -392
  1268. data/lib/pangea/resources/aws_sns_subscription/types/helpers.rb +73 -0
  1269. data/lib/pangea/resources/aws_sns_subscription/types/validators.rb +144 -0
  1270. data/lib/pangea/resources/aws_sns_subscription/types.rb +28 -191
  1271. data/lib/pangea/resources/aws_sns_topic/types.rb +1 -1
  1272. data/lib/pangea/resources/aws_sqs_queue/types.rb +1 -1
  1273. data/lib/pangea/resources/aws_ssm_document/types/attributes.rb +101 -0
  1274. data/lib/pangea/resources/aws_ssm_document/types/configs.rb +56 -0
  1275. data/lib/pangea/resources/aws_ssm_document/types.rb +6 -405
  1276. data/lib/pangea/resources/aws_ssm_maintenance_window/types/attributes.rb +188 -0
  1277. data/lib/pangea/resources/aws_ssm_maintenance_window/types/configs.rb +88 -0
  1278. data/lib/pangea/resources/aws_ssm_maintenance_window/types.rb +6 -362
  1279. data/lib/pangea/resources/aws_ssm_parameter/types/configs.rb +118 -0
  1280. data/lib/pangea/resources/aws_ssm_parameter/types/helpers.rb +101 -0
  1281. data/lib/pangea/resources/aws_ssm_parameter/types/validation.rb +83 -0
  1282. data/lib/pangea/resources/aws_ssm_parameter/types.rb +32 -250
  1283. data/lib/pangea/resources/aws_ssm_patch_baseline/types/attributes.rb +75 -0
  1284. data/lib/pangea/resources/aws_ssm_patch_baseline/types/configs.rb +94 -0
  1285. data/lib/pangea/resources/aws_ssm_patch_baseline/types/instance_methods.rb +97 -0
  1286. data/lib/pangea/resources/aws_ssm_patch_baseline/types/validation.rb +99 -0
  1287. data/lib/pangea/resources/aws_ssm_patch_baseline/types.rb +7 -428
  1288. data/lib/pangea/resources/aws_subnet/resource.rb +7 -13
  1289. data/lib/pangea/resources/aws_subnet/types.rb +1 -1
  1290. data/lib/pangea/resources/aws_timestream_access_policy/types.rb +1 -1
  1291. data/lib/pangea/resources/aws_timestream_batch_load_task/types.rb +4 -4
  1292. data/lib/pangea/resources/aws_timestream_database/types.rb +1 -1
  1293. data/lib/pangea/resources/aws_timestream_influx_db_instance/types.rb +1 -1
  1294. data/lib/pangea/resources/aws_timestream_scheduled_query/types.rb +5 -5
  1295. data/lib/pangea/resources/aws_timestream_table/types.rb +4 -4
  1296. data/lib/pangea/resources/aws_timestream_table_retention_properties/types.rb +1 -1
  1297. data/lib/pangea/resources/aws_volume_attachment/types.rb +1 -1
  1298. data/lib/pangea/resources/aws_vpc_dhcp_options_association/types.rb +1 -1
  1299. data/lib/pangea/resources/aws_vpc_endpoint/types.rb +1 -1
  1300. data/lib/pangea/resources/aws_vpc_endpoint_connection_accepter/types.rb +1 -1
  1301. data/lib/pangea/resources/aws_vpc_endpoint_connection_notification/types.rb +1 -1
  1302. data/lib/pangea/resources/aws_vpc_endpoint_route_table_association/types.rb +1 -1
  1303. data/lib/pangea/resources/aws_vpc_endpoint_service/types.rb +1 -1
  1304. data/lib/pangea/resources/aws_vpc_endpoint_service_allowed_principal/types.rb +1 -1
  1305. data/lib/pangea/resources/aws_vpc_endpoint_subnet_association/types.rb +1 -1
  1306. data/lib/pangea/resources/aws_vpc_network_performance_metric_subscription/types.rb +1 -1
  1307. data/lib/pangea/resources/aws_vpc_peering_connection/types.rb +3 -3
  1308. data/lib/pangea/resources/aws_vpc_peering_connection_accepter/types.rb +1 -1
  1309. data/lib/pangea/resources/aws_vpc_peering_connection_options/types.rb +1 -1
  1310. data/lib/pangea/resources/aws_vpc_security_group_egress_rule/types.rb +1 -1
  1311. data/lib/pangea/resources/aws_vpc_security_group_ingress_rule/types.rb +1 -1
  1312. data/lib/pangea/resources/aws_vpn_connection/types.rb +1 -1
  1313. data/lib/pangea/resources/aws_vpn_gateway/types.rb +1 -1
  1314. data/lib/pangea/resources/aws_wafv2_regex_pattern_set/types/configs.rb +116 -0
  1315. data/lib/pangea/resources/aws_wafv2_regex_pattern_set/types/helpers.rb +106 -0
  1316. data/lib/pangea/resources/aws_wafv2_regex_pattern_set/types.rb +66 -226
  1317. data/lib/pangea/resources/aws_wafv2_rule_group/resource/actions.rb +83 -0
  1318. data/lib/pangea/resources/aws_wafv2_rule_group/resource/dsl_builder.rb +107 -0
  1319. data/lib/pangea/resources/aws_wafv2_rule_group/resource/field_to_match.rb +45 -0
  1320. data/lib/pangea/resources/aws_wafv2_rule_group/resource/statements.rb +137 -0
  1321. data/lib/pangea/resources/aws_wafv2_rule_group/resource.rb +127 -379
  1322. data/lib/pangea/resources/aws_wafv2_rule_group/types/actions.rb +78 -0
  1323. data/lib/pangea/resources/aws_wafv2_rule_group/types/computed.rb +65 -0
  1324. data/lib/pangea/resources/aws_wafv2_rule_group/types/rule_schema.rb +53 -0
  1325. data/lib/pangea/resources/aws_wafv2_rule_group/types/schemas.rb +74 -0
  1326. data/lib/pangea/resources/aws_wafv2_rule_group/types/validators.rb +121 -0
  1327. data/lib/pangea/resources/aws_wafv2_rule_group/types.rb +14 -231
  1328. data/lib/pangea/resources/aws_wafv2_web_acl/resource/dsl_builder/default_action.rb +60 -0
  1329. data/lib/pangea/resources/aws_wafv2_web_acl/resource/dsl_builder/field_to_match.rb +65 -0
  1330. data/lib/pangea/resources/aws_wafv2_web_acl/resource/dsl_builder/rules.rb +89 -0
  1331. data/lib/pangea/resources/aws_wafv2_web_acl/resource/dsl_builder/statements.rb +166 -0
  1332. data/lib/pangea/resources/aws_wafv2_web_acl/resource/dsl_builder.rb +42 -0
  1333. data/lib/pangea/resources/aws_wafv2_web_acl/resource.rb +48 -450
  1334. data/lib/pangea/resources/aws_wafv2_web_acl/types/default_action.rb +57 -0
  1335. data/lib/pangea/resources/aws_wafv2_web_acl/types/rule.rb +60 -0
  1336. data/lib/pangea/resources/aws_wafv2_web_acl/types/rule_action.rb +76 -0
  1337. data/lib/pangea/resources/aws_wafv2_web_acl/types/statement.rb +176 -0
  1338. data/lib/pangea/resources/aws_wafv2_web_acl/types/visibility_config.rb +35 -0
  1339. data/lib/pangea/resources/aws_wafv2_web_acl/types/web_acl_attributes.rb +158 -0
  1340. data/lib/pangea/resources/aws_wafv2_web_acl/types.rb +8 -526
  1341. data/lib/pangea/resources/aws_wavelength/application_deployment.rb +78 -0
  1342. data/lib/pangea/resources/aws_wavelength/carrier_gateway.rb +62 -0
  1343. data/lib/pangea/resources/aws_wavelength/deployment.rb +68 -0
  1344. data/lib/pangea/resources/aws_wavelength/edge_location.rb +66 -0
  1345. data/lib/pangea/resources/aws_wavelength/network_interface.rb +77 -0
  1346. data/lib/pangea/resources/aws_wavelength/workload.rb +74 -0
  1347. data/lib/pangea/resources/aws_wavelength.rb +11 -307
  1348. data/lib/pangea/resources/aws_workspaces_bundle/types/compute.rb +70 -0
  1349. data/lib/pangea/resources/aws_workspaces_bundle/types/storage.rb +71 -0
  1350. data/lib/pangea/resources/aws_workspaces_bundle/types.rb +40 -165
  1351. data/lib/pangea/resources/aws_workspaces_directory/types/self_service_permissions_type.rb +54 -0
  1352. data/lib/pangea/resources/aws_workspaces_directory/types/workspace_access_properties_type.rb +68 -0
  1353. data/lib/pangea/resources/aws_workspaces_directory/types/workspace_creation_properties_type.rb +61 -0
  1354. data/lib/pangea/resources/aws_workspaces_directory/types.rb +13 -168
  1355. data/lib/pangea/resources/builders/output_builder.rb +158 -0
  1356. data/lib/pangea/resources/cloudflare_access_rule/resource.rb +71 -0
  1357. data/lib/pangea/resources/cloudflare_access_rule/types.rb +93 -0
  1358. data/lib/pangea/resources/cloudflare_account/resource.rb +28 -0
  1359. data/lib/pangea/resources/cloudflare_account/types.rb +12 -0
  1360. data/lib/pangea/resources/cloudflare_account_dns_settings/resource.rb +27 -0
  1361. data/lib/pangea/resources/cloudflare_account_dns_settings/types.rb +11 -0
  1362. data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/resource.rb +27 -0
  1363. data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/types.rb +11 -0
  1364. data/lib/pangea/resources/cloudflare_account_member/resource.rb +29 -0
  1365. data/lib/pangea/resources/cloudflare_account_member/types.rb +13 -0
  1366. data/lib/pangea/resources/cloudflare_account_subscription/resource.rb +27 -0
  1367. data/lib/pangea/resources/cloudflare_account_subscription/types.rb +11 -0
  1368. data/lib/pangea/resources/cloudflare_account_token/resource.rb +27 -0
  1369. data/lib/pangea/resources/cloudflare_account_token/types.rb +11 -0
  1370. data/lib/pangea/resources/cloudflare_address_map/resource.rb +26 -0
  1371. data/lib/pangea/resources/cloudflare_address_map/types.rb +10 -0
  1372. data/lib/pangea/resources/cloudflare_api_shield/resource.rb +27 -0
  1373. data/lib/pangea/resources/cloudflare_api_shield/types.rb +11 -0
  1374. data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/resource.rb +27 -0
  1375. data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/types.rb +11 -0
  1376. data/lib/pangea/resources/cloudflare_api_shield_operation/resource.rb +29 -0
  1377. data/lib/pangea/resources/cloudflare_api_shield_operation/types.rb +13 -0
  1378. data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/resource.rb +27 -0
  1379. data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/types.rb +11 -0
  1380. data/lib/pangea/resources/cloudflare_api_shield_schema/resource.rb +30 -0
  1381. data/lib/pangea/resources/cloudflare_api_shield_schema/types.rb +14 -0
  1382. data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/resource.rb +27 -0
  1383. data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/types.rb +11 -0
  1384. data/lib/pangea/resources/cloudflare_api_token/resource.rb +33 -0
  1385. data/lib/pangea/resources/cloudflare_api_token/types.rb +14 -0
  1386. data/lib/pangea/resources/cloudflare_argo/resource.rb +91 -0
  1387. data/lib/pangea/resources/cloudflare_argo/types.rb +92 -0
  1388. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/resource.rb +29 -0
  1389. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/types.rb +13 -0
  1390. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/resource.rb +33 -0
  1391. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/types.rb +13 -0
  1392. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/resource.rb +26 -0
  1393. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/types.rb +10 -0
  1394. data/lib/pangea/resources/cloudflare_bot_management/resource.rb +31 -0
  1395. data/lib/pangea/resources/cloudflare_bot_management/types.rb +15 -0
  1396. data/lib/pangea/resources/cloudflare_byo_ip_prefix/resource.rb +27 -0
  1397. data/lib/pangea/resources/cloudflare_byo_ip_prefix/types.rb +11 -0
  1398. data/lib/pangea/resources/cloudflare_calls_sfu_app/resource.rb +27 -0
  1399. data/lib/pangea/resources/cloudflare_calls_sfu_app/types.rb +11 -0
  1400. data/lib/pangea/resources/cloudflare_calls_turn_app/resource.rb +27 -0
  1401. data/lib/pangea/resources/cloudflare_calls_turn_app/types.rb +11 -0
  1402. data/lib/pangea/resources/cloudflare_certificate_pack/resource.rb +26 -0
  1403. data/lib/pangea/resources/cloudflare_certificate_pack/types.rb +10 -0
  1404. data/lib/pangea/resources/cloudflare_cloud_connector_rules/resource.rb +27 -0
  1405. data/lib/pangea/resources/cloudflare_cloud_connector_rules/types.rb +11 -0
  1406. data/lib/pangea/resources/cloudflare_cloudforce_one_request/resource.rb +27 -0
  1407. data/lib/pangea/resources/cloudflare_cloudforce_one_request/types.rb +11 -0
  1408. data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/resource.rb +27 -0
  1409. data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/types.rb +11 -0
  1410. data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/resource.rb +27 -0
  1411. data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/types.rb +11 -0
  1412. data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/resource.rb +27 -0
  1413. data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/types.rb +11 -0
  1414. data/lib/pangea/resources/cloudflare_content_scanning/resource.rb +27 -0
  1415. data/lib/pangea/resources/cloudflare_content_scanning/types.rb +11 -0
  1416. data/lib/pangea/resources/cloudflare_content_scanning_expression/resource.rb +27 -0
  1417. data/lib/pangea/resources/cloudflare_content_scanning_expression/types.rb +11 -0
  1418. data/lib/pangea/resources/cloudflare_custom_hostname/resource.rb +157 -0
  1419. data/lib/pangea/resources/cloudflare_custom_hostname/types/ssl_types.rb +145 -0
  1420. data/lib/pangea/resources/cloudflare_custom_hostname/types.rb +107 -0
  1421. data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/resource.rb +27 -0
  1422. data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/types.rb +11 -0
  1423. data/lib/pangea/resources/cloudflare_custom_pages/resource.rb +27 -0
  1424. data/lib/pangea/resources/cloudflare_custom_pages/types.rb +11 -0
  1425. data/lib/pangea/resources/cloudflare_custom_ssl/resource.rb +36 -0
  1426. data/lib/pangea/resources/cloudflare_custom_ssl/types.rb +16 -0
  1427. data/lib/pangea/resources/cloudflare_d1_database/resource.rb +92 -0
  1428. data/lib/pangea/resources/cloudflare_d1_database/types.rb +110 -0
  1429. data/lib/pangea/resources/cloudflare_dns_firewall/resource.rb +27 -0
  1430. data/lib/pangea/resources/cloudflare_dns_firewall/types.rb +11 -0
  1431. data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/resource.rb +27 -0
  1432. data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/types.rb +11 -0
  1433. data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/resource.rb +27 -0
  1434. data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/types.rb +11 -0
  1435. data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/resource.rb +26 -0
  1436. data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/types.rb +10 -0
  1437. data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/resource.rb +26 -0
  1438. data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/types.rb +10 -0
  1439. data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/resource.rb +26 -0
  1440. data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/types.rb +10 -0
  1441. data/lib/pangea/resources/cloudflare_email_routing_address/resource.rb +26 -0
  1442. data/lib/pangea/resources/cloudflare_email_routing_address/types.rb +10 -0
  1443. data/lib/pangea/resources/cloudflare_email_routing_catch_all/resource.rb +26 -0
  1444. data/lib/pangea/resources/cloudflare_email_routing_catch_all/types.rb +10 -0
  1445. data/lib/pangea/resources/cloudflare_email_routing_dns/resource.rb +27 -0
  1446. data/lib/pangea/resources/cloudflare_email_routing_dns/types.rb +11 -0
  1447. data/lib/pangea/resources/cloudflare_email_routing_rule/resource.rb +26 -0
  1448. data/lib/pangea/resources/cloudflare_email_routing_rule/types.rb +10 -0
  1449. data/lib/pangea/resources/cloudflare_email_routing_settings/resource.rb +26 -0
  1450. data/lib/pangea/resources/cloudflare_email_routing_settings/types.rb +10 -0
  1451. data/lib/pangea/resources/cloudflare_email_security_block_sender/resource.rb +27 -0
  1452. data/lib/pangea/resources/cloudflare_email_security_block_sender/types.rb +11 -0
  1453. data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/resource.rb +27 -0
  1454. data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/types.rb +11 -0
  1455. data/lib/pangea/resources/cloudflare_email_security_trusted_domains/resource.rb +27 -0
  1456. data/lib/pangea/resources/cloudflare_email_security_trusted_domains/types.rb +11 -0
  1457. data/lib/pangea/resources/cloudflare_filter/resource.rb +64 -0
  1458. data/lib/pangea/resources/cloudflare_filter/types.rb +54 -0
  1459. data/lib/pangea/resources/cloudflare_firewall_rule/resource.rb +70 -0
  1460. data/lib/pangea/resources/cloudflare_firewall_rule/types.rb +64 -0
  1461. data/lib/pangea/resources/cloudflare_healthcheck/resource.rb +138 -0
  1462. data/lib/pangea/resources/cloudflare_healthcheck/types.rb +192 -0
  1463. data/lib/pangea/resources/cloudflare_hostname_tls_setting/resource.rb +26 -0
  1464. data/lib/pangea/resources/cloudflare_hostname_tls_setting/types.rb +10 -0
  1465. data/lib/pangea/resources/cloudflare_hyperdrive_config/resource.rb +176 -0
  1466. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/attributes.rb +125 -0
  1467. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/caching.rb +52 -0
  1468. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/enums.rb +37 -0
  1469. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/mtls.rb +52 -0
  1470. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/origin.rb +89 -0
  1471. data/lib/pangea/resources/cloudflare_hyperdrive_config/types.rb +23 -0
  1472. data/lib/pangea/resources/cloudflare_image/resource.rb +27 -0
  1473. data/lib/pangea/resources/cloudflare_image/types.rb +11 -0
  1474. data/lib/pangea/resources/cloudflare_image_variant/resource.rb +26 -0
  1475. data/lib/pangea/resources/cloudflare_image_variant/types.rb +10 -0
  1476. data/lib/pangea/resources/cloudflare_keyless_certificate/resource.rb +26 -0
  1477. data/lib/pangea/resources/cloudflare_keyless_certificate/types.rb +10 -0
  1478. data/lib/pangea/resources/cloudflare_leaked_credential_check/resource.rb +27 -0
  1479. data/lib/pangea/resources/cloudflare_leaked_credential_check/types.rb +11 -0
  1480. data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/resource.rb +27 -0
  1481. data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/types.rb +11 -0
  1482. data/lib/pangea/resources/cloudflare_list/resource.rb +57 -0
  1483. data/lib/pangea/resources/cloudflare_list/types.rb +49 -0
  1484. data/lib/pangea/resources/cloudflare_list_item/resource.rb +130 -0
  1485. data/lib/pangea/resources/cloudflare_list_item/types.rb +183 -0
  1486. data/lib/pangea/resources/cloudflare_load_balancer/resource.rb +97 -0
  1487. data/lib/pangea/resources/cloudflare_load_balancer/types.rb +75 -0
  1488. data/lib/pangea/resources/cloudflare_load_balancer_monitor/resource.rb +78 -0
  1489. data/lib/pangea/resources/cloudflare_load_balancer_monitor/types.rb +62 -0
  1490. data/lib/pangea/resources/cloudflare_load_balancer_pool/resource.rb +78 -0
  1491. data/lib/pangea/resources/cloudflare_load_balancer_pool/types.rb +81 -0
  1492. data/lib/pangea/resources/cloudflare_logpull_retention/resource.rb +27 -0
  1493. data/lib/pangea/resources/cloudflare_logpull_retention/types.rb +11 -0
  1494. data/lib/pangea/resources/cloudflare_logpush_job/resource.rb +40 -0
  1495. data/lib/pangea/resources/cloudflare_logpush_job/types.rb +24 -0
  1496. data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/resource.rb +27 -0
  1497. data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/types.rb +11 -0
  1498. data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/resource.rb +27 -0
  1499. data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/types.rb +11 -0
  1500. data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/resource.rb +27 -0
  1501. data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/types.rb +11 -0
  1502. data/lib/pangea/resources/cloudflare_magic_transit_connector/resource.rb +27 -0
  1503. data/lib/pangea/resources/cloudflare_magic_transit_connector/types.rb +11 -0
  1504. data/lib/pangea/resources/cloudflare_magic_transit_site/resource.rb +27 -0
  1505. data/lib/pangea/resources/cloudflare_magic_transit_site/types.rb +11 -0
  1506. data/lib/pangea/resources/cloudflare_magic_transit_site_acl/resource.rb +27 -0
  1507. data/lib/pangea/resources/cloudflare_magic_transit_site_acl/types.rb +11 -0
  1508. data/lib/pangea/resources/cloudflare_magic_transit_site_lan/resource.rb +27 -0
  1509. data/lib/pangea/resources/cloudflare_magic_transit_site_lan/types.rb +11 -0
  1510. data/lib/pangea/resources/cloudflare_magic_transit_site_wan/resource.rb +27 -0
  1511. data/lib/pangea/resources/cloudflare_magic_transit_site_wan/types.rb +11 -0
  1512. data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/resource.rb +27 -0
  1513. data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/types.rb +11 -0
  1514. data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/resource.rb +27 -0
  1515. data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/types.rb +11 -0
  1516. data/lib/pangea/resources/cloudflare_magic_wan_static_route/resource.rb +27 -0
  1517. data/lib/pangea/resources/cloudflare_magic_wan_static_route/types.rb +11 -0
  1518. data/lib/pangea/resources/cloudflare_managed_transforms/resource.rb +36 -0
  1519. data/lib/pangea/resources/cloudflare_managed_transforms/types.rb +12 -0
  1520. data/lib/pangea/resources/cloudflare_mtls_certificate/resource.rb +34 -0
  1521. data/lib/pangea/resources/cloudflare_mtls_certificate/types.rb +14 -0
  1522. data/lib/pangea/resources/cloudflare_notification_policy/resource.rb +34 -0
  1523. data/lib/pangea/resources/cloudflare_notification_policy/types.rb +18 -0
  1524. data/lib/pangea/resources/cloudflare_notification_policy_webhooks/resource.rb +27 -0
  1525. data/lib/pangea/resources/cloudflare_notification_policy_webhooks/types.rb +11 -0
  1526. data/lib/pangea/resources/cloudflare_observatory_scheduled_test/resource.rb +27 -0
  1527. data/lib/pangea/resources/cloudflare_observatory_scheduled_test/types.rb +11 -0
  1528. data/lib/pangea/resources/cloudflare_organization/resource.rb +27 -0
  1529. data/lib/pangea/resources/cloudflare_organization/types.rb +11 -0
  1530. data/lib/pangea/resources/cloudflare_organization_profile/resource.rb +27 -0
  1531. data/lib/pangea/resources/cloudflare_organization_profile/types.rb +11 -0
  1532. data/lib/pangea/resources/cloudflare_origin_ca_certificate/resource.rb +97 -0
  1533. data/lib/pangea/resources/cloudflare_origin_ca_certificate/types.rb +125 -0
  1534. data/lib/pangea/resources/cloudflare_page_rule/resource.rb +78 -0
  1535. data/lib/pangea/resources/cloudflare_page_rule/types.rb +71 -0
  1536. data/lib/pangea/resources/cloudflare_page_shield_policy/resource.rb +27 -0
  1537. data/lib/pangea/resources/cloudflare_page_shield_policy/types.rb +11 -0
  1538. data/lib/pangea/resources/cloudflare_pages_domain/resource.rb +28 -0
  1539. data/lib/pangea/resources/cloudflare_pages_domain/types.rb +12 -0
  1540. data/lib/pangea/resources/cloudflare_pages_project/resource/deployment_config.rb +80 -0
  1541. data/lib/pangea/resources/cloudflare_pages_project/resource/main.rb +75 -0
  1542. data/lib/pangea/resources/cloudflare_pages_project/resource.rb +19 -0
  1543. data/lib/pangea/resources/cloudflare_pages_project/types/attributes.rb +51 -0
  1544. data/lib/pangea/resources/cloudflare_pages_project/types/bindings.rb +38 -0
  1545. data/lib/pangea/resources/cloudflare_pages_project/types/build_config.rb +55 -0
  1546. data/lib/pangea/resources/cloudflare_pages_project/types/deployment_config.rb +83 -0
  1547. data/lib/pangea/resources/cloudflare_pages_project/types.rb +27 -0
  1548. data/lib/pangea/resources/cloudflare_queue/resource.rb +108 -0
  1549. data/lib/pangea/resources/cloudflare_queue/types.rb +132 -0
  1550. data/lib/pangea/resources/cloudflare_queue_consumer/resource.rb +31 -0
  1551. data/lib/pangea/resources/cloudflare_queue_consumer/types.rb +15 -0
  1552. data/lib/pangea/resources/cloudflare_r2_bucket/resource.rb +91 -0
  1553. data/lib/pangea/resources/cloudflare_r2_bucket/types.rb +101 -0
  1554. data/lib/pangea/resources/cloudflare_r2_bucket_cors/resource.rb +130 -0
  1555. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/attributes.rb +105 -0
  1556. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_allowed.rb +59 -0
  1557. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_method.rb +34 -0
  1558. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_rule.rb +74 -0
  1559. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types.rb +22 -0
  1560. data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/resource.rb +31 -0
  1561. data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/types.rb +15 -0
  1562. data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/resource.rb +31 -0
  1563. data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/types.rb +26 -0
  1564. data/lib/pangea/resources/cloudflare_r2_bucket_lock/resource.rb +29 -0
  1565. data/lib/pangea/resources/cloudflare_r2_bucket_lock/types.rb +13 -0
  1566. data/lib/pangea/resources/cloudflare_r2_bucket_sippy/resource.rb +26 -0
  1567. data/lib/pangea/resources/cloudflare_r2_bucket_sippy/types.rb +10 -0
  1568. data/lib/pangea/resources/cloudflare_r2_custom_domain/resource.rb +28 -0
  1569. data/lib/pangea/resources/cloudflare_r2_custom_domain/types.rb +12 -0
  1570. data/lib/pangea/resources/cloudflare_r2_managed_domain/resource.rb +26 -0
  1571. data/lib/pangea/resources/cloudflare_r2_managed_domain/types.rb +10 -0
  1572. data/lib/pangea/resources/cloudflare_rate_limit/resource.rb +129 -0
  1573. data/lib/pangea/resources/cloudflare_rate_limit/types.rb +143 -0
  1574. data/lib/pangea/resources/cloudflare_record/resource.rb +91 -0
  1575. data/lib/pangea/resources/cloudflare_record/types.rb +114 -0
  1576. data/lib/pangea/resources/cloudflare_regional_hostname/resource.rb +27 -0
  1577. data/lib/pangea/resources/cloudflare_regional_hostname/types.rb +11 -0
  1578. data/lib/pangea/resources/cloudflare_regional_tiered_cache/resource.rb +82 -0
  1579. data/lib/pangea/resources/cloudflare_regional_tiered_cache/types.rb +73 -0
  1580. data/lib/pangea/resources/cloudflare_registrar_domain/resource.rb +27 -0
  1581. data/lib/pangea/resources/cloudflare_registrar_domain/types.rb +11 -0
  1582. data/lib/pangea/resources/cloudflare_ruleset/resource.rb +113 -0
  1583. data/lib/pangea/resources/cloudflare_ruleset/types/ruleset_rule.rb +84 -0
  1584. data/lib/pangea/resources/cloudflare_ruleset/types.rb +155 -0
  1585. data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/resource.rb +27 -0
  1586. data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/types.rb +11 -0
  1587. data/lib/pangea/resources/cloudflare_schema_validation_schemas/resource.rb +27 -0
  1588. data/lib/pangea/resources/cloudflare_schema_validation_schemas/types.rb +11 -0
  1589. data/lib/pangea/resources/cloudflare_schema_validation_settings/resource.rb +27 -0
  1590. data/lib/pangea/resources/cloudflare_schema_validation_settings/types.rb +11 -0
  1591. data/lib/pangea/resources/cloudflare_snippet/resource.rb +27 -0
  1592. data/lib/pangea/resources/cloudflare_snippet/types.rb +11 -0
  1593. data/lib/pangea/resources/cloudflare_snippet_rules/resource.rb +27 -0
  1594. data/lib/pangea/resources/cloudflare_snippet_rules/types.rb +11 -0
  1595. data/lib/pangea/resources/cloudflare_spectrum_application/resource.rb +122 -0
  1596. data/lib/pangea/resources/cloudflare_spectrum_application/types.rb +147 -0
  1597. data/lib/pangea/resources/cloudflare_static_route/resource.rb +119 -0
  1598. data/lib/pangea/resources/cloudflare_static_route/types.rb +131 -0
  1599. data/lib/pangea/resources/cloudflare_stream/resource.rb +35 -0
  1600. data/lib/pangea/resources/cloudflare_stream/types.rb +15 -0
  1601. data/lib/pangea/resources/cloudflare_stream_audio_track/resource.rb +27 -0
  1602. data/lib/pangea/resources/cloudflare_stream_audio_track/types.rb +11 -0
  1603. data/lib/pangea/resources/cloudflare_stream_caption_language/resource.rb +27 -0
  1604. data/lib/pangea/resources/cloudflare_stream_caption_language/types.rb +11 -0
  1605. data/lib/pangea/resources/cloudflare_stream_download/resource.rb +27 -0
  1606. data/lib/pangea/resources/cloudflare_stream_download/types.rb +11 -0
  1607. data/lib/pangea/resources/cloudflare_stream_key/resource.rb +27 -0
  1608. data/lib/pangea/resources/cloudflare_stream_key/types.rb +11 -0
  1609. data/lib/pangea/resources/cloudflare_stream_live_input/resource.rb +27 -0
  1610. data/lib/pangea/resources/cloudflare_stream_live_input/types.rb +11 -0
  1611. data/lib/pangea/resources/cloudflare_stream_watermark/resource.rb +27 -0
  1612. data/lib/pangea/resources/cloudflare_stream_watermark/types.rb +11 -0
  1613. data/lib/pangea/resources/cloudflare_stream_webhook/resource.rb +27 -0
  1614. data/lib/pangea/resources/cloudflare_stream_webhook/types.rb +11 -0
  1615. data/lib/pangea/resources/cloudflare_tiered_cache/resource.rb +83 -0
  1616. data/lib/pangea/resources/cloudflare_tiered_cache/types.rb +74 -0
  1617. data/lib/pangea/resources/cloudflare_total_tls/resource.rb +26 -0
  1618. data/lib/pangea/resources/cloudflare_total_tls/types.rb +10 -0
  1619. data/lib/pangea/resources/cloudflare_turnstile_widget/resource.rb +34 -0
  1620. data/lib/pangea/resources/cloudflare_turnstile_widget/types.rb +15 -0
  1621. data/lib/pangea/resources/cloudflare_url_normalization_settings/resource.rb +27 -0
  1622. data/lib/pangea/resources/cloudflare_url_normalization_settings/types.rb +11 -0
  1623. data/lib/pangea/resources/cloudflare_user/resource.rb +27 -0
  1624. data/lib/pangea/resources/cloudflare_user/types.rb +11 -0
  1625. data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/resource.rb +27 -0
  1626. data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/types.rb +11 -0
  1627. data/lib/pangea/resources/cloudflare_waiting_room/resource.rb +122 -0
  1628. data/lib/pangea/resources/cloudflare_waiting_room/types.rb +171 -0
  1629. data/lib/pangea/resources/cloudflare_waiting_room_event/resource.rb +118 -0
  1630. data/lib/pangea/resources/cloudflare_waiting_room_event/types.rb +153 -0
  1631. data/lib/pangea/resources/cloudflare_waiting_room_rules/resource.rb +40 -0
  1632. data/lib/pangea/resources/cloudflare_waiting_room_rules/types.rb +32 -0
  1633. data/lib/pangea/resources/cloudflare_waiting_room_settings/resource.rb +27 -0
  1634. data/lib/pangea/resources/cloudflare_waiting_room_settings/types.rb +11 -0
  1635. data/lib/pangea/resources/cloudflare_web3_hostname/resource.rb +27 -0
  1636. data/lib/pangea/resources/cloudflare_web3_hostname/types.rb +11 -0
  1637. data/lib/pangea/resources/cloudflare_web_analytics_rule/resource.rb +27 -0
  1638. data/lib/pangea/resources/cloudflare_web_analytics_rule/types.rb +11 -0
  1639. data/lib/pangea/resources/cloudflare_web_analytics_site/resource.rb +33 -0
  1640. data/lib/pangea/resources/cloudflare_web_analytics_site/types.rb +13 -0
  1641. data/lib/pangea/resources/cloudflare_worker/resource.rb +27 -0
  1642. data/lib/pangea/resources/cloudflare_worker/types.rb +11 -0
  1643. data/lib/pangea/resources/cloudflare_worker_route/resource.rb +62 -0
  1644. data/lib/pangea/resources/cloudflare_worker_route/types.rb +50 -0
  1645. data/lib/pangea/resources/cloudflare_worker_script/resource.rb +90 -0
  1646. data/lib/pangea/resources/cloudflare_worker_script/types.rb +109 -0
  1647. data/lib/pangea/resources/cloudflare_worker_version/resource.rb +27 -0
  1648. data/lib/pangea/resources/cloudflare_worker_version/types.rb +11 -0
  1649. data/lib/pangea/resources/cloudflare_workers_cron_trigger/resource.rb +94 -0
  1650. data/lib/pangea/resources/cloudflare_workers_cron_trigger/types.rb +102 -0
  1651. data/lib/pangea/resources/cloudflare_workers_custom_domain/resource.rb +93 -0
  1652. data/lib/pangea/resources/cloudflare_workers_custom_domain/types.rb +93 -0
  1653. data/lib/pangea/resources/cloudflare_workers_deployment/resource.rb +28 -0
  1654. data/lib/pangea/resources/cloudflare_workers_deployment/types.rb +12 -0
  1655. data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/resource.rb +27 -0
  1656. data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/types.rb +11 -0
  1657. data/lib/pangea/resources/cloudflare_workers_kv/resource.rb +98 -0
  1658. data/lib/pangea/resources/cloudflare_workers_kv/types.rb +103 -0
  1659. data/lib/pangea/resources/cloudflare_workers_kv_namespace/resource.rb +84 -0
  1660. data/lib/pangea/resources/cloudflare_workers_kv_namespace/types.rb +74 -0
  1661. data/lib/pangea/resources/cloudflare_workers_script_subdomain/resource.rb +27 -0
  1662. data/lib/pangea/resources/cloudflare_workers_script_subdomain/types.rb +11 -0
  1663. data/lib/pangea/resources/cloudflare_workflow/resource.rb +27 -0
  1664. data/lib/pangea/resources/cloudflare_workflow/types.rb +11 -0
  1665. data/lib/pangea/resources/cloudflare_zero_trust_access_application/block_builders.rb +116 -0
  1666. data/lib/pangea/resources/cloudflare_zero_trust_access_application/resource.rb +161 -0
  1667. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/attributes.rb +102 -0
  1668. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/cors_headers.rb +37 -0
  1669. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/destination.rb +37 -0
  1670. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/enums.rb +31 -0
  1671. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/footer_link.rb +31 -0
  1672. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/landing_page_design.rb +34 -0
  1673. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/saas_app.rb +44 -0
  1674. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/scim_config.rb +35 -0
  1675. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types.rb +26 -0
  1676. data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/resource.rb +26 -0
  1677. data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/types.rb +10 -0
  1678. data/lib/pangea/resources/cloudflare_zero_trust_access_group/resource.rb +31 -0
  1679. data/lib/pangea/resources/cloudflare_zero_trust_access_group/types.rb +15 -0
  1680. data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/resource.rb +31 -0
  1681. data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/types.rb +15 -0
  1682. data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/resource.rb +26 -0
  1683. data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/types.rb +10 -0
  1684. data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/resource.rb +26 -0
  1685. data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/types.rb +10 -0
  1686. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/resource.rb +26 -0
  1687. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/types.rb +10 -0
  1688. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/resource.rb +26 -0
  1689. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/types.rb +10 -0
  1690. data/lib/pangea/resources/cloudflare_zero_trust_access_policy/resource.rb +39 -0
  1691. data/lib/pangea/resources/cloudflare_zero_trust_access_policy/types.rb +23 -0
  1692. data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/resource.rb +26 -0
  1693. data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/types.rb +10 -0
  1694. data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/resource.rb +26 -0
  1695. data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/types.rb +10 -0
  1696. data/lib/pangea/resources/cloudflare_zero_trust_access_tag/resource.rb +26 -0
  1697. data/lib/pangea/resources/cloudflare_zero_trust_access_tag/types.rb +10 -0
  1698. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/resource.rb +26 -0
  1699. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/types.rb +10 -0
  1700. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/resource.rb +26 -0
  1701. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/types.rb +10 -0
  1702. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/resource.rb +26 -0
  1703. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/types.rb +10 -0
  1704. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/resource.rb +26 -0
  1705. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/types.rb +10 -0
  1706. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/resource.rb +26 -0
  1707. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/types.rb +10 -0
  1708. data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/resource.rb +26 -0
  1709. data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/types.rb +10 -0
  1710. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/resource.rb +26 -0
  1711. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/types.rb +10 -0
  1712. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/resource.rb +26 -0
  1713. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/types.rb +10 -0
  1714. data/lib/pangea/resources/cloudflare_zero_trust_device_settings/resource.rb +26 -0
  1715. data/lib/pangea/resources/cloudflare_zero_trust_device_settings/types.rb +10 -0
  1716. data/lib/pangea/resources/cloudflare_zero_trust_dex_test/resource.rb +26 -0
  1717. data/lib/pangea/resources/cloudflare_zero_trust_dex_test/types.rb +10 -0
  1718. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/resource.rb +26 -0
  1719. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/types.rb +10 -0
  1720. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/resource.rb +26 -0
  1721. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/types.rb +10 -0
  1722. data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/resource.rb +26 -0
  1723. data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/types.rb +10 -0
  1724. data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/resource.rb +26 -0
  1725. data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/types.rb +10 -0
  1726. data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/resource.rb +26 -0
  1727. data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/types.rb +10 -0
  1728. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/resource.rb +26 -0
  1729. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/types.rb +10 -0
  1730. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/resource.rb +26 -0
  1731. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/types.rb +10 -0
  1732. data/lib/pangea/resources/cloudflare_zero_trust_dns_location/resource.rb +26 -0
  1733. data/lib/pangea/resources/cloudflare_zero_trust_dns_location/types.rb +10 -0
  1734. data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/resource.rb +26 -0
  1735. data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/types.rb +10 -0
  1736. data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/resource.rb +26 -0
  1737. data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/types.rb +10 -0
  1738. data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/resource.rb +34 -0
  1739. data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/types.rb +18 -0
  1740. data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/resource.rb +26 -0
  1741. data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/types.rb +10 -0
  1742. data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/resource.rb +26 -0
  1743. data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/types.rb +10 -0
  1744. data/lib/pangea/resources/cloudflare_zero_trust_list/resource.rb +26 -0
  1745. data/lib/pangea/resources/cloudflare_zero_trust_list/types.rb +10 -0
  1746. data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/resource.rb +26 -0
  1747. data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/types.rb +10 -0
  1748. data/lib/pangea/resources/cloudflare_zero_trust_organization/resource.rb +26 -0
  1749. data/lib/pangea/resources/cloudflare_zero_trust_organization/types.rb +10 -0
  1750. data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/resource.rb +26 -0
  1751. data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/types.rb +10 -0
  1752. data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/resource.rb +26 -0
  1753. data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/types.rb +10 -0
  1754. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/resource.rb +33 -0
  1755. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/types.rb +13 -0
  1756. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/resource.rb +28 -0
  1757. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/types.rb +12 -0
  1758. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/resource.rb +30 -0
  1759. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/types.rb +14 -0
  1760. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/resource.rb +26 -0
  1761. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/types.rb +10 -0
  1762. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/resource.rb +26 -0
  1763. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/types.rb +10 -0
  1764. data/lib/pangea/resources/cloudflare_zone/resource.rb +71 -0
  1765. data/lib/pangea/resources/cloudflare_zone/types.rb +62 -0
  1766. data/lib/pangea/resources/cloudflare_zone_cache_reserve/resource.rb +27 -0
  1767. data/lib/pangea/resources/cloudflare_zone_cache_reserve/types.rb +11 -0
  1768. data/lib/pangea/resources/cloudflare_zone_cache_variants/resource.rb +27 -0
  1769. data/lib/pangea/resources/cloudflare_zone_cache_variants/types.rb +11 -0
  1770. data/lib/pangea/resources/cloudflare_zone_dns_settings/resource.rb +27 -0
  1771. data/lib/pangea/resources/cloudflare_zone_dns_settings/types.rb +11 -0
  1772. data/lib/pangea/resources/cloudflare_zone_dnssec/resource.rb +96 -0
  1773. data/lib/pangea/resources/cloudflare_zone_dnssec/types.rb +81 -0
  1774. data/lib/pangea/resources/cloudflare_zone_hold/resource.rb +26 -0
  1775. data/lib/pangea/resources/cloudflare_zone_hold/types.rb +10 -0
  1776. data/lib/pangea/resources/cloudflare_zone_lockdown/resource.rb +27 -0
  1777. data/lib/pangea/resources/cloudflare_zone_lockdown/types.rb +11 -0
  1778. data/lib/pangea/resources/cloudflare_zone_settings_override/resource.rb +80 -0
  1779. data/lib/pangea/resources/cloudflare_zone_settings_override/types.rb +64 -0
  1780. data/lib/pangea/resources/cloudflare_zone_subscription/resource.rb +26 -0
  1781. data/lib/pangea/resources/cloudflare_zone_subscription/types.rb +10 -0
  1782. data/lib/pangea/resources/composition/auto_scaling_web_tier.rb +179 -0
  1783. data/lib/pangea/resources/composition/composite_auto_scaling_reference.rb +63 -0
  1784. data/lib/pangea/resources/composition/composite_vpc_reference.rb +73 -0
  1785. data/lib/pangea/resources/composition/composite_web_server_reference.rb +46 -0
  1786. data/lib/pangea/resources/composition/helpers.rb +75 -0
  1787. data/lib/pangea/resources/composition/vpc_with_subnets.rb +143 -0
  1788. data/lib/pangea/resources/composition/web_server.rb +72 -0
  1789. data/lib/pangea/resources/composition.rb +14 -510
  1790. data/lib/pangea/resources/event_driven_example/dynamodb_tables.rb +103 -0
  1791. data/lib/pangea/resources/event_driven_example/eventbridge_buses.rb +68 -0
  1792. data/lib/pangea/resources/event_driven_example/eventbridge_rules.rb +94 -0
  1793. data/lib/pangea/resources/event_driven_example/eventbridge_targets.rb +123 -0
  1794. data/lib/pangea/resources/event_driven_example.rb +48 -254
  1795. data/lib/pangea/resources/hcloud_certificate/resource.rb +50 -0
  1796. data/lib/pangea/resources/hcloud_certificate/types.rb +26 -0
  1797. data/lib/pangea/resources/hcloud_firewall/resource.rb +57 -0
  1798. data/lib/pangea/resources/hcloud_firewall/types.rb +25 -0
  1799. data/lib/pangea/resources/hcloud_firewall_attachment/resource.rb +40 -0
  1800. data/lib/pangea/resources/hcloud_firewall_attachment/types.rb +22 -0
  1801. data/lib/pangea/resources/hcloud_floating_ip/resource.rb +52 -0
  1802. data/lib/pangea/resources/hcloud_floating_ip/types.rb +28 -0
  1803. data/lib/pangea/resources/hcloud_floating_ip_assignment/resource.rb +40 -0
  1804. data/lib/pangea/resources/hcloud_floating_ip_assignment/types.rb +22 -0
  1805. data/lib/pangea/resources/hcloud_load_balancer/resource.rb +57 -0
  1806. data/lib/pangea/resources/hcloud_load_balancer/types.rb +28 -0
  1807. data/lib/pangea/resources/hcloud_load_balancer_network/resource.rb +43 -0
  1808. data/lib/pangea/resources/hcloud_load_balancer_network/types.rb +26 -0
  1809. data/lib/pangea/resources/hcloud_load_balancer_service/resource.rb +70 -0
  1810. data/lib/pangea/resources/hcloud_load_balancer_service/types.rb +29 -0
  1811. data/lib/pangea/resources/hcloud_load_balancer_target/resource.rb +45 -0
  1812. data/lib/pangea/resources/hcloud_load_balancer_target/types.rb +28 -0
  1813. data/lib/pangea/resources/hcloud_managed_certificate/resource.rb +49 -0
  1814. data/lib/pangea/resources/hcloud_managed_certificate/types.rb +25 -0
  1815. data/lib/pangea/resources/hcloud_network/resource.rb +48 -0
  1816. data/lib/pangea/resources/hcloud_network/types.rb +25 -0
  1817. data/lib/pangea/resources/hcloud_network_route/resource.rb +42 -0
  1818. data/lib/pangea/resources/hcloud_network_route/types.rb +23 -0
  1819. data/lib/pangea/resources/hcloud_network_subnet/resource.rb +44 -0
  1820. data/lib/pangea/resources/hcloud_network_subnet/types.rb +27 -0
  1821. data/lib/pangea/resources/hcloud_placement_group/resource.rb +48 -0
  1822. data/lib/pangea/resources/hcloud_placement_group/types.rb +25 -0
  1823. data/lib/pangea/resources/hcloud_primary_ip/resource.rb +52 -0
  1824. data/lib/pangea/resources/hcloud_primary_ip/types.rb +29 -0
  1825. data/lib/pangea/resources/hcloud_rdns/resource.rb +42 -0
  1826. data/lib/pangea/resources/hcloud_rdns/types.rb +23 -0
  1827. data/lib/pangea/resources/hcloud_server/resource.rb +91 -0
  1828. data/lib/pangea/resources/hcloud_server/types.rb +58 -0
  1829. data/lib/pangea/resources/hcloud_server_network/resource.rb +43 -0
  1830. data/lib/pangea/resources/hcloud_server_network/types.rb +26 -0
  1831. data/lib/pangea/resources/hcloud_snapshot/resource.rb +41 -0
  1832. data/lib/pangea/resources/hcloud_snapshot/types.rb +25 -0
  1833. data/lib/pangea/resources/hcloud_ssh_key/resource.rb +73 -0
  1834. data/lib/pangea/resources/hcloud_ssh_key/types.rb +38 -0
  1835. data/lib/pangea/resources/hcloud_uploaded_certificate/resource.rb +44 -0
  1836. data/lib/pangea/resources/hcloud_uploaded_certificate/types.rb +26 -0
  1837. data/lib/pangea/resources/hcloud_volume/resource.rb +53 -0
  1838. data/lib/pangea/resources/hcloud_volume/types.rb +28 -0
  1839. data/lib/pangea/resources/hcloud_volume_attachment/resource.rb +41 -0
  1840. data/lib/pangea/resources/hcloud_volume_attachment/types.rb +25 -0
  1841. data/lib/pangea/resources/hcloud_zone/resource.rb +40 -0
  1842. data/lib/pangea/resources/hcloud_zone/types.rb +24 -0
  1843. data/lib/pangea/resources/hcloud_zone_rrset/resource.rb +44 -0
  1844. data/lib/pangea/resources/hcloud_zone_rrset/types.rb +27 -0
  1845. data/lib/pangea/resources/network_helpers.rb +75 -0
  1846. data/lib/pangea/resources/reference/instance_computed_attributes.rb +78 -0
  1847. data/lib/pangea/resources/reference/subnet_computed_attributes.rb +60 -0
  1848. data/lib/pangea/resources/reference/vpc_computed_attributes.rb +89 -0
  1849. data/lib/pangea/resources/reference.rb +43 -206
  1850. data/lib/pangea/resources/types/aws/compute.rb +103 -0
  1851. data/lib/pangea/resources/types/aws/core.rb +132 -0
  1852. data/lib/pangea/resources/types/aws/database.rb +37 -0
  1853. data/lib/pangea/resources/types/aws/iot.rb +181 -0
  1854. data/lib/pangea/resources/types/aws/iot_analytics.rb +57 -0
  1855. data/lib/pangea/resources/types/aws/load_balancer.rb +99 -0
  1856. data/lib/pangea/resources/types/aws/monitoring.rb +52 -0
  1857. data/lib/pangea/resources/types/aws/networking.rb +74 -0
  1858. data/lib/pangea/resources/types/aws/security.rb +138 -0
  1859. data/lib/pangea/resources/types/aws/storage.rb +60 -0
  1860. data/lib/pangea/resources/types/cloudflare/core.rb +130 -0
  1861. data/lib/pangea/resources/types/cloudflare/load_balancing.rb +104 -0
  1862. data/lib/pangea/resources/types/cloudflare/security.rb +107 -0
  1863. data/lib/pangea/resources/types/cloudflare/workers.rb +60 -0
  1864. data/lib/pangea/resources/types/core.rb +38 -0
  1865. data/lib/pangea/resources/types/hetzner/core.rb +136 -0
  1866. data/lib/pangea/resources/types/index.rb +38 -0
  1867. data/lib/pangea/resources/types.rb +2 -1216
  1868. data/lib/pangea/resources/validators/shared/aws_validators.rb +66 -0
  1869. data/lib/pangea/resources/validators/shared/format_validators.rb +79 -0
  1870. data/lib/pangea/resources/validators/shared/network_validators.rb +106 -0
  1871. data/lib/pangea/resources/validators/shared_validators.rb +49 -0
  1872. data/lib/pangea/utilities/ip_discovery.rb +109 -0
  1873. data/lib/pangea/utilities.rb +1 -0
  1874. data/lib/pangea/validation/base_validator.rb +104 -0
  1875. data/lib/pangea/validation/common_validation_rules.rb +92 -0
  1876. data/lib/pangea/validation/resource_validator.rb +36 -0
  1877. data/lib/pangea/validation/validator_manager.rb +200 -0
  1878. data/lib/pangea/validation/validators/aws_compute_validators.rb +66 -0
  1879. data/lib/pangea/validation/validators/aws_database_validators.rb +100 -0
  1880. data/lib/pangea/validation/validators/aws_network_validators.rb +135 -0
  1881. data/lib/pangea/validation.rb +2 -0
  1882. data/lib/pangea/version.rb +1 -1
  1883. data/lib/pangea.rb +8 -4
  1884. data/pangea.gemspec +4 -2
  1885. data/pkgs/products/pangea/deploy/configmap.yaml +67 -0
  1886. data/pkgs/products/pangea/deploy/crds/infrastructuretemplates.yaml +395 -0
  1887. data/pkgs/products/pangea/deploy/crds/pangeanamespaces.yaml +286 -0
  1888. data/pkgs/products/pangea/deploy/kustomization.yaml +54 -0
  1889. data/pkgs/products/pangea/deploy/namespace.yaml +6 -0
  1890. data/pkgs/products/pangea/deploy/operator-deployment.yaml +138 -0
  1891. data/pkgs/products/pangea/deploy/operator-service.yaml +23 -0
  1892. data/pkgs/products/pangea/deploy/rbac/role.yaml +106 -0
  1893. data/pkgs/products/pangea/deploy/rbac/rolebinding.yaml +15 -0
  1894. data/pkgs/products/pangea/deploy/rbac/serviceaccount.yaml +7 -0
  1895. data/pkgs/products/pangea/deploy/web-deployment.yaml +64 -0
  1896. data/pkgs/products/pangea/deploy/web-service.yaml +19 -0
  1897. data/synthesizer-tests.yaml +72 -0
  1898. metadata +1509 -309
  1899. data/CLAUDE.md +0 -626
  1900. data/OPEN_SOURCE_READINESS.md +0 -170
  1901. data/audit_results/vpc_resources_audit.json +0 -219
  1902. data/examples/basic-web-app/pangea.yaml +0 -36
  1903. data/examples/cicd-pipeline/pangea.yaml +0 -35
  1904. data/examples/data-processing/pangea.yaml +0 -57
  1905. data/examples/disaster-recovery/pangea.yaml +0 -62
  1906. data/examples/global-multi-region/pangea.yaml +0 -61
  1907. data/examples/microservices-platform/pangea.yaml +0 -35
  1908. data/examples/ml-platform/pangea.yaml +0 -58
  1909. data/examples/multi-environment/pangea.yaml +0 -71
  1910. data/examples/multi-tier-architecture/pangea.yaml +0 -49
  1911. data/examples/security-focused/pangea.yaml +0 -60
  1912. data/lib/pangea/architectures/CLAUDE.md +0 -425
  1913. data/lib/pangea/components/CLAUDE.md +0 -350
  1914. data/lib/pangea/components/application_load_balancer/CLAUDE.md +0 -224
  1915. data/lib/pangea/components/carbon_aware_compute/CLAUDE.md +0 -295
  1916. data/lib/pangea/components/green_data_lifecycle/CLAUDE.md +0 -353
  1917. data/lib/pangea/components/public_private_subnets/CLAUDE.md +0 -547
  1918. data/lib/pangea/components/secure_vpc/CLAUDE.md +0 -366
  1919. data/lib/pangea/components/spot_instance_carbon_optimizer/CLAUDE.md +0 -469
  1920. data/lib/pangea/components/sustainable_ml_training/CLAUDE.md +0 -653
  1921. data/lib/pangea/components/web_security_group/CLAUDE.md +0 -690
  1922. data/lib/pangea/components/web_tier_subnets/CLAUDE.md +0 -572
  1923. data/lib/pangea/resources/CLAUDE.md +0 -607
  1924. data/lib/pangea/resources/DATABASE_SERVICES_CLAUDE.md +0 -577
  1925. data/lib/pangea/resources/aws/audit_manager/CLAUDE.md +0 -778
  1926. data/lib/pangea/resources/aws/batch/CLAUDE.md +0 -965
  1927. data/lib/pangea/resources/aws/cloudformation/CLAUDE.md +0 -98
  1928. data/lib/pangea/resources/aws/detective/CLAUDE.md +0 -668
  1929. data/lib/pangea/resources/aws/extended_resources_CLAUDE.md +0 -470
  1930. data/lib/pangea/resources/aws/media_services_CLAUDE.md +0 -494
  1931. data/lib/pangea/resources/aws/opensearch.disabled/CLAUDE.md +0 -480
  1932. data/lib/pangea/resources/aws/security_lake/CLAUDE.md +0 -932
  1933. data/lib/pangea/resources/aws_acm_certificate/CLAUDE.md +0 -290
  1934. data/lib/pangea/resources/aws_acm_certificate_validation/CLAUDE.md +0 -437
  1935. data/lib/pangea/resources/aws_ami/CLAUDE.md +0 -253
  1936. data/lib/pangea/resources/aws_api_gateway_deployment/CLAUDE.md +0 -270
  1937. data/lib/pangea/resources/aws_api_gateway_integration/CLAUDE.md +0 -304
  1938. data/lib/pangea/resources/aws_api_gateway_method/CLAUDE.md +0 -235
  1939. data/lib/pangea/resources/aws_api_gateway_resource/CLAUDE.md +0 -215
  1940. data/lib/pangea/resources/aws_api_gateway_rest_api/CLAUDE.md +0 -152
  1941. data/lib/pangea/resources/aws_api_gateway_stage/CLAUDE.md +0 -308
  1942. data/lib/pangea/resources/aws_appstream_fleet/CLAUDE.md +0 -468
  1943. data/lib/pangea/resources/aws_appsync_datasource/CLAUDE.md +0 -479
  1944. data/lib/pangea/resources/aws_appsync_graphql_api/CLAUDE.md +0 -325
  1945. data/lib/pangea/resources/aws_appsync_resolver/CLAUDE.md +0 -459
  1946. data/lib/pangea/resources/aws_athena_database/CLAUDE.md +0 -276
  1947. data/lib/pangea/resources/aws_athena_named_query/CLAUDE.md +0 -385
  1948. data/lib/pangea/resources/aws_athena_workgroup/CLAUDE.md +0 -315
  1949. data/lib/pangea/resources/aws_autoscaling_attachment/CLAUDE.md +0 -226
  1950. data/lib/pangea/resources/aws_autoscaling_group/CLAUDE.md +0 -263
  1951. data/lib/pangea/resources/aws_autoscaling_lifecycle_hook/CLAUDE.md +0 -357
  1952. data/lib/pangea/resources/aws_autoscaling_notification/CLAUDE.md +0 -405
  1953. data/lib/pangea/resources/aws_autoscaling_policy/CLAUDE.md +0 -278
  1954. data/lib/pangea/resources/aws_autoscaling_schedule/CLAUDE.md +0 -219
  1955. data/lib/pangea/resources/aws_autoscaling_tag/CLAUDE.md +0 -443
  1956. data/lib/pangea/resources/aws_batch_compute_environment/CLAUDE.md +0 -571
  1957. data/lib/pangea/resources/aws_batch_job_definition/CLAUDE.md +0 -714
  1958. data/lib/pangea/resources/aws_batch_job_queue/CLAUDE.md +0 -585
  1959. data/lib/pangea/resources/aws_braket_device/CLAUDE.md +0 -331
  1960. data/lib/pangea/resources/aws_braket_quantum_task/CLAUDE.md +0 -188
  1961. data/lib/pangea/resources/aws_budgets_budget/CLAUDE.md +0 -304
  1962. data/lib/pangea/resources/aws_budgets_budget_action/CLAUDE.md +0 -357
  1963. data/lib/pangea/resources/aws_cloudformation_stack/CLAUDE.md +0 -244
  1964. data/lib/pangea/resources/aws_cloudformation_stack_set/CLAUDE.md +0 -309
  1965. data/lib/pangea/resources/aws_cloudfront_distribution/CLAUDE.md +0 -62
  1966. data/lib/pangea/resources/aws_cloudwatch_composite_alarm/CLAUDE.md +0 -288
  1967. data/lib/pangea/resources/aws_cloudwatch_dashboard/CLAUDE.md +0 -342
  1968. data/lib/pangea/resources/aws_cloudwatch_event_rule/CLAUDE.md +0 -568
  1969. data/lib/pangea/resources/aws_cloudwatch_event_target/CLAUDE.md +0 -625
  1970. data/lib/pangea/resources/aws_cloudwatch_log_destination/CLAUDE.md +0 -388
  1971. data/lib/pangea/resources/aws_cloudwatch_log_destination_policy/CLAUDE.md +0 -479
  1972. data/lib/pangea/resources/aws_cloudwatch_log_group/CLAUDE.md +0 -175
  1973. data/lib/pangea/resources/aws_cloudwatch_log_metric_filter/CLAUDE.md +0 -502
  1974. data/lib/pangea/resources/aws_cloudwatch_log_stream/CLAUDE.md +0 -260
  1975. data/lib/pangea/resources/aws_cloudwatch_log_subscription_filter/CLAUDE.md +0 -473
  1976. data/lib/pangea/resources/aws_cloudwatch_metric_alarm/CLAUDE.md +0 -317
  1977. data/lib/pangea/resources/aws_codeartifact_domain/CLAUDE.md +0 -54
  1978. data/lib/pangea/resources/aws_codeartifact_repository/CLAUDE.md +0 -55
  1979. data/lib/pangea/resources/aws_codebuild_project/CLAUDE.md +0 -304
  1980. data/lib/pangea/resources/aws_codecommit_repository/CLAUDE.md +0 -150
  1981. data/lib/pangea/resources/aws_codedeploy_application/CLAUDE.md +0 -312
  1982. data/lib/pangea/resources/aws_codedeploy_deployment_config/CLAUDE.md +0 -354
  1983. data/lib/pangea/resources/aws_codedeploy_deployment_group/CLAUDE.md +0 -342
  1984. data/lib/pangea/resources/aws_codepipeline/CLAUDE.md +0 -592
  1985. data/lib/pangea/resources/aws_codepipeline_webhook/CLAUDE.md +0 -449
  1986. data/lib/pangea/resources/aws_codestar_connection/CLAUDE.md +0 -55
  1987. data/lib/pangea/resources/aws_cognito_identity_pool/CLAUDE.md +0 -712
  1988. data/lib/pangea/resources/aws_cognito_user_pool/CLAUDE.md +0 -431
  1989. data/lib/pangea/resources/aws_cognito_user_pool_client/CLAUDE.md +0 -542
  1990. data/lib/pangea/resources/aws_cognito_user_pool_domain/CLAUDE.md +0 -524
  1991. data/lib/pangea/resources/aws_config_config_rule/CLAUDE.md +0 -381
  1992. data/lib/pangea/resources/aws_config_configuration_recorder/CLAUDE.md +0 -247
  1993. data/lib/pangea/resources/aws_config_delivery_channel/CLAUDE.md +0 -290
  1994. data/lib/pangea/resources/aws_customer_gateway/CLAUDE.md +0 -458
  1995. data/lib/pangea/resources/aws_db_instance/CLAUDE.md +0 -407
  1996. data/lib/pangea/resources/aws_db_parameter_group/CLAUDE.md +0 -285
  1997. data/lib/pangea/resources/aws_db_subnet_group/CLAUDE.md +0 -189
  1998. data/lib/pangea/resources/aws_device_farm_project/CLAUDE.md +0 -299
  1999. data/lib/pangea/resources/aws_docdb_certificate/CLAUDE.md +0 -96
  2000. data/lib/pangea/resources/aws_docdb_cluster/CLAUDE.md +0 -96
  2001. data/lib/pangea/resources/aws_docdb_cluster_endpoint/CLAUDE.md +0 -96
  2002. data/lib/pangea/resources/aws_docdb_cluster_instance/CLAUDE.md +0 -96
  2003. data/lib/pangea/resources/aws_docdb_cluster_parameter_group/CLAUDE.md +0 -96
  2004. data/lib/pangea/resources/aws_docdb_cluster_snapshot/CLAUDE.md +0 -96
  2005. data/lib/pangea/resources/aws_docdb_event_subscription/CLAUDE.md +0 -96
  2006. data/lib/pangea/resources/aws_docdb_global_cluster/CLAUDE.md +0 -96
  2007. data/lib/pangea/resources/aws_docdb_subnet_group/CLAUDE.md +0 -96
  2008. data/lib/pangea/resources/aws_dynamodb_global_table/CLAUDE.md +0 -184
  2009. data/lib/pangea/resources/aws_dynamodb_table/CLAUDE.md +0 -130
  2010. data/lib/pangea/resources/aws_ebs_volume/CLAUDE.md +0 -275
  2011. data/lib/pangea/resources/aws_ec2_transit_gateway/CLAUDE.md +0 -220
  2012. data/lib/pangea/resources/aws_ec2_transit_gateway_route/CLAUDE.md +0 -458
  2013. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table/CLAUDE.md +0 -384
  2014. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_association/CLAUDE.md +0 -409
  2015. data/lib/pangea/resources/aws_ec2_transit_gateway_route_table_propagation/CLAUDE.md +0 -433
  2016. data/lib/pangea/resources/aws_ec2_transit_gateway_vpc_attachment/CLAUDE.md +0 -326
  2017. data/lib/pangea/resources/aws_ecr_lifecycle_policy/CLAUDE.md +0 -56
  2018. data/lib/pangea/resources/aws_ecr_replication_configuration/CLAUDE.md +0 -55
  2019. data/lib/pangea/resources/aws_ecr_repository/CLAUDE.md +0 -54
  2020. data/lib/pangea/resources/aws_ecr_repository_policy/CLAUDE.md +0 -55
  2021. data/lib/pangea/resources/aws_ecs_cluster/CLAUDE.md +0 -218
  2022. data/lib/pangea/resources/aws_ecs_cluster_capacity_providers/CLAUDE.md +0 -191
  2023. data/lib/pangea/resources/aws_ecs_service/CLAUDE.md +0 -256
  2024. data/lib/pangea/resources/aws_ecs_task_definition/CLAUDE.md +0 -281
  2025. data/lib/pangea/resources/aws_ecs_task_definition/types_old.rb +0 -439
  2026. data/lib/pangea/resources/aws_efs_access_point/CLAUDE.md +0 -504
  2027. data/lib/pangea/resources/aws_efs_file_system/CLAUDE.md +0 -279
  2028. data/lib/pangea/resources/aws_efs_mount_target/CLAUDE.md +0 -361
  2029. data/lib/pangea/resources/aws_eip/CLAUDE.md +0 -325
  2030. data/lib/pangea/resources/aws_eip_association/CLAUDE.md +0 -96
  2031. data/lib/pangea/resources/aws_eks_addon/CLAUDE.md +0 -271
  2032. data/lib/pangea/resources/aws_eks_cluster/CLAUDE.md +0 -198
  2033. data/lib/pangea/resources/aws_eks_fargate_profile/CLAUDE.md +0 -266
  2034. data/lib/pangea/resources/aws_eks_node_group/CLAUDE.md +0 -258
  2035. data/lib/pangea/resources/aws_elasticache_cluster/CLAUDE.md +0 -240
  2036. data/lib/pangea/resources/aws_elasticache_parameter_group/CLAUDE.md +0 -334
  2037. data/lib/pangea/resources/aws_elasticache_subnet_group/CLAUDE.md +0 -286
  2038. data/lib/pangea/resources/aws_emr_cluster/CLAUDE.md +0 -660
  2039. data/lib/pangea/resources/aws_emr_instance_group/CLAUDE.md +0 -586
  2040. data/lib/pangea/resources/aws_emr_step/CLAUDE.md +0 -560
  2041. data/lib/pangea/resources/aws_eventbridge_bus/CLAUDE.md +0 -208
  2042. data/lib/pangea/resources/aws_eventbridge_rule/CLAUDE.md +0 -232
  2043. data/lib/pangea/resources/aws_eventbridge_target/CLAUDE.md +0 -260
  2044. data/lib/pangea/resources/aws_extended_resources_CLAUDE.md +0 -395
  2045. data/lib/pangea/resources/aws_fsx_lustre_filesystem/CLAUDE.md +0 -383
  2046. data/lib/pangea/resources/aws_gamelift_alias/CLAUDE.md +0 -261
  2047. data/lib/pangea/resources/aws_gamelift_build/CLAUDE.md +0 -233
  2048. data/lib/pangea/resources/aws_gamelift_fleet/CLAUDE.md +0 -191
  2049. data/lib/pangea/resources/aws_gamelift_game_session_queue/CLAUDE.md +0 -282
  2050. data/lib/pangea/resources/aws_gamelift_matchmaking_configuration/CLAUDE.md +0 -288
  2051. data/lib/pangea/resources/aws_glue_catalog_database/CLAUDE.md +0 -161
  2052. data/lib/pangea/resources/aws_glue_catalog_table/CLAUDE.md +0 -387
  2053. data/lib/pangea/resources/aws_glue_job/CLAUDE.md +0 -398
  2054. data/lib/pangea/resources/aws_glue_trigger/CLAUDE.md +0 -454
  2055. data/lib/pangea/resources/aws_iam_group/CLAUDE.md +0 -351
  2056. data/lib/pangea/resources/aws_iam_policy/CLAUDE.md +0 -278
  2057. data/lib/pangea/resources/aws_iam_role/CLAUDE.md +0 -419
  2058. data/lib/pangea/resources/aws_iam_role_policy_attachment/CLAUDE.md +0 -331
  2059. data/lib/pangea/resources/aws_iam_user/CLAUDE.md +0 -312
  2060. data/lib/pangea/resources/aws_instance/CLAUDE.md +0 -396
  2061. data/lib/pangea/resources/aws_internet_gateway/CLAUDE.md +0 -157
  2062. data/lib/pangea/resources/aws_iot_analytics_channel/CLAUDE.md +0 -3
  2063. data/lib/pangea/resources/aws_iot_analytics_datastore/CLAUDE.md +0 -3
  2064. data/lib/pangea/resources/aws_iot_certificate/CLAUDE.md +0 -361
  2065. data/lib/pangea/resources/aws_iot_device_defender_security_profile/CLAUDE.md +0 -3
  2066. data/lib/pangea/resources/aws_iot_policy/CLAUDE.md +0 -27
  2067. data/lib/pangea/resources/aws_iot_security_profile/CLAUDE.md +0 -3
  2068. data/lib/pangea/resources/aws_iot_thing/CLAUDE.md +0 -397
  2069. data/lib/pangea/resources/aws_iot_thing_type/CLAUDE.md +0 -526
  2070. data/lib/pangea/resources/aws_iot_topic_rule/CLAUDE.md +0 -11
  2071. data/lib/pangea/resources/aws_iot_topic_rule_destination/CLAUDE.md +0 -5
  2072. data/lib/pangea/resources/aws_key_pair/CLAUDE.md +0 -357
  2073. data/lib/pangea/resources/aws_kinesis_analytics_application/CLAUDE.md +0 -630
  2074. data/lib/pangea/resources/aws_kinesis_firehose_delivery_stream/CLAUDE.md +0 -532
  2075. data/lib/pangea/resources/aws_kinesis_stream/CLAUDE.md +0 -255
  2076. data/lib/pangea/resources/aws_kinesis_video_stream/CLAUDE.md +0 -595
  2077. data/lib/pangea/resources/aws_lambda_event_source_mapping/CLAUDE.md +0 -316
  2078. data/lib/pangea/resources/aws_lambda_function/CLAUDE.md +0 -255
  2079. data/lib/pangea/resources/aws_lambda_layer_version/CLAUDE.md +0 -322
  2080. data/lib/pangea/resources/aws_lambda_permission/CLAUDE.md +0 -276
  2081. data/lib/pangea/resources/aws_launch_template/CLAUDE.md +0 -269
  2082. data/lib/pangea/resources/aws_lb/CLAUDE.md +0 -411
  2083. data/lib/pangea/resources/aws_lb_listener/CLAUDE.md +0 -310
  2084. data/lib/pangea/resources/aws_lb_listener_certificate/CLAUDE.md +0 -463
  2085. data/lib/pangea/resources/aws_lb_listener_rule/CLAUDE.md +0 -502
  2086. data/lib/pangea/resources/aws_lb_target_group/CLAUDE.md +0 -271
  2087. data/lib/pangea/resources/aws_lb_target_group_attachment/CLAUDE.md +0 -560
  2088. data/lib/pangea/resources/aws_licensemanager_association/CLAUDE.md +0 -96
  2089. data/lib/pangea/resources/aws_licensemanager_grant/CLAUDE.md +0 -96
  2090. data/lib/pangea/resources/aws_licensemanager_grant_accepter/CLAUDE.md +0 -96
  2091. data/lib/pangea/resources/aws_licensemanager_license_configuration/CLAUDE.md +0 -96
  2092. data/lib/pangea/resources/aws_licensemanager_license_grant_accepter/CLAUDE.md +0 -96
  2093. data/lib/pangea/resources/aws_licensemanager_report_generator/CLAUDE.md +0 -96
  2094. data/lib/pangea/resources/aws_licensemanager_token/CLAUDE.md +0 -96
  2095. data/lib/pangea/resources/aws_managedblockchain_member/CLAUDE.md +0 -478
  2096. data/lib/pangea/resources/aws_managedblockchain_network/CLAUDE.md +0 -487
  2097. data/lib/pangea/resources/aws_managedblockchain_node/CLAUDE.md +0 -505
  2098. data/lib/pangea/resources/aws_media_live_channel/CLAUDE.md +0 -881
  2099. data/lib/pangea/resources/aws_media_live_input/CLAUDE.md +0 -729
  2100. data/lib/pangea/resources/aws_media_package_channel/CLAUDE.md +0 -698
  2101. data/lib/pangea/resources/aws_memorydb_acl/CLAUDE.md +0 -96
  2102. data/lib/pangea/resources/aws_memorydb_cluster/CLAUDE.md +0 -96
  2103. data/lib/pangea/resources/aws_memorydb_cluster_endpoint/CLAUDE.md +0 -96
  2104. data/lib/pangea/resources/aws_memorydb_multi_region_cluster/CLAUDE.md +0 -96
  2105. data/lib/pangea/resources/aws_memorydb_parameter_group/CLAUDE.md +0 -96
  2106. data/lib/pangea/resources/aws_memorydb_snapshot/CLAUDE.md +0 -96
  2107. data/lib/pangea/resources/aws_memorydb_subnet_group/CLAUDE.md +0 -96
  2108. data/lib/pangea/resources/aws_memorydb_user/CLAUDE.md +0 -96
  2109. data/lib/pangea/resources/aws_mobile_analytics_app/CLAUDE.md +0 -262
  2110. data/lib/pangea/resources/aws_nat_gateway/CLAUDE.md +0 -209
  2111. data/lib/pangea/resources/aws_neptune_cluster/CLAUDE.md +0 -96
  2112. data/lib/pangea/resources/aws_neptune_cluster_endpoint/CLAUDE.md +0 -96
  2113. data/lib/pangea/resources/aws_neptune_cluster_instance/CLAUDE.md +0 -96
  2114. data/lib/pangea/resources/aws_neptune_cluster_parameter_group/CLAUDE.md +0 -96
  2115. data/lib/pangea/resources/aws_neptune_cluster_snapshot/CLAUDE.md +0 -96
  2116. data/lib/pangea/resources/aws_neptune_event_subscription/CLAUDE.md +0 -96
  2117. data/lib/pangea/resources/aws_neptune_parameter_group/CLAUDE.md +0 -96
  2118. data/lib/pangea/resources/aws_neptune_subnet_group/CLAUDE.md +0 -96
  2119. data/lib/pangea/resources/aws_network_acl/CLAUDE.md +0 -96
  2120. data/lib/pangea/resources/aws_network_acl_rule/CLAUDE.md +0 -297
  2121. data/lib/pangea/resources/aws_network_interface/CLAUDE.md +0 -310
  2122. data/lib/pangea/resources/aws_pinpoint_app/CLAUDE.md +0 -363
  2123. data/lib/pangea/resources/aws_qldb_ledger/CLAUDE.md +0 -734
  2124. data/lib/pangea/resources/aws_qldb_stream/CLAUDE.md +0 -845
  2125. data/lib/pangea/resources/aws_ram_invitation_accepter/CLAUDE.md +0 -96
  2126. data/lib/pangea/resources/aws_ram_managed_permission/CLAUDE.md +0 -96
  2127. data/lib/pangea/resources/aws_ram_permission/CLAUDE.md +0 -96
  2128. data/lib/pangea/resources/aws_ram_permission_association/CLAUDE.md +0 -96
  2129. data/lib/pangea/resources/aws_ram_principal_association/CLAUDE.md +0 -96
  2130. data/lib/pangea/resources/aws_ram_resource_association/CLAUDE.md +0 -96
  2131. data/lib/pangea/resources/aws_ram_resource_share/CLAUDE.md +0 -96
  2132. data/lib/pangea/resources/aws_ram_resource_share_accepter/CLAUDE.md +0 -96
  2133. data/lib/pangea/resources/aws_ram_resource_share_invitation/CLAUDE.md +0 -96
  2134. data/lib/pangea/resources/aws_ram_sharing_with_organization/CLAUDE.md +0 -96
  2135. data/lib/pangea/resources/aws_rds_cluster/CLAUDE.md +0 -361
  2136. data/lib/pangea/resources/aws_rds_cluster_endpoint/CLAUDE.md +0 -279
  2137. data/lib/pangea/resources/aws_rds_cluster_instance/CLAUDE.md +0 -378
  2138. data/lib/pangea/resources/aws_rds_cluster_parameter_group/CLAUDE.md +0 -344
  2139. data/lib/pangea/resources/aws_rds_global_cluster/CLAUDE.md +0 -362
  2140. data/lib/pangea/resources/aws_redshift_cluster/CLAUDE.md +0 -358
  2141. data/lib/pangea/resources/aws_redshift_parameter_group/CLAUDE.md +0 -352
  2142. data/lib/pangea/resources/aws_redshift_snapshot_schedule/CLAUDE.md +0 -395
  2143. data/lib/pangea/resources/aws_redshift_subnet_group/CLAUDE.md +0 -274
  2144. data/lib/pangea/resources/aws_route/CLAUDE.md +0 -96
  2145. data/lib/pangea/resources/aws_route53_health_check/CLAUDE.md +0 -408
  2146. data/lib/pangea/resources/aws_route53_record/CLAUDE.md +0 -414
  2147. data/lib/pangea/resources/aws_route53_zone/CLAUDE.md +0 -363
  2148. data/lib/pangea/resources/aws_route_table/CLAUDE.md +0 -224
  2149. data/lib/pangea/resources/aws_route_table_association/CLAUDE.md +0 -401
  2150. data/lib/pangea/resources/aws_s3_access_point/CLAUDE.md +0 -211
  2151. data/lib/pangea/resources/aws_s3_bucket/CLAUDE.md +0 -140
  2152. data/lib/pangea/resources/aws_s3_bucket_cors_configuration/CLAUDE.md +0 -262
  2153. data/lib/pangea/resources/aws_s3_bucket_encryption/CLAUDE.md +0 -465
  2154. data/lib/pangea/resources/aws_s3_bucket_inventory/CLAUDE.md +0 -430
  2155. data/lib/pangea/resources/aws_s3_bucket_lifecycle_configuration/CLAUDE.md +0 -221
  2156. data/lib/pangea/resources/aws_s3_bucket_notification/CLAUDE.md +0 -358
  2157. data/lib/pangea/resources/aws_s3_bucket_object_lock_configuration/CLAUDE.md +0 -561
  2158. data/lib/pangea/resources/aws_s3_bucket_policy/CLAUDE.md +0 -234
  2159. data/lib/pangea/resources/aws_s3_bucket_public_access_block/CLAUDE.md +0 -528
  2160. data/lib/pangea/resources/aws_s3_bucket_replication_configuration/CLAUDE.md +0 -628
  2161. data/lib/pangea/resources/aws_s3_bucket_versioning/CLAUDE.md +0 -340
  2162. data/lib/pangea/resources/aws_s3_bucket_website_configuration/CLAUDE.md +0 -355
  2163. data/lib/pangea/resources/aws_s3_object/CLAUDE.md +0 -535
  2164. data/lib/pangea/resources/aws_sagemaker_domain/CLAUDE.md +0 -253
  2165. data/lib/pangea/resources/aws_secretsmanager_secret/CLAUDE.md +0 -528
  2166. data/lib/pangea/resources/aws_sfn_activity/CLAUDE.md +0 -571
  2167. data/lib/pangea/resources/aws_sfn_state_machine/CLAUDE.md +0 -464
  2168. data/lib/pangea/resources/aws_sns_subscription/CLAUDE.md +0 -289
  2169. data/lib/pangea/resources/aws_sns_topic/CLAUDE.md +0 -249
  2170. data/lib/pangea/resources/aws_sqs_queue/CLAUDE.md +0 -190
  2171. data/lib/pangea/resources/aws_sqs_queue_policy/CLAUDE.md +0 -227
  2172. data/lib/pangea/resources/aws_ssm_document/CLAUDE.md +0 -410
  2173. data/lib/pangea/resources/aws_ssm_maintenance_window/CLAUDE.md +0 -412
  2174. data/lib/pangea/resources/aws_ssm_parameter/CLAUDE.md +0 -355
  2175. data/lib/pangea/resources/aws_ssm_patch_baseline/CLAUDE.md +0 -509
  2176. data/lib/pangea/resources/aws_subnet/CLAUDE.md +0 -301
  2177. data/lib/pangea/resources/aws_timestream_access_policy/CLAUDE.md +0 -96
  2178. data/lib/pangea/resources/aws_timestream_batch_load_task/CLAUDE.md +0 -96
  2179. data/lib/pangea/resources/aws_timestream_database/CLAUDE.md +0 -96
  2180. data/lib/pangea/resources/aws_timestream_influx_db_instance/CLAUDE.md +0 -96
  2181. data/lib/pangea/resources/aws_timestream_scheduled_query/CLAUDE.md +0 -96
  2182. data/lib/pangea/resources/aws_timestream_table/CLAUDE.md +0 -96
  2183. data/lib/pangea/resources/aws_timestream_table_retention_properties/CLAUDE.md +0 -96
  2184. data/lib/pangea/resources/aws_volume_attachment/CLAUDE.md +0 -326
  2185. data/lib/pangea/resources/aws_vpc/CLAUDE.md +0 -184
  2186. data/lib/pangea/resources/aws_vpc_endpoint/CLAUDE.md +0 -483
  2187. data/lib/pangea/resources/aws_vpc_endpoint_service/CLAUDE.md +0 -313
  2188. data/lib/pangea/resources/aws_vpc_peering_connection/CLAUDE.md +0 -361
  2189. data/lib/pangea/resources/aws_vpc_peering_connection_accepter/CLAUDE.md +0 -248
  2190. data/lib/pangea/resources/aws_vpn_connection/CLAUDE.md +0 -420
  2191. data/lib/pangea/resources/aws_vpn_gateway/CLAUDE.md +0 -411
  2192. data/lib/pangea/resources/aws_wafv2_web_acl/CLAUDE.md +0 -788
  2193. data/lib/pangea/resources/aws_workspaces_bundle/CLAUDE.md +0 -412
  2194. data/lib/pangea/resources/aws_workspaces_directory/CLAUDE.md +0 -365
  2195. data/lib/pangea/resources/aws_workspaces_ip_group/CLAUDE.md +0 -421
  2196. data/lib/pangea/resources/aws_workspaces_workspace/CLAUDE.md +0 -322
  2197. data/pangea_test.yml +0 -19
  2198. data/shell.nix +0 -13
data/CLAUDE.md DELETED
@@ -1,626 +0,0 @@
1
- # Pangea Architecture
2
-
3
- ## Core Concept
4
-
5
- Pangea is a scalable, automation-first infrastructure management tool that addresses key Terraform/OpenTofu scalability challenges through:
6
-
7
- - **Template-level state isolation** (more granular than industry standard directory-based approaches)
8
- - **Configuration-driven namespace management** for multi-environment backends
9
- - **Ruby DSL compilation** to Terraform JSON for enhanced abstraction capabilities
10
- - **Automation-first design** with auto-approval and automatic initialization
11
- - **Non-interactive operation** designed explicitly for CI/CD and automation workflows
12
-
13
- This approach enables infrastructure management that scales with team size and complexity while reducing operational overhead. Unlike traditional Terraform approaches that rely on directory structures or monolithic state files, Pangea provides template-level granularity that matches how teams actually think about and manage infrastructure components.
14
-
15
- ## Resource Abstraction System
16
-
17
- **Type-Safe Resource Functions**: Pangea provides pure, type-safe functions for infrastructure resources that replace raw DSL blocks with strongly-typed interfaces:
18
-
19
- ### Traditional Approach (Raw DSL)
20
- ```ruby
21
- resource :aws_vpc, :main do
22
- cidr_block "10.0.0.0/16"
23
- enable_dns_hostnames true
24
- enable_dns_support true
25
- tags do
26
- Name "main-vpc"
27
- Environment "production"
28
- end
29
- end
30
- ```
31
-
32
- ### Pangea Resource Functions (Type-Safe)
33
- ```ruby
34
- aws_vpc(:main, {
35
- cidr_block: "10.0.0.0/16",
36
- enable_dns_hostnames: true,
37
- enable_dns_support: true,
38
- tags: {
39
- Name: "main-vpc",
40
- Environment: "production"
41
- }
42
- })
43
- ```
44
-
45
- **Benefits of Resource Abstraction:**
46
- - **Type Safety**: RBS definitions provide compile-time checking, dry-struct provides runtime validation
47
- - **IDE Support**: Better autocomplete, parameter hints, and error detection
48
- - **Pure Functions**: No side effects, easier to test and reason about
49
- - **Consistent Interface**: All resources follow the same `resource_type(name, attributes)` pattern
50
- - **Default Values**: Functions provide sensible defaults and computed attributes
51
- - **Custom Validation**: Beyond basic types, functions can enforce business rules
52
-
53
- **Resource Function Architecture:**
54
- - Functions accept a symbol name and a typed attributes hash
55
- - Attributes are validated using dry-struct for runtime safety
56
- - RBS type definitions provide compile-time safety in IDEs
57
- - Functions generate standard terraform-synthesizer resource blocks
58
- - Complete documentation available in `lib/pangea/resources/CLAUDE.md`
59
-
60
- ## Template Structure
61
-
62
- Ruby files contain one or more template declarations using type-safe resource functions:
63
-
64
- ```ruby
65
- template :networking do
66
- provider :aws do
67
- region "us-east-1"
68
- end
69
-
70
- # Type-safe VPC creation with validation
71
- aws_vpc(:main, {
72
- cidr_block: "10.0.0.0/16",
73
- enable_dns_hostnames: true,
74
- enable_dns_support: true,
75
- tags: { Name: "main-vpc", Environment: "production" }
76
- })
77
-
78
- # Type-safe subnet creation with references
79
- aws_subnet(:public_a, {
80
- vpc_id: ref(:aws_vpc, :main, :id),
81
- cidr_block: "10.0.1.0/24",
82
- availability_zone: "us-east-1a",
83
- map_public_ip_on_launch: true,
84
- tags: { Name: "public-subnet-a", Type: "public" }
85
- })
86
- end
87
-
88
- template :compute do
89
- provider :aws do
90
- region "us-east-1"
91
- end
92
-
93
- # Type-safe EC2 instance with strict attribute validation
94
- aws_instance(:web, {
95
- ami: "ami-12345678",
96
- instance_type: "t3.micro",
97
- subnet_id: ref(:aws_subnet, :public_a, :id),
98
- tags: { Name: "web-server", Type: "application" }
99
- })
100
- end
101
- ```
102
-
103
- ## Scalable Workspace Management
104
-
105
- **Template-Level Isolation Pattern:**
106
- - Each `template :name` block creates a separate workspace with isolated state
107
- - Workspace name = template name for clear identification
108
- - All workspaces within a namespace share backend configuration but have separate state files
109
- - Complete isolation prevents template conflicts and reduces blast radius
110
- - Each template gets its own Terraform workspace directory and state file
111
-
112
- **Key Innovation - Template-Based State Isolation:**
113
- This is more granular than industry standard approaches:
114
- - **Industry Standard**: Directory-based (one directory = one state file)
115
- - **Pangea Approach**: Template-based (multiple templates in one file = multiple state files)
116
- - **Result**: Better organization, clearer ownership, reduced state conflicts
117
-
118
- **Scalability Benefits:**
119
- - **Parallel Development**: Teams can work on different templates simultaneously without state conflicts
120
- - **Granular Deployments**: Deploy/rollback individual infrastructure components independently
121
- - **Reduced Risk**: Template failures don't affect other templates due to complete state isolation
122
- - **State Management**: Automatic state key generation prevents conflicts across templates and namespaces
123
- - **Component Ownership**: Teams can own specific templates within shared infrastructure files
124
-
125
- **Directory Structure:**
126
- ```
127
- ~/.pangea/workspaces/
128
- ├── production/
129
- │ ├── web_infrastructure/ # Template workspace
130
- │ ├── database/ # Template workspace
131
- │ ├── monitoring/ # Template workspace
132
- │ └── cdn/ # Template workspace
133
- └── development/
134
- ├── web_infrastructure/
135
- └── database/
136
- ```
137
-
138
- ## Multi-Environment Namespace Management
139
-
140
- **Configuration-Driven Backend Pattern:**
141
- Namespaces define environment-specific state backend configurations, enabling scalable multi-environment management:
142
-
143
- ```yaml
144
- default_namespace: development # Reduces CLI verbosity
145
-
146
- namespaces:
147
- # Local development - fast iteration
148
- development:
149
- description: "Local development environment"
150
- state:
151
- type: local
152
- path: "terraform.tfstate"
153
-
154
- # Staging - production-like testing
155
- staging:
156
- description: "Staging environment with production backend"
157
- state:
158
- type: s3
159
- bucket: "terraform-state-staging"
160
- key: "pangea/staging/terraform.tfstate"
161
- region: "us-east-1"
162
- dynamodb_table: "terraform-state-lock-staging"
163
- encrypt: true
164
-
165
- # Production - high security, separate AWS account
166
- production:
167
- description: "Production environment"
168
- state:
169
- type: s3
170
- bucket: "terraform-state-prod"
171
- key: "pangea/production/terraform.tfstate"
172
- region: "us-east-1"
173
- dynamodb_table: "terraform-state-lock-prod"
174
- encrypt: true
175
- kms_key_id: "arn:aws:kms:us-east-1:...:key/..."
176
-
177
- # Multi-region production
178
- production_eu:
179
- description: "Production EU region"
180
- state:
181
- type: s3
182
- bucket: "terraform-state-prod-eu"
183
- key: "pangea/production-eu/terraform.tfstate"
184
- region: "eu-west-1"
185
- dynamodb_table: "terraform-state-lock-prod-eu"
186
- ```
187
-
188
- **Backend State Key Generation:**
189
- For each template, Pangea automatically generates unique state keys:
190
- - S3 Backend: `${configured_key}/${template_name}/terraform.tfstate`
191
- - Local Backend: Separate directories per template
192
-
193
- **Scalability Advantages:**
194
- - **Environment Proliferation**: Easy to add new environments (DR, testing, etc.)
195
- - **Security Boundaries**: Different backends for different security requirements
196
- - **Cost Optimization**: Local backends for development, S3 for production
197
- - **Geographic Distribution**: Support for multi-region deployments
198
-
199
- ## Commands
200
-
201
- **Minimalist Command Set**: Only three commands exist for focused, automation-first operation:
202
-
203
- ### `pangea plan <file> [--namespace <ns>] [--template <name>]`
204
-
205
- - **Purpose**: Preview infrastructure changes without applying them
206
- - **Template Processing**: If `--template` omitted, processes all templates in the file
207
- - **Namespace**: If `--namespace` omitted, uses `default_namespace` from configuration
208
- - **Output**: Colorized Terraform plan showing proposed changes
209
- - **Automation**: Safe to run in CI/CD pipelines - no state changes
210
-
211
- ### `pangea apply <file> [--namespace <ns>] [--template <name>] [--no-auto-approve]`
212
-
213
- - **Purpose**: Apply infrastructure changes for specified template(s)
214
- - **Auto-Approval**: Auto-approves by default for streamlined automation
215
- - **Manual Confirmation**: Use `--no-auto-approve` for rare cases requiring explicit confirmation
216
- - **Template Isolation**: Each template applies to its own isolated workspace
217
- - **Backend Management**: Automatic backend initialization and configuration
218
-
219
- ### `pangea destroy <file> [--namespace <ns>] [--template <name>] [--no-auto-approve]`
220
-
221
- - **Purpose**: Destroy infrastructure for specified template(s)
222
- - **Auto-Approval**: Auto-approves by default for automation workflows
223
- - **Safety**: Template isolation limits blast radius to single template's resources
224
- - **Manual Confirmation**: Use `--no-auto-approve` when human oversight is required
225
- - **Cleanup**: Automatic workspace and state cleanup after successful destruction
226
-
227
- ## Implementation Notes
228
-
229
- **Design Philosophy**: Automation-first, non-interactive infrastructure management
230
-
231
- - **No `init` command** - initialization happens automatically when needed, reducing operational steps
232
- - **Non-interactive design** - all operations are argument-driven for seamless CI/CD compatibility
233
- - **Auto-approval by default** - streamlined automation with explicit opt-in confirmation (`--no-auto-approve`)
234
- - **Default namespace support** - eliminates repetitive `--namespace` flags through configuration
235
- - **Template-based workspace isolation** - more granular than industry standard directory-based approaches
236
- - **Cross-provider templates** - templates can reference different providers/regions within same file
237
- - **Automatic state separation** - prevents template interference through completely isolated state files
238
- - **Ruby DSL compilation** - templates compiled to Terraform JSON using terraform-synthesizer library
239
- - **Configuration-driven backends** - namespace configuration automatically manages state backends
240
-
241
- ## Scalability Patterns Enabled
242
-
243
- ### 1. Component-Based Infrastructure
244
- ```ruby
245
- # Single file, multiple logical components
246
- template :networking do
247
- # VPC, subnets, security groups
248
- end
249
-
250
- template :compute do
251
- # EC2, ASG, load balancers
252
- end
253
-
254
- template :data do
255
- # RDS, ElastiCache, S3
256
- end
257
- ```
258
-
259
- ### 2. Service-Oriented Infrastructure
260
- ```ruby
261
- # user-service.rb
262
- template :api do
263
- # API infrastructure
264
- end
265
-
266
- template :database do
267
- # Service-specific database
268
- end
269
-
270
- template :cache do
271
- # Service-specific cache
272
- end
273
- ```
274
-
275
- ### 3. Environment Promotion Pattern
276
- ```bash
277
- # Develop locally
278
- pangea plan app.rb --namespace development
279
- pangea apply app.rb --namespace development
280
-
281
- # Test in staging
282
- pangea plan app.rb --namespace staging
283
- pangea apply app.rb --namespace staging
284
-
285
- # Deploy to production
286
- pangea plan app.rb --namespace production
287
- pangea apply app.rb --namespace production
288
- ```
289
-
290
- ### 4. Incremental Infrastructure Delivery
291
- ```bash
292
- # Deploy foundation
293
- pangea apply infrastructure.rb --template networking
294
- pangea apply infrastructure.rb --template security
295
-
296
- # Deploy applications incrementally
297
- pangea apply applications.rb --template user_service
298
- pangea apply applications.rb --template order_service
299
- pangea apply applications.rb --template payment_service
300
-
301
- # Deploy monitoring after apps are stable
302
- pangea apply observability.rb --template monitoring
303
- ```
304
-
305
- ## Advantages Over Traditional Approaches
306
-
307
- **Pangea addresses fundamental scalability challenges in existing Terraform tooling:**
308
-
309
- ### vs. Directory-Based Terraform
310
- - **Reduced File Sprawl**: Multiple templates in single files vs scattered directories
311
- - **Automatic Backend Management**: No manual backend configuration per component
312
- - **Ruby DSL Power**: Better abstraction than HCL for complex logic and conditionals
313
- - **State Organization**: Template-based isolation vs directory-based organization
314
- - **Code Reuse**: Shared helper methods and logic within files
315
-
316
- ### vs. Terragrunt
317
- - **Configuration Simplicity**: Single YAML file vs multiple terragrunt.hcl files across directories
318
- - **Template Isolation**: Built-in template-level isolation vs manual workspace management
319
- - **Ruby Ecosystem**: Access to full Ruby library ecosystem for infrastructure logic
320
- - **No DRY Complexity**: Templates handle repetition naturally vs complex DRY configurations
321
- - **Dependency Management**: Remote state references vs complex dependency declarations
322
-
323
- ### vs. Terraform Workspaces
324
- - **True State Isolation**: Completely separate state files vs shared backend with workspace prefixes
325
- - **Security Boundaries**: No cross-template state access vs potential workspace bleed
326
- - **Template Granularity**: Template-specific configurations vs workspace-level configurations
327
- - **Operational Clarity**: Template names match infrastructure components vs abstract workspace names
328
-
329
- ### vs. Terraform Cloud/Enterprise
330
- - **Local Control**: No dependency on external SaaS platforms
331
- - **Cost Efficiency**: No per-user or per-run pricing
332
- - **Template Flexibility**: Ruby DSL vs HCL limitations
333
- - **State Backends**: Direct backend control vs platform-managed state
334
- - **Automation Integration**: Direct CLI integration vs API/webhook complexity
335
-
336
- ## Enterprise Scalability Considerations
337
-
338
- ### Team Collaboration Patterns
339
- - **Template Ownership**: Teams can own specific templates within shared infrastructure files
340
- - **Independent Deployment**: Templates deploy independently without coordination overhead
341
- - **Code Review**: Ruby DSL enables better code review practices with familiar syntax
342
- - **Parallel Development**: Multiple teams can work simultaneously without state conflicts
343
- - **Knowledge Sharing**: Ruby familiarity reduces infrastructure-as-code learning curve
344
-
345
- ### Infrastructure Evolution Strategies
346
- - **Gradual Migration**: Migrate infrastructure template by template from existing tools
347
- - **A/B Infrastructure**: Run multiple versions of templates simultaneously for testing
348
- - **Component Lifecycle**: Independent lifecycle management per template enables selective updates
349
- - **Template Versioning**: Ruby files can be version controlled with standard Git workflows
350
- - **Incremental Delivery**: Deploy infrastructure components incrementally as dependencies are satisfied
351
-
352
- ### Operational Excellence Benefits
353
- - **Blast Radius Reduction**: Template failures are completely isolated to single components
354
- - **Deployment Flexibility**: Deploy subsets of infrastructure based on change requirements
355
- - **State Management**: Automatic state file organization, cleanup, and conflict prevention
356
- - **Monitoring Integration**: Each template can define its own monitoring and alerting resources
357
- - **Rollback Granularity**: Roll back individual templates without affecting entire infrastructure
358
-
359
- ### CI/CD Integration Patterns
360
- - **Pipeline Efficiency**: Only plan/apply templates that have changed in commits
361
- - **Environment Promotion**: Same template files work across all environments via namespace configuration
362
- - **Approval Workflows**: Use `--no-auto-approve` for production deployments requiring human approval
363
- - **Testing Integration**: Template isolation enables infrastructure testing in parallel
364
- - **Deployment Orchestration**: Template dependencies can be managed through CI/CD pipeline ordering
365
-
366
- ## Terraform Resource Processing
367
-
368
- **Ruby DSL to Terraform JSON Compilation:**
369
-
370
- Template blocks are processed using the underlying `terraform-synthesizer` library to convert Ruby DSL into Terraform-compliant JSON:
371
-
372
- ### Compilation Flow
373
- 1. **Template Extraction**: Parse Ruby files to extract `template :name do...end` blocks
374
- 2. **DSL Processing**: Use `TerraformSynthesizer` to evaluate Ruby DSL within template context
375
- 3. **JSON Generation**: Convert synthesized Hash to Terraform-compatible JSON
376
- 4. **Workspace Isolation**: Write JSON to template-specific workspace directory
377
- 5. **Backend Injection**: Automatically inject namespace backend configuration
378
-
379
- ### Synthesizer Interface
380
- ```ruby
381
- synthesizer = TerraformSynthesizer.new
382
- synthesizer.instance_eval(template_content, source_file, 1)
383
-
384
- # Backend configuration is automatically injected
385
- backend_config = namespace.to_terraform_backend
386
- backend_config[:s3][:key] = "#{original_key}/#{template_name}"
387
-
388
- synthesizer.synthesize do
389
- terraform do
390
- backend(backend_config)
391
- end
392
- end
393
-
394
- tf_hash = synthesizer.synthesis # Returns Hash
395
- tf_json = JSON.pretty_generate(tf_hash) # Convert to JSON
396
- ```
397
-
398
- ### Template Processing Architecture
399
- - **Isolated Evaluation**: Each template evaluates in its own synthesizer context
400
- - **Automatic Backend Injection**: Namespace configuration automatically generates backend blocks
401
- - **State Key Generation**: Template names automatically generate unique state keys
402
- - **Resource Validation**: Compilation validates resource syntax before Terraform execution
403
- - **Error Handling**: Syntax errors are captured with line number context for debugging
404
-
405
- This compilation approach enables the Ruby DSL abstraction while maintaining full Terraform compatibility and feature support.
406
-
407
- ## Architecture Abstraction System
408
-
409
- **Complete Infrastructure Solutions**: Beyond type-safe resource functions, Pangea provides architecture-level abstractions that compose entire infrastructure patterns using pure functions and comprehensive type safety:
410
-
411
- ### Architecture Hierarchy
412
-
413
- ```
414
- Architecture Functions (Highest Level - Complete Solutions)
415
- ↓ uses
416
- Resource Functions (Mid Level - Individual Resources)
417
- ↓ uses
418
- Terraform Synthesizer (Low Level - Raw Terraform DSL)
419
- ```
420
-
421
- ### Architecture vs Resource vs Raw DSL
422
-
423
- **Raw Terraform DSL** (Lowest Level):
424
- ```ruby
425
- resource :aws_vpc, :main do
426
- cidr_block "10.0.0.0/16"
427
- enable_dns_hostnames true
428
- end
429
-
430
- resource :aws_subnet, :public_a do
431
- vpc_id ref(:aws_vpc, :main, :id)
432
- cidr_block "10.0.1.0/24"
433
- availability_zone "us-east-1a"
434
- end
435
-
436
- # ... dozens more resources for complete application
437
- ```
438
-
439
- **Resource Functions** (Mid Level):
440
- ```ruby
441
- vpc_ref = aws_vpc(:main, {
442
- cidr_block: "10.0.0.0/16",
443
- enable_dns_hostnames: true
444
- })
445
-
446
- subnet_ref = aws_subnet(:public_a, {
447
- vpc_id: vpc_ref.id,
448
- cidr_block: "10.0.1.0/24",
449
- availability_zone: "us-east-1a"
450
- })
451
-
452
- # ... still need to compose many resources manually
453
- ```
454
-
455
- **Architecture Functions** (Highest Level):
456
- ```ruby
457
- web_app = web_application_architecture(:myapp, {
458
- domain: "myapp.com",
459
- environment: "production",
460
- high_availability: true,
461
- auto_scaling: { min: 2, max: 10 },
462
- database_engine: "postgresql"
463
- })
464
-
465
- # Creates complete 3-tier architecture:
466
- # - VPC with public/private subnets across multiple AZs
467
- # - Application Load Balancer with SSL termination
468
- # - Auto Scaling Group with launch template
469
- # - RDS PostgreSQL database with backups
470
- # - CloudWatch monitoring and alarms
471
- # - Security groups with least privilege access
472
- # - S3 buckets for assets and logs
473
- ```
474
-
475
- ### Architecture Function Categories
476
-
477
- **1. Application Architectures**
478
- Complete application stacks with web, app, and data tiers:
479
- - `web_application_architecture`: Standard 3-tier web application with load balancer, auto-scaling, and database
480
- - `single_page_application_architecture`: SPA with CDN and API backend
481
- - `mobile_backend_architecture`: Mobile app backend with push notifications
482
- - `api_first_architecture`: API-centric architecture with multiple frontends
483
-
484
- **2. Data Architectures**
485
- Data processing, storage, and analytics patterns:
486
- - `data_lake_architecture`: S3-based data lake with Kinesis ingestion, Glue ETL, and Athena/Redshift analytics
487
- - `streaming_data_architecture`: Real-time streaming with Kinesis Analytics and multi-destination outputs
488
- - `data_warehouse_architecture`: Redshift/Snowflake analytical warehouse with data pipeline
489
- - `batch_processing_architecture`: EMR/Glue batch data processing with scheduling
490
-
491
- **3. Microservices Architectures**
492
- Service-oriented and microservices patterns:
493
- - `microservices_platform_architecture`: Service mesh with ECS/EKS, service discovery, and shared services
494
- - `microservice_architecture`: Individual microservice with database, monitoring, and platform integration
495
- - `event_driven_architecture`: Event-sourcing with SQS/SNS message queues
496
- - `serverless_microservices_architecture`: Lambda-based microservices with API Gateway
497
-
498
- ### Architecture Function Benefits
499
-
500
- **1. Complete Solutions**: Production-ready infrastructure patterns out of the box
501
- - All necessary resources created automatically
502
- - Best practices encoded in architecture functions
503
- - Security, monitoring, and scaling built-in by default
504
-
505
- **2. Type Safety and Validation**
506
- - `dry-struct` validation of architecture parameters
507
- - Rich `ArchitectureReference` return values with all created resources
508
- - RBS support for compile-time type checking
509
- - Runtime validation of configuration compatibility
510
-
511
- **3. Override and Customization**
512
- - Override any component while maintaining overall pattern
513
- - Extend architectures with additional resources
514
- - Compose multiple architectures together
515
- - Parameter-driven customization for all aspects
516
-
517
- **4. Multi-Architecture Composition**
518
- - Cross-architecture resource sharing and references
519
- - Computed outputs derived from resource properties
520
- - Architecture-level health checks and validation
521
- - Cost estimation and security compliance scoring
522
-
523
- ### Architecture Function Usage in Templates
524
-
525
- Architecture functions integrate seamlessly with Pangea templates:
526
-
527
- ```ruby
528
- template :complete_ecommerce_platform do
529
- include Pangea::Architectures::Patterns
530
-
531
- # Create complete e-commerce platform with web app, microservices, and analytics
532
- platform = ecommerce_platform_architecture(:mystore, {
533
- domain: "mystore.com",
534
- environment: "production",
535
- regions: ["us-east-1", "us-west-2"]
536
- })
537
-
538
- # Override specific components
539
- platform.web_application.override(:database) do |arch_ref|
540
- aurora_serverless_cluster(:"#{arch_ref.name}_db", {
541
- engine: "aurora-postgresql",
542
- vpc_ref: arch_ref.network.vpc,
543
- scaling: { min_capacity: 2, max_capacity: 16 }
544
- })
545
- end
546
-
547
- # Template outputs from architecture
548
- output :web_app_url do
549
- value platform.web_application.load_balancer.dns_name
550
- end
551
-
552
- output :microservices_cluster do
553
- value platform.microservices_platform.compute[:cluster].name
554
- end
555
-
556
- output :analytics_bucket do
557
- value platform.analytics.storage[:processed_bucket].bucket
558
- end
559
-
560
- output :estimated_monthly_cost do
561
- value platform.estimated_monthly_cost
562
- description "Estimated monthly AWS cost for complete platform"
563
- end
564
- end
565
- ```
566
-
567
- ### Real-World Architecture Examples
568
-
569
- **Complete E-commerce Platform**:
570
- ```ruby
571
- ecommerce = ecommerce_platform_architecture(:mystore, {
572
- domain: "mystore.com",
573
- environment: "production"
574
- })
575
-
576
- # Creates:
577
- # - Web application (ALB + Auto Scaling + RDS)
578
- # - Microservices platform (ECS + service mesh)
579
- # - Individual services (user, inventory, order, payment)
580
- # - Data analytics pipeline (data lake + streaming)
581
- # - Cross-service communication and monitoring
582
- ```
583
-
584
- **Multi-Region SaaS Platform**:
585
- ```ruby
586
- saas = multi_region_saas_architecture(:saas_app, {
587
- primary_region: "us-east-1",
588
- secondary_region: "us-west-2",
589
- domain: "saas-app.com"
590
- })
591
-
592
- # Creates:
593
- # - Primary region deployment with full stack
594
- # - Secondary region for disaster recovery
595
- # - Global streaming data architecture
596
- # - Cross-region data replication
597
- ```
598
-
599
- **AI/ML Platform**:
600
- ```ruby
601
- ml_platform = ml_platform_architecture(:ai_platform, {
602
- domain: "ml.company.com",
603
- environment: "production"
604
- })
605
-
606
- # Creates:
607
- # - Data lake with S3 + processing pipelines
608
- # - Real-time streaming for model inference
609
- # - Web application for model management
610
- # - SageMaker training and inference endpoints
611
- # - Model registry and versioning
612
- ```
613
-
614
- ### Architecture System Location
615
-
616
- All architecture abstractions are located in:
617
- - **Base Framework**: `lib/pangea/architectures/base.rb`
618
- - **Architecture Patterns**: `lib/pangea/architectures/patterns/`
619
- - `web_application.rb`: 3-tier web application patterns
620
- - `microservices.rb`: Service mesh and microservice patterns
621
- - `data_processing.rb`: Data lake and streaming patterns
622
- - **Composition Examples**: `lib/pangea/architectures/examples.rb`
623
- - **Documentation**: `lib/pangea/architectures/CLAUDE.md`
624
-
625
- This architecture abstraction system represents the highest level of infrastructure composition in Pangea, enabling teams to deploy production-ready infrastructure patterns with a single function call while maintaining full customization and override capabilities.
626
-