pangea-cloudflare 0.1.0

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 (445) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.rspec_status +504 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +88 -0
  6. data/LICENSE +201 -0
  7. data/Rakefile +8 -0
  8. data/flake.lock +835 -0
  9. data/flake.nix +60 -0
  10. data/gemset.nix +272 -0
  11. data/lib/pangea/resources/cloudflare.rb +213 -0
  12. data/lib/pangea/resources/cloudflare_access_rule/resource.rb +71 -0
  13. data/lib/pangea/resources/cloudflare_access_rule/types.rb +93 -0
  14. data/lib/pangea/resources/cloudflare_account/resource.rb +28 -0
  15. data/lib/pangea/resources/cloudflare_account/types.rb +12 -0
  16. data/lib/pangea/resources/cloudflare_account_dns_settings/resource.rb +27 -0
  17. data/lib/pangea/resources/cloudflare_account_dns_settings/types.rb +11 -0
  18. data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/resource.rb +27 -0
  19. data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/types.rb +11 -0
  20. data/lib/pangea/resources/cloudflare_account_member/resource.rb +29 -0
  21. data/lib/pangea/resources/cloudflare_account_member/types.rb +13 -0
  22. data/lib/pangea/resources/cloudflare_account_subscription/resource.rb +27 -0
  23. data/lib/pangea/resources/cloudflare_account_subscription/types.rb +11 -0
  24. data/lib/pangea/resources/cloudflare_account_token/resource.rb +27 -0
  25. data/lib/pangea/resources/cloudflare_account_token/types.rb +11 -0
  26. data/lib/pangea/resources/cloudflare_address_map/resource.rb +26 -0
  27. data/lib/pangea/resources/cloudflare_address_map/types.rb +10 -0
  28. data/lib/pangea/resources/cloudflare_api_shield/resource.rb +27 -0
  29. data/lib/pangea/resources/cloudflare_api_shield/types.rb +11 -0
  30. data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/resource.rb +27 -0
  31. data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/types.rb +11 -0
  32. data/lib/pangea/resources/cloudflare_api_shield_operation/resource.rb +30 -0
  33. data/lib/pangea/resources/cloudflare_api_shield_operation/types.rb +13 -0
  34. data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/resource.rb +27 -0
  35. data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/types.rb +11 -0
  36. data/lib/pangea/resources/cloudflare_api_shield_schema/resource.rb +30 -0
  37. data/lib/pangea/resources/cloudflare_api_shield_schema/types.rb +14 -0
  38. data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/resource.rb +27 -0
  39. data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/types.rb +11 -0
  40. data/lib/pangea/resources/cloudflare_api_token/resource.rb +33 -0
  41. data/lib/pangea/resources/cloudflare_api_token/types.rb +14 -0
  42. data/lib/pangea/resources/cloudflare_argo/resource.rb +91 -0
  43. data/lib/pangea/resources/cloudflare_argo/types.rb +92 -0
  44. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/resource.rb +29 -0
  45. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/types.rb +13 -0
  46. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/resource.rb +33 -0
  47. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/types.rb +13 -0
  48. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/resource.rb +26 -0
  49. data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/types.rb +10 -0
  50. data/lib/pangea/resources/cloudflare_bot_management/resource.rb +31 -0
  51. data/lib/pangea/resources/cloudflare_bot_management/types.rb +15 -0
  52. data/lib/pangea/resources/cloudflare_byo_ip_prefix/resource.rb +27 -0
  53. data/lib/pangea/resources/cloudflare_byo_ip_prefix/types.rb +11 -0
  54. data/lib/pangea/resources/cloudflare_calls_sfu_app/resource.rb +27 -0
  55. data/lib/pangea/resources/cloudflare_calls_sfu_app/types.rb +11 -0
  56. data/lib/pangea/resources/cloudflare_calls_turn_app/resource.rb +27 -0
  57. data/lib/pangea/resources/cloudflare_calls_turn_app/types.rb +11 -0
  58. data/lib/pangea/resources/cloudflare_certificate_pack/resource.rb +26 -0
  59. data/lib/pangea/resources/cloudflare_certificate_pack/types.rb +10 -0
  60. data/lib/pangea/resources/cloudflare_cloud_connector_rules/resource.rb +27 -0
  61. data/lib/pangea/resources/cloudflare_cloud_connector_rules/types.rb +11 -0
  62. data/lib/pangea/resources/cloudflare_cloudforce_one_request/resource.rb +27 -0
  63. data/lib/pangea/resources/cloudflare_cloudforce_one_request/types.rb +11 -0
  64. data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/resource.rb +27 -0
  65. data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/types.rb +11 -0
  66. data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/resource.rb +27 -0
  67. data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/types.rb +11 -0
  68. data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/resource.rb +27 -0
  69. data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/types.rb +11 -0
  70. data/lib/pangea/resources/cloudflare_content_scanning/resource.rb +27 -0
  71. data/lib/pangea/resources/cloudflare_content_scanning/types.rb +11 -0
  72. data/lib/pangea/resources/cloudflare_content_scanning_expression/resource.rb +27 -0
  73. data/lib/pangea/resources/cloudflare_content_scanning_expression/types.rb +11 -0
  74. data/lib/pangea/resources/cloudflare_custom_hostname/resource.rb +158 -0
  75. data/lib/pangea/resources/cloudflare_custom_hostname/types/ssl_types.rb +145 -0
  76. data/lib/pangea/resources/cloudflare_custom_hostname/types.rb +107 -0
  77. data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/resource.rb +27 -0
  78. data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/types.rb +11 -0
  79. data/lib/pangea/resources/cloudflare_custom_pages/resource.rb +27 -0
  80. data/lib/pangea/resources/cloudflare_custom_pages/types.rb +11 -0
  81. data/lib/pangea/resources/cloudflare_custom_ssl/resource.rb +36 -0
  82. data/lib/pangea/resources/cloudflare_custom_ssl/types.rb +16 -0
  83. data/lib/pangea/resources/cloudflare_d1_database/resource.rb +92 -0
  84. data/lib/pangea/resources/cloudflare_d1_database/types.rb +110 -0
  85. data/lib/pangea/resources/cloudflare_dns_firewall/resource.rb +27 -0
  86. data/lib/pangea/resources/cloudflare_dns_firewall/types.rb +11 -0
  87. data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/resource.rb +27 -0
  88. data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/types.rb +11 -0
  89. data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/resource.rb +27 -0
  90. data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/types.rb +11 -0
  91. data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/resource.rb +26 -0
  92. data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/types.rb +10 -0
  93. data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/resource.rb +26 -0
  94. data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/types.rb +10 -0
  95. data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/resource.rb +26 -0
  96. data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/types.rb +10 -0
  97. data/lib/pangea/resources/cloudflare_email_routing_address/resource.rb +26 -0
  98. data/lib/pangea/resources/cloudflare_email_routing_address/types.rb +10 -0
  99. data/lib/pangea/resources/cloudflare_email_routing_catch_all/resource.rb +26 -0
  100. data/lib/pangea/resources/cloudflare_email_routing_catch_all/types.rb +10 -0
  101. data/lib/pangea/resources/cloudflare_email_routing_dns/resource.rb +27 -0
  102. data/lib/pangea/resources/cloudflare_email_routing_dns/types.rb +11 -0
  103. data/lib/pangea/resources/cloudflare_email_routing_rule/resource.rb +26 -0
  104. data/lib/pangea/resources/cloudflare_email_routing_rule/types.rb +10 -0
  105. data/lib/pangea/resources/cloudflare_email_routing_settings/resource.rb +26 -0
  106. data/lib/pangea/resources/cloudflare_email_routing_settings/types.rb +10 -0
  107. data/lib/pangea/resources/cloudflare_email_security_block_sender/resource.rb +27 -0
  108. data/lib/pangea/resources/cloudflare_email_security_block_sender/types.rb +11 -0
  109. data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/resource.rb +27 -0
  110. data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/types.rb +11 -0
  111. data/lib/pangea/resources/cloudflare_email_security_trusted_domains/resource.rb +27 -0
  112. data/lib/pangea/resources/cloudflare_email_security_trusted_domains/types.rb +11 -0
  113. data/lib/pangea/resources/cloudflare_filter/resource.rb +64 -0
  114. data/lib/pangea/resources/cloudflare_filter/types.rb +54 -0
  115. data/lib/pangea/resources/cloudflare_firewall_rule/resource.rb +70 -0
  116. data/lib/pangea/resources/cloudflare_firewall_rule/types.rb +64 -0
  117. data/lib/pangea/resources/cloudflare_healthcheck/resource.rb +139 -0
  118. data/lib/pangea/resources/cloudflare_healthcheck/types.rb +192 -0
  119. data/lib/pangea/resources/cloudflare_hostname_tls_setting/resource.rb +26 -0
  120. data/lib/pangea/resources/cloudflare_hostname_tls_setting/types.rb +10 -0
  121. data/lib/pangea/resources/cloudflare_hyperdrive_config/resource.rb +176 -0
  122. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/attributes.rb +125 -0
  123. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/caching.rb +52 -0
  124. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/enums.rb +37 -0
  125. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/mtls.rb +52 -0
  126. data/lib/pangea/resources/cloudflare_hyperdrive_config/types/origin.rb +89 -0
  127. data/lib/pangea/resources/cloudflare_hyperdrive_config/types.rb +23 -0
  128. data/lib/pangea/resources/cloudflare_image/resource.rb +27 -0
  129. data/lib/pangea/resources/cloudflare_image/types.rb +11 -0
  130. data/lib/pangea/resources/cloudflare_image_variant/resource.rb +26 -0
  131. data/lib/pangea/resources/cloudflare_image_variant/types.rb +10 -0
  132. data/lib/pangea/resources/cloudflare_keyless_certificate/resource.rb +26 -0
  133. data/lib/pangea/resources/cloudflare_keyless_certificate/types.rb +10 -0
  134. data/lib/pangea/resources/cloudflare_leaked_credential_check/resource.rb +27 -0
  135. data/lib/pangea/resources/cloudflare_leaked_credential_check/types.rb +11 -0
  136. data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/resource.rb +27 -0
  137. data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/types.rb +11 -0
  138. data/lib/pangea/resources/cloudflare_list/resource.rb +57 -0
  139. data/lib/pangea/resources/cloudflare_list/types.rb +49 -0
  140. data/lib/pangea/resources/cloudflare_list_item/resource.rb +130 -0
  141. data/lib/pangea/resources/cloudflare_list_item/types.rb +183 -0
  142. data/lib/pangea/resources/cloudflare_load_balancer/resource.rb +97 -0
  143. data/lib/pangea/resources/cloudflare_load_balancer/types.rb +75 -0
  144. data/lib/pangea/resources/cloudflare_load_balancer_monitor/resource.rb +78 -0
  145. data/lib/pangea/resources/cloudflare_load_balancer_monitor/types.rb +62 -0
  146. data/lib/pangea/resources/cloudflare_load_balancer_pool/resource.rb +78 -0
  147. data/lib/pangea/resources/cloudflare_load_balancer_pool/types.rb +81 -0
  148. data/lib/pangea/resources/cloudflare_logpull_retention/resource.rb +27 -0
  149. data/lib/pangea/resources/cloudflare_logpull_retention/types.rb +11 -0
  150. data/lib/pangea/resources/cloudflare_logpush_job/resource.rb +40 -0
  151. data/lib/pangea/resources/cloudflare_logpush_job/types.rb +24 -0
  152. data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/resource.rb +27 -0
  153. data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/types.rb +11 -0
  154. data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/resource.rb +27 -0
  155. data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/types.rb +11 -0
  156. data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/resource.rb +27 -0
  157. data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/types.rb +11 -0
  158. data/lib/pangea/resources/cloudflare_magic_transit_connector/resource.rb +27 -0
  159. data/lib/pangea/resources/cloudflare_magic_transit_connector/types.rb +11 -0
  160. data/lib/pangea/resources/cloudflare_magic_transit_site/resource.rb +27 -0
  161. data/lib/pangea/resources/cloudflare_magic_transit_site/types.rb +11 -0
  162. data/lib/pangea/resources/cloudflare_magic_transit_site_acl/resource.rb +27 -0
  163. data/lib/pangea/resources/cloudflare_magic_transit_site_acl/types.rb +11 -0
  164. data/lib/pangea/resources/cloudflare_magic_transit_site_lan/resource.rb +27 -0
  165. data/lib/pangea/resources/cloudflare_magic_transit_site_lan/types.rb +11 -0
  166. data/lib/pangea/resources/cloudflare_magic_transit_site_wan/resource.rb +27 -0
  167. data/lib/pangea/resources/cloudflare_magic_transit_site_wan/types.rb +11 -0
  168. data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/resource.rb +27 -0
  169. data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/types.rb +11 -0
  170. data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/resource.rb +27 -0
  171. data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/types.rb +11 -0
  172. data/lib/pangea/resources/cloudflare_magic_wan_static_route/resource.rb +27 -0
  173. data/lib/pangea/resources/cloudflare_magic_wan_static_route/types.rb +11 -0
  174. data/lib/pangea/resources/cloudflare_managed_transforms/resource.rb +36 -0
  175. data/lib/pangea/resources/cloudflare_managed_transforms/types.rb +12 -0
  176. data/lib/pangea/resources/cloudflare_mtls_certificate/resource.rb +34 -0
  177. data/lib/pangea/resources/cloudflare_mtls_certificate/types.rb +14 -0
  178. data/lib/pangea/resources/cloudflare_notification_policy/resource.rb +34 -0
  179. data/lib/pangea/resources/cloudflare_notification_policy/types.rb +18 -0
  180. data/lib/pangea/resources/cloudflare_notification_policy_webhooks/resource.rb +27 -0
  181. data/lib/pangea/resources/cloudflare_notification_policy_webhooks/types.rb +11 -0
  182. data/lib/pangea/resources/cloudflare_observatory_scheduled_test/resource.rb +27 -0
  183. data/lib/pangea/resources/cloudflare_observatory_scheduled_test/types.rb +11 -0
  184. data/lib/pangea/resources/cloudflare_organization/resource.rb +27 -0
  185. data/lib/pangea/resources/cloudflare_organization/types.rb +11 -0
  186. data/lib/pangea/resources/cloudflare_organization_profile/resource.rb +27 -0
  187. data/lib/pangea/resources/cloudflare_organization_profile/types.rb +11 -0
  188. data/lib/pangea/resources/cloudflare_origin_ca_certificate/resource.rb +97 -0
  189. data/lib/pangea/resources/cloudflare_origin_ca_certificate/types.rb +125 -0
  190. data/lib/pangea/resources/cloudflare_page_rule/resource.rb +78 -0
  191. data/lib/pangea/resources/cloudflare_page_rule/types.rb +71 -0
  192. data/lib/pangea/resources/cloudflare_page_shield_policy/resource.rb +27 -0
  193. data/lib/pangea/resources/cloudflare_page_shield_policy/types.rb +11 -0
  194. data/lib/pangea/resources/cloudflare_pages_domain/resource.rb +28 -0
  195. data/lib/pangea/resources/cloudflare_pages_domain/types.rb +12 -0
  196. data/lib/pangea/resources/cloudflare_pages_project/resource/deployment_config.rb +80 -0
  197. data/lib/pangea/resources/cloudflare_pages_project/resource/main.rb +75 -0
  198. data/lib/pangea/resources/cloudflare_pages_project/resource.rb +19 -0
  199. data/lib/pangea/resources/cloudflare_pages_project/types/attributes.rb +51 -0
  200. data/lib/pangea/resources/cloudflare_pages_project/types/bindings.rb +38 -0
  201. data/lib/pangea/resources/cloudflare_pages_project/types/build_config.rb +55 -0
  202. data/lib/pangea/resources/cloudflare_pages_project/types/deployment_config.rb +83 -0
  203. data/lib/pangea/resources/cloudflare_pages_project/types.rb +27 -0
  204. data/lib/pangea/resources/cloudflare_queue/resource.rb +108 -0
  205. data/lib/pangea/resources/cloudflare_queue/types.rb +132 -0
  206. data/lib/pangea/resources/cloudflare_queue_consumer/resource.rb +31 -0
  207. data/lib/pangea/resources/cloudflare_queue_consumer/types.rb +15 -0
  208. data/lib/pangea/resources/cloudflare_r2_bucket/resource.rb +91 -0
  209. data/lib/pangea/resources/cloudflare_r2_bucket/types.rb +101 -0
  210. data/lib/pangea/resources/cloudflare_r2_bucket_cors/resource.rb +130 -0
  211. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/attributes.rb +105 -0
  212. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_allowed.rb +59 -0
  213. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_method.rb +34 -0
  214. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_rule.rb +74 -0
  215. data/lib/pangea/resources/cloudflare_r2_bucket_cors/types.rb +22 -0
  216. data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/resource.rb +31 -0
  217. data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/types.rb +15 -0
  218. data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/resource.rb +31 -0
  219. data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/types.rb +26 -0
  220. data/lib/pangea/resources/cloudflare_r2_bucket_lock/resource.rb +29 -0
  221. data/lib/pangea/resources/cloudflare_r2_bucket_lock/types.rb +13 -0
  222. data/lib/pangea/resources/cloudflare_r2_bucket_sippy/resource.rb +26 -0
  223. data/lib/pangea/resources/cloudflare_r2_bucket_sippy/types.rb +10 -0
  224. data/lib/pangea/resources/cloudflare_r2_custom_domain/resource.rb +28 -0
  225. data/lib/pangea/resources/cloudflare_r2_custom_domain/types.rb +12 -0
  226. data/lib/pangea/resources/cloudflare_r2_managed_domain/resource.rb +26 -0
  227. data/lib/pangea/resources/cloudflare_r2_managed_domain/types.rb +10 -0
  228. data/lib/pangea/resources/cloudflare_rate_limit/resource.rb +129 -0
  229. data/lib/pangea/resources/cloudflare_rate_limit/types.rb +143 -0
  230. data/lib/pangea/resources/cloudflare_record/resource.rb +91 -0
  231. data/lib/pangea/resources/cloudflare_record/types.rb +114 -0
  232. data/lib/pangea/resources/cloudflare_regional_hostname/resource.rb +27 -0
  233. data/lib/pangea/resources/cloudflare_regional_hostname/types.rb +11 -0
  234. data/lib/pangea/resources/cloudflare_regional_tiered_cache/resource.rb +82 -0
  235. data/lib/pangea/resources/cloudflare_regional_tiered_cache/types.rb +73 -0
  236. data/lib/pangea/resources/cloudflare_registrar_domain/resource.rb +27 -0
  237. data/lib/pangea/resources/cloudflare_registrar_domain/types.rb +11 -0
  238. data/lib/pangea/resources/cloudflare_ruleset/resource.rb +113 -0
  239. data/lib/pangea/resources/cloudflare_ruleset/types/ruleset_rule.rb +84 -0
  240. data/lib/pangea/resources/cloudflare_ruleset/types.rb +155 -0
  241. data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/resource.rb +27 -0
  242. data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/types.rb +11 -0
  243. data/lib/pangea/resources/cloudflare_schema_validation_schemas/resource.rb +27 -0
  244. data/lib/pangea/resources/cloudflare_schema_validation_schemas/types.rb +11 -0
  245. data/lib/pangea/resources/cloudflare_schema_validation_settings/resource.rb +27 -0
  246. data/lib/pangea/resources/cloudflare_schema_validation_settings/types.rb +11 -0
  247. data/lib/pangea/resources/cloudflare_snippet/resource.rb +27 -0
  248. data/lib/pangea/resources/cloudflare_snippet/types.rb +11 -0
  249. data/lib/pangea/resources/cloudflare_snippet_rules/resource.rb +27 -0
  250. data/lib/pangea/resources/cloudflare_snippet_rules/types.rb +11 -0
  251. data/lib/pangea/resources/cloudflare_spectrum_application/resource.rb +122 -0
  252. data/lib/pangea/resources/cloudflare_spectrum_application/types.rb +147 -0
  253. data/lib/pangea/resources/cloudflare_static_route/resource.rb +119 -0
  254. data/lib/pangea/resources/cloudflare_static_route/types.rb +131 -0
  255. data/lib/pangea/resources/cloudflare_stream/resource.rb +35 -0
  256. data/lib/pangea/resources/cloudflare_stream/types.rb +15 -0
  257. data/lib/pangea/resources/cloudflare_stream_audio_track/resource.rb +27 -0
  258. data/lib/pangea/resources/cloudflare_stream_audio_track/types.rb +11 -0
  259. data/lib/pangea/resources/cloudflare_stream_caption_language/resource.rb +27 -0
  260. data/lib/pangea/resources/cloudflare_stream_caption_language/types.rb +11 -0
  261. data/lib/pangea/resources/cloudflare_stream_download/resource.rb +27 -0
  262. data/lib/pangea/resources/cloudflare_stream_download/types.rb +11 -0
  263. data/lib/pangea/resources/cloudflare_stream_key/resource.rb +27 -0
  264. data/lib/pangea/resources/cloudflare_stream_key/types.rb +11 -0
  265. data/lib/pangea/resources/cloudflare_stream_live_input/resource.rb +27 -0
  266. data/lib/pangea/resources/cloudflare_stream_live_input/types.rb +11 -0
  267. data/lib/pangea/resources/cloudflare_stream_watermark/resource.rb +27 -0
  268. data/lib/pangea/resources/cloudflare_stream_watermark/types.rb +11 -0
  269. data/lib/pangea/resources/cloudflare_stream_webhook/resource.rb +27 -0
  270. data/lib/pangea/resources/cloudflare_stream_webhook/types.rb +11 -0
  271. data/lib/pangea/resources/cloudflare_tiered_cache/resource.rb +83 -0
  272. data/lib/pangea/resources/cloudflare_tiered_cache/types.rb +74 -0
  273. data/lib/pangea/resources/cloudflare_total_tls/resource.rb +26 -0
  274. data/lib/pangea/resources/cloudflare_total_tls/types.rb +10 -0
  275. data/lib/pangea/resources/cloudflare_turnstile_widget/resource.rb +34 -0
  276. data/lib/pangea/resources/cloudflare_turnstile_widget/types.rb +15 -0
  277. data/lib/pangea/resources/cloudflare_url_normalization_settings/resource.rb +27 -0
  278. data/lib/pangea/resources/cloudflare_url_normalization_settings/types.rb +11 -0
  279. data/lib/pangea/resources/cloudflare_user/resource.rb +27 -0
  280. data/lib/pangea/resources/cloudflare_user/types.rb +11 -0
  281. data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/resource.rb +27 -0
  282. data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/types.rb +11 -0
  283. data/lib/pangea/resources/cloudflare_waiting_room/resource.rb +122 -0
  284. data/lib/pangea/resources/cloudflare_waiting_room/types.rb +171 -0
  285. data/lib/pangea/resources/cloudflare_waiting_room_event/resource.rb +118 -0
  286. data/lib/pangea/resources/cloudflare_waiting_room_event/types.rb +153 -0
  287. data/lib/pangea/resources/cloudflare_waiting_room_rules/resource.rb +40 -0
  288. data/lib/pangea/resources/cloudflare_waiting_room_rules/types.rb +32 -0
  289. data/lib/pangea/resources/cloudflare_waiting_room_settings/resource.rb +27 -0
  290. data/lib/pangea/resources/cloudflare_waiting_room_settings/types.rb +11 -0
  291. data/lib/pangea/resources/cloudflare_web3_hostname/resource.rb +27 -0
  292. data/lib/pangea/resources/cloudflare_web3_hostname/types.rb +11 -0
  293. data/lib/pangea/resources/cloudflare_web_analytics_rule/resource.rb +27 -0
  294. data/lib/pangea/resources/cloudflare_web_analytics_rule/types.rb +11 -0
  295. data/lib/pangea/resources/cloudflare_web_analytics_site/resource.rb +33 -0
  296. data/lib/pangea/resources/cloudflare_web_analytics_site/types.rb +13 -0
  297. data/lib/pangea/resources/cloudflare_worker/resource.rb +27 -0
  298. data/lib/pangea/resources/cloudflare_worker/types.rb +11 -0
  299. data/lib/pangea/resources/cloudflare_worker_route/resource.rb +62 -0
  300. data/lib/pangea/resources/cloudflare_worker_route/types.rb +50 -0
  301. data/lib/pangea/resources/cloudflare_worker_script/resource.rb +90 -0
  302. data/lib/pangea/resources/cloudflare_worker_script/types.rb +109 -0
  303. data/lib/pangea/resources/cloudflare_worker_version/resource.rb +27 -0
  304. data/lib/pangea/resources/cloudflare_worker_version/types.rb +11 -0
  305. data/lib/pangea/resources/cloudflare_workers_cron_trigger/resource.rb +94 -0
  306. data/lib/pangea/resources/cloudflare_workers_cron_trigger/types.rb +102 -0
  307. data/lib/pangea/resources/cloudflare_workers_custom_domain/resource.rb +93 -0
  308. data/lib/pangea/resources/cloudflare_workers_custom_domain/types.rb +93 -0
  309. data/lib/pangea/resources/cloudflare_workers_deployment/resource.rb +28 -0
  310. data/lib/pangea/resources/cloudflare_workers_deployment/types.rb +12 -0
  311. data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/resource.rb +27 -0
  312. data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/types.rb +11 -0
  313. data/lib/pangea/resources/cloudflare_workers_kv/resource.rb +98 -0
  314. data/lib/pangea/resources/cloudflare_workers_kv/types.rb +103 -0
  315. data/lib/pangea/resources/cloudflare_workers_kv_namespace/resource.rb +84 -0
  316. data/lib/pangea/resources/cloudflare_workers_kv_namespace/types.rb +74 -0
  317. data/lib/pangea/resources/cloudflare_workers_script_subdomain/resource.rb +27 -0
  318. data/lib/pangea/resources/cloudflare_workers_script_subdomain/types.rb +11 -0
  319. data/lib/pangea/resources/cloudflare_workflow/resource.rb +27 -0
  320. data/lib/pangea/resources/cloudflare_workflow/types.rb +11 -0
  321. data/lib/pangea/resources/cloudflare_zero_trust_access_application/block_builders.rb +116 -0
  322. data/lib/pangea/resources/cloudflare_zero_trust_access_application/resource.rb +161 -0
  323. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/attributes.rb +102 -0
  324. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/cors_headers.rb +37 -0
  325. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/destination.rb +37 -0
  326. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/enums.rb +31 -0
  327. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/footer_link.rb +31 -0
  328. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/landing_page_design.rb +34 -0
  329. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/saas_app.rb +44 -0
  330. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/scim_config.rb +35 -0
  331. data/lib/pangea/resources/cloudflare_zero_trust_access_application/types.rb +26 -0
  332. data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/resource.rb +26 -0
  333. data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/types.rb +10 -0
  334. data/lib/pangea/resources/cloudflare_zero_trust_access_group/resource.rb +31 -0
  335. data/lib/pangea/resources/cloudflare_zero_trust_access_group/types.rb +15 -0
  336. data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/resource.rb +31 -0
  337. data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/types.rb +15 -0
  338. data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/resource.rb +26 -0
  339. data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/types.rb +10 -0
  340. data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/resource.rb +26 -0
  341. data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/types.rb +10 -0
  342. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/resource.rb +26 -0
  343. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/types.rb +10 -0
  344. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/resource.rb +26 -0
  345. data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/types.rb +10 -0
  346. data/lib/pangea/resources/cloudflare_zero_trust_access_policy/resource.rb +39 -0
  347. data/lib/pangea/resources/cloudflare_zero_trust_access_policy/types.rb +23 -0
  348. data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/resource.rb +26 -0
  349. data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/types.rb +10 -0
  350. data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/resource.rb +26 -0
  351. data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/types.rb +10 -0
  352. data/lib/pangea/resources/cloudflare_zero_trust_access_tag/resource.rb +26 -0
  353. data/lib/pangea/resources/cloudflare_zero_trust_access_tag/types.rb +10 -0
  354. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/resource.rb +26 -0
  355. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/types.rb +10 -0
  356. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/resource.rb +26 -0
  357. data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/types.rb +10 -0
  358. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/resource.rb +26 -0
  359. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/types.rb +10 -0
  360. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/resource.rb +26 -0
  361. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/types.rb +10 -0
  362. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/resource.rb +26 -0
  363. data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/types.rb +10 -0
  364. data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/resource.rb +26 -0
  365. data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/types.rb +10 -0
  366. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/resource.rb +26 -0
  367. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/types.rb +10 -0
  368. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/resource.rb +26 -0
  369. data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/types.rb +10 -0
  370. data/lib/pangea/resources/cloudflare_zero_trust_device_settings/resource.rb +26 -0
  371. data/lib/pangea/resources/cloudflare_zero_trust_device_settings/types.rb +10 -0
  372. data/lib/pangea/resources/cloudflare_zero_trust_dex_test/resource.rb +26 -0
  373. data/lib/pangea/resources/cloudflare_zero_trust_dex_test/types.rb +10 -0
  374. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/resource.rb +26 -0
  375. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/types.rb +10 -0
  376. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/resource.rb +26 -0
  377. data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/types.rb +10 -0
  378. data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/resource.rb +26 -0
  379. data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/types.rb +10 -0
  380. data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/resource.rb +26 -0
  381. data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/types.rb +10 -0
  382. data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/resource.rb +26 -0
  383. data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/types.rb +10 -0
  384. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/resource.rb +26 -0
  385. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/types.rb +10 -0
  386. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/resource.rb +26 -0
  387. data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/types.rb +10 -0
  388. data/lib/pangea/resources/cloudflare_zero_trust_dns_location/resource.rb +26 -0
  389. data/lib/pangea/resources/cloudflare_zero_trust_dns_location/types.rb +10 -0
  390. data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/resource.rb +26 -0
  391. data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/types.rb +10 -0
  392. data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/resource.rb +26 -0
  393. data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/types.rb +10 -0
  394. data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/resource.rb +34 -0
  395. data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/types.rb +18 -0
  396. data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/resource.rb +26 -0
  397. data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/types.rb +10 -0
  398. data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/resource.rb +26 -0
  399. data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/types.rb +10 -0
  400. data/lib/pangea/resources/cloudflare_zero_trust_list/resource.rb +26 -0
  401. data/lib/pangea/resources/cloudflare_zero_trust_list/types.rb +10 -0
  402. data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/resource.rb +26 -0
  403. data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/types.rb +10 -0
  404. data/lib/pangea/resources/cloudflare_zero_trust_organization/resource.rb +26 -0
  405. data/lib/pangea/resources/cloudflare_zero_trust_organization/types.rb +10 -0
  406. data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/resource.rb +26 -0
  407. data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/types.rb +10 -0
  408. data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/resource.rb +26 -0
  409. data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/types.rb +10 -0
  410. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/resource.rb +33 -0
  411. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/types.rb +13 -0
  412. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/resource.rb +28 -0
  413. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/types.rb +12 -0
  414. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/resource.rb +30 -0
  415. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/types.rb +14 -0
  416. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/resource.rb +26 -0
  417. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/types.rb +10 -0
  418. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/resource.rb +26 -0
  419. data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/types.rb +10 -0
  420. data/lib/pangea/resources/cloudflare_zone/resource.rb +71 -0
  421. data/lib/pangea/resources/cloudflare_zone/types.rb +62 -0
  422. data/lib/pangea/resources/cloudflare_zone_cache_reserve/resource.rb +27 -0
  423. data/lib/pangea/resources/cloudflare_zone_cache_reserve/types.rb +11 -0
  424. data/lib/pangea/resources/cloudflare_zone_cache_variants/resource.rb +27 -0
  425. data/lib/pangea/resources/cloudflare_zone_cache_variants/types.rb +11 -0
  426. data/lib/pangea/resources/cloudflare_zone_dns_settings/resource.rb +27 -0
  427. data/lib/pangea/resources/cloudflare_zone_dns_settings/types.rb +11 -0
  428. data/lib/pangea/resources/cloudflare_zone_dnssec/resource.rb +96 -0
  429. data/lib/pangea/resources/cloudflare_zone_dnssec/types.rb +81 -0
  430. data/lib/pangea/resources/cloudflare_zone_hold/resource.rb +26 -0
  431. data/lib/pangea/resources/cloudflare_zone_hold/types.rb +10 -0
  432. data/lib/pangea/resources/cloudflare_zone_lockdown/resource.rb +27 -0
  433. data/lib/pangea/resources/cloudflare_zone_lockdown/types.rb +11 -0
  434. data/lib/pangea/resources/cloudflare_zone_settings_override/resource.rb +80 -0
  435. data/lib/pangea/resources/cloudflare_zone_settings_override/types.rb +64 -0
  436. data/lib/pangea/resources/cloudflare_zone_subscription/resource.rb +26 -0
  437. data/lib/pangea/resources/cloudflare_zone_subscription/types.rb +10 -0
  438. data/lib/pangea/resources/types/cloudflare/core.rb +130 -0
  439. data/lib/pangea/resources/types/cloudflare/load_balancing.rb +104 -0
  440. data/lib/pangea/resources/types/cloudflare/security.rb +107 -0
  441. data/lib/pangea/resources/types/cloudflare/workers.rb +60 -0
  442. data/lib/pangea-cloudflare/version.rb +5 -0
  443. data/lib/pangea-cloudflare.rb +215 -0
  444. data/pangea-cloudflare.gemspec +33 -0
  445. metadata +586 -0
data/flake.nix ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ description = "Pangea Cloudflare provider — typed Terraform resource functions";
3
+
4
+ inputs = {
5
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
+ ruby-nix.url = "github:inscapist/ruby-nix";
7
+ flake-utils.url = "github:numtide/flake-utils";
8
+ substrate = {
9
+ url = "github:pleme-io/substrate";
10
+ inputs.nixpkgs.follows = "nixpkgs";
11
+ };
12
+ forge = {
13
+ url = "github:pleme-io/forge";
14
+ inputs.nixpkgs.follows = "nixpkgs";
15
+ inputs.substrate.follows = "substrate";
16
+ };
17
+ };
18
+
19
+ outputs = {
20
+ self,
21
+ nixpkgs,
22
+ ruby-nix,
23
+ flake-utils,
24
+ substrate,
25
+ forge,
26
+ ...
27
+ }:
28
+ flake-utils.lib.eachSystem ["x86_64-linux" "aarch64-linux" "aarch64-darwin"] (system: let
29
+ pkgs = import nixpkgs {
30
+ inherit system;
31
+ overlays = [ruby-nix.overlays.ruby];
32
+ };
33
+ rnix = ruby-nix.lib pkgs;
34
+ rnix-env = rnix {
35
+ name = "pangea-cloudflare";
36
+ gemset = ./gemset.nix;
37
+ };
38
+ env = rnix-env.env;
39
+ ruby = rnix-env.ruby;
40
+
41
+ rubyBuild = import "${substrate}/lib/ruby-build.nix" {
42
+ inherit pkgs;
43
+ forgeCmd = "${forge.packages.${system}.default}/bin/forge";
44
+ defaultGhcrToken = "";
45
+ };
46
+ in {
47
+ devShells.default = pkgs.mkShell {
48
+ buildInputs = [env ruby];
49
+ shellHook = ''
50
+ export RUBYLIB=$PWD/lib:$RUBYLIB
51
+ export DRY_TYPES_WARNINGS=false
52
+ '';
53
+ };
54
+
55
+ apps = rubyBuild.mkRubyGemApps {
56
+ srcDir = self;
57
+ name = "pangea-cloudflare";
58
+ };
59
+ });
60
+ }
data/gemset.nix ADDED
@@ -0,0 +1,272 @@
1
+ {
2
+ abstract-synthesizer = {
3
+ groups = ["default"];
4
+ platforms = [];
5
+ source = {
6
+ remotes = ["https://rubygems.org"];
7
+ sha256 = "1724yzbklcmiiahb7s3y1ir1i0n03b9c3arlib35g85d8hf0h75d";
8
+ type = "gem";
9
+ };
10
+ version = "0.0.15";
11
+ };
12
+ base64 = {
13
+ groups = ["default"];
14
+ platforms = [];
15
+ source = {
16
+ remotes = ["https://rubygems.org"];
17
+ sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7";
18
+ type = "gem";
19
+ };
20
+ version = "0.3.0";
21
+ };
22
+ bigdecimal = {
23
+ groups = ["default"];
24
+ platforms = [];
25
+ source = {
26
+ remotes = ["https://rubygems.org"];
27
+ sha256 = "19y406nx17arzsbc515mjmr6k5p59afprspa1k423yd9cp8d61wb";
28
+ type = "gem";
29
+ };
30
+ version = "4.0.1";
31
+ };
32
+ concurrent-ruby = {
33
+ groups = ["default"];
34
+ platforms = [];
35
+ source = {
36
+ remotes = ["https://rubygems.org"];
37
+ sha256 = "1aymcakhzl83k77g2f2krz07bg1cbafbcd2ghvwr4lky3rz86mkb";
38
+ type = "gem";
39
+ };
40
+ version = "1.3.6";
41
+ };
42
+ diff-lcs = {
43
+ groups = ["default" "development"];
44
+ platforms = [];
45
+ source = {
46
+ remotes = ["https://rubygems.org"];
47
+ sha256 = "0qlrj2qyysc9avzlr4zs1py3x684hqm61n4czrsk1pyllz5x5q4s";
48
+ type = "gem";
49
+ };
50
+ version = "1.6.2";
51
+ };
52
+ docile = {
53
+ groups = ["default" "development"];
54
+ platforms = [];
55
+ source = {
56
+ remotes = ["https://rubygems.org"];
57
+ sha256 = "07pj4z3h8wk4fgdn6s62vw1lwvhj0ac0x10vfbdkr9xzk7krn5cn";
58
+ type = "gem";
59
+ };
60
+ version = "1.4.1";
61
+ };
62
+ dry-core = {
63
+ dependencies = ["concurrent-ruby" "logger" "zeitwerk"];
64
+ groups = ["default"];
65
+ platforms = [];
66
+ source = {
67
+ remotes = ["https://rubygems.org"];
68
+ sha256 = "18cn9s2p7cbgacy0z41h3sf9jvl75vjfmvj774apyffzi3dagi8c";
69
+ type = "gem";
70
+ };
71
+ version = "1.2.0";
72
+ };
73
+ dry-inflector = {
74
+ groups = ["default"];
75
+ platforms = [];
76
+ source = {
77
+ remotes = ["https://rubygems.org"];
78
+ sha256 = "1k1dd35sqqqg2abd2g2w78m94pa3mcwvmrsjbkr3hxpn0jxw5c3z";
79
+ type = "gem";
80
+ };
81
+ version = "1.3.1";
82
+ };
83
+ dry-logic = {
84
+ dependencies = ["bigdecimal" "concurrent-ruby" "dry-core" "zeitwerk"];
85
+ groups = ["default"];
86
+ platforms = [];
87
+ source = {
88
+ remotes = ["https://rubygems.org"];
89
+ sha256 = "18nf8mbnhgvkw34drj7nmvpx2afmyl2nyzncn3wl3z4h1yyfsvys";
90
+ type = "gem";
91
+ };
92
+ version = "1.6.0";
93
+ };
94
+ dry-struct = {
95
+ dependencies = ["dry-core" "dry-types" "ice_nine" "zeitwerk"];
96
+ groups = ["default"];
97
+ platforms = [];
98
+ source = {
99
+ remotes = ["https://rubygems.org"];
100
+ sha256 = "0ri9iqxknxvvhpbshf6jn7bq581k8l67iv23mii69yr4k5aqphvl";
101
+ type = "gem";
102
+ };
103
+ version = "1.8.0";
104
+ };
105
+ dry-types = {
106
+ dependencies = ["bigdecimal" "concurrent-ruby" "dry-core" "dry-inflector" "dry-logic" "zeitwerk"];
107
+ groups = ["default"];
108
+ platforms = [];
109
+ source = {
110
+ remotes = ["https://rubygems.org"];
111
+ sha256 = "0y7icwaa26ycikz6h97gwd1hji3r280n4yr2kmn5sfgqp76yxsxs";
112
+ type = "gem";
113
+ };
114
+ version = "1.9.1";
115
+ };
116
+ ice_nine = {
117
+ groups = ["default"];
118
+ platforms = [];
119
+ source = {
120
+ remotes = ["https://rubygems.org"];
121
+ sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
122
+ type = "gem";
123
+ };
124
+ version = "0.11.2";
125
+ };
126
+ logger = {
127
+ groups = ["default"];
128
+ platforms = [];
129
+ source = {
130
+ remotes = ["https://rubygems.org"];
131
+ sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
132
+ type = "gem";
133
+ };
134
+ version = "1.7.0";
135
+ };
136
+ pangea-cloudflare = {
137
+ dependencies = ["dry-struct" "dry-types" "pangea-core" "terraform-synthesizer"];
138
+ groups = ["default"];
139
+ platforms = [];
140
+ source = {
141
+ path = ./.;
142
+ type = "path";
143
+ };
144
+ version = "0.1.0";
145
+ };
146
+ pangea-core = {
147
+ dependencies = ["base64" "dry-struct" "dry-types" "terraform-synthesizer"];
148
+ groups = ["default"];
149
+ platforms = [];
150
+ source = {
151
+ path = ../pangea-core;
152
+ type = "path";
153
+ };
154
+ version = "0.1.0";
155
+ };
156
+ rake = {
157
+ groups = ["development"];
158
+ platforms = [];
159
+ source = {
160
+ remotes = ["https://rubygems.org"];
161
+ sha256 = "175iisqb211n0qbfyqd8jz2g01q6xj038zjf4q0nm8k6kz88k7lc";
162
+ type = "gem";
163
+ };
164
+ version = "13.3.1";
165
+ };
166
+ rspec = {
167
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
168
+ groups = ["development"];
169
+ platforms = [];
170
+ source = {
171
+ remotes = ["https://rubygems.org"];
172
+ sha256 = "11q5hagj6vr694innqj4r45jrm8qcwvkxjnphqgyd66piah88qi0";
173
+ type = "gem";
174
+ };
175
+ version = "3.13.2";
176
+ };
177
+ rspec-core = {
178
+ dependencies = ["rspec-support"];
179
+ groups = ["default" "development"];
180
+ platforms = [];
181
+ source = {
182
+ remotes = ["https://rubygems.org"];
183
+ sha256 = "0bcbh9yv6cs6pv299zs4bvalr8yxa51kcdd1pjl60yv625j3r0m8";
184
+ type = "gem";
185
+ };
186
+ version = "3.13.6";
187
+ };
188
+ rspec-expectations = {
189
+ dependencies = ["diff-lcs" "rspec-support"];
190
+ groups = ["default" "development"];
191
+ platforms = [];
192
+ source = {
193
+ remotes = ["https://rubygems.org"];
194
+ sha256 = "0dl8npj0jfpy31bxi6syc7jymyd861q277sfr6jawq2hv6hx791k";
195
+ type = "gem";
196
+ };
197
+ version = "3.13.5";
198
+ };
199
+ rspec-mocks = {
200
+ dependencies = ["diff-lcs" "rspec-support"];
201
+ groups = ["default" "development"];
202
+ platforms = [];
203
+ source = {
204
+ remotes = ["https://rubygems.org"];
205
+ sha256 = "071bqrk2rblk3zq3jk1xxx0dr92y0szi5pxdm8waimxici706y89";
206
+ type = "gem";
207
+ };
208
+ version = "3.13.7";
209
+ };
210
+ rspec-support = {
211
+ groups = ["default" "development"];
212
+ platforms = [];
213
+ source = {
214
+ remotes = ["https://rubygems.org"];
215
+ sha256 = "0z64h5rznm2zv21vjdjshz4v0h7bxvg02yc6g7yzxakj11byah06";
216
+ type = "gem";
217
+ };
218
+ version = "3.13.7";
219
+ };
220
+ simplecov = {
221
+ dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
222
+ groups = ["development"];
223
+ platforms = [];
224
+ source = {
225
+ remotes = ["https://rubygems.org"];
226
+ sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py";
227
+ type = "gem";
228
+ };
229
+ version = "0.22.0";
230
+ };
231
+ simplecov-html = {
232
+ groups = ["default" "development"];
233
+ platforms = [];
234
+ source = {
235
+ remotes = ["https://rubygems.org"];
236
+ sha256 = "0ikjfwydgs08nm3xzc4cn4b6z6rmcrj2imp84xcnimy2wxa8w2xx";
237
+ type = "gem";
238
+ };
239
+ version = "0.13.2";
240
+ };
241
+ simplecov_json_formatter = {
242
+ groups = ["default" "development"];
243
+ platforms = [];
244
+ source = {
245
+ remotes = ["https://rubygems.org"];
246
+ sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
247
+ type = "gem";
248
+ };
249
+ version = "0.1.4";
250
+ };
251
+ terraform-synthesizer = {
252
+ dependencies = ["abstract-synthesizer"];
253
+ groups = ["default"];
254
+ platforms = [];
255
+ source = {
256
+ remotes = ["https://rubygems.org"];
257
+ sha256 = "01yl1s6xnxn3qh42ybqanxdgcfpppg2cvjk8pka7xcf5hxz9qxda";
258
+ type = "gem";
259
+ };
260
+ version = "0.0.28";
261
+ };
262
+ zeitwerk = {
263
+ groups = ["default"];
264
+ platforms = [];
265
+ source = {
266
+ remotes = ["https://rubygems.org"];
267
+ sha256 = "1pbkiwwla5gldgb3saamn91058nl1sq1344l5k36xsh9ih995nnq";
268
+ type = "gem";
269
+ };
270
+ version = "2.7.5";
271
+ };
272
+ }
@@ -0,0 +1,213 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pangea
4
+ module Resources
5
+ # Aggregator module that includes all Cloudflare resource modules.
6
+ # Each resource file reopens this module and includes itself,
7
+ # so by the time this file is loaded all resource modules are
8
+ # already mixed in. This file exists as a single entry point
9
+ # for consumers who want `include Pangea::Resources::Cloudflare`.
10
+ module Cloudflare
11
+ include CloudflareAccessRule
12
+ include CloudflareAccount
13
+ include CloudflareAccountDnsSettings
14
+ include CloudflareAccountDnsSettingsInternalView
15
+ include CloudflareAccountMember
16
+ include CloudflareAccountSubscription
17
+ include CloudflareAccountToken
18
+ include CloudflareAddressMap
19
+ include CloudflareApiShield
20
+ include CloudflareApiShieldDiscoveryOperation
21
+ include CloudflareApiShieldOperation
22
+ include CloudflareApiShieldOperationSchemaValidationSettings
23
+ include CloudflareApiShieldSchema
24
+ include CloudflareApiShieldSchemaValidationSettings
25
+ include CloudflareApiToken
26
+ include CloudflareArgo
27
+ include CloudflareAuthenticatedOriginPulls
28
+ include CloudflareAuthenticatedOriginPullsCertificate
29
+ include CloudflareAuthenticatedOriginPullsSettings
30
+ include CloudflareBotManagement
31
+ include CloudflareByoIpPrefix
32
+ include CloudflareCallsSfuApp
33
+ include CloudflareCallsTurnApp
34
+ include CloudflareCertificatePack
35
+ include CloudflareCloudConnectorRules
36
+ include CloudflareCloudforceOneRequest
37
+ include CloudflareCloudforceOneRequestAsset
38
+ include CloudflareCloudforceOneRequestMessage
39
+ include CloudflareCloudforceOneRequestPriority
40
+ include CloudflareContentScanning
41
+ include CloudflareContentScanningExpression
42
+ include CloudflareCustomHostname
43
+ include CloudflareCustomHostnameFallbackOrigin
44
+ include CloudflareCustomPages
45
+ include CloudflareCustomSsl
46
+ include CloudflareD1Database
47
+ include CloudflareDnsFirewall
48
+ include CloudflareDnsZoneTransfersAcl
49
+ include CloudflareDnsZoneTransfersIncoming
50
+ include CloudflareDnsZoneTransfersOutgoing
51
+ include CloudflareDnsZoneTransfersPeer
52
+ include CloudflareDnsZoneTransfersTsig
53
+ include CloudflareEmailRoutingAddress
54
+ include CloudflareEmailRoutingCatchAll
55
+ include CloudflareEmailRoutingDns
56
+ include CloudflareEmailRoutingRule
57
+ include CloudflareEmailRoutingSettings
58
+ include CloudflareEmailSecurityBlockSender
59
+ include CloudflareEmailSecurityImpersonationRegistry
60
+ include CloudflareEmailSecurityTrustedDomains
61
+ include CloudflareFilter
62
+ include CloudflareFirewallRule
63
+ include CloudflareHealthcheck
64
+ include CloudflareHostnameTlsSetting
65
+ include CloudflareHyperdriveConfig
66
+ include CloudflareImage
67
+ include CloudflareImageVariant
68
+ include CloudflareKeylessCertificate
69
+ include CloudflareLeakedCredentialCheck
70
+ include CloudflareLeakedCredentialCheckRule
71
+ include CloudflareList
72
+ include CloudflareListItem
73
+ include CloudflareLoadBalancer
74
+ include CloudflareLoadBalancerMonitor
75
+ include CloudflareLoadBalancerPool
76
+ include CloudflareLogpullRetention
77
+ include CloudflareLogpushJob
78
+ include CloudflareLogpushOwnershipChallenge
79
+ include CloudflareMagicNetworkMonitoringConfiguration
80
+ include CloudflareMagicNetworkMonitoringRule
81
+ include CloudflareMagicTransitConnector
82
+ include CloudflareMagicTransitSite
83
+ include CloudflareMagicTransitSiteAcl
84
+ include CloudflareMagicTransitSiteLan
85
+ include CloudflareMagicTransitSiteWan
86
+ include CloudflareMagicWanGreTunnel
87
+ include CloudflareMagicWanIpsecTunnel
88
+ include CloudflareMagicWanStaticRoute
89
+ include CloudflareManagedTransforms
90
+ include CloudflareMtlsCertificate
91
+ include CloudflareNotificationPolicy
92
+ include CloudflareNotificationPolicyWebhooks
93
+ include CloudflareObservatoryScheduledTest
94
+ include CloudflareOrganization
95
+ include CloudflareOrganizationProfile
96
+ include CloudflareOriginCACertificate
97
+ include CloudflarePageRule
98
+ include CloudflarePageShieldPolicy
99
+ include CloudflarePagesDomain
100
+ include CloudflarePagesProject
101
+ include CloudflareQueue
102
+ include CloudflareQueueConsumer
103
+ include CloudflareR2Bucket
104
+ include CloudflareR2BucketCors
105
+ include CloudflareR2BucketEventNotification
106
+ include CloudflareR2BucketLifecycle
107
+ include CloudflareR2BucketLock
108
+ include CloudflareR2BucketSippy
109
+ include CloudflareR2CustomDomain
110
+ include CloudflareR2ManagedDomain
111
+ include CloudflareRateLimit
112
+ include CloudflareRecord
113
+ include CloudflareRegionalHostname
114
+ include CloudflareRegionalTieredCache
115
+ include CloudflareRegistrarDomain
116
+ include CloudflareRuleset
117
+ include CloudflareSchemaValidationOperationSettings
118
+ include CloudflareSchemaValidationSchemas
119
+ include CloudflareSchemaValidationSettings
120
+ include CloudflareSnippet
121
+ include CloudflareSnippetRules
122
+ include CloudflareSpectrumApplication
123
+ include CloudflareStaticRoute
124
+ include CloudflareStream
125
+ include CloudflareStreamAudioTrack
126
+ include CloudflareStreamCaptionLanguage
127
+ include CloudflareStreamDownload
128
+ include CloudflareStreamKey
129
+ include CloudflareStreamLiveInput
130
+ include CloudflareStreamWatermark
131
+ include CloudflareStreamWebhook
132
+ include CloudflareTieredCache
133
+ include CloudflareTotalTls
134
+ include CloudflareTurnstileWidget
135
+ include CloudflareURLNormalizationSettings
136
+ include CloudflareUser
137
+ include CloudflareUserAgentBlockingRule
138
+ include CloudflareWaitingRoom
139
+ include CloudflareWaitingRoomEvent
140
+ include CloudflareWaitingRoomRules
141
+ include CloudflareWaitingRoomSettings
142
+ include CloudflareWeb3Hostname
143
+ include CloudflareWebAnalyticsRule
144
+ include CloudflareWebAnalyticsSite
145
+ include CloudflareWorker
146
+ include CloudflareWorkerRoute
147
+ include CloudflareWorkerScript
148
+ include CloudflareWorkerVersion
149
+ include CloudflareWorkersCronTrigger
150
+ include CloudflareWorkersCustomDomain
151
+ include CloudflareWorkersDeployment
152
+ include CloudflareWorkersForPlatformsDispatchNamespace
153
+ include CloudflareWorkersKv
154
+ include CloudflareWorkersKvNamespace
155
+ include CloudflareWorkersScriptSubdomain
156
+ include CloudflareWorkflow
157
+ include CloudflareZeroTrustAccessApplication
158
+ include CloudflareZeroTrustAccessCustomPage
159
+ include CloudflareZeroTrustAccessGroup
160
+ include CloudflareZeroTrustAccessIdentityProvider
161
+ include CloudflareZeroTrustAccessInfrastructureTarget
162
+ include CloudflareZeroTrustAccessKeyConfiguration
163
+ include CloudflareZeroTrustAccessMtlsCertificate
164
+ include CloudflareZeroTrustAccessMtlsHostnameSettings
165
+ include CloudflareZeroTrustAccessPolicy
166
+ include CloudflareZeroTrustAccessServiceToken
167
+ include CloudflareZeroTrustAccessShortLivedCertificate
168
+ include CloudflareZeroTrustAccessTag
169
+ include CloudflareDeviceCustomProfile
170
+ include CloudflareDeviceCustomProfileLocalDomainFallback
171
+ include CloudflareDeviceDefaultProfile
172
+ include CloudflareDeviceDefaultProfileCertificates
173
+ include CloudflareDeviceDefaultProfileLocalDomainFallback
174
+ include CloudflareZeroTrustDeviceManagedNetworks
175
+ include CloudflareZeroTrustDevicePostureIntegration
176
+ include CloudflareZeroTrustDevicePostureRule
177
+ include CloudflareZeroTrustDeviceSettings
178
+ include CloudflareZeroTrustDexTest
179
+ include CloudflareZeroTrustDlpCustomEntry
180
+ include CloudflareZeroTrustDlpCustomProfile
181
+ include CloudflareZeroTrustDlpDataset
182
+ include CloudflareZeroTrustDlpEntry
183
+ include CloudflareZeroTrustDlpIntegrationEntry
184
+ include CloudflareZeroTrustDlpPredefinedEntry
185
+ include CloudflareZeroTrustDlpPredefinedProfile
186
+ include CloudflareZeroTrustDnsLocation
187
+ include CloudflareZeroTrustGatewayCertificate
188
+ include CloudflareZeroTrustGatewayLogging
189
+ include CloudflareZeroTrustGatewayPolicy
190
+ include CloudflareZeroTrustGatewayProxyEndpoint
191
+ include CloudflareZeroTrustGatewaySettings
192
+ include CloudflareZeroTrustList
193
+ include CloudflareZeroTrustNetworkHostnameRoute
194
+ include CloudflareZeroTrustOrganization
195
+ include CloudflareZeroTrustRiskBehavior
196
+ include CloudflareZeroTrustRiskScoringIntegration
197
+ include CloudflareZeroTrustTunnelCloudflared
198
+ include CloudflareZeroTrustTunnelCloudflaredConfig
199
+ include CloudflareZeroTrustTunnelCloudflaredRoute
200
+ include CloudflareZeroTrustTunnelCloudflaredVirtualNetwork
201
+ include CloudflareZeroTrustTunnelWarpConnector
202
+ include CloudflareZone
203
+ include CloudflareZoneCacheReserve
204
+ include CloudflareZoneCacheVariants
205
+ include CloudflareZoneDnsSettings
206
+ include CloudflareZoneDnssec
207
+ include CloudflareZoneHold
208
+ include CloudflareZoneLockdown
209
+ include CloudflareZoneSettingsOverride
210
+ include CloudflareZoneSubscription
211
+ end
212
+ end
213
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+ # Copyright 2025 The Pangea Authors
3
+
4
+ require 'pangea/resources/base'
5
+ require 'pangea/resources/reference'
6
+ require 'pangea/resources/cloudflare_access_rule/types'
7
+ require 'pangea/resource_registry'
8
+
9
+ module Pangea
10
+ module Resources
11
+ # Cloudflare Access Rule resource module
12
+ module CloudflareAccessRule
13
+ # Create a Cloudflare IP Access Rule
14
+ #
15
+ # Control access based on IP, ASN, or country at zone or account level.
16
+ #
17
+ # @param name [Symbol] The resource name
18
+ # @param attributes [Hash] Access rule attributes
19
+ # @return [ResourceReference] Reference object with outputs
20
+ #
21
+ # @example Block IP at zone level
22
+ # cloudflare_access_rule(:block_bad_ip, {
23
+ # zone_id: "023e105f4ecef8ad9ca31a8372d0c353",
24
+ # mode: "block",
25
+ # target: "ip",
26
+ # value: "198.51.100.4"
27
+ # })
28
+ #
29
+ # @example Whitelist IP range at account level
30
+ # cloudflare_access_rule(:allow_office, {
31
+ # account_id: "a" * 32,
32
+ # mode: "whitelist",
33
+ # target: "ip_range",
34
+ # value: "192.0.2.0/24",
35
+ # notes: "Office IP range"
36
+ # })
37
+ def cloudflare_access_rule(name, attributes = {})
38
+ rule_attrs = Cloudflare::Types::AccessRuleAttributes.new(attributes)
39
+
40
+ resource(:cloudflare_access_rule, name) do
41
+ zone_id rule_attrs.zone_id if rule_attrs.zone_id
42
+ account_id rule_attrs.account_id if rule_attrs.account_id
43
+ mode rule_attrs.mode
44
+
45
+ configuration do
46
+ target rule_attrs.target
47
+ value rule_attrs.value
48
+ end
49
+
50
+ notes rule_attrs.notes if rule_attrs.notes
51
+ end
52
+
53
+ ResourceReference.new(
54
+ type: 'cloudflare_access_rule',
55
+ name: name,
56
+ resource_attributes: rule_attrs.to_h,
57
+ outputs: {
58
+ id: "${cloudflare_access_rule.#{name}.id}",
59
+ rule_id: "${cloudflare_access_rule.#{name}.id}"
60
+ }
61
+ )
62
+ end
63
+ end
64
+
65
+ module Cloudflare
66
+ include CloudflareAccessRule
67
+ end
68
+ end
69
+ end
70
+
71
+ Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)